From 20bfb6e978e9f1a5d91fb6af79751f71a7ba5365 Mon Sep 17 00:00:00 2001 From: Ngo Quoc Dat Date: Mon, 27 Jul 2026 16:20:13 +0700 Subject: [PATCH 1/9] feat(compare): compare and sync structure or data between two connections (#721) --- CHANGELOG.md | 1 + Plugins/SQLExportPlugin/SQLExportPlugin.swift | 40 +- .../ForeignKeyTopologicalSort.swift | 41 ++ .../PluginCapabilities.swift | 2 + .../Core/Compare/CompareSyncEndpoint.swift | 78 ++++ .../Compare/CompareSyncEngineFamily.swift | 44 +++ .../Core/Compare/CompareSyncExecutor.swift | 213 +++++++++++ .../Core/Compare/CompareSyncLauncher.swift | 32 ++ .../Compare/CompareSyncProfileStorage.swift | 74 ++++ .../Compare/CompareSyncSession+Data.swift | 220 +++++++++++ .../Core/Compare/CompareSyncSession+Run.swift | 214 +++++++++++ .../Core/Compare/CompareSyncSession.swift | 226 +++++++++++ .../Core/Compare/DataCompareOptions.swift | 151 ++++++++ TablePro/Core/Compare/DataDiffEngine.swift | 270 +++++++++++++ .../Core/Compare/DataSyncScriptBuilder.swift | 128 +++++++ .../Core/Compare/SchemaSyncOperation.swift | 76 ++++ .../Compare/SchemaSyncScriptBuilder.swift | 181 +++++++++ .../Core/Compare/StreamingRowProvider.swift | 80 ++++ .../Compare/StructureCompareOptions.swift | 72 ++++ .../Compare/StructureDiffEngine+Members.swift | 167 ++++++++ .../Core/Compare/StructureDiffEngine.swift | 124 ++++++ TablePro/Core/Compare/SyncHazard.swift | 65 ++++ .../Core/Compare/SyncSafetyClassifier.swift | 133 +++++++ TablePro/Core/Compare/TableDiffResult.swift | 86 +++++ .../Core/Compare/TableStructureSnapshot.swift | 129 +++++++ .../Infrastructure/SceneIdentifiers.swift | 1 + .../Infrastructure/WindowOpener.swift | 7 + .../Models/Compare/CompareSyncPayload.swift | 18 + TablePro/Models/Settings/ProFeature.swift | 9 +- TablePro/TableProApp.swift | 21 + .../Views/Compare/CompareStatusBanner.swift | 114 ++++++ .../Views/Compare/CompareSyncApplyView.swift | 121 ++++++ .../Views/Compare/CompareSyncScriptView.swift | 214 +++++++++++ .../Views/Compare/CompareSyncSetupView.swift | 201 ++++++++++ .../Views/Compare/CompareSyncWindowView.swift | 112 ++++++ .../Views/Compare/DataCompareReviewView.swift | 259 +++++++++++++ .../Compare/StructureCompareReviewView.swift | 292 ++++++++++++++ .../Connection/WelcomeContextMenus.swift | 6 + .../Infrastructure/WindowOpenerBridge.swift | 3 + .../Compare/CompareSyncExecutorTests.swift | 318 ++++++++++++++++ .../Core/Compare/DataDiffEngineTests.swift | 360 ++++++++++++++++++ .../SchemaSyncScriptBuilderTests.swift | 336 ++++++++++++++++ .../Compare/StructureDiffEngineTests.swift | 356 +++++++++++++++++ docs/docs.json | 1 + docs/features/compare-sync.mdx | 125 ++++++ 45 files changed, 5682 insertions(+), 39 deletions(-) create mode 100644 Plugins/TableProPluginKit/ForeignKeyTopologicalSort.swift create mode 100644 TablePro/Core/Compare/CompareSyncEndpoint.swift create mode 100644 TablePro/Core/Compare/CompareSyncEngineFamily.swift create mode 100644 TablePro/Core/Compare/CompareSyncExecutor.swift create mode 100644 TablePro/Core/Compare/CompareSyncLauncher.swift create mode 100644 TablePro/Core/Compare/CompareSyncProfileStorage.swift create mode 100644 TablePro/Core/Compare/CompareSyncSession+Data.swift create mode 100644 TablePro/Core/Compare/CompareSyncSession+Run.swift create mode 100644 TablePro/Core/Compare/CompareSyncSession.swift create mode 100644 TablePro/Core/Compare/DataCompareOptions.swift create mode 100644 TablePro/Core/Compare/DataDiffEngine.swift create mode 100644 TablePro/Core/Compare/DataSyncScriptBuilder.swift create mode 100644 TablePro/Core/Compare/SchemaSyncOperation.swift create mode 100644 TablePro/Core/Compare/SchemaSyncScriptBuilder.swift create mode 100644 TablePro/Core/Compare/StreamingRowProvider.swift create mode 100644 TablePro/Core/Compare/StructureCompareOptions.swift create mode 100644 TablePro/Core/Compare/StructureDiffEngine+Members.swift create mode 100644 TablePro/Core/Compare/StructureDiffEngine.swift create mode 100644 TablePro/Core/Compare/SyncHazard.swift create mode 100644 TablePro/Core/Compare/SyncSafetyClassifier.swift create mode 100644 TablePro/Core/Compare/TableDiffResult.swift create mode 100644 TablePro/Core/Compare/TableStructureSnapshot.swift create mode 100644 TablePro/Models/Compare/CompareSyncPayload.swift create mode 100644 TablePro/Views/Compare/CompareStatusBanner.swift create mode 100644 TablePro/Views/Compare/CompareSyncApplyView.swift create mode 100644 TablePro/Views/Compare/CompareSyncScriptView.swift create mode 100644 TablePro/Views/Compare/CompareSyncSetupView.swift create mode 100644 TablePro/Views/Compare/CompareSyncWindowView.swift create mode 100644 TablePro/Views/Compare/DataCompareReviewView.swift create mode 100644 TablePro/Views/Compare/StructureCompareReviewView.swift create mode 100644 TableProTests/Core/Compare/CompareSyncExecutorTests.swift create mode 100644 TableProTests/Core/Compare/DataDiffEngineTests.swift create mode 100644 TableProTests/Core/Compare/SchemaSyncScriptBuilderTests.swift create mode 100644 TableProTests/Core/Compare/StructureDiffEngineTests.swift create mode 100644 docs/features/compare-sync.mdx diff --git a/CHANGELOG.md b/CHANGELOG.md index f2e86f113..2485e5739 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - AI Explain, Optimize, and Fix Error now answer with a walkthrough in the chat panel: a before/after SQL diff you can switch between unified and split, numbered steps anchored to the lines they change, and a follow-up prompt on any step. Optimize and Fix add an Apply to Editor button that asks before replacing your query. (#1945) - Create a connection from a project folder. Pick one from the welcome screen or File > Open Project Folder..., and TablePro reads the database settings it finds in `.env` files, `wp-config.php`, `prisma/schema.prisma`, `config/database.yml`, `docker-compose.yml`, `application.properties`, `application.yml`, and `appsettings.json`. A project that uses more than one engine gets a row for each. Review what it found, pick one, and the connection form opens filled in. Nothing is saved or connected until you save it. (#1959) +- Compare structure or data between two connections and generate the SQL script that brings the target in line with the source. Differences show in a tree you can group by object type or by operation, with the source and target definitions side by side. The script is editable before it runs, statements are ordered so parent tables come before the tables that reference them, and anything that would drop data is listed but held back until you allow it for that run. A read-only connection cannot be chosen as the target. Requires a Starter license. (#721) ### Changed diff --git a/Plugins/SQLExportPlugin/SQLExportPlugin.swift b/Plugins/SQLExportPlugin/SQLExportPlugin.swift index eaa26b45c..47a3dffa5 100644 --- a/Plugins/SQLExportPlugin/SQLExportPlugin.swift +++ b/Plugins/SQLExportPlugin/SQLExportPlugin.swift @@ -184,44 +184,8 @@ final class SQLExportPlugin: ExportFormatPlugin, SettablePlugin { _ tables: [PluginExportTable], fkMap: [String: [PluginForeignKeyInfo]] ) -> [PluginExportTable] { - let nameSet = Set(tables.map { $0.name }) - var indegree: [String: Int] = [:] - var children: [String: Set] = [:] - for table in tables { indegree[table.name] = 0 } - - for table in tables { - let fks = fkMap[table.name] ?? [] - var seenParents: Set = [] - for fk in fks where fk.referencedTable != table.name { - guard nameSet.contains(fk.referencedTable), - !seenParents.contains(fk.referencedTable) else { continue } - seenParents.insert(fk.referencedTable) - children[fk.referencedTable, default: []].insert(table.name) - indegree[table.name, default: 0] += 1 - } - } - - let byName = Dictionary(uniqueKeysWithValues: tables.map { ($0.name, $0) }) - var queue = tables.map { $0.name }.filter { (indegree[$0] ?? 0) == 0 }.sorted() - var ordered: [String] = [] - while !queue.isEmpty { - let head = queue.removeFirst() - ordered.append(head) - for child in (children[head] ?? []).sorted() { - indegree[child] = (indegree[child] ?? 0) - 1 - if indegree[child] == 0 { - queue.append(child) - } - } - } - - if ordered.count < tables.count { - let remaining = tables.map { $0.name } - .filter { name in !ordered.contains(name) } - .sorted() - ordered.append(contentsOf: remaining) - } - + let byName = Dictionary(tables.map { ($0.name, $0) }, uniquingKeysWith: { first, _ in first }) + let ordered = ForeignKeyTopologicalSort.orderedNames(tables.map { $0.name }, foreignKeysByTable: fkMap) return ordered.compactMap { byName[$0] } } diff --git a/Plugins/TableProPluginKit/ForeignKeyTopologicalSort.swift b/Plugins/TableProPluginKit/ForeignKeyTopologicalSort.swift new file mode 100644 index 000000000..3c2bd6513 --- /dev/null +++ b/Plugins/TableProPluginKit/ForeignKeyTopologicalSort.swift @@ -0,0 +1,41 @@ +import Foundation + +public enum ForeignKeyTopologicalSort { + public static func orderedNames( + _ names: [String], + foreignKeysByTable: [String: [PluginForeignKeyInfo]] + ) -> [String] { + let nameSet = Set(names) + var indegree: [String: Int] = [:] + var children: [String: Set] = [:] + for name in names { indegree[name] = 0 } + + for name in names { + var seenParents: Set = [] + for fk in foreignKeysByTable[name] ?? [] where fk.referencedTable != name { + guard nameSet.contains(fk.referencedTable), + !seenParents.contains(fk.referencedTable) else { continue } + seenParents.insert(fk.referencedTable) + children[fk.referencedTable, default: []].insert(name) + indegree[name, default: 0] += 1 + } + } + + var queue = names.filter { (indegree[$0] ?? 0) == 0 }.sorted() + var ordered: [String] = [] + while !queue.isEmpty { + let head = queue.removeFirst() + ordered.append(head) + for child in (children[head] ?? []).sorted() { + indegree[child] = (indegree[child] ?? 0) - 1 + if indegree[child] == 0 { + queue.append(child) + } + } + } + + guard ordered.count < names.count else { return ordered } + let placed = Set(ordered) + return ordered + names.filter { !placed.contains($0) }.sorted() + } +} diff --git a/Plugins/TableProPluginKit/PluginCapabilities.swift b/Plugins/TableProPluginKit/PluginCapabilities.swift index 99ce00baa..8283d295f 100644 --- a/Plugins/TableProPluginKit/PluginCapabilities.swift +++ b/Plugins/TableProPluginKit/PluginCapabilities.swift @@ -22,4 +22,6 @@ public struct PluginCapabilities: OptionSet, Sendable { public static let batchExecute = PluginCapabilities(rawValue: 1 << 10) public static let transactions = PluginCapabilities(rawValue: 1 << 11) public static let userManagement = PluginCapabilities(rawValue: 1 << 12) + public static let schemaCompare = PluginCapabilities(rawValue: 1 << 13) + public static let dataCompare = PluginCapabilities(rawValue: 1 << 14) } diff --git a/TablePro/Core/Compare/CompareSyncEndpoint.swift b/TablePro/Core/Compare/CompareSyncEndpoint.swift new file mode 100644 index 000000000..75dfb3c2a --- /dev/null +++ b/TablePro/Core/Compare/CompareSyncEndpoint.swift @@ -0,0 +1,78 @@ +// +// CompareSyncEndpoint.swift +// TablePro +// +// One side of a comparison. The source never changes; the target is written to. +// + +import Foundation +import TableProPluginKit + +internal struct CompareSyncEndpoint: Hashable, Identifiable { + internal let connectionId: UUID + internal let displayName: String + internal let databaseType: DatabaseType + internal let database: String? + internal let schema: String? + internal let safeModeLevel: SafeModeLevel + internal let color: ConnectionColor + + internal var id: String { + "\(connectionId.uuidString)-\(database ?? "")-\(schema ?? "")" + } + + internal var canBeWrittenTo: Bool { + safeModeLevel != .readOnly + } + + internal var ineligibleAsTargetReason: String? { + guard !canBeWrittenTo else { return nil } + return String(localized: "Read-Only. Choose a different connection to write changes to.") + } + + internal var qualifiedDescription: String { + var parts = [displayName] + if let database, !database.isEmpty { parts.append(database) } + if let schema, !schema.isEmpty { parts.append(schema) } + return parts.joined(separator: " / ") + } +} + +internal extension CompareSyncEndpoint { + static func candidates(from connections: [DatabaseConnection]) -> [CompareSyncEndpoint] { + connections.map { connection in + CompareSyncEndpoint( + connectionId: connection.id, + displayName: connection.name, + databaseType: connection.type, + database: connection.database, + schema: nil, + safeModeLevel: connection.safeModeLevel, + color: connection.color + ) + } + } +} + +internal enum CompareSyncEligibility { + static func refusalReason( + for driver: any PluginDatabaseDriver, + mode: CompareSyncMode, + endpointName: String + ) -> String? { + let required: PluginCapabilities = mode == .structure ? .schemaCompare : .dataCompare + guard !driver.capabilities.contains(required) else { return nil } + switch mode { + case .structure: + return String( + format: String(localized: "%@ does not report structure metadata that can be compared."), + endpointName + ) + case .data: + return String( + format: String(localized: "%@ does not support reading rows in key order, which data compare needs."), + endpointName + ) + } + } +} diff --git a/TablePro/Core/Compare/CompareSyncEngineFamily.swift b/TablePro/Core/Compare/CompareSyncEngineFamily.swift new file mode 100644 index 000000000..7ca98f894 --- /dev/null +++ b/TablePro/Core/Compare/CompareSyncEngineFamily.swift @@ -0,0 +1,44 @@ +// +// CompareSyncEngineFamily.swift +// TablePro +// +// Which pairs of database types may generate a structure sync script. +// Column data types are driver-native strings, so generating DDL for one engine +// from another engine's metadata is unsound. Comparison stays available across +// engines as an informational read; only script generation is gated. +// + +import Foundation + +internal enum CompareSyncEngineFamily { + internal static func canGenerateStructureScript(from source: DatabaseType, to target: DatabaseType) -> Bool { + guard source != target else { return true } + return sameFamily(source, target) + } + + internal static func sameFamily(_ lhs: DatabaseType, _ rhs: DatabaseType) -> Bool { + guard lhs != rhs else { return true } + let key = [lhs.rawValue, rhs.rawValue].sorted().joined(separator: "\u{1F}") + return compatiblePairKeys.contains(key) + } + + private static let compatiblePairKeys: Set = { + let pairs: [[DatabaseType]] = [[.mysql, .mariadb]] + return Set(pairs.map { $0.map { $0.rawValue }.sorted().joined(separator: "\u{1F}") }) + }() + + internal static func structureScriptRefusal(from source: DatabaseType, to target: DatabaseType) -> String { + String( + format: String(localized: "Structure sync needs matching database types. %@ and %@ can be compared, but no script is generated."), + source.rawValue, target.rawValue + ) + } + + internal static func crossEngineDataWarning(from source: DatabaseType, to target: DatabaseType) -> String? { + guard source != target else { return nil } + return String( + format: String(localized: "Syncing data from %@ to %@. Value formatting can differ between engines; review the script before applying."), + source.rawValue, target.rawValue + ) + } +} diff --git a/TablePro/Core/Compare/CompareSyncExecutor.swift b/TablePro/Core/Compare/CompareSyncExecutor.swift new file mode 100644 index 000000000..431df3a9c --- /dev/null +++ b/TablePro/Core/Compare/CompareSyncExecutor.swift @@ -0,0 +1,213 @@ +// +// CompareSyncExecutor.swift +// TablePro +// +// Applies a generated sync script to the target connection. +// Authorization happens once for the whole run through ExecutionGate, and the +// statement loop stays inside that call so the task-local receipt remains bound +// for every statement. Cancellation is cooperative between statements: a driver +// already blocked in a C call cannot be interrupted. +// + +import Foundation +import os +import TableProPluginKit + +internal enum CompareSyncMode: String, Codable, Hashable, Sendable, CaseIterable { + case structure + case data + + internal var displayName: String { + switch self { + case .structure: return String(localized: "Structure") + case .data: return String(localized: "Data") + } + } +} + +internal struct CompareSyncExecutionSettings { + internal var errorHandling: ImportErrorHandling = .stopAndRollback + internal var wrapInTransaction = true + internal var allowedHazardStatementIds: Set = [] + + internal func canRun(_ statement: SyncStatement) -> Bool { + guard statement.isRefusedByDefault else { return true } + return allowedHazardStatementIds.contains(statement.id) + } + + internal func usesTransaction(supportsTransactions: Bool) -> Bool { + wrapInTransaction && supportsTransactions && errorHandling != .skipAndContinue + } +} + +internal struct SyncStatementOutcome: Identifiable { + internal let id: UUID + internal let statement: SyncStatement + internal let error: String? + internal let wasSkipped: Bool + + internal var succeeded: Bool { + error == nil && !wasSkipped + } +} + +internal struct CompareSyncRunResult { + internal let outcomes: [SyncStatementOutcome] + internal let rolledBack: Bool + internal let cancelled: Bool + + internal var executedCount: Int { + outcomes.filter { $0.succeeded }.count + } + + internal var failedCount: Int { + outcomes.filter { $0.error != nil }.count + } + + internal var heldBackCount: Int { + outcomes.filter { $0.wasSkipped }.count + } +} + +internal actor CompareSyncExecutor { + private static let logger = Logger(subsystem: "com.TablePro", category: "CompareSyncExecutor") + + private let gate: ExecutionGate + + internal init(gate: ExecutionGate = ExecutionGateProvider.shared) { + self.gate = gate + } + + internal func apply( + statements: [SyncStatement], + mode: CompareSyncMode, + settings: CompareSyncExecutionSettings, + target: CompareSyncEndpoint, + driver: any PluginDatabaseDriver, + progress: Progress + ) async throws -> CompareSyncRunResult { + let runnable = statements.filter { settings.canRun($0) } + let heldBack = statements.filter { !settings.canRun($0) } + + guard !runnable.isEmpty else { + return CompareSyncRunResult( + outcomes: heldBack.map { SyncStatementOutcome(id: $0.id, statement: $0, error: nil, wasSkipped: true) }, + rolledBack: false, + cancelled: false + ) + } + + let request = OperationRequest( + connectionId: target.connectionId, + databaseType: target.databaseType, + sql: Self.digest(of: runnable), + kind: Self.kind(for: mode, statements: runnable, databaseType: target.databaseType), + caller: .userInterface, + capabilities: [.mayWrite, .mayRunDestructive, .mayRunMultiStatement, .confirmationPreCleared], + operationDescription: String( + format: String(localized: "Apply %@ sync to %@"), + mode.displayName, target.displayName + ) + ) + + progress.totalUnitCount = Int64(runnable.count) + progress.completedUnitCount = 0 + progress.isCancellable = true + + let activity = ProcessInfo.processInfo.beginActivity( + options: [.userInitiated, .idleSystemSleepDisabled, .suddenTerminationDisabled], + reason: "Applying database sync" + ) + defer { ProcessInfo.processInfo.endActivity(activity) } + + return try await gate.authorizing(request) { + try await self.run( + runnable: runnable, + heldBack: heldBack, + settings: settings, + driver: driver, + progress: progress + ) + } + } + + private func run( + runnable: [SyncStatement], + heldBack: [SyncStatement], + settings: CompareSyncExecutionSettings, + driver: any PluginDatabaseDriver, + progress: Progress + ) async throws -> CompareSyncRunResult { + let usesTransaction = settings.usesTransaction(supportsTransactions: driver.supportsTransactions) + if usesTransaction { + try await driver.beginTransaction() + } + + var outcomes = heldBack.map { + SyncStatementOutcome(id: $0.id, statement: $0, error: nil, wasSkipped: true) + } + var completed: Int64 = 0 + var stopped = false + var cancelled = false + + for statement in runnable { + if progress.isCancelled || Task.isCancelled { + cancelled = true + break + } + do { + _ = try await driver.execute(query: statement.sql) + outcomes.append(SyncStatementOutcome( + id: statement.id, statement: statement, error: nil, wasSkipped: false + )) + } catch { + Self.logger.error("Sync statement failed: \(error.localizedDescription, privacy: .public)") + outcomes.append(SyncStatementOutcome( + id: statement.id, statement: statement, + error: error.localizedDescription, wasSkipped: false + )) + if settings.errorHandling != .skipAndContinue { + stopped = true + break + } + } + completed += 1 + if completed % Self.progressBatchSize == 0 || completed == Int64(runnable.count) { + progress.completedUnitCount = completed + } + } + progress.completedUnitCount = completed + + let shouldRollback = usesTransaction + && (cancelled || (stopped && settings.errorHandling == .stopAndRollback)) + if usesTransaction { + if shouldRollback { + try? await driver.rollbackTransaction() + } else { + try await driver.commitTransaction() + } + } + + return CompareSyncRunResult(outcomes: outcomes, rolledBack: shouldRollback, cancelled: cancelled) + } + + private static let progressBatchSize: Int64 = 25 + + private static func kind( + for mode: CompareSyncMode, + statements: [SyncStatement], + databaseType: DatabaseType + ) -> OperationKind { + guard mode == .data else { return .schemaMutation } + return OperationKind.worst(of: statements.map { $0.sql }, databaseType: databaseType) + } + + private static func digest(of statements: [SyncStatement]) -> String { + var digest = "" + for statement in statements { + guard digest.count < 10_000 else { break } + digest += statement.sql + "\n" + } + return digest + } +} diff --git a/TablePro/Core/Compare/CompareSyncLauncher.swift b/TablePro/Core/Compare/CompareSyncLauncher.swift new file mode 100644 index 000000000..0292191c8 --- /dev/null +++ b/TablePro/Core/Compare/CompareSyncLauncher.swift @@ -0,0 +1,32 @@ +// +// CompareSyncLauncher.swift +// TablePro +// +// Single entry point for opening Compare & Sync, so the license gate is +// enforced in one place no matter which menu or context menu was used. +// + +import AppKit +import Foundation + +@MainActor +internal enum CompareSyncLauncher { + internal static func open(prefillSource connectionId: UUID? = nil) { + guard LicenseManager.shared.isFeatureAvailable(.compareSync) else { + presentUpgradeAlert() + return + } + WindowOpener.shared.openCompareSync(prefillSource: connectionId) + } + + private static func presentUpgradeAlert() { + let alert = NSAlert() + alert.alertStyle = .informational + alert.messageText = String(localized: "Compare & Sync requires a license") + alert.informativeText = ProFeature.compareSync.featureDescription + alert.addButton(withTitle: String(localized: "View Account")) + alert.addButton(withTitle: String(localized: "Cancel")) + guard alert.runModal() == .alertFirstButtonReturn else { return } + WindowOpener.shared.openSettings(tab: .account) + } +} diff --git a/TablePro/Core/Compare/CompareSyncProfileStorage.swift b/TablePro/Core/Compare/CompareSyncProfileStorage.swift new file mode 100644 index 000000000..8a108910f --- /dev/null +++ b/TablePro/Core/Compare/CompareSyncProfileStorage.swift @@ -0,0 +1,74 @@ +// +// CompareSyncProfileStorage.swift +// TablePro +// +// Named comparison setups, keyed by source, target, and mode. +// + +import Foundation +import os + +internal struct CompareSyncProfile: Codable, Hashable, Identifiable { + internal var id = UUID() + internal var name: String + internal var sourceConnectionId: UUID + internal var targetConnectionId: UUID + internal var mode: CompareSyncMode + internal var structureOptions: StructureCompareOptions + internal var dataOptions: DataCompareOptions + internal var selectedTables: [String] + + internal var storageKey: String { + "\(sourceConnectionId.uuidString)|\(targetConnectionId.uuidString)|\(mode.rawValue)" + } +} + +internal final class CompareSyncProfileStorage { + internal static let shared = CompareSyncProfileStorage() + + private static let logger = Logger(subsystem: "com.TablePro", category: "CompareSyncProfileStorage") + private static let defaultsKey = "compareSyncProfiles" + + private let defaults: UserDefaults + + internal init(defaults: UserDefaults = .standard) { + self.defaults = defaults + } + + internal func allProfiles() -> [CompareSyncProfile] { + guard let data = defaults.data(forKey: Self.defaultsKey) else { return [] } + do { + return try JSONDecoder().decode([CompareSyncProfile].self, from: data) + } catch { + Self.logger.error("Failed to decode profiles: \(error.localizedDescription, privacy: .public)") + return [] + } + } + + internal func profiles(source: UUID, target: UUID, mode: CompareSyncMode) -> [CompareSyncProfile] { + let key = "\(source.uuidString)|\(target.uuidString)|\(mode.rawValue)" + return allProfiles().filter { $0.storageKey == key } + } + + internal func save(_ profile: CompareSyncProfile) { + var profiles = allProfiles() + if let index = profiles.firstIndex(where: { $0.id == profile.id }) { + profiles[index] = profile + } else { + profiles.append(profile) + } + persist(profiles) + } + + internal func delete(_ profile: CompareSyncProfile) { + persist(allProfiles().filter { $0.id != profile.id }) + } + + private func persist(_ profiles: [CompareSyncProfile]) { + do { + defaults.set(try JSONEncoder().encode(profiles), forKey: Self.defaultsKey) + } catch { + Self.logger.error("Failed to encode profiles: \(error.localizedDescription, privacy: .public)") + } + } +} diff --git a/TablePro/Core/Compare/CompareSyncSession+Data.swift b/TablePro/Core/Compare/CompareSyncSession+Data.swift new file mode 100644 index 000000000..76498ccd3 --- /dev/null +++ b/TablePro/Core/Compare/CompareSyncSession+Data.swift @@ -0,0 +1,220 @@ +// +// CompareSyncSession+Data.swift +// TablePro +// +// Data comparison. Rows are read in key order from both sides and walked in +// lockstep. A table with no usable key is listed as not comparable rather than +// matched on a guess. +// + +import Foundation +import TableProPluginKit + +internal struct DataComparePlan: Identifiable, Hashable { + internal let table: String + internal let schema: String? + internal var columns: [String] + internal var keyColumns: [String] + internal var isEnabled: Bool + internal var unavailableReason: String? + internal var summary: DataDiffSummary? + + internal var id: String { + guard let schema, !schema.isEmpty else { return table } + return "\(schema).\(table)" + } + + internal var isComparable: Bool { + unavailableReason == nil + } + + internal static func == (lhs: DataComparePlan, rhs: DataComparePlan) -> Bool { + lhs.id == rhs.id && lhs.keyColumns == rhs.keyColumns && lhs.isEnabled == rhs.isEnabled + } + + internal func hash(into hasher: inout Hasher) { + hasher.combine(id) + } +} + +internal extension CompareSyncSession { + func compareData() { + guard canCompare, let source, let target else { return } + cancelRunningWork() + errorMessage = nil + informationalMessage = nil + + runTask = Task { [weak self] in + guard let self else { return } + self.activity = .connecting + defer { self.activity = .idle } + + do { + let sourceDriver = try Self.dataDriver(for: source) + let targetDriver = try Self.dataDriver(for: target) + + if let refusal = CompareSyncEligibility.refusalReason( + for: sourceDriver, mode: .data, endpointName: source.displayName + ) ?? CompareSyncEligibility.refusalReason( + for: targetDriver, mode: .data, endpointName: target.displayName + ) { + self.errorMessage = refusal + return + } + + self.activity = .comparing + var plans = try await Self.buildPlans( + sourceDriver: sourceDriver, + targetDriver: targetDriver, + sourceSchema: source.schema, + targetSchema: target.schema, + existing: self.dataPlans + ) + + for index in plans.indices where plans[index].isEnabled && plans[index].isComparable { + try Task.checkCancellation() + plans[index].summary = try await self.runDataDiff( + plan: plans[index], + sourceDriver: sourceDriver, + targetDriver: targetDriver, + sourceSchema: source.schema, + targetSchema: target.schema + ) + } + + self.dataPlans = plans + let differences = plans.compactMap { $0.summary?.differenceCount }.reduce(0, +) + self.lastAction = .compared(Date(), differences: differences) + self.informationalMessage = self.crossEngineNotice + self.step = .review + } catch is CancellationError { + self.informationalMessage = String(localized: "Comparison cancelled.") + } catch { + self.errorMessage = error.localizedDescription + } + } + } + + func generateDataScript() { + guard let target else { return } + errorMessage = nil + + runTask = Task { [weak self] in + guard let self else { return } + do { + let targetDriver = try Self.dataDriver(for: target) + var built: [SyncStatement] = [] + for plan in self.dataPlans where plan.isEnabled && plan.isComparable { + guard let summary = plan.summary else { continue } + var options = self.dataOptions + options.keyColumns = plan.keyColumns + let builder = DataSyncScriptBuilder(targetDriver: targetDriver, options: options) + built.append(contentsOf: builder.build( + table: plan.table, + schema: plan.schema, + writeColumns: plan.columns, + entries: summary.entries + )) + } + guard !built.isEmpty else { + self.errorMessage = String(localized: "Nothing is selected to apply.") + return + } + self.statements = built + self.editedScript = built.map { $0.sql }.joined(separator: "\n") + self.step = .script + } catch { + self.errorMessage = error.localizedDescription + } + } + } + + var dataDifferenceTotal: Int { + dataPlans.compactMap { $0.summary?.differenceCount }.reduce(0, +) + } + + var truncatedPlanNames: [String] { + dataPlans.filter { $0.summary?.truncatedEntries == true }.map { $0.id } + } + + // MARK: - Helpers + + private func runDataDiff( + plan: DataComparePlan, + sourceDriver: any PluginDatabaseDriver, + targetDriver: any PluginDatabaseDriver, + sourceSchema: String?, + targetSchema: String? + ) async throws -> DataDiffSummary { + var options = dataOptions + options.keyColumns = plan.keyColumns + + let sourceQuery = KeyOrderedQuery.build( + table: plan.table, schema: sourceSchema, columns: plan.columns, + keyColumns: plan.keyColumns, driver: sourceDriver + ) + let targetQuery = KeyOrderedQuery.build( + table: plan.table, schema: targetSchema, columns: plan.columns, + keyColumns: plan.keyColumns, driver: targetDriver + ) + + let engine = DataDiffEngine(options: options, columns: plan.columns) + return try await engine.compare( + source: StreamingRowProvider(stream: sourceDriver.streamRows(query: sourceQuery), columns: plan.columns), + target: StreamingRowProvider(stream: targetDriver.streamRows(query: targetQuery), columns: plan.columns) + ) + } + + private static func dataDriver(for endpoint: CompareSyncEndpoint) throws -> any PluginDatabaseDriver { + guard let adapter = DatabaseManager.shared.driver(for: endpoint.connectionId) as? PluginDriverAdapter else { + throw CompareSyncError.unsupportedOperation(String( + format: String(localized: "Connect to %@ before comparing."), + endpoint.displayName + )) + } + return adapter.schemaPluginDriver + } + + private static func buildPlans( + sourceDriver: any PluginDatabaseDriver, + targetDriver: any PluginDatabaseDriver, + sourceSchema: String?, + targetSchema: String?, + existing: [DataComparePlan] + ) async throws -> [DataComparePlan] { + let sourceTables = try await sourceDriver.fetchTables(schema: sourceSchema) + let targetNames = Set(try await targetDriver.fetchTables(schema: targetSchema).map { $0.name.lowercased() }) + let previous = Dictionary(existing.map { ($0.id, $0) }, uniquingKeysWith: { first, _ in first }) + + var plans: [DataComparePlan] = [] + for table in sourceTables where targetNames.contains(table.name.lowercased()) { + try Task.checkCancellation() + let sourceColumns = try await sourceDriver.fetchColumns(table: table.name, schema: table.schema ?? sourceSchema) + let targetColumns = try await targetDriver.fetchColumns(table: table.name, schema: table.schema ?? targetSchema) + let targetNameSet = Set(targetColumns.map { $0.name.lowercased() }) + let shared = sourceColumns.filter { targetNameSet.contains($0.name.lowercased()) }.map { $0.name } + + let primaryKey = sourceColumns.filter { $0.isPrimaryKey }.map { $0.name } + let identifier = table.schema.map { "\($0).\(table.name)" } ?? table.name + let carried = previous[identifier] + + var plan = DataComparePlan( + table: table.name, + schema: table.schema ?? sourceSchema, + columns: shared, + keyColumns: carried?.keyColumns.isEmpty == false ? carried?.keyColumns ?? primaryKey : primaryKey, + isEnabled: carried?.isEnabled ?? true, + unavailableReason: nil, + summary: nil + ) + + if shared.isEmpty { + plan.unavailableReason = String(localized: "No columns in common.") + } else if plan.keyColumns.isEmpty { + plan.unavailableReason = String(localized: "No primary key. Choose key columns to compare this table.") + } + plans.append(plan) + } + return plans.sorted { $0.id.localizedStandardCompare($1.id) == .orderedAscending } + } +} diff --git a/TablePro/Core/Compare/CompareSyncSession+Run.swift b/TablePro/Core/Compare/CompareSyncSession+Run.swift new file mode 100644 index 000000000..bd8d270b8 --- /dev/null +++ b/TablePro/Core/Compare/CompareSyncSession+Run.swift @@ -0,0 +1,214 @@ +// +// CompareSyncSession+Run.swift +// TablePro +// +// Connecting, comparing, script generation, and applying. +// + +import Foundation +import TableProPluginKit + +internal extension CompareSyncSession { + func compare() { + guard canCompare, let source, let target else { return } + cancelRunningWork() + errorMessage = nil + informationalMessage = nil + + runTask = Task { [weak self] in + guard let self else { return } + self.activity = .connecting + defer { self.activity = .idle } + + do { + let sourceDriver = try Self.driver(for: source) + let targetDriver = try Self.driver(for: target) + + if let refusal = CompareSyncEligibility.refusalReason( + for: sourceDriver, mode: self.mode, endpointName: source.displayName + ) ?? CompareSyncEligibility.refusalReason( + for: targetDriver, mode: self.mode, endpointName: target.displayName + ) { + self.errorMessage = refusal + return + } + + self.activity = .comparing + let sourceSnapshots = try await Self.snapshots(from: sourceDriver, schema: source.schema) + let targetSnapshots = try await Self.snapshots(from: targetDriver, schema: target.schema) + try Task.checkCancellation() + + let engine = StructureDiffEngine(options: self.structureOptions) + let report = engine.compare(source: sourceSnapshots, target: targetSnapshots) + + self.structureReport = report + self.sourceSnapshotCache = Dictionary( + sourceSnapshots.map { ($0.qualifiedName, $0) }, + uniquingKeysWith: { first, _ in first } + ) + self.tableActions = [:] + self.statements = [] + self.editedScript = nil + self.lastAction = .compared(Date(), differences: report.comparable.filter { $0.status != .identical }.count) + self.informationalMessage = self.crossEngineNotice + self.step = .review + } catch is CancellationError { + self.informationalMessage = String(localized: "Comparison cancelled.") + } catch { + self.errorMessage = error.localizedDescription + } + } + } + + func generateScript() { + guard let target, let report = structureReport else { return } + guard canGenerateStructureScript else { + errorMessage = crossEngineNotice + return + } + errorMessage = nil + + runTask = Task { [weak self] in + guard let self else { return } + do { + let targetDriver = try Self.driver(for: target) + let operations = self.operations(from: report) + guard !operations.isEmpty else { + self.errorMessage = String(localized: "Nothing is selected to apply.") + return + } + let foreignKeys = Self.foreignKeyMap(from: self.sourceSnapshotCache) + let builder = SchemaSyncScriptBuilder(targetDriver: targetDriver) + self.statements = try builder.build(operations: operations, foreignKeysByTable: foreignKeys) + self.editedScript = self.statements.map { $0.sql }.joined(separator: "\n") + self.step = .script + } catch { + self.errorMessage = error.localizedDescription + } + } + } + + func apply() { + guard let target, !statements.isEmpty else { return } + cancelRunningWork() + errorMessage = nil + + let runProgress = Progress(totalUnitCount: Int64(statements.count)) + progress = runProgress + + runTask = Task { [weak self] in + guard let self else { return } + self.activity = .applying + self.hasWrittenToTarget = true + defer { + self.activity = .idle + self.progress = nil + } + + do { + let targetDriver = try Self.driver(for: target) + let result = try await self.executorRun( + statements: self.statements, + target: target, + driver: targetDriver, + progress: runProgress + ) + self.runResult = result + self.lastAction = .applied( + Date(), target: target.qualifiedDescription, statements: result.executedCount + ) + self.step = .apply + } catch { + self.errorMessage = error.localizedDescription + self.step = .apply + } + } + } + + // MARK: - Comparison + + private func operations(from report: StructureDiffReport) -> [SchemaSyncOperation] { + report.comparable.compactMap { result in + switch action(for: result) { + case .skip: + return nil + case .create: + guard let snapshot = sourceSnapshotCache[result.id] else { return nil } + return .createTable(snapshot) + case .drop: + return .dropTable(name: result.tableName, schema: result.schema) + case .alter: + guard !result.changes.isEmpty else { return nil } + return .alterTable(name: result.tableName, schema: result.schema, changes: result.changes) + } + } + } + + private func executorRun( + statements: [SyncStatement], + target: CompareSyncEndpoint, + driver: any PluginDatabaseDriver, + progress: Progress + ) async throws -> CompareSyncRunResult { + try await CompareSyncExecutor().apply( + statements: statements, + mode: mode, + settings: executionSettings, + target: target, + driver: driver, + progress: progress + ) + } + + // MARK: - Helpers + + private static func driver(for endpoint: CompareSyncEndpoint) throws -> any PluginDatabaseDriver { + guard let adapter = DatabaseManager.shared.driver(for: endpoint.connectionId) as? PluginDriverAdapter else { + throw CompareSyncError.unsupportedOperation(String( + format: String(localized: "Connect to %@ before comparing."), + endpoint.displayName + )) + } + return adapter.schemaPluginDriver + } + + private static func snapshots( + from driver: any PluginDatabaseDriver, + schema: String? + ) async throws -> [TableStructureSnapshot] { + let tables = try await driver.fetchTables(schema: schema) + var result: [TableStructureSnapshot] = [] + for table in tables { + try Task.checkCancellation() + let columns = try await driver.fetchColumns(table: table.name, schema: table.schema ?? schema) + let indexes = try await driver.fetchIndexes(table: table.name, schema: table.schema ?? schema) + let foreignKeys = try await driver.fetchForeignKeys(table: table.name, schema: table.schema ?? schema) + result.append(TableStructureSnapshot.from( + table: table, columns: columns, indexes: indexes, foreignKeys: foreignKeys + )) + } + return result + } + + private static func foreignKeyMap( + from snapshots: [String: TableStructureSnapshot] + ) -> [String: [PluginForeignKeyInfo]] { + var map: [String: [PluginForeignKeyInfo]] = [:] + for snapshot in snapshots.values { + let dependencies = snapshot.foreignKeys.compactMap { foreignKey -> PluginForeignKeyInfo? in + guard let column = foreignKey.columns.first, + let referencedColumn = foreignKey.referencedColumns.first else { return nil } + return PluginForeignKeyInfo( + name: foreignKey.name, + column: column, + referencedTable: foreignKey.referencedTable, + referencedColumn: referencedColumn, + referencedSchema: foreignKey.referencedSchema + ) + } + guard !dependencies.isEmpty else { continue } + map[snapshot.name] = dependencies + } + return map + } +} diff --git a/TablePro/Core/Compare/CompareSyncSession.swift b/TablePro/Core/Compare/CompareSyncSession.swift new file mode 100644 index 000000000..cd0c3394b --- /dev/null +++ b/TablePro/Core/Compare/CompareSyncSession.swift @@ -0,0 +1,226 @@ +// +// CompareSyncSession.swift +// TablePro +// +// Drives the compare and sync flow. Owns no cache: every comparison is a fresh +// read that replaces the previous result only once it has finished, so a re-run +// never blanks what is on screen before it has something to show. +// + +import Foundation +import Observation +import os +import SwiftUI +import TableProPluginKit + +internal enum CompareSyncStep: Int, CaseIterable, Comparable { + case setup + case review + case script + case apply + + internal static func < (lhs: CompareSyncStep, rhs: CompareSyncStep) -> Bool { + lhs.rawValue < rhs.rawValue + } + + internal var title: String { + switch self { + case .setup: return String(localized: "Setup") + case .review: return String(localized: "Review") + case .script: return String(localized: "Script") + case .apply: return String(localized: "Apply") + } + } +} + +internal enum CompareSyncActivity: Equatable { + case idle + case connecting + case comparing + case applying +} + +internal enum CompareSyncLastAction: Equatable { + case none + case compared(Date, differences: Int) + case applied(Date, target: String, statements: Int) +} + +@MainActor +@Observable +internal final class CompareSyncSession { + private static let logger = Logger(subsystem: "com.TablePro", category: "CompareSyncSession") + + internal var step: CompareSyncStep = .setup + internal var mode: CompareSyncMode = .structure + internal var source: CompareSyncEndpoint? + internal var target: CompareSyncEndpoint? + internal var structureOptions = StructureCompareOptions.default + internal var dataOptions = DataCompareOptions.default + internal var executionSettings = CompareSyncExecutionSettings() + + internal var activity: CompareSyncActivity = .idle + internal var errorMessage: String? + internal var informationalMessage: String? + internal var lastAction: CompareSyncLastAction = .none + + internal var structureReport: StructureDiffReport? + internal var dataPlans: [DataComparePlan] = [] + internal var tableActions: [String: TableSyncAction] = [:] + internal var statements: [SyncStatement] = [] + internal var editedScript: String? + internal var runResult: CompareSyncRunResult? + internal var progress: Progress? + + internal var hasWrittenToTarget = false + internal var sourceSnapshotCache: [String: TableStructureSnapshot] = [:] + + internal var runTask: Task? + + internal init() {} + + // MARK: - Direction + + internal var directionSentence: String? { + guard let source, let target else { return nil } + return String( + format: String(localized: "Compare %@ and write changes to %@."), + source.qualifiedDescription, target.qualifiedDescription + ) + } + + internal var canSwap: Bool { + source != nil || target != nil + } + + internal func swapEndpoints() { + let previousSource = source + source = target + target = previousSource + resetComparison() + } + + internal var canCompare: Bool { + guard let source, let target else { return false } + guard target.canBeWrittenTo else { return false } + return source.id != target.id && activity == .idle + } + + internal var canGenerateStructureScript: Bool { + guard mode == .structure, let source, let target else { return false } + return CompareSyncEngineFamily.canGenerateStructureScript(from: source.databaseType, to: target.databaseType) + } + + internal var crossEngineNotice: String? { + guard let source, let target else { return nil } + if mode == .structure, !canGenerateStructureScript { + return CompareSyncEngineFamily.structureScriptRefusal(from: source.databaseType, to: target.databaseType) + } + return CompareSyncEngineFamily.crossEngineDataWarning(from: source.databaseType, to: target.databaseType) + } + + internal var bannerText: String { + switch activity { + case .applying: + return String( + format: String(localized: "Applying to %@..."), + target?.qualifiedDescription ?? "" + ) + case .comparing, .connecting: + return String(localized: "Comparing only. Nothing has been written.") + case .idle: + return idleBannerText + } + } + + private var idleBannerText: String { + switch lastAction { + case .none: + return String(localized: "Comparing only. Nothing has been written.") + case .compared(let date, let differences): + return String( + format: String(localized: "Compared %@. %d differences. Nothing has been written."), + Self.timeFormatter.string(from: date), differences + ) + case .applied(let date, let name, let statements): + return String( + format: String(localized: "Applied to %@ at %@. %d statements."), + name, Self.timeFormatter.string(from: date), statements + ) + } + } + + // MARK: - Selection + + internal func action(for result: TableDiffResult) -> TableSyncAction { + tableActions[result.id] ?? .skip + } + + internal func setAction(_ action: TableSyncAction, for result: TableDiffResult) { + tableActions[result.id] = action + statements = [] + editedScript = nil + } + + internal var selectedTableCount: Int { + switch mode { + case .structure: + return tableActions.values.filter { $0 != .skip }.count + case .data: + return dataPlans.filter { $0.isEnabled && $0.isComparable && ($0.summary?.differenceCount ?? 0) > 0 }.count + } + } + + internal func runComparison() { + switch mode { + case .structure: compare() + case .data: compareData() + } + } + + internal func buildScript() { + switch mode { + case .structure: generateScript() + case .data: generateDataScript() + } + } + + internal var canBuildScript: Bool { + switch mode { + case .structure: + return selectedTableCount > 0 && canGenerateStructureScript + case .data: + return selectedTableCount > 0 + } + } + + internal func resetComparison() { + structureReport = nil + sourceSnapshotCache = [:] + dataPlans = [] + tableActions = [:] + statements = [] + editedScript = nil + runResult = nil + errorMessage = nil + step = .setup + } + + // MARK: - Lifecycle + + internal func cancelRunningWork() { + progress?.cancel() + runTask?.cancel() + } + + internal var isBusy: Bool { + activity != .idle + } + + private static let timeFormatter: DateFormatter = { + let formatter = DateFormatter() + formatter.timeStyle = .short + formatter.dateStyle = .none + return formatter + }() +} diff --git a/TablePro/Core/Compare/DataCompareOptions.swift b/TablePro/Core/Compare/DataCompareOptions.swift new file mode 100644 index 000000000..bf56bba52 --- /dev/null +++ b/TablePro/Core/Compare/DataCompareOptions.swift @@ -0,0 +1,151 @@ +// +// DataCompareOptions.swift +// TablePro +// +// How two rows are matched and how two values are judged equal. +// The set of columns used to compare is deliberately separate from the set +// written: an audit column can be excluded from matching while still being +// carried into the generated statement. +// + +import Foundation +import TableProPluginKit + +internal struct DataCompareOptions: Codable, Hashable, Sendable { + internal var keyColumns: [String] = [] + internal var excludedFromComparison: Set = [] + internal var insertMissingRows = true + internal var updateDifferingRows = true + internal var deleteExtraRows = false + internal var floatTolerance: Double = 0 + internal var timestampFractionalDigits = 6 + internal var maxRetainedEntries = 5_000 + + internal init() {} + + internal static let `default` = DataCompareOptions() + + internal var hasKey: Bool { + !keyColumns.isEmpty + } + + internal func comparisonColumns(from columns: [String]) -> [String] { + let keys = Set(keyColumns.map { $0.lowercased() }) + return columns.filter { column in + let lowered = column.lowercased() + return !keys.contains(lowered) && !excludedFromComparison.contains(where: { $0.lowercased() == lowered }) + } + } +} + +internal enum ComparisonRule: String, Codable, Hashable, Sendable { + case exactValue + case nullEquality + case floatTolerance + case timestampPrecision + case binaryContent + case typeMismatch + + internal var displayName: String { + switch self { + case .exactValue: + return String(localized: "Exact value") + case .nullEquality: + return String(localized: "NULL only equals NULL") + case .floatTolerance: + return String(localized: "Numeric tolerance") + case .timestampPrecision: + return String(localized: "Timestamp precision") + case .binaryContent: + return String(localized: "Binary content") + case .typeMismatch: + return String(localized: "Value kind differs") + } + } +} + +internal struct ValueComparison { + internal let isEqual: Bool + internal let rule: ComparisonRule +} + +internal struct CellValueComparator { + private let options: DataCompareOptions + + internal init(options: DataCompareOptions) { + self.options = options + } + + internal func compare(_ lhs: PluginCellValue, _ rhs: PluginCellValue) -> ValueComparison { + switch (lhs, rhs) { + case (.null, .null): + return ValueComparison(isEqual: true, rule: .nullEquality) + case (.null, _), (_, .null): + return ValueComparison(isEqual: false, rule: .nullEquality) + case (.bytes(let left), .bytes(let right)): + return ValueComparison(isEqual: left == right, rule: .binaryContent) + case (.text(let left), .text(let right)): + return compareText(left, right) + default: + return ValueComparison(isEqual: false, rule: .typeMismatch) + } + } + + private func compareText(_ lhs: String, _ rhs: String) -> ValueComparison { + if lhs == rhs { + return ValueComparison(isEqual: true, rule: .exactValue) + } + if options.floatTolerance > 0, + let left = Double(lhs.trimmingCharacters(in: .whitespaces)), + let right = Double(rhs.trimmingCharacters(in: .whitespaces)) { + let equal = (left - right).magnitude <= options.floatTolerance + return ValueComparison(isEqual: equal, rule: .floatTolerance) + } + if let left = TimestampValue.parse(lhs), let right = TimestampValue.parse(rhs) { + let equal = left.equals(right, fractionalDigits: options.timestampFractionalDigits) + return ValueComparison(isEqual: equal, rule: .timestampPrecision) + } + return ValueComparison(isEqual: false, rule: .exactValue) + } +} + +internal struct TimestampValue: Hashable { + internal let secondsSinceEpoch: Double + + internal func equals(_ other: TimestampValue, fractionalDigits: Int) -> Bool { + let scale = pow(10.0, Double(max(0, min(9, fractionalDigits)))) + return (secondsSinceEpoch * scale).rounded() == (other.secondsSinceEpoch * scale).rounded() + } + + internal static func parse(_ raw: String) -> TimestampValue? { + let trimmed = raw.trimmingCharacters(in: .whitespaces) + guard trimmed.count >= 10 else { return nil } + for formatter in Self.formatters { + if let date = formatter.date(from: trimmed) { + return TimestampValue(secondsSinceEpoch: date.timeIntervalSince1970) + } + } + return nil + } + + private static let formatters: [DateFormatter] = { + let patterns = [ + "yyyy-MM-dd HH:mm:ss.SSSSSSXXXXX", + "yyyy-MM-dd'T'HH:mm:ss.SSSSSSXXXXX", + "yyyy-MM-dd HH:mm:ssXXXXX", + "yyyy-MM-dd'T'HH:mm:ssXXXXX", + "yyyy-MM-dd HH:mm:ss.SSSSSS", + "yyyy-MM-dd'T'HH:mm:ss.SSSSSS", + "yyyy-MM-dd HH:mm:ss", + "yyyy-MM-dd'T'HH:mm:ss", + "yyyy-MM-dd" + ] + return patterns.map { pattern in + let formatter = DateFormatter() + formatter.locale = Locale(identifier: "en_US_POSIX") + formatter.timeZone = TimeZone(secondsFromGMT: 0) + formatter.dateFormat = pattern + return formatter + } + }() +} diff --git a/TablePro/Core/Compare/DataDiffEngine.swift b/TablePro/Core/Compare/DataDiffEngine.swift new file mode 100644 index 000000000..b0db8c818 --- /dev/null +++ b/TablePro/Core/Compare/DataDiffEngine.swift @@ -0,0 +1,270 @@ +// +// DataDiffEngine.swift +// TablePro +// +// Key-ordered merge join over two row providers. Both sides are read in key +// order and walked in lockstep, so neither side is ever materialized and no +// server-side hash function has to agree between two engines. +// + +import Foundation +import TableProPluginKit + +internal struct DataRow: Hashable { + internal let values: [String: PluginCellValue] + + internal func value(for column: String) -> PluginCellValue { + if let exact = values[column] { return exact } + let lowered = column.lowercased() + guard let match = values.first(where: { $0.key.lowercased() == lowered }) else { return .null } + return match.value + } +} + +internal protocol DataRowProviding: AnyObject { + func nextRow() async throws -> DataRow? +} + +internal enum RowDiffKind: String, Codable, Hashable, Sendable { + case insert + case update + case delete + case identical +} + +internal struct CellDifference: Hashable { + internal let column: String + internal let rule: ComparisonRule + internal let sourceValue: PluginCellValue + internal let targetValue: PluginCellValue +} + +internal struct RowDiffEntry: Identifiable, Hashable { + internal let id: UUID + internal let kind: RowDiffKind + internal let keyDescription: String + internal let sourceRow: DataRow? + internal let targetRow: DataRow? + internal let cellDifferences: [CellDifference] + + internal init( + id: UUID = UUID(), + kind: RowDiffKind, + keyDescription: String, + sourceRow: DataRow?, + targetRow: DataRow?, + cellDifferences: [CellDifference] = [] + ) { + self.id = id + self.kind = kind + self.keyDescription = keyDescription + self.sourceRow = sourceRow + self.targetRow = targetRow + self.cellDifferences = cellDifferences + } +} + +internal struct DataDiffSummary { + internal let insertCount: Int + internal let updateCount: Int + internal let deleteCount: Int + internal let identicalCount: Int + internal let entries: [RowDiffEntry] + internal let truncatedEntries: Bool + + internal var differenceCount: Int { + insertCount + updateCount + deleteCount + } + + internal var totalCount: Int { + differenceCount + identicalCount + } +} + +internal struct DataDiffEngine { + private let options: DataCompareOptions + private let comparator: CellValueComparator + private let comparisonColumns: [String] + + internal init(options: DataCompareOptions, columns: [String]) { + self.options = options + self.comparator = CellValueComparator(options: options) + self.comparisonColumns = options.comparisonColumns(from: columns) + } + + internal func compare( + source: DataRowProviding, + target: DataRowProviding + ) async throws -> DataDiffSummary { + guard options.hasKey else { + throw CompareSyncError.noComparisonKey(String(localized: "Choose a key column before comparing data.")) + } + + var accumulator = Accumulator(limit: options.maxRetainedEntries) + var sourceRow = try await source.nextRow() + var targetRow = try await target.nextRow() + + while sourceRow != nil || targetRow != nil { + try Task.checkCancellation() + + guard let left = sourceRow else { + accumulator.add(deleteEntry(for: targetRow)) + targetRow = try await target.nextRow() + continue + } + guard let right = targetRow else { + accumulator.add(insertEntry(for: left)) + sourceRow = try await source.nextRow() + continue + } + + let leftKey = keyComponents(of: left) + let rightKey = keyComponents(of: right) + switch KeyOrdering.compare(leftKey, rightKey) { + case .orderedSame: + accumulator.add(matchedEntry(source: left, target: right)) + sourceRow = try await source.nextRow() + targetRow = try await target.nextRow() + case .orderedAscending: + accumulator.add(insertEntry(for: left)) + sourceRow = try await source.nextRow() + case .orderedDescending: + accumulator.add(deleteEntry(for: right)) + targetRow = try await target.nextRow() + } + } + + return accumulator.summary() + } + + private func insertEntry(for row: DataRow) -> RowDiffEntry { + RowDiffEntry( + kind: .insert, + keyDescription: keyDescription(of: row), + sourceRow: row, + targetRow: nil + ) + } + + private func deleteEntry(for row: DataRow?) -> RowDiffEntry { + RowDiffEntry( + kind: .delete, + keyDescription: row.map { keyDescription(of: $0) } ?? "", + sourceRow: nil, + targetRow: row + ) + } + + private func matchedEntry(source: DataRow, target: DataRow) -> RowDiffEntry { + var differences: [CellDifference] = [] + for column in comparisonColumns { + let sourceValue = source.value(for: column) + let targetValue = target.value(for: column) + let outcome = comparator.compare(sourceValue, targetValue) + guard !outcome.isEqual else { continue } + differences.append(CellDifference( + column: column, + rule: outcome.rule, + sourceValue: sourceValue, + targetValue: targetValue + )) + } + return RowDiffEntry( + kind: differences.isEmpty ? .identical : .update, + keyDescription: keyDescription(of: source), + sourceRow: source, + targetRow: target, + cellDifferences: differences + ) + } + + private func keyComponents(of row: DataRow) -> [PluginCellValue] { + options.keyColumns.map { row.value(for: $0) } + } + + private func keyDescription(of row: DataRow) -> String { + options.keyColumns + .map { column in KeyOrdering.sortKey(row.value(for: column)) } + .joined(separator: ", ") + } +} + +private extension DataDiffEngine { + struct Accumulator { + private let limit: Int + private var insertCount = 0 + private var updateCount = 0 + private var deleteCount = 0 + private var identicalCount = 0 + private var entries: [RowDiffEntry] = [] + private var truncated = false + + init(limit: Int) { + self.limit = limit + } + + mutating func add(_ entry: RowDiffEntry) { + switch entry.kind { + case .insert: insertCount += 1 + case .update: updateCount += 1 + case .delete: deleteCount += 1 + case .identical: identicalCount += 1 + } + guard entries.count < limit else { + truncated = true + return + } + entries.append(entry) + } + + func summary() -> DataDiffSummary { + DataDiffSummary( + insertCount: insertCount, + updateCount: updateCount, + deleteCount: deleteCount, + identicalCount: identicalCount, + entries: entries, + truncatedEntries: truncated + ) + } + } +} + +internal enum KeyOrdering { + internal static func compare(_ lhs: [PluginCellValue], _ rhs: [PluginCellValue]) -> ComparisonResult { + for (left, right) in zip(lhs, rhs) { + let leftKey = sortKey(left) + let rightKey = sortKey(right) + if leftKey == rightKey { continue } + if let leftNumber = Double(leftKey), let rightNumber = Double(rightKey) { + return leftNumber < rightNumber ? .orderedAscending : .orderedDescending + } + return leftKey < rightKey ? .orderedAscending : .orderedDescending + } + if lhs.count == rhs.count { return .orderedSame } + return lhs.count < rhs.count ? .orderedAscending : .orderedDescending + } + + internal static func sortKey(_ value: PluginCellValue) -> String { + switch value { + case .null: return "" + case .text(let text): return text + case .bytes(let data): return data.base64EncodedString() + } + } +} + +internal final class ArrayRowProvider: DataRowProviding { + private var rows: [DataRow] + private var index = 0 + + internal init(rows: [DataRow]) { + self.rows = rows + } + + internal func nextRow() async throws -> DataRow? { + guard index < rows.count else { return nil } + defer { index += 1 } + return rows[index] + } +} diff --git a/TablePro/Core/Compare/DataSyncScriptBuilder.swift b/TablePro/Core/Compare/DataSyncScriptBuilder.swift new file mode 100644 index 000000000..8d2158321 --- /dev/null +++ b/TablePro/Core/Compare/DataSyncScriptBuilder.swift @@ -0,0 +1,128 @@ +// +// DataSyncScriptBuilder.swift +// TablePro +// +// Turns row differences into DML for the target. Inserts run before updates +// before deletes, and parent tables before the tables that reference them. +// + +import Foundation +import TableProPluginKit + +internal struct DataSyncScriptBuilder { + private let targetDriver: any PluginDatabaseDriver + private let options: DataCompareOptions + + internal init(targetDriver: any PluginDatabaseDriver, options: DataCompareOptions) { + self.targetDriver = targetDriver + self.options = options + } + + internal func build( + table: String, + schema: String?, + writeColumns: [String], + entries: [RowDiffEntry] + ) -> [SyncStatement] { + var inserts: [SyncStatement] = [] + var updates: [SyncStatement] = [] + var deletes: [SyncStatement] = [] + + for entry in entries { + switch entry.kind { + case .insert: + guard options.insertMissingRows, let row = entry.sourceRow else { continue } + inserts.append(insertStatement(table: table, schema: schema, columns: writeColumns, row: row, entry: entry)) + case .update: + guard options.updateDifferingRows, let row = entry.sourceRow else { continue } + guard let statement = updateStatement( + table: table, schema: schema, columns: writeColumns, row: row, entry: entry + ) else { continue } + updates.append(statement) + case .delete: + guard options.deleteExtraRows, let row = entry.targetRow else { continue } + guard let statement = deleteStatement(table: table, schema: schema, row: row, entry: entry) else { continue } + deletes.append(statement) + case .identical: + continue + } + } + return inserts + updates + deletes + } + + private func qualified(_ table: String, _ schema: String?) -> String { + guard let schema, !schema.isEmpty else { return targetDriver.quoteIdentifier(table) } + return "\(targetDriver.quoteIdentifier(schema)).\(targetDriver.quoteIdentifier(table))" + } + + private func insertStatement( + table: String, + schema: String?, + columns: [String], + row: DataRow, + entry: RowDiffEntry + ) -> SyncStatement { + let columnList = columns.map { targetDriver.quoteIdentifier($0) }.joined(separator: ", ") + let valueList = columns.map { targetDriver.sqlLiteral(for: row.value(for: $0)) }.joined(separator: ", ") + return SyncStatement( + sql: "INSERT INTO \(qualified(table, schema)) (\(columnList)) VALUES (\(valueList));", + objectName: table, + summary: String(format: String(localized: "Insert row %@ into %@"), entry.keyDescription, table) + ) + } + + private func updateStatement( + table: String, + schema: String?, + columns: [String], + row: DataRow, + entry: RowDiffEntry + ) -> SyncStatement? { + let keySet = Set(options.keyColumns.map { $0.lowercased() }) + let assignable = columns.filter { !keySet.contains($0.lowercased()) } + guard !assignable.isEmpty else { return nil } + let assignments = assignable + .map { "\(targetDriver.quoteIdentifier($0)) = \(targetDriver.sqlLiteral(for: row.value(for: $0)))" } + .joined(separator: ", ") + guard let predicate = keyPredicate(row: row) else { return nil } + return SyncStatement( + sql: "UPDATE \(qualified(table, schema)) SET \(assignments) WHERE \(predicate);", + objectName: table, + summary: String(format: String(localized: "Update row %@ in %@"), entry.keyDescription, table) + ) + } + + private func deleteStatement( + table: String, + schema: String?, + row: DataRow, + entry: RowDiffEntry + ) -> SyncStatement? { + guard let predicate = keyPredicate(row: row) else { return nil } + return SyncStatement( + sql: "DELETE FROM \(qualified(table, schema)) WHERE \(predicate);", + objectName: table, + summary: String(format: String(localized: "Delete row %@ from %@"), entry.keyDescription, table), + hazards: [SyncHazard( + kind: .dataLoss, + severity: .refusedByDefault, + explanation: String( + format: String(localized: "Deleting row %@ from %@ permanently removes it."), + entry.keyDescription, table + ) + )] + ) + } + + private func keyPredicate(row: DataRow) -> String? { + guard !options.keyColumns.isEmpty else { return nil } + return options.keyColumns + .map { column -> String in + let quoted = targetDriver.quoteIdentifier(column) + let value = row.value(for: column) + if case .null = value { return "\(quoted) IS NULL" } + return "\(quoted) = \(targetDriver.sqlLiteral(for: value))" + } + .joined(separator: " AND ") + } +} diff --git a/TablePro/Core/Compare/SchemaSyncOperation.swift b/TablePro/Core/Compare/SchemaSyncOperation.swift new file mode 100644 index 000000000..f67d6f812 --- /dev/null +++ b/TablePro/Core/Compare/SchemaSyncOperation.swift @@ -0,0 +1,76 @@ +// +// SchemaSyncOperation.swift +// TablePro +// +// Table-level sync operations. SchemaChange covers everything inside one +// table; this covers the table's own lifecycle, which SchemaStatementGenerator +// deliberately does not model because it is scoped to a single fixed table. +// + +import Foundation +import TableProPluginKit + +internal enum SchemaSyncOperation: Identifiable { + case createTable(TableStructureSnapshot) + case dropTable(name: String, schema: String?) + case alterTable(name: String, schema: String?, changes: [SchemaChange]) + + internal var id: String { + switch self { + case .createTable(let snapshot): return "create-\(snapshot.qualifiedName)" + case .dropTable(let name, let schema): return "drop-\(Self.qualify(name, schema))" + case .alterTable(let name, let schema, _): return "alter-\(Self.qualify(name, schema))" + } + } + + internal var tableName: String { + switch self { + case .createTable(let snapshot): return snapshot.name + case .dropTable(let name, _): return name + case .alterTable(let name, _, _): return name + } + } + + internal var schema: String? { + switch self { + case .createTable(let snapshot): return snapshot.schema + case .dropTable(_, let schema): return schema + case .alterTable(_, let schema, _): return schema + } + } + + private static func qualify(_ name: String, _ schema: String?) -> String { + guard let schema, !schema.isEmpty else { return name } + return "\(schema).\(name)" + } +} + +internal struct SyncStatement: Identifiable, Hashable { + internal let id: UUID + internal let sql: String + internal let objectName: String + internal let summary: String + internal let hazards: [SyncHazard] + + internal init( + id: UUID = UUID(), + sql: String, + objectName: String, + summary: String, + hazards: [SyncHazard] = [] + ) { + self.id = id + self.sql = sql + self.objectName = objectName + self.summary = summary + self.hazards = hazards + } + + internal var isRefusedByDefault: Bool { + hazards.contains { $0.severity == .refusedByDefault } + } + + internal var highestSeverity: SyncHazardSeverity? { + hazards.map { $0.severity }.max() + } +} diff --git a/TablePro/Core/Compare/SchemaSyncScriptBuilder.swift b/TablePro/Core/Compare/SchemaSyncScriptBuilder.swift new file mode 100644 index 000000000..647ca7c5d --- /dev/null +++ b/TablePro/Core/Compare/SchemaSyncScriptBuilder.swift @@ -0,0 +1,181 @@ +// +// SchemaSyncScriptBuilder.swift +// TablePro +// +// Turns table-level sync operations into dialect-correct statements for the +// target driver. Ordering across tables follows foreign key dependencies; +// ordering inside one table is delegated to SchemaStatementGenerator. +// + +import Foundation +import TableProPluginKit + +internal struct SchemaSyncScriptBuilder { + private let targetDriver: any PluginDatabaseDriver + private let classifier: SyncSafetyClassifier + + internal init(targetDriver: any PluginDatabaseDriver, classifier: SyncSafetyClassifier = SyncSafetyClassifier()) { + self.targetDriver = targetDriver + self.classifier = classifier + } + + internal func build( + operations: [SchemaSyncOperation], + foreignKeysByTable: [String: [PluginForeignKeyInfo]] + ) throws -> [SyncStatement] { + let ordered = Self.order(operations: operations, foreignKeysByTable: foreignKeysByTable) + var statements: [SyncStatement] = [] + for operation in ordered { + statements.append(contentsOf: try build(operation: operation)) + } + return statements + } + + internal static func order( + operations: [SchemaSyncOperation], + foreignKeysByTable: [String: [PluginForeignKeyInfo]] + ) -> [SchemaSyncOperation] { + var drops: [SchemaSyncOperation] = [] + var creates: [SchemaSyncOperation] = [] + var alters: [SchemaSyncOperation] = [] + for operation in operations { + switch operation { + case .dropTable: drops.append(operation) + case .createTable: creates.append(operation) + case .alterTable: alters.append(operation) + } + } + return sorted(drops, foreignKeysByTable: foreignKeysByTable, childrenFirst: true) + + sorted(creates, foreignKeysByTable: foreignKeysByTable, childrenFirst: false) + + sorted(alters, foreignKeysByTable: foreignKeysByTable, childrenFirst: false) + } + + private static func sorted( + _ operations: [SchemaSyncOperation], + foreignKeysByTable: [String: [PluginForeignKeyInfo]], + childrenFirst: Bool + ) -> [SchemaSyncOperation] { + guard operations.count > 1 else { return operations } + let byName = Dictionary( + operations.map { ($0.tableName, $0) }, + uniquingKeysWith: { first, _ in first } + ) + let ordered = ForeignKeyTopologicalSort.orderedNames( + operations.map { $0.tableName }, + foreignKeysByTable: foreignKeysByTable + ) + let resolved = ordered.compactMap { byName[$0] } + return childrenFirst ? resolved.reversed() : resolved + } + + private func build(operation: SchemaSyncOperation) throws -> [SyncStatement] { + switch operation { + case .createTable(let snapshot): + return try createStatements(for: snapshot) + case .dropTable(let name, let schema): + return dropStatements(name: name, schema: schema) + case .alterTable(let name, let schema, let changes): + return try alterStatements(name: name, schema: schema, changes: changes) + } + } + + private func createStatements(for snapshot: TableStructureSnapshot) throws -> [SyncStatement] { + let definition = PluginCreateTableDefinition( + tableName: snapshot.name, + columns: snapshot.columns.map { $0.toPlugin() }, + indexes: snapshot.indexes.filter { !$0.isPrimary }.map { $0.toPlugin() }, + foreignKeys: snapshot.foreignKeys.map { $0.toPlugin() }, + primaryKeyColumns: snapshot.primaryKeyColumns, + engine: snapshot.engine, + charset: snapshot.charset, + collation: snapshot.collation + ) + guard let sql = targetDriver.generateCreateTableSQL(definition: definition) else { + throw CompareSyncError.unsupportedOperation(String( + format: String(localized: "The target does not support creating table %@."), + snapshot.name + )) + } + return [SyncStatement( + sql: Self.terminated(sql), + objectName: snapshot.qualifiedName, + summary: String(format: String(localized: "Create table %@"), snapshot.name) + )] + } + + private func dropStatements(name: String, schema: String?) -> [SyncStatement] { + guard let sql = targetDriver.dropObjectStatement( + name: name, objectType: "TABLE", schema: schema, cascade: false + ) else { return [] } + return [SyncStatement( + sql: Self.terminated(sql), + objectName: name, + summary: String(format: String(localized: "Drop table %@"), name), + hazards: classifier.hazards(forDropping: name) + )] + } + + private func alterStatements( + name: String, + schema: String?, + changes: [SchemaChange] + ) throws -> [SyncStatement] { + let generator = SchemaStatementGenerator(tableName: name, pluginDriver: targetDriver) + var statements: [SyncStatement] = [] + for change in SchemaChangeOrdering.sorted(changes) { + let hazards = classifier.hazards(for: change) + let generated = try generator.generate(changes: [change]) + for statement in generated { + statements.append(SyncStatement( + sql: Self.terminated(statement.sql), + objectName: name, + summary: statement.description, + hazards: hazards + )) + } + } + return statements + } + + private static func terminated(_ sql: String) -> String { + let trimmed = sql.trimmingCharacters(in: .whitespacesAndNewlines) + return trimmed.hasSuffix(";") ? trimmed : trimmed + ";" + } +} + +internal enum SchemaChangeOrdering { + internal static func sorted(_ changes: [SchemaChange]) -> [SchemaChange] { + var buckets: [[SchemaChange]] = Array(repeating: [], count: 8) + for change in changes { + buckets[bucket(for: change)].append(change) + } + return buckets.flatMap { $0 } + } + + private static func bucket(for change: SchemaChange) -> Int { + switch change { + case .deleteForeignKey, .modifyForeignKey: return 0 + case .deleteIndex, .modifyIndex: return 1 + case .deleteColumn: return 2 + case .modifyColumn: return 3 + case .addColumn: return 4 + case .modifyPrimaryKey: return 5 + case .addIndex: return 6 + case .addForeignKey: return 7 + } + } +} + +internal enum CompareSyncError: LocalizedError { + case unsupportedOperation(String) + case incompatibleEngines(String) + case noComparisonKey(String) + + internal var errorDescription: String? { + switch self { + case .unsupportedOperation(let message): return message + case .incompatibleEngines(let message): return message + case .noComparisonKey(let message): return message + } + } +} diff --git a/TablePro/Core/Compare/StreamingRowProvider.swift b/TablePro/Core/Compare/StreamingRowProvider.swift new file mode 100644 index 000000000..8f01f4483 --- /dev/null +++ b/TablePro/Core/Compare/StreamingRowProvider.swift @@ -0,0 +1,80 @@ +// +// StreamingRowProvider.swift +// TablePro +// +// Feeds the merge join from a driver's row stream. Only the current batch is +// held, so neither side of a comparison is ever materialized in full. +// + +import Foundation +import TableProPluginKit + +internal final class StreamingRowProvider: DataRowProviding { + private var iterator: AsyncThrowingStream.AsyncIterator + private var columns: [String] + private var buffer: [DataRow] = [] + private var bufferIndex = 0 + private var isFinished = false + + internal init(stream: AsyncThrowingStream, columns: [String] = []) { + self.iterator = stream.makeAsyncIterator() + self.columns = columns + } + + internal func nextRow() async throws -> DataRow? { + while bufferIndex >= buffer.count { + guard !isFinished else { return nil } + try await fillBuffer() + } + defer { bufferIndex += 1 } + return buffer[bufferIndex] + } + + private func fillBuffer() async throws { + buffer = [] + bufferIndex = 0 + while buffer.isEmpty { + guard let element = try await iterator.next() else { + isFinished = true + return + } + switch element { + case .header(let header): + if columns.isEmpty { columns = header.columns } + case .rows(let rows): + buffer = rows.map { row in + var values: [String: PluginCellValue] = [:] + for (index, column) in columns.enumerated() where index < row.count { + values[column] = row[index] + } + return DataRow(values: values) + } + } + } + } +} + +internal enum KeyOrderedQuery { + internal static func build( + table: String, + schema: String?, + columns: [String], + keyColumns: [String], + driver: any PluginDatabaseDriver + ) -> String { + let columnList = columns.isEmpty + ? "*" + : columns.map { driver.quoteIdentifier($0) }.joined(separator: ", ") + let orderBy = keyColumns.map { driver.quoteIdentifier($0) }.joined(separator: ", ") + var sql = "SELECT \(columnList) FROM \(qualified(table, schema, driver))" + if !orderBy.isEmpty { + sql += " ORDER BY \(orderBy)" + } + return sql + } + + private static func qualified(_ table: String, _ schema: String?, _ driver: any PluginDatabaseDriver) -> String { + guard let schema, !schema.isEmpty else { return driver.quoteIdentifier(table) } + return "\(driver.quoteIdentifier(schema)).\(driver.quoteIdentifier(table))" + } +} diff --git a/TablePro/Core/Compare/StructureCompareOptions.swift b/TablePro/Core/Compare/StructureCompareOptions.swift new file mode 100644 index 000000000..4d3a44f11 --- /dev/null +++ b/TablePro/Core/Compare/StructureCompareOptions.swift @@ -0,0 +1,72 @@ +// +// StructureCompareOptions.swift +// TablePro +// +// Normalization rules applied before two structures are considered different. +// Every option defaults to ignoring the difference, because the metadata these +// cover drifts between environments by design. +// + +import Foundation + +internal struct StructureCompareOptions: Codable, Hashable, Sendable { + internal var ignoreIdentifierCase = true + internal var ignoreColumnOrder = true + internal var ignoreWhitespaceInText = true + internal var ignoreAutoIncrementSeed = true + internal var ignoreCollationAndCharset = true + internal var ignoreCommentsAndOwners = true + + internal static let `default` = StructureCompareOptions() +} + +internal extension StructureCompareOptions { + func matchKey(_ identifier: String) -> String { + let trimmed = identifier.trimmingCharacters(in: .whitespacesAndNewlines) + return ignoreIdentifierCase ? trimmed.lowercased() : trimmed + } + + func normalizedText(_ value: String?) -> String? { + guard let value else { return nil } + var result = value + if ignoreAutoIncrementSeed { + result = Self.autoIncrementSeed.stringByReplacingMatches( + in: result, + range: NSRange(result.startIndex..., in: result), + withTemplate: "AUTO_INCREMENT" + ) + } + if ignoreWhitespaceInText { + result = Self.whitespaceRun.stringByReplacingMatches( + in: result, + range: NSRange(result.startIndex..., in: result), + withTemplate: " " + ) + result = result.trimmingCharacters(in: .whitespacesAndNewlines) + } + return result.isEmpty ? nil : result + } + + func normalizedType(_ dataType: String) -> String { + let collapsed = Self.whitespaceRun.stringByReplacingMatches( + in: dataType, + range: NSRange(dataType.startIndex..., in: dataType), + withTemplate: " " + ) + return collapsed.trimmingCharacters(in: .whitespacesAndNewlines).lowercased() + } + + func columnListKey(_ columns: [String]) -> String { + columns.map { matchKey($0) }.joined(separator: "\u{1F}") + } + + private static let whitespaceRun = makeRegex("\\s+") + private static let autoIncrementSeed = makeRegex("(?i)AUTO_INCREMENT\\s*=\\s*\\d+") + + private static func makeRegex(_ pattern: String) -> NSRegularExpression { + guard let regex = try? NSRegularExpression(pattern: pattern) else { + preconditionFailure("StructureCompareOptions pattern failed to compile: \(pattern)") + } + return regex + } +} diff --git a/TablePro/Core/Compare/StructureDiffEngine+Members.swift b/TablePro/Core/Compare/StructureDiffEngine+Members.swift new file mode 100644 index 000000000..8f24739d8 --- /dev/null +++ b/TablePro/Core/Compare/StructureDiffEngine+Members.swift @@ -0,0 +1,167 @@ +// +// StructureDiffEngine+Members.swift +// TablePro +// +// Column, primary key, index and foreign key comparison. +// Indexes and foreign keys are matched on structure rather than on name, so a +// system-generated name difference never reports an object as changed. +// + +import Foundation + +internal extension StructureDiffEngine { + struct MemberOutcome { + internal let changes: [SchemaChange] + internal let notes: [String] + } + + func columnChanges( + source: TableStructureSnapshot, + target: TableStructureSnapshot + ) -> [SchemaChange] { + let targetByKey = Dictionary( + target.columns.map { (options.matchKey($0.name), $0) }, + uniquingKeysWith: { first, _ in first } + ) + let sourceKeys = Set(source.columns.map { options.matchKey($0.name) }) + + var changes: [SchemaChange] = [] + for column in source.columns { + guard let existing = targetByKey[options.matchKey(column.name)] else { + changes.append(.addColumn(column)) + continue + } + guard columnSignature(column) != columnSignature(existing) else { continue } + changes.append(.modifyColumn(old: existing, new: column)) + } + for column in target.columns where !sourceKeys.contains(options.matchKey(column.name)) { + changes.append(.deleteColumn(column)) + } + return changes + } + + func primaryKeyChanges( + source: TableStructureSnapshot, + target: TableStructureSnapshot + ) -> [SchemaChange] { + let sourceKey = source.primaryKeyColumns + let targetKey = target.primaryKeyColumns + guard options.columnListKey(sourceKey) != options.columnListKey(targetKey) else { return [] } + return [.modifyPrimaryKey(old: targetKey, new: sourceKey)] + } + + func indexChanges( + source: TableStructureSnapshot, + target: TableStructureSnapshot + ) -> MemberOutcome { + let sourceIndexes = source.indexes.filter { !$0.isPrimary } + let targetIndexes = target.indexes.filter { !$0.isPrimary } + + var remaining = targetIndexes + var changes: [SchemaChange] = [] + var notes: [String] = [] + + for index in sourceIndexes { + let signature = indexSignature(index) + guard let position = remaining.firstIndex(where: { indexSignature($0) == signature }) else { + changes.append(.addIndex(index)) + continue + } + let matched = remaining.remove(at: position) + guard options.matchKey(matched.name) != options.matchKey(index.name) else { continue } + notes.append(String( + format: String(localized: "Index %@ matches %@ on the target but the names differ."), + index.name, matched.name + )) + } + for index in remaining { + changes.append(.deleteIndex(index)) + } + return MemberOutcome(changes: changes, notes: notes) + } + + func foreignKeyChanges( + source: TableStructureSnapshot, + target: TableStructureSnapshot + ) -> MemberOutcome { + var remaining = target.foreignKeys + var changes: [SchemaChange] = [] + var notes: [String] = [] + + for foreignKey in source.foreignKeys { + let signature = foreignKeySignature(foreignKey) + guard let position = remaining.firstIndex(where: { foreignKeySignature($0) == signature }) else { + changes.append(.addForeignKey(foreignKey)) + continue + } + let matched = remaining.remove(at: position) + guard options.matchKey(matched.name) != options.matchKey(foreignKey.name) else { continue } + notes.append(String( + format: String(localized: "Foreign key %@ matches %@ on the target but the names differ."), + foreignKey.name, matched.name + )) + } + for foreignKey in remaining { + changes.append(.deleteForeignKey(foreignKey)) + } + return MemberOutcome(changes: changes, notes: notes) + } +} + +private extension StructureDiffEngine { + func columnSignature(_ column: EditableColumnDefinition) -> String { + var parts: [String] = [ + options.matchKey(column.name), + options.normalizedType(column.dataType), + String(column.isNullable), + String(column.autoIncrement), + String(column.unsigned), + options.normalizedText(column.defaultValue) ?? "", + options.normalizedText(column.onUpdate) ?? "", + options.normalizedText(strippedExtra(column.extra)) ?? "" + ] + if !options.ignoreCollationAndCharset { + parts.append(options.matchKey(column.charset ?? "")) + parts.append(options.matchKey(column.collation ?? "")) + } + if !options.ignoreCommentsAndOwners { + parts.append(options.normalizedText(column.comment) ?? "") + } + return parts.joined(separator: "\u{1F}") + } + + func indexSignature(_ index: EditableIndexDefinition) -> String { + var parts: [String] = [ + options.columnListKey(index.columns), + String(index.isUnique), + options.matchKey(index.type.rawValue), + options.normalizedText(index.whereClause) ?? "" + ] + let prefixes = index.columnPrefixes + .sorted { $0.key.localizedStandardCompare($1.key) == .orderedAscending } + .map { "\(options.matchKey($0.key)):\($0.value)" } + parts.append(prefixes.joined(separator: ",")) + return parts.joined(separator: "\u{1F}") + } + + func foreignKeySignature(_ foreignKey: EditableForeignKeyDefinition) -> String { + [ + options.columnListKey(foreignKey.columns), + options.matchKey(foreignKey.referencedTable), + options.columnListKey(foreignKey.referencedColumns), + options.matchKey(foreignKey.referencedSchema ?? ""), + foreignKey.onDelete.rawValue, + foreignKey.onUpdate.rawValue + ].joined(separator: "\u{1F}") + } + + func strippedExtra(_ extra: String?) -> String? { + guard let extra else { return nil } + guard options.ignoreAutoIncrementSeed else { return extra } + return extra.replacingOccurrences( + of: "auto_increment=[0-9]+", + with: "auto_increment", + options: [.regularExpression, .caseInsensitive] + ) + } +} diff --git a/TablePro/Core/Compare/StructureDiffEngine.swift b/TablePro/Core/Compare/StructureDiffEngine.swift new file mode 100644 index 000000000..e87bd0995 --- /dev/null +++ b/TablePro/Core/Compare/StructureDiffEngine.swift @@ -0,0 +1,124 @@ +// +// StructureDiffEngine.swift +// TablePro +// +// Compares parsed structure metadata between two connections and produces the +// SchemaChange list that would make the target match the source. +// Structure is never compared as DDL text: driver-rendered DDL varies by +// formatting and system-generated names, which reports identical objects as +// different. +// + +import Foundation + +internal struct StructureDiffEngine { + internal let options: StructureCompareOptions + + internal init(options: StructureCompareOptions = .default) { + self.options = options + } + + internal func compare( + source: [TableStructureSnapshot], + target: [TableStructureSnapshot] + ) -> StructureDiffReport { + let targetByKey = indexByMatchKey(target) + + var results: [TableDiffResult] = [] + var handled: Set = [] + + for snapshot in source { + let key = options.matchKey(snapshot.name) + handled.insert(key) + guard let counterpart = targetByKey[key] else { + results.append(TableDiffResult( + tableName: snapshot.name, + schema: snapshot.schema, + status: .onlyInSource + )) + continue + } + results.append(compareTable(source: snapshot, target: counterpart)) + } + + for snapshot in target where !handled.contains(options.matchKey(snapshot.name)) { + results.append(TableDiffResult( + tableName: snapshot.name, + schema: snapshot.schema, + status: .onlyInTarget + )) + } + + let sorted = results.sorted { $0.id.localizedStandardCompare($1.id) == .orderedAscending } + return StructureDiffReport(results: sorted) + } + + internal func compareTable( + source: TableStructureSnapshot, + target: TableStructureSnapshot + ) -> TableDiffResult { + var changes: [SchemaChange] = [] + var notes: [String] = [] + + changes.append(contentsOf: columnChanges(source: source, target: target)) + changes.append(contentsOf: primaryKeyChanges(source: source, target: target)) + + let indexOutcome = indexChanges(source: source, target: target) + changes.append(contentsOf: indexOutcome.changes) + notes.append(contentsOf: indexOutcome.notes) + + let foreignKeyOutcome = foreignKeyChanges(source: source, target: target) + changes.append(contentsOf: foreignKeyOutcome.changes) + notes.append(contentsOf: foreignKeyOutcome.notes) + + notes.append(contentsOf: columnOrderNotes(source: source, target: target)) + notes.append(contentsOf: tableOptionNotes(source: source, target: target)) + + let status: TableDiffStatus = (changes.isEmpty && notes.isEmpty) ? .identical : .differs + return TableDiffResult( + tableName: source.name, + schema: source.schema, + status: status, + changes: changes, + notes: notes + ) + } + + private func indexByMatchKey(_ snapshots: [TableStructureSnapshot]) -> [String: TableStructureSnapshot] { + Dictionary(snapshots.map { (options.matchKey($0.name), $0) }, uniquingKeysWith: { first, _ in first }) + } + + private func columnOrderNotes( + source: TableStructureSnapshot, + target: TableStructureSnapshot + ) -> [String] { + guard !options.ignoreColumnOrder else { return [] } + let sourceOrder = source.columns.map { options.matchKey($0.name) } + let targetOrder = target.columns.map { options.matchKey($0.name) } + guard sourceOrder != targetOrder, Set(sourceOrder) == Set(targetOrder) else { return [] } + return [String(localized: "Column order differs. No statement is generated for reordering columns.")] + } + + private func tableOptionNotes( + source: TableStructureSnapshot, + target: TableStructureSnapshot + ) -> [String] { + var notes: [String] = [] + if let sourceEngine = source.engine, let targetEngine = target.engine, + options.matchKey(sourceEngine) != options.matchKey(targetEngine) { + notes.append(String( + format: String(localized: "Storage engine differs: %@ on source, %@ on target."), + sourceEngine, targetEngine + )) + } + guard !options.ignoreCollationAndCharset else { return notes } + if let sourceCollation = source.collation, let targetCollation = target.collation, + options.matchKey(sourceCollation) != options.matchKey(targetCollation) { + notes.append(String( + format: String(localized: "Table collation differs: %@ on source, %@ on target."), + sourceCollation, targetCollation + )) + } + return notes + } +} diff --git a/TablePro/Core/Compare/SyncHazard.swift b/TablePro/Core/Compare/SyncHazard.swift new file mode 100644 index 000000000..b05a2dd5e --- /dev/null +++ b/TablePro/Core/Compare/SyncHazard.swift @@ -0,0 +1,65 @@ +// +// SyncHazard.swift +// TablePro +// +// Typed risks attached to individual generated statements. +// A statement carrying a refused hazard is shown in the preview but is not +// executed unless it is explicitly allowed for that run. +// + +import Foundation + +internal enum SyncHazardKind: String, Codable, Hashable, Sendable { + case dataLoss + case lossyTypeChange + case tableRebuild + case collationOrCharsetChange + case primaryKeyChange + case engineOrStorageChange + case notSupportedByTarget +} + +internal enum SyncHazardSeverity: Int, Codable, Hashable, Sendable, Comparable { + case informational + case warning + case refusedByDefault + + internal static func < (lhs: SyncHazardSeverity, rhs: SyncHazardSeverity) -> Bool { + lhs.rawValue < rhs.rawValue + } +} + +internal struct SyncHazard: Identifiable, Hashable, Sendable { + internal let kind: SyncHazardKind + internal let severity: SyncHazardSeverity + internal let explanation: String + + internal var id: String { "\(kind.rawValue)-\(explanation)" } + + internal init(kind: SyncHazardKind, severity: SyncHazardSeverity, explanation: String) { + self.kind = kind + self.severity = severity + self.explanation = explanation + } +} + +internal extension SyncHazardKind { + var displayName: String { + switch self { + case .dataLoss: + return String(localized: "Data loss") + case .lossyTypeChange: + return String(localized: "Lossy type change") + case .tableRebuild: + return String(localized: "Table rebuild") + case .collationOrCharsetChange: + return String(localized: "Collation or character set change") + case .primaryKeyChange: + return String(localized: "Primary key change") + case .engineOrStorageChange: + return String(localized: "Storage engine change") + case .notSupportedByTarget: + return String(localized: "Not supported by the target") + } + } +} diff --git a/TablePro/Core/Compare/SyncSafetyClassifier.swift b/TablePro/Core/Compare/SyncSafetyClassifier.swift new file mode 100644 index 000000000..478efd4eb --- /dev/null +++ b/TablePro/Core/Compare/SyncSafetyClassifier.swift @@ -0,0 +1,133 @@ +// +// SyncSafetyClassifier.swift +// TablePro +// +// Decides which generated statements are unsafe enough to be refused unless +// the user allows them for a single run. Refusing by default keeps the preview +// honest: nothing runs that the preview did not show as allowed. +// + +import Foundation + +internal struct SyncSafetyClassifier { + internal func hazards(for change: SchemaChange) -> [SyncHazard] { + switch change { + case .deleteColumn(let column): + return [SyncHazard( + kind: .dataLoss, + severity: .refusedByDefault, + explanation: String( + format: String(localized: "Dropping column %@ permanently removes its data."), + column.name + ) + )] + case .modifyColumn(let old, let new): + return modifyColumnHazards(old: old, new: new) + case .modifyPrimaryKey: + return [SyncHazard( + kind: .primaryKeyChange, + severity: .refusedByDefault, + explanation: String(localized: "Changing the primary key rebuilds the table and can fail on duplicate values.") + )] + case .deleteIndex(let index): + return [SyncHazard( + kind: .tableRebuild, + severity: .warning, + explanation: String( + format: String(localized: "Dropping index %@ can slow existing queries."), + index.name + ) + )] + case .deleteForeignKey, .addForeignKey, .modifyForeignKey, .addColumn, .addIndex, .modifyIndex: + return [] + } + } + + internal func hazards(forDropping tableName: String) -> [SyncHazard] { + [SyncHazard( + kind: .dataLoss, + severity: .refusedByDefault, + explanation: String( + format: String(localized: "Dropping table %@ permanently removes the table and all of its rows."), + tableName + ) + )] + } + + private func modifyColumnHazards( + old: EditableColumnDefinition, + new: EditableColumnDefinition + ) -> [SyncHazard] { + var hazards: [SyncHazard] = [] + + if let narrowing = TypeWidthComparison.classify(from: old.dataType, to: new.dataType), + narrowing == .narrowing { + hazards.append(SyncHazard( + kind: .lossyTypeChange, + severity: .refusedByDefault, + explanation: String( + format: String(localized: "Changing %@ from %@ to %@ can truncate existing values."), + old.name, old.dataType, new.dataType + ) + )) + } + + if old.isNullable, !new.isNullable { + hazards.append(SyncHazard( + kind: .dataLoss, + severity: .refusedByDefault, + explanation: String( + format: String(localized: "Making %@ NOT NULL fails if any existing row holds NULL."), + old.name + ) + )) + } + + if normalized(old.collation) != normalized(new.collation) + || normalized(old.charset) != normalized(new.charset) { + hazards.append(SyncHazard( + kind: .collationOrCharsetChange, + severity: .warning, + explanation: String( + format: String(localized: "Changing the collation of %@ can change sort order and uniqueness."), + old.name + ) + )) + } + + return hazards + } + + private func normalized(_ value: String?) -> String { + (value ?? "").trimmingCharacters(in: .whitespacesAndNewlines).lowercased() + } +} + +internal enum TypeWidthComparison { + internal enum Outcome { + case widening + case narrowing + case equivalent + } + + internal static func classify(from oldType: String, to newType: String) -> Outcome? { + let old = parse(oldType) + let new = parse(newType) + guard old.base == new.base else { return .narrowing } + guard let oldWidth = old.width, let newWidth = new.width else { return .equivalent } + if newWidth > oldWidth { return .widening } + if newWidth < oldWidth { return .narrowing } + return .equivalent + } + + private static func parse(_ type: String) -> (base: String, width: Int?) { + let lowered = type.trimmingCharacters(in: .whitespacesAndNewlines).lowercased() + guard let open = lowered.firstIndex(of: "("), let close = lowered.firstIndex(of: ")"), open < close else { + return (lowered, nil) + } + let base = String(lowered[lowered.startIndex.. Int { + comparable.filter { $0.status == status }.count + } +} diff --git a/TablePro/Core/Compare/TableStructureSnapshot.swift b/TablePro/Core/Compare/TableStructureSnapshot.swift new file mode 100644 index 000000000..9f3da1076 --- /dev/null +++ b/TablePro/Core/Compare/TableStructureSnapshot.swift @@ -0,0 +1,129 @@ +// +// TableStructureSnapshot.swift +// TablePro +// +// One side's view of a table's structure, already converted out of plugin +// transfer types so the diff engine stays free of driver concerns. +// + +import Foundation +import TableProPluginKit + +internal struct TableStructureSnapshot: Hashable { + internal let name: String + internal let schema: String? + internal let columns: [EditableColumnDefinition] + internal let indexes: [EditableIndexDefinition] + internal let foreignKeys: [EditableForeignKeyDefinition] + internal let engine: String? + internal let charset: String? + internal let collation: String? + + internal init( + name: String, + schema: String? = nil, + columns: [EditableColumnDefinition], + indexes: [EditableIndexDefinition] = [], + foreignKeys: [EditableForeignKeyDefinition] = [], + engine: String? = nil, + charset: String? = nil, + collation: String? = nil + ) { + self.name = name + self.schema = schema + self.columns = columns + self.indexes = indexes + self.foreignKeys = foreignKeys + self.engine = engine + self.charset = charset + self.collation = collation + } + + internal var primaryKeyColumns: [String] { + if let primary = indexes.first(where: { $0.isPrimary }) { + return primary.columns + } + return columns.filter { $0.isPrimaryKey }.map { $0.name } + } + + internal var qualifiedName: String { + guard let schema, !schema.isEmpty else { return name } + return "\(schema).\(name)" + } +} + +internal extension TableStructureSnapshot { + static func from( + table: PluginTableInfo, + columns: [PluginColumnInfo], + indexes: [PluginIndexInfo], + foreignKeys: [PluginForeignKeyInfo], + metadata: PluginTableMetadata? = nil + ) -> TableStructureSnapshot { + TableStructureSnapshot( + name: table.name, + schema: table.schema, + columns: columns.map { EditableColumnDefinition.from($0.toColumnInfo()) }, + indexes: indexes.map { EditableIndexDefinition.from($0.toIndexInfo()) }, + foreignKeys: Self.groupForeignKeys(foreignKeys), + engine: metadata?.engine, + charset: nil, + collation: metadata?.collation + ) + } + + private static func groupForeignKeys(_ foreignKeys: [PluginForeignKeyInfo]) -> [EditableForeignKeyDefinition] { + var order: [String] = [] + var grouped: [String: [PluginForeignKeyInfo]] = [:] + for foreignKey in foreignKeys { + if grouped[foreignKey.name] == nil { order.append(foreignKey.name) } + grouped[foreignKey.name, default: []].append(foreignKey) + } + return order.compactMap { name in + guard let parts = grouped[name], let first = parts.first else { return nil } + return EditableForeignKeyDefinition( + id: UUID(), + name: name, + columns: parts.map { $0.column }, + referencedTable: first.referencedTable, + referencedColumns: parts.map { $0.referencedColumn }, + referencedSchema: first.referencedSchema, + onDelete: EditableForeignKeyDefinition.ReferentialAction( + rawValue: first.onDelete.uppercased()) ?? .noAction, + onUpdate: EditableForeignKeyDefinition.ReferentialAction( + rawValue: first.onUpdate.uppercased()) ?? .noAction + ) + } + } +} + +private extension PluginColumnInfo { + func toColumnInfo() -> ColumnInfo { + ColumnInfo( + name: name, + dataType: dataType, + isNullable: isNullable, + isPrimaryKey: isPrimaryKey, + defaultValue: defaultValue, + extra: extra, + charset: charset, + collation: collation, + comment: comment, + allowedValues: allowedValues + ) + } +} + +private extension PluginIndexInfo { + func toIndexInfo() -> IndexInfo { + IndexInfo( + name: name, + columns: columns, + isUnique: isUnique, + isPrimary: isPrimary, + type: type, + columnPrefixes: columnPrefixes, + whereClause: whereClause + ) + } +} diff --git a/TablePro/Core/Services/Infrastructure/SceneIdentifiers.swift b/TablePro/Core/Services/Infrastructure/SceneIdentifiers.swift index 08250e970..4fa5670d0 100644 --- a/TablePro/Core/Services/Infrastructure/SceneIdentifiers.swift +++ b/TablePro/Core/Services/Infrastructure/SceneIdentifiers.swift @@ -9,4 +9,5 @@ internal enum SceneId { static let welcome = "welcome" static let connectionForm = "connection-form" static let integrationsActivity = "integrations-activity" + static let compareSync = "compare-sync" } diff --git a/TablePro/Core/Services/Infrastructure/WindowOpener.swift b/TablePro/Core/Services/Infrastructure/WindowOpener.swift index 3c0e87045..af86d2e7b 100644 --- a/TablePro/Core/Services/Infrastructure/WindowOpener.swift +++ b/TablePro/Core/Services/Infrastructure/WindowOpener.swift @@ -17,6 +17,7 @@ internal final class WindowOpener { @ObservationIgnored private var openWelcomeAction: (() -> Void)? @ObservationIgnored private var openConnectionFormAction: ((UUID?) -> Void)? @ObservationIgnored private var openIntegrationsActivityAction: (() -> Void)? + @ObservationIgnored private var openCompareSyncAction: ((UUID?) -> Void)? @ObservationIgnored private var openSettingsAction: (() -> Void)? @ObservationIgnored private var presentTypeChooserAction: ((DatabaseType?, @escaping (DatabaseType) -> Void) -> Void)? @@ -81,16 +82,22 @@ internal final class WindowOpener { run { $0.openIntegrationsActivityAction?() } } + internal func openCompareSync(prefillSource connectionId: UUID? = nil) { + run { $0.openCompareSyncAction?(connectionId) } + } + internal func wire( openWelcome: @escaping () -> Void, openConnectionForm: @escaping (UUID?) -> Void, openIntegrationsActivity: @escaping () -> Void, + openCompareSync: @escaping (UUID?) -> Void, openSettings: @escaping () -> Void, presentTypeChooser: @escaping (DatabaseType?, @escaping (DatabaseType) -> Void) -> Void ) { openWelcomeAction = openWelcome openConnectionFormAction = openConnectionForm openIntegrationsActivityAction = openIntegrationsActivity + openCompareSyncAction = openCompareSync openSettingsAction = openSettings presentTypeChooserAction = presentTypeChooser isWired = true diff --git a/TablePro/Models/Compare/CompareSyncPayload.swift b/TablePro/Models/Compare/CompareSyncPayload.swift new file mode 100644 index 000000000..e0a35db26 --- /dev/null +++ b/TablePro/Models/Compare/CompareSyncPayload.swift @@ -0,0 +1,18 @@ +// +// CompareSyncPayload.swift +// TablePro +// +// Scene payload for the Compare & Sync window. A dedicated type rather than a +// bare UUID?, so this scene never competes with the connection form for an +// openWindow(value:) call carrying the same payload type. +// + +import Foundation + +internal struct CompareSyncPayload: Codable, Hashable { + internal let sourceConnectionId: UUID? + + internal init(sourceConnectionId: UUID? = nil) { + self.sourceConnectionId = sourceConnectionId + } +} diff --git a/TablePro/Models/Settings/ProFeature.swift b/TablePro/Models/Settings/ProFeature.swift index 8c44a0aaa..6de80cdd3 100644 --- a/TablePro/Models/Settings/ProFeature.swift +++ b/TablePro/Models/Settings/ProFeature.swift @@ -15,6 +15,7 @@ internal enum ProFeature: String, CaseIterable { case linkedFolders case teamCatalog case teamLibrary + case compareSync var displayName: String { switch self { @@ -30,6 +31,8 @@ internal enum ProFeature: String, CaseIterable { return String(localized: "Team Catalog") case .teamLibrary: return String(localized: "Team Library") + case .compareSync: + return String(localized: "Compare & Sync") } } @@ -47,6 +50,8 @@ internal enum ProFeature: String, CaseIterable { return "person.2.fill" case .teamLibrary: return "books.vertical.fill" + case .compareSync: + return "arrow.left.arrow.right.square" } } @@ -64,13 +69,15 @@ internal enum ProFeature: String, CaseIterable { return String(localized: "Publish connections to a shared folder your team reads from. Passwords are never included.") case .teamLibrary: return String(localized: "Share connections and saved queries with your team through your account. Passwords are never included.") + case .compareSync: + return String(localized: "Compare structure or data between two connections and generate the sync script.") } } /// The lowest license tier that unlocks this feature. var requiredTier: LicenseTier { switch self { - case .iCloudSync, .encryptedExport, .envVarReferences, .linkedFolders: + case .iCloudSync, .encryptedExport, .envVarReferences, .linkedFolders, .compareSync: return .starter case .teamCatalog, .teamLibrary: return .team diff --git a/TablePro/TableProApp.swift b/TablePro/TableProApp.swift index f358f3211..f93bc69ba 100644 --- a/TablePro/TableProApp.swift +++ b/TablePro/TableProApp.swift @@ -265,6 +265,10 @@ struct AppMenuCommands: Commands { } .optionalKeyboardShortcut(shortcut(for: .manageConnections)) + Button(String(localized: "Compare & Sync Databases...")) { + CompareSyncLauncher.open() + } + Button(String(localized: "Open Sample Database")) { SampleDatabaseLauncher.open() } @@ -923,6 +927,23 @@ struct TableProApp: App { .defaultSize(width: 820, height: 600) .commandsRemoved() + WindowGroup("Compare & Sync", id: SceneId.compareSync, for: CompareSyncPayload.self) { $payload in + CompareSyncWindowView(prefillSourceConnectionId: payload?.sourceConnectionId) + .background(WindowOpenerBridge()) + .background(WindowChromeConfigurator(restorable: false)) + .environment(\.appServices, .live) + } + .windowResizability(.contentMinSize) + .defaultSize(width: 1_040, height: 680) + .commands { + AppMenuCommands( + settingsManager: AppSettingsManager.shared, + updaterBridge: updaterBridge, + commandRegistry: commandRegistry, + recentlyClosedStore: RecentlyClosedTabStore.shared + ) + } + Window("Integrations Activity", id: SceneId.integrationsActivity) { IntegrationsActivityView() .background(WindowOpenerBridge()) diff --git a/TablePro/Views/Compare/CompareStatusBanner.swift b/TablePro/Views/Compare/CompareStatusBanner.swift new file mode 100644 index 000000000..0f879d52e --- /dev/null +++ b/TablePro/Views/Compare/CompareStatusBanner.swift @@ -0,0 +1,114 @@ +// +// CompareStatusBanner.swift +// TablePro +// +// States plainly whether anything has been written yet, and carries the target +// connection's colour so a production target stays visually distinct. +// + +import SwiftUI + +internal struct CompareStatusBanner: View { + internal let session: CompareSyncSession + + internal var body: some View { + HStack(spacing: 8) { + Image(systemName: symbol) + .foregroundStyle(tint) + Text(session.bannerText) + .font(.callout) + .foregroundStyle(.primary) + Spacer() + if let target = session.target { + HStack(spacing: 6) { + Circle() + .fill(target.color.color) + .frame(width: 9, height: 9) + Text(String(format: String(localized: "Target: %@"), target.qualifiedDescription)) + .font(.caption) + .foregroundStyle(.secondary) + } + } + } + .padding(.horizontal, 16) + .padding(.vertical, 8) + .background(tint.opacity(0.08)) + } + + private var symbol: String { + switch session.activity { + case .applying: return "exclamationmark.triangle.fill" + case .comparing, .connecting: return "magnifyingglass" + case .idle: return session.hasWrittenToTarget ? "checkmark.circle" : "eye" + } + } + + private var tint: Color { + switch session.activity { + case .applying: return .orange + case .comparing, .connecting: return .accentColor + case .idle: return session.hasWrittenToTarget ? .green : .secondary + } + } +} + +internal struct CompareSyncFooter: View { + internal let session: CompareSyncSession + @Binding internal var isConfirmingApply: Bool + + internal var body: some View { + HStack(spacing: 12) { + if let message = session.errorMessage { + Label(message, systemImage: "exclamationmark.octagon.fill") + .foregroundStyle(.red) + .font(.callout) + .lineLimit(2) + } else if let message = session.informationalMessage { + Label(message, systemImage: "info.circle") + .foregroundStyle(.secondary) + .font(.callout) + .lineLimit(2) + } + + Spacer() + + if session.isBusy { + if let progress = session.progress { + ProgressView(progress) + .progressViewStyle(.linear) + .frame(width: 180) + } else { + ProgressView() + .controlSize(.small) + } + Button(String(localized: "Cancel")) { session.cancelRunningWork() } + } else { + actionButtons + } + } + .padding(.horizontal, 16) + .padding(.vertical, 10) + } + + @ViewBuilder + private var actionButtons: some View { + switch session.step { + case .setup: + Button(String(localized: "Compare")) { session.runComparison() } + .keyboardShortcut(.defaultAction) + .disabled(!session.canCompare) + case .review: + Button(String(localized: "Back")) { session.step = .setup } + Button(String(localized: "Generate Script")) { session.buildScript() } + .keyboardShortcut(.defaultAction) + .disabled(!session.canBuildScript) + case .script: + Button(String(localized: "Back")) { session.step = .review } + Button(String(localized: "Apply to Target")) { isConfirmingApply = true } + .disabled(session.statements.isEmpty) + case .apply: + Button(String(localized: "Done")) { session.step = .setup } + .keyboardShortcut(.defaultAction) + } + } +} diff --git a/TablePro/Views/Compare/CompareSyncApplyView.swift b/TablePro/Views/Compare/CompareSyncApplyView.swift new file mode 100644 index 000000000..083e76a7e --- /dev/null +++ b/TablePro/Views/Compare/CompareSyncApplyView.swift @@ -0,0 +1,121 @@ +// +// CompareSyncApplyView.swift +// TablePro +// +// Per-statement outcome of a run, including what was held back and whether the +// run rolled back. +// + +import SwiftUI + +internal struct CompareSyncApplyView: View { + internal let session: CompareSyncSession + + internal var body: some View { + VStack(alignment: .leading, spacing: 0) { + summary + Divider() + outcomeList + } + } + + @ViewBuilder + private var summary: some View { + if let result = session.runResult { + VStack(alignment: .leading, spacing: 8) { + HStack(spacing: 16) { + countBadge( + String(localized: "Executed"), result.executedCount, + "checkmark.circle.fill", result.executedCount > 0 ? .green : .secondary + ) + countBadge( + String(localized: "Failed"), result.failedCount, + "xmark.circle.fill", result.failedCount > 0 ? .red : .secondary + ) + countBadge( + String(localized: "Held back"), result.heldBackCount, + "hand.raised.fill", result.heldBackCount > 0 ? .orange : .secondary + ) + Spacer() + } + + if result.rolledBack { + Label( + String(localized: "The run was rolled back. The target is unchanged."), + systemImage: "arrow.uturn.backward.circle.fill" + ) + .foregroundStyle(.orange) + } else if result.failedCount > 0 { + Label( + String(localized: "Statements that already ran stay applied. Compare again to see the current state."), + systemImage: "exclamationmark.triangle.fill" + ) + .foregroundStyle(.orange) + } + + if result.cancelled { + Label(String(localized: "Cancelled before the script finished."), systemImage: "stop.circle") + .foregroundStyle(.secondary) + } + } + .padding(16) + } else { + Text("Nothing has run yet.") + .foregroundStyle(.secondary) + .padding(16) + } + } + + private func countBadge(_ label: String, _ count: Int, _ symbol: String, _ tint: Color) -> some View { + HStack(spacing: 6) { + Image(systemName: symbol).foregroundStyle(tint) + Text("\(label): \(count)") + } + .font(.callout) + } + + private var outcomeList: some View { + List(session.runResult?.outcomes ?? []) { outcome in + VStack(alignment: .leading, spacing: 3) { + HStack(spacing: 6) { + Image(systemName: symbol(for: outcome)) + .foregroundStyle(tint(for: outcome)) + Text(outcome.statement.summary) + .font(.callout) + Spacer() + Text(stateLabel(for: outcome)) + .font(.caption) + .foregroundStyle(.secondary) + } + Text(outcome.statement.sql) + .font(.system(.caption2, design: .monospaced)) + .foregroundStyle(.secondary) + .textSelection(.enabled) + .lineLimit(2) + if let error = outcome.error { + Text(error) + .font(.caption) + .foregroundStyle(.red) + .textSelection(.enabled) + } + } + .padding(.vertical, 2) + } + .listStyle(.inset) + } + + private func symbol(for outcome: SyncStatementOutcome) -> String { + if outcome.wasSkipped { return "hand.raised.fill" } + return outcome.error == nil ? "checkmark.circle.fill" : "xmark.circle.fill" + } + + private func tint(for outcome: SyncStatementOutcome) -> Color { + if outcome.wasSkipped { return .orange } + return outcome.error == nil ? .green : .red + } + + private func stateLabel(for outcome: SyncStatementOutcome) -> String { + if outcome.wasSkipped { return String(localized: "Held back") } + return outcome.error == nil ? String(localized: "Ran") : String(localized: "Failed") + } +} diff --git a/TablePro/Views/Compare/CompareSyncScriptView.swift b/TablePro/Views/Compare/CompareSyncScriptView.swift new file mode 100644 index 000000000..f8b4a08a1 --- /dev/null +++ b/TablePro/Views/Compare/CompareSyncScriptView.swift @@ -0,0 +1,214 @@ +// +// CompareSyncScriptView.swift +// TablePro +// +// The generated script and its hazards. Statements that would destroy data are +// listed but held back until they are allowed for this run. +// + +import AppKit +import SwiftUI +import TableProPluginKit +import UniformTypeIdentifiers + +internal struct CompareSyncScriptView: View { + @Bindable internal var session: CompareSyncSession + + @State private var isExporting = false + + internal var body: some View { + HSplitView { + hazardPane + .frame(minWidth: 300, idealWidth: 340) + scriptPane + .frame(minWidth: 400) + } + } + + private var heldBack: [SyncStatement] { + session.statements.filter { $0.isRefusedByDefault } + } + + private var hazardPane: some View { + VStack(alignment: .leading, spacing: 0) { + HStack { + Text("Warnings") + .font(.headline) + Spacer() + if !heldBack.isEmpty { + Text("\(allowedCount)/\(heldBack.count)") + .font(.caption) + .foregroundStyle(.secondary) + } + } + .padding(.horizontal, 12) + .padding(.vertical, 8) + + Divider() + + if heldBack.isEmpty { + VStack(spacing: 6) { + Image(systemName: "checkmark.shield") + .font(.title2) + .foregroundStyle(.green) + Text("Nothing in this script destroys data.") + .font(.callout) + .foregroundStyle(.secondary) + .multilineTextAlignment(.center) + } + .padding(20) + .frame(maxWidth: .infinity, maxHeight: .infinity) + } else { + List { + Section { + Text("These are held back. Allow one to include it in this run only; the choice is never saved.") + .font(.caption) + .foregroundStyle(.secondary) + } + ForEach(heldBack) { statement in + HeldBackStatementRow(statement: statement, session: session) + } + } + .listStyle(.inset) + } + + Divider() + executionSettings + } + } + + private var allowedCount: Int { + heldBack.filter { session.executionSettings.allowedHazardStatementIds.contains($0.id) }.count + } + + private var executionSettings: some View { + VStack(alignment: .leading, spacing: 6) { + Picker(String(localized: "On error"), selection: $session.executionSettings.errorHandling) { + Text("Stop and roll back").tag(ImportErrorHandling.stopAndRollback) + Text("Stop and keep what ran").tag(ImportErrorHandling.stopAndCommit) + Text("Skip and continue").tag(ImportErrorHandling.skipAndContinue) + } + + Toggle(String(localized: "Run in a transaction"), isOn: $session.executionSettings.wrapInTransaction) + .disabled(session.executionSettings.errorHandling == .skipAndContinue) + + if session.executionSettings.errorHandling == .skipAndContinue { + Text("A transaction cannot be used with skip and continue, because together they leave the target half-applied.") + .font(.caption2) + .foregroundStyle(.secondary) + } + } + .padding(12) + } + + private var scriptPane: some View { + VStack(alignment: .leading, spacing: 0) { + HStack { + Text("Script") + .font(.headline) + Text("\(session.statements.count) statements") + .font(.caption) + .foregroundStyle(.secondary) + Spacer() + Button(String(localized: "Copy")) { copyScript() } + Button(String(localized: "Save...")) { isExporting = true } + } + .padding(.horizontal, 12) + .padding(.vertical, 8) + + Divider() + + TextEditor(text: scriptBinding) + .font(.system(.body, design: .monospaced)) + .frame(maxWidth: .infinity, maxHeight: .infinity) + } + .fileExporter( + isPresented: $isExporting, + document: SyncScriptDocument(text: scriptBinding.wrappedValue), + contentType: SyncScriptDocument.sqlType, + defaultFilename: "sync" + ) { _ in } + } + + private var scriptBinding: Binding { + Binding( + get: { session.editedScript ?? session.statements.map { $0.sql }.joined(separator: "\n") }, + set: { session.editedScript = $0 } + ) + } + + private func copyScript() { + ClipboardService.shared.writeText(scriptBinding.wrappedValue) + } +} + +internal struct HeldBackStatementRow: View { + internal let statement: SyncStatement + @Bindable internal var session: CompareSyncSession + + internal var body: some View { + VStack(alignment: .leading, spacing: 4) { + Toggle(isOn: allowBinding) { + Text(statement.summary) + .font(.callout) + } + ForEach(statement.hazards) { hazard in + Label { + VStack(alignment: .leading, spacing: 1) { + Text(hazard.kind.displayName) + .font(.caption.weight(.semibold)) + Text(hazard.explanation) + .font(.caption2) + .foregroundStyle(.secondary) + } + } icon: { + Image(systemName: "exclamationmark.triangle.fill") + .foregroundStyle(.orange) + } + } + Text(statement.sql) + .font(.system(.caption2, design: .monospaced)) + .foregroundStyle(.secondary) + .textSelection(.enabled) + .lineLimit(3) + } + .padding(.vertical, 4) + } + + private var allowBinding: Binding { + Binding( + get: { session.executionSettings.allowedHazardStatementIds.contains(statement.id) }, + set: { allowed in + if allowed { + session.executionSettings.allowedHazardStatementIds.insert(statement.id) + } else { + session.executionSettings.allowedHazardStatementIds.remove(statement.id) + } + } + ) + } +} + +internal struct SyncScriptDocument: FileDocument { + internal static let sqlType = UTType(filenameExtension: "sql") ?? .plainText + + internal static var readableContentTypes: [UTType] { [sqlType, .plainText] } + + internal let text: String + + internal init(text: String) { + self.text = text + } + + internal init(configuration: ReadConfiguration) throws { + guard let data = configuration.file.regularFileContents, + let decoded = String(bytes: data, encoding: .utf8) else { + throw CocoaError(.fileReadCorruptFile) + } + text = decoded + } + + internal func fileWrapper(configuration: WriteConfiguration) throws -> FileWrapper { + FileWrapper(regularFileWithContents: Data(text.utf8)) + } +} diff --git a/TablePro/Views/Compare/CompareSyncSetupView.swift b/TablePro/Views/Compare/CompareSyncSetupView.swift new file mode 100644 index 000000000..c5f83d121 --- /dev/null +++ b/TablePro/Views/Compare/CompareSyncSetupView.swift @@ -0,0 +1,201 @@ +// +// CompareSyncSetupView.swift +// TablePro +// +// Picks the two endpoints. Neither picker is prefilled with a target, and a +// read-only connection is refused as the target at selection time rather than +// at apply time. +// + +import SwiftUI + +internal struct CompareSyncSetupView: View { + @Bindable internal var session: CompareSyncSession + + @State private var candidates: [CompareSyncEndpoint] = [] + + internal var body: some View { + ScrollView { + VStack(alignment: .leading, spacing: 20) { + modePicker + endpointPickers + directionSummary + optionsSection + } + .padding(20) + .frame(maxWidth: .infinity, alignment: .leading) + } + .task { candidates = CompareSyncEndpoint.candidates(from: ConnectionStorage.shared.loadConnections()) } + } + + private var modePicker: some View { + VStack(alignment: .leading, spacing: 6) { + Text("What to compare") + .font(.headline) + Picker("", selection: $session.mode) { + ForEach(CompareSyncMode.allCases, id: \.rawValue) { mode in + Text(mode.displayName).tag(mode) + } + } + .pickerStyle(.segmented) + .labelsHidden() + .frame(width: 260) + .onChange(of: session.mode) { _, _ in session.resetComparison() } + } + } + + private var endpointPickers: some View { + HStack(alignment: .top, spacing: 16) { + endpointColumn( + title: String(localized: "Source"), + caption: String(localized: "Will not change"), + selection: $session.source, + isTarget: false + ) + + Button { + session.swapEndpoints() + } label: { + Image(systemName: "arrow.left.arrow.right") + } + .help(String(localized: "Swap source and target")) + .disabled(!session.canSwap) + .padding(.top, 28) + + endpointColumn( + title: String(localized: "Target"), + caption: String(localized: "Will be changed"), + selection: $session.target, + isTarget: true + ) + } + } + + private func endpointColumn( + title: String, + caption: String, + selection: Binding, + isTarget: Bool + ) -> some View { + VStack(alignment: .leading, spacing: 6) { + HStack(spacing: 6) { + Text(title).font(.headline) + Text(caption) + .font(.caption) + .foregroundStyle(isTarget ? Color.orange : Color.secondary) + } + Picker("", selection: selection) { + Text(String(localized: "Choose a connection")).tag(CompareSyncEndpoint?.none) + ForEach(candidates) { candidate in + endpointRow(candidate, isTarget: isTarget) + .tag(CompareSyncEndpoint?.some(candidate)) + } + } + .labelsHidden() + .frame(maxWidth: .infinity) + .onChange(of: selection.wrappedValue) { _, _ in session.resetComparison() } + + if isTarget, let target = session.target, let reason = target.ineligibleAsTargetReason { + Label(reason, systemImage: "lock.fill") + .font(.caption) + .foregroundStyle(.red) + } + } + } + + private func endpointRow(_ candidate: CompareSyncEndpoint, isTarget: Bool) -> some View { + HStack(spacing: 6) { + Circle().fill(candidate.color.color).frame(width: 8, height: 8) + Text(candidate.qualifiedDescription) + if isTarget, let reason = candidate.ineligibleAsTargetReason { + Text(String(format: String(localized: "(%@)"), reason)) + .foregroundStyle(.secondary) + } + } + } + + @ViewBuilder + private var directionSummary: some View { + if let sentence = session.directionSentence { + Label(sentence, systemImage: "arrow.right.circle.fill") + .font(.callout) + .padding(10) + .background(Color.orange.opacity(0.1), in: RoundedRectangle(cornerRadius: 6)) + } + if let notice = session.crossEngineNotice { + Label(notice, systemImage: "exclamationmark.triangle") + .font(.caption) + .foregroundStyle(.secondary) + } + } + + @ViewBuilder + private var optionsSection: some View { + if session.mode == .structure { + StructureCompareOptionsView(session: session) + } else { + DataCompareOptionsView(session: session) + } + } +} + +internal struct StructureCompareOptionsView: View { + @Bindable internal var session: CompareSyncSession + + internal var body: some View { + VStack(alignment: .leading, spacing: 6) { + Text("What to ignore") + .font(.headline) + Text("These drift between environments by design. Turn one off to have the difference reported.") + .font(.caption) + .foregroundStyle(.secondary) + + Toggle("Identifier case", isOn: $session.structureOptions.ignoreIdentifierCase) + Toggle("Column order", isOn: $session.structureOptions.ignoreColumnOrder) + Toggle("Whitespace in default values and comments", isOn: $session.structureOptions.ignoreWhitespaceInText) + Toggle("Auto-increment seed value", isOn: $session.structureOptions.ignoreAutoIncrementSeed) + Toggle("Collation and character set", isOn: $session.structureOptions.ignoreCollationAndCharset) + Toggle("Comments, owners, and definers", isOn: $session.structureOptions.ignoreCommentsAndOwners) + } + .onChange(of: session.structureOptions) { _, _ in session.resetComparison() } + } +} + +internal struct DataCompareOptionsView: View { + @Bindable internal var session: CompareSyncSession + + internal var body: some View { + VStack(alignment: .leading, spacing: 6) { + Text("What to write") + .font(.headline) + + Toggle("Insert rows missing from the target", isOn: $session.dataOptions.insertMissingRows) + Toggle("Update rows that differ", isOn: $session.dataOptions.updateDifferingRows) + Toggle("Delete rows the source does not have", isOn: $session.dataOptions.deleteExtraRows) + + Text("Delete is off by default so the first run cannot remove a row you did not mean to touch.") + .font(.caption) + .foregroundStyle(.secondary) + + Divider().padding(.vertical, 4) + + Text("How values are judged equal") + .font(.headline) + HStack { + Text("Numeric tolerance") + TextField("", value: $session.dataOptions.floatTolerance, format: .number) + .frame(width: 100) + } + HStack { + Text("Timestamp fractional digits") + Stepper( + value: $session.dataOptions.timestampFractionalDigits, + in: 0...9 + ) { + Text("\(session.dataOptions.timestampFractionalDigits)") + } + .frame(width: 120) + } + } + } +} diff --git a/TablePro/Views/Compare/CompareSyncWindowView.swift b/TablePro/Views/Compare/CompareSyncWindowView.swift new file mode 100644 index 000000000..01c02a08e --- /dev/null +++ b/TablePro/Views/Compare/CompareSyncWindowView.swift @@ -0,0 +1,112 @@ +// +// CompareSyncWindowView.swift +// TablePro +// +// Root of the Compare & Sync auxiliary window. Steps advance in one direction +// and the banner never lets the user forget which side is written to. +// + +import SwiftUI + +internal struct CompareSyncWindowView: View { + internal let prefillSourceConnectionId: UUID? + + @State private var session = CompareSyncSession() + @State private var isConfirmingApply = false + @State private var isConfirmingClose = false + + internal var body: some View { + VStack(spacing: 0) { + CompareSyncStepHeader(session: session) + Divider() + CompareStatusBanner(session: session) + Divider() + + stepContent + .frame(maxWidth: .infinity, maxHeight: .infinity) + + Divider() + CompareSyncFooter(session: session, isConfirmingApply: $isConfirmingApply) + } + .frame(minWidth: 900, minHeight: 560) + .task { applyPrefill() } + .alert(String(localized: "Apply changes?"), isPresented: $isConfirmingApply) { + Button(String(localized: "Cancel"), role: .cancel) {} + Button(String(localized: "Apply")) { session.apply() } + } message: { + Text(applyConfirmationMessage) + } + } + + @ViewBuilder + private var stepContent: some View { + switch session.step { + case .setup: + CompareSyncSetupView(session: session) + case .review: + if session.mode == .structure { + StructureCompareReviewView(session: session) + } else { + DataCompareReviewView(session: session) + } + case .script: + CompareSyncScriptView(session: session) + case .apply: + CompareSyncApplyView(session: session) + } + } + + private var applyConfirmationMessage: String { + let runnable = session.statements.filter { session.executionSettings.canRun($0) }.count + let heldBack = session.statements.count - runnable + let target = session.target?.qualifiedDescription ?? "" + guard heldBack > 0 else { + return String( + format: String(localized: "%d statements will run against %@. This cannot be undone automatically."), + runnable, target + ) + } + return String( + format: String(localized: "%d statements will run against %@. %d are held back as unsafe. This cannot be undone automatically."), + runnable, target, heldBack + ) + } + + private func applyPrefill() { + guard let prefillSourceConnectionId, session.source == nil else { return } + let connections = ConnectionStorage.shared.loadConnections() + guard let match = connections.first(where: { $0.id == prefillSourceConnectionId }) else { return } + session.source = CompareSyncEndpoint.candidates(from: [match]).first + } +} + +internal struct CompareSyncStepHeader: View { + internal let session: CompareSyncSession + + internal var body: some View { + HStack(spacing: 12) { + ForEach(CompareSyncStep.allCases, id: \.rawValue) { step in + HStack(spacing: 6) { + Image(systemName: symbol(for: step)) + .foregroundStyle(step <= session.step ? Color.accentColor : Color.secondary) + Text(step.title) + .fontWeight(step == session.step ? .semibold : .regular) + .foregroundStyle(step <= session.step ? Color.primary : Color.secondary) + } + if step != CompareSyncStep.allCases.last { + Image(systemName: "chevron.right") + .font(.caption) + .foregroundStyle(.tertiary) + } + } + Spacer() + } + .padding(.horizontal, 16) + .padding(.vertical, 10) + } + + private func symbol(for step: CompareSyncStep) -> String { + guard step != session.step else { return "\(step.rawValue + 1).circle.fill" } + return step < session.step ? "checkmark.circle.fill" : "\(step.rawValue + 1).circle" + } +} diff --git a/TablePro/Views/Compare/DataCompareReviewView.swift b/TablePro/Views/Compare/DataCompareReviewView.swift new file mode 100644 index 000000000..8efb6a7fb --- /dev/null +++ b/TablePro/Views/Compare/DataCompareReviewView.swift @@ -0,0 +1,259 @@ +// +// DataCompareReviewView.swift +// TablePro +// +// Per-table row counts on the left, the row differences on the right. One grid +// filtered six ways rather than six separate views. +// + +import SwiftUI +import TableProPluginKit + +internal enum RowDiffFilter: String, CaseIterable { + case all + case difference + case insert + case update + case delete + case same + + internal var title: String { + switch self { + case .all: return String(localized: "All Rows") + case .difference: return String(localized: "Difference") + case .insert: return String(localized: "Insert") + case .update: return String(localized: "Update") + case .delete: return String(localized: "Delete") + case .same: return String(localized: "Same") + } + } + + internal func matches(_ entry: RowDiffEntry) -> Bool { + switch self { + case .all: return true + case .difference: return entry.kind != .identical + case .insert: return entry.kind == .insert + case .update: return entry.kind == .update + case .delete: return entry.kind == .delete + case .same: return entry.kind == .identical + } + } +} + +internal struct DataCompareReviewView: View { + @Bindable internal var session: CompareSyncSession + + @State private var selection: String? + @State private var filter: RowDiffFilter = .difference + + internal var body: some View { + HSplitView { + planPane + .frame(minWidth: 320, idealWidth: 380) + rowPane + .frame(minWidth: 380) + } + } + + private var planPane: some View { + VStack(spacing: 0) { + List(selection: $selection) { + ForEach($session.dataPlans) { $plan in + DataComparePlanRow(plan: $plan) + .tag(plan.id) + } + } + .listStyle(.inset) + + if !session.truncatedPlanNames.isEmpty { + Divider() + Label( + String( + format: String(localized: "%d tables had more differences than are shown. Counts are still exact."), + session.truncatedPlanNames.count + ), + systemImage: "info.circle" + ) + .font(.caption) + .foregroundStyle(.secondary) + .padding(8) + } + } + } + + private var selectedPlan: DataComparePlan? { + session.dataPlans.first { $0.id == selection } + } + + @ViewBuilder + private var rowPane: some View { + if let plan = selectedPlan, let summary = plan.summary { + VStack(spacing: 0) { + HStack { + Picker("", selection: $filter) { + ForEach(RowDiffFilter.allCases, id: \.rawValue) { option in + Text(option.title).tag(option) + } + } + .labelsHidden() + .frame(width: 150) + Spacer() + Text(String(format: String(localized: "Key: %@"), plan.keyColumns.joined(separator: ", "))) + .font(.caption) + .foregroundStyle(.secondary) + } + .padding(.horizontal, 12) + .padding(.vertical, 8) + + Divider() + + let entries = summary.entries.filter { filter.matches($0) } + if entries.isEmpty { + Text("No rows match this filter.") + .foregroundStyle(.secondary) + .frame(maxWidth: .infinity, maxHeight: .infinity) + } else { + List(entries) { entry in + RowDiffEntryRow(entry: entry) + } + .listStyle(.inset) + } + } + } else { + VStack(spacing: 8) { + Image(systemName: "tablecells") + .font(.largeTitle) + .foregroundStyle(.tertiary) + Text("Select a table to see its row differences") + .foregroundStyle(.secondary) + } + .frame(maxWidth: .infinity, maxHeight: .infinity) + } + } +} + +internal struct DataComparePlanRow: View { + @Binding internal var plan: DataComparePlan + + internal var body: some View { + VStack(alignment: .leading, spacing: 3) { + HStack(spacing: 6) { + Toggle("", isOn: $plan.isEnabled) + .labelsHidden() + .disabled(!plan.isComparable) + Text(plan.id) + .font(.callout) + Spacer() + } + + if let reason = plan.unavailableReason { + Label(reason, systemImage: "exclamationmark.circle") + .font(.caption2) + .foregroundStyle(.orange) + } else if let summary = plan.summary { + HStack(spacing: 10) { + countLabel(String(localized: "Insert"), summary.insertCount, "plus.circle") + countLabel(String(localized: "Update"), summary.updateCount, "pencil.circle") + countLabel(String(localized: "Delete"), summary.deleteCount, "minus.circle") + countLabel(String(localized: "Same"), summary.identicalCount, "equal.circle") + } + .font(.caption2) + .foregroundStyle(.secondary) + } else { + Text(String(format: String(localized: "Key: %@"), plan.keyColumns.joined(separator: ", "))) + .font(.caption2) + .foregroundStyle(.secondary) + } + } + .padding(.vertical, 2) + } + + private func countLabel(_ label: String, _ count: Int, _ symbol: String) -> some View { + HStack(spacing: 3) { + Image(systemName: symbol) + Text("\(count)") + } + .help(label) + } +} + +internal struct RowDiffEntryRow: View { + internal let entry: RowDiffEntry + + @Environment(\.accessibilityDifferentiateWithoutColor) private var differentiateWithoutColor + + internal var body: some View { + VStack(alignment: .leading, spacing: 3) { + HStack(spacing: 6) { + Label { + Text(kindLabel) + .font(.caption2) + } icon: { + Image(systemName: kindSymbol) + } + .foregroundStyle(differentiateWithoutColor ? Color.primary : kindTint) + .frame(width: 84, alignment: .leading) + + Text(entry.keyDescription) + .font(.system(.callout, design: .monospaced)) + Spacer() + } + + ForEach(entry.cellDifferences, id: \.column) { difference in + HStack(alignment: .top, spacing: 6) { + Text(difference.column) + .font(.caption2.weight(.semibold)) + .frame(width: 100, alignment: .leading) + Text(Self.describe(difference.sourceValue)) + .font(.system(.caption2, design: .monospaced)) + Image(systemName: "arrow.right") + .font(.caption2) + .foregroundStyle(.tertiary) + Text(Self.describe(difference.targetValue)) + .font(.system(.caption2, design: .monospaced)) + .foregroundStyle(.secondary) + Spacer() + Text(difference.rule.displayName) + .font(.caption2) + .foregroundStyle(.tertiary) + } + } + } + .padding(.vertical, 2) + } + + private static func describe(_ value: PluginCellValue) -> String { + switch value { + case .null: return "NULL" + case .text(let text): return text + case .bytes(let data): return String(format: String(localized: "%d bytes"), data.count) + } + } + + private var kindLabel: String { + switch entry.kind { + case .insert: return String(localized: "Insert") + case .update: return String(localized: "Update") + case .delete: return String(localized: "Delete") + case .identical: return String(localized: "Same") + } + } + + private var kindSymbol: String { + switch entry.kind { + case .insert: return "plus.circle.fill" + case .update: return "circle.lefthalf.filled" + case .delete: return "minus.circle.fill" + case .identical: return "equal.circle" + } + } + + private var kindTint: Color { + switch entry.kind { + case .insert: return .green + case .update: return .orange + case .delete: return .red + case .identical: return .secondary + } + } +} diff --git a/TablePro/Views/Compare/StructureCompareReviewView.swift b/TablePro/Views/Compare/StructureCompareReviewView.swift new file mode 100644 index 000000000..aa6bc2fed --- /dev/null +++ b/TablePro/Views/Compare/StructureCompareReviewView.swift @@ -0,0 +1,292 @@ +// +// StructureCompareReviewView.swift +// TablePro +// +// Differences grouped by object type or by operation, with the source and +// target definitions side by side. Difference type never rests on colour alone. +// + +import SwiftUI + +internal enum CompareGrouping: String, CaseIterable { + case byStatus + case byName + + internal var title: String { + switch self { + case .byStatus: return String(localized: "Group by operation") + case .byName: return String(localized: "Group by name") + } + } +} + +internal struct StructureCompareReviewView: View { + @Bindable internal var session: CompareSyncSession + + @State private var grouping: CompareGrouping = .byStatus + @State private var showIdentical = false + @State private var selection: String? + + internal var body: some View { + HSplitView { + treePane + .frame(minWidth: 340, idealWidth: 420) + detailPane + .frame(minWidth: 360) + } + } + + private var report: StructureDiffReport? { + session.structureReport + } + + private var visibleResults: [TableDiffResult] { + guard let report else { return [] } + let base = showIdentical ? report.comparable : report.comparable.filter { $0.status != .identical } + switch grouping { + case .byName: + return base.sorted { $0.id.localizedStandardCompare($1.id) == .orderedAscending } + case .byStatus: + return base.sorted { lhs, rhs in + guard lhs.status == rhs.status else { + return statusRank(lhs.status) < statusRank(rhs.status) + } + return lhs.id.localizedStandardCompare(rhs.id) == .orderedAscending + } + } + } + + private func statusRank(_ status: TableDiffStatus) -> Int { + switch status { + case .onlyInSource: return 0 + case .differs: return 1 + case .onlyInTarget: return 2 + case .identical: return 3 + } + } + + private var treePane: some View { + VStack(spacing: 0) { + HStack { + Picker("", selection: $grouping) { + ForEach(CompareGrouping.allCases, id: \.rawValue) { option in + Text(option.title).tag(option) + } + } + .labelsHidden() + .frame(width: 190) + Spacer() + Toggle(String(localized: "Show identical"), isOn: $showIdentical) + .toggleStyle(.checkbox) + } + .padding(.horizontal, 12) + .padding(.vertical, 8) + + Divider() + + List(selection: $selection) { + ForEach(visibleResults) { result in + CompareResultRow(result: result, session: session) + .tag(result.id) + } + + if let uncomparable = report?.uncomparable, !uncomparable.isEmpty { + Section(String(localized: "Cannot be compared")) { + ForEach(uncomparable) { result in + VStack(alignment: .leading, spacing: 2) { + Text(result.id) + Text(result.comparisonError ?? "") + .font(.caption) + .foregroundStyle(.secondary) + } + } + } + } + } + .listStyle(.inset) + + Divider() + summaryBar + } + } + + private var summaryBar: some View { + HStack(spacing: 14) { + if let report { + statusCount(String(localized: "To create"), report.count(of: .onlyInSource), "plus.circle") + statusCount(String(localized: "To alter"), report.count(of: .differs), "pencil.circle") + statusCount(String(localized: "To drop"), report.count(of: .onlyInTarget), "minus.circle") + statusCount(String(localized: "Identical"), report.count(of: .identical), "equal.circle") + } + Spacer() + } + .font(.caption) + .padding(.horizontal, 12) + .padding(.vertical, 8) + } + + private func statusCount(_ label: String, _ count: Int, _ symbol: String) -> some View { + HStack(spacing: 4) { + Image(systemName: symbol) + Text("\(label): \(count)") + } + .foregroundStyle(.secondary) + } + + @ViewBuilder + private var detailPane: some View { + if let result = visibleResults.first(where: { $0.id == selection }) { + CompareResultDetailView(result: result) + } else { + VStack(spacing: 8) { + Image(systemName: "sidebar.right") + .font(.largeTitle) + .foregroundStyle(.tertiary) + Text("Select a table to see what differs") + .foregroundStyle(.secondary) + } + .frame(maxWidth: .infinity, maxHeight: .infinity) + } + } +} + +internal struct CompareResultRow: View { + internal let result: TableDiffResult + @Bindable internal var session: CompareSyncSession + + @Environment(\.accessibilityDifferentiateWithoutColor) private var differentiateWithoutColor + + internal var body: some View { + HStack(spacing: 8) { + Label { + Text(statusLabel) + .font(.caption2) + .fixedSize() + } icon: { + Image(systemName: statusSymbol) + } + .labelStyle(.titleAndIcon) + .foregroundStyle(differentiateWithoutColor ? Color.primary : statusTint) + .frame(width: 96, alignment: .leading) + + VStack(alignment: .leading, spacing: 1) { + Text(result.tableName) + if !result.notes.isEmpty { + Text(result.notes[0]) + .font(.caption2) + .foregroundStyle(.secondary) + .lineLimit(1) + } + } + + Spacer() + + Picker("", selection: actionBinding) { + ForEach(availableActions, id: \.rawValue) { action in + Text(actionTitle(action)).tag(action) + } + } + .labelsHidden() + .frame(width: 110) + } + .padding(.vertical, 2) + } + + private var actionBinding: Binding { + Binding( + get: { session.action(for: result) }, + set: { session.setAction($0, for: result) } + ) + } + + private var availableActions: [TableSyncAction] { + switch result.status { + case .onlyInSource: return [.skip, .create] + case .onlyInTarget: return [.skip, .drop] + case .differs: return [.skip, .alter] + case .identical: return [.skip] + } + } + + private func actionTitle(_ action: TableSyncAction) -> String { + switch action { + case .create: return String(localized: "Create") + case .alter: return String(localized: "Alter") + case .drop: return String(localized: "Drop") + case .skip: return String(localized: "Skip") + } + } + + private var statusLabel: String { + switch result.status { + case .onlyInSource: return String(localized: "Source only") + case .onlyInTarget: return String(localized: "Target only") + case .differs: return String(localized: "Different") + case .identical: return String(localized: "Identical") + } + } + + private var statusSymbol: String { + switch result.status { + case .onlyInSource: return "plus.circle.fill" + case .onlyInTarget: return "minus.circle.fill" + case .differs: return "circle.lefthalf.filled" + case .identical: return "equal.circle" + } + } + + private var statusTint: Color { + switch result.status { + case .onlyInSource: return .green + case .onlyInTarget: return .red + case .differs: return .orange + case .identical: return .secondary + } + } +} + +internal struct CompareResultDetailView: View { + internal let result: TableDiffResult + + internal var body: some View { + ScrollView { + VStack(alignment: .leading, spacing: 12) { + Text(result.id) + .font(.headline) + + if !result.notes.isEmpty { + VStack(alignment: .leading, spacing: 4) { + Text("Notes") + .font(.subheadline.weight(.semibold)) + ForEach(Array(result.notes.enumerated()), id: \.offset) { _, note in + Label(note, systemImage: "info.circle") + .font(.caption) + .foregroundStyle(.secondary) + } + } + } + + if result.changes.isEmpty { + Text("No structural changes.") + .foregroundStyle(.secondary) + } else { + VStack(alignment: .leading, spacing: 4) { + Text("Changes") + .font(.subheadline.weight(.semibold)) + ForEach(Array(result.changes.enumerated()), id: \.offset) { _, change in + HStack(alignment: .top, spacing: 6) { + Image(systemName: change.isDestructive ? "exclamationmark.triangle.fill" : "arrow.right") + .font(.caption) + .foregroundStyle(change.isDestructive ? Color.orange : Color.secondary) + Text(change.description) + .font(.callout) + } + } + } + } + } + .padding(16) + .frame(maxWidth: .infinity, alignment: .leading) + } + } +} diff --git a/TablePro/Views/Connection/WelcomeContextMenus.swift b/TablePro/Views/Connection/WelcomeContextMenus.swift index 659296bfa..058d0df58 100644 --- a/TablePro/Views/Connection/WelcomeContextMenus.swift +++ b/TablePro/Views/Connection/WelcomeContextMenus.swift @@ -142,6 +142,12 @@ extension WelcomeWindowView { Divider() + Button { CompareSyncLauncher.open(prefillSource: connection.id) } label: { + Label(String(localized: "Compare/Sync with..."), systemImage: "arrow.left.arrow.right.square") + } + + Divider() + Button { vm.toggleFavorite([connection]) } label: { Label( connection.isFavorite diff --git a/TablePro/Views/Infrastructure/WindowOpenerBridge.swift b/TablePro/Views/Infrastructure/WindowOpenerBridge.swift index 547ecaa66..ca63ca88a 100644 --- a/TablePro/Views/Infrastructure/WindowOpenerBridge.swift +++ b/TablePro/Views/Infrastructure/WindowOpenerBridge.swift @@ -21,6 +21,9 @@ internal struct WindowOpenerBridge: View { openWelcome: { openWindow(id: SceneId.welcome) }, openConnectionForm: { id in openWindow(id: SceneId.connectionForm, value: id) }, openIntegrationsActivity: { openWindow(id: SceneId.integrationsActivity) }, + openCompareSync: { id in + openWindow(id: SceneId.compareSync, value: CompareSyncPayload(sourceConnectionId: id)) + }, openSettings: { openSettings() }, presentTypeChooser: { initialType, onSelected in let payload = DatabaseTypeChooserPayload( diff --git a/TableProTests/Core/Compare/CompareSyncExecutorTests.swift b/TableProTests/Core/Compare/CompareSyncExecutorTests.swift new file mode 100644 index 000000000..04efc9bce --- /dev/null +++ b/TableProTests/Core/Compare/CompareSyncExecutorTests.swift @@ -0,0 +1,318 @@ +// +// CompareSyncExecutorTests.swift +// TableProTests +// + +import Foundation +import TableProPluginKit +import XCTest + +@testable import TablePro + +private final class RecordingDriver: PluginDatabaseDriver, @unchecked Sendable { + var executed: [String] = [] + var transactionEvents: [String] = [] + var failingStatements: Set = [] + var transactionsSupported = true + var declaredCapabilities: PluginCapabilities = [] + + var capabilities: PluginCapabilities { declaredCapabilities } + var supportsTransactions: Bool { transactionsSupported } + + func connect() async throws {} + + func disconnect() {} + + func execute(query: String) async throws -> PluginQueryResult { + executed.append(query) + if failingStatements.contains(query) { + throw CompareSyncError.unsupportedOperation("boom") + } + return PluginQueryResult(columns: [], columnTypeNames: [], rows: [], rowsAffected: 0, executionTime: 0) + } + + func beginTransaction() async throws { transactionEvents.append("begin") } + func commitTransaction() async throws { transactionEvents.append("commit") } + func rollbackTransaction() async throws { transactionEvents.append("rollback") } + + func fetchTables(schema: String?) async throws -> [PluginTableInfo] { [] } + func fetchColumns(table: String, schema: String?) async throws -> [PluginColumnInfo] { [] } + func fetchIndexes(table: String, schema: String?) async throws -> [PluginIndexInfo] { [] } + func fetchForeignKeys(table: String, schema: String?) async throws -> [PluginForeignKeyInfo] { [] } + func fetchTableDDL(table: String, schema: String?) async throws -> String { "" } + func fetchViewDefinition(view: String, schema: String?) async throws -> String { "" } + func fetchTableMetadata(table: String, schema: String?) async throws -> PluginTableMetadata { + PluginTableMetadata(tableName: table) + } + func fetchDatabases() async throws -> [String] { [] } + func fetchDatabaseMetadata(_ database: String) async throws -> PluginDatabaseMetadata { + PluginDatabaseMetadata(name: database) + } +} + +private struct AlwaysAllowGate: ExecutionGate { + func authorize(_ request: OperationRequest) async -> OperationDecision { + .authorized(OperationReceipt( + connectionId: request.connectionId, + kind: request.kind, + effectiveWrite: true, + grantedAt: Date(), + token: UUID() + )) + } +} + +private struct AlwaysDenyGate: ExecutionGate { + func authorize(_ request: OperationRequest) async -> OperationDecision { + .denied(reason: "Read-Only connection") + } +} + +final class CompareSyncExecutorTests: XCTestCase { + private func endpoint() -> CompareSyncEndpoint { + CompareSyncEndpoint( + connectionId: UUID(), + displayName: "staging", + databaseType: .mysql, + database: "app", + schema: nil, + safeModeLevel: .silent, + color: .blue + ) + } + + private func statement(_ sql: String, refused: Bool = false) -> SyncStatement { + SyncStatement( + sql: sql, + objectName: "t", + summary: sql, + hazards: refused + ? [SyncHazard(kind: .dataLoss, severity: .refusedByDefault, explanation: "drops data")] + : [] + ) + } + + private func run( + statements: [SyncStatement], + settings: CompareSyncExecutionSettings = CompareSyncExecutionSettings(), + driver: RecordingDriver, + gate: any ExecutionGate = AlwaysAllowGate() + ) async throws -> CompareSyncRunResult { + try await CompareSyncExecutor(gate: gate).apply( + statements: statements, + mode: .structure, + settings: settings, + target: endpoint(), + driver: driver, + progress: Progress() + ) + } + + // MARK: - Held back statements + + func testRefusedStatementIsNotExecutedUnlessAllowed() async throws { + let driver = RecordingDriver() + let dropStatement = statement("DROP TABLE t;", refused: true) + + let result = try await run(statements: [statement("SELECT 1;"), dropStatement], driver: driver) + + XCTAssertEqual(driver.executed, ["SELECT 1;"], "a refused statement must not reach the driver") + XCTAssertEqual(result.heldBackCount, 1) + XCTAssertEqual(result.executedCount, 1) + } + + func testAllowingARefusedStatementRunsIt() async throws { + let driver = RecordingDriver() + let dropStatement = statement("DROP TABLE t;", refused: true) + var settings = CompareSyncExecutionSettings() + settings.allowedHazardStatementIds = [dropStatement.id] + + let result = try await run(statements: [dropStatement], settings: settings, driver: driver) + + XCTAssertEqual(driver.executed, ["DROP TABLE t;"]) + XCTAssertEqual(result.heldBackCount, 0) + } + + func testAllRefusedMeansNothingRunsAndNoTransactionOpens() async throws { + let driver = RecordingDriver() + + let result = try await run(statements: [statement("DROP TABLE t;", refused: true)], driver: driver) + + XCTAssertTrue(driver.executed.isEmpty) + XCTAssertTrue(driver.transactionEvents.isEmpty) + XCTAssertEqual(result.heldBackCount, 1) + } + + // MARK: - Transactions + + func testSuccessfulRunCommits() async throws { + let driver = RecordingDriver() + + _ = try await run(statements: [statement("A;"), statement("B;")], driver: driver) + + XCTAssertEqual(driver.transactionEvents, ["begin", "commit"]) + } + + func testFailureRollsBackWithStopAndRollback() async throws { + let driver = RecordingDriver() + driver.failingStatements = ["B;"] + var settings = CompareSyncExecutionSettings() + settings.errorHandling = .stopAndRollback + + let result = try await run( + statements: [statement("A;"), statement("B;"), statement("C;")], + settings: settings, + driver: driver + ) + + XCTAssertEqual(driver.transactionEvents, ["begin", "rollback"]) + XCTAssertTrue(result.rolledBack) + XCTAssertEqual(driver.executed, ["A;", "B;"], "execution stops at the first failure") + } + + func testFailureCommitsWithStopAndCommit() async throws { + let driver = RecordingDriver() + driver.failingStatements = ["B;"] + var settings = CompareSyncExecutionSettings() + settings.errorHandling = .stopAndCommit + + let result = try await run( + statements: [statement("A;"), statement("B;")], + settings: settings, + driver: driver + ) + + XCTAssertEqual(driver.transactionEvents, ["begin", "commit"]) + XCTAssertFalse(result.rolledBack) + } + + func testSkipAndContinueRunsEverythingAndUsesNoTransaction() async throws { + let driver = RecordingDriver() + driver.failingStatements = ["B;"] + var settings = CompareSyncExecutionSettings() + settings.errorHandling = .skipAndContinue + + let result = try await run( + statements: [statement("A;"), statement("B;"), statement("C;")], + settings: settings, + driver: driver + ) + + XCTAssertEqual(driver.executed, ["A;", "B;", "C;"]) + XCTAssertTrue(driver.transactionEvents.isEmpty, "skip and continue must not open a transaction") + XCTAssertEqual(result.failedCount, 1) + XCTAssertEqual(result.executedCount, 2) + } + + func testNoTransactionWhenDriverDoesNotSupportOne() async throws { + let driver = RecordingDriver() + driver.transactionsSupported = false + + _ = try await run(statements: [statement("A;")], driver: driver) + + XCTAssertTrue(driver.transactionEvents.isEmpty) + } + + // MARK: - Gate + + func testDeniedAuthorizationRunsNoStatements() async { + let driver = RecordingDriver() + + do { + _ = try await run(statements: [statement("A;")], driver: driver, gate: AlwaysDenyGate()) + XCTFail("Expected the gate to deny the run") + } catch { + XCTAssertTrue(driver.executed.isEmpty, "nothing may run when the gate denies") + } + } + + // MARK: - Progress + + func testProgressReachesTotalOnCompletion() async throws { + let driver = RecordingDriver() + let progress = Progress() + + _ = try await CompareSyncExecutor(gate: AlwaysAllowGate()).apply( + statements: [statement("A;"), statement("B;"), statement("C;")], + mode: .structure, + settings: CompareSyncExecutionSettings(), + target: endpoint(), + driver: driver, + progress: progress + ) + + XCTAssertEqual(progress.totalUnitCount, 3) + XCTAssertEqual(progress.completedUnitCount, 3) + } +} + +final class CompareSyncExecutionSettingsTests: XCTestCase { + func testTransactionIsDisabledForSkipAndContinue() { + var settings = CompareSyncExecutionSettings() + settings.wrapInTransaction = true + settings.errorHandling = .skipAndContinue + + XCTAssertFalse(settings.usesTransaction(supportsTransactions: true)) + } + + func testTransactionRequiresDriverSupport() { + var settings = CompareSyncExecutionSettings() + settings.wrapInTransaction = true + settings.errorHandling = .stopAndRollback + + XCTAssertTrue(settings.usesTransaction(supportsTransactions: true)) + XCTAssertFalse(settings.usesTransaction(supportsTransactions: false)) + } +} + +final class CompareSyncEligibilityTests: XCTestCase { + func testMissingSchemaCompareBitIsRefused() { + let driver = RecordingDriver() + driver.declaredCapabilities = [] + + XCTAssertNotNil(CompareSyncEligibility.refusalReason(for: driver, mode: .structure, endpointName: "db")) + } + + func testDeclaredBitPasses() { + let driver = RecordingDriver() + driver.declaredCapabilities = [.schemaCompare, .dataCompare] + + XCTAssertNil(CompareSyncEligibility.refusalReason(for: driver, mode: .structure, endpointName: "db")) + XCTAssertNil(CompareSyncEligibility.refusalReason(for: driver, mode: .data, endpointName: "db")) + } + + func testStructureBitDoesNotGrantDataCompare() { + let driver = RecordingDriver() + driver.declaredCapabilities = [.schemaCompare] + + XCTAssertNotNil(CompareSyncEligibility.refusalReason(for: driver, mode: .data, endpointName: "db")) + } +} + +final class CompareSyncEndpointTests: XCTestCase { + private func endpoint(_ level: SafeModeLevel) -> CompareSyncEndpoint { + CompareSyncEndpoint( + connectionId: UUID(), + displayName: "prod", + databaseType: .postgresql, + database: nil, + schema: nil, + safeModeLevel: level, + color: .red + ) + } + + func testReadOnlyEndpointCannotBeWrittenTo() { + let target = endpoint(.readOnly) + + XCTAssertFalse(target.canBeWrittenTo) + XCTAssertNotNil(target.ineligibleAsTargetReason) + } + + func testOtherLevelsCanBeWrittenTo() { + for level in [SafeModeLevel.silent, .alert, .alertFull, .safeMode, .safeModeFull] { + XCTAssertTrue(endpoint(level).canBeWrittenTo, "\(level) should be a valid target") + XCTAssertNil(endpoint(level).ineligibleAsTargetReason) + } + } +} diff --git a/TableProTests/Core/Compare/DataDiffEngineTests.swift b/TableProTests/Core/Compare/DataDiffEngineTests.swift new file mode 100644 index 000000000..3e9a1024e --- /dev/null +++ b/TableProTests/Core/Compare/DataDiffEngineTests.swift @@ -0,0 +1,360 @@ +// +// DataDiffEngineTests.swift +// TableProTests +// + +import Foundation +import TableProPluginKit +import XCTest + +@testable import TablePro + +final class DataDiffEngineTests: XCTestCase { + private func row(_ pairs: [String: String?]) -> DataRow { + var values: [String: PluginCellValue] = [:] + for (key, value) in pairs { + values[key] = value.map { PluginCellValue.text($0) } ?? .null + } + return DataRow(values: values) + } + + private func engine( + key: [String] = ["id"], + columns: [String] = ["id", "name"], + configure: (inout DataCompareOptions) -> Void = { _ in } + ) -> DataDiffEngine { + var options = DataCompareOptions() + options.keyColumns = key + configure(&options) + return DataDiffEngine(options: options, columns: columns) + } + + private func diff( + source: [DataRow], + target: [DataRow], + engine: DataDiffEngine + ) async throws -> DataDiffSummary { + try await engine.compare( + source: ArrayRowProvider(rows: source), + target: ArrayRowProvider(rows: target) + ) + } + + // MARK: - Merge join classification + + func testRowMissingFromTargetIsAnInsert() async throws { + let summary = try await diff( + source: [row(["id": "1", "name": "a"]), row(["id": "2", "name": "b"])], + target: [row(["id": "1", "name": "a"])], + engine: engine() + ) + + XCTAssertEqual(summary.insertCount, 1) + XCTAssertEqual(summary.identicalCount, 1) + XCTAssertEqual(summary.updateCount, 0) + XCTAssertEqual(summary.deleteCount, 0) + } + + func testRowMissingFromSourceIsADelete() async throws { + let summary = try await diff( + source: [row(["id": "1", "name": "a"])], + target: [row(["id": "1", "name": "a"]), row(["id": "2", "name": "b"])], + engine: engine() + ) + + XCTAssertEqual(summary.deleteCount, 1) + XCTAssertEqual(summary.identicalCount, 1) + } + + func testDifferingValueIsAnUpdateAndRecordsWhichRuleFired() async throws { + let summary = try await diff( + source: [row(["id": "1", "name": "alice"])], + target: [row(["id": "1", "name": "bob"])], + engine: engine() + ) + + XCTAssertEqual(summary.updateCount, 1) + let entry = try XCTUnwrap(summary.entries.first) + XCTAssertEqual(entry.cellDifferences.count, 1) + XCTAssertEqual(entry.cellDifferences[0].column, "name") + XCTAssertEqual(entry.cellDifferences[0].rule, .exactValue) + } + + func testInterleavedKeysAreAllClassified() async throws { + let summary = try await diff( + source: [row(["id": "1"]), row(["id": "3"]), row(["id": "5"])], + target: [row(["id": "2"]), row(["id": "3"]), row(["id": "4"])], + engine: engine(columns: ["id"]) + ) + + XCTAssertEqual(summary.insertCount, 2) + XCTAssertEqual(summary.deleteCount, 2) + XCTAssertEqual(summary.identicalCount, 1) + } + + func testEmptySourceMakesEveryTargetRowADelete() async throws { + let summary = try await diff( + source: [], + target: [row(["id": "1"]), row(["id": "2"])], + engine: engine(columns: ["id"]) + ) + + XCTAssertEqual(summary.deleteCount, 2) + } + + // MARK: - Composite keys + + func testCompositeKeyMatchesOnBothColumns() async throws { + let compareEngine = engine(key: ["tenant", "id"], columns: ["tenant", "id", "name"]) + let summary = try await diff( + source: [ + row(["tenant": "a", "id": "1", "name": "x"]), + row(["tenant": "b", "id": "1", "name": "y"]) + ], + target: [ + row(["tenant": "a", "id": "1", "name": "x"]), + row(["tenant": "b", "id": "1", "name": "z"]) + ], + engine: compareEngine + ) + + XCTAssertEqual(summary.identicalCount, 1) + XCTAssertEqual(summary.updateCount, 1, "composite keys must not collapse distinct rows") + } + + // MARK: - No key + + func testComparingWithoutAKeyThrowsRatherThanGuessing() async { + var options = DataCompareOptions() + options.keyColumns = [] + let keyless = DataDiffEngine(options: options, columns: ["id"]) + + do { + _ = try await keyless.compare( + source: ArrayRowProvider(rows: [row(["id": "1"])]), + target: ArrayRowProvider(rows: []) + ) + XCTFail("Expected a missing-key error") + } catch { + XCTAssertTrue(error is CompareSyncError) + } + } + + // MARK: - NULL semantics + + func testNullEqualsNullAndNeverEqualsEmptyString() async throws { + let bothNull = try await diff( + source: [row(["id": "1", "name": nil])], + target: [row(["id": "1", "name": nil])], + engine: engine() + ) + XCTAssertEqual(bothNull.identicalCount, 1) + + let nullVersusEmpty = try await diff( + source: [row(["id": "1", "name": nil])], + target: [row(["id": "1", "name": ""])], + engine: engine() + ) + XCTAssertEqual(nullVersusEmpty.updateCount, 1) + XCTAssertEqual(nullVersusEmpty.entries.first?.cellDifferences.first?.rule, .nullEquality) + } + + // MARK: - Compare set versus write set + + func testExcludedColumnNeverCausesADifference() async throws { + let compareEngine = engine(columns: ["id", "name", "updated_at"]) { options in + options.excludedFromComparison = ["updated_at"] + } + let summary = try await diff( + source: [row(["id": "1", "name": "a", "updated_at": "2026-01-01 00:00:00"])], + target: [row(["id": "1", "name": "a", "updated_at": "2020-01-01 00:00:00"])], + engine: compareEngine + ) + + XCTAssertEqual(summary.identicalCount, 1, "an excluded audit column must not create a diff") + } + + func testExcludedColumnIsStillCarriedOnTheSourceRow() async throws { + let compareEngine = engine(columns: ["id", "name", "updated_at"]) { options in + options.excludedFromComparison = ["updated_at"] + options.insertMissingRows = true + } + let summary = try await diff( + source: [row(["id": "1", "name": "a", "updated_at": "2026-01-01 00:00:00"])], + target: [], + engine: compareEngine + ) + + let entry = try XCTUnwrap(summary.entries.first) + XCTAssertEqual(entry.kind, .insert) + XCTAssertEqual(entry.sourceRow?.value(for: "updated_at"), .text("2026-01-01 00:00:00")) + } + + // MARK: - Key columns are never treated as comparison columns + + func testKeyColumnIsNotAlsoComparedAsAValue() async throws { + var options = DataCompareOptions() + options.keyColumns = ["id"] + + XCTAssertEqual(options.comparisonColumns(from: ["id", "name"]), ["name"]) + } + + // MARK: - Retention cap + + func testCountsStayExactWhenRetainedEntriesAreCapped() async throws { + let compareEngine = engine(columns: ["id"]) { options in + options.maxRetainedEntries = 2 + } + let source = (1...10).map { row(["id": String(format: "%03d", $0)]) } + + let summary = try await diff(source: source, target: [], engine: compareEngine) + + XCTAssertEqual(summary.insertCount, 10, "counts must be exact even when entries are capped") + XCTAssertEqual(summary.entries.count, 2) + XCTAssertTrue(summary.truncatedEntries) + } + + // MARK: - Cancellation + + func testCancellationStopsTheComparison() async { + let compareEngine = engine(columns: ["id"]) + let source = (1...5_000).map { row(["id": String(format: "%06d", $0)]) } + + let task = Task { + try await compareEngine.compare( + source: ArrayRowProvider(rows: source), + target: ArrayRowProvider(rows: []) + ) + } + task.cancel() + + do { + _ = try await task.value + } catch { + XCTAssertTrue(error is CancellationError) + return + } + XCTAssertTrue(true, "comparison finished before cancellation was observed") + } +} + +final class CellValueComparatorTests: XCTestCase { + private func comparator(tolerance: Double = 0, fractionalDigits: Int = 6) -> CellValueComparator { + var options = DataCompareOptions() + options.floatTolerance = tolerance + options.timestampFractionalDigits = fractionalDigits + return CellValueComparator(options: options) + } + + func testFloatToleranceTreatsNearlyEqualValuesAsEqual() { + let outcome = comparator(tolerance: 0.001).compare( + .text("109.05999755859375"), + .text("109.05999755859381") + ) + + XCTAssertTrue(outcome.isEqual) + XCTAssertEqual(outcome.rule, .floatTolerance) + } + + func testFloatToleranceIsSymmetric() { + let subject = comparator(tolerance: 0.5) + let pairs: [(String, String)] = [ + ("1.0", "1.2"), + ("1.0", "1.8"), + ("100.10", "100.1000"), + ("-3.0", "-3.4"), + ("0.0", "0.6") + ] + + for (left, right) in pairs { + let forward = subject.compare(.text(left), .text(right)) + let backward = subject.compare(.text(right), .text(left)) + XCTAssertEqual( + forward.isEqual, + backward.isEqual, + "comparison of \(left) and \(right) must not depend on argument order" + ) + } + } + + func testExactComparisonIsSymmetricForMismatchedKinds() { + let subject = comparator() + + XCTAssertEqual( + subject.compare(.null, .text("x")).isEqual, + subject.compare(.text("x"), .null).isEqual + ) + XCTAssertEqual( + subject.compare(.bytes(Data([0x01])), .text("x")).isEqual, + subject.compare(.text("x"), .bytes(Data([0x01]))).isEqual + ) + } + + func testZeroToleranceKeepsExactNumericComparison() { + let outcome = comparator(tolerance: 0).compare(.text("1.0"), .text("1.00")) + + XCTAssertFalse(outcome.isEqual, "without a declared tolerance nothing is smoothed over") + } + + func testEquivalentInstantsWithDifferentOffsetsCompareEqual() { + let outcome = comparator().compare( + .text("1999-01-15 08:00:00-08:00"), + .text("1999-01-15 11:00:00-05:00") + ) + + XCTAssertTrue(outcome.isEqual, "the same instant written at two offsets is not a difference") + XCTAssertEqual(outcome.rule, .timestampPrecision) + } + + func testTimestampPrecisionTruncationIsHonoured() { + let coarse = comparator(fractionalDigits: 0).compare( + .text("2026-01-01 00:00:00.100000"), + .text("2026-01-01 00:00:00.200000") + ) + XCTAssertTrue(coarse.isEqual) + + let fine = comparator(fractionalDigits: 6).compare( + .text("2026-01-01 00:00:00.100000"), + .text("2026-01-01 00:00:00.200000") + ) + XCTAssertFalse(fine.isEqual) + } + + func testBinaryContentComparedByBytes() { + let subject = comparator() + + XCTAssertTrue(subject.compare(.bytes(Data([1, 2, 3])), .bytes(Data([1, 2, 3]))).isEqual) + XCTAssertFalse(subject.compare(.bytes(Data([1, 2, 3])), .bytes(Data([1, 2, 4]))).isEqual) + } +} + +final class KeyOrderingTests: XCTestCase { + func testNumericKeysOrderNumericallyNotLexically() { + let result = KeyOrdering.compare([.text("9")], [.text("10")]) + + XCTAssertEqual(result, .orderedAscending, "9 must sort before 10") + } + + func testTextKeysOrderLexically() { + XCTAssertEqual(KeyOrdering.compare([.text("a")], [.text("b")]), .orderedAscending) + } + + func testEqualKeysReportSame() { + XCTAssertEqual(KeyOrdering.compare([.text("a"), .text("1")], [.text("a"), .text("1")]), .orderedSame) + } + + func testOrderingIsAntisymmetric() { + let pairs: [([PluginCellValue], [PluginCellValue])] = [ + ([.text("1")], [.text("2")]), + ([.text("b")], [.text("a")]), + ([.null], [.text("x")]) + ] + + for (left, right) in pairs { + let forward = KeyOrdering.compare(left, right) + let backward = KeyOrdering.compare(right, left) + XCTAssertNotEqual(forward, backward) + XCTAssertNotEqual(forward, .orderedSame) + } + } +} diff --git a/TableProTests/Core/Compare/SchemaSyncScriptBuilderTests.swift b/TableProTests/Core/Compare/SchemaSyncScriptBuilderTests.swift new file mode 100644 index 000000000..58586d3d6 --- /dev/null +++ b/TableProTests/Core/Compare/SchemaSyncScriptBuilderTests.swift @@ -0,0 +1,336 @@ +// +// SchemaSyncScriptBuilderTests.swift +// TableProTests +// + +import Foundation +import TableProPluginKit +import XCTest + +@testable import TablePro + +private final class StubSyncDriver: PluginDatabaseDriver, @unchecked Sendable { + func connect() async throws {} + + func disconnect() {} + + func execute(query: String) async throws -> PluginQueryResult { + PluginQueryResult(columns: [], columnTypeNames: [], rows: [], rowsAffected: 0, executionTime: 0) + } + + func fetchTables(schema: String?) async throws -> [PluginTableInfo] { [] } + + func fetchColumns(table: String, schema: String?) async throws -> [PluginColumnInfo] { [] } + + func fetchIndexes(table: String, schema: String?) async throws -> [PluginIndexInfo] { [] } + + func fetchForeignKeys(table: String, schema: String?) async throws -> [PluginForeignKeyInfo] { [] } + + func fetchTableDDL(table: String, schema: String?) async throws -> String { "" } + + func fetchViewDefinition(view: String, schema: String?) async throws -> String { "" } + + func fetchTableMetadata(table: String, schema: String?) async throws -> PluginTableMetadata { + PluginTableMetadata(tableName: table) + } + + func fetchDatabases() async throws -> [String] { [] } + + func fetchDatabaseMetadata(_ database: String) async throws -> PluginDatabaseMetadata { + PluginDatabaseMetadata(name: database) + } + + func generateCreateTableSQL(definition: PluginCreateTableDefinition) -> String? { + "CREATE TABLE \(definition.tableName)" + } + + func dropObjectStatement(name: String, objectType: String, schema: String?, cascade: Bool) -> String? { + "DROP \(objectType) \(name)" + } + + func generateAddColumnSQL(table: String, column: PluginColumnDefinition) -> String? { + "ALTER TABLE \(table) ADD \(column.name)" + } + + func generateDropColumnSQL(table: String, columnName: String) -> String? { + "ALTER TABLE \(table) DROP \(columnName)" + } + + func generateModifyColumnSQL( + table: String, + oldColumn: PluginColumnDefinition, + newColumn: PluginColumnDefinition + ) -> String? { + "ALTER TABLE \(table) MODIFY \(newColumn.name)" + } + + func generateAddIndexSQL(table: String, index: PluginIndexDefinition) -> String? { + "CREATE INDEX \(index.name) ON \(table)" + } + + func generateDropIndexSQL(table: String, indexName: String) -> String? { + "DROP INDEX \(indexName) ON \(table)" + } + + func generateAddForeignKeySQL(table: String, fk: PluginForeignKeyDefinition) -> String? { + "ALTER TABLE \(table) ADD CONSTRAINT \(fk.name)" + } + + func generateDropForeignKeySQL(table: String, constraintName: String) -> String? { + "ALTER TABLE \(table) DROP CONSTRAINT \(constraintName)" + } +} + +final class SchemaSyncScriptBuilderTests: XCTestCase { + private var driver: StubSyncDriver! + private var builder: SchemaSyncScriptBuilder! + + override func setUp() { + super.setUp() + driver = StubSyncDriver() + builder = SchemaSyncScriptBuilder(targetDriver: driver) + } + + override func tearDown() { + driver = nil + builder = nil + super.tearDown() + } + + private func snapshot(_ name: String) -> TableStructureSnapshot { + TableStructureSnapshot( + name: name, + columns: [ + EditableColumnDefinition( + id: UUID(), name: "id", dataType: "int", isNullable: false, defaultValue: nil, + autoIncrement: false, unsigned: false, comment: nil, collation: nil, + onUpdate: nil, charset: nil, extra: nil, isPrimaryKey: true + ) + ] + ) + } + + private func foreignKey(from child: String, to parent: String) -> PluginForeignKeyInfo { + PluginForeignKeyInfo( + name: "fk_\(child)_\(parent)", + column: "\(parent)_id", + referencedTable: parent, + referencedColumn: "id" + ) + } + + // MARK: - Cross-table ordering + + func testCreatesEmitParentsBeforeChildren() { + let operations: [SchemaSyncOperation] = [ + .createTable(snapshot("orders")), + .createTable(snapshot("customers")) + ] + let foreignKeys = ["orders": [foreignKey(from: "orders", to: "customers")]] + + let ordered = SchemaSyncScriptBuilder.order(operations: operations, foreignKeysByTable: foreignKeys) + + XCTAssertEqual(ordered.map { $0.tableName }, ["customers", "orders"]) + } + + func testDropsEmitChildrenBeforeParents() { + let operations: [SchemaSyncOperation] = [ + .dropTable(name: "customers", schema: nil), + .dropTable(name: "orders", schema: nil) + ] + let foreignKeys = ["orders": [foreignKey(from: "orders", to: "customers")]] + + let ordered = SchemaSyncScriptBuilder.order(operations: operations, foreignKeysByTable: foreignKeys) + + XCTAssertEqual(ordered.map { $0.tableName }, ["orders", "customers"]) + } + + func testThreeTableChainOrdersTransitively() { + let operations: [SchemaSyncOperation] = [ + .createTable(snapshot("line_items")), + .createTable(snapshot("orders")), + .createTable(snapshot("customers")) + ] + let foreignKeys = [ + "orders": [foreignKey(from: "orders", to: "customers")], + "line_items": [foreignKey(from: "line_items", to: "orders")] + ] + + let ordered = SchemaSyncScriptBuilder.order(operations: operations, foreignKeysByTable: foreignKeys) + + XCTAssertEqual(ordered.map { $0.tableName }, ["customers", "orders", "line_items"]) + } + + func testDropsRunBeforeCreatesWhichRunBeforeAlters() { + let operations: [SchemaSyncOperation] = [ + .alterTable(name: "a", schema: nil, changes: []), + .createTable(snapshot("b")), + .dropTable(name: "c", schema: nil) + ] + + let ordered = SchemaSyncScriptBuilder.order(operations: operations, foreignKeysByTable: [:]) + + XCTAssertEqual(ordered.map { $0.tableName }, ["c", "b", "a"]) + } + + func testCircularForeignKeysStillEmitEveryTable() { + let operations: [SchemaSyncOperation] = [ + .createTable(snapshot("a")), + .createTable(snapshot("b")) + ] + let foreignKeys = [ + "a": [foreignKey(from: "a", to: "b")], + "b": [foreignKey(from: "b", to: "a")] + ] + + let ordered = SchemaSyncScriptBuilder.order(operations: operations, foreignKeysByTable: foreignKeys) + + XCTAssertEqual(Set(ordered.map { $0.tableName }), ["a", "b"], "a cycle must not drop tables from the script") + } + + // MARK: - Intra-table ordering + + func testIntraTableOrderDropsConstraintsBeforeColumnsAndAddsThemLast() { + let column = EditableColumnDefinition.placeholder() + let index = EditableIndexDefinition.placeholder() + let foreignKeyDefinition = EditableForeignKeyDefinition.placeholder() + + let sortedChanges = SchemaChangeOrdering.sorted([ + .addForeignKey(foreignKeyDefinition), + .addColumn(column), + .deleteForeignKey(foreignKeyDefinition), + .addIndex(index), + .deleteColumn(column) + ]) + + let positions = sortedChanges.map { change -> Int in + switch change { + case .deleteForeignKey: return 0 + case .deleteColumn: return 1 + case .addColumn: return 2 + case .addIndex: return 3 + case .addForeignKey: return 4 + default: return 99 + } + } + XCTAssertEqual(positions, positions.sorted(), "changes must be emitted in dependency-safe order") + } + + // MARK: - Hazards + + func testDropTableIsRefusedByDefault() throws { + let statements = try builder.build( + operations: [.dropTable(name: "users", schema: nil)], + foreignKeysByTable: [:] + ) + + XCTAssertEqual(statements.count, 1) + XCTAssertTrue(statements[0].isRefusedByDefault) + XCTAssertEqual(statements[0].hazards.first?.kind, .dataLoss) + } + + func testCreateTableCarriesNoHazard() throws { + let statements = try builder.build( + operations: [.createTable(snapshot("users"))], + foreignKeysByTable: [:] + ) + + XCTAssertEqual(statements.count, 1) + XCTAssertFalse(statements[0].isRefusedByDefault) + XCTAssertTrue(statements[0].hazards.isEmpty) + } + + func testEveryStatementIsTerminated() throws { + let statements = try builder.build( + operations: [.createTable(snapshot("users")), .dropTable(name: "old", schema: nil)], + foreignKeysByTable: [:] + ) + + for statement in statements { + XCTAssertTrue(statement.sql.hasSuffix(";"), "\(statement.sql) is not terminated") + } + } +} + +final class SyncSafetyClassifierTests: XCTestCase { + private let classifier = SyncSafetyClassifier() + + private func column(_ name: String, _ dataType: String, nullable: Bool = true) -> EditableColumnDefinition { + EditableColumnDefinition( + id: UUID(), name: name, dataType: dataType, isNullable: nullable, defaultValue: nil, + autoIncrement: false, unsigned: false, comment: nil, collation: nil, + onUpdate: nil, charset: nil, extra: nil, isPrimaryKey: false + ) + } + + func testDropColumnIsRefusedByDefault() { + let hazards = classifier.hazards(for: .deleteColumn(column("email", "varchar(255)"))) + + XCTAssertEqual(hazards.first?.severity, .refusedByDefault) + XCTAssertEqual(hazards.first?.kind, .dataLoss) + } + + func testNarrowingTypeChangeIsRefused() { + let hazards = classifier.hazards(for: .modifyColumn( + old: column("name", "varchar(255)"), + new: column("name", "varchar(50)") + )) + + XCTAssertTrue(hazards.contains { $0.kind == .lossyTypeChange && $0.severity == .refusedByDefault }) + } + + func testWideningTypeChangeIsNotRefused() { + let hazards = classifier.hazards(for: .modifyColumn( + old: column("name", "varchar(50)"), + new: column("name", "varchar(255)") + )) + + XCTAssertFalse(hazards.contains { $0.kind == .lossyTypeChange }) + } + + func testMakingColumnNotNullIsRefused() { + let hazards = classifier.hazards(for: .modifyColumn( + old: column("email", "varchar(50)", nullable: true), + new: column("email", "varchar(50)", nullable: false) + )) + + XCTAssertTrue(hazards.contains { $0.kind == .dataLoss && $0.severity == .refusedByDefault }) + } + + func testAddColumnCarriesNoHazard() { + XCTAssertTrue(classifier.hazards(for: .addColumn(column("nickname", "varchar(20)"))).isEmpty) + } + + func testPrimaryKeyChangeIsRefused() { + let hazards = classifier.hazards(for: .modifyPrimaryKey(old: ["id"], new: ["id", "tenant"])) + + XCTAssertEqual(hazards.first?.severity, .refusedByDefault) + } +} + +final class CompareSyncEngineFamilyTests: XCTestCase { + func testSameTypeIsAlwaysAllowed() { + XCTAssertTrue(CompareSyncEngineFamily.canGenerateStructureScript(from: .postgresql, to: .postgresql)) + } + + func testMySqlAndMariaDbAreCompatibleInBothDirections() { + XCTAssertTrue(CompareSyncEngineFamily.canGenerateStructureScript(from: .mysql, to: .mariadb)) + XCTAssertTrue(CompareSyncEngineFamily.canGenerateStructureScript(from: .mariadb, to: .mysql)) + } + + func testUnrelatedEnginesAreRefused() { + XCTAssertFalse(CompareSyncEngineFamily.canGenerateStructureScript(from: .postgresql, to: .mysql)) + } + + func testUnknownFutureTypeIsCompatibleOnlyWithItself() { + let future = DatabaseType(rawValue: "SomeFutureEngine") + + XCTAssertTrue(CompareSyncEngineFamily.canGenerateStructureScript(from: future, to: future)) + XCTAssertFalse(CompareSyncEngineFamily.canGenerateStructureScript(from: future, to: .mysql)) + } + + func testCrossEngineDataWarningOnlyAppearsWhenTypesDiffer() { + XCTAssertNil(CompareSyncEngineFamily.crossEngineDataWarning(from: .mysql, to: .mysql)) + XCTAssertNotNil(CompareSyncEngineFamily.crossEngineDataWarning(from: .mysql, to: .postgresql)) + } +} diff --git a/TableProTests/Core/Compare/StructureDiffEngineTests.swift b/TableProTests/Core/Compare/StructureDiffEngineTests.swift new file mode 100644 index 000000000..a2b7f3d65 --- /dev/null +++ b/TableProTests/Core/Compare/StructureDiffEngineTests.swift @@ -0,0 +1,356 @@ +// +// StructureDiffEngineTests.swift +// TableProTests +// + +import Foundation +import XCTest + +@testable import TablePro + +final class StructureDiffEngineTests: XCTestCase { + private func column( + _ name: String, + _ dataType: String = "int", + nullable: Bool = true, + defaultValue: String? = nil, + autoIncrement: Bool = false, + comment: String? = nil, + collation: String? = nil, + charset: String? = nil, + extra: String? = nil, + primaryKey: Bool = false + ) -> EditableColumnDefinition { + EditableColumnDefinition( + id: UUID(), + name: name, + dataType: dataType, + isNullable: nullable, + defaultValue: defaultValue, + autoIncrement: autoIncrement, + unsigned: false, + comment: comment, + collation: collation, + onUpdate: nil, + charset: charset, + extra: extra, + isPrimaryKey: primaryKey + ) + } + + private func index( + _ name: String, + columns: [String], + unique: Bool = false, + primary: Bool = false + ) -> EditableIndexDefinition { + EditableIndexDefinition( + id: UUID(), + name: name, + columns: columns, + type: .btree, + isUnique: unique, + isPrimary: primary, + comment: nil, + columnPrefixes: [:], + whereClause: nil + ) + } + + private func foreignKey( + _ name: String, + columns: [String], + referencedTable: String, + referencedColumns: [String] + ) -> EditableForeignKeyDefinition { + EditableForeignKeyDefinition( + id: UUID(), + name: name, + columns: columns, + referencedTable: referencedTable, + referencedColumns: referencedColumns, + referencedSchema: nil, + onDelete: .noAction, + onUpdate: .noAction + ) + } + + private func table( + _ name: String, + columns: [EditableColumnDefinition], + indexes: [EditableIndexDefinition] = [], + foreignKeys: [EditableForeignKeyDefinition] = [], + engine: String? = nil, + collation: String? = nil + ) -> TableStructureSnapshot { + TableStructureSnapshot( + name: name, + schema: nil, + columns: columns, + indexes: indexes, + foreignKeys: foreignKeys, + engine: engine, + charset: nil, + collation: collation + ) + } + + // MARK: - Table presence + + func testTableOnlyInSourceIsCreateAndDefaultsToSkip() { + let engine = StructureDiffEngine() + let report = engine.compare( + source: [table("users", columns: [column("id")])], + target: [] + ) + + XCTAssertEqual(report.results.count, 1) + XCTAssertEqual(report.results[0].status, .onlyInSource) + XCTAssertEqual(report.results[0].suggestedAction, .create) + } + + func testTableOnlyInTargetIsDrop() { + let engine = StructureDiffEngine() + let report = engine.compare( + source: [], + target: [table("legacy", columns: [column("id")])] + ) + + XCTAssertEqual(report.results[0].status, .onlyInTarget) + XCTAssertEqual(report.results[0].suggestedAction, .drop) + } + + func testIdenticalTablesReportIdentical() { + let engine = StructureDiffEngine() + let source = table("users", columns: [column("id"), column("name", "varchar(20)")]) + let target = table("users", columns: [column("id"), column("name", "varchar(20)")]) + + let result = engine.compareTable(source: source, target: target) + + XCTAssertEqual(result.status, .identical) + XCTAssertTrue(result.changes.isEmpty) + } + + // MARK: - Column changes, direction is target becomes source + + func testMissingColumnInTargetProducesAddColumn() { + let engine = StructureDiffEngine() + let result = engine.compareTable( + source: table("users", columns: [column("id"), column("email", "varchar(255)")]), + target: table("users", columns: [column("id")]) + ) + + XCTAssertEqual(result.status, .differs) + guard case .addColumn(let added) = result.changes.first else { + return XCTFail("Expected addColumn, got \(result.changes)") + } + XCTAssertEqual(added.name, "email") + } + + func testExtraColumnInTargetProducesDeleteColumn() { + let engine = StructureDiffEngine() + let result = engine.compareTable( + source: table("users", columns: [column("id")]), + target: table("users", columns: [column("id"), column("obsolete")]) + ) + + guard case .deleteColumn(let removed) = result.changes.first else { + return XCTFail("Expected deleteColumn, got \(result.changes)") + } + XCTAssertEqual(removed.name, "obsolete") + } + + func testModifyColumnCarriesTargetAsOldAndSourceAsNew() { + let engine = StructureDiffEngine() + let result = engine.compareTable( + source: table("users", columns: [column("id", "bigint")]), + target: table("users", columns: [column("id", "int")]) + ) + + guard case .modifyColumn(let old, let new) = result.changes.first else { + return XCTFail("Expected modifyColumn, got \(result.changes)") + } + XCTAssertEqual(old.dataType, "int", "old must be the target's current state") + XCTAssertEqual(new.dataType, "bigint", "new must be the source's desired state") + } + + func testNullabilityChangeIsDetected() { + let engine = StructureDiffEngine() + let result = engine.compareTable( + source: table("users", columns: [column("id", nullable: false)]), + target: table("users", columns: [column("id", nullable: true)]) + ) + + XCTAssertEqual(result.status, .differs) + XCTAssertEqual(result.changes.count, 1) + } + + // MARK: - Ignore options each kill a named false positive + + func testIdentifierCaseOnlyDifferenceIsIgnoredByDefault() { + let result = StructureDiffEngine().compareTable( + source: table("Users", columns: [column("ID")]), + target: table("users", columns: [column("id")]) + ) + + XCTAssertEqual(result.status, .identical) + } + + func testIdentifierCaseDifferenceIsReportedWhenOptionOff() { + var options = StructureCompareOptions() + options.ignoreIdentifierCase = false + let result = StructureDiffEngine(options: options).compareTable( + source: table("users", columns: [column("ID")]), + target: table("users", columns: [column("id")]) + ) + + XCTAssertEqual(result.status, .differs) + } + + func testAutoIncrementSeedOnlyDifferenceIsIgnoredByDefault() { + let result = StructureDiffEngine().compareTable( + source: table("users", columns: [column("id", extra: "auto_increment=1522")]), + target: table("users", columns: [column("id", extra: "auto_increment=184")]) + ) + + XCTAssertEqual(result.status, .identical, "AUTO_INCREMENT drift must not be a difference") + } + + func testWhitespaceOnlyDefaultDifferenceIsIgnoredByDefault() { + let result = StructureDiffEngine().compareTable( + source: table("users", columns: [column("flag", defaultValue: "0")]), + target: table("users", columns: [column("flag", defaultValue: " 0 ")]) + ) + + XCTAssertEqual(result.status, .identical) + } + + func testCollationOnlyDifferenceIsIgnoredByDefaultAndReportedWhenOptionOff() { + let source = table("users", columns: [column("name", "varchar(20)", collation: "utf8mb4_general_ci")]) + let target = table("users", columns: [column("name", "varchar(20)", collation: "utf8mb4_unicode_ci")]) + + XCTAssertEqual(StructureDiffEngine().compareTable(source: source, target: target).status, .identical) + + var options = StructureCompareOptions() + options.ignoreCollationAndCharset = false + XCTAssertEqual( + StructureDiffEngine(options: options).compareTable(source: source, target: target).status, + .differs + ) + } + + func testCommentOnlyDifferenceIsIgnoredByDefaultAndReportedWhenOptionOff() { + let source = table("users", columns: [column("id", comment: "primary id")]) + let target = table("users", columns: [column("id", comment: nil)]) + + XCTAssertEqual(StructureDiffEngine().compareTable(source: source, target: target).status, .identical) + + var options = StructureCompareOptions() + options.ignoreCommentsAndOwners = false + XCTAssertEqual( + StructureDiffEngine(options: options).compareTable(source: source, target: target).status, + .differs + ) + } + + func testColumnOrderIsIgnoredByDefaultAndNotedWhenOptionOff() { + let source = table("users", columns: [column("a"), column("b")]) + let target = table("users", columns: [column("b"), column("a")]) + + XCTAssertEqual(StructureDiffEngine().compareTable(source: source, target: target).status, .identical) + + var options = StructureCompareOptions() + options.ignoreColumnOrder = false + let result = StructureDiffEngine(options: options).compareTable(source: source, target: target) + XCTAssertEqual(result.status, .differs) + XCTAssertTrue(result.changes.isEmpty, "reordering emits no DDL") + XCTAssertEqual(result.notes.count, 1) + } + + // MARK: - Name-only differences never mark an object changed + + func testIndexMatchedOnStructureDespiteGeneratedNameDifference() { + let result = StructureDiffEngine().compareTable( + source: table("users", columns: [column("email")], indexes: [index("idx_a1b2", columns: ["email"])]), + target: table("users", columns: [column("email")], indexes: [index("idx_c3d4", columns: ["email"])]) + ) + + XCTAssertTrue(result.changes.isEmpty, "a name-only index difference must emit no DDL") + XCTAssertEqual(result.notes.count, 1) + } + + func testIndexColumnDifferenceIsARealChange() { + let result = StructureDiffEngine().compareTable( + source: table("users", columns: [column("a"), column("b")], indexes: [index("i", columns: ["a", "b"])]), + target: table("users", columns: [column("a"), column("b")], indexes: [index("i", columns: ["a"])]) + ) + + XCTAssertEqual(result.changes.count, 2, "expected one add and one delete") + } + + func testForeignKeyMatchedOnStructureDespiteNameDifference() { + let source = table( + "orders", + columns: [column("user_id")], + foreignKeys: [foreignKey("fk_1", columns: ["user_id"], referencedTable: "users", referencedColumns: ["id"])] + ) + let target = table( + "orders", + columns: [column("user_id")], + foreignKeys: [foreignKey("fk_2", columns: ["user_id"], referencedTable: "users", referencedColumns: ["id"])] + ) + + let result = StructureDiffEngine().compareTable(source: source, target: target) + + XCTAssertTrue(result.changes.isEmpty) + XCTAssertEqual(result.notes.count, 1) + } + + // MARK: - Primary key + + func testPrimaryKeyDifferenceProducesSingleModifyPrimaryKey() { + let source = table("users", columns: [column("id", primaryKey: true), column("tenant", primaryKey: true)]) + let target = table("users", columns: [column("id", primaryKey: true), column("tenant")]) + + let result = StructureDiffEngine().compareTable(source: source, target: target) + + let primaryKeyChanges = result.changes.filter { + if case .modifyPrimaryKey = $0 { return true } + return false + } + XCTAssertEqual(primaryKeyChanges.count, 1) + guard case .modifyPrimaryKey(let old, let new) = primaryKeyChanges[0] else { + return XCTFail("Expected modifyPrimaryKey") + } + XCTAssertEqual(old, ["id"]) + XCTAssertEqual(new, ["id", "tenant"]) + } + + func testPrimaryKeyMembershipAloneDoesNotAlsoEmitModifyColumn() { + let source = table("users", columns: [column("id", primaryKey: true)]) + let target = table("users", columns: [column("id", primaryKey: false)]) + + let result = StructureDiffEngine().compareTable(source: source, target: target) + + let columnChanges = result.changes.filter { + if case .modifyColumn = $0 { return true } + return false + } + XCTAssertTrue(columnChanges.isEmpty, "primary key membership is reported once, via modifyPrimaryKey") + } + + // MARK: - Symmetry + + func testComparisonIsSymmetricInTheObjectsItReports() { + let engine = StructureDiffEngine() + let left = [table("a", columns: [column("id")]), table("b", columns: [column("id")])] + let right = [table("b", columns: [column("id")]), table("c", columns: [column("id")])] + + let forward = engine.compare(source: left, target: right) + let backward = engine.compare(source: right, target: left) + + XCTAssertEqual(forward.count(of: .onlyInSource), backward.count(of: .onlyInTarget)) + XCTAssertEqual(forward.count(of: .onlyInTarget), backward.count(of: .onlyInSource)) + XCTAssertEqual(forward.count(of: .identical), backward.count(of: .identical)) + } +} diff --git a/docs/docs.json b/docs/docs.json index 5ce68d781..b3ced4f0b 100644 --- a/docs/docs.json +++ b/docs/docs.json @@ -133,6 +133,7 @@ "features/csv-inspector", "features/import-export", "features/backup-restore", + "features/compare-sync", "features/change-tracking", "features/filtering" ] diff --git a/docs/features/compare-sync.mdx b/docs/features/compare-sync.mdx new file mode 100644 index 000000000..89beafbb9 --- /dev/null +++ b/docs/features/compare-sync.mdx @@ -0,0 +1,125 @@ +--- +title: Compare & Sync +description: Compare structure or data between two connections and generate the SQL script that syncs the target +--- + +Compare two connections and generate the SQL script that brings one in line with the other. Use it to check whether staging matches production, to diff two versions of a schema, or to copy rows between servers. + +Requires a Starter license. + +## Opening it + +- **File > Compare & Sync Databases...** +- Right-click a connection in the sidebar or on the welcome screen and choose **Compare/Sync with...**. The connection you clicked is filled in as the source. + +## Source and target + +The **source** is the connection that will not change. The **target** is the connection that will change. + +Both pickers start empty. Nothing is preselected as the target, so the write side is always a deliberate choice. A sentence under the pickers spells out what will happen, for example *Compare `staging` and write changes to `prod`*. Use **Swap** to reverse the direction. + +A connection whose safe mode level is **Read-Only** cannot be chosen as the target. It appears in the list with the reason shown, so you find out at selection time rather than after comparing. + +The target connection's colour is carried into the window and onto the apply button, so a connection you have tagged as production stays visually distinct. + +Nothing is written to either database until you apply. Until then the window shows **Comparing only, nothing has been written**. + +## Comparing structure + +Structure comparison reads column, index, foreign key, and primary key metadata from both sides and compares the parsed values. It does not diff `CREATE TABLE` text, because driver-rendered DDL varies by formatting and by system-generated constraint names, which reports identical objects as different. + +Each table lands in one of four states: **only in source**, **only in target**, **different**, or **identical**. Tables that cannot be compared get their own group with the reason, so nothing is silently skipped. + +Every object starts unchecked. You choose what to apply. + +### What is ignored + +These differences drift between environments by design, so they are ignored by default. Turn any of them off to have the difference reported. + +| Option | What it ignores | +| --- | --- | +| Identifier case | `Users` and `users` are the same table | +| Column order | Same columns in a different order | +| Whitespace in text | Padding inside default values and comments | +| Auto-increment seed | `AUTO_INCREMENT=184` against `AUTO_INCREMENT=1522` | +| Collation and character set | Column and table collation differences | +| Comments and owners | Column comments, object owners, and definers | + +Indexes and foreign keys are matched on structure, not on name. An index that matches on columns, uniqueness, and type but carries a different system-generated name is reported as a note rather than as a change, so no DDL is generated for it. + +Renames are never guessed. A renamed column shows as a drop and an add, because no tool can tell a rename from a drop plus an add without being told. + +### Same-engine rule + +Generating a structure sync script needs matching database types. Column data types are engine-specific strings, so building DDL for one engine out of another engine's metadata is not sound. MySQL and MariaDB are treated as one family. + +Two different engines can still be compared. You get the differences as a read-only view, with no script. + +## Comparing data + +Data comparison matches rows by a key and walks both sides in key order, so neither table is loaded into memory in full. + +Key columns are filled in from the source table's primary key. Composite keys are supported. A table with no primary key, or with no columns in common, is listed as not comparable rather than matched on a guess, because matching on every column cannot tell one row from two identical rows. + +Tables are matched by name across the two sides, and only the columns present on both are compared. + +Three actions control what the script contains: + +- **Insert missing rows** (on by default) +- **Update differing rows** (on by default) +- **Delete extra rows** (off by default) + +Delete is off by default so the first run cannot remove a row you did not mean to touch. + +### Which columns are compared + +Columns used to compare are separate from columns that get written. Exclude `updated_at` from comparison and rows that differ only in that column stop showing as differences, while the column is still carried into any row that is inserted or updated. + +### How values are judged equal + +- `NULL` equals only `NULL`. It is never treated as an empty string. +- Numbers compare exactly unless you set a tolerance. A tolerance of `0.001` treats `109.05999755859375` and `109.05999755859381` as equal. The comparison gives the same answer whichever side you call the source. +- Timestamps compare as instants at the fractional precision you choose. The same instant written at two offsets, such as `08:00:00-08:00` and `11:00:00-05:00`, is not a difference. No timezone conversion is applied anywhere in the comparison. +- Binary values compare by bytes. + +When a value is flagged, the row inspector names the rule that fired, so you can tell why two values that look the same were treated as different. + +## The script + +The generated script is editable before it runs. + +Statements are ordered by foreign key dependency: tables are dropped children first, and created parents first. For data, inserts come before updates before deletes. A circular foreign key still emits every table. + +### Held-back statements + +Anything that can destroy data is listed but not executed unless you allow it for that run: + +- Dropping a table or a column +- A type change that can truncate values, such as `varchar(255)` to `varchar(50)` +- Making a nullable column `NOT NULL` +- Changing the primary key + +Held-back statements stay visible in the preview, so what you see is what would run. There is no setting that permanently allows them; the choice is made per run. + +Collation changes and dropped indexes are shown as warnings rather than held back. + +## Applying + +Applying runs the script against the target only. You confirm once, in an alert that names the target and counts the statements. + +Data sync runs in a transaction where the target supports one. Structure sync runs in a transaction only where the target supports transactional DDL; on MySQL and Oracle it does not, so statements that already ran stay applied if a later one fails. The window says which case applies rather than implying a rollback you will not get. + +If you choose to continue past errors, the transaction option is disabled, because the two combined leave the target half-applied. + +Progress is reported per statement and the run can be cancelled. Cancelling stops the run between statements; a statement already in flight finishes. + +## Saving a setup + +Save the source, target, mode, scope, ignore options, and key choices as a named comparison you can run again. + +## Limits + +- One direction per run. To sync both ways, swap and run again. +- Two live connections only. Backups, dump files, and source control are not comparison endpoints. +- No scheduling. Every comparison is started by you and reviewed before anything runs. +- Structure sync needs a driver that reports comparable structure metadata and can generate DDL. Data sync needs rows addressable by a key. A driver that declares neither stops the comparison with the reason shown once both sides are connected. From 5971751998b8e8777159e3ae539b4d05efc299c2 Mon Sep 17 00:00:00 2001 From: Ngo Quoc Dat Date: Mon, 27 Jul 2026 16:42:55 +0700 Subject: [PATCH 2/9] feat(compare): key and column selection, definition diff, profiles, and close guard (#721) --- TablePro/AppDelegate.swift | 14 ++ .../Core/Compare/CompareSyncRunRegistry.swift | 34 ++++ .../Compare/CompareSyncSession+Data.swift | 8 + .../Compare/CompareSyncSession+Editing.swift | 115 +++++++++++ .../Core/Compare/CompareSyncSession+Run.swift | 10 + .../Core/Compare/CompareSyncSession.swift | 3 + .../Compare/TableDefinitionRenderer.swift | 68 +++++++ .../Views/Compare/CompareStatusBanner.swift | 13 +- .../Views/Compare/CompareSyncCloseGuard.swift | 75 ++++++++ .../Views/Compare/CompareSyncSetupView.swift | 50 +++++ .../Views/Compare/CompareSyncWindowView.swift | 2 +- .../Views/Compare/DataCompareReviewView.swift | 110 ++++++++++- .../Compare/StructureCompareReviewView.swift | 25 ++- .../Compare/StructureDefinitionDiffView.swift | 145 ++++++++++++++ .../TableDefinitionRendererTests.swift | 181 ++++++++++++++++++ TableProUITests/CompareSyncUITests.swift | 95 +++++++++ docs/features/compare-sync.mdx | 12 +- 17 files changed, 946 insertions(+), 14 deletions(-) create mode 100644 TablePro/Core/Compare/CompareSyncRunRegistry.swift create mode 100644 TablePro/Core/Compare/CompareSyncSession+Editing.swift create mode 100644 TablePro/Core/Compare/TableDefinitionRenderer.swift create mode 100644 TablePro/Views/Compare/CompareSyncCloseGuard.swift create mode 100644 TablePro/Views/Compare/StructureDefinitionDiffView.swift create mode 100644 TableProTests/Core/Compare/TableDefinitionRendererTests.swift create mode 100644 TableProUITests/CompareSyncUITests.swift diff --git a/TablePro/AppDelegate.swift b/TablePro/AppDelegate.swift index 9dd33a442..999a2dbc7 100644 --- a/TablePro/AppDelegate.swift +++ b/TablePro/AppDelegate.swift @@ -125,6 +125,20 @@ class AppDelegate: NSObject, NSApplicationDelegate { } func applicationShouldTerminate(_ sender: NSApplication) -> NSApplication.TerminateReply { + if CompareSyncRunRegistry.shared.isApplying { + let alert = NSAlert() + alert.messageText = String(localized: "A sync is still running") + alert.informativeText = String( + format: String(localized: "Quitting stops the run against %@. Statements that already ran stay applied."), + CompareSyncRunRegistry.shared.applyingTargetNames.joined(separator: ", ") + ) + alert.alertStyle = .critical + alert.addButton(withTitle: String(localized: "Keep Running")) + alert.addButton(withTitle: String(localized: "Stop and Quit")) + alert.buttons[1].hasDestructiveAction = true + guard alert.runModal() == .alertSecondButtonReturn else { return .terminateCancel } + } + let hasUnsaved = MainContentCoordinator.hasAnyUnsavedChanges() if hasUnsaved { let alert = NSAlert() diff --git a/TablePro/Core/Compare/CompareSyncRunRegistry.swift b/TablePro/Core/Compare/CompareSyncRunRegistry.swift new file mode 100644 index 000000000..1c4a87aa3 --- /dev/null +++ b/TablePro/Core/Compare/CompareSyncRunRegistry.swift @@ -0,0 +1,34 @@ +// +// CompareSyncRunRegistry.swift +// TablePro +// +// Tracks sessions that are mid-apply so closing the window or quitting the app +// can warn before a half-applied script is abandoned. +// + +import Foundation + +@MainActor +internal final class CompareSyncRunRegistry { + internal static let shared = CompareSyncRunRegistry() + + private var applyingTargets: [ObjectIdentifier: String] = [:] + + private init() {} + + internal func markApplying(_ session: CompareSyncSession, target: String) { + applyingTargets[ObjectIdentifier(session)] = target + } + + internal func clear(_ session: CompareSyncSession) { + applyingTargets.removeValue(forKey: ObjectIdentifier(session)) + } + + internal var isApplying: Bool { + !applyingTargets.isEmpty + } + + internal var applyingTargetNames: [String] { + applyingTargets.values.sorted() + } +} diff --git a/TablePro/Core/Compare/CompareSyncSession+Data.swift b/TablePro/Core/Compare/CompareSyncSession+Data.swift index 76498ccd3..d3342397e 100644 --- a/TablePro/Core/Compare/CompareSyncSession+Data.swift +++ b/TablePro/Core/Compare/CompareSyncSession+Data.swift @@ -63,6 +63,7 @@ internal extension CompareSyncSession { } self.activity = .comparing + let pending = self.pendingSelectedTables var plans = try await Self.buildPlans( sourceDriver: sourceDriver, targetDriver: targetDriver, @@ -71,6 +72,13 @@ internal extension CompareSyncSession { existing: self.dataPlans ) + if !pending.isEmpty { + for index in plans.indices { + plans[index].isEnabled = pending.contains(plans[index].id) + } + self.pendingSelectedTables = [] + } + for index in plans.indices where plans[index].isEnabled && plans[index].isComparable { try Task.checkCancellation() plans[index].summary = try await self.runDataDiff( diff --git a/TablePro/Core/Compare/CompareSyncSession+Editing.swift b/TablePro/Core/Compare/CompareSyncSession+Editing.swift new file mode 100644 index 000000000..c3780ea76 --- /dev/null +++ b/TablePro/Core/Compare/CompareSyncSession+Editing.swift @@ -0,0 +1,115 @@ +// +// CompareSyncSession+Editing.swift +// TablePro +// +// Editing the comparison setup after a first run: key columns, which columns +// take part in the comparison, and saved profiles. +// + +import Foundation + +internal extension CompareSyncSession { + // MARK: - Key columns + + func setKeyColumns(_ columns: [String], for planId: String) { + guard let index = dataPlans.firstIndex(where: { $0.id == planId }) else { return } + dataPlans[index].keyColumns = columns + dataPlans[index].summary = nil + dataPlans[index].unavailableReason = columns.isEmpty + ? String(localized: "No primary key. Choose key columns to compare this table.") + : nil + invalidateGeneratedScript() + } + + func toggleKeyColumn(_ column: String, for planId: String) { + guard let plan = dataPlans.first(where: { $0.id == planId }) else { return } + var columns = plan.keyColumns + if let existing = columns.firstIndex(where: { $0.caseInsensitiveCompare(column) == .orderedSame }) { + columns.remove(at: existing) + } else { + columns.append(column) + } + setKeyColumns(columns, for: planId) + } + + func isKeyColumn(_ column: String, in plan: DataComparePlan) -> Bool { + plan.keyColumns.contains { $0.caseInsensitiveCompare(column) == .orderedSame } + } + + // MARK: - Comparison columns + + func isColumnCompared(_ column: String) -> Bool { + !dataOptions.excludedFromComparison.contains { $0.caseInsensitiveCompare(column) == .orderedSame } + } + + func toggleComparedColumn(_ column: String) { + if let existing = dataOptions.excludedFromComparison + .first(where: { $0.caseInsensitiveCompare(column) == .orderedSame }) { + dataOptions.excludedFromComparison.remove(existing) + } else { + dataOptions.excludedFromComparison.insert(column) + } + clearDataSummaries() + } + + func clearDataSummaries() { + for index in dataPlans.indices { + dataPlans[index].summary = nil + } + invalidateGeneratedScript() + } + + var needsRecompare: Bool { + guard mode == .data, !dataPlans.isEmpty else { return false } + return dataPlans.contains { $0.isEnabled && $0.isComparable && $0.summary == nil } + } + + private func invalidateGeneratedScript() { + statements = [] + editedScript = nil + } + + // MARK: - Profiles + + var savedProfiles: [CompareSyncProfile] { + guard let source, let target else { return [] } + return CompareSyncProfileStorage.shared.profiles( + source: source.connectionId, target: target.connectionId, mode: mode + ) + } + + func saveProfile(named name: String) { + guard let source, let target, !name.trimmingCharacters(in: .whitespaces).isEmpty else { return } + let profile = CompareSyncProfile( + name: name, + sourceConnectionId: source.connectionId, + targetConnectionId: target.connectionId, + mode: mode, + structureOptions: structureOptions, + dataOptions: dataOptions, + selectedTables: selectedTableIdentifiers + ) + CompareSyncProfileStorage.shared.save(profile) + } + + func apply(_ profile: CompareSyncProfile) { + mode = profile.mode + structureOptions = profile.structureOptions + dataOptions = profile.dataOptions + resetComparison() + pendingSelectedTables = Set(profile.selectedTables) + } + + func deleteProfile(_ profile: CompareSyncProfile) { + CompareSyncProfileStorage.shared.delete(profile) + } + + private var selectedTableIdentifiers: [String] { + switch mode { + case .structure: + return tableActions.filter { $0.value != .skip }.map { $0.key }.sorted() + case .data: + return dataPlans.filter { $0.isEnabled }.map { $0.id }.sorted() + } + } +} diff --git a/TablePro/Core/Compare/CompareSyncSession+Run.swift b/TablePro/Core/Compare/CompareSyncSession+Run.swift index bd8d270b8..a75245f41 100644 --- a/TablePro/Core/Compare/CompareSyncSession+Run.swift +++ b/TablePro/Core/Compare/CompareSyncSession+Run.swift @@ -46,7 +46,15 @@ internal extension CompareSyncSession { sourceSnapshots.map { ($0.qualifiedName, $0) }, uniquingKeysWith: { first, _ in first } ) + self.targetSnapshotCache = Dictionary( + targetSnapshots.map { ($0.qualifiedName, $0) }, + uniquingKeysWith: { first, _ in first } + ) self.tableActions = [:] + for result in report.comparable where self.pendingSelectedTables.contains(result.id) { + self.tableActions[result.id] = result.suggestedAction + } + self.pendingSelectedTables = [] self.statements = [] self.editedScript = nil self.lastAction = .compared(Date(), differences: report.comparable.filter { $0.status != .identical }.count) @@ -100,9 +108,11 @@ internal extension CompareSyncSession { guard let self else { return } self.activity = .applying self.hasWrittenToTarget = true + CompareSyncRunRegistry.shared.markApplying(self, target: target.qualifiedDescription) defer { self.activity = .idle self.progress = nil + CompareSyncRunRegistry.shared.clear(self) } do { diff --git a/TablePro/Core/Compare/CompareSyncSession.swift b/TablePro/Core/Compare/CompareSyncSession.swift index cd0c3394b..6fef0a07e 100644 --- a/TablePro/Core/Compare/CompareSyncSession.swift +++ b/TablePro/Core/Compare/CompareSyncSession.swift @@ -74,6 +74,8 @@ internal final class CompareSyncSession { internal var hasWrittenToTarget = false internal var sourceSnapshotCache: [String: TableStructureSnapshot] = [:] + internal var targetSnapshotCache: [String: TableStructureSnapshot] = [:] + internal var pendingSelectedTables: Set = [] internal var runTask: Task? @@ -197,6 +199,7 @@ internal final class CompareSyncSession { internal func resetComparison() { structureReport = nil sourceSnapshotCache = [:] + targetSnapshotCache = [:] dataPlans = [] tableActions = [:] statements = [] diff --git a/TablePro/Core/Compare/TableDefinitionRenderer.swift b/TablePro/Core/Compare/TableDefinitionRenderer.swift new file mode 100644 index 000000000..9607dbd96 --- /dev/null +++ b/TablePro/Core/Compare/TableDefinitionRenderer.swift @@ -0,0 +1,68 @@ +// +// TableDefinitionRenderer.swift +// TablePro +// +// Canonical text for one table's structure, rendered from parsed metadata +// rather than from driver DDL. Both sides of a comparison render through the +// same function, so a formatting difference can never show up as a difference. +// + +import Foundation + +internal enum TableDefinitionRenderer { + internal static func lines(for snapshot: TableStructureSnapshot) -> [String] { + var result: [String] = ["TABLE \(snapshot.name)"] + + for column in snapshot.columns { + result.append(" COLUMN \(column.name) \(column.dataType)\(columnAttributes(column))") + } + + let primaryKey = snapshot.primaryKeyColumns + if !primaryKey.isEmpty { + result.append(" PRIMARY KEY (\(primaryKey.joined(separator: ", ")))") + } + + for index in snapshot.indexes.filter({ !$0.isPrimary }) + .sorted(by: { $0.name.localizedStandardCompare($1.name) == .orderedAscending }) { + let unique = index.isUnique ? "UNIQUE " : "" + var line = " \(unique)INDEX \(index.name) (\(index.columns.joined(separator: ", "))) USING \(index.type.rawValue)" + if let whereClause = index.whereClause, !whereClause.isEmpty { + line += " WHERE \(whereClause)" + } + result.append(line) + } + + for foreignKey in snapshot.foreignKeys + .sorted(by: { $0.name.localizedStandardCompare($1.name) == .orderedAscending }) { + let columns = foreignKey.columns.joined(separator: ", ") + let referenced = foreignKey.referencedColumns.joined(separator: ", ") + result.append( + " FOREIGN KEY \(foreignKey.name) (\(columns)) REFERENCES \(foreignKey.referencedTable) (\(referenced))" + + " ON DELETE \(foreignKey.onDelete.rawValue) ON UPDATE \(foreignKey.onUpdate.rawValue)" + ) + } + + if let engine = snapshot.engine, !engine.isEmpty { + result.append(" ENGINE \(engine)") + } + if let collation = snapshot.collation, !collation.isEmpty { + result.append(" COLLATE \(collation)") + } + return result + } + + private static func columnAttributes(_ column: EditableColumnDefinition) -> String { + var parts: [String] = [] + if column.unsigned { parts.append("UNSIGNED") } + parts.append(column.isNullable ? "NULL" : "NOT NULL") + if let defaultValue = column.defaultValue, !defaultValue.isEmpty { + parts.append("DEFAULT \(defaultValue)") + } + if column.autoIncrement { parts.append("AUTO_INCREMENT") } + if let onUpdate = column.onUpdate, !onUpdate.isEmpty { parts.append("ON UPDATE \(onUpdate)") } + if let charset = column.charset, !charset.isEmpty { parts.append("CHARACTER SET \(charset)") } + if let collation = column.collation, !collation.isEmpty { parts.append("COLLATE \(collation)") } + if let comment = column.comment, !comment.isEmpty { parts.append("COMMENT '\(comment)'") } + return parts.isEmpty ? "" : " " + parts.joined(separator: " ") + } +} diff --git a/TablePro/Views/Compare/CompareStatusBanner.swift b/TablePro/Views/Compare/CompareStatusBanner.swift index 0f879d52e..c062b71cb 100644 --- a/TablePro/Views/Compare/CompareStatusBanner.swift +++ b/TablePro/Views/Compare/CompareStatusBanner.swift @@ -99,9 +99,16 @@ internal struct CompareSyncFooter: View { .disabled(!session.canCompare) case .review: Button(String(localized: "Back")) { session.step = .setup } - Button(String(localized: "Generate Script")) { session.buildScript() } - .keyboardShortcut(.defaultAction) - .disabled(!session.canBuildScript) + if session.needsRecompare { + Button(String(localized: "Compare Again")) { session.runComparison() } + .keyboardShortcut(.defaultAction) + Button(String(localized: "Generate Script")) { session.buildScript() } + .disabled(!session.canBuildScript) + } else { + Button(String(localized: "Generate Script")) { session.buildScript() } + .keyboardShortcut(.defaultAction) + .disabled(!session.canBuildScript) + } case .script: Button(String(localized: "Back")) { session.step = .review } Button(String(localized: "Apply to Target")) { isConfirmingApply = true } diff --git a/TablePro/Views/Compare/CompareSyncCloseGuard.swift b/TablePro/Views/Compare/CompareSyncCloseGuard.swift new file mode 100644 index 000000000..7cb7d0564 --- /dev/null +++ b/TablePro/Views/Compare/CompareSyncCloseGuard.swift @@ -0,0 +1,75 @@ +// +// CompareSyncCloseGuard.swift +// TablePro +// +// Refuses to close the window while a script is being applied, so a run is not +// abandoned halfway without the user saying so. The delegate forwards every +// other message to whatever delegate SwiftUI installed. +// + +import AppKit +import SwiftUI + +internal struct CompareSyncCloseGuard: NSViewRepresentable { + internal let session: CompareSyncSession + + internal func makeNSView(context: Context) -> NSView { + let view = CloseGuardHostView() + view.session = session + return view + } + + internal func updateNSView(_ nsView: NSView, context: Context) { + (nsView as? CloseGuardHostView)?.session = session + } +} + +private final class CloseGuardHostView: NSView { + var session: CompareSyncSession? { + didSet { proxy.session = session } + } + + private let proxy = CloseGuardDelegateProxy() + + override func viewDidMoveToWindow() { + super.viewDidMoveToWindow() + guard let window else { return } + guard !(window.delegate is CloseGuardDelegateProxy) else { return } + proxy.forwarding = window.delegate + window.delegate = proxy + } +} + +private final class CloseGuardDelegateProxy: NSObject, NSWindowDelegate { + weak var forwarding: NSWindowDelegate? + weak var session: CompareSyncSession? + + override func responds(to aSelector: Selector!) -> Bool { + if super.responds(to: aSelector) { return true } + return forwarding?.responds(to: aSelector) ?? false + } + + override func forwardingTarget(for aSelector: Selector!) -> Any? { + if forwarding?.responds(to: aSelector) == true { return forwarding } + return super.forwardingTarget(for: aSelector) + } + + func windowShouldClose(_ sender: NSWindow) -> Bool { + guard let session, session.activity == .applying else { + return forwarding?.windowShouldClose?(sender) ?? true + } + + let alert = NSAlert() + alert.alertStyle = .critical + alert.messageText = String(localized: "A sync is still running") + alert.informativeText = String( + localized: "Closing now stops the run between statements. Statements that already ran stay applied." + ) + alert.addButton(withTitle: String(localized: "Keep Running")) + alert.addButton(withTitle: String(localized: "Stop and Close")) + guard alert.runModal() == .alertSecondButtonReturn else { return false } + + session.cancelRunningWork() + return true + } +} diff --git a/TablePro/Views/Compare/CompareSyncSetupView.swift b/TablePro/Views/Compare/CompareSyncSetupView.swift index c5f83d121..e1d0721de 100644 --- a/TablePro/Views/Compare/CompareSyncSetupView.swift +++ b/TablePro/Views/Compare/CompareSyncSetupView.swift @@ -13,6 +13,7 @@ internal struct CompareSyncSetupView: View { @Bindable internal var session: CompareSyncSession @State private var candidates: [CompareSyncEndpoint] = [] + @State private var profileName = "" internal var body: some View { ScrollView { @@ -20,6 +21,7 @@ internal struct CompareSyncSetupView: View { modePicker endpointPickers directionSummary + profilesSection optionsSection } .padding(20) @@ -129,6 +131,54 @@ internal struct CompareSyncSetupView: View { } } + @ViewBuilder + private var profilesSection: some View { + if session.source != nil, session.target != nil { + VStack(alignment: .leading, spacing: 6) { + Text("Saved comparisons") + .font(.headline) + + HStack(spacing: 8) { + let profiles = session.savedProfiles + if profiles.isEmpty { + Text("None saved for this pair yet.") + .font(.caption) + .foregroundStyle(.secondary) + } else { + Menu { + ForEach(profiles) { profile in + Button(profile.name) { session.apply(profile) } + } + Divider() + ForEach(profiles) { profile in + Button( + String(format: String(localized: "Delete %@"), profile.name), + role: .destructive + ) { + session.deleteProfile(profile) + } + } + } label: { + Label(String(localized: "Load"), systemImage: "tray.and.arrow.down") + } + .menuStyle(.borderlessButton) + .fixedSize() + } + + Spacer() + + TextField(String(localized: "Name"), text: $profileName) + .frame(width: 160) + Button(String(localized: "Save")) { + session.saveProfile(named: profileName) + profileName = "" + } + .disabled(profileName.trimmingCharacters(in: .whitespaces).isEmpty) + } + } + } + } + @ViewBuilder private var optionsSection: some View { if session.mode == .structure { diff --git a/TablePro/Views/Compare/CompareSyncWindowView.swift b/TablePro/Views/Compare/CompareSyncWindowView.swift index 01c02a08e..239e04088 100644 --- a/TablePro/Views/Compare/CompareSyncWindowView.swift +++ b/TablePro/Views/Compare/CompareSyncWindowView.swift @@ -13,7 +13,6 @@ internal struct CompareSyncWindowView: View { @State private var session = CompareSyncSession() @State private var isConfirmingApply = false - @State private var isConfirmingClose = false internal var body: some View { VStack(spacing: 0) { @@ -29,6 +28,7 @@ internal struct CompareSyncWindowView: View { CompareSyncFooter(session: session, isConfirmingApply: $isConfirmingApply) } .frame(minWidth: 900, minHeight: 560) + .background(CompareSyncCloseGuard(session: session)) .task { applyPrefill() } .alert(String(localized: "Apply changes?"), isPresented: $isConfirmingApply) { Button(String(localized: "Cancel"), role: .cancel) {} diff --git a/TablePro/Views/Compare/DataCompareReviewView.swift b/TablePro/Views/Compare/DataCompareReviewView.swift index 8efb6a7fb..c569f059c 100644 --- a/TablePro/Views/Compare/DataCompareReviewView.swift +++ b/TablePro/Views/Compare/DataCompareReviewView.swift @@ -87,7 +87,27 @@ internal struct DataCompareReviewView: View { @ViewBuilder private var rowPane: some View { - if let plan = selectedPlan, let summary = plan.summary { + if let plan = selectedPlan { + VStack(spacing: 0) { + DataComparePlanEditor(session: session, plan: plan) + Divider() + rowContent(for: plan) + } + } else { + VStack(spacing: 8) { + Image(systemName: "tablecells") + .font(.largeTitle) + .foregroundStyle(.tertiary) + Text("Select a table to see its row differences") + .foregroundStyle(.secondary) + } + .frame(maxWidth: .infinity, maxHeight: .infinity) + } + } + + @ViewBuilder + private func rowContent(for plan: DataComparePlan) -> some View { + if let summary = plan.summary { VStack(spacing: 0) { HStack { Picker("", selection: $filter) { @@ -98,9 +118,6 @@ internal struct DataCompareReviewView: View { .labelsHidden() .frame(width: 150) Spacer() - Text(String(format: String(localized: "Key: %@"), plan.keyColumns.joined(separator: ", "))) - .font(.caption) - .foregroundStyle(.secondary) } .padding(.horizontal, 12) .padding(.vertical, 8) @@ -121,17 +138,98 @@ internal struct DataCompareReviewView: View { } } else { VStack(spacing: 8) { - Image(systemName: "tablecells") + Image(systemName: "arrow.clockwise") .font(.largeTitle) .foregroundStyle(.tertiary) - Text("Select a table to see its row differences") + Text(plan.unavailableReason ?? String(localized: "Not compared yet. Run Compare Again to refresh this table.")) .foregroundStyle(.secondary) + .multilineTextAlignment(.center) } + .padding(20) .frame(maxWidth: .infinity, maxHeight: .infinity) } } } +internal struct DataComparePlanEditor: View { + @Bindable internal var session: CompareSyncSession + internal let plan: DataComparePlan + + internal var body: some View { + VStack(alignment: .leading, spacing: 6) { + HStack(alignment: .top, spacing: 12) { + columnMenu( + title: String(localized: "Key columns"), + summary: plan.keyColumns.isEmpty + ? String(localized: "None chosen") + : plan.keyColumns.joined(separator: ", "), + systemImage: "key.fill" + ) { + ForEach(plan.columns, id: \.self) { column in + Toggle(column, isOn: Binding( + get: { session.isKeyColumn(column, in: plan) }, + set: { _ in session.toggleKeyColumn(column, for: plan.id) } + )) + } + } + + columnMenu( + title: String(localized: "Compared columns"), + summary: comparedSummary, + systemImage: "text.magnifyingglass" + ) { + ForEach(nonKeyColumns, id: \.self) { column in + Toggle(column, isOn: Binding( + get: { session.isColumnCompared(column) }, + set: { _ in session.toggleComparedColumn(column) } + )) + } + } + + Spacer() + } + + Text("Excluded columns are still written on insert and update. Changing either list needs another comparison.") + .font(.caption2) + .foregroundStyle(.secondary) + } + .padding(.horizontal, 12) + .padding(.vertical, 8) + } + + private var nonKeyColumns: [String] { + plan.columns.filter { !session.isKeyColumn($0, in: plan) } + } + + private var comparedSummary: String { + let excluded = nonKeyColumns.filter { !session.isColumnCompared($0) } + guard !excluded.isEmpty else { return String(localized: "All") } + return String(format: String(localized: "%d excluded"), excluded.count) + } + + private func columnMenu( + title: String, + summary: String, + systemImage: String, + @ViewBuilder content: () -> some View + ) -> some View { + VStack(alignment: .leading, spacing: 2) { + Text(title) + .font(.caption.weight(.semibold)) + .foregroundStyle(.secondary) + Menu { + content() + } label: { + Label(summary, systemImage: systemImage) + .font(.caption) + .lineLimit(1) + } + .menuStyle(.borderlessButton) + .fixedSize() + } + } +} + internal struct DataComparePlanRow: View { @Binding internal var plan: DataComparePlan diff --git a/TablePro/Views/Compare/StructureCompareReviewView.swift b/TablePro/Views/Compare/StructureCompareReviewView.swift index aa6bc2fed..c981f99bc 100644 --- a/TablePro/Views/Compare/StructureCompareReviewView.swift +++ b/TablePro/Views/Compare/StructureCompareReviewView.swift @@ -136,7 +136,11 @@ internal struct StructureCompareReviewView: View { @ViewBuilder private var detailPane: some View { if let result = visibleResults.first(where: { $0.id == selection }) { - CompareResultDetailView(result: result) + CompareResultDetailView( + result: result, + sourceSnapshot: session.sourceSnapshotCache[result.id], + targetSnapshot: session.targetSnapshotCache[result.id] + ) } else { VStack(spacing: 8) { Image(systemName: "sidebar.right") @@ -247,6 +251,8 @@ internal struct CompareResultRow: View { internal struct CompareResultDetailView: View { internal let result: TableDiffResult + internal let sourceSnapshot: TableStructureSnapshot? + internal let targetSnapshot: TableStructureSnapshot? internal var body: some View { ScrollView { @@ -266,6 +272,23 @@ internal struct CompareResultDetailView: View { } } + if let sourceSnapshot, let targetSnapshot { + StructureDefinitionDiffView( + sourceLines: TableDefinitionRenderer.lines(for: sourceSnapshot), + targetLines: TableDefinitionRenderer.lines(for: targetSnapshot) + ) + } else if let onlySide = sourceSnapshot ?? targetSnapshot { + VStack(alignment: .leading, spacing: 4) { + Text(sourceSnapshot == nil ? "Definition on the target" : "Definition on the source") + .font(.subheadline.weight(.semibold)) + ForEach(TableDefinitionRenderer.lines(for: onlySide), id: \.self) { line in + Text(line) + .font(.system(.caption, design: .monospaced)) + .textSelection(.enabled) + } + } + } + if result.changes.isEmpty { Text("No structural changes.") .foregroundStyle(.secondary) diff --git a/TablePro/Views/Compare/StructureDefinitionDiffView.swift b/TablePro/Views/Compare/StructureDefinitionDiffView.swift new file mode 100644 index 000000000..debd600c2 --- /dev/null +++ b/TablePro/Views/Compare/StructureDefinitionDiffView.swift @@ -0,0 +1,145 @@ +// +// StructureDefinitionDiffView.swift +// TablePro +// +// Source and target definitions side by side. Both sides are rendered from +// parsed metadata through the same function, so only real differences show. +// Difference type carries a glyph as well as a colour. +// + +import SwiftUI + +internal struct StructureDefinitionDiffView: View { + internal let sourceLines: [String] + internal let targetLines: [String] + + @State private var isUnified = false + + @Environment(\.accessibilityDifferentiateWithoutColor) private var differentiateWithoutColor + + private var pairs: [DiffPair] { + DiffComputer.computeSplit(before: targetLines, after: sourceLines) + } + + internal var body: some View { + VStack(alignment: .leading, spacing: 0) { + HStack { + Text("Definition") + .font(.subheadline.weight(.semibold)) + Spacer() + Picker("", selection: $isUnified) { + Text("Split").tag(false) + Text("Unified").tag(true) + } + .pickerStyle(.segmented) + .labelsHidden() + .frame(width: 140) + } + .padding(.bottom, 6) + + if isUnified { + unifiedBody + } else { + splitBody + } + } + } + + private var splitBody: some View { + VStack(spacing: 0) { + HStack(spacing: 0) { + columnHeader(String(localized: "Target")) + columnHeader(String(localized: "Source")) + } + ForEach(Array(pairs.enumerated()), id: \.offset) { _, pair in + HStack(spacing: 0) { + diffCell(pair.before, kind: pair.kind, isBefore: true) + diffCell(pair.after, kind: pair.kind, isBefore: false) + } + } + } + .background(RoundedRectangle(cornerRadius: 4).stroke(Color.secondary.opacity(0.2))) + } + + private var unifiedBody: some View { + VStack(alignment: .leading, spacing: 0) { + ForEach(DiffComputer.computeUnified(from: pairs)) { line in + HStack(spacing: 6) { + Text(marker(for: line.kind)) + .font(.system(.caption2, design: .monospaced)) + .frame(width: 12) + Text(line.text) + .font(.system(.caption, design: .monospaced)) + .textSelection(.enabled) + Spacer(minLength: 0) + } + .padding(.horizontal, 6) + .padding(.vertical, 1) + .background(background(for: line.kind)) + } + } + .background(RoundedRectangle(cornerRadius: 4).stroke(Color.secondary.opacity(0.2))) + } + + private func columnHeader(_ title: String) -> some View { + Text(title) + .font(.caption.weight(.semibold)) + .foregroundStyle(.secondary) + .frame(maxWidth: .infinity, alignment: .leading) + .padding(.horizontal, 6) + .padding(.vertical, 3) + } + + private func diffCell(_ text: String?, kind: DiffPair.Kind, isBefore: Bool) -> some View { + HStack(spacing: 4) { + Text(glyph(for: kind, isBefore: isBefore)) + .font(.system(.caption2, design: .monospaced)) + .frame(width: 10) + Text(text ?? "") + .font(.system(.caption, design: .monospaced)) + .textSelection(.enabled) + Spacer(minLength: 0) + } + .padding(.horizontal, 6) + .padding(.vertical, 1) + .frame(maxWidth: .infinity, alignment: .leading) + .background(splitBackground(kind: kind, isBefore: isBefore, isEmpty: text == nil)) + } + + private func glyph(for kind: DiffPair.Kind, isBefore: Bool) -> String { + switch kind { + case .unchanged: return " " + case .changed: return "~" + case .added: return isBefore ? " " : "+" + case .removed: return isBefore ? "-" : " " + } + } + + private func marker(for kind: DiffUnifiedLine.Kind) -> String { + switch kind { + case .context: return " " + case .added: return "+" + case .removed: return "-" + } + } + + private func splitBackground(kind: DiffPair.Kind, isBefore: Bool, isEmpty: Bool) -> Color { + guard !differentiateWithoutColor else { return .clear } + guard !isEmpty else { return Color.secondary.opacity(0.05) } + switch kind { + case .unchanged: return .clear + case .changed: return Color.orange.opacity(0.12) + case .added: return isBefore ? .clear : Color.green.opacity(0.12) + case .removed: return isBefore ? Color.red.opacity(0.12) : .clear + } + } + + private func background(for kind: DiffUnifiedLine.Kind) -> Color { + guard !differentiateWithoutColor else { return .clear } + switch kind { + case .context: return .clear + case .added: return Color.green.opacity(0.12) + case .removed: return Color.red.opacity(0.12) + } + } +} diff --git a/TableProTests/Core/Compare/TableDefinitionRendererTests.swift b/TableProTests/Core/Compare/TableDefinitionRendererTests.swift new file mode 100644 index 000000000..04cc2e2bb --- /dev/null +++ b/TableProTests/Core/Compare/TableDefinitionRendererTests.swift @@ -0,0 +1,181 @@ +// +// TableDefinitionRendererTests.swift +// TableProTests +// + +import Foundation +import XCTest + +@testable import TablePro + +final class TableDefinitionRendererTests: XCTestCase { + private func column( + _ name: String, + _ dataType: String = "int", + nullable: Bool = true, + primaryKey: Bool = false, + comment: String? = nil + ) -> EditableColumnDefinition { + EditableColumnDefinition( + id: UUID(), name: name, dataType: dataType, isNullable: nullable, defaultValue: nil, + autoIncrement: false, unsigned: false, comment: comment, collation: nil, + onUpdate: nil, charset: nil, extra: nil, isPrimaryKey: primaryKey + ) + } + + private func index(_ name: String, columns: [String], unique: Bool = false) -> EditableIndexDefinition { + EditableIndexDefinition( + id: UUID(), name: name, columns: columns, type: .btree, isUnique: unique, + isPrimary: false, comment: nil, columnPrefixes: [:], whereClause: nil + ) + } + + func testRendersColumnsPrimaryKeyAndIndexes() { + let snapshot = TableStructureSnapshot( + name: "users", + columns: [column("id", "int", nullable: false, primaryKey: true), column("email", "varchar(255)")], + indexes: [index("idx_email", columns: ["email"], unique: true)] + ) + + let lines = TableDefinitionRenderer.lines(for: snapshot) + + XCTAssertEqual(lines.first, "TABLE users") + XCTAssertTrue(lines.contains { $0.contains("COLUMN id int NOT NULL") }) + XCTAssertTrue(lines.contains { $0.contains("COLUMN email varchar(255) NULL") }) + XCTAssertTrue(lines.contains(" PRIMARY KEY (id)")) + XCTAssertTrue(lines.contains { $0.contains("UNIQUE INDEX idx_email (email)") }) + } + + func testRenderingIsDeterministicRegardlessOfIndexOrder() { + let first = TableStructureSnapshot( + name: "t", + columns: [column("id")], + indexes: [index("b_idx", columns: ["a"]), index("a_idx", columns: ["b"])] + ) + let second = TableStructureSnapshot( + name: "t", + columns: [column("id")], + indexes: [index("a_idx", columns: ["b"]), index("b_idx", columns: ["a"])] + ) + + XCTAssertEqual( + TableDefinitionRenderer.lines(for: first), + TableDefinitionRenderer.lines(for: second), + "index declaration order must not change the rendered definition" + ) + } + + func testIdenticalSnapshotsRenderIdenticallySoTheDiffIsEmpty() { + let snapshot = TableStructureSnapshot( + name: "users", + columns: [column("id", nullable: false), column("name", "varchar(20)", comment: "hi")], + indexes: [index("i", columns: ["name"])] + ) + + let pairs = DiffComputer.computeSplit( + before: TableDefinitionRenderer.lines(for: snapshot), + after: TableDefinitionRenderer.lines(for: snapshot) + ) + + XCTAssertTrue(pairs.allSatisfy { $0.kind == .unchanged }) + } + + func testChangedColumnTypeProducesAChangedLine() { + let target = TableStructureSnapshot(name: "t", columns: [column("id", "int")]) + let source = TableStructureSnapshot(name: "t", columns: [column("id", "bigint")]) + + let pairs = DiffComputer.computeSplit( + before: TableDefinitionRenderer.lines(for: target), + after: TableDefinitionRenderer.lines(for: source) + ) + + XCTAssertTrue(pairs.contains { $0.kind != .unchanged }) + } +} + +final class CompareSyncProfileStorageTests: XCTestCase { + private var defaults: UserDefaults! + private var storage: CompareSyncProfileStorage! + private let suiteName = "CompareSyncProfileStorageTests" + + override func setUp() { + super.setUp() + UserDefaults().removePersistentDomain(forName: suiteName) + defaults = UserDefaults(suiteName: suiteName) + storage = CompareSyncProfileStorage(defaults: defaults) + } + + override func tearDown() { + UserDefaults().removePersistentDomain(forName: suiteName) + defaults = nil + storage = nil + super.tearDown() + } + + private func profile( + name: String, + source: UUID, + target: UUID, + mode: CompareSyncMode = .structure + ) -> CompareSyncProfile { + CompareSyncProfile( + name: name, + sourceConnectionId: source, + targetConnectionId: target, + mode: mode, + structureOptions: .default, + dataOptions: .default, + selectedTables: ["users"] + ) + } + + func testSavedProfileRoundTrips() { + let source = UUID() + let target = UUID() + storage.save(profile(name: "nightly", source: source, target: target)) + + let loaded = storage.profiles(source: source, target: target, mode: .structure) + + XCTAssertEqual(loaded.count, 1) + XCTAssertEqual(loaded[0].name, "nightly") + XCTAssertEqual(loaded[0].selectedTables, ["users"]) + } + + func testProfilesAreScopedToSourceTargetAndMode() { + let source = UUID() + let target = UUID() + storage.save(profile(name: "structure", source: source, target: target, mode: .structure)) + storage.save(profile(name: "data", source: source, target: target, mode: .data)) + + XCTAssertEqual(storage.profiles(source: source, target: target, mode: .structure).map(\.name), ["structure"]) + XCTAssertEqual(storage.profiles(source: source, target: target, mode: .data).map(\.name), ["data"]) + XCTAssertTrue(storage.profiles(source: target, target: source, mode: .structure).isEmpty) + } + + func testSavingSameProfileIdUpdatesRatherThanDuplicates() { + let source = UUID() + let target = UUID() + var existing = profile(name: "first", source: source, target: target) + storage.save(existing) + existing.name = "renamed" + storage.save(existing) + + let loaded = storage.profiles(source: source, target: target, mode: .structure) + + XCTAssertEqual(loaded.count, 1) + XCTAssertEqual(loaded[0].name, "renamed") + } + + func testDeleteRemovesOnlyThatProfile() { + let source = UUID() + let target = UUID() + let keep = profile(name: "keep", source: source, target: target) + let drop = profile(name: "drop", source: source, target: target) + storage.save(keep) + storage.save(drop) + + storage.delete(drop) + + XCTAssertEqual(storage.profiles(source: source, target: target, mode: .structure).map(\.name), ["keep"]) + } +} diff --git a/TableProUITests/CompareSyncUITests.swift b/TableProUITests/CompareSyncUITests.swift new file mode 100644 index 000000000..bdb7b991b --- /dev/null +++ b/TableProUITests/CompareSyncUITests.swift @@ -0,0 +1,95 @@ +import XCTest + +final class CompareSyncUITests: XCTestCase { + override func setUpWithError() throws { + continueAfterFailure = false + } + + override func tearDownWithError() throws { + XCUIApplication().terminate() + } + + private func launchAndOpenCompareSync() throws -> XCUIApplication { + let app = XCUIApplication() + app.launchEnvironment["TABLEPRO_UI_TESTING"] = "1" + app.launch() + + let menuBar = app.menuBars.firstMatch + XCTAssertTrue(menuBar.waitForExistence(timeout: 10)) + menuBar.menuBarItems["File"].click() + + let item = menuBar.menuItems["Compare & Sync Databases..."] + XCTAssertTrue(item.waitForExistence(timeout: 5), "Compare & Sync must be reachable from the File menu") + guard item.isEnabled else { + throw XCTSkip("Compare & Sync is licence gated and unavailable in this build") + } + item.click() + return app + } + + private func compareWindow(in app: XCUIApplication) -> XCUIElement { + app.windows["Compare & Sync"] + } + + func testCompareSyncOpensFromFileMenu() throws { + let app = try launchAndOpenCompareSync() + + XCTAssertTrue( + compareWindow(in: app).waitForExistence(timeout: 10), + "Choosing the menu item must open the Compare & Sync window" + ) + } + + func testBannerStatesNothingHasBeenWrittenBeforeAnyRun() throws { + let app = try launchAndOpenCompareSync() + let window = compareWindow(in: app) + XCTAssertTrue(window.waitForExistence(timeout: 10)) + + let banner = window.staticTexts["Comparing only. Nothing has been written."] + XCTAssertTrue( + banner.waitForExistence(timeout: 5), + "The window must say nothing has been written until the user applies" + ) + } + + func testCompareIsDisabledUntilBothEndpointsAreChosen() throws { + let app = try launchAndOpenCompareSync() + let window = compareWindow(in: app) + XCTAssertTrue(window.waitForExistence(timeout: 10)) + + let compareButton = window.buttons["Compare"] + XCTAssertTrue(compareButton.waitForExistence(timeout: 5)) + XCTAssertFalse( + compareButton.isEnabled, + "Compare must stay disabled while no target is chosen, so the write side is always deliberate" + ) + } + + func testTargetPickerStartsWithNoConnectionChosen() throws { + let app = try launchAndOpenCompareSync() + let window = compareWindow(in: app) + XCTAssertTrue(window.waitForExistence(timeout: 10)) + + let placeholders = window.popUpButtons.matching( + NSPredicate(format: "value == %@", "Choose a connection") + ) + XCTAssertGreaterThanOrEqual( + placeholders.count, 2, + "Neither source nor target may be preselected" + ) + } + + func testSwapIsDisabledWhenNoEndpointIsChosen() throws { + let app = try launchAndOpenCompareSync() + let window = compareWindow(in: app) + XCTAssertTrue(window.waitForExistence(timeout: 10)) + + let swap = window.buttons.matching( + NSPredicate(format: "label CONTAINS[c] %@", "Swap") + ).firstMatch + guard swap.waitForExistence(timeout: 5) else { + throw XCTSkip("Swap control not exposed to accessibility in this build") + } + XCTAssertFalse(swap.isEnabled, "Swap has nothing to swap before an endpoint is chosen") + } +} diff --git a/docs/features/compare-sync.mdx b/docs/features/compare-sync.mdx index 89beafbb9..aa30a1a8b 100644 --- a/docs/features/compare-sync.mdx +++ b/docs/features/compare-sync.mdx @@ -59,7 +59,9 @@ Two different engines can still be compared. You get the differences as a read-o Data comparison matches rows by a key and walks both sides in key order, so neither table is loaded into memory in full. -Key columns are filled in from the source table's primary key. Composite keys are supported. A table with no primary key, or with no columns in common, is listed as not comparable rather than matched on a guess, because matching on every column cannot tell one row from two identical rows. +Key columns are filled in from the source table's primary key, and you can change them per table from the **Key columns** menu above the row list. Composite keys are supported. A table with no key, or with no columns in common, is listed as not comparable rather than matched on a guess, because matching on every column cannot tell one row from two identical rows. + +Changing keys or compared columns clears that table's result. Press **Compare Again** to refresh it. Tables are matched by name across the two sides, and only the columns present on both are compared. @@ -73,7 +75,9 @@ Delete is off by default so the first run cannot remove a row you did not mean t ### Which columns are compared -Columns used to compare are separate from columns that get written. Exclude `updated_at` from comparison and rows that differ only in that column stop showing as differences, while the column is still carried into any row that is inserted or updated. +Columns used to compare are separate from columns that get written. Use the **Compared columns** menu to exclude one. Exclude `updated_at` and rows that differ only in that column stop showing as differences, while the column is still carried into any row that is inserted or updated. + +Exclusions apply by column name across every table in the comparison, which is what you want for audit columns that repeat. ### How values are judged equal @@ -113,9 +117,11 @@ If you choose to continue past errors, the transaction option is disabled, becau Progress is reported per statement and the run can be cancelled. Cancelling stops the run between statements; a statement already in flight finishes. +Closing the window or quitting TablePro while a run is in progress asks first, and says that statements which already ran stay applied. + ## Saving a setup -Save the source, target, mode, scope, ignore options, and key choices as a named comparison you can run again. +Give a comparison a name and **Save** it, and it is stored against that source, target, and mode. Load it later from the same screen to restore the mode, ignore options, value rules, and which tables were selected. Delete one from the same menu. ## Limits From 856a9f6adf1e88469ddcc19661aedbc4b95b673f Mon Sep 17 00:00:00 2001 From: Ngo Quoc Dat Date: Mon, 27 Jul 2026 17:05:08 +0700 Subject: [PATCH 3/9] fix(compare): make the merge join's key order contract explicit and verified (#721) --- .../Core/Compare/CompareSyncExecutor.swift | 6 +- .../Compare/CompareSyncSession+Data.swift | 35 ++- .../Compare/CompareSyncSession+Editing.swift | 4 +- .../Core/Compare/CompareSyncSession+Run.swift | 9 +- TablePro/Core/Compare/DataDiffEngine.swift | 167 +++++++----- TablePro/Core/Compare/KeyOrdering.swift | 125 +++++++++ .../Core/Compare/SchemaSyncOperation.swift | 6 +- .../Compare/SchemaSyncScriptBuilder.swift | 19 +- .../Views/Compare/DataCompareReviewView.swift | 7 + .../Core/Compare/DataDiffEngineTests.swift | 31 --- .../Compare/DataSyncScriptBuilderTests.swift | 247 ++++++++++++++++++ .../Core/Compare/KeyOrderingTests.swift | 189 ++++++++++++++ .../SchemaSyncScriptBuilderTests.swift | 28 ++ .../Compare/StreamingRowProviderTests.swift | 160 ++++++++++++ docs/features/compare-sync.mdx | 3 +- 15 files changed, 920 insertions(+), 116 deletions(-) create mode 100644 TablePro/Core/Compare/KeyOrdering.swift create mode 100644 TableProTests/Core/Compare/DataSyncScriptBuilderTests.swift create mode 100644 TableProTests/Core/Compare/KeyOrderingTests.swift create mode 100644 TableProTests/Core/Compare/StreamingRowProviderTests.swift diff --git a/TablePro/Core/Compare/CompareSyncExecutor.swift b/TablePro/Core/Compare/CompareSyncExecutor.swift index 431df3a9c..e6a91daf7 100644 --- a/TablePro/Core/Compare/CompareSyncExecutor.swift +++ b/TablePro/Core/Compare/CompareSyncExecutor.swift @@ -204,10 +204,14 @@ internal actor CompareSyncExecutor { private static func digest(of statements: [SyncStatement]) -> String { var digest = "" + var length = 0 for statement in statements { - guard digest.count < 10_000 else { break } + guard length < Self.digestCharacterLimit else { break } digest += statement.sql + "\n" + length += (statement.sql as NSString).length + 1 } return digest } + + private static let digestCharacterLimit = 10_000 } diff --git a/TablePro/Core/Compare/CompareSyncSession+Data.swift b/TablePro/Core/Compare/CompareSyncSession+Data.swift index d3342397e..ba26c7b8d 100644 --- a/TablePro/Core/Compare/CompareSyncSession+Data.swift +++ b/TablePro/Core/Compare/CompareSyncSession+Data.swift @@ -14,6 +14,7 @@ internal struct DataComparePlan: Identifiable, Hashable { internal let table: String internal let schema: String? internal var columns: [String] + internal var columnTypes: [String: String] = [:] internal var keyColumns: [String] internal var isEnabled: Bool internal var unavailableReason: String? @@ -166,7 +167,7 @@ internal extension CompareSyncSession { keyColumns: plan.keyColumns, driver: targetDriver ) - let engine = DataDiffEngine(options: options, columns: plan.columns) + let engine = DataDiffEngine(options: options, columns: plan.columns, columnTypes: plan.columnTypes) return try await engine.compare( source: StreamingRowProvider(stream: sourceDriver.streamRows(query: sourceQuery), columns: plan.columns), target: StreamingRowProvider(stream: targetDriver.streamRows(query: targetQuery), columns: plan.columns) @@ -205,24 +206,42 @@ internal extension CompareSyncSession { let primaryKey = sourceColumns.filter { $0.isPrimaryKey }.map { $0.name } let identifier = table.schema.map { "\($0).\(table.name)" } ?? table.name let carried = previous[identifier] + let columnTypes = Dictionary( + sourceColumns.map { ($0.name, $0.dataType) }, + uniquingKeysWith: { first, _ in first } + ) var plan = DataComparePlan( table: table.name, schema: table.schema ?? sourceSchema, columns: shared, - keyColumns: carried?.keyColumns.isEmpty == false ? carried?.keyColumns ?? primaryKey : primaryKey, + columnTypes: columnTypes, + keyColumns: carried.map { $0.keyColumns } ?? primaryKey, isEnabled: carried?.isEnabled ?? true, unavailableReason: nil, summary: nil ) - - if shared.isEmpty { - plan.unavailableReason = String(localized: "No columns in common.") - } else if plan.keyColumns.isEmpty { - plan.unavailableReason = String(localized: "No primary key. Choose key columns to compare this table.") - } + plan.unavailableReason = Self.unavailableReason(for: plan) plans.append(plan) } return plans.sorted { $0.id.localizedStandardCompare($1.id) == .orderedAscending } } + + static func unavailableReason(for plan: DataComparePlan) -> String? { + if plan.columns.isEmpty { + return String(localized: "No columns in common.") + } + if plan.keyColumns.isEmpty { + return String(localized: "No primary key. Choose key columns to compare this table.") + } + let available = Set(plan.columns.map { $0.lowercased() }) + let missing = plan.keyColumns.filter { !available.contains($0.lowercased()) } + guard missing.isEmpty else { + return String( + format: String(localized: "Key column %@ is not present on both sides. Choose a different key."), + missing.joined(separator: ", ") + ) + } + return nil + } } diff --git a/TablePro/Core/Compare/CompareSyncSession+Editing.swift b/TablePro/Core/Compare/CompareSyncSession+Editing.swift index c3780ea76..1b8ae8e62 100644 --- a/TablePro/Core/Compare/CompareSyncSession+Editing.swift +++ b/TablePro/Core/Compare/CompareSyncSession+Editing.swift @@ -15,9 +15,7 @@ internal extension CompareSyncSession { guard let index = dataPlans.firstIndex(where: { $0.id == planId }) else { return } dataPlans[index].keyColumns = columns dataPlans[index].summary = nil - dataPlans[index].unavailableReason = columns.isEmpty - ? String(localized: "No primary key. Choose key columns to compare this table.") - : nil + dataPlans[index].unavailableReason = CompareSyncSession.unavailableReason(for: dataPlans[index]) invalidateGeneratedScript() } diff --git a/TablePro/Core/Compare/CompareSyncSession+Run.swift b/TablePro/Core/Compare/CompareSyncSession+Run.swift index a75245f41..9c0cb4bfa 100644 --- a/TablePro/Core/Compare/CompareSyncSession+Run.swift +++ b/TablePro/Core/Compare/CompareSyncSession+Run.swift @@ -107,7 +107,6 @@ internal extension CompareSyncSession { runTask = Task { [weak self] in guard let self else { return } self.activity = .applying - self.hasWrittenToTarget = true CompareSyncRunRegistry.shared.markApplying(self, target: target.qualifiedDescription) defer { self.activity = .idle @@ -117,6 +116,7 @@ internal extension CompareSyncSession { do { let targetDriver = try Self.driver(for: target) + self.hasWrittenToTarget = true let result = try await self.executorRun( statements: self.statements, target: target, @@ -208,16 +208,17 @@ internal extension CompareSyncSession { let dependencies = snapshot.foreignKeys.compactMap { foreignKey -> PluginForeignKeyInfo? in guard let column = foreignKey.columns.first, let referencedColumn = foreignKey.referencedColumns.first else { return nil } + let referencedSchema = foreignKey.referencedSchema ?? snapshot.schema return PluginForeignKeyInfo( name: foreignKey.name, column: column, - referencedTable: foreignKey.referencedTable, + referencedTable: SchemaSyncOperation.qualify(foreignKey.referencedTable, referencedSchema), referencedColumn: referencedColumn, - referencedSchema: foreignKey.referencedSchema + referencedSchema: referencedSchema ) } guard !dependencies.isEmpty else { continue } - map[snapshot.name] = dependencies + map[snapshot.qualifiedName] = dependencies } return map } diff --git a/TablePro/Core/Compare/DataDiffEngine.swift b/TablePro/Core/Compare/DataDiffEngine.swift index b0db8c818..18a83dc92 100644 --- a/TablePro/Core/Compare/DataDiffEngine.swift +++ b/TablePro/Core/Compare/DataDiffEngine.swift @@ -6,6 +6,12 @@ // order and walked in lockstep, so neither side is ever materialized and no // server-side hash function has to agree between two engines. // +// The walk depends on the client comparator agreeing with the order the server +// sent rows in. See KeyOrdering: numeric keys agree by construction, and any +// other key is verified as the stream is read, so a disagreeing collation is +// reported instead of silently producing a delete for a row that exists on both +// sides. +// import Foundation import TableProPluginKit @@ -69,6 +75,7 @@ internal struct DataDiffSummary { internal let updateCount: Int internal let deleteCount: Int internal let identicalCount: Int + internal let skippedNullKeyCount: Int internal let entries: [RowDiffEntry] internal let truncatedEntries: Bool @@ -81,15 +88,36 @@ internal struct DataDiffSummary { } } +internal struct KeyedRow { + internal let row: DataRow + internal let key: [PluginCellValue] +} + +internal enum ComparisonSide: String { + case source + case target + + internal var displayName: String { + switch self { + case .source: return String(localized: "source") + case .target: return String(localized: "target") + } + } +} + internal struct DataDiffEngine { private let options: DataCompareOptions private let comparator: CellValueComparator private let comparisonColumns: [String] + private let ordering: KeyOrdering - internal init(options: DataCompareOptions, columns: [String]) { + internal init(options: DataCompareOptions, columns: [String], columnTypes: [String: String] = [:]) { self.options = options self.comparator = CellValueComparator(options: options) self.comparisonColumns = options.comparisonColumns(from: columns) + self.ordering = KeyOrdering( + orders: KeyOrdering.orders(for: options.keyColumns, columnTypes: columnTypes) + ) } internal func compare( @@ -101,65 +129,70 @@ internal struct DataDiffEngine { } var accumulator = Accumulator(limit: options.maxRetainedEntries) - var sourceRow = try await source.nextRow() - var targetRow = try await target.nextRow() + let sourceReader = KeyedRowReader( + provider: source, keyColumns: options.keyColumns, ordering: ordering, side: .source + ) + let targetReader = KeyedRowReader( + provider: target, keyColumns: options.keyColumns, ordering: ordering, side: .target + ) + + var left = try await sourceReader.next(&accumulator) + var right = try await targetReader.next(&accumulator) - while sourceRow != nil || targetRow != nil { + while left != nil || right != nil { try Task.checkCancellation() - guard let left = sourceRow else { - accumulator.add(deleteEntry(for: targetRow)) - targetRow = try await target.nextRow() + guard let sourceEntry = left else { + accumulator.add(deleteEntry(for: right)) + right = try await targetReader.next(&accumulator) continue } - guard let right = targetRow else { - accumulator.add(insertEntry(for: left)) - sourceRow = try await source.nextRow() + guard let targetEntry = right else { + accumulator.add(insertEntry(for: sourceEntry)) + left = try await sourceReader.next(&accumulator) continue } - let leftKey = keyComponents(of: left) - let rightKey = keyComponents(of: right) - switch KeyOrdering.compare(leftKey, rightKey) { + switch ordering.compare(sourceEntry.key, targetEntry.key) { case .orderedSame: - accumulator.add(matchedEntry(source: left, target: right)) - sourceRow = try await source.nextRow() - targetRow = try await target.nextRow() + accumulator.add(matchedEntry(source: sourceEntry, target: targetEntry)) + left = try await sourceReader.next(&accumulator) + right = try await targetReader.next(&accumulator) case .orderedAscending: - accumulator.add(insertEntry(for: left)) - sourceRow = try await source.nextRow() + accumulator.add(insertEntry(for: sourceEntry)) + left = try await sourceReader.next(&accumulator) case .orderedDescending: - accumulator.add(deleteEntry(for: right)) - targetRow = try await target.nextRow() + accumulator.add(deleteEntry(for: targetEntry)) + right = try await targetReader.next(&accumulator) } } return accumulator.summary() } - private func insertEntry(for row: DataRow) -> RowDiffEntry { + private func insertEntry(for entry: KeyedRow) -> RowDiffEntry { RowDiffEntry( kind: .insert, - keyDescription: keyDescription(of: row), - sourceRow: row, + keyDescription: KeyOrdering.description(of: entry.key), + sourceRow: entry.row, targetRow: nil ) } - private func deleteEntry(for row: DataRow?) -> RowDiffEntry { + private func deleteEntry(for entry: KeyedRow?) -> RowDiffEntry { RowDiffEntry( kind: .delete, - keyDescription: row.map { keyDescription(of: $0) } ?? "", + keyDescription: entry.map { KeyOrdering.description(of: $0.key) } ?? "", sourceRow: nil, - targetRow: row + targetRow: entry?.row ) } - private func matchedEntry(source: DataRow, target: DataRow) -> RowDiffEntry { + private func matchedEntry(source: KeyedRow, target: KeyedRow) -> RowDiffEntry { var differences: [CellDifference] = [] for column in comparisonColumns { - let sourceValue = source.value(for: column) - let targetValue = target.value(for: column) + let sourceValue = source.row.value(for: column) + let targetValue = target.row.value(for: column) let outcome = comparator.compare(sourceValue, targetValue) guard !outcome.isEqual else { continue } differences.append(CellDifference( @@ -171,31 +204,22 @@ internal struct DataDiffEngine { } return RowDiffEntry( kind: differences.isEmpty ? .identical : .update, - keyDescription: keyDescription(of: source), - sourceRow: source, - targetRow: target, + keyDescription: KeyOrdering.description(of: source.key), + sourceRow: source.row, + targetRow: target.row, cellDifferences: differences ) } - - private func keyComponents(of row: DataRow) -> [PluginCellValue] { - options.keyColumns.map { row.value(for: $0) } - } - - private func keyDescription(of row: DataRow) -> String { - options.keyColumns - .map { column in KeyOrdering.sortKey(row.value(for: column)) } - .joined(separator: ", ") - } } -private extension DataDiffEngine { +internal extension DataDiffEngine { struct Accumulator { private let limit: Int private var insertCount = 0 private var updateCount = 0 private var deleteCount = 0 private var identicalCount = 0 + private var skippedNullKeyCount = 0 private var entries: [RowDiffEntry] = [] private var truncated = false @@ -203,6 +227,10 @@ private extension DataDiffEngine { self.limit = limit } + mutating func addSkippedNullKey() { + skippedNullKeyCount += 1 + } + mutating func add(_ entry: RowDiffEntry) { switch entry.kind { case .insert: insertCount += 1 @@ -223,6 +251,7 @@ private extension DataDiffEngine { updateCount: updateCount, deleteCount: deleteCount, identicalCount: identicalCount, + skippedNullKeyCount: skippedNullKeyCount, entries: entries, truncatedEntries: truncated ) @@ -230,32 +259,48 @@ private extension DataDiffEngine { } } -internal enum KeyOrdering { - internal static func compare(_ lhs: [PluginCellValue], _ rhs: [PluginCellValue]) -> ComparisonResult { - for (left, right) in zip(lhs, rhs) { - let leftKey = sortKey(left) - let rightKey = sortKey(right) - if leftKey == rightKey { continue } - if let leftNumber = Double(leftKey), let rightNumber = Double(rightKey) { - return leftNumber < rightNumber ? .orderedAscending : .orderedDescending +private final class KeyedRowReader { + private let provider: DataRowProviding + private let keyColumns: [String] + private let ordering: KeyOrdering + private let side: ComparisonSide + private var previousKey: [PluginCellValue]? + + init(provider: DataRowProviding, keyColumns: [String], ordering: KeyOrdering, side: ComparisonSide) { + self.provider = provider + self.keyColumns = keyColumns + self.ordering = ordering + self.side = side + } + + func next(_ accumulator: inout DataDiffEngine.Accumulator) async throws -> KeyedRow? { + while let row = try await provider.nextRow() { + let key = keyColumns.map { row.value(for: $0) } + if KeyOrdering.hasNullComponent(key) { + accumulator.addSkippedNullKey() + continue } - return leftKey < rightKey ? .orderedAscending : .orderedDescending + try checkOrder(of: key) + previousKey = key + return KeyedRow(row: row, key: key) } - if lhs.count == rhs.count { return .orderedSame } - return lhs.count < rhs.count ? .orderedAscending : .orderedDescending + return nil } - internal static func sortKey(_ value: PluginCellValue) -> String { - switch value { - case .null: return "" - case .text(let text): return text - case .bytes(let data): return data.base64EncodedString() - } + private func checkOrder(of key: [PluginCellValue]) throws { + guard ordering.requiresStreamOrderCheck, let previousKey else { return } + guard ordering.compare(previousKey, key) == .orderedDescending else { return } + let explanation = String( + localized: "The %1$@ sorted rows differently than the comparison expects, near key %2$@. Pick a numeric key, or one that sorts by byte value." + ) + throw CompareSyncError.streamOutOfOrder( + String(format: explanation, side.displayName, KeyOrdering.description(of: key)) + ) } } internal final class ArrayRowProvider: DataRowProviding { - private var rows: [DataRow] + private let rows: [DataRow] private var index = 0 internal init(rows: [DataRow]) { diff --git a/TablePro/Core/Compare/KeyOrdering.swift b/TablePro/Core/Compare/KeyOrdering.swift new file mode 100644 index 000000000..75a6ad2ca --- /dev/null +++ b/TablePro/Core/Compare/KeyOrdering.swift @@ -0,0 +1,125 @@ +// +// KeyOrdering.swift +// TablePro +// +// The order the merge join walks both streams in. +// +// Rows arrive ordered by the server's own collation, so the client comparator +// has to agree with it or the join desynchronises and reports rows that exist +// on both sides as a delete plus an insert. Two rules keep that from happening +// silently: +// +// 1. A numeric key column is compared numerically, which matches every engine's +// numeric ordering exactly. This covers the ordinary integer primary key. +// 2. Anything else is compared by UTF-8 bytes, and the stream is checked as it +// is read. A server whose collation disagrees is reported, not guessed at. +// +// A NULL is never a usable row identity, so a row carrying one in a key column +// is excluded from the comparison rather than given an arbitrary sort position. +// + +import Foundation +import TableProPluginKit + +internal struct KeyOrdering { + internal enum ColumnOrder: Equatable { + case numeric + case binaryText + } + + private let orders: [ColumnOrder] + + internal init(orders: [ColumnOrder]) { + self.orders = orders + } + + internal var requiresStreamOrderCheck: Bool { + orders.contains(.binaryText) + } + + internal func compare(_ lhs: [PluginCellValue], _ rhs: [PluginCellValue]) -> ComparisonResult { + for (index, pair) in zip(lhs, rhs).enumerated() { + let order = index < orders.count ? orders[index] : .binaryText + let result = Self.compare(pair.0, pair.1, using: order) + guard result == .orderedSame else { return result } + } + if lhs.count == rhs.count { return .orderedSame } + return lhs.count < rhs.count ? .orderedAscending : .orderedDescending + } + + internal static func hasNullComponent(_ key: [PluginCellValue]) -> Bool { + key.contains { if case .null = $0 { return true } else { return false } } + } + + internal static func description(of key: [PluginCellValue]) -> String { + key.map { value in + switch value { + case .null: return "NULL" + case .text(let text): return text + case .bytes(let data): return data.base64EncodedString() + } + } + .joined(separator: ", ") + } + + internal static func orders( + for keyColumns: [String], + columnTypes: [String: String] + ) -> [ColumnOrder] { + keyColumns.map { column in + let lowered = column.lowercased() + let declared = columnTypes.first { $0.key.lowercased() == lowered }?.value + return isNumeric(declared) ? .numeric : .binaryText + } + } + + internal static func isNumeric(_ dataType: String?) -> Bool { + guard let dataType else { return false } + let base = dataType.lowercased().prefix { $0.isLetter || $0 == " " }.trimmingCharacters(in: .whitespaces) + if numericTypeNames.contains(base) { return true } + guard let leading = base.split(separator: " ").first else { return false } + return numericTypeNames.contains(String(leading)) + } + + private static let numericTypeNames: Set = [ + "int", "integer", "tinyint", "smallint", "mediumint", "bigint", + "serial", "bigserial", "smallserial", "int2", "int4", "int8", + "decimal", "numeric", "number", "float", "double", "double precision", + "real", "money", "float4", "float8" + ] + + private static func compare( + _ lhs: PluginCellValue, + _ rhs: PluginCellValue, + using order: ColumnOrder + ) -> ComparisonResult { + switch order { + case .numeric: + let left = numericValue(lhs) + let right = numericValue(rhs) + if left == right { return .orderedSame } + return left < right ? .orderedAscending : .orderedDescending + case .binaryText: + let left = byteValue(lhs) + let right = byteValue(rhs) + if left == right { return .orderedSame } + return left.lexicographicallyPrecedes(right) ? .orderedAscending : .orderedDescending + } + } + + private static func numericValue(_ value: PluginCellValue) -> Double { + switch value { + case .null: return -.infinity + case .text(let text): return Double(text.trimmingCharacters(in: .whitespaces)) ?? 0 + case .bytes: return 0 + } + } + + private static func byteValue(_ value: PluginCellValue) -> [UInt8] { + switch value { + case .null: return [] + case .text(let text): return Array(text.utf8) + case .bytes(let data): return Array(data) + } + } +} diff --git a/TablePro/Core/Compare/SchemaSyncOperation.swift b/TablePro/Core/Compare/SchemaSyncOperation.swift index f67d6f812..b5ba8c8e8 100644 --- a/TablePro/Core/Compare/SchemaSyncOperation.swift +++ b/TablePro/Core/Compare/SchemaSyncOperation.swift @@ -39,7 +39,11 @@ internal enum SchemaSyncOperation: Identifiable { } } - private static func qualify(_ name: String, _ schema: String?) -> String { + internal var tableIdentifier: String { + Self.qualify(tableName, schema) + } + + internal static func qualify(_ name: String, _ schema: String?) -> String { guard let schema, !schema.isEmpty else { return name } return "\(schema).\(name)" } diff --git a/TablePro/Core/Compare/SchemaSyncScriptBuilder.swift b/TablePro/Core/Compare/SchemaSyncScriptBuilder.swift index 647ca7c5d..908efd408 100644 --- a/TablePro/Core/Compare/SchemaSyncScriptBuilder.swift +++ b/TablePro/Core/Compare/SchemaSyncScriptBuilder.swift @@ -56,15 +56,20 @@ internal struct SchemaSyncScriptBuilder { childrenFirst: Bool ) -> [SchemaSyncOperation] { guard operations.count > 1 else { return operations } - let byName = Dictionary( - operations.map { ($0.tableName, $0) }, - uniquingKeysWith: { first, _ in first } - ) + var byIdentifier: [String: [SchemaSyncOperation]] = [:] + for operation in operations { + byIdentifier[operation.tableIdentifier, default: []].append(operation) + } let ordered = ForeignKeyTopologicalSort.orderedNames( - operations.map { $0.tableName }, + operations.map { $0.tableIdentifier }, foreignKeysByTable: foreignKeysByTable ) - let resolved = ordered.compactMap { byName[$0] } + var emitted: Set = [] + var resolved: [SchemaSyncOperation] = [] + for identifier in ordered where !emitted.contains(identifier) { + emitted.insert(identifier) + resolved.append(contentsOf: byIdentifier[identifier] ?? []) + } return childrenFirst ? resolved.reversed() : resolved } @@ -170,12 +175,14 @@ internal enum CompareSyncError: LocalizedError { case unsupportedOperation(String) case incompatibleEngines(String) case noComparisonKey(String) + case streamOutOfOrder(String) internal var errorDescription: String? { switch self { case .unsupportedOperation(let message): return message case .incompatibleEngines(let message): return message case .noComparisonKey(let message): return message + case .streamOutOfOrder(let message): return message } } } diff --git a/TablePro/Views/Compare/DataCompareReviewView.swift b/TablePro/Views/Compare/DataCompareReviewView.swift index c569f059c..246a824cc 100644 --- a/TablePro/Views/Compare/DataCompareReviewView.swift +++ b/TablePro/Views/Compare/DataCompareReviewView.swift @@ -254,6 +254,13 @@ internal struct DataComparePlanRow: View { countLabel(String(localized: "Update"), summary.updateCount, "pencil.circle") countLabel(String(localized: "Delete"), summary.deleteCount, "minus.circle") countLabel(String(localized: "Same"), summary.identicalCount, "equal.circle") + if summary.skippedNullKeyCount > 0 { + countLabel( + String(localized: "Skipped, NULL key"), + summary.skippedNullKeyCount, + "exclamationmark.circle" + ) + } } .font(.caption2) .foregroundStyle(.secondary) diff --git a/TableProTests/Core/Compare/DataDiffEngineTests.swift b/TableProTests/Core/Compare/DataDiffEngineTests.swift index 3e9a1024e..92264f7bb 100644 --- a/TableProTests/Core/Compare/DataDiffEngineTests.swift +++ b/TableProTests/Core/Compare/DataDiffEngineTests.swift @@ -327,34 +327,3 @@ final class CellValueComparatorTests: XCTestCase { XCTAssertFalse(subject.compare(.bytes(Data([1, 2, 3])), .bytes(Data([1, 2, 4]))).isEqual) } } - -final class KeyOrderingTests: XCTestCase { - func testNumericKeysOrderNumericallyNotLexically() { - let result = KeyOrdering.compare([.text("9")], [.text("10")]) - - XCTAssertEqual(result, .orderedAscending, "9 must sort before 10") - } - - func testTextKeysOrderLexically() { - XCTAssertEqual(KeyOrdering.compare([.text("a")], [.text("b")]), .orderedAscending) - } - - func testEqualKeysReportSame() { - XCTAssertEqual(KeyOrdering.compare([.text("a"), .text("1")], [.text("a"), .text("1")]), .orderedSame) - } - - func testOrderingIsAntisymmetric() { - let pairs: [([PluginCellValue], [PluginCellValue])] = [ - ([.text("1")], [.text("2")]), - ([.text("b")], [.text("a")]), - ([.null], [.text("x")]) - ] - - for (left, right) in pairs { - let forward = KeyOrdering.compare(left, right) - let backward = KeyOrdering.compare(right, left) - XCTAssertNotEqual(forward, backward) - XCTAssertNotEqual(forward, .orderedSame) - } - } -} diff --git a/TableProTests/Core/Compare/DataSyncScriptBuilderTests.swift b/TableProTests/Core/Compare/DataSyncScriptBuilderTests.swift new file mode 100644 index 000000000..996b3991f --- /dev/null +++ b/TableProTests/Core/Compare/DataSyncScriptBuilderTests.swift @@ -0,0 +1,247 @@ +// +// DataSyncScriptBuilderTests.swift +// TableProTests +// + +import Foundation +import TableProPluginKit +import XCTest + +@testable import TablePro + +/// `sqlLiteral(for:)` lives only in a protocol extension, so it is statically +/// dispatched and cannot be overridden here. These tests assert against the +/// shared default, which emits numeric-looking text as a bare numeric literal. +private final class QuotingDriver: PluginDatabaseDriver, @unchecked Sendable { + func quoteIdentifier(_ name: String) -> String { "`\(name)`" } + + func connect() async throws {} + func disconnect() {} + func execute(query: String) async throws -> PluginQueryResult { + PluginQueryResult(columns: [], columnTypeNames: [], rows: [], rowsAffected: 0, executionTime: 0) + } + func fetchTables(schema: String?) async throws -> [PluginTableInfo] { [] } + func fetchColumns(table: String, schema: String?) async throws -> [PluginColumnInfo] { [] } + func fetchIndexes(table: String, schema: String?) async throws -> [PluginIndexInfo] { [] } + func fetchForeignKeys(table: String, schema: String?) async throws -> [PluginForeignKeyInfo] { [] } + func fetchTableDDL(table: String, schema: String?) async throws -> String { "" } + func fetchViewDefinition(view: String, schema: String?) async throws -> String { "" } + func fetchTableMetadata(table: String, schema: String?) async throws -> PluginTableMetadata { + PluginTableMetadata(tableName: table) + } + func fetchDatabases() async throws -> [String] { [] } + func fetchDatabaseMetadata(_ database: String) async throws -> PluginDatabaseMetadata { + PluginDatabaseMetadata(name: database) + } +} + +final class DataSyncScriptBuilderTests: XCTestCase { + private let driver = QuotingDriver() + + private func options( + insert: Bool = true, + update: Bool = true, + delete: Bool = true, + keys: [String] = ["id"] + ) -> DataCompareOptions { + var result = DataCompareOptions() + result.keyColumns = keys + result.insertMissingRows = insert + result.updateDifferingRows = update + result.deleteExtraRows = delete + return result + } + + private func row(_ pairs: [String: PluginCellValue]) -> DataRow { + DataRow(values: pairs) + } + + private func build( + entries: [RowDiffEntry], + options overrides: DataCompareOptions? = nil, + columns: [String] = ["id", "name"], + schema: String? = nil + ) -> [SyncStatement] { + DataSyncScriptBuilder(targetDriver: driver, options: overrides ?? options()) + .build(table: "users", schema: schema, writeColumns: columns, entries: entries) + } + + // MARK: - Insert + + func testInsertQuotesIdentifiersAndEscapesValues() { + let entry = RowDiffEntry( + kind: .insert, + keyDescription: "1", + sourceRow: row(["id": .text("1"), "name": .text("O'Hara")]), + targetRow: nil + ) + + let statements = build(entries: [entry]) + + XCTAssertEqual(statements.count, 1) + XCTAssertEqual( + statements[0].sql, + "INSERT INTO `users` (`id`, `name`) VALUES (1, 'O''Hara');" + ) + } + + func testInsertQualifiesWithSchemaWhenPresent() { + let entry = RowDiffEntry( + kind: .insert, keyDescription: "1", + sourceRow: row(["id": .text("1"), "name": .text("a")]), targetRow: nil + ) + + let statements = build(entries: [entry], schema: "app") + + XCTAssertTrue(statements[0].sql.hasPrefix("INSERT INTO `app`.`users`"), statements[0].sql) + } + + // MARK: - Update + + func testUpdateSetsNonKeyColumnsAndKeysTheWhereClause() { + let entry = RowDiffEntry( + kind: .update, keyDescription: "1", + sourceRow: row(["id": .text("1"), "name": .text("new")]), + targetRow: row(["id": .text("1"), "name": .text("old")]) + ) + + let statements = build(entries: [entry]) + + XCTAssertEqual(statements.count, 1) + XCTAssertEqual(statements[0].sql, "UPDATE `users` SET `name` = 'new' WHERE `id` = 1;") + XCTAssertFalse(statements[0].sql.contains("SET `id`"), "the key must never be assigned in SET") + } + + func testUpdateIsSkippedWhenEveryColumnIsAKey() { + let entry = RowDiffEntry( + kind: .update, keyDescription: "1", + sourceRow: row(["id": .text("1")]), targetRow: row(["id": .text("1")]) + ) + + let statements = build(entries: [entry], options: options(keys: ["id"]), columns: ["id"]) + + XCTAssertTrue(statements.isEmpty, "there is nothing to assign, so no statement should be produced") + } + + func testCompositeKeyProducesConjunctionInWhereClause() { + let entry = RowDiffEntry( + kind: .update, keyDescription: "a, 1", + sourceRow: row(["tenant": .text("a"), "id": .text("1"), "name": .text("new")]), + targetRow: row(["tenant": .text("a"), "id": .text("1"), "name": .text("old")]) + ) + + let statements = build( + entries: [entry], + options: options(keys: ["tenant", "id"]), + columns: ["tenant", "id", "name"] + ) + + XCTAssertTrue(statements[0].sql.contains("WHERE `tenant` = 'a' AND `id` = 1;"), statements[0].sql) + } + + // MARK: - Delete + + func testDeleteIsKeyedAndCarriesARefusedHazard() { + let entry = RowDiffEntry( + kind: .delete, keyDescription: "7", + sourceRow: nil, targetRow: row(["id": .text("7"), "name": .text("x")]) + ) + + let statements = build(entries: [entry]) + + XCTAssertEqual(statements.count, 1) + XCTAssertEqual(statements[0].sql, "DELETE FROM `users` WHERE `id` = 7;") + XCTAssertTrue(statements[0].isRefusedByDefault, "a delete must be held back until allowed") + } + + // MARK: - NULL handling + + func testNullKeyUsesIsNullRatherThanEquality() { + let entry = RowDiffEntry( + kind: .delete, keyDescription: "NULL", + sourceRow: nil, targetRow: row(["id": .null, "name": .text("x")]) + ) + + let statements = build(entries: [entry]) + + XCTAssertEqual(statements[0].sql, "DELETE FROM `users` WHERE `id` IS NULL;") + } + + func testNullValueIsWrittenAsNullLiteralOnInsert() { + let entry = RowDiffEntry( + kind: .insert, keyDescription: "1", + sourceRow: row(["id": .text("1"), "name": .null]), targetRow: nil + ) + + let statements = build(entries: [entry]) + + XCTAssertTrue(statements[0].sql.hasSuffix("VALUES (1, NULL);"), statements[0].sql) + } + + // MARK: - Action toggles + + func testDisabledActionsProduceNoStatements() { + let entries = [ + RowDiffEntry(kind: .insert, keyDescription: "1", sourceRow: row(["id": .text("1")]), targetRow: nil), + RowDiffEntry( + kind: .update, keyDescription: "2", + sourceRow: row(["id": .text("2"), "name": .text("a")]), + targetRow: row(["id": .text("2"), "name": .text("b")]) + ), + RowDiffEntry(kind: .delete, keyDescription: "3", sourceRow: nil, targetRow: row(["id": .text("3")])) + ] + + let statements = build(entries: entries, options: options(insert: false, update: false, delete: false)) + + XCTAssertTrue(statements.isEmpty) + } + + func testIdenticalRowsNeverProduceStatements() { + let entry = RowDiffEntry( + kind: .identical, keyDescription: "1", + sourceRow: row(["id": .text("1")]), targetRow: row(["id": .text("1")]) + ) + + XCTAssertTrue(build(entries: [entry]).isEmpty) + } + + // MARK: - Ordering + + func testInsertsComeBeforeUpdatesWhichComeBeforeDeletes() { + let entries = [ + RowDiffEntry(kind: .delete, keyDescription: "3", sourceRow: nil, targetRow: row(["id": .text("3")])), + RowDiffEntry( + kind: .update, keyDescription: "2", + sourceRow: row(["id": .text("2"), "name": .text("a")]), + targetRow: row(["id": .text("2"), "name": .text("b")]) + ), + RowDiffEntry( + kind: .insert, keyDescription: "1", + sourceRow: row(["id": .text("1"), "name": .text("c")]), targetRow: nil + ) + ] + + let verbs = build(entries: entries).map { String($0.sql.prefix(6)) } + + XCTAssertEqual(verbs, ["INSERT", "UPDATE", "DELETE"]) + } + + // MARK: - Write set + + func testExcludedFromComparisonColumnIsStillWritten() { + var overrides = options() + overrides.excludedFromComparison = ["updated_at"] + let entry = RowDiffEntry( + kind: .insert, keyDescription: "1", + sourceRow: row(["id": .text("1"), "name": .text("a"), "updated_at": .text("2026-01-01")]), + targetRow: nil + ) + + let statements = build(entries: [entry], options: overrides, columns: ["id", "name", "updated_at"]) + + XCTAssertTrue( + statements[0].sql.contains("`updated_at`") && statements[0].sql.contains("'2026-01-01'"), + "a column excluded from matching must still be written: \(statements[0].sql)" + ) + } +} diff --git a/TableProTests/Core/Compare/KeyOrderingTests.swift b/TableProTests/Core/Compare/KeyOrderingTests.swift new file mode 100644 index 000000000..90f98d971 --- /dev/null +++ b/TableProTests/Core/Compare/KeyOrderingTests.swift @@ -0,0 +1,189 @@ +// +// KeyOrderingTests.swift +// TableProTests +// + +import Foundation +import TableProPluginKit +import XCTest + +@testable import TablePro + +final class KeyOrderingPolicyTests: XCTestCase { + private func numeric() -> KeyOrdering { KeyOrdering(orders: [.numeric]) } + private func text() -> KeyOrdering { KeyOrdering(orders: [.binaryText]) } + + func testNumericKeysOrderNumerically() { + XCTAssertEqual(numeric().compare([.text("9")], [.text("10")]), .orderedAscending) + XCTAssertEqual(numeric().compare([.text("10")], [.text("9")]), .orderedDescending) + } + + func testTextKeysOrderByBytesNotByNumericValue() { + XCTAssertEqual( + text().compare([.text("10")], [.text("9")]), .orderedAscending, + "a text key must sort the way a byte-ordered collation sorts, not numerically" + ) + } + + func testTextOrderingIsCaseSensitiveByBytes() { + XCTAssertEqual(text().compare([.text("Carol")], [.text("bob")]), .orderedAscending) + } + + func testEqualKeysReportSame() { + XCTAssertEqual(text().compare([.text("a"), .text("1")], [.text("a"), .text("1")]), .orderedSame) + } + + func testOrderingIsAntisymmetric() { + let pairs: [([PluginCellValue], [PluginCellValue])] = [ + ([.text("1")], [.text("2")]), + ([.text("b")], [.text("a")]), + ([.bytes(Data([1]))], [.bytes(Data([2]))]) + ] + for (left, right) in pairs { + XCTAssertNotEqual(text().compare(left, right), text().compare(right, left)) + } + } + + func testCompositeKeyFallsThroughToSecondColumn() { + let ordering = KeyOrdering(orders: [.binaryText, .numeric]) + + XCTAssertEqual( + ordering.compare([.text("a"), .text("2")], [.text("a"), .text("10")]), + .orderedAscending + ) + } + + // MARK: - Type classification + + func testNumericTypesAreClassifiedNumeric() { + for type in ["int", "INT(11)", "bigint unsigned", "numeric(10,2)", "double precision", "serial"] { + XCTAssertTrue(KeyOrdering.isNumeric(type), "\(type) should compare numerically") + } + } + + func testTextAndDateTypesAreNotNumeric() { + for type in ["varchar(255)", "text", "uuid", "timestamp", "date", "bytea"] { + XCTAssertFalse(KeyOrdering.isNumeric(type), "\(type) should not compare numerically") + } + } + + func testOrdersDerivedFromDeclaredColumnTypes() { + let orders = KeyOrdering.orders( + for: ["id", "name"], + columnTypes: ["id": "bigint", "name": "varchar(50)"] + ) + + XCTAssertEqual(orders, [.numeric, .binaryText]) + } + + func testUnknownColumnTypeFallsBackToBinaryText() { + XCTAssertEqual(KeyOrdering.orders(for: ["mystery"], columnTypes: [:]), [.binaryText]) + } + + // MARK: - Stream order check + + func testNumericOnlyKeysNeedNoStreamCheck() { + XCTAssertFalse(KeyOrdering(orders: [.numeric]).requiresStreamOrderCheck) + } + + func testTextKeysRequireStreamCheck() { + XCTAssertTrue(KeyOrdering(orders: [.numeric, .binaryText]).requiresStreamOrderCheck) + } + + // MARK: - NULL keys + + func testNullComponentIsDetected() { + XCTAssertTrue(KeyOrdering.hasNullComponent([.text("a"), .null])) + XCTAssertFalse(KeyOrdering.hasNullComponent([.text("a"), .text("b")])) + } +} + +final class DataDiffOrderingSafetyTests: XCTestCase { + private func row(_ id: String) -> DataRow { + DataRow(values: ["id": .text(id), "name": .text("n")]) + } + + private func engine(numericKey: Bool) -> DataDiffEngine { + var options = DataCompareOptions() + options.keyColumns = ["id"] + return DataDiffEngine( + options: options, + columns: ["id", "name"], + columnTypes: ["id": numericKey ? "int" : "varchar(20)"] + ) + } + + /// The case that previously produced a delete for a row present on both sides. + func testDisagreeingCollationIsReportedInsteadOfDeletingAMatchingRow() async { + let source = ArrayRowProvider(rows: [row("Alice"), row("bob"), row("Carol")]) + let target = ArrayRowProvider(rows: [row("Alice"), row("Carol")]) + + do { + let summary = try await engine(numericKey: false).compare(source: source, target: target) + XCTAssertEqual( + summary.deleteCount, 0, + "a row present on both sides must never be reported as a delete" + ) + } catch let error as CompareSyncError { + guard case .streamOutOfOrder = error else { + return XCTFail("Expected an out-of-order report, got \(error)") + } + } catch { + XCTFail("Unexpected error \(error)") + } + } + + func testOutOfOrderTextStreamThrowsRatherThanMismatching() async { + let source = ArrayRowProvider(rows: [row("Alice"), row("bob"), row("Carol")]) + let target = ArrayRowProvider(rows: [row("Alice")]) + + do { + _ = try await engine(numericKey: false).compare(source: source, target: target) + XCTFail("Expected an out-of-order error for a case-insensitively sorted stream") + } catch let error as CompareSyncError { + guard case .streamOutOfOrder(let message) = error else { + return XCTFail("Expected streamOutOfOrder, got \(error)") + } + XCTAssertTrue( + message.contains("Carol"), + "the message must name the key the read stopped at: \(message)" + ) + } catch { + XCTFail("Unexpected error \(error)") + } + } + + func testInOrderTextStreamComparesNormally() async throws { + let source = ArrayRowProvider(rows: [row("Alice"), row("Carol"), row("bob")]) + let target = ArrayRowProvider(rows: [row("Alice"), row("Carol")]) + + let summary = try await engine(numericKey: false).compare(source: source, target: target) + + XCTAssertEqual(summary.identicalCount, 2) + XCTAssertEqual(summary.insertCount, 1) + XCTAssertEqual(summary.deleteCount, 0) + } + + func testNumericKeysNeedNoOrderCheckAndCompareNumerically() async throws { + let source = ArrayRowProvider(rows: [row("2"), row("9"), row("10")]) + let target = ArrayRowProvider(rows: [row("2"), row("10")]) + + let summary = try await engine(numericKey: true).compare(source: source, target: target) + + XCTAssertEqual(summary.identicalCount, 2) + XCTAssertEqual(summary.insertCount, 1, "9 is only on the source") + XCTAssertEqual(summary.deleteCount, 0, "10 exists on both sides and must not be deleted") + } + + func testRowsWithNullKeysAreSkippedNotGivenAnArbitraryOrder() async throws { + let withNullKey = DataRow(values: ["id": .null, "name": .text("n")]) + let source = ArrayRowProvider(rows: [withNullKey, row("1"), row("2")]) + let target = ArrayRowProvider(rows: [row("1")]) + + let summary = try await engine(numericKey: true).compare(source: source, target: target) + + XCTAssertEqual(summary.skippedNullKeyCount, 1) + XCTAssertEqual(summary.identicalCount, 1) + XCTAssertEqual(summary.insertCount, 1, "only the non-null key rows take part") + } +} diff --git a/TableProTests/Core/Compare/SchemaSyncScriptBuilderTests.swift b/TableProTests/Core/Compare/SchemaSyncScriptBuilderTests.swift index 58586d3d6..87939491d 100644 --- a/TableProTests/Core/Compare/SchemaSyncScriptBuilderTests.swift +++ b/TableProTests/Core/Compare/SchemaSyncScriptBuilderTests.swift @@ -173,6 +173,34 @@ final class SchemaSyncScriptBuilderTests: XCTestCase { XCTAssertEqual(ordered.map { $0.tableName }, ["c", "b", "a"]) } + func testSameTableNameInTwoSchemasBothSurviveOrdering() { + let operations: [SchemaSyncOperation] = [ + .alterTable(name: "users", schema: "app", changes: []), + .alterTable(name: "users", schema: "audit", changes: []) + ] + + let ordered = SchemaSyncScriptBuilder.order(operations: operations, foreignKeysByTable: [:]) + + XCTAssertEqual(ordered.count, 2, "a bare-name collision must not drop or duplicate an operation") + XCTAssertEqual(Set(ordered.map { $0.tableIdentifier }), ["app.users", "audit.users"]) + } + + func testOrderingUsesQualifiedNamesForDependencies() { + let operations: [SchemaSyncOperation] = [ + .createTable(snapshot("orders")), + .createTable(snapshot("customers")) + ] + let foreignKeys = [ + "orders": [PluginForeignKeyInfo( + name: "fk", column: "customer_id", referencedTable: "customers", referencedColumn: "id" + )] + ] + + let ordered = SchemaSyncScriptBuilder.order(operations: operations, foreignKeysByTable: foreignKeys) + + XCTAssertEqual(ordered.map { $0.tableIdentifier }, ["customers", "orders"]) + } + func testCircularForeignKeysStillEmitEveryTable() { let operations: [SchemaSyncOperation] = [ .createTable(snapshot("a")), diff --git a/TableProTests/Core/Compare/StreamingRowProviderTests.swift b/TableProTests/Core/Compare/StreamingRowProviderTests.swift new file mode 100644 index 000000000..9aca8f7da --- /dev/null +++ b/TableProTests/Core/Compare/StreamingRowProviderTests.swift @@ -0,0 +1,160 @@ +// +// StreamingRowProviderTests.swift +// TableProTests +// + +import Foundation +import TableProPluginKit +import XCTest + +@testable import TablePro + +final class StreamingRowProviderTests: XCTestCase { + private func stream(_ elements: [PluginStreamElement]) -> AsyncThrowingStream { + AsyncThrowingStream { continuation in + for element in elements { continuation.yield(element) } + continuation.finish() + } + } + + private func header(_ columns: [String]) -> PluginStreamElement { + .header(PluginStreamHeader(columns: columns, columnTypeNames: columns.map { _ in "text" })) + } + + func testHeaderColumnsAreUsedToNameValues() async throws { + let provider = StreamingRowProvider( + stream: stream([header(["id", "name"]), .rows([[.text("1"), .text("a")]])]) + ) + + let row = try await provider.nextRow() + + XCTAssertEqual(row?.value(for: "id"), .text("1")) + XCTAssertEqual(row?.value(for: "name"), .text("a")) + } + + func testExplicitColumnsSurviveAMissingHeader() async throws { + let provider = StreamingRowProvider( + stream: stream([.rows([[.text("1"), .text("a")]])]), + columns: ["id", "name"] + ) + + let row = try await provider.nextRow() + + XCTAssertEqual(row?.value(for: "name"), .text("a")) + } + + func testRowsAcrossMultipleBatchesAreAllReturnedInOrder() async throws { + let provider = StreamingRowProvider(stream: stream([ + header(["id"]), + .rows([[.text("1")], [.text("2")]]), + .rows([[.text("3")]]) + ])) + + var seen: [String] = [] + while let row = try await provider.nextRow() { + if case .text(let value) = row.value(for: "id") { seen.append(value) } + } + + XCTAssertEqual(seen, ["1", "2", "3"]) + } + + func testEmptyBatchesAreSkippedRatherThanEndingTheStream() async throws { + let provider = StreamingRowProvider(stream: stream([ + header(["id"]), + .rows([]), + .rows([]), + .rows([[.text("1")]]) + ])) + + let row = try await provider.nextRow() + + XCTAssertEqual(row?.value(for: "id"), .text("1"), "empty batches must not be mistaken for end of stream") + } + + func testExhaustedStreamReturnsNilRepeatedly() async throws { + let provider = StreamingRowProvider(stream: stream([header(["id"]), .rows([[.text("1")]])])) + + _ = try await provider.nextRow() + + let firstNil = try await provider.nextRow() + let secondNil = try await provider.nextRow() + XCTAssertNil(firstNil) + XCTAssertNil(secondNil) + } + + func testShortRowDoesNotOverrunTheColumnList() async throws { + let provider = StreamingRowProvider(stream: stream([ + header(["id", "name", "extra"]), + .rows([[.text("1")]]) + ])) + + let row = try await provider.nextRow() + + XCTAssertEqual(row?.value(for: "id"), .text("1")) + XCTAssertEqual(row?.value(for: "name"), .null, "a column with no value reads as NULL") + } + + func testErrorsFromTheStreamPropagate() async { + struct Boom: Error {} + let failing = AsyncThrowingStream { continuation in + continuation.yield(self.header(["id"])) + continuation.finish(throwing: Boom()) + } + let provider = StreamingRowProvider(stream: failing) + + do { + _ = try await provider.nextRow() + XCTFail("Expected the stream error to surface") + } catch { + XCTAssertTrue(error is Boom) + } + } +} + +final class KeyOrderedQueryTests: XCTestCase { + private final class Quoting: PluginDatabaseDriver, @unchecked Sendable { + func quoteIdentifier(_ name: String) -> String { "\"\(name)\"" } + func connect() async throws {} + func disconnect() {} + func execute(query: String) async throws -> PluginQueryResult { + PluginQueryResult(columns: [], columnTypeNames: [], rows: [], rowsAffected: 0, executionTime: 0) + } + func fetchTables(schema: String?) async throws -> [PluginTableInfo] { [] } + func fetchColumns(table: String, schema: String?) async throws -> [PluginColumnInfo] { [] } + func fetchIndexes(table: String, schema: String?) async throws -> [PluginIndexInfo] { [] } + func fetchForeignKeys(table: String, schema: String?) async throws -> [PluginForeignKeyInfo] { [] } + func fetchTableDDL(table: String, schema: String?) async throws -> String { "" } + func fetchViewDefinition(view: String, schema: String?) async throws -> String { "" } + func fetchTableMetadata(table: String, schema: String?) async throws -> PluginTableMetadata { + PluginTableMetadata(tableName: table) + } + func fetchDatabases() async throws -> [String] { [] } + func fetchDatabaseMetadata(_ database: String) async throws -> PluginDatabaseMetadata { + PluginDatabaseMetadata(name: database) + } + } + + func testQuerySelectsRequestedColumnsOrderedByKey() { + let sql = KeyOrderedQuery.build( + table: "users", schema: nil, columns: ["id", "name"], keyColumns: ["id"], driver: Quoting() + ) + + XCTAssertEqual(sql, "SELECT \"id\", \"name\" FROM \"users\" ORDER BY \"id\"") + } + + func testCompositeKeyOrdersByEveryKeyColumn() { + let sql = KeyOrderedQuery.build( + table: "t", schema: nil, columns: ["a"], keyColumns: ["tenant", "id"], driver: Quoting() + ) + + XCTAssertTrue(sql.hasSuffix("ORDER BY \"tenant\", \"id\""), sql) + } + + func testSchemaIsQualifiedAndQuoted() { + let sql = KeyOrderedQuery.build( + table: "users", schema: "app", columns: ["id"], keyColumns: ["id"], driver: Quoting() + ) + + XCTAssertTrue(sql.contains("FROM \"app\".\"users\""), sql) + } +} diff --git a/docs/features/compare-sync.mdx b/docs/features/compare-sync.mdx index aa30a1a8b..8c57990cf 100644 --- a/docs/features/compare-sync.mdx +++ b/docs/features/compare-sync.mdx @@ -81,7 +81,8 @@ Exclusions apply by column name across every table in the comparison, which is w ### How values are judged equal -- `NULL` equals only `NULL`. It is never treated as an empty string. +- `NULL` equals only `NULL`. It is never treated as an empty string. A row whose *key* is NULL cannot identify anything, so it is skipped and counted rather than given an arbitrary sort position. +- Key columns must sort the same way on both sides. A numeric key does by construction. For any other key TablePro checks the order as rows arrive and stops with an explanation if the server's collation sorts differently, rather than reporting a row that exists on both sides as a delete. - Numbers compare exactly unless you set a tolerance. A tolerance of `0.001` treats `109.05999755859375` and `109.05999755859381` as equal. The comparison gives the same answer whichever side you call the source. - Timestamps compare as instants at the fractional precision you choose. The same instant written at two offsets, such as `08:00:00-08:00` and `11:00:00-05:00`, is not a difference. No timezone conversion is applied anywhere in the comparison. - Binary values compare by bytes. From 80825ee7564bbeed914e0d48f4f54e765ef62677 Mon Sep 17 00:00:00 2001 From: Ngo Quoc Dat Date: Sun, 23 Aug 2026 12:21:33 +0700 Subject: [PATCH 4/9] feat(compare)!: rebuild Compare & Sync as a native comparison window (#721) Claude-Session: https://claude.ai/code/session_01QZKyY8vPUn3myu82D145pe --- CHANGELOG.md | 5 +- .../BigQueryPluginDriver.swift | 1 + .../ClickHousePlugin.swift | 1 + .../CloudflareD1PluginDriver.swift | 2 + Plugins/DamengDriverPlugin/DamengPlugin.swift | 2 +- Plugins/DuckDBDriverPlugin/DuckDBPlugin.swift | 2 + .../LibSQLPluginDriver.swift | 2 + Plugins/MSSQLDriverPlugin/MSSQLPlugin.swift | 2 + .../MySQLDriverPlugin/MySQLPluginDriver.swift | 2 + Plugins/OracleDriverPlugin/OraclePlugin.swift | 2 + .../CockroachPluginDriver.swift | 2 + .../PostgreSQLPluginDriver.swift | 4 +- .../RedshiftPluginDriver.swift | 2 + Plugins/SQLExportPlugin/SQLExportPlugin.swift | 95 +++-- Plugins/SQLiteDriverPlugin/SQLitePlugin.swift | 2 + .../SnowflakePluginDriver.swift | 11 +- .../ForeignKeyTopologicalSort.swift | 78 +++- .../TableProPluginKit/PluginExportTypes.swift | 26 ++ .../TeradataDriverPlugin/TeradataPlugin.swift | 2 +- .../TrinoDriverPlugin/TrinoPluginDriver.swift | 2 +- .../Core/Compare/CompareMetadataService.swift | 292 +++++++++++++ TablePro/Core/Compare/CompareObjectKind.swift | 71 ++++ .../Core/Compare/CompareObjectResult.swift | 167 ++++++++ TablePro/Core/Compare/CompareRowService.swift | 191 +++++++++ .../Core/Compare/CompareRunner+Data.swift | 145 +++++++ TablePro/Core/Compare/CompareRunner.swift | 377 +++++++++++++++++ TablePro/Core/Compare/CompareSQLLiteral.swift | 71 ++++ .../Core/Compare/CompareSyncEndpoint.swift | 91 +++- .../Core/Compare/CompareSyncExecutor.swift | 16 +- .../Compare/CompareSyncProfileStorage.swift | 128 +++++- .../Compare/CompareSyncSession+Data.swift | 247 ----------- .../Compare/CompareSyncSession+Editing.swift | 73 +++- .../Core/Compare/CompareSyncSession+Run.swift | 225 ---------- .../Core/Compare/CompareSyncSession.swift | 224 ++++++---- .../Core/Compare/DataCompareOptions.swift | 73 +++- TablePro/Core/Compare/DataComparePlan.swift | 128 ++++++ TablePro/Core/Compare/DataDiffEngine.swift | 43 +- .../Core/Compare/DataSyncScriptBuilder.swift | 88 ++-- TablePro/Core/Compare/KeyOrdering.swift | 107 +++-- .../Core/Compare/SchemaSyncOperation.swift | 2 +- .../Compare/SchemaSyncScriptBuilder.swift | 15 +- .../Core/Compare/SourceObjectDiffEngine.swift | 112 +++++ .../Compare/SourceObjectSyncBuilder.swift | 92 ++++ .../Core/Compare/SyncSafetyClassifier.swift | 44 ++ TablePro/Core/Menu/DatabaseMenuBuilder.swift | 41 ++ .../Plugins/ExportDataSourceAdapter.swift | 2 +- .../Core/Services/Export/ExportService.swift | 9 +- .../Views/Compare/CompareApplySheetView.swift | 390 +++++++++++++++++ .../Views/Compare/CompareDataPlansView.swift | 210 ++++++++++ .../Views/Compare/CompareDetailView.swift | 148 +++++++ .../Compare/CompareEndpointMenuBuilder.swift | 288 +++++++++++++ .../Views/Compare/CompareOptionsView.swift | 212 ++++++++++ .../Views/Compare/CompareProgressView.swift | 86 ++++ .../Views/Compare/CompareResultGrouping.swift | 174 ++++++++ .../Views/Compare/CompareResultsView.swift | 216 ++++++++++ .../Views/Compare/CompareRowDiffPane.swift | 365 ++++++++++++++++ .../Views/Compare/CompareScriptPane.swift | 235 +++++++++++ .../Views/Compare/CompareStatusBanner.swift | 121 ------ .../Views/Compare/CompareStatusStyle.swift | 137 ++++++ .../Views/Compare/CompareSyncApplyView.swift | 121 ------ .../Views/Compare/CompareSyncCloseGuard.swift | 75 ---- .../Views/Compare/CompareSyncScriptView.swift | 214 ---------- .../Views/Compare/CompareSyncSetupView.swift | 251 ----------- .../Compare/CompareSyncWindowController.swift | 396 +++++++++++++++++- .../Views/Compare/CompareSyncWindowView.swift | 112 ----- .../Compare/CompareWindowContentView.swift | 101 +++++ .../Views/Compare/DataCompareReviewView.swift | 364 ---------------- .../Compare/StructureCompareReviewView.swift | 315 -------------- .../Compare/StructureDefinitionDiffView.swift | 12 +- .../CompareCapabilityDeclarationTests.swift | 58 +++ .../Compare/CompareObjectScopeTests.swift | 157 +++++++ .../Compare/CompareResultGroupingTests.swift | 164 ++++++++ .../Core/Compare/CompareSQLLiteralTests.swift | 54 +++ .../Compare/CompareSyncExecutorTests.swift | 70 +++- .../Core/Compare/DataDiffEngineTests.swift | 48 +++ .../Compare/DataSyncScriptBuilderTests.swift | 93 +++- .../ForeignKeyTopologicalSortTests.swift | 122 ++++++ .../Core/Compare/KeyOrderingTests.swift | 78 +++- .../Compare/SourceObjectDiffEngineTests.swift | 193 +++++++++ .../TableDefinitionRendererTests.swift | 63 ++- .../Core/Compare/TimestampValueTests.swift | 116 +++++ docs/features/compare-sync.mdx | 142 +++---- 82 files changed, 6761 insertions(+), 2459 deletions(-) create mode 100644 TablePro/Core/Compare/CompareMetadataService.swift create mode 100644 TablePro/Core/Compare/CompareObjectKind.swift create mode 100644 TablePro/Core/Compare/CompareObjectResult.swift create mode 100644 TablePro/Core/Compare/CompareRowService.swift create mode 100644 TablePro/Core/Compare/CompareRunner+Data.swift create mode 100644 TablePro/Core/Compare/CompareRunner.swift create mode 100644 TablePro/Core/Compare/CompareSQLLiteral.swift delete mode 100644 TablePro/Core/Compare/CompareSyncSession+Data.swift delete mode 100644 TablePro/Core/Compare/CompareSyncSession+Run.swift create mode 100644 TablePro/Core/Compare/DataComparePlan.swift create mode 100644 TablePro/Core/Compare/SourceObjectDiffEngine.swift create mode 100644 TablePro/Core/Compare/SourceObjectSyncBuilder.swift create mode 100644 TablePro/Views/Compare/CompareApplySheetView.swift create mode 100644 TablePro/Views/Compare/CompareDataPlansView.swift create mode 100644 TablePro/Views/Compare/CompareDetailView.swift create mode 100644 TablePro/Views/Compare/CompareEndpointMenuBuilder.swift create mode 100644 TablePro/Views/Compare/CompareOptionsView.swift create mode 100644 TablePro/Views/Compare/CompareProgressView.swift create mode 100644 TablePro/Views/Compare/CompareResultGrouping.swift create mode 100644 TablePro/Views/Compare/CompareResultsView.swift create mode 100644 TablePro/Views/Compare/CompareRowDiffPane.swift create mode 100644 TablePro/Views/Compare/CompareScriptPane.swift delete mode 100644 TablePro/Views/Compare/CompareStatusBanner.swift create mode 100644 TablePro/Views/Compare/CompareStatusStyle.swift delete mode 100644 TablePro/Views/Compare/CompareSyncApplyView.swift delete mode 100644 TablePro/Views/Compare/CompareSyncCloseGuard.swift delete mode 100644 TablePro/Views/Compare/CompareSyncScriptView.swift delete mode 100644 TablePro/Views/Compare/CompareSyncSetupView.swift delete mode 100644 TablePro/Views/Compare/CompareSyncWindowView.swift create mode 100644 TablePro/Views/Compare/CompareWindowContentView.swift delete mode 100644 TablePro/Views/Compare/DataCompareReviewView.swift delete mode 100644 TablePro/Views/Compare/StructureCompareReviewView.swift create mode 100644 TableProTests/Core/Compare/CompareCapabilityDeclarationTests.swift create mode 100644 TableProTests/Core/Compare/CompareObjectScopeTests.swift create mode 100644 TableProTests/Core/Compare/CompareResultGroupingTests.swift create mode 100644 TableProTests/Core/Compare/CompareSQLLiteralTests.swift create mode 100644 TableProTests/Core/Compare/ForeignKeyTopologicalSortTests.swift create mode 100644 TableProTests/Core/Compare/SourceObjectDiffEngineTests.swift create mode 100644 TableProTests/Core/Compare/TimestampValueTests.swift diff --git a/CHANGELOG.md b/CHANGELOG.md index 4fe319394..8de01bd4b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,7 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added -- Compare & Sync for structure or data between two connections, with an editable script. Starter license. (#721) +- Compare & Sync between two databases, comparing tables, views, procedures, functions and triggers, or row data. Starter license. (#721) - Triggers as a sidebar section, listed per database and schema alongside Procedures and Functions. (#2383) - Read-only source viewer for procedures, functions and triggers, with Copy, Export and Open in Editor. (#2383) - Procedures, functions and triggers on MSSQL, Oracle, SQLite, ClickHouse, DuckDB, Snowflake, BigQuery, Cassandra, LibSQL, Cloudflare D1, Teradata and Dameng. (#2383) @@ -38,6 +38,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Duplicate routine rows in the flat sidebar taking the selection back to the first of them. (#2383) - MySQL triggers losing their definer, `WHEN` clause and ordering in the Structure tab. - Oracle triggers showing a header with no body in the Structure tab. +- Crash exporting two same-named tables from different schemas to SQL. (#1968) +- SQL export writing one schema's rows into another schema's table of the same name. (#1968) +- SQL export leaving out columns and foreign keys for every schema after the first. (#1968) ## [0.67.1] - 2026-08-22 diff --git a/Plugins/BigQueryDriverPlugin/BigQueryPluginDriver.swift b/Plugins/BigQueryDriverPlugin/BigQueryPluginDriver.swift index 511ae9f5f..724c6536a 100644 --- a/Plugins/BigQueryDriverPlugin/BigQueryPluginDriver.swift +++ b/Plugins/BigQueryDriverPlugin/BigQueryPluginDriver.swift @@ -58,6 +58,7 @@ internal final class BigQueryPluginDriver: PluginDatabaseDriver, @unchecked Send .multiSchema, .cancelQuery, .materializedViews, + .dataCompare, ] } diff --git a/Plugins/ClickHouseDriverPlugin/ClickHousePlugin.swift b/Plugins/ClickHouseDriverPlugin/ClickHousePlugin.swift index 616f3223c..c786e196c 100644 --- a/Plugins/ClickHouseDriverPlugin/ClickHousePlugin.swift +++ b/Plugins/ClickHouseDriverPlugin/ClickHousePlugin.swift @@ -163,6 +163,7 @@ final class ClickHousePluginDriver: PluginDatabaseDriver, @unchecked Sendable { .alterTableDDL, .cancelQuery, .materializedViews, + .dataCompare, ] } diff --git a/Plugins/CloudflareD1DriverPlugin/CloudflareD1PluginDriver.swift b/Plugins/CloudflareD1DriverPlugin/CloudflareD1PluginDriver.swift index b6be1d1af..2feb3c450 100644 --- a/Plugins/CloudflareD1DriverPlugin/CloudflareD1PluginDriver.swift +++ b/Plugins/CloudflareD1DriverPlugin/CloudflareD1PluginDriver.swift @@ -45,6 +45,8 @@ final class CloudflareD1PluginDriver: PluginDatabaseDriver, @unchecked Sendable .foreignKeyToggle, .truncateTable, .cancelQuery, + .schemaCompare, + .dataCompare, ] } diff --git a/Plugins/DamengDriverPlugin/DamengPlugin.swift b/Plugins/DamengDriverPlugin/DamengPlugin.swift index c9f62954d..6ca76bb33 100644 --- a/Plugins/DamengDriverPlugin/DamengPlugin.swift +++ b/Plugins/DamengDriverPlugin/DamengPlugin.swift @@ -150,7 +150,7 @@ final class DamengPluginDriver: PluginDatabaseDriver, @unchecked Sendable { } var capabilities: PluginCapabilities { - [.parameterizedQueries, .transactions, .alterTableDDL, .multiSchema] + [.parameterizedQueries, .transactions, .alterTableDDL, .multiSchema, .schemaCompare, .dataCompare] } var supportsSchemas: Bool { true } diff --git a/Plugins/DuckDBDriverPlugin/DuckDBPlugin.swift b/Plugins/DuckDBDriverPlugin/DuckDBPlugin.swift index 66e2b22ae..5eafabcfc 100644 --- a/Plugins/DuckDBDriverPlugin/DuckDBPlugin.swift +++ b/Plugins/DuckDBDriverPlugin/DuckDBPlugin.swift @@ -199,6 +199,8 @@ final class DuckDBPluginDriver: PluginDatabaseDriver, @unchecked Sendable { .alterTableDDL, .multiSchema, .cancelQuery, + .schemaCompare, + .dataCompare, ] } diff --git a/Plugins/LibSQLDriverPlugin/LibSQLPluginDriver.swift b/Plugins/LibSQLDriverPlugin/LibSQLPluginDriver.swift index 6f0add357..01496b8d9 100644 --- a/Plugins/LibSQLDriverPlugin/LibSQLPluginDriver.swift +++ b/Plugins/LibSQLDriverPlugin/LibSQLPluginDriver.swift @@ -51,6 +51,8 @@ final class LibSQLPluginDriver: PluginDatabaseDriver, @unchecked Sendable { .foreignKeyToggle, .truncateTable, .cancelQuery, + .schemaCompare, + .dataCompare, ] if isLocalMode { base.insert(.transactions) diff --git a/Plugins/MSSQLDriverPlugin/MSSQLPlugin.swift b/Plugins/MSSQLDriverPlugin/MSSQLPlugin.swift index 79dc7274a..928043248 100644 --- a/Plugins/MSSQLDriverPlugin/MSSQLPlugin.swift +++ b/Plugins/MSSQLDriverPlugin/MSSQLPlugin.swift @@ -239,6 +239,8 @@ final class MSSQLPluginDriver: PluginDatabaseDriver, @unchecked Sendable { .multiSchema, .cancelQuery, .batchExecute, + .schemaCompare, + .dataCompare, ] } diff --git a/Plugins/MySQLDriverPlugin/MySQLPluginDriver.swift b/Plugins/MySQLDriverPlugin/MySQLPluginDriver.swift index f91e1dd6b..daf401c41 100644 --- a/Plugins/MySQLDriverPlugin/MySQLPluginDriver.swift +++ b/Plugins/MySQLDriverPlugin/MySQLPluginDriver.swift @@ -42,6 +42,8 @@ final class MySQLPluginDriver: PluginDatabaseDriver, @unchecked Sendable { .storedProcedures, .userFunctions, .userManagement, + .schemaCompare, + .dataCompare, ] } diff --git a/Plugins/OracleDriverPlugin/OraclePlugin.swift b/Plugins/OracleDriverPlugin/OraclePlugin.swift index 6ae4d3ec7..092296cf5 100644 --- a/Plugins/OracleDriverPlugin/OraclePlugin.swift +++ b/Plugins/OracleDriverPlugin/OraclePlugin.swift @@ -278,6 +278,8 @@ final class OraclePluginDriver: PluginDatabaseDriver, @unchecked Sendable { .transactions, .alterTableDDL, .multiSchema, + .schemaCompare, + .dataCompare, ] } diff --git a/Plugins/PostgreSQLDriverPlugin/CockroachPluginDriver.swift b/Plugins/PostgreSQLDriverPlugin/CockroachPluginDriver.swift index 3638cc65d..8ab2086bf 100644 --- a/Plugins/PostgreSQLDriverPlugin/CockroachPluginDriver.swift +++ b/Plugins/PostgreSQLDriverPlugin/CockroachPluginDriver.swift @@ -24,6 +24,8 @@ final class CockroachPluginDriver: LibPQBackedDriver, @unchecked Sendable { .cancelQuery, .batchExecute, .materializedViews, + .schemaCompare, + .dataCompare, ] } diff --git a/Plugins/PostgreSQLDriverPlugin/PostgreSQLPluginDriver.swift b/Plugins/PostgreSQLDriverPlugin/PostgreSQLPluginDriver.swift index 50f782155..0f18aac13 100644 --- a/Plugins/PostgreSQLDriverPlugin/PostgreSQLPluginDriver.swift +++ b/Plugins/PostgreSQLDriverPlugin/PostgreSQLPluginDriver.swift @@ -37,7 +37,9 @@ class PostgreSQLPluginDriver: LibPQBackedDriver, @unchecked Sendable { .foreignTables, .storedProcedures, .userFunctions, - .userManagement + .userManagement, + .schemaCompare, + .dataCompare ] } diff --git a/Plugins/PostgreSQLDriverPlugin/RedshiftPluginDriver.swift b/Plugins/PostgreSQLDriverPlugin/RedshiftPluginDriver.swift index 0dc622d2a..83587a7a0 100644 --- a/Plugins/PostgreSQLDriverPlugin/RedshiftPluginDriver.swift +++ b/Plugins/PostgreSQLDriverPlugin/RedshiftPluginDriver.swift @@ -26,6 +26,8 @@ final class RedshiftPluginDriver: LibPQBackedDriver, @unchecked Sendable { .multiSchema, .cancelQuery, .batchExecute, + .schemaCompare, + .dataCompare, ] } diff --git a/Plugins/SQLExportPlugin/SQLExportPlugin.swift b/Plugins/SQLExportPlugin/SQLExportPlugin.swift index e19f912b8..d6b0304a3 100644 --- a/Plugins/SQLExportPlugin/SQLExportPlugin.swift +++ b/Plugins/SQLExportPlugin/SQLExportPlugin.swift @@ -92,9 +92,8 @@ final class SQLExportPlugin: ExportFormatPlugin, SettablePlugin, @unchecked Send do { try writeHeader(to: fileHandle, dataSource: dataSource) - let databaseName = tables.first?.databaseName ?? "" - let columnsByTable = await prefetchColumns(databaseName: databaseName, dataSource: dataSource) - let fkMap = await prefetchForeignKeys(databaseName: databaseName, dataSource: dataSource) + let columnsByTable = await prefetchColumns(tables: tables, dataSource: dataSource) + let fkMap = await prefetchForeignKeys(tables: tables, dataSource: dataSource) let sortedTables = topologicallySort(tables, fkMap: fkMap) try writeDropPhase(sortedTables: sortedTables, dataSource: dataSource, to: fileHandle) @@ -153,41 +152,83 @@ final class SQLExportPlugin: ExportFormatPlugin, SettablePlugin, @unchecked Send try fileHandle.write(contentsOf: "-- Database Type: \(dataSource.databaseTypeId)\n\n".toUTF8Data()) } + private struct ExportGroup { + let databaseName: String + let container: String? + } + + private func exportGroups(in tables: [PluginExportTable]) -> [ExportGroup] { + var seen: Set = [] + return tables + .filter { seen.insert($0.databaseName).inserted } + .map { ExportGroup(databaseName: $0.databaseName, container: $0.containerName) } + } + + private func node(for table: PluginExportTable) -> ForeignKeyTopologicalSort.Table { + ForeignKeyTopologicalSort.Table(name: table.name, schema: table.containerName) + } + + private func metadataKey(_ tableName: String, in group: ExportGroup) -> String { + ForeignKeyTopologicalSort.Table(name: tableName, schema: group.container).identifier + } + private func prefetchForeignKeys( - databaseName: String, + tables: [PluginExportTable], dataSource: any PluginExportDataSource ) async -> [String: [PluginForeignKeyInfo]] { - do { - return try await dataSource.fetchAllForeignKeys(databaseName: databaseName) - } catch { - Self.logger.warning("Failed to fetch foreign keys: \(error.localizedDescription)") + var merged: [String: [PluginForeignKeyInfo]] = [:] + var anyGroupFailed = false + for group in exportGroups(in: tables) { + do { + let fetched = try await dataSource.fetchAllForeignKeys(databaseName: group.databaseName) + for (tableName, foreignKeys) in fetched { + merged[metadataKey(tableName, in: group)] = foreignKeys + } + } catch { + Self.logger.warning("Failed to fetch foreign keys: \(error.localizedDescription)") + anyGroupFailed = true + } + } + if anyGroupFailed { metadataWarnings.append( "Could not fetch foreign keys; FK constraints may be missing from the export.") - return [:] } + return merged } private func prefetchColumns( - databaseName: String, + tables: [PluginExportTable], dataSource: any PluginExportDataSource ) async -> [String: [PluginColumnInfo]] { - do { - return try await dataSource.fetchAllColumns(databaseName: databaseName) - } catch { - Self.logger.warning("Failed to fetch columns: \(error.localizedDescription)") + var merged: [String: [PluginColumnInfo]] = [:] + var anyGroupFailed = false + for group in exportGroups(in: tables) { + do { + let fetched = try await dataSource.fetchAllColumns(databaseName: group.databaseName) + for (tableName, columns) in fetched { + merged[metadataKey(tableName, in: group)] = columns + } + } catch { + Self.logger.warning("Failed to fetch columns: \(error.localizedDescription)") + anyGroupFailed = true + } + } + if anyGroupFailed { metadataWarnings.append( "Could not fetch column metadata; identity columns and generated columns may not round-trip correctly.") - return [:] } + return merged } private func topologicallySort( _ tables: [PluginExportTable], fkMap: [String: [PluginForeignKeyInfo]] ) -> [PluginExportTable] { - let byName = Dictionary(tables.map { ($0.name, $0) }, uniquingKeysWith: { first, _ in first }) - let ordered = ForeignKeyTopologicalSort.orderedNames(tables.map { $0.name }, foreignKeysByTable: fkMap) - return ordered.compactMap { byName[$0] } + let byIdentifier = Dictionary( + tables.map { (node(for: $0).identifier, $0) }, + uniquingKeysWith: { first, _ in first }) + let ordered = ForeignKeyTopologicalSort.ordered(tables.map { node(for: $0) }, foreignKeysByTable: fkMap) + return ordered.compactMap { byIdentifier[$0.identifier] } } private func writeDropPhase( @@ -198,7 +239,8 @@ final class SQLExportPlugin: ExportFormatPlugin, SettablePlugin, @unchecked Send let dropTargets = sortedTables.reversed().filter { optionValue($0, at: 1) } guard !dropTargets.isEmpty else { return } for table in dropTargets { - let tableRef = dataSource.quoteIdentifier(table.name) + let tableRef = qualifiedRef( + schema: table.databaseName, table: table.name, dataSource: dataSource) let keyword = dropStatementKeyword(for: table.tableType) try fileHandle.write(contentsOf: "\(keyword) IF EXISTS \(tableRef) CASCADE;\n".toUTF8Data()) } @@ -294,7 +336,7 @@ final class SQLExportPlugin: ExportFormatPlugin, SettablePlugin, @unchecked Send try progress.checkCancellation() try await writeTableData( table: table, - columnInfo: columnsByTable[table.name] ?? [], + columnInfo: columnsByTable[node(for: table).identifier] ?? [], dataSource: dataSource, to: fileHandle, progress: progress) @@ -310,7 +352,7 @@ final class SQLExportPlugin: ExportFormatPlugin, SettablePlugin, @unchecked Send ) throws { var emittedAnything = false for table in sortedTables where optionValue(table, at: 0) { - let fks = fkMap[table.name] ?? [] + let fks = fkMap[node(for: table).identifier] ?? [] let grouped = groupForeignKeysByConstraint(fks) for group in grouped { let alter = renderAddConstraintFK(table: table, group: group, dataSource: dataSource) @@ -320,7 +362,7 @@ final class SQLExportPlugin: ExportFormatPlugin, SettablePlugin, @unchecked Send } for table in sortedTables where optionValue(table, at: 2) && table.tableType != "view" { - let columns = columnsByTable[table.name] ?? [] + let columns = columnsByTable[node(for: table).identifier] ?? [] for column in columns where column.isIdentity { let setval = renderIdentitySetval( table: table, columnName: column.name, dataSource: dataSource) @@ -417,6 +459,8 @@ final class SQLExportPlugin: ExportFormatPlugin, SettablePlugin, @unchecked Send let generatedColumnNames = Set(columnInfo.filter { $0.isGenerated }.map { $0.name }) let usesOverridingSystemValue = columnInfo.contains { $0.identityKind == .always } + let tableRef = qualifiedRef( + schema: table.databaseName, table: table.name, dataSource: dataSource) let stream = dataSource.streamRows(table: table.name, databaseName: table.databaseName) for try await element in stream { @@ -431,7 +475,7 @@ final class SQLExportPlugin: ExportFormatPlugin, SettablePlugin, @unchecked Send rowBatch.append(row) if rowBatch.count >= batchSize { try writeInsertStatements( - tableName: table.name, + tableRef: tableRef, columns: columns, columnTypeNames: columnTypeNames, rows: rowBatch, @@ -451,7 +495,7 @@ final class SQLExportPlugin: ExportFormatPlugin, SettablePlugin, @unchecked Send if !rowBatch.isEmpty { try writeInsertStatements( - tableName: table.name, + tableRef: tableRef, columns: columns, columnTypeNames: columnTypeNames, rows: rowBatch, @@ -471,7 +515,7 @@ final class SQLExportPlugin: ExportFormatPlugin, SettablePlugin, @unchecked Send } private func writeInsertStatements( - tableName: String, + tableRef: String, columns: [String], columnTypeNames: [String], rows: [[PluginCellValue]], @@ -487,7 +531,6 @@ final class SQLExportPlugin: ExportFormatPlugin, SettablePlugin, @unchecked Send } guard !includedColumnIndices.isEmpty else { return } - let tableRef = dataSource.quoteIdentifier(tableName) let quotedColumns = includedColumnIndices .map { dataSource.quoteIdentifier(columns[$0]) } .joined(separator: ", ") diff --git a/Plugins/SQLiteDriverPlugin/SQLitePlugin.swift b/Plugins/SQLiteDriverPlugin/SQLitePlugin.swift index ff5ed0e7f..11e4e97fa 100644 --- a/Plugins/SQLiteDriverPlugin/SQLitePlugin.swift +++ b/Plugins/SQLiteDriverPlugin/SQLitePlugin.swift @@ -551,6 +551,8 @@ final class SQLitePluginDriver: PluginDatabaseDriver, @unchecked Sendable { .truncateTable, .cancelQuery, .batchExecute, + .schemaCompare, + .dataCompare, ] } diff --git a/Plugins/SnowflakeDriverPlugin/SnowflakePluginDriver.swift b/Plugins/SnowflakeDriverPlugin/SnowflakePluginDriver.swift index 8af541d4e..17adb1c24 100644 --- a/Plugins/SnowflakeDriverPlugin/SnowflakePluginDriver.swift +++ b/Plugins/SnowflakeDriverPlugin/SnowflakePluginDriver.swift @@ -28,7 +28,16 @@ final class SnowflakePluginDriver: PluginDatabaseDriver, @unchecked Sendable { } var capabilities: PluginCapabilities { - [.multiSchema, .transactions, .truncateTable, .cancelQuery, .parameterizedQueries, .alterTableDDL] + [ + .multiSchema, + .transactions, + .truncateTable, + .cancelQuery, + .parameterizedQueries, + .alterTableDDL, + .schemaCompare, + .dataCompare, + ] } func cancelQuery() throws { diff --git a/Plugins/TableProPluginKit/ForeignKeyTopologicalSort.swift b/Plugins/TableProPluginKit/ForeignKeyTopologicalSort.swift index 3c2bd6513..f77beb8bb 100644 --- a/Plugins/TableProPluginKit/ForeignKeyTopologicalSort.swift +++ b/Plugins/TableProPluginKit/ForeignKeyTopologicalSort.swift @@ -1,31 +1,62 @@ import Foundation public enum ForeignKeyTopologicalSort { - public static func orderedNames( - _ names: [String], - foreignKeysByTable: [String: [PluginForeignKeyInfo]] - ) -> [String] { - let nameSet = Set(names) + /// One node of the dependency graph. Two tables that share a name in different schemas are + /// two nodes, so no ordering can collapse them into one. + public struct Table: Hashable, Sendable { + public let name: String + public let schema: String? + + public init(name: String, schema: String? = nil) { + self.name = name + self.schema = (schema?.isEmpty ?? true) ? nil : schema + } + + public var identifier: String { + guard let schema else { return name } + return "\(schema).\(name)" + } + } + + /// Orders `tables` so a parent precedes every child that references it. Identity is + /// `Table.identifier` throughout: `foreignKeysByTable` is keyed by it, and a foreign key + /// that names no `referencedSchema` points inside the referencing table's own schema. + /// A dependency cycle falls back to the tables the traversal could not place, in identifier + /// order, so the result holds every distinct input table exactly once. + public static func ordered( + _ tables: [Table], + foreignKeysByTable: [String: [PluginForeignKeyInfo]], + childrenFirst: Bool = false + ) -> [Table] { + let nodes = distinct(tables) + guard nodes.count > 1 else { return nodes } + + let byIdentifier = Dictionary(nodes.map { ($0.identifier, $0) }, uniquingKeysWith: { first, _ in first }) var indegree: [String: Int] = [:] var children: [String: Set] = [:] - for name in names { indegree[name] = 0 } + for node in nodes { indegree[node.identifier] = 0 } - for name in names { + for node in nodes { + let identifier = node.identifier var seenParents: Set = [] - for fk in foreignKeysByTable[name] ?? [] where fk.referencedTable != name { - guard nameSet.contains(fk.referencedTable), - !seenParents.contains(fk.referencedTable) else { continue } - seenParents.insert(fk.referencedTable) - children[fk.referencedTable, default: []].insert(name) - indegree[name, default: 0] += 1 + for foreignKey in foreignKeysByTable[identifier] ?? [] { + let parent = Table( + name: foreignKey.referencedTable, + schema: foreignKey.referencedSchema ?? node.schema + ).identifier + guard parent != identifier, + byIdentifier[parent] != nil, + seenParents.insert(parent).inserted else { continue } + children[parent, default: []].insert(identifier) + indegree[identifier, default: 0] += 1 } } - var queue = names.filter { (indegree[$0] ?? 0) == 0 }.sorted() - var ordered: [String] = [] + var queue = nodes.map { $0.identifier }.filter { (indegree[$0] ?? 0) == 0 }.sorted() + var placed: [String] = [] while !queue.isEmpty { let head = queue.removeFirst() - ordered.append(head) + placed.append(head) for child in (children[head] ?? []).sorted() { indegree[child] = (indegree[child] ?? 0) - 1 if indegree[child] == 0 { @@ -34,8 +65,17 @@ public enum ForeignKeyTopologicalSort { } } - guard ordered.count < names.count else { return ordered } - let placed = Set(ordered) - return ordered + names.filter { !placed.contains($0) }.sorted() + if placed.count < nodes.count { + let settled = Set(placed) + placed += nodes.map { $0.identifier }.filter { !settled.contains($0) }.sorted() + } + + let resolved = placed.compactMap { byIdentifier[$0] } + return childrenFirst ? resolved.reversed() : resolved + } + + private static func distinct(_ tables: [Table]) -> [Table] { + var seen: Set = [] + return tables.filter { seen.insert($0.identifier).inserted } } } diff --git a/Plugins/TableProPluginKit/PluginExportTypes.swift b/Plugins/TableProPluginKit/PluginExportTypes.swift index 69d4e255c..4ac92995b 100644 --- a/Plugins/TableProPluginKit/PluginExportTypes.swift +++ b/Plugins/TableProPluginKit/PluginExportTypes.swift @@ -8,12 +8,29 @@ import Foundation public struct PluginExportTable: Sendable { public let name: String public let databaseName: String + public let schema: String? public let tableType: String public let optionValues: [Bool] + public init( + name: String, + databaseName: String, + tableType: String, + optionValues: [Bool] = [], + schema: String? + ) { + self.name = name + self.databaseName = databaseName + self.schema = schema + self.tableType = tableType + self.optionValues = optionValues + } + + @_disfavoredOverload public init(name: String, databaseName: String, tableType: String, optionValues: [Bool] = []) { self.name = name self.databaseName = databaseName + self.schema = nil self.tableType = tableType self.optionValues = optionValues } @@ -21,6 +38,15 @@ public struct PluginExportTable: Sendable { public var qualifiedName: String { databaseName.isEmpty ? name : "\(databaseName).\(name)" } + + /// The container this table was grouped under: the export tree's group name where it named + /// one, and the driver's own schema where it did not. Two tables in one export carry the + /// same value only when they really sit together, so this is what qualifies a bare name. + public var containerName: String? { + guard databaseName.isEmpty else { return databaseName } + guard let schema, !schema.isEmpty else { return nil } + return schema + } } public struct PluginExportOptionColumn: Sendable, Identifiable { diff --git a/Plugins/TeradataDriverPlugin/TeradataPlugin.swift b/Plugins/TeradataDriverPlugin/TeradataPlugin.swift index e809de191..b82a8e859 100644 --- a/Plugins/TeradataDriverPlugin/TeradataPlugin.swift +++ b/Plugins/TeradataDriverPlugin/TeradataPlugin.swift @@ -125,7 +125,7 @@ final class TeradataPluginDriver: PluginDatabaseDriver, @unchecked Sendable { var supportsTransactions: Bool { true } var capabilities: PluginCapabilities { - [.cancelQuery, .transactions, .alterTableDDL] + [.cancelQuery, .transactions, .alterTableDDL, .dataCompare] } init(config: DriverConnectionConfig) { diff --git a/Plugins/TrinoDriverPlugin/TrinoPluginDriver.swift b/Plugins/TrinoDriverPlugin/TrinoPluginDriver.swift index 7a5fc59d3..152c642ec 100644 --- a/Plugins/TrinoDriverPlugin/TrinoPluginDriver.swift +++ b/Plugins/TrinoDriverPlugin/TrinoPluginDriver.swift @@ -24,7 +24,7 @@ final class TrinoPluginDriver: PluginDatabaseDriver, @unchecked Sendable { } var capabilities: PluginCapabilities { - [.multiSchema, .cancelQuery, .materializedViews] + [.multiSchema, .cancelQuery, .materializedViews, .dataCompare] } func cacheColumnTypes(_ types: [String: String], key: String) { diff --git a/TablePro/Core/Compare/CompareMetadataService.swift b/TablePro/Core/Compare/CompareMetadataService.swift new file mode 100644 index 000000000..4c2810749 --- /dev/null +++ b/TablePro/Core/Compare/CompareMetadataService.swift @@ -0,0 +1,292 @@ +// +// CompareMetadataService.swift +// TablePro +// +// Every driver call the comparison makes. +// +// It exists because the session used to reach `DatabaseManager.shared.driver(for:)` +// directly, which hands back the connection's single live interactive driver. +// That driver carries mutable position, so a read taken without +// `SessionDriverGate` can interleave with a tab's query or land on whichever +// database that tab last switched to, and it skips `metadataRoute`, which is +// what keeps an embedded engine from being handed a second, empty instance. +// `withMetadataDriver(scope:)` is the one route that applies both. +// +// The closure hands back the app-level `DatabaseDriver`; the comparison needs +// the plugin transfer types, so the downcast happens inside the gated closure, +// the same shape `DatabaseManager+Schema` already uses. +// + +import Foundation +import os +import TableProPluginKit + +/// One table's raw metadata, in transfer types so it can cross the gated closure. Conversion to +/// `TableStructureSnapshot` happens on the caller's side, where the editable definition types live. +internal struct TableStructureRead: Sendable { + internal let table: PluginTableInfo + internal let columns: [PluginColumnInfo] + internal let indexes: [PluginIndexInfo] + internal let foreignKeys: [PluginForeignKeyInfo] + internal let metadata: PluginTableMetadata? + internal let failure: String? + + internal var snapshot: TableStructureSnapshot? { + guard failure == nil else { return nil } + return TableStructureSnapshot.from( + table: table, columns: columns, indexes: indexes, foreignKeys: foreignKeys, metadata: metadata + ) + } +} + +internal struct RoutineSourceRead: Sendable { + internal let name: String + internal let kind: CompareObjectKind + internal let schema: String? + internal let signature: String? + internal let source: String +} + +@MainActor +internal struct CompareMetadataService { + nonisolated private static let logger = Logger(subsystem: "com.TablePro", category: "CompareMetadataService") + + private let manager: DatabaseManager + + internal init(manager: DatabaseManager = .shared) { + self.manager = manager + } + + // MARK: - Scope discovery + + internal func databases(for connection: DatabaseConnection) async throws -> [String] { + try await manager.ensureConnected(connection) + let scope = DatabaseScope(connectionId: connection.id, database: connection.database ?? "", schema: nil) + return try await manager.withMetadataDriver(scope: scope) { driver in + try await driver.fetchDatabases() + } + } + + internal func schemas(for endpoint: CompareSyncEndpoint, connection: DatabaseConnection) async throws -> [String] { + try await manager.ensureConnected(connection) + return try await manager.withMetadataDriver(scope: endpoint.scope) { driver in + try await driver.fetchSchemas() + } + } + + // MARK: - Capability + + internal func refusalReason( + for endpoint: CompareSyncEndpoint, + connection: DatabaseConnection, + mode: CompareSyncMode + ) async throws -> String? { + try await manager.ensureConnected(connection) + let name = endpoint.qualifiedDescription + return try await manager.withMetadataDriver(scope: endpoint.scope) { driver in + guard let plugin = Self.pluginDriver(from: driver) else { + return String( + format: String(localized: "%@ cannot be compared, because its driver does not expose metadata."), + name + ) + } + return CompareSyncEligibility.refusalReason(for: plugin, mode: mode, endpointName: name) + } + } + + // MARK: - Structure + + /// One object's failure is that object's, not the comparison's. A single unreadable table used + /// to abort the whole run, which is why `TableDiffResult.comparisonError` was read by the UI and + /// written by nothing. + internal func tableReads( + for endpoint: CompareSyncEndpoint, + connection: DatabaseConnection, + includeViews: Bool + ) async throws -> [TableStructureRead] { + try await manager.ensureConnected(connection) + let schema = endpoint.schema + let concurrency = Self.metadataConcurrency(for: endpoint.databaseType) + + return try await manager.withMetadataDriver(scope: endpoint.scope) { driver in + guard let plugin = Self.pluginDriver(from: driver) else { return [] } + let tables = try await plugin.fetchTables(schema: schema).filter { table in + let kind = CompareTableKindClassifier.kind(of: table) + return kind == .table || includeViews + } + + return try await Self.map(tables, concurrency: concurrency) { table in + await Self.read(table: table, schema: table.schema ?? schema, using: plugin) + } + } + } + + /// `fetchRoutines` supersedes the old per-kind pair and carries `identity`, which is what + /// `fetchRoutineDDL` needs to address an overloaded routine again. A routine whose DDL cannot + /// be read is still listed, with an empty definition, so it shows as present rather than + /// vanishing from the comparison. + internal func routineReads( + for endpoint: CompareSyncEndpoint, + connection: DatabaseConnection + ) async throws -> [RoutineSourceRead] { + try await manager.ensureConnected(connection) + let schema = endpoint.schema + return try await manager.withMetadataDriver(scope: endpoint.scope) { driver in + guard let plugin = Self.pluginDriver(from: driver) else { return [] } + let routines = (try? await plugin.fetchRoutines(schema: schema)) ?? [] + var reads: [RoutineSourceRead] = [] + for routine in routines { + try Task.checkCancellation() + var source = routine.definition ?? "" + if source.isEmpty { + source = (try? await plugin.fetchRoutineDDL(routine)) ?? "" + } + reads.append(RoutineSourceRead( + name: routine.name, + kind: routine.kind == .procedure ? .procedure : .function, + schema: routine.schema ?? schema, + signature: routine.argumentSignature, + source: source + )) + } + return reads + } + } + + /// There is no schema-wide trigger fetch on the driver protocol, so the tables the structure + /// read already listed are the ones asked. A trigger on a table that is not in scope is not in + /// scope either. + internal func triggerReads( + for endpoint: CompareSyncEndpoint, + connection: DatabaseConnection, + tables: [String] + ) async throws -> [RoutineSourceRead] { + try await manager.ensureConnected(connection) + let schema = endpoint.schema + return try await manager.withMetadataDriver(scope: endpoint.scope) { driver in + guard let plugin = Self.pluginDriver(from: driver) else { return [] } + var reads: [RoutineSourceRead] = [] + for table in tables { + try Task.checkCancellation() + guard let triggers = try? await plugin.fetchTriggers(table: table, schema: schema) else { continue } + reads += triggers.map { trigger in + RoutineSourceRead( + name: trigger.name, + kind: .trigger, + schema: trigger.schema ?? schema, + signature: trigger.table ?? table, + source: trigger.definition ?? trigger.statement + ) + } + } + return reads + } + } + + internal func viewDefinitions( + for endpoint: CompareSyncEndpoint, + connection: DatabaseConnection, + views: [PluginTableInfo] + ) async throws -> [RoutineSourceRead] { + try await manager.ensureConnected(connection) + let schema = endpoint.schema + return try await manager.withMetadataDriver(scope: endpoint.scope) { driver in + guard let plugin = Self.pluginDriver(from: driver) else { return [] } + var reads: [RoutineSourceRead] = [] + for view in views { + try Task.checkCancellation() + let definition = try? await plugin.fetchViewDefinition( + view: view.name, schema: view.schema ?? schema + ) + let source = definition ?? "" + reads.append(RoutineSourceRead( + name: view.name, + kind: CompareTableKindClassifier.kind(of: view), + schema: view.schema ?? schema, + signature: nil, + source: source + )) + } + return reads + } + } + + // MARK: - Helpers + + nonisolated private static func read( + table: PluginTableInfo, + schema: String?, + using plugin: any PluginDatabaseDriver + ) async -> TableStructureRead { + do { + let columns = try await plugin.fetchColumns(table: table.name, schema: schema) + let indexes = (try? await plugin.fetchIndexes(table: table.name, schema: schema)) ?? [] + let foreignKeys = (try? await plugin.fetchForeignKeys(table: table.name, schema: schema)) ?? [] + let metadata = try? await plugin.fetchTableMetadata(table: table.name, schema: schema) + return TableStructureRead( + table: table, columns: columns, indexes: indexes, + foreignKeys: foreignKeys, metadata: metadata, failure: nil + ) + } catch { + Self.logger.warning( + "Structure read failed for \(table.name, privacy: .public): \(error.localizedDescription, privacy: .public)" + ) + return TableStructureRead( + table: table, columns: [], indexes: [], foreignKeys: [], + metadata: nil, failure: error.localizedDescription + ) + } + } + + /// A driver that cannot be pooled reaches a different database on a second connection, so its + /// reads stay serial. Everything else fans out, because the old code paid one round trip per + /// table for columns, indexes, foreign keys and metadata in strict sequence. + nonisolated private static func metadataConcurrency(for databaseType: DatabaseType) -> Int { + databaseType.supportsConnectionPooling ? 4 : 1 + } + + nonisolated private static func map( + _ elements: [Element], + concurrency: Int, + _ transform: @escaping @Sendable (Element) async -> Result + ) async throws -> [Result] { + guard concurrency > 1, elements.count > 1 else { + var results: [Result] = [] + for element in elements { + try Task.checkCancellation() + results.append(await transform(element)) + } + return results + } + + return try await withThrowingTaskGroup(of: (Int, Result).self) { group in + var results = [Result?](repeating: nil, count: elements.count) + var next = 0 + var running = 0 + + while next < elements.count && running < concurrency { + let index = next + group.addTask { (index, await transform(elements[index])) } + next += 1 + running += 1 + } + + while let (index, result) = try await group.next() { + results[index] = result + running -= 1 + try Task.checkCancellation() + if next < elements.count { + let queued = next + group.addTask { (queued, await transform(elements[queued])) } + next += 1 + running += 1 + } + } + return results.compactMap { $0 } + } + } + + nonisolated internal static func pluginDriver(from driver: DatabaseDriver) -> (any PluginDatabaseDriver)? { + (driver as? PluginDriverAdapter)?.schemaPluginDriver + } +} diff --git a/TablePro/Core/Compare/CompareObjectKind.swift b/TablePro/Core/Compare/CompareObjectKind.swift new file mode 100644 index 000000000..88e4a811c --- /dev/null +++ b/TablePro/Core/Compare/CompareObjectKind.swift @@ -0,0 +1,71 @@ +// +// CompareObjectKind.swift +// TablePro +// +// What a compared object is. `fetchTables` reports views alongside tables, and +// nothing filtered on the kind, so a view reached the table paths and produced +// CREATE TABLE for a view or INSERT against one. +// +// The rule is subtractive rather than an allow-list: PostgreSQL reports +// PARTITIONED TABLE for an ordinary, directly queryable table, so matching the +// literal string TABLE would silently drop it from every comparison. +// + +import Foundation +import TableProPluginKit + +internal enum CompareObjectKind: String, Codable, Hashable, Sendable, CaseIterable { + case table + case view + case materializedView + case procedure + case function + case trigger + case sequence + + internal var displayName: String { + switch self { + case .table: return String(localized: "Table") + case .view: return String(localized: "View") + case .materializedView: return String(localized: "Materialized View") + case .procedure: return String(localized: "Procedure") + case .function: return String(localized: "Function") + case .trigger: return String(localized: "Trigger") + case .sequence: return String(localized: "Sequence") + } + } + + /// Only a table holds rows a data comparison can walk. + internal var carriesRows: Bool { + self == .table + } + + /// Objects whose definition is a body of SQL text rather than a set of columns. + internal var isSourceDefined: Bool { + switch self { + case .procedure, .function, .trigger, .view, .materializedView: return true + case .table, .sequence: return false + } + } +} + +internal enum CompareTableKindClassifier { + /// `fetchTables` mixes tables and views, and each driver spells the kind its own way. + /// Anything not recognised as a view is treated as a table, because a driver that reports + /// an unfamiliar table-like kind should still be compared rather than silently dropped. + internal static func kind(of table: PluginTableInfo) -> CompareObjectKind { + let normalized = table.type + .uppercased() + .replacingOccurrences(of: "_", with: " ") + .trimmingCharacters(in: .whitespaces) + if normalized.contains("MATERIALIZED") { return .materializedView } + if normalized.contains("VIEW") { return .view } + return .table + } + + /// A foreign table is a proxy for data on another server. Comparing its structure is + /// meaningful; writing rows through it is not, so it is excluded from data compare. + internal static func isForeign(_ table: PluginTableInfo) -> Bool { + table.type.uppercased().contains("FOREIGN") + } +} diff --git a/TablePro/Core/Compare/CompareObjectResult.swift b/TablePro/Core/Compare/CompareObjectResult.swift new file mode 100644 index 000000000..cde3c9037 --- /dev/null +++ b/TablePro/Core/Compare/CompareObjectResult.swift @@ -0,0 +1,167 @@ +// +// CompareObjectResult.swift +// TablePro +// +// One row of a comparison, whatever kind of object it is. +// +// A table is compared as parsed metadata and yields a `SchemaChange` list. A +// view, procedure, function or trigger has no such structure: its definition is +// a body of SQL, so it is compared as normalised text and the only honest +// answers are create, replace and drop. Both arrive here as one type, so the +// results list, the selection model and the script builder do not each need to +// know which engine produced a row. +// + +import Foundation + +internal struct CompareObjectIdentity: Hashable, Sendable { + internal let kind: CompareObjectKind + internal let schema: String? + internal let name: String + + /// Distinguishes two routines that share a name, which PostgreSQL and Oracle both allow. + /// Nil for everything that cannot be overloaded. + internal let signature: String? + + internal init(kind: CompareObjectKind, schema: String?, name: String, signature: String? = nil) { + self.kind = kind + self.schema = schema + self.name = name + self.signature = signature + } + + internal var qualifiedName: String { + guard let schema, !schema.isEmpty else { return name } + return "\(schema).\(name)" + } + + internal var displayName: String { + guard let signature, !signature.isEmpty else { return qualifiedName } + return "\(qualifiedName)\(signature)" + } + + internal var id: String { + "\(kind.rawValue)|\(schema ?? "")|\(name)|\(signature ?? "")" + } +} + +internal struct CompareObjectResult: Identifiable, Hashable, Sendable { + internal let identity: CompareObjectIdentity + internal let status: TableDiffStatus + internal let changes: [SchemaChange] + internal let sourceDefinition: [String] + internal let targetDefinition: [String] + internal let notes: [String] + internal let comparisonError: String? + + internal init( + identity: CompareObjectIdentity, + status: TableDiffStatus, + changes: [SchemaChange] = [], + sourceDefinition: [String] = [], + targetDefinition: [String] = [], + notes: [String] = [], + comparisonError: String? = nil + ) { + self.identity = identity + self.status = status + self.changes = changes + self.sourceDefinition = sourceDefinition + self.targetDefinition = targetDefinition + self.notes = notes + self.comparisonError = comparisonError + } + + internal var id: String { identity.id } + + internal var isComparable: Bool { comparisonError == nil } + + internal var suggestedAction: TableSyncAction { + guard comparisonError == nil else { return .skip } + switch status { + case .onlyInSource: return .create + case .onlyInTarget: return .drop + case .differs: return .alter + case .identical: return .skip + } + } + + internal var availableActions: [TableSyncAction] { + guard comparisonError == nil else { return [.skip] } + switch status { + case .onlyInSource: return [.skip, .create] + case .onlyInTarget: return [.skip, .drop] + case .differs: return [.skip, .alter] + case .identical: return [.skip] + } + } +} + +internal extension CompareObjectResult { + /// Table results come from `StructureDiffEngine`, which stays table-shaped and keeps its tests. + static func from( + _ result: TableDiffResult, + sourceDefinition: [String] = [], + targetDefinition: [String] = [] + ) -> CompareObjectResult { + CompareObjectResult( + identity: CompareObjectIdentity(kind: .table, schema: result.schema, name: result.tableName), + status: result.status, + changes: result.changes, + sourceDefinition: sourceDefinition, + targetDefinition: targetDefinition, + notes: result.notes, + comparisonError: result.comparisonError + ) + } +} + +internal struct CompareReport: Sendable { + internal let results: [CompareObjectResult] + + internal init(results: [CompareObjectResult]) { + self.results = results.sorted { lhs, rhs in + guard lhs.identity.kind == rhs.identity.kind else { + return Self.kindRank(lhs.identity.kind) < Self.kindRank(rhs.identity.kind) + } + return lhs.identity.displayName.localizedStandardCompare(rhs.identity.displayName) == .orderedAscending + } + } + + internal var comparable: [CompareObjectResult] { + results.filter { $0.isComparable } + } + + internal var uncomparable: [CompareObjectResult] { + results.filter { !$0.isComparable } + } + + internal func count(of status: TableDiffStatus) -> Int { + comparable.filter { $0.status == status }.count + } + + internal var differenceCount: Int { + comparable.filter { $0.status != .identical }.count + } + + internal var presentKinds: [CompareObjectKind] { + var seen: [CompareObjectKind] = [] + for result in results where !seen.contains(result.identity.kind) { + seen.append(result.identity.kind) + } + return seen + } + + /// Dependency order, so a script that both drops and creates does not trip over itself. + private static func kindRank(_ kind: CompareObjectKind) -> Int { + switch kind { + case .table: return 0 + case .sequence: return 1 + case .view: return 2 + case .materializedView: return 3 + case .function: return 4 + case .procedure: return 5 + case .trigger: return 6 + } + } +} diff --git a/TablePro/Core/Compare/CompareRowService.swift b/TablePro/Core/Compare/CompareRowService.swift new file mode 100644 index 000000000..70ff5b962 --- /dev/null +++ b/TablePro/Core/Compare/CompareRowService.swift @@ -0,0 +1,191 @@ +// +// CompareRowService.swift +// TablePro +// +// Reads both sides' rows for a data comparison. +// +// A merge join needs both streams open at once, so the two scoped-driver +// closures nest. That is safe only when the two scopes reach two drivers. +// `SessionDriverGate` is not reentrant, and a connection's shared driver holds +// one database position, so two scopes that both route to the session driver +// on the same connection cannot be open together: nesting them would block +// forever, and even if it did not, pinning the driver to the second scope +// would move the first out from under its own stream. `refusalReason` is that +// check, made before anything opens. +// + +import Foundation +import TableProPluginKit + +@MainActor +internal struct CompareRowService { + private let manager: DatabaseManager + + internal init(manager: DatabaseManager = .shared) { + self.manager = manager + } + + internal func concurrentReadRefusal( + source: CompareSyncEndpoint, + target: CompareSyncEndpoint + ) -> String? { + guard source.connectionId == target.connectionId else { return nil } + let routes = [manager.metadataRoute(for: source.scope), manager.metadataRoute(for: target.scope)] + guard routes.contains(where: { $0 != .pooled }) else { return nil } + return String( + format: String( + localized: "%@ cannot compare two of its own databases at once, because it reads both through one connection. Use a second connection for the target." + ), + source.databaseType.rawValue + ) + } + + internal func compare( + plan: DataComparePlan, + source: CompareSyncEndpoint, + sourceConnection: DatabaseConnection, + target: CompareSyncEndpoint, + targetConnection: DatabaseConnection, + options: DataCompareOptions + ) async throws -> DataDiffSummary { + try await withBothSides( + source: source, sourceConnection: sourceConnection, + target: target, targetConnection: targetConnection, + plan: plan, options: options + ) { engine, sourceProvider, targetProvider in + try await engine.compare(source: sourceProvider, target: targetProvider) + } + } + + /// Runs the walk a second time, building statements as entries arrive rather than reading the + /// review pane's capped entry list. Building from that list emitted 5,000 statements for a + /// 12,000 row difference and reported the run as complete. + internal func buildStatements( + plan: DataComparePlan, + source: CompareSyncEndpoint, + sourceConnection: DatabaseConnection, + target: CompareSyncEndpoint, + targetConnection: DatabaseConnection, + options: DataCompareOptions, + excludedKeys: Set + ) async throws -> DataSyncStatements { + let targetType = target.databaseType + let table = plan.table + let schema = plan.schema + let writeColumns = plan.writeColumns + + return try await withBothSides( + source: source, sourceConnection: sourceConnection, + target: target, targetConnection: targetConnection, + plan: plan, options: options + ) { engine, sourceProvider, targetProvider, targetDriver in + let builder = DataSyncScriptBuilder( + targetDriver: targetDriver, targetDatabaseType: targetType, options: options + ) + let collector = SyncStatementCollector() + _ = try await engine.compare(source: sourceProvider, target: targetProvider) { entry in + guard !excludedKeys.contains(entry.keyDescription) else { return } + collector.append(entry, table: table, schema: schema, writeColumns: writeColumns, builder: builder) + } + return collector.statements + } + } + + // MARK: - Plumbing + + private func withBothSides( + source: CompareSyncEndpoint, + sourceConnection: DatabaseConnection, + target: CompareSyncEndpoint, + targetConnection: DatabaseConnection, + plan: DataComparePlan, + options: DataCompareOptions, + _ body: @escaping @Sendable ( + DataDiffEngine, StreamingRowProvider, StreamingRowProvider, any PluginDatabaseDriver + ) async throws -> T + ) async throws -> T { + if let refusal = concurrentReadRefusal(source: source, target: target) { + throw CompareSyncError.unsupportedOperation(refusal) + } + try await manager.ensureConnected(sourceConnection) + try await manager.ensureConnected(targetConnection) + + var scopedOptions = options + scopedOptions.keyColumns = plan.keyColumns + let engine = DataDiffEngine( + options: scopedOptions, + columns: plan.comparisonColumnNames, + keyDescriptors: plan.keyDescriptors + ) + let sourceSchema = source.schema ?? plan.schema + let targetSchema = target.schema ?? plan.schema + let readColumns = plan.readColumns + let keyColumns = plan.keyColumns + let table = plan.table + + return try await manager.withMetadataDriver(scope: source.scope) { sourceDriver in + guard let sourcePlugin = CompareMetadataService.pluginDriver(from: sourceDriver) else { + throw CompareSyncError.unsupportedOperation( + String(localized: "The source driver cannot stream rows for a comparison.") + ) + } + return try await DatabaseManager.shared.withMetadataDriver(scope: target.scope) { targetDriver in + guard let targetPlugin = CompareMetadataService.pluginDriver(from: targetDriver) else { + throw CompareSyncError.unsupportedOperation( + String(localized: "The target driver cannot stream rows for a comparison.") + ) + } + let sourceQuery = KeyOrderedQuery.build( + table: table, schema: sourceSchema, columns: readColumns, + keyColumns: keyColumns, driver: sourcePlugin + ) + let targetQuery = KeyOrderedQuery.build( + table: table, schema: targetSchema, columns: readColumns, + keyColumns: keyColumns, driver: targetPlugin + ) + let sourceProvider = StreamingRowProvider( + stream: sourcePlugin.streamRows(query: sourceQuery), columns: readColumns + ) + let targetProvider = StreamingRowProvider( + stream: targetPlugin.streamRows(query: targetQuery), columns: readColumns + ) + return try await body(engine, sourceProvider, targetProvider, targetPlugin) + } + } + } + + private func withBothSides( + source: CompareSyncEndpoint, + sourceConnection: DatabaseConnection, + target: CompareSyncEndpoint, + targetConnection: DatabaseConnection, + plan: DataComparePlan, + options: DataCompareOptions, + _ body: @escaping @Sendable (DataDiffEngine, StreamingRowProvider, StreamingRowProvider) async throws -> T + ) async throws -> T { + try await withBothSides( + source: source, sourceConnection: sourceConnection, + target: target, targetConnection: targetConnection, + plan: plan, options: options + ) { engine, sourceProvider, targetProvider, _ in + try await body(engine, sourceProvider, targetProvider) + } + } +} + +/// The merge join hands entries out one at a time from inside a `@Sendable` closure, so the +/// accumulation cannot be a captured `var`. A reference box keeps it simple without reaching for +/// an actor the single-threaded walk does not need. +private final class SyncStatementCollector: @unchecked Sendable { + private(set) var statements = DataSyncStatements() + + func append( + _ entry: RowDiffEntry, + table: String, + schema: String?, + writeColumns: [String], + builder: DataSyncScriptBuilder + ) { + builder.append(entry, table: table, schema: schema, writeColumns: writeColumns, into: &statements) + } +} diff --git a/TablePro/Core/Compare/CompareRunner+Data.swift b/TablePro/Core/Compare/CompareRunner+Data.swift new file mode 100644 index 000000000..a62f36a34 --- /dev/null +++ b/TablePro/Core/Compare/CompareRunner+Data.swift @@ -0,0 +1,145 @@ +// +// CompareRunner+Data.swift +// TablePro +// +// The data half: building the per-table plans, running the merge join for each, +// and turning the result into DML. +// +// Statements are ordered across tables, not just within one. A flat +// inserts-then-updates-then-deletes per table, emitted in alphabetical order, +// puts a child row's INSERT before its parent's and the server refuses it. So +// every table's inserts run parent-first, then the updates, then the deletes +// child-first, which is the only ordering that satisfies a foreign key in both +// directions. +// + +import Foundation +import TableProPluginKit + +internal extension CompareRunner { + func runDataCompare(_ context: Context) async throws { + if let refusal = rowService.concurrentReadRefusal(source: context.source, target: context.target) { + throw CompareSyncError.unsupportedOperation(refusal) + } + + var plans = try await buildPlans(context) + if !session.pendingSelection.isEmpty { + for index in plans.indices { + plans[index].isEnabled = session.pendingSelection.contains(plans[index].id) + } + session.pendingSelection = [] + } + + for index in plans.indices where plans[index].isEnabled && plans[index].isComparable { + try Task.checkCancellation() + do { + plans[index].summary = try await rowService.compare( + plan: plans[index], + source: context.source, + sourceConnection: context.sourceConnection, + target: context.target, + targetConnection: context.targetConnection, + options: session.dataOptions + ) + } catch is CancellationError { + throw CancellationError() + } catch { + plans[index].unavailableReason = error.localizedDescription + } + } + + session.dataPlans = plans + session.selectedPlanId = plans.first { $0.isEnabled && $0.isComparable }?.id ?? plans.first?.id + session.detailPane = .rows + session.invalidateScript() + session.lastAction = .compared(Date(), differences: session.dataDifferenceTotal) + } + + func dataStatements(_ context: Context) async throws -> [SyncStatement] { + var byTable: [(plan: DataComparePlan, statements: DataSyncStatements)] = [] + + for plan in session.dataPlans where plan.isEnabled && plan.isComparable { + try Task.checkCancellation() + let statements = try await rowService.buildStatements( + plan: plan, + source: context.source, + sourceConnection: context.sourceConnection, + target: context.target, + targetConnection: context.targetConnection, + options: session.dataOptions, + excludedKeys: plan.excludedRowKeys + ) + guard !statements.isEmpty else { continue } + byTable.append((plan, statements)) + } + guard !byTable.isEmpty else { return [] } + + let foreignKeys = CompareRunner.foreignKeyMap(from: session.sourceSnapshots) + let nodes = byTable.map { ForeignKeyTopologicalSort.Table(name: $0.plan.table, schema: $0.plan.schema) } + let parentFirst = ForeignKeyTopologicalSort + .ordered(nodes, foreignKeysByTable: foreignKeys, childrenFirst: false) + .map { $0.identifier } + let ordered = Dictionary(byTable.map { ($0.plan.id, $0.statements) }, uniquingKeysWith: { first, _ in first }) + + var result: [SyncStatement] = [] + for name in parentFirst { + result += ordered[name]?.inserts ?? [] + } + for name in parentFirst { + result += ordered[name]?.updates ?? [] + } + for name in parentFirst.reversed() { + result += ordered[name]?.deletes ?? [] + } + return result + } + + // MARK: - Plans + + private func buildPlans(_ context: Context) async throws -> [DataComparePlan] { + let sourceReads = try await metadataService.tableReads( + for: context.source, connection: context.sourceConnection, includeViews: false + ) + try Task.checkCancellation() + let targetReads = try await metadataService.tableReads( + for: context.target, connection: context.targetConnection, includeViews: false + ) + try Task.checkCancellation() + + let targetByName = Dictionary( + targetReads.map { ($0.table.name.lowercased(), $0) }, uniquingKeysWith: { first, _ in first } + ) + let previous = Dictionary( + session.dataPlans.map { ($0.id, $0) }, uniquingKeysWith: { first, _ in first } + ) + + var plans: [DataComparePlan] = [] + for read in sourceReads { + guard read.failure == nil else { continue } + guard let counterpart = targetByName[read.table.name.lowercased()], counterpart.failure == nil else { + continue + } + let targetNames = Set(counterpart.columns.map { $0.name.lowercased() }) + let shared = read.columns.filter { targetNames.contains($0.name.lowercased()) } + let schema = read.table.schema ?? context.source.schema + let identifier = schema.map { "\($0).\(read.table.name)" } ?? read.table.name + let carried = previous[identifier] + + var plan = DataComparePlan( + table: read.table.name, + schema: schema, + columns: shared.map { $0.name }, + columnDescriptors: shared.map { + KeyColumnDescriptor(name: $0.name, dataType: $0.dataType, collation: $0.collation) + }, + generatedColumns: Set(shared.filter { $0.isGenerated }.map { $0.name.lowercased() }), + keyColumns: carried?.keyColumns ?? shared.filter { $0.isPrimaryKey }.map { $0.name }, + isEnabled: carried?.isEnabled ?? false, + excludedRowKeys: carried?.excludedRowKeys ?? [] + ) + plan.unavailableReason = DataComparePlan.unavailableReason(for: plan) + plans.append(plan) + } + return plans.sorted { $0.id.localizedStandardCompare($1.id) == .orderedAscending } + } +} diff --git a/TablePro/Core/Compare/CompareRunner.swift b/TablePro/Core/Compare/CompareRunner.swift new file mode 100644 index 000000000..84caf0548 --- /dev/null +++ b/TablePro/Core/Compare/CompareRunner.swift @@ -0,0 +1,377 @@ +// +// CompareRunner.swift +// TablePro +// +// Runs a comparison, builds its script and applies it. +// +// It owns the I/O so the session does not. Every read goes through +// `CompareMetadataService` / `CompareRowService`, which route through +// `DatabaseManager.withMetadataDriver(scope:)`; nothing here reaches +// `DatabaseManager.driver(for:)`, which hands back the connection's live +// interactive driver without the gate that keeps it on one database. +// + +import Foundation +import os +import TableProPluginKit + +@MainActor +internal struct CompareRunner { + nonisolated private static let logger = Logger(subsystem: "com.TablePro", category: "CompareRunner") + + internal let session: CompareSyncSession + internal let metadataService = CompareMetadataService() + internal let rowService = CompareRowService() + + internal init(session: CompareSyncSession) { + self.session = session + } + + // MARK: - Entry points + + internal func compare() { + guard session.canCompare else { return } + session.cancelRunningWork() + session.errorMessage = nil + session.informationalMessage = nil + + session.runTask = Task { [session] in + session.activity = .connecting + defer { session.activity = .idle } + do { + let context = try await resolveContext() + if let refusal = try await capabilityRefusal(context) { + session.errorMessage = refusal + return + } + session.activity = .comparing + switch session.mode { + case .structure: + try await runStructureCompare(context) + case .data: + try await runDataCompare(context) + } + session.informationalMessage = session.crossEngineNotice + } catch is CancellationError { + session.informationalMessage = String(localized: "Comparison cancelled.") + } catch { + session.errorMessage = error.localizedDescription + } + } + } + + internal func buildScript() { + guard session.canBuildScript else { return } + session.cancelRunningWork() + session.errorMessage = nil + + session.runTask = Task { [session] in + session.activity = .comparing + defer { session.activity = .idle } + do { + let context = try await resolveContext() + let built: [SyncStatement] + switch session.mode { + case .structure: + built = try await structureStatements(context) + case .data: + built = try await dataStatements(context) + } + guard !built.isEmpty else { + session.errorMessage = String(localized: "Nothing is selected to apply.") + return + } + session.statements = built + session.detailPane = .script + } catch is CancellationError { + session.informationalMessage = String(localized: "Script generation cancelled.") + } catch { + session.errorMessage = error.localizedDescription + } + } + } + + internal func apply() { + guard session.canApply, let target = session.target else { return } + session.cancelRunningWork() + session.errorMessage = nil + + let runProgress = Progress(totalUnitCount: Int64(session.statements.count)) + session.progress = runProgress + + session.runTask = Task { [session] in + session.activity = .applying + CompareSyncRunRegistry.shared.markApplying(session, target: target.qualifiedDescription) + defer { + session.activity = .idle + session.progress = nil + CompareSyncRunRegistry.shared.clear(session) + } + + do { + let context = try await resolveContext() + session.hasWrittenToTarget = true + let statements = session.statements + let settings = session.executionSettings + let mode = session.mode + let result = try await DatabaseManager.shared.withMetadataDriver(scope: target.scope) { driver in + guard let plugin = CompareMetadataService.pluginDriver(from: driver) else { + throw CompareSyncError.unsupportedOperation( + String(localized: "The target driver cannot run a sync script.") + ) + } + return try await CompareSyncExecutor().apply( + statements: statements, + mode: mode, + settings: settings, + target: target, + driver: plugin, + progress: runProgress + ) + } + _ = context + session.runResult = result + session.lastAction = .applied( + Date(), target: target.qualifiedDescription, statements: result.executedCount + ) + } catch { + session.errorMessage = error.localizedDescription + } + } + } + + // MARK: - Context + + internal struct Context { + internal let source: CompareSyncEndpoint + internal let target: CompareSyncEndpoint + internal let sourceConnection: DatabaseConnection + internal let targetConnection: DatabaseConnection + } + + internal func resolveContext() throws -> Context { + guard let source = session.source, let target = session.target else { + throw CompareSyncError.unsupportedOperation(String(localized: "Choose a source and a target first.")) + } + let connections = ConnectionStorage.shared.loadConnections() + guard let sourceConnection = connections.first(where: { $0.id == source.connectionId }) else { + throw CompareSyncError.unsupportedOperation(missingConnection(source)) + } + guard let targetConnection = connections.first(where: { $0.id == target.connectionId }) else { + throw CompareSyncError.unsupportedOperation(missingConnection(target)) + } + return Context( + source: source, target: target, + sourceConnection: sourceConnection, targetConnection: targetConnection + ) + } + + private func missingConnection(_ endpoint: CompareSyncEndpoint) -> String { + String( + format: String(localized: "%@ is no longer a saved connection."), + endpoint.connectionName + ) + } + + private func capabilityRefusal(_ context: Context) async throws -> String? { + if let refusal = try await metadataService.refusalReason( + for: context.source, connection: context.sourceConnection, mode: session.mode + ) { + return refusal + } + return try await metadataService.refusalReason( + for: context.target, connection: context.targetConnection, mode: session.mode + ) + } + + // MARK: - Structure + + private func runStructureCompare(_ context: Context) async throws { + let wantsViews = session.includedKinds.contains(.view) + || session.includedKinds.contains(.materializedView) + + let sourceReads = try await metadataService.tableReads( + for: context.source, connection: context.sourceConnection, includeViews: wantsViews + ) + try Task.checkCancellation() + let targetReads = try await metadataService.tableReads( + for: context.target, connection: context.targetConnection, includeViews: wantsViews + ) + try Task.checkCancellation() + + let sourceTables = sourceReads.filter { CompareTableKindClassifier.kind(of: $0.table) == .table } + let targetTables = targetReads.filter { CompareTableKindClassifier.kind(of: $0.table) == .table } + + let sourceSnapshots = sourceTables.compactMap { $0.snapshot } + let targetSnapshots = targetTables.compactMap { $0.snapshot } + + let engine = StructureDiffEngine(options: session.structureOptions) + let tableReport = engine.compare(source: sourceSnapshots, target: targetSnapshots) + + session.sourceSnapshots = Dictionary( + sourceSnapshots.map { ($0.qualifiedName, $0) }, uniquingKeysWith: { first, _ in first } + ) + session.targetSnapshots = Dictionary( + targetSnapshots.map { ($0.qualifiedName, $0) }, uniquingKeysWith: { first, _ in first } + ) + + var results = tableReport.results.map { result -> CompareObjectResult in + CompareObjectResult.from( + result, + sourceDefinition: session.sourceSnapshots[result.id].map(TableDefinitionRenderer.lines) ?? [], + targetDefinition: session.targetSnapshots[result.id].map(TableDefinitionRenderer.lines) ?? [] + ) + } + results += unreadableResults(sourceTables, targetTables) + results += try await sourceDefinedResults(context, sourceReads: sourceReads, targetReads: targetReads) + + let report = CompareReport(results: results) + session.report = report + session.actions = [:] + for result in report.comparable where session.pendingSelection.contains(result.id) { + session.actions[result.id] = result.suggestedAction + } + session.pendingSelection = [] + session.invalidateScript() + session.selectedObjectId = session.visibleResults.first?.id + session.lastAction = .compared(Date(), differences: report.differenceCount) + } + + /// A table whose metadata could not be read is listed with its reason rather than aborting the + /// comparison, which is what `CompareObjectResult.comparisonError` is for. Before this, one + /// unreadable table threw and the user saw no results at all. + private func unreadableResults( + _ sourceTables: [TableStructureRead], + _ targetTables: [TableStructureRead] + ) -> [CompareObjectResult] { + var seen: Set = [] + var results: [CompareObjectResult] = [] + for read in sourceTables + targetTables { + guard let failure = read.failure else { continue } + let identity = CompareObjectIdentity(kind: .table, schema: read.table.schema, name: read.table.name) + guard seen.insert(identity.id).inserted else { continue } + results.append(CompareObjectResult( + identity: identity, status: .differs, comparisonError: failure + )) + } + return results + } + + private func sourceDefinedResults( + _ context: Context, + sourceReads: [TableStructureRead], + targetReads: [TableStructureRead] + ) async throws -> [CompareObjectResult] { + var results: [CompareObjectResult] = [] + + if session.includedKinds.contains(.view) || session.includedKinds.contains(.materializedView) { + let sourceViews = sourceReads.map(\.table).filter { CompareTableKindClassifier.kind(of: $0) != .table } + let targetViews = targetReads.map(\.table).filter { CompareTableKindClassifier.kind(of: $0) != .table } + let sourceDefinitions = try await metadataService.viewDefinitions( + for: context.source, connection: context.sourceConnection, views: sourceViews + ) + let targetDefinitions = try await metadataService.viewDefinitions( + for: context.target, connection: context.targetConnection, views: targetViews + ) + results += SourceObjectDiffEngine(options: session.structureOptions) + .compare(source: sourceDefinitions, target: targetDefinitions) + } + + if session.includedKinds.contains(.procedure) || session.includedKinds.contains(.function) { + let sourceRoutines = try await metadataService.routineReads( + for: context.source, connection: context.sourceConnection + ) + let targetRoutines = try await metadataService.routineReads( + for: context.target, connection: context.targetConnection + ) + results += SourceObjectDiffEngine(options: session.structureOptions) + .compare(source: sourceRoutines, target: targetRoutines) + .filter { session.includedKinds.contains($0.identity.kind) } + } + + if session.includedKinds.contains(.trigger) { + let sourceTriggers = try await metadataService.triggerReads( + for: context.source, + connection: context.sourceConnection, + tables: sourceReads.map(\.table.name) + ) + let targetTriggers = try await metadataService.triggerReads( + for: context.target, + connection: context.targetConnection, + tables: targetReads.map(\.table.name) + ) + results += SourceObjectDiffEngine(options: session.structureOptions) + .compare(source: sourceTriggers, target: targetTriggers) + } + + return results + } + + private func structureStatements(_ context: Context) async throws -> [SyncStatement] { + guard let report = session.report else { return [] } + let snapshots = session.sourceSnapshots + let selected = report.comparable.filter { session.action(for: $0) != .skip } + let tableOperations = selected.compactMap { result -> SchemaSyncOperation? in + guard result.identity.kind == .table else { return nil } + switch session.action(for: result) { + case .skip: return nil + case .create: + guard let snapshot = snapshots[result.identity.qualifiedName] else { return nil } + return .createTable(snapshot) + case .drop: + return .dropTable(name: result.identity.name, schema: result.identity.schema) + case .alter: + guard !result.changes.isEmpty else { return nil } + return .alterTable( + name: result.identity.name, schema: result.identity.schema, changes: result.changes + ) + } + } + /// The action is resolved before the closure, because the closure crosses an isolation + /// boundary and the session is main-actor state. + let sourceDefined = selected + .filter { $0.identity.kind != .table } + .map { (result: $0, action: session.action(for: $0)) } + let foreignKeys = Self.foreignKeyMap(from: snapshots) + + return try await DatabaseManager.shared.withMetadataDriver(scope: context.target.scope) { driver in + guard let plugin = CompareMetadataService.pluginDriver(from: driver) else { + throw CompareSyncError.unsupportedOperation( + String(localized: "The target driver cannot generate a sync script.") + ) + } + var statements = try SchemaSyncScriptBuilder(targetDriver: plugin) + .build(operations: tableOperations, foreignKeysByTable: foreignKeys) + let sourceBuilder = SourceObjectSyncBuilder(targetDriver: plugin) + for entry in sourceDefined { + statements += sourceBuilder.build(for: entry.result, action: entry.action) + } + return statements + } + } + + internal static func foreignKeyMap( + from snapshots: [String: TableStructureSnapshot] + ) -> [String: [PluginForeignKeyInfo]] { + var map: [String: [PluginForeignKeyInfo]] = [:] + for snapshot in snapshots.values { + let dependencies = snapshot.foreignKeys.compactMap { foreignKey -> PluginForeignKeyInfo? in + guard let column = foreignKey.columns.first, + let referencedColumn = foreignKey.referencedColumns.first else { return nil } + let referencedSchema = foreignKey.referencedSchema ?? snapshot.schema + /// The sort qualifies `referencedTable` with `referencedSchema` itself, so + /// pre-qualifying here produced `public.public.orders` and dropped every edge. + return PluginForeignKeyInfo( + name: foreignKey.name, + column: column, + referencedTable: foreignKey.referencedTable, + referencedColumn: referencedColumn, + referencedSchema: referencedSchema + ) + } + guard !dependencies.isEmpty else { continue } + map[snapshot.qualifiedName] = dependencies + } + return map + } +} diff --git a/TablePro/Core/Compare/CompareSQLLiteral.swift b/TablePro/Core/Compare/CompareSQLLiteral.swift new file mode 100644 index 000000000..b07e9d911 --- /dev/null +++ b/TablePro/Core/Compare/CompareSQLLiteral.swift @@ -0,0 +1,71 @@ +// +// CompareSQLLiteral.swift +// TablePro +// +// How a compared value is written back as a literal. +// +// The PluginKit default renders binary as `X'89504E47'`, which is a bit-string +// literal. MySQL, MariaDB, SQLite and ClickHouse accept it; PostgreSQL rejects +// it with "column is of type bytea but expression is of type bit", SQL Server +// wants `0x...` and Oracle wants `HEXTORAW`. No shipped driver overrides +// `sqlLiteral(for:)`, so the spelling is decided here, per engine, rather than +// by adding a requirement every plugin would have to be re-released to answer. +// + +import Foundation +import TableProPluginKit + +internal enum CompareSQLLiteral { + internal static func literal( + for value: PluginCellValue, + databaseType: DatabaseType, + driver: any PluginDatabaseDriver + ) -> String { + guard case .bytes(let data) = value else { + return driver.sqlLiteral(for: value) + } + return binaryLiteral(for: data, databaseType: databaseType) + ?? driver.sqlLiteral(for: value) + } + + internal static func binaryLiteral(for data: Data, databaseType: DatabaseType) -> String? { + let hex = data.map { String(format: "%02X", $0) }.joined() + switch binaryStyle(for: databaseType) { + case .bitString: + return "X'\(hex)'" + case .postgresBytea: + return "'\\x\(hex.lowercased())'::bytea" + case .zeroX: + return "0x\(hex)" + case .hexToRaw: + return "HEXTORAW('\(hex)')" + case .unknown: + return nil + } + } + + internal enum BinaryStyle { + case bitString + case postgresBytea + case zeroX + case hexToRaw + case unknown + } + + /// Curated per type, the same shape `CompareSyncEngineFamily` uses. A type this does not + /// name falls back to the driver's own spelling rather than guessing at one. + internal static func binaryStyle(for databaseType: DatabaseType) -> BinaryStyle { + switch databaseType { + case .mysql, .mariadb, .sqlite, .clickhouse, .duckdb, .libsql, .turso, .cloudflareD1: + return .bitString + case .postgresql, .cockroachdb, .redshift, .pglite: + return .postgresBytea + case .mssql: + return .zeroX + case .oracle: + return .hexToRaw + default: + return .unknown + } + } +} diff --git a/TablePro/Core/Compare/CompareSyncEndpoint.swift b/TablePro/Core/Compare/CompareSyncEndpoint.swift index 75dfb3c2a..6f96d06ad 100644 --- a/TablePro/Core/Compare/CompareSyncEndpoint.swift +++ b/TablePro/Core/Compare/CompareSyncEndpoint.swift @@ -4,23 +4,44 @@ // // One side of a comparison. The source never changes; the target is written to. // +// An endpoint is a `DatabaseScope`, not a connection id. A connection reaches +// many databases, so identifying a side by connection alone made two databases +// on one server impossible to compare and left the schema unset, which is how +// the reads went out unqualified while the writes went out qualified. +// import Foundation import TableProPluginKit -internal struct CompareSyncEndpoint: Hashable, Identifiable { - internal let connectionId: UUID - internal let displayName: String +internal struct CompareSyncEndpoint: Hashable, Identifiable, Sendable { + internal let scope: DatabaseScope + internal let connectionName: String internal let databaseType: DatabaseType - internal let database: String? - internal let schema: String? internal let safeModeLevel: SafeModeLevel internal let color: ConnectionColor + internal init( + scope: DatabaseScope, + connectionName: String, + databaseType: DatabaseType, + safeModeLevel: SafeModeLevel, + color: ConnectionColor + ) { + self.scope = scope + self.connectionName = connectionName + self.databaseType = databaseType + self.safeModeLevel = safeModeLevel + self.color = color + } + internal var id: String { - "\(connectionId.uuidString)-\(database ?? "")-\(schema ?? "")" + "\(scope.connectionId.uuidString)|\(scope.database)|\(scope.schema ?? "")" } + internal var connectionId: UUID { scope.connectionId } + internal var database: String { scope.database } + internal var schema: String? { scope.schema } + internal var canBeWrittenTo: Bool { safeModeLevel != .readOnly } @@ -31,26 +52,56 @@ internal struct CompareSyncEndpoint: Hashable, Identifiable { } internal var qualifiedDescription: String { - var parts = [displayName] - if let database, !database.isEmpty { parts.append(database) } - if let schema, !schema.isEmpty { parts.append(schema) } + var parts = [connectionName] + if !scope.database.isEmpty { parts.append(scope.database) } + if let schema = scope.schema, !schema.isEmpty { parts.append(schema) } return parts.joined(separator: " / ") } + + /// The name shown once the connection is already named elsewhere, so a picker does not repeat it. + internal var scopeDescription: String { + guard !scope.database.isEmpty else { return String(localized: "Server") } + return scope.qualifiedDescription + } + + internal func withDatabase(_ database: String) -> CompareSyncEndpoint { + CompareSyncEndpoint( + scope: DatabaseScope(connectionId: scope.connectionId, database: database, schema: nil), + connectionName: connectionName, + databaseType: databaseType, + safeModeLevel: safeModeLevel, + color: color + ) + } + + internal func withSchema(_ schema: String?) -> CompareSyncEndpoint { + CompareSyncEndpoint( + scope: DatabaseScope(connectionId: scope.connectionId, database: scope.database, schema: schema), + connectionName: connectionName, + databaseType: databaseType, + safeModeLevel: safeModeLevel, + color: color + ) + } } internal extension CompareSyncEndpoint { - static func candidates(from connections: [DatabaseConnection]) -> [CompareSyncEndpoint] { - connections.map { connection in - CompareSyncEndpoint( + static func from(connection: DatabaseConnection, database: String? = nil, schema: String? = nil) -> CompareSyncEndpoint { + CompareSyncEndpoint( + scope: DatabaseScope( connectionId: connection.id, - displayName: connection.name, - databaseType: connection.type, - database: connection.database, - schema: nil, - safeModeLevel: connection.safeModeLevel, - color: connection.color - ) - } + database: database ?? connection.database ?? "", + schema: schema + ), + connectionName: connection.name, + databaseType: connection.type, + safeModeLevel: connection.safeModeLevel, + color: connection.color + ) + } + + static func candidates(from connections: [DatabaseConnection]) -> [CompareSyncEndpoint] { + connections.map { from(connection: $0) } } } diff --git a/TablePro/Core/Compare/CompareSyncExecutor.swift b/TablePro/Core/Compare/CompareSyncExecutor.swift index e6a91daf7..650490fe1 100644 --- a/TablePro/Core/Compare/CompareSyncExecutor.swift +++ b/TablePro/Core/Compare/CompareSyncExecutor.swift @@ -35,8 +35,14 @@ internal struct CompareSyncExecutionSettings { return allowedHazardStatementIds.contains(statement.id) } - internal func usesTransaction(supportsTransactions: Bool) -> Bool { - wrapInTransaction && supportsTransactions && errorHandling != .skipAndContinue + /// A structure sync asks a different question from a data sync. Every engine here supports a + /// transaction over DML, but MySQL, MariaDB and Oracle commit implicitly on every DDL + /// statement, so wrapping a structure script in one produces a ROLLBACK that undoes nothing + /// while the run reports "The target is unchanged." `supportsTransactionalDDL` is the flag + /// that distinguishes them, and the driver already publishes it. + internal func usesTransaction(for mode: CompareSyncMode, driver: any PluginDatabaseDriver) -> Bool { + let supported = mode == .structure ? driver.supportsTransactionalDDL : driver.supportsTransactions + return wrapInTransaction && supported && errorHandling != .skipAndContinue } } @@ -106,7 +112,7 @@ internal actor CompareSyncExecutor { capabilities: [.mayWrite, .mayRunDestructive, .mayRunMultiStatement, .confirmationPreCleared], operationDescription: String( format: String(localized: "Apply %@ sync to %@"), - mode.displayName, target.displayName + mode.displayName, target.qualifiedDescription ) ) @@ -124,6 +130,7 @@ internal actor CompareSyncExecutor { try await self.run( runnable: runnable, heldBack: heldBack, + mode: mode, settings: settings, driver: driver, progress: progress @@ -134,11 +141,12 @@ internal actor CompareSyncExecutor { private func run( runnable: [SyncStatement], heldBack: [SyncStatement], + mode: CompareSyncMode, settings: CompareSyncExecutionSettings, driver: any PluginDatabaseDriver, progress: Progress ) async throws -> CompareSyncRunResult { - let usesTransaction = settings.usesTransaction(supportsTransactions: driver.supportsTransactions) + let usesTransaction = settings.usesTransaction(for: mode, driver: driver) if usesTransaction { try await driver.beginTransaction() } diff --git a/TablePro/Core/Compare/CompareSyncProfileStorage.swift b/TablePro/Core/Compare/CompareSyncProfileStorage.swift index 802bed1b5..bd8b72580 100644 --- a/TablePro/Core/Compare/CompareSyncProfileStorage.swift +++ b/TablePro/Core/Compare/CompareSyncProfileStorage.swift @@ -2,7 +2,13 @@ // CompareSyncProfileStorage.swift // TablePro // -// Named comparison setups, keyed by source, target, and mode. +// Named comparison setups, keyed by source scope, target scope, and mode. +// +// The key used to be the pair of connection ids alone, which cannot tell two +// databases on one server apart. A profile saved under the old key is read back +// and adopted onto whatever database each connection currently points at, which +// is the same place it was saved from, so nothing is silently retargeted and +// nothing is thrown away. // import Foundation @@ -11,19 +17,75 @@ import os internal struct CompareSyncProfile: Codable, Hashable, Identifiable { internal var id = UUID() internal var name: String - internal var sourceConnectionId: UUID - internal var targetConnectionId: UUID + internal var source: DatabaseScope + internal var target: DatabaseScope internal var mode: CompareSyncMode + internal var includedKinds: Set internal var structureOptions: StructureCompareOptions internal var dataOptions: DataCompareOptions - internal var selectedTables: [String] + internal var selectedObjects: [String] + + internal init( + id: UUID = UUID(), + name: String, + source: DatabaseScope, + target: DatabaseScope, + mode: CompareSyncMode, + includedKinds: Set = [.table], + structureOptions: StructureCompareOptions, + dataOptions: DataCompareOptions, + selectedObjects: [String] + ) { + self.id = id + self.name = name + self.source = source + self.target = target + self.mode = mode + self.includedKinds = includedKinds + self.structureOptions = structureOptions + self.dataOptions = dataOptions + self.selectedObjects = selectedObjects + } + + internal static func storageKey(source: DatabaseScope, target: DatabaseScope, mode: CompareSyncMode) -> String { + "\(key(for: source))|\(key(for: target))|\(mode.rawValue)" + } internal var storageKey: String { - "\(sourceConnectionId.uuidString)|\(targetConnectionId.uuidString)|\(mode.rawValue)" + Self.storageKey(source: source, target: target, mode: mode) + } + + private static func key(for scope: DatabaseScope) -> String { + "\(scope.connectionId.uuidString)/\(scope.database)/\(scope.schema ?? "")" } } -internal final class CompareSyncProfileStorage: @unchecked Sendable { +extension DatabaseScope: Codable { + private enum CodingKeys: String, CodingKey { + case connectionId + case database + case schema + } + + public init(from decoder: Decoder) throws { + let container = try decoder.container(keyedBy: CodingKeys.self) + self.init( + connectionId: try container.decode(UUID.self, forKey: .connectionId), + database: try container.decodeIfPresent(String.self, forKey: .database) ?? "", + schema: try container.decodeIfPresent(String.self, forKey: .schema) + ) + } + + public func encode(to encoder: Encoder) throws { + var container = encoder.container(keyedBy: CodingKeys.self) + try container.encode(connectionId, forKey: .connectionId) + try container.encode(database, forKey: .database) + try container.encodeIfPresent(schema, forKey: .schema) + } +} + +@MainActor +internal final class CompareSyncProfileStorage { internal static let shared = CompareSyncProfileStorage() private static let logger = Logger(subsystem: "com.TablePro", category: "CompareSyncProfileStorage") @@ -41,12 +103,12 @@ internal final class CompareSyncProfileStorage: @unchecked Sendable { return try JSONDecoder().decode([CompareSyncProfile].self, from: data) } catch { Self.logger.error("Failed to decode profiles: \(error.localizedDescription, privacy: .public)") - return [] + return migrateLegacyProfiles(from: data) } } - internal func profiles(source: UUID, target: UUID, mode: CompareSyncMode) -> [CompareSyncProfile] { - let key = "\(source.uuidString)|\(target.uuidString)|\(mode.rawValue)" + internal func profiles(source: DatabaseScope, target: DatabaseScope, mode: CompareSyncMode) -> [CompareSyncProfile] { + let key = CompareSyncProfile.storageKey(source: source, target: target, mode: mode) return allProfiles().filter { $0.storageKey == key } } @@ -68,7 +130,53 @@ internal final class CompareSyncProfileStorage: @unchecked Sendable { do { defaults.set(try JSONEncoder().encode(profiles), forKey: Self.defaultsKey) } catch { - Self.logger.error("Failed to encode profiles: \(error.localizedDescription, privacy: .public)") + Self.logger.error("Failed to persist profiles: \(error.localizedDescription, privacy: .public)") } } + + /// A profile written before an endpoint carried a database is adopted onto whichever database + /// its connections currently point at, which is where it was saved from. Discarding them + /// instead would lose setups the user had already named. + private func migrateLegacyProfiles(from data: Data) -> [CompareSyncProfile] { + guard let legacy = try? JSONDecoder().decode([LegacyProfile].self, from: data) else { return [] } + let connections = ConnectionStorage.shared.loadConnections() + let databaseByConnection = Dictionary( + connections.map { ($0.id, $0.database ?? "") }, uniquingKeysWith: { first, _ in first } + ) + let migrated = legacy.map { entry in + CompareSyncProfile( + id: entry.id, + name: entry.name, + source: DatabaseScope( + connectionId: entry.sourceConnectionId, + database: databaseByConnection[entry.sourceConnectionId] ?? "", + schema: nil + ), + target: DatabaseScope( + connectionId: entry.targetConnectionId, + database: databaseByConnection[entry.targetConnectionId] ?? "", + schema: nil + ), + mode: entry.mode, + includedKinds: [.table], + structureOptions: entry.structureOptions, + dataOptions: entry.dataOptions, + selectedObjects: entry.selectedTables + ) + } + persist(migrated) + Self.logger.notice("Migrated \(migrated.count, privacy: .public) saved comparisons onto database scopes") + return migrated + } + + private struct LegacyProfile: Codable { + let id: UUID + let name: String + let sourceConnectionId: UUID + let targetConnectionId: UUID + let mode: CompareSyncMode + let structureOptions: StructureCompareOptions + let dataOptions: DataCompareOptions + let selectedTables: [String] + } } diff --git a/TablePro/Core/Compare/CompareSyncSession+Data.swift b/TablePro/Core/Compare/CompareSyncSession+Data.swift deleted file mode 100644 index ba26c7b8d..000000000 --- a/TablePro/Core/Compare/CompareSyncSession+Data.swift +++ /dev/null @@ -1,247 +0,0 @@ -// -// CompareSyncSession+Data.swift -// TablePro -// -// Data comparison. Rows are read in key order from both sides and walked in -// lockstep. A table with no usable key is listed as not comparable rather than -// matched on a guess. -// - -import Foundation -import TableProPluginKit - -internal struct DataComparePlan: Identifiable, Hashable { - internal let table: String - internal let schema: String? - internal var columns: [String] - internal var columnTypes: [String: String] = [:] - internal var keyColumns: [String] - internal var isEnabled: Bool - internal var unavailableReason: String? - internal var summary: DataDiffSummary? - - internal var id: String { - guard let schema, !schema.isEmpty else { return table } - return "\(schema).\(table)" - } - - internal var isComparable: Bool { - unavailableReason == nil - } - - internal static func == (lhs: DataComparePlan, rhs: DataComparePlan) -> Bool { - lhs.id == rhs.id && lhs.keyColumns == rhs.keyColumns && lhs.isEnabled == rhs.isEnabled - } - - internal func hash(into hasher: inout Hasher) { - hasher.combine(id) - } -} - -internal extension CompareSyncSession { - func compareData() { - guard canCompare, let source, let target else { return } - cancelRunningWork() - errorMessage = nil - informationalMessage = nil - - runTask = Task { [weak self] in - guard let self else { return } - self.activity = .connecting - defer { self.activity = .idle } - - do { - let sourceDriver = try Self.dataDriver(for: source) - let targetDriver = try Self.dataDriver(for: target) - - if let refusal = CompareSyncEligibility.refusalReason( - for: sourceDriver, mode: .data, endpointName: source.displayName - ) ?? CompareSyncEligibility.refusalReason( - for: targetDriver, mode: .data, endpointName: target.displayName - ) { - self.errorMessage = refusal - return - } - - self.activity = .comparing - let pending = self.pendingSelectedTables - var plans = try await Self.buildPlans( - sourceDriver: sourceDriver, - targetDriver: targetDriver, - sourceSchema: source.schema, - targetSchema: target.schema, - existing: self.dataPlans - ) - - if !pending.isEmpty { - for index in plans.indices { - plans[index].isEnabled = pending.contains(plans[index].id) - } - self.pendingSelectedTables = [] - } - - for index in plans.indices where plans[index].isEnabled && plans[index].isComparable { - try Task.checkCancellation() - plans[index].summary = try await self.runDataDiff( - plan: plans[index], - sourceDriver: sourceDriver, - targetDriver: targetDriver, - sourceSchema: source.schema, - targetSchema: target.schema - ) - } - - self.dataPlans = plans - let differences = plans.compactMap { $0.summary?.differenceCount }.reduce(0, +) - self.lastAction = .compared(Date(), differences: differences) - self.informationalMessage = self.crossEngineNotice - self.step = .review - } catch is CancellationError { - self.informationalMessage = String(localized: "Comparison cancelled.") - } catch { - self.errorMessage = error.localizedDescription - } - } - } - - func generateDataScript() { - guard let target else { return } - errorMessage = nil - - runTask = Task { [weak self] in - guard let self else { return } - do { - let targetDriver = try Self.dataDriver(for: target) - var built: [SyncStatement] = [] - for plan in self.dataPlans where plan.isEnabled && plan.isComparable { - guard let summary = plan.summary else { continue } - var options = self.dataOptions - options.keyColumns = plan.keyColumns - let builder = DataSyncScriptBuilder(targetDriver: targetDriver, options: options) - built.append(contentsOf: builder.build( - table: plan.table, - schema: plan.schema, - writeColumns: plan.columns, - entries: summary.entries - )) - } - guard !built.isEmpty else { - self.errorMessage = String(localized: "Nothing is selected to apply.") - return - } - self.statements = built - self.editedScript = built.map { $0.sql }.joined(separator: "\n") - self.step = .script - } catch { - self.errorMessage = error.localizedDescription - } - } - } - - var dataDifferenceTotal: Int { - dataPlans.compactMap { $0.summary?.differenceCount }.reduce(0, +) - } - - var truncatedPlanNames: [String] { - dataPlans.filter { $0.summary?.truncatedEntries == true }.map { $0.id } - } - - // MARK: - Helpers - - private func runDataDiff( - plan: DataComparePlan, - sourceDriver: any PluginDatabaseDriver, - targetDriver: any PluginDatabaseDriver, - sourceSchema: String?, - targetSchema: String? - ) async throws -> DataDiffSummary { - var options = dataOptions - options.keyColumns = plan.keyColumns - - let sourceQuery = KeyOrderedQuery.build( - table: plan.table, schema: sourceSchema, columns: plan.columns, - keyColumns: plan.keyColumns, driver: sourceDriver - ) - let targetQuery = KeyOrderedQuery.build( - table: plan.table, schema: targetSchema, columns: plan.columns, - keyColumns: plan.keyColumns, driver: targetDriver - ) - - let engine = DataDiffEngine(options: options, columns: plan.columns, columnTypes: plan.columnTypes) - return try await engine.compare( - source: StreamingRowProvider(stream: sourceDriver.streamRows(query: sourceQuery), columns: plan.columns), - target: StreamingRowProvider(stream: targetDriver.streamRows(query: targetQuery), columns: plan.columns) - ) - } - - private static func dataDriver(for endpoint: CompareSyncEndpoint) throws -> any PluginDatabaseDriver { - guard let adapter = DatabaseManager.shared.driver(for: endpoint.connectionId) as? PluginDriverAdapter else { - throw CompareSyncError.unsupportedOperation(String( - format: String(localized: "Connect to %@ before comparing."), - endpoint.displayName - )) - } - return adapter.schemaPluginDriver - } - - private static func buildPlans( - sourceDriver: any PluginDatabaseDriver, - targetDriver: any PluginDatabaseDriver, - sourceSchema: String?, - targetSchema: String?, - existing: [DataComparePlan] - ) async throws -> [DataComparePlan] { - let sourceTables = try await sourceDriver.fetchTables(schema: sourceSchema) - let targetNames = Set(try await targetDriver.fetchTables(schema: targetSchema).map { $0.name.lowercased() }) - let previous = Dictionary(existing.map { ($0.id, $0) }, uniquingKeysWith: { first, _ in first }) - - var plans: [DataComparePlan] = [] - for table in sourceTables where targetNames.contains(table.name.lowercased()) { - try Task.checkCancellation() - let sourceColumns = try await sourceDriver.fetchColumns(table: table.name, schema: table.schema ?? sourceSchema) - let targetColumns = try await targetDriver.fetchColumns(table: table.name, schema: table.schema ?? targetSchema) - let targetNameSet = Set(targetColumns.map { $0.name.lowercased() }) - let shared = sourceColumns.filter { targetNameSet.contains($0.name.lowercased()) }.map { $0.name } - - let primaryKey = sourceColumns.filter { $0.isPrimaryKey }.map { $0.name } - let identifier = table.schema.map { "\($0).\(table.name)" } ?? table.name - let carried = previous[identifier] - let columnTypes = Dictionary( - sourceColumns.map { ($0.name, $0.dataType) }, - uniquingKeysWith: { first, _ in first } - ) - - var plan = DataComparePlan( - table: table.name, - schema: table.schema ?? sourceSchema, - columns: shared, - columnTypes: columnTypes, - keyColumns: carried.map { $0.keyColumns } ?? primaryKey, - isEnabled: carried?.isEnabled ?? true, - unavailableReason: nil, - summary: nil - ) - plan.unavailableReason = Self.unavailableReason(for: plan) - plans.append(plan) - } - return plans.sorted { $0.id.localizedStandardCompare($1.id) == .orderedAscending } - } - - static func unavailableReason(for plan: DataComparePlan) -> String? { - if plan.columns.isEmpty { - return String(localized: "No columns in common.") - } - if plan.keyColumns.isEmpty { - return String(localized: "No primary key. Choose key columns to compare this table.") - } - let available = Set(plan.columns.map { $0.lowercased() }) - let missing = plan.keyColumns.filter { !available.contains($0.lowercased()) } - guard missing.isEmpty else { - return String( - format: String(localized: "Key column %@ is not present on both sides. Choose a different key."), - missing.joined(separator: ", ") - ) - } - return nil - } -} diff --git a/TablePro/Core/Compare/CompareSyncSession+Editing.swift b/TablePro/Core/Compare/CompareSyncSession+Editing.swift index 1b8ae8e62..7a0c258bf 100644 --- a/TablePro/Core/Compare/CompareSyncSession+Editing.swift +++ b/TablePro/Core/Compare/CompareSyncSession+Editing.swift @@ -2,8 +2,12 @@ // CompareSyncSession+Editing.swift // TablePro // -// Editing the comparison setup after a first run: key columns, which columns -// take part in the comparison, and saved profiles. +// Editing a comparison after a first run: which columns identify a row, which +// columns take part, which rows are excluded, and the saved setups. +// +// Every edit here clears the affected result rather than adjusting it. A key +// change means a different join, so the previous answer is not a stale version +// of the new one, it is an answer to a different question. // import Foundation @@ -15,8 +19,9 @@ internal extension CompareSyncSession { guard let index = dataPlans.firstIndex(where: { $0.id == planId }) else { return } dataPlans[index].keyColumns = columns dataPlans[index].summary = nil - dataPlans[index].unavailableReason = CompareSyncSession.unavailableReason(for: dataPlans[index]) - invalidateGeneratedScript() + dataPlans[index].excludedRowKeys = [] + dataPlans[index].unavailableReason = DataComparePlan.unavailableReason(for: dataPlans[index]) + invalidateScript() } func toggleKeyColumn(_ column: String, for planId: String) { @@ -30,8 +35,17 @@ internal extension CompareSyncSession { setKeyColumns(columns, for: planId) } - func isKeyColumn(_ column: String, in plan: DataComparePlan) -> Bool { - plan.keyColumns.contains { $0.caseInsensitiveCompare(column) == .orderedSame } + func setPlanEnabled(_ enabled: Bool, for planId: String) { + guard let index = dataPlans.firstIndex(where: { $0.id == planId }) else { return } + dataPlans[index].isEnabled = enabled + invalidateScript() + } + + func setAllPlansEnabled(_ enabled: Bool) { + for index in dataPlans.indices where dataPlans[index].isComparable { + dataPlans[index].isEnabled = enabled + } + invalidateScript() } // MARK: - Comparison columns @@ -53,8 +67,28 @@ internal extension CompareSyncSession { func clearDataSummaries() { for index in dataPlans.indices { dataPlans[index].summary = nil + dataPlans[index].excludedRowKeys = [] + } + invalidateScript() + } + + // MARK: - Row inclusion + + /// Row-level exclusion can only name a row the review pane actually showed. Past the retention + /// cap the script is built from a fresh streamed pass, so an unseen row is included by + /// definition; the pane says as much rather than implying the list is the whole difference. + func isRowIncluded(_ entry: RowDiffEntry, in plan: DataComparePlan) -> Bool { + !plan.excludedRowKeys.contains(entry.keyDescription) + } + + func setRowIncluded(_ included: Bool, entry: RowDiffEntry, planId: String) { + guard let index = dataPlans.firstIndex(where: { $0.id == planId }) else { return } + if included { + dataPlans[index].excludedRowKeys.remove(entry.keyDescription) + } else { + dataPlans[index].excludedRowKeys.insert(entry.keyDescription) } - invalidateGeneratedScript() + invalidateScript() } var needsRecompare: Bool { @@ -62,50 +96,45 @@ internal extension CompareSyncSession { return dataPlans.contains { $0.isEnabled && $0.isComparable && $0.summary == nil } } - private func invalidateGeneratedScript() { - statements = [] - editedScript = nil - } - - // MARK: - Profiles + // MARK: - Saved comparisons var savedProfiles: [CompareSyncProfile] { guard let source, let target else { return [] } - return CompareSyncProfileStorage.shared.profiles( - source: source.connectionId, target: target.connectionId, mode: mode - ) + return CompareSyncProfileStorage.shared.profiles(source: source.scope, target: target.scope, mode: mode) } func saveProfile(named name: String) { guard let source, let target, !name.trimmingCharacters(in: .whitespaces).isEmpty else { return } let profile = CompareSyncProfile( name: name, - sourceConnectionId: source.connectionId, - targetConnectionId: target.connectionId, + source: source.scope, + target: target.scope, mode: mode, + includedKinds: includedKinds, structureOptions: structureOptions, dataOptions: dataOptions, - selectedTables: selectedTableIdentifiers + selectedObjects: selectedObjectIdentifiers ) CompareSyncProfileStorage.shared.save(profile) } func apply(_ profile: CompareSyncProfile) { mode = profile.mode + includedKinds = profile.includedKinds.isEmpty ? [.table] : profile.includedKinds structureOptions = profile.structureOptions dataOptions = profile.dataOptions resetComparison() - pendingSelectedTables = Set(profile.selectedTables) + pendingSelection = Set(profile.selectedObjects) } func deleteProfile(_ profile: CompareSyncProfile) { CompareSyncProfileStorage.shared.delete(profile) } - private var selectedTableIdentifiers: [String] { + private var selectedObjectIdentifiers: [String] { switch mode { case .structure: - return tableActions.filter { $0.value != .skip }.map { $0.key }.sorted() + return actions.filter { $0.value != .skip }.map { $0.key }.sorted() case .data: return dataPlans.filter { $0.isEnabled }.map { $0.id }.sorted() } diff --git a/TablePro/Core/Compare/CompareSyncSession+Run.swift b/TablePro/Core/Compare/CompareSyncSession+Run.swift deleted file mode 100644 index 9c0cb4bfa..000000000 --- a/TablePro/Core/Compare/CompareSyncSession+Run.swift +++ /dev/null @@ -1,225 +0,0 @@ -// -// CompareSyncSession+Run.swift -// TablePro -// -// Connecting, comparing, script generation, and applying. -// - -import Foundation -import TableProPluginKit - -internal extension CompareSyncSession { - func compare() { - guard canCompare, let source, let target else { return } - cancelRunningWork() - errorMessage = nil - informationalMessage = nil - - runTask = Task { [weak self] in - guard let self else { return } - self.activity = .connecting - defer { self.activity = .idle } - - do { - let sourceDriver = try Self.driver(for: source) - let targetDriver = try Self.driver(for: target) - - if let refusal = CompareSyncEligibility.refusalReason( - for: sourceDriver, mode: self.mode, endpointName: source.displayName - ) ?? CompareSyncEligibility.refusalReason( - for: targetDriver, mode: self.mode, endpointName: target.displayName - ) { - self.errorMessage = refusal - return - } - - self.activity = .comparing - let sourceSnapshots = try await Self.snapshots(from: sourceDriver, schema: source.schema) - let targetSnapshots = try await Self.snapshots(from: targetDriver, schema: target.schema) - try Task.checkCancellation() - - let engine = StructureDiffEngine(options: self.structureOptions) - let report = engine.compare(source: sourceSnapshots, target: targetSnapshots) - - self.structureReport = report - self.sourceSnapshotCache = Dictionary( - sourceSnapshots.map { ($0.qualifiedName, $0) }, - uniquingKeysWith: { first, _ in first } - ) - self.targetSnapshotCache = Dictionary( - targetSnapshots.map { ($0.qualifiedName, $0) }, - uniquingKeysWith: { first, _ in first } - ) - self.tableActions = [:] - for result in report.comparable where self.pendingSelectedTables.contains(result.id) { - self.tableActions[result.id] = result.suggestedAction - } - self.pendingSelectedTables = [] - self.statements = [] - self.editedScript = nil - self.lastAction = .compared(Date(), differences: report.comparable.filter { $0.status != .identical }.count) - self.informationalMessage = self.crossEngineNotice - self.step = .review - } catch is CancellationError { - self.informationalMessage = String(localized: "Comparison cancelled.") - } catch { - self.errorMessage = error.localizedDescription - } - } - } - - func generateScript() { - guard let target, let report = structureReport else { return } - guard canGenerateStructureScript else { - errorMessage = crossEngineNotice - return - } - errorMessage = nil - - runTask = Task { [weak self] in - guard let self else { return } - do { - let targetDriver = try Self.driver(for: target) - let operations = self.operations(from: report) - guard !operations.isEmpty else { - self.errorMessage = String(localized: "Nothing is selected to apply.") - return - } - let foreignKeys = Self.foreignKeyMap(from: self.sourceSnapshotCache) - let builder = SchemaSyncScriptBuilder(targetDriver: targetDriver) - self.statements = try builder.build(operations: operations, foreignKeysByTable: foreignKeys) - self.editedScript = self.statements.map { $0.sql }.joined(separator: "\n") - self.step = .script - } catch { - self.errorMessage = error.localizedDescription - } - } - } - - func apply() { - guard let target, !statements.isEmpty else { return } - cancelRunningWork() - errorMessage = nil - - let runProgress = Progress(totalUnitCount: Int64(statements.count)) - progress = runProgress - - runTask = Task { [weak self] in - guard let self else { return } - self.activity = .applying - CompareSyncRunRegistry.shared.markApplying(self, target: target.qualifiedDescription) - defer { - self.activity = .idle - self.progress = nil - CompareSyncRunRegistry.shared.clear(self) - } - - do { - let targetDriver = try Self.driver(for: target) - self.hasWrittenToTarget = true - let result = try await self.executorRun( - statements: self.statements, - target: target, - driver: targetDriver, - progress: runProgress - ) - self.runResult = result - self.lastAction = .applied( - Date(), target: target.qualifiedDescription, statements: result.executedCount - ) - self.step = .apply - } catch { - self.errorMessage = error.localizedDescription - self.step = .apply - } - } - } - - // MARK: - Comparison - - private func operations(from report: StructureDiffReport) -> [SchemaSyncOperation] { - report.comparable.compactMap { result in - switch action(for: result) { - case .skip: - return nil - case .create: - guard let snapshot = sourceSnapshotCache[result.id] else { return nil } - return .createTable(snapshot) - case .drop: - return .dropTable(name: result.tableName, schema: result.schema) - case .alter: - guard !result.changes.isEmpty else { return nil } - return .alterTable(name: result.tableName, schema: result.schema, changes: result.changes) - } - } - } - - private func executorRun( - statements: [SyncStatement], - target: CompareSyncEndpoint, - driver: any PluginDatabaseDriver, - progress: Progress - ) async throws -> CompareSyncRunResult { - try await CompareSyncExecutor().apply( - statements: statements, - mode: mode, - settings: executionSettings, - target: target, - driver: driver, - progress: progress - ) - } - - // MARK: - Helpers - - private static func driver(for endpoint: CompareSyncEndpoint) throws -> any PluginDatabaseDriver { - guard let adapter = DatabaseManager.shared.driver(for: endpoint.connectionId) as? PluginDriverAdapter else { - throw CompareSyncError.unsupportedOperation(String( - format: String(localized: "Connect to %@ before comparing."), - endpoint.displayName - )) - } - return adapter.schemaPluginDriver - } - - private static func snapshots( - from driver: any PluginDatabaseDriver, - schema: String? - ) async throws -> [TableStructureSnapshot] { - let tables = try await driver.fetchTables(schema: schema) - var result: [TableStructureSnapshot] = [] - for table in tables { - try Task.checkCancellation() - let columns = try await driver.fetchColumns(table: table.name, schema: table.schema ?? schema) - let indexes = try await driver.fetchIndexes(table: table.name, schema: table.schema ?? schema) - let foreignKeys = try await driver.fetchForeignKeys(table: table.name, schema: table.schema ?? schema) - result.append(TableStructureSnapshot.from( - table: table, columns: columns, indexes: indexes, foreignKeys: foreignKeys - )) - } - return result - } - - private static func foreignKeyMap( - from snapshots: [String: TableStructureSnapshot] - ) -> [String: [PluginForeignKeyInfo]] { - var map: [String: [PluginForeignKeyInfo]] = [:] - for snapshot in snapshots.values { - let dependencies = snapshot.foreignKeys.compactMap { foreignKey -> PluginForeignKeyInfo? in - guard let column = foreignKey.columns.first, - let referencedColumn = foreignKey.referencedColumns.first else { return nil } - let referencedSchema = foreignKey.referencedSchema ?? snapshot.schema - return PluginForeignKeyInfo( - name: foreignKey.name, - column: column, - referencedTable: SchemaSyncOperation.qualify(foreignKey.referencedTable, referencedSchema), - referencedColumn: referencedColumn, - referencedSchema: referencedSchema - ) - } - guard !dependencies.isEmpty else { continue } - map[snapshot.qualifiedName] = dependencies - } - return map - } -} diff --git a/TablePro/Core/Compare/CompareSyncSession.swift b/TablePro/Core/Compare/CompareSyncSession.swift index 4620e04f7..161c8b653 100644 --- a/TablePro/Core/Compare/CompareSyncSession.swift +++ b/TablePro/Core/Compare/CompareSyncSession.swift @@ -2,36 +2,18 @@ // CompareSyncSession.swift // TablePro // -// Drives the compare and sync flow. Owns no cache: every comparison is a fresh -// read that replaces the previous result only once it has finished, so a re-run -// never blanks what is on screen before it has something to show. +// The state of one comparison. It holds no driver and performs no I/O: that is +// `CompareRunner`'s job, the way `QueryExecutionCoordinator` holds a query tab's +// state and `QueryExecutor` does the talking. +// +// There are no steps. The window shows the setup, the results and the script at +// once, and an action is available when its preconditions hold, so re-running a +// comparison is one click rather than walking backwards through a wizard. // import Foundation import Observation import os -import SwiftUI -import TableProPluginKit - -internal enum CompareSyncStep: Int, CaseIterable, Comparable { - case setup - case review - case script - case apply - - internal static func < (lhs: CompareSyncStep, rhs: CompareSyncStep) -> Bool { - lhs.rawValue < rhs.rawValue - } - - internal var title: String { - switch self { - case .setup: return String(localized: "Setup") - case .review: return String(localized: "Review") - case .script: return String(localized: "Script") - case .apply: return String(localized: "Apply") - } - } -} internal enum CompareSyncActivity: Equatable { case idle @@ -46,38 +28,64 @@ internal enum CompareSyncLastAction: Equatable { case applied(Date, target: String, statements: Int) } +internal enum CompareDetailPane: String, CaseIterable, Hashable { + case definitions + case rows + case script + + internal var title: String { + switch self { + case .definitions: return String(localized: "Definitions") + case .rows: return String(localized: "Rows") + case .script: return String(localized: "Script") + } + } +} + @MainActor @Observable internal final class CompareSyncSession { - private static let logger = Logger(subsystem: "com.TablePro", category: "CompareSyncSession") + nonisolated private static let logger = Logger(subsystem: "com.TablePro", category: "CompareSyncSession") + + // MARK: - Setup - internal var step: CompareSyncStep = .setup internal var mode: CompareSyncMode = .structure internal var source: CompareSyncEndpoint? internal var target: CompareSyncEndpoint? internal var structureOptions = StructureCompareOptions.default internal var dataOptions = DataCompareOptions.default internal var executionSettings = CompareSyncExecutionSettings() + internal var includedKinds: Set = [.table] - internal var activity: CompareSyncActivity = .idle - internal var errorMessage: String? - internal var informationalMessage: String? - internal var lastAction: CompareSyncLastAction = .none + // MARK: - Results - internal var structureReport: StructureDiffReport? + internal var report: CompareReport? internal var dataPlans: [DataComparePlan] = [] - internal var tableActions: [String: TableSyncAction] = [:] + internal var actions: [String: TableSyncAction] = [:] internal var statements: [SyncStatement] = [] - internal var editedScript: String? internal var runResult: CompareSyncRunResult? - internal var progress: Progress? + internal var sourceSnapshots: [String: TableStructureSnapshot] = [:] + internal var targetSnapshots: [String: TableStructureSnapshot] = [:] - internal var hasWrittenToTarget = false - internal var sourceSnapshotCache: [String: TableStructureSnapshot] = [:] - internal var targetSnapshotCache: [String: TableStructureSnapshot] = [:] - internal var pendingSelectedTables: Set = [] + // MARK: - Presentation + + internal var selectedObjectId: String? + internal var selectedPlanId: String? + internal var detailPane: CompareDetailPane = .definitions + internal var searchText = "" + internal var showsIdentical = false + internal var grouping: CompareGrouping = .byDifference + + // MARK: - Activity + internal var activity: CompareSyncActivity = .idle + internal var errorMessage: String? + internal var informationalMessage: String? + internal var lastAction: CompareSyncLastAction = .none + internal var progress: Progress? + internal var hasWrittenToTarget = false internal var runTask: Task? + internal var pendingSelection: Set = [] internal init() {} @@ -105,7 +113,8 @@ internal final class CompareSyncSession { internal var canCompare: Bool { guard let source, let target else { return false } guard target.canBeWrittenTo else { return false } - return source.id != target.id && activity == .idle + guard activity == .idle else { return false } + return source.id != target.id } internal var canGenerateStructureScript: Bool { @@ -121,13 +130,12 @@ internal final class CompareSyncSession { return CompareSyncEngineFamily.crossEngineDataWarning(from: source.databaseType, to: target.databaseType) } + // MARK: - Banner + internal var bannerText: String { switch activity { case .applying: - return String( - format: String(localized: "Applying to %@…"), - target?.qualifiedDescription ?? "" - ) + return String(format: String(localized: "Applying to %@…"), target?.qualifiedDescription ?? "") case .comparing, .connecting: return String(localized: "Comparing only. Nothing has been written.") case .idle: @@ -154,62 +162,116 @@ internal final class CompareSyncSession { // MARK: - Selection - internal func action(for result: TableDiffResult) -> TableSyncAction { - tableActions[result.id] ?? .skip + internal func action(for result: CompareObjectResult) -> TableSyncAction { + actions[result.id] ?? .skip } - internal func setAction(_ action: TableSyncAction, for result: TableDiffResult) { - tableActions[result.id] = action - statements = [] - editedScript = nil + internal func isIncluded(_ result: CompareObjectResult) -> Bool { + action(for: result) != .skip } - internal var selectedTableCount: Int { - switch mode { - case .structure: - return tableActions.values.filter { $0 != .skip }.count - case .data: - return dataPlans.filter { $0.isEnabled && $0.isComparable && ($0.summary?.differenceCount ?? 0) > 0 }.count - } + internal func setAction(_ action: TableSyncAction, for result: CompareObjectResult) { + actions[result.id] = action + invalidateScript() } - internal func runComparison() { - switch mode { - case .structure: compare() - case .data: compareData() + internal func setIncluded(_ included: Bool, for result: CompareObjectResult) { + setAction(included ? result.suggestedAction : .skip, for: result) + } + + internal func setIncluded(_ included: Bool, forIds ids: [String]) { + guard let report else { return } + let byId = Dictionary(report.comparable.map { ($0.id, $0) }, uniquingKeysWith: { first, _ in first }) + for id in ids { + guard let result = byId[id] else { continue } + actions[result.id] = included ? result.suggestedAction : .skip } + invalidateScript() } - internal func buildScript() { + internal var selectedObjectCount: Int { switch mode { - case .structure: generateScript() - case .data: generateDataScript() + case .structure: + return actions.values.filter { $0 != .skip }.count + case .data: + return dataPlans.filter { $0.isEnabled && $0.isComparable && ($0.summary?.differenceCount ?? 0) > 0 }.count } } internal var canBuildScript: Bool { + guard activity == .idle else { return false } switch mode { case .structure: - return selectedTableCount > 0 && canGenerateStructureScript + return selectedObjectCount > 0 && canGenerateStructureScript case .data: - return selectedTableCount > 0 + return selectedObjectCount > 0 } } + internal var canApply: Bool { + activity == .idle && !statements.isEmpty && target?.canBeWrittenTo == true + } + + /// A statement carrying an unacknowledged hazard is why Apply stays disabled rather than + /// silently dropping it: the count the user is about to run has to be the count they saw. + internal var unacknowledgedHazardCount: Int { + statements.filter { $0.isRefusedByDefault && !executionSettings.canRun($0) }.count + } + + internal var runnableStatementCount: Int { + statements.filter { executionSettings.canRun($0) }.count + } + + // MARK: - Results view + + internal var visibleResults: [CompareObjectResult] { + guard let report else { return [] } + var results = report.comparable.filter { includedKinds.contains($0.identity.kind) } + if !showsIdentical { + results = results.filter { $0.status != .identical } + } + let query = searchText.trimmingCharacters(in: .whitespaces) + guard !query.isEmpty else { return results } + return results.filter { $0.identity.displayName.localizedCaseInsensitiveContains(query) } + } + + internal var selectedResult: CompareObjectResult? { + guard let selectedObjectId else { return nil } + return report?.results.first { $0.id == selectedObjectId } + } + + internal var selectedPlan: DataComparePlan? { + guard let selectedPlanId else { return nil } + return dataPlans.first { $0.id == selectedPlanId } + } + + internal var truncatedPlanNames: [String] { + dataPlans.filter { $0.summary?.truncatedEntries == true }.map { $0.id } + } + + internal var dataDifferenceTotal: Int { + dataPlans.compactMap { $0.summary?.differenceCount }.reduce(0, +) + } + + // MARK: - Lifecycle + internal func resetComparison() { - structureReport = nil - sourceSnapshotCache = [:] - targetSnapshotCache = [:] + report = nil + sourceSnapshots = [:] + targetSnapshots = [:] dataPlans = [] - tableActions = [:] - statements = [] - editedScript = nil + actions = [:] + selectedObjectId = nil + selectedPlanId = nil runResult = nil errorMessage = nil - step = .setup + invalidateScript() } - // MARK: - Lifecycle + internal func invalidateScript() { + statements = [] + runResult = nil + } internal func cancelRunningWork() { progress?.cancel() @@ -227,3 +289,17 @@ internal final class CompareSyncSession { return formatter }() } + +internal enum CompareGrouping: String, CaseIterable, Hashable { + case byDifference + case byObjectType + case none + + internal var title: String { + switch self { + case .byDifference: return String(localized: "Difference") + case .byObjectType: return String(localized: "Object Type") + case .none: return String(localized: "None") + } + } +} diff --git a/TablePro/Core/Compare/DataCompareOptions.swift b/TablePro/Core/Compare/DataCompareOptions.swift index bf56bba52..6b34db990 100644 --- a/TablePro/Core/Compare/DataCompareOptions.swift +++ b/TablePro/Core/Compare/DataCompareOptions.swift @@ -109,33 +109,56 @@ internal struct CellValueComparator { } } +/// An instant, held as whole nanoseconds since the epoch. +/// +/// `DateFormatter` clamps a fractional second to milliseconds whatever the pattern says, so +/// parsing `10:00:00.123456` and `10:00:00.123457` through it produced the same value and every +/// microsecond difference read as identical no matter what precision the user asked for. The +/// fraction is therefore split off and parsed as an integer, and the comparison stays in integer +/// arithmetic: scaling a `Double` seconds value by 1e9 leaves the exact-integer range and puts +/// the same precision loss back into the path that was just fixed. internal struct TimestampValue: Hashable { - internal let secondsSinceEpoch: Double + internal let nanosecondsSinceEpoch: Int64 internal func equals(_ other: TimestampValue, fractionalDigits: Int) -> Bool { - let scale = pow(10.0, Double(max(0, min(9, fractionalDigits)))) - return (secondsSinceEpoch * scale).rounded() == (other.secondsSinceEpoch * scale).rounded() + let divisor = Self.divisor(forFractionalDigits: fractionalDigits) + return Self.floorDivide(nanosecondsSinceEpoch, by: divisor) + == Self.floorDivide(other.nanosecondsSinceEpoch, by: divisor) } internal static func parse(_ raw: String) -> TimestampValue? { let trimmed = raw.trimmingCharacters(in: .whitespaces) guard trimmed.count >= 10 else { return nil } + let split = FractionalSecond.split(from: trimmed) for formatter in Self.formatters { - if let date = formatter.date(from: trimmed) { - return TimestampValue(secondsSinceEpoch: date.timeIntervalSince1970) - } + guard let date = formatter.date(from: split.withoutFraction) else { continue } + let seconds = date.timeIntervalSince1970.rounded() + guard seconds.magnitude < Double(Int64.max / Self.nanosecondsPerSecond) else { return nil } + return TimestampValue( + nanosecondsSinceEpoch: Int64(seconds) * Self.nanosecondsPerSecond + split.nanoseconds + ) } return nil } + private static func divisor(forFractionalDigits digits: Int) -> Int64 { + let clamped = max(0, min(9, digits)) + var divisor: Int64 = 1 + for _ in 0 ..< (9 - clamped) { divisor *= 10 } + return divisor + } + + private static func floorDivide(_ value: Int64, by divisor: Int64) -> Int64 { + let quotient = value / divisor + return value % divisor < 0 ? quotient - 1 : quotient + } + + private static let nanosecondsPerSecond: Int64 = 1_000_000_000 + private static let formatters: [DateFormatter] = { let patterns = [ - "yyyy-MM-dd HH:mm:ss.SSSSSSXXXXX", - "yyyy-MM-dd'T'HH:mm:ss.SSSSSSXXXXX", "yyyy-MM-dd HH:mm:ssXXXXX", "yyyy-MM-dd'T'HH:mm:ssXXXXX", - "yyyy-MM-dd HH:mm:ss.SSSSSS", - "yyyy-MM-dd'T'HH:mm:ss.SSSSSS", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd'T'HH:mm:ss", "yyyy-MM-dd" @@ -149,3 +172,33 @@ internal struct TimestampValue: Hashable { } }() } + +/// Splits `.123456` off a timestamp so the whole-second part can go through `DateFormatter` and +/// the fraction can be read exactly. Only a dot followed by digits after the time counts, so a +/// date alone and an offset like `+05:30` both pass through untouched. +internal enum FractionalSecond { + internal struct Split { + internal let withoutFraction: String + internal let nanoseconds: Int64 + } + + internal static func split(from text: String) -> Split { + guard let dot = text.firstIndex(of: "."), dot > text.startIndex else { + return Split(withoutFraction: text, nanoseconds: 0) + } + let afterDot = text.index(after: dot) + let digits = text[afterDot...].prefix { $0.isASCII && $0.isNumber } + guard !digits.isEmpty else { return Split(withoutFraction: text, nanoseconds: 0) } + + var withoutFraction = String(text[text.startIndex ..< dot]) + withoutFraction += text[text.index(afterDot, offsetBy: digits.count)...] + return Split(withoutFraction: withoutFraction, nanoseconds: nanoseconds(from: digits)) + } + + private static func nanoseconds(from digits: Substring) -> Int64 { + let significant = digits.prefix(9) + guard var value = Int64(significant) else { return 0 } + for _ in 0 ..< (9 - significant.count) { value *= 10 } + return value + } +} diff --git a/TablePro/Core/Compare/DataComparePlan.swift b/TablePro/Core/Compare/DataComparePlan.swift new file mode 100644 index 000000000..10908cf1b --- /dev/null +++ b/TablePro/Core/Compare/DataComparePlan.swift @@ -0,0 +1,128 @@ +// +// DataComparePlan.swift +// TablePro +// +// One table's data comparison: which columns identify a row, which take part +// in the comparison, and which get written. +// +// Those three sets are deliberately different. A generated column is read and +// compared but never written, because an engine rejects an explicit value for +// one. An excluded column is written but not compared, which is what lets an +// `updated_at` be carried across without every row reading as different. +// + +import Foundation +import TableProPluginKit + +internal struct DataComparePlan: Identifiable, Hashable, Sendable { + internal let table: String + internal let schema: String? + internal var columns: [String] + internal var columnDescriptors: [KeyColumnDescriptor] + internal var generatedColumns: Set + internal var keyColumns: [String] + internal var isEnabled: Bool + internal var unavailableReason: String? + internal var summary: DataDiffSummary? + internal var excludedRowKeys: Set + + internal init( + table: String, + schema: String?, + columns: [String], + columnDescriptors: [KeyColumnDescriptor] = [], + generatedColumns: Set = [], + keyColumns: [String], + isEnabled: Bool, + unavailableReason: String? = nil, + summary: DataDiffSummary? = nil, + excludedRowKeys: Set = [] + ) { + self.table = table + self.schema = schema + self.columns = columns + self.columnDescriptors = columnDescriptors + /// Normalised here rather than at the call site: every comparison is case-insensitive, and + /// a caller that passed the engine's own spelling would silently write a generated column. + self.generatedColumns = Set(generatedColumns.map { $0.lowercased() }) + self.keyColumns = keyColumns + self.isEnabled = isEnabled + self.unavailableReason = unavailableReason + self.summary = summary + self.excludedRowKeys = excludedRowKeys + } + + internal var id: String { + guard let schema, !schema.isEmpty else { return table } + return "\(schema).\(table)" + } + + internal var isComparable: Bool { + unavailableReason == nil + } + + /// Every shared column is read: a value is needed to compare it or to write it, and a second + /// pass to fetch the rest would double the round trips. + internal var readColumns: [String] { + columns + } + + /// A generated column is computed by the engine. MySQL rejects an explicit value for one + /// outright, and PostgreSQL rejects it for a stored generated column, so it never appears in + /// an INSERT or UPDATE column list. + internal var writeColumns: [String] { + columns.filter { !generatedColumns.contains($0.lowercased()) } + } + + internal var comparisonColumnNames: [String] { + columns + } + + internal var keyDescriptors: [KeyColumnDescriptor] { + let wanted = Set(keyColumns.map { $0.lowercased() }) + return columnDescriptors.filter { wanted.contains($0.name.lowercased()) } + } + + internal func isKeyColumn(_ column: String) -> Bool { + keyColumns.contains { $0.caseInsensitiveCompare(column) == .orderedSame } + } + + internal func isGeneratedColumn(_ column: String) -> Bool { + generatedColumns.contains(column.lowercased()) + } + + internal static func == (lhs: DataComparePlan, rhs: DataComparePlan) -> Bool { + lhs.id == rhs.id + && lhs.keyColumns == rhs.keyColumns + && lhs.isEnabled == rhs.isEnabled + && lhs.excludedRowKeys == rhs.excludedRowKeys + && lhs.summary?.differenceCount == rhs.summary?.differenceCount + } + + internal func hash(into hasher: inout Hasher) { + hasher.combine(id) + } +} + +internal extension DataComparePlan { + static func unavailableReason(for plan: DataComparePlan) -> String? { + if plan.columns.isEmpty { + return String(localized: "No columns in common.") + } + if plan.keyColumns.isEmpty { + return String(localized: "No primary key. Choose key columns to compare this table.") + } + let available = Set(plan.columns.map { $0.lowercased() }) + let missing = plan.keyColumns.filter { !available.contains($0.lowercased()) } + guard missing.isEmpty else { + return String( + format: String(localized: "Key column %@ is not present on both sides. Choose a different key."), + missing.joined(separator: ", ") + ) + } + if plan.writeColumns.isEmpty { + return String(localized: "Every shared column is generated, so there is nothing to write.") + } + return nil + } +} diff --git a/TablePro/Core/Compare/DataDiffEngine.swift b/TablePro/Core/Compare/DataDiffEngine.swift index 18a83dc92..967107f43 100644 --- a/TablePro/Core/Compare/DataDiffEngine.swift +++ b/TablePro/Core/Compare/DataDiffEngine.swift @@ -16,7 +16,7 @@ import Foundation import TableProPluginKit -internal struct DataRow: Hashable { +internal struct DataRow: Hashable, Sendable { internal let values: [String: PluginCellValue] internal func value(for column: String) -> PluginCellValue { @@ -38,14 +38,14 @@ internal enum RowDiffKind: String, Codable, Hashable, Sendable { case identical } -internal struct CellDifference: Hashable { +internal struct CellDifference: Hashable, Sendable { internal let column: String internal let rule: ComparisonRule internal let sourceValue: PluginCellValue internal let targetValue: PluginCellValue } -internal struct RowDiffEntry: Identifiable, Hashable { +internal struct RowDiffEntry: Identifiable, Hashable, Sendable { internal let id: UUID internal let kind: RowDiffKind internal let keyDescription: String @@ -70,7 +70,7 @@ internal struct RowDiffEntry: Identifiable, Hashable { } } -internal struct DataDiffSummary { +internal struct DataDiffSummary: Hashable, Sendable { internal let insertCount: Int internal let updateCount: Int internal let deleteCount: Int @@ -111,18 +111,27 @@ internal struct DataDiffEngine { private let comparisonColumns: [String] private let ordering: KeyOrdering - internal init(options: DataCompareOptions, columns: [String], columnTypes: [String: String] = [:]) { + internal init( + options: DataCompareOptions, + columns: [String], + keyDescriptors: [KeyColumnDescriptor] = [] + ) { self.options = options self.comparator = CellValueComparator(options: options) self.comparisonColumns = options.comparisonColumns(from: columns) self.ordering = KeyOrdering( - orders: KeyOrdering.orders(for: options.keyColumns, columnTypes: columnTypes) + orders: KeyOrdering.orders(for: options.keyColumns, descriptors: keyDescriptors) ) } + /// `onEntry` sees every entry the walk produces, before the accumulator's retention cap. + /// Script generation runs the walk a second time with a sink rather than reading the capped + /// entry list, because that list is a preview: building the script from it emitted 5,000 + /// statements for a 12,000-row difference and reported success. internal func compare( source: DataRowProviding, - target: DataRowProviding + target: DataRowProviding, + onEntry: ((RowDiffEntry) throws -> Void)? = nil ) async throws -> DataDiffSummary { guard options.hasKey else { throw CompareSyncError.noComparisonKey(String(localized: "Choose a key column before comparing data.")) @@ -139,30 +148,35 @@ internal struct DataDiffEngine { var left = try await sourceReader.next(&accumulator) var right = try await targetReader.next(&accumulator) + func record(_ entry: RowDiffEntry) throws { + accumulator.add(entry) + try onEntry?(entry) + } + while left != nil || right != nil { try Task.checkCancellation() guard let sourceEntry = left else { - accumulator.add(deleteEntry(for: right)) + try record(deleteEntry(for: right)) right = try await targetReader.next(&accumulator) continue } guard let targetEntry = right else { - accumulator.add(insertEntry(for: sourceEntry)) + try record(insertEntry(for: sourceEntry)) left = try await sourceReader.next(&accumulator) continue } switch ordering.compare(sourceEntry.key, targetEntry.key) { case .orderedSame: - accumulator.add(matchedEntry(source: sourceEntry, target: targetEntry)) + try record(matchedEntry(source: sourceEntry, target: targetEntry)) left = try await sourceReader.next(&accumulator) right = try await targetReader.next(&accumulator) case .orderedAscending: - accumulator.add(insertEntry(for: sourceEntry)) + try record(insertEntry(for: sourceEntry)) left = try await sourceReader.next(&accumulator) case .orderedDescending: - accumulator.add(deleteEntry(for: targetEntry)) + try record(deleteEntry(for: targetEntry)) right = try await targetReader.next(&accumulator) } } @@ -287,8 +301,11 @@ private final class KeyedRowReader { return nil } + /// Runs for every order kind, not just text. A numeric key that will not parse falls back to + /// byte order, and a collation this build does not recognise stays byte-ordered, so the check + /// is the only thing standing between a disagreeing server order and a wrong diff. private func checkOrder(of key: [PluginCellValue]) throws { - guard ordering.requiresStreamOrderCheck, let previousKey else { return } + guard let previousKey else { return } guard ordering.compare(previousKey, key) == .orderedDescending else { return } let explanation = String( localized: "The %1$@ sorted rows differently than the comparison expects, near key %2$@. Pick a numeric key, or one that sorts by byte value." diff --git a/TablePro/Core/Compare/DataSyncScriptBuilder.swift b/TablePro/Core/Compare/DataSyncScriptBuilder.swift index 8d2158321..12e7ae253 100644 --- a/TablePro/Core/Compare/DataSyncScriptBuilder.swift +++ b/TablePro/Core/Compare/DataSyncScriptBuilder.swift @@ -9,12 +9,35 @@ import Foundation import TableProPluginKit +/// One table's DML, kept in three buckets so the caller can interleave several tables in +/// dependency order. A flat `inserts + updates + deletes` per table is only correct for one +/// table: across tables it puts a child's insert before its parent's, which the server refuses. +internal struct DataSyncStatements { + internal var inserts: [SyncStatement] = [] + internal var updates: [SyncStatement] = [] + internal var deletes: [SyncStatement] = [] + + internal var isEmpty: Bool { + inserts.isEmpty && updates.isEmpty && deletes.isEmpty + } + + internal var flattened: [SyncStatement] { + inserts + updates + deletes + } +} + internal struct DataSyncScriptBuilder { private let targetDriver: any PluginDatabaseDriver + private let targetDatabaseType: DatabaseType private let options: DataCompareOptions - internal init(targetDriver: any PluginDatabaseDriver, options: DataCompareOptions) { + internal init( + targetDriver: any PluginDatabaseDriver, + targetDatabaseType: DatabaseType, + options: DataCompareOptions + ) { self.targetDriver = targetDriver + self.targetDatabaseType = targetDatabaseType self.options = options } @@ -24,30 +47,43 @@ internal struct DataSyncScriptBuilder { writeColumns: [String], entries: [RowDiffEntry] ) -> [SyncStatement] { - var inserts: [SyncStatement] = [] - var updates: [SyncStatement] = [] - var deletes: [SyncStatement] = [] - + var statements = DataSyncStatements() for entry in entries { - switch entry.kind { - case .insert: - guard options.insertMissingRows, let row = entry.sourceRow else { continue } - inserts.append(insertStatement(table: table, schema: schema, columns: writeColumns, row: row, entry: entry)) - case .update: - guard options.updateDifferingRows, let row = entry.sourceRow else { continue } - guard let statement = updateStatement( - table: table, schema: schema, columns: writeColumns, row: row, entry: entry - ) else { continue } - updates.append(statement) - case .delete: - guard options.deleteExtraRows, let row = entry.targetRow else { continue } - guard let statement = deleteStatement(table: table, schema: schema, row: row, entry: entry) else { continue } - deletes.append(statement) - case .identical: - continue - } + append(entry, table: table, schema: schema, writeColumns: writeColumns, into: &statements) } - return inserts + updates + deletes + return statements.flattened + } + + internal func append( + _ entry: RowDiffEntry, + table: String, + schema: String?, + writeColumns: [String], + into statements: inout DataSyncStatements + ) { + switch entry.kind { + case .insert: + guard options.insertMissingRows, let row = entry.sourceRow else { return } + statements.inserts.append( + insertStatement(table: table, schema: schema, columns: writeColumns, row: row, entry: entry) + ) + case .update: + guard options.updateDifferingRows, let row = entry.sourceRow else { return } + guard let statement = updateStatement( + table: table, schema: schema, columns: writeColumns, row: row, entry: entry + ) else { return } + statements.updates.append(statement) + case .delete: + guard options.deleteExtraRows, let row = entry.targetRow else { return } + guard let statement = deleteStatement(table: table, schema: schema, row: row, entry: entry) else { return } + statements.deletes.append(statement) + case .identical: + return + } + } + + private func literal(for value: PluginCellValue) -> String { + CompareSQLLiteral.literal(for: value, databaseType: targetDatabaseType, driver: targetDriver) } private func qualified(_ table: String, _ schema: String?) -> String { @@ -63,7 +99,7 @@ internal struct DataSyncScriptBuilder { entry: RowDiffEntry ) -> SyncStatement { let columnList = columns.map { targetDriver.quoteIdentifier($0) }.joined(separator: ", ") - let valueList = columns.map { targetDriver.sqlLiteral(for: row.value(for: $0)) }.joined(separator: ", ") + let valueList = columns.map { literal(for: row.value(for: $0)) }.joined(separator: ", ") return SyncStatement( sql: "INSERT INTO \(qualified(table, schema)) (\(columnList)) VALUES (\(valueList));", objectName: table, @@ -82,7 +118,7 @@ internal struct DataSyncScriptBuilder { let assignable = columns.filter { !keySet.contains($0.lowercased()) } guard !assignable.isEmpty else { return nil } let assignments = assignable - .map { "\(targetDriver.quoteIdentifier($0)) = \(targetDriver.sqlLiteral(for: row.value(for: $0)))" } + .map { "\(targetDriver.quoteIdentifier($0)) = \(literal(for: row.value(for: $0)))" } .joined(separator: ", ") guard let predicate = keyPredicate(row: row) else { return nil } return SyncStatement( @@ -121,7 +157,7 @@ internal struct DataSyncScriptBuilder { let quoted = targetDriver.quoteIdentifier(column) let value = row.value(for: column) if case .null = value { return "\(quoted) IS NULL" } - return "\(quoted) = \(targetDriver.sqlLiteral(for: value))" + return "\(quoted) = \(literal(for: value))" } .joined(separator: " AND ") } diff --git a/TablePro/Core/Compare/KeyOrdering.swift b/TablePro/Core/Compare/KeyOrdering.swift index 75a6ad2ca..6bf312784 100644 --- a/TablePro/Core/Compare/KeyOrdering.swift +++ b/TablePro/Core/Compare/KeyOrdering.swift @@ -6,13 +6,22 @@ // // Rows arrive ordered by the server's own collation, so the client comparator // has to agree with it or the join desynchronises and reports rows that exist -// on both sides as a delete plus an insert. Two rules keep that from happening -// silently: +// on both sides as a delete plus an insert. Three rules keep that from +// happening silently: // -// 1. A numeric key column is compared numerically, which matches every engine's -// numeric ordering exactly. This covers the ordinary integer primary key. -// 2. Anything else is compared by UTF-8 bytes, and the stream is checked as it -// is read. A server whose collation disagrees is reported, not guessed at. +// 1. A numeric key column is compared as an exact decimal. Going through +// Double collapses any two integers that share the first 53 bits, so a pair +// of Snowflake ids one apart matched as the same row and the engine emitted +// an UPDATE that overwrote a different row. +// 2. A text key whose collation is case-insensitive is compared case-folded. +// The server treats 'Alice' and 'ALICE' as one key, so a byte comparator +// reports an orphan insert for a row the target already has. +// 3. Every other key is compared by UTF-8 bytes. +// +// None of the three is trusted on its own: the stream is verified as it is +// read, for every order kind, so a server whose collation disagrees is +// reported rather than guessed at. That check is the actual safety net, which +// is why it is no longer conditional. // // A NULL is never a usable row identity, so a row carrying one in a key column // is excluded from the comparison rather than given an arbitrary sort position. @@ -21,10 +30,23 @@ import Foundation import TableProPluginKit +internal struct KeyColumnDescriptor: Hashable, Sendable { + internal let name: String + internal let dataType: String? + internal let collation: String? + + internal init(name: String, dataType: String? = nil, collation: String? = nil) { + self.name = name + self.dataType = dataType + self.collation = collation + } +} + internal struct KeyOrdering { internal enum ColumnOrder: Equatable { case numeric - case binaryText + case caseSensitiveText + case caseInsensitiveText } private let orders: [ColumnOrder] @@ -33,13 +55,9 @@ internal struct KeyOrdering { self.orders = orders } - internal var requiresStreamOrderCheck: Bool { - orders.contains(.binaryText) - } - internal func compare(_ lhs: [PluginCellValue], _ rhs: [PluginCellValue]) -> ComparisonResult { for (index, pair) in zip(lhs, rhs).enumerated() { - let order = index < orders.count ? orders[index] : .binaryText + let order = index < orders.count ? orders[index] : .caseSensitiveText let result = Self.compare(pair.0, pair.1, using: order) guard result == .orderedSame else { return result } } @@ -62,14 +80,14 @@ internal struct KeyOrdering { .joined(separator: ", ") } - internal static func orders( - for keyColumns: [String], - columnTypes: [String: String] - ) -> [ColumnOrder] { + internal static func orders(for keyColumns: [String], descriptors: [KeyColumnDescriptor]) -> [ColumnOrder] { keyColumns.map { column in let lowered = column.lowercased() - let declared = columnTypes.first { $0.key.lowercased() == lowered }?.value - return isNumeric(declared) ? .numeric : .binaryText + guard let descriptor = descriptors.first(where: { $0.name.lowercased() == lowered }) else { + return .caseSensitiveText + } + if isNumeric(descriptor.dataType) { return .numeric } + return isCaseInsensitive(descriptor.collation) ? .caseInsensitiveText : .caseSensitiveText } } @@ -81,6 +99,17 @@ internal struct KeyOrdering { return numericTypeNames.contains(String(leading)) } + /// Named per engine rather than guessed: MySQL and MariaDB suffix `_ci`, SQL Server spells + /// `_CI_` in the middle of a collation name, and SQLite has exactly one, `NOCASE`. A name + /// this does not recognise stays case-sensitive, where the stream-order check covers it. + internal static func isCaseInsensitive(_ collation: String?) -> Bool { + guard let collation, !collation.isEmpty else { return false } + let lowered = collation.lowercased() + if lowered == "nocase" { return true } + if lowered.hasSuffix("_ci") { return true } + return lowered.contains("_ci_") + } + private static let numericTypeNames: Set = [ "int", "integer", "tinyint", "smallint", "mediumint", "bigint", "serial", "bigserial", "smallserial", "int2", "int4", "int8", @@ -95,23 +124,33 @@ internal struct KeyOrdering { ) -> ComparisonResult { switch order { case .numeric: - let left = numericValue(lhs) - let right = numericValue(rhs) + guard let left = decimalValue(lhs), let right = decimalValue(rhs) else { + return compareBytes(byteValue(lhs), byteValue(rhs)) + } if left == right { return .orderedSame } return left < right ? .orderedAscending : .orderedDescending - case .binaryText: - let left = byteValue(lhs) - let right = byteValue(rhs) - if left == right { return .orderedSame } - return left.lexicographicallyPrecedes(right) ? .orderedAscending : .orderedDescending + case .caseSensitiveText: + return compareBytes(byteValue(lhs), byteValue(rhs)) + case .caseInsensitiveText: + return compareBytes(foldedByteValue(lhs), foldedByteValue(rhs)) } } - private static func numericValue(_ value: PluginCellValue) -> Double { + private static func compareBytes(_ lhs: [UInt8], _ rhs: [UInt8]) -> ComparisonResult { + if lhs == rhs { return .orderedSame } + return lhs.lexicographicallyPrecedes(rhs) ? .orderedAscending : .orderedDescending + } + + /// `Decimal` carries 38 significant digits, which covers every integer key an engine can + /// hold and the NUMERIC range in practice. A value that will not parse returns nil so the + /// caller falls back to bytes, rather than collapsing onto a shared sentinel the way the + /// old `?? 0` did. + private static func decimalValue(_ value: PluginCellValue) -> Decimal? { switch value { - case .null: return -.infinity - case .text(let text): return Double(text.trimmingCharacters(in: .whitespaces)) ?? 0 - case .bytes: return 0 + case .null, .bytes: + return nil + case .text(let text): + return Decimal(string: text.trimmingCharacters(in: .whitespaces), locale: Self.posixLocale) } } @@ -122,4 +161,14 @@ internal struct KeyOrdering { case .bytes(let data): return Array(data) } } + + private static func foldedByteValue(_ value: PluginCellValue) -> [UInt8] { + switch value { + case .null: return [] + case .text(let text): return Array(text.lowercased().utf8) + case .bytes(let data): return Array(data) + } + } + + private static let posixLocale = Locale(identifier: "en_US_POSIX") } diff --git a/TablePro/Core/Compare/SchemaSyncOperation.swift b/TablePro/Core/Compare/SchemaSyncOperation.swift index b5ba8c8e8..b283e9145 100644 --- a/TablePro/Core/Compare/SchemaSyncOperation.swift +++ b/TablePro/Core/Compare/SchemaSyncOperation.swift @@ -49,7 +49,7 @@ internal enum SchemaSyncOperation: Identifiable { } } -internal struct SyncStatement: Identifiable, Hashable { +internal struct SyncStatement: Identifiable, Hashable, Sendable { internal let id: UUID internal let sql: String internal let objectName: String diff --git a/TablePro/Core/Compare/SchemaSyncScriptBuilder.swift b/TablePro/Core/Compare/SchemaSyncScriptBuilder.swift index 908efd408..f607234eb 100644 --- a/TablePro/Core/Compare/SchemaSyncScriptBuilder.swift +++ b/TablePro/Core/Compare/SchemaSyncScriptBuilder.swift @@ -60,17 +60,18 @@ internal struct SchemaSyncScriptBuilder { for operation in operations { byIdentifier[operation.tableIdentifier, default: []].append(operation) } - let ordered = ForeignKeyTopologicalSort.orderedNames( - operations.map { $0.tableIdentifier }, - foreignKeysByTable: foreignKeysByTable + let ordered = ForeignKeyTopologicalSort.ordered( + operations.map { ForeignKeyTopologicalSort.Table(name: $0.tableName, schema: $0.schema) }, + foreignKeysByTable: foreignKeysByTable, + childrenFirst: childrenFirst ) var emitted: Set = [] var resolved: [SchemaSyncOperation] = [] - for identifier in ordered where !emitted.contains(identifier) { - emitted.insert(identifier) - resolved.append(contentsOf: byIdentifier[identifier] ?? []) + for node in ordered where !emitted.contains(node.identifier) { + emitted.insert(node.identifier) + resolved.append(contentsOf: byIdentifier[node.identifier] ?? []) } - return childrenFirst ? resolved.reversed() : resolved + return resolved } private func build(operation: SchemaSyncOperation) throws -> [SyncStatement] { diff --git a/TablePro/Core/Compare/SourceObjectDiffEngine.swift b/TablePro/Core/Compare/SourceObjectDiffEngine.swift new file mode 100644 index 000000000..36039d549 --- /dev/null +++ b/TablePro/Core/Compare/SourceObjectDiffEngine.swift @@ -0,0 +1,112 @@ +// +// SourceObjectDiffEngine.swift +// TablePro +// +// Compares the objects whose definition is a body of SQL: views, procedures, +// functions and triggers. +// +// Tables are deliberately not compared this way. Driver-rendered DDL varies by +// formatting and by system-generated constraint names, and every tool that has +// diffed table DDL as text has shipped a false-positive storm. A routine has no +// parsed form to compare instead: its body IS the definition, so text is the +// only thing there is. What that costs is a formatting-only difference reading +// as a difference, which the normaliser below is there to reduce: it folds +// line endings, collapses runs of whitespace and drops trailing semicolons, +// and it folds case only when the compare options say identifier case is +// ignored. +// + +import Foundation + +internal struct SourceObjectDiffEngine { + private let options: StructureCompareOptions + + internal init(options: StructureCompareOptions = .default) { + self.options = options + } + + internal func compare( + source: [RoutineSourceRead], + target: [RoutineSourceRead] + ) -> [CompareObjectResult] { + let targetByKey = Dictionary( + target.map { (matchKey(for: $0), $0) }, + uniquingKeysWith: { first, _ in first } + ) + var handled: Set = [] + var results: [CompareObjectResult] = [] + + for read in source { + let key = matchKey(for: read) + handled.insert(key) + guard let counterpart = targetByKey[key] else { + results.append(result(for: read, counterpart: nil, status: .onlyInSource)) + continue + } + let equal = normalize(read.source) == normalize(counterpart.source) + results.append(result(for: read, counterpart: counterpart, status: equal ? .identical : .differs)) + } + + for read in target where !handled.contains(matchKey(for: read)) { + results.append(result(for: read, counterpart: nil, status: .onlyInTarget)) + } + + return results + } + + private func result( + for read: RoutineSourceRead, + counterpart: RoutineSourceRead?, + status: TableDiffStatus + ) -> CompareObjectResult { + let identity = CompareObjectIdentity( + kind: read.kind, schema: read.schema, name: read.name, signature: read.signature + ) + let sourceLines = status == .onlyInTarget ? [] : SqlNormalizer.lines(read.source) + let targetLines: [String] + switch status { + case .onlyInTarget: + targetLines = SqlNormalizer.lines(read.source) + case .onlyInSource: + targetLines = [] + case .differs, .identical: + targetLines = SqlNormalizer.lines(counterpart?.source ?? "") + } + return CompareObjectResult( + identity: identity, + status: status, + sourceDefinition: sourceLines, + targetDefinition: targetLines, + notes: notes(for: read, status: status) + ) + } + + private func notes(for read: RoutineSourceRead, status: TableDiffStatus) -> [String] { + guard status != .identical, read.source.isEmpty else { return [] } + return [String(localized: "The driver did not return this object's definition, so only its name was compared.")] + } + + private func matchKey(for read: RoutineSourceRead) -> String { + let name = options.ignoreIdentifierCase ? read.name.lowercased() : read.name + let schema = options.ignoreIdentifierCase ? (read.schema ?? "").lowercased() : (read.schema ?? "") + let signature = (read.signature ?? "").replacingOccurrences(of: " ", with: "").lowercased() + return "\(read.kind.rawValue)|\(schema)|\(name)|\(signature)" + } + + private func normalize(_ source: String) -> String { + var text = SqlNormalizer.normalize(source) + if options.ignoreWhitespaceInText { + text = text + .replacingOccurrences(of: "\n", with: " ") + .replacingOccurrences(of: "\t", with: " ") + while text.contains(" ") { + text = text.replacingOccurrences(of: " ", with: " ") + } + } + while text.hasSuffix(";") { + text.removeLast() + } + text = text.trimmingCharacters(in: .whitespacesAndNewlines) + return options.ignoreIdentifierCase ? text.lowercased() : text + } +} diff --git a/TablePro/Core/Compare/SourceObjectSyncBuilder.swift b/TablePro/Core/Compare/SourceObjectSyncBuilder.swift new file mode 100644 index 000000000..6274f918d --- /dev/null +++ b/TablePro/Core/Compare/SourceObjectSyncBuilder.swift @@ -0,0 +1,92 @@ +// +// SourceObjectSyncBuilder.swift +// TablePro +// +// Statements for the objects whose definition is SQL text. +// +// There is nothing to synthesise here: the source's own definition is the +// statement. What the builder decides is how to get from the target's current +// definition to that one, which for a view or a routine means dropping what is +// there and running the source's text. `CREATE OR REPLACE` is deliberately not +// used, because the engines spell it differently, several do not accept it for +// a signature change, and a replace that silently keeps the old object on +// failure is worse than an explicit drop the user allowed. +// + +import Foundation +import TableProPluginKit + +internal struct SourceObjectSyncBuilder { + private let targetDriver: any PluginDatabaseDriver + private let classifier = SyncSafetyClassifier() + + internal init(targetDriver: any PluginDatabaseDriver) { + self.targetDriver = targetDriver + } + + internal func build(for result: CompareObjectResult, action: TableSyncAction) -> [SyncStatement] { + switch action { + case .skip: + return [] + case .create: + return createStatements(for: result) + case .alter: + return dropStatements(for: result, isReplacement: true) + createStatements(for: result) + case .drop: + return dropStatements(for: result, isReplacement: false) + } + } + + private func createStatements(for result: CompareObjectResult) -> [SyncStatement] { + let definition = result.sourceDefinition.joined(separator: "\n").trimmingCharacters(in: .whitespacesAndNewlines) + guard !definition.isEmpty else { return [] } + return [SyncStatement( + sql: terminated(definition), + objectName: result.identity.displayName, + summary: String( + format: String(localized: "Create %1$@ %2$@"), + result.identity.kind.displayName.lowercased(), result.identity.displayName + ) + )] + } + + private func dropStatements(for result: CompareObjectResult, isReplacement: Bool) -> [SyncStatement] { + guard let keyword = dropKeyword(for: result.identity.kind) else { return [] } + let name = qualified(result.identity) + return [SyncStatement( + sql: "DROP \(keyword) \(name);", + objectName: result.identity.displayName, + summary: isReplacement + ? String( + format: String(localized: "Replace %1$@ %2$@"), + result.identity.kind.displayName.lowercased(), result.identity.displayName + ) + : String( + format: String(localized: "Drop %1$@ %2$@"), + result.identity.kind.displayName.lowercased(), result.identity.displayName + ), + hazards: classifier.hazards(forDropping: result.identity, isReplacement: isReplacement) + )] + } + + private func dropKeyword(for kind: CompareObjectKind) -> String? { + switch kind { + case .view: return "VIEW" + case .materializedView: return "MATERIALIZED VIEW" + case .procedure: return "PROCEDURE" + case .function: return "FUNCTION" + case .trigger: return "TRIGGER" + case .table, .sequence: return nil + } + } + + private func qualified(_ identity: CompareObjectIdentity) -> String { + let quotedName = targetDriver.quoteIdentifier(identity.name) + guard let schema = identity.schema, !schema.isEmpty else { return quotedName } + return "\(targetDriver.quoteIdentifier(schema)).\(quotedName)" + } + + private func terminated(_ sql: String) -> String { + sql.hasSuffix(";") ? sql : sql + ";" + } +} diff --git a/TablePro/Core/Compare/SyncSafetyClassifier.swift b/TablePro/Core/Compare/SyncSafetyClassifier.swift index 478efd4eb..7286297dd 100644 --- a/TablePro/Core/Compare/SyncSafetyClassifier.swift +++ b/TablePro/Core/Compare/SyncSafetyClassifier.swift @@ -54,6 +54,50 @@ internal struct SyncSafetyClassifier { )] } + /// A view or a routine holds no rows, so dropping one is recoverable from the source and only + /// warns. A materialized view does hold rows, so it is refused like a table. Either way a drop + /// can break something that depends on it, which is what the second hazard says. + internal func hazards(forDropping identity: CompareObjectIdentity, isReplacement: Bool) -> [SyncHazard] { + var hazards: [SyncHazard] = [] + + if identity.kind == .materializedView { + hazards.append(SyncHazard( + kind: .dataLoss, + severity: .refusedByDefault, + explanation: String( + format: String( + localized: "Dropping materialized view %@ discards its stored rows, which have to be rebuilt." + ), + identity.displayName + ) + )) + } + + guard !isReplacement else { + hazards.append(SyncHazard( + kind: .notSupportedByTarget, + severity: .warning, + explanation: String( + format: String( + localized: "%1$@ %2$@ is dropped and recreated, so anything depending on it fails until it exists again." + ), + identity.kind.displayName, identity.displayName + ) + )) + return hazards + } + + hazards.append(SyncHazard( + kind: .dataLoss, + severity: .refusedByDefault, + explanation: String( + format: String(localized: "Dropping %1$@ %2$@ removes it from the target."), + identity.kind.displayName.lowercased(), identity.displayName + ) + )) + return hazards + } + private func modifyColumnHazards( old: EditableColumnDefinition, new: EditableColumnDefinition diff --git a/TablePro/Core/Menu/DatabaseMenuBuilder.swift b/TablePro/Core/Menu/DatabaseMenuBuilder.swift index 4be552843..e9ddb376c 100644 --- a/TablePro/Core/Menu/DatabaseMenuBuilder.swift +++ b/TablePro/Core/Menu/DatabaseMenuBuilder.swift @@ -88,6 +88,47 @@ enum DatabaseMenuBuilder { MenuItemFactory.item( String(localized: "Reconnect"), action: #selector(MainSplitViewController.retryConnection) + ), + MenuItemFactory.separator, + compareSubmenu() + ]) + } + + /// The HIG asks that every toolbar item also be a menu-bar command. These are the Compare & + /// Sync window's toolbar, mirrored here; they route by nil target, so they reach + /// `CompareSyncWindowController` only while that window is key and validate to disabled + /// everywhere else. + private static func compareSubmenu() -> NSMenuItem { + MenuItemFactory.submenu(String(localized: "Compare"), items: [ + MenuItemFactory.item( + String(localized: "Compare & Sync Databases…"), + action: #selector(AppDelegate.compareAndSyncDatabases(_:)) + ), + MenuItemFactory.separator, + MenuItemFactory.item( + String(localized: "Compare Now"), + action: #selector(CompareSyncWindowController.runComparison(_:)) + ), + MenuItemFactory.item( + String(localized: "Swap Source and Target"), + action: #selector(CompareSyncWindowController.swapEndpoints(_:)) + ), + MenuItemFactory.item( + String(localized: "Comparison Options…"), + action: #selector(CompareSyncWindowController.showOptions(_:)) + ), + MenuItemFactory.separator, + MenuItemFactory.item( + String(localized: "Generate Script"), + action: #selector(CompareSyncWindowController.generateScript(_:)) + ), + MenuItemFactory.item( + String(localized: "Apply to Target…"), + action: #selector(CompareSyncWindowController.applyToTarget(_:)) + ), + MenuItemFactory.item( + String(localized: "Stop Comparison"), + action: #selector(CompareSyncWindowController.stopComparison(_:)) ) ]) } diff --git a/TablePro/Core/Plugins/ExportDataSourceAdapter.swift b/TablePro/Core/Plugins/ExportDataSourceAdapter.swift index d3b20cc35..a65a65601 100644 --- a/TablePro/Core/Plugins/ExportDataSourceAdapter.swift +++ b/TablePro/Core/Plugins/ExportDataSourceAdapter.swift @@ -118,7 +118,7 @@ final class ExportDataSourceAdapter: PluginExportDataSource, @unchecked Sendable /// The export tree names every group after a schema on a schema-aware engine and after a /// database everywhere else, so only a schema-aware driver can read that name as its /// schema. An empty name means the table sits in the driver's own container. - private func exportSchema(for databaseName: String) -> String? { + func exportSchema(for databaseName: String) -> String? { guard let pluginDriver else { return nil } guard pluginDriver.supportsSchemas, !databaseName.isEmpty else { return pluginDriver.currentSchema } return databaseName diff --git a/TablePro/Core/Services/Export/ExportService.swift b/TablePro/Core/Services/Export/ExportService.swift index cebcf703b..d8d097a79 100644 --- a/TablePro/Core/Services/Export/ExportService.swift +++ b/TablePro/Core/Services/Export/ExportService.swift @@ -148,7 +148,8 @@ final class ExportService { name: table.name, databaseName: table.databaseName, tableType: table.type.rawValue.lowercased(), - optionValues: table.optionValues + optionValues: table.optionValues, + schema: dataSource.exportSchema(for: table.databaseName) ) } @@ -249,7 +250,8 @@ final class ExportService { name: config.fileName, databaseName: "", tableType: "query", - optionValues: plugin.defaultTableOptionValues() + optionValues: plugin.defaultTableOptionValues(), + schema: nil ) let result: ExportFormatResult @@ -317,7 +319,8 @@ final class ExportService { name: config.fileName, databaseName: "", tableType: "query", - optionValues: plugin.defaultTableOptionValues() + optionValues: plugin.defaultTableOptionValues(), + schema: nil ) await suppressStatementTimeout(on: driver) diff --git a/TablePro/Views/Compare/CompareApplySheetView.swift b/TablePro/Views/Compare/CompareApplySheetView.swift new file mode 100644 index 000000000..beac87e71 --- /dev/null +++ b/TablePro/Views/Compare/CompareApplySheetView.swift @@ -0,0 +1,390 @@ +// +// CompareApplySheetView.swift +// TablePro +// +// The last thing shown before anything is written, and the record of what was. +// +// Cancel is the default button and Apply is destructive, because this is the +// only sheet in the app whose confirmation writes to someone else's database. +// Every sentence names the target, so a user reading only one of them still +// knows which database is about to change. +// + +import SwiftUI + +internal struct CompareApplySheetView: View { + internal enum Choice { + case cancel + case apply + } + + private struct PlannedObject: Identifiable { + let name: String + let count: Int + + var id: String { name } + } + + private enum Pane: String, CaseIterable, Hashable { + case script + case summary + case warnings + + var title: String { + switch self { + case .script: + return String(localized: "Script") + case .summary: + return String(localized: "Summary") + case .warnings: + return String(localized: "Warnings") + } + } + } + + @Bindable internal var session: CompareSyncSession + internal let callback: (Choice) -> Void + + @AppStorage("structureCodeFontSize", store: AppStorageEnvironment.shared.defaults) private var fontSize = 13.0 + + @State private var pane: Pane = .summary + + internal var body: some View { + VStack(spacing: 0) { + headline + Divider() + TabView(selection: $pane) { + scriptPane + .tabItem { Text(Pane.script.title) } + .tag(Pane.script) + summaryPane + .tabItem { Text(Pane.summary.title) } + .tag(Pane.summary) + warningsPane + .tabItem { Text(Pane.warnings.title) } + .tag(Pane.warnings) + } + .padding(.horizontal, 12) + .padding(.top, 8) + Divider() + actionRow + } + } + + // MARK: - Headline + + private var headline: some View { + VStack(alignment: .leading, spacing: 4) { + Text(headlineText) + .font(.headline) + .fixedSize(horizontal: false, vertical: true) + Text("Nothing is written until Apply.") + .font(.callout) + .foregroundStyle(.secondary) + } + .frame(maxWidth: .infinity, alignment: .leading) + .padding(16) + } + + private var headlineText: String { + String( + format: String(localized: "Apply %1$d statements to %2$@?"), + session.runnableStatementCount, targetName + ) + } + + private var targetName: String { + session.target?.qualifiedDescription ?? String(localized: "the target") + } + + // MARK: - Script + + private var scriptPane: some View { + DDLTextView(ddl: runnableScript, fontSize: $fontSize, databaseType: session.target?.databaseType) + .frame(maxWidth: .infinity, maxHeight: .infinity) + } + + private var runnableStatements: [SyncStatement] { + session.statements.filter { session.executionSettings.canRun($0) } + } + + private var runnableScript: String { + runnableStatements.map { $0.sql }.joined(separator: "\n") + } + + // MARK: - Summary + + private var summaryPane: some View { + ScrollView { + VStack(alignment: .leading, spacing: 16) { + if let result = session.runResult { + runResultSection(result) + Divider() + } + plannedWorkSection + } + .padding(.vertical, 12) + .frame(maxWidth: .infinity, alignment: .leading) + } + } + + private var plannedWorkSection: some View { + VStack(alignment: .leading, spacing: 8) { + Text(String(format: String(localized: "What will run against %@"), targetName)) + .font(.subheadline.weight(.semibold)) + .fixedSize(horizontal: false, vertical: true) + + ForEach(plannedObjects) { entry in + HStack(spacing: 8) { + Text(entry.name) + .lineLimit(1) + .truncationMode(.middle) + Spacer(minLength: 0) + Text(entry.count, format: .number) + .monospacedDigit() + .foregroundStyle(.secondary) + } + } + + if session.unacknowledgedHazardCount > 0 { + Label { + Text(heldBackText) + .fixedSize(horizontal: false, vertical: true) + } icon: { + Image(systemName: "hand.raised.fill") + } + .foregroundStyle(CompareStatusStyle.warning) + } + } + .frame(maxWidth: .infinity, alignment: .leading) + } + + private var plannedObjects: [PlannedObject] { + var order: [String] = [] + var counts: [String: Int] = [:] + for statement in runnableStatements { + if counts[statement.objectName] == nil { + order.append(statement.objectName) + } + counts[statement.objectName, default: 0] += 1 + } + return order.map { PlannedObject(name: $0, count: counts[$0] ?? 0) } + } + + private var heldBackText: String { + String( + format: String(localized: "%1$d statements stay out of this run and %2$@ keeps what it has for them."), + session.unacknowledgedHazardCount, targetName + ) + } + + // MARK: - Run result + + private func runResultSection(_ result: CompareSyncRunResult) -> some View { + VStack(alignment: .leading, spacing: 8) { + Text(String(format: String(localized: "What ran against %@"), targetName)) + .font(.subheadline.weight(.semibold)) + .fixedSize(horizontal: false, vertical: true) + + HStack(spacing: 16) { + countBadge( + String(localized: "Ran"), result.executedCount, + symbol: "checkmark.circle.fill", tint: CompareStatusStyle.success + ) + countBadge( + String(localized: "Failed"), result.failedCount, + symbol: "xmark.circle.fill", tint: CompareStatusStyle.error + ) + countBadge( + String(localized: "Held back"), result.heldBackCount, + symbol: "hand.raised.fill", tint: CompareStatusStyle.warning + ) + Spacer(minLength: 0) + } + + if result.rolledBack { + noticeLabel( + String(format: String(localized: "The run was rolled back. %@ is unchanged."), targetName), + systemImage: "arrow.uturn.backward.circle.fill" + ) + } else if result.failedCount > 0 { + noticeLabel( + String( + format: String(localized: "Statements that already ran stay applied to %@. Compare again to see where it stands."), + targetName + ), + systemImage: "exclamationmark.triangle.fill" + ) + } + + if result.cancelled { + noticeLabel( + String(localized: "Cancelled before the script finished."), + systemImage: "stop.circle" + ) + } + + ForEach(result.outcomes) { outcome in + outcomeRow(outcome) + } + } + .frame(maxWidth: .infinity, alignment: .leading) + } + + private func outcomeRow(_ outcome: SyncStatementOutcome) -> some View { + VStack(alignment: .leading, spacing: 2) { + HStack(spacing: 6) { + Image(systemName: symbolName(for: outcome)) + .foregroundStyle(tint(for: outcome)) + Text(outcome.statement.summary) + .font(.callout) + .lineLimit(1) + Spacer(minLength: 0) + Text(stateLabel(for: outcome)) + .font(.caption) + .foregroundStyle(.secondary) + } + if let error = outcome.error { + Text(error) + .font(.caption) + .foregroundStyle(CompareStatusStyle.error) + .textSelection(.enabled) + .fixedSize(horizontal: false, vertical: true) + } + } + } + + private func symbolName(for outcome: SyncStatementOutcome) -> String { + if outcome.wasSkipped { return "hand.raised.fill" } + return outcome.error == nil ? "checkmark.circle.fill" : "xmark.circle.fill" + } + + private func tint(for outcome: SyncStatementOutcome) -> Color { + if outcome.wasSkipped { return CompareStatusStyle.warning } + return outcome.error == nil ? CompareStatusStyle.success : CompareStatusStyle.error + } + + private func stateLabel(for outcome: SyncStatementOutcome) -> String { + if outcome.wasSkipped { return String(localized: "Held back") } + return outcome.error == nil ? String(localized: "Ran") : String(localized: "Failed") + } + + // MARK: - Warnings + + private var warningsPane: some View { + Group { + if hazardStatements.isEmpty { + ContentUnavailableView { + Label("No Warnings", systemImage: "checkmark.shield") + } description: { + Text(String(format: String(localized: "Nothing in this script destroys data in %@."), targetName)) + } + } else { + List(hazardStatements) { statement in + hazardRow(statement) + } + .listStyle(.inset) + } + } + } + + private var hazardStatements: [SyncStatement] { + session.statements.filter { !$0.hazards.isEmpty } + } + + private func hazardRow(_ statement: SyncStatement) -> some View { + VStack(alignment: .leading, spacing: 4) { + HStack(spacing: 6) { + Image(systemName: session.executionSettings.canRun(statement) ? "play.circle.fill" : "hand.raised.fill") + .foregroundStyle(session.executionSettings.canRun(statement) + ? CompareStatusStyle.warning + : CompareStatusStyle.error) + Text(statement.summary) + .font(.callout) + .lineLimit(1) + Spacer(minLength: 0) + Text(session.executionSettings.canRun(statement) + ? String(localized: "Will run") + : String(localized: "Held back")) + .font(.caption) + .foregroundStyle(.secondary) + } + ForEach(statement.hazards) { hazard in + VStack(alignment: .leading, spacing: 1) { + Text(hazard.kind.displayName) + .font(.caption.weight(.semibold)) + Text(hazard.explanation) + .font(.caption) + .foregroundStyle(.secondary) + .fixedSize(horizontal: false, vertical: true) + } + } + Text(statement.sql) + .font(.system(.caption, design: .monospaced)) + .foregroundStyle(.secondary) + .textSelection(.enabled) + .lineLimit(3) + } + .padding(.vertical, 2) + } + + // MARK: - Actions + + private var actionRow: some View { + HStack(spacing: 12) { + if session.unacknowledgedHazardCount > 0 { + Label { + Text("Allow or drop every held-back statement before applying.") + .fixedSize(horizontal: false, vertical: true) + } icon: { + Image(systemName: "hand.raised.fill") + } + .font(.callout) + .foregroundStyle(CompareStatusStyle.warning) + } + Spacer(minLength: 0) + Button("Cancel") { + callback(.cancel) + } + .keyboardShortcut(.defaultAction) + .accessibilityIdentifier("compare.apply.cancel") + Button(applyTitle, role: .destructive) { + callback(.apply) + } + .disabled(!canApply) + .accessibilityIdentifier("compare.apply.confirm") + } + .padding(16) + } + + private var applyTitle: String { + String(format: String(localized: "Apply to %@"), targetName) + } + + private var canApply: Bool { + session.canApply && session.unacknowledgedHazardCount == 0 && session.runnableStatementCount > 0 + } + + private func countBadge(_ label: String, _ count: Int, symbol: String, tint: Color) -> some View { + HStack(spacing: 4) { + Image(systemName: symbol) + .foregroundStyle(count > 0 ? tint : Color.secondary) + Text(label) + Text(count, format: .number) + .monospacedDigit() + .fontWeight(.semibold) + } + .font(.callout) + } + + private func noticeLabel(_ text: String, systemImage: String) -> some View { + Label { + Text(text) + .fixedSize(horizontal: false, vertical: true) + } icon: { + Image(systemName: systemImage) + } + .font(.callout) + .foregroundStyle(CompareStatusStyle.warning) + } +} diff --git a/TablePro/Views/Compare/CompareDataPlansView.swift b/TablePro/Views/Compare/CompareDataPlansView.swift new file mode 100644 index 000000000..f837620f5 --- /dev/null +++ b/TablePro/Views/Compare/CompareDataPlansView.swift @@ -0,0 +1,210 @@ +// +// CompareDataPlansView.swift +// TablePro +// +// The tables a data comparison can walk, and the counts it found. +// +// A plan starts excluded on purpose. A first Compare that opted every table in +// would stream every row of every table before the user had chosen anything, so +// the list says why it is empty rather than looking broken. +// + +import SwiftUI + +internal struct CompareDataPlansView: View { + @Bindable internal var session: CompareSyncSession + internal let onCompare: () -> Void + + @State private var sortOrder = [KeyPathComparator(\DataComparePlan.id)] + + @Environment(\.accessibilityDifferentiateWithoutColor) private var differentiateWithoutColor + + internal var body: some View { + if session.dataPlans.isEmpty { + emptyState + } else { + plansTable + } + } + + // MARK: - Table + + private var plansTable: some View { + Table( + session.dataPlans.sorted(using: sortOrder), + selection: $session.selectedPlanId, + sortOrder: $sortOrder + ) { + TableColumn("Include") { plan in + Toggle(String(localized: "Include this table in the comparison"), isOn: enabledBinding(plan)) + .labelsHidden() + .toggleStyle(.checkbox) + .disabled(!plan.isComparable) + .help(plan.unavailableReason ?? String(localized: "Include this table in the comparison")) + .accessibilityIdentifier("compare.plans.include.\(plan.id)") + } + .width(min: 56, ideal: 64) + + TableColumn("Table", value: \.id) { plan in + Text(plan.id) + .lineLimit(1) + .truncationMode(.middle) + .help(plan.id) + } + + TableColumn("Key") { plan in + keyCell(plan) + } + + TableColumn("Insert") { plan in + countCell(plan.summary?.insertCount, kind: .insert) + } + + TableColumn("Update") { plan in + countCell(plan.summary?.updateCount, kind: .update) + } + + TableColumn("Delete") { plan in + countCell(plan.summary?.deleteCount, kind: .delete) + } + + TableColumn("Same") { plan in + countCell(plan.summary?.identicalCount, kind: .identical) + } + } + .contextMenu(forSelectionType: DataComparePlan.ID.self) { selection in + planCommands(for: selection) + } + .safeAreaInset(edge: .top, spacing: 0) { + selectionHeader + } + } + + @ViewBuilder + private func planCommands(for selection: Set) -> some View { + let comparable = session.dataPlans + .filter { selection.contains($0.id) && $0.isComparable } + .map { $0.id } + Button("Include") { + for id in comparable { + session.setPlanEnabled(true, for: id) + } + } + .disabled(comparable.isEmpty) + Button("Exclude") { + for id in comparable { + session.setPlanEnabled(false, for: id) + } + } + .disabled(comparable.isEmpty) + Divider() + Button("Include Every Table") { + session.setAllPlansEnabled(true) + } + Button("Exclude Every Table") { + session.setAllPlansEnabled(false) + } + } + + // MARK: - Header + + private var selectionHeader: some View { + VStack(alignment: .leading, spacing: 4) { + HStack(spacing: 8) { + Text(selectionSummary) + .font(.callout) + .foregroundStyle(.secondary) + Spacer(minLength: 0) + Menu(String(localized: "Select")) { + Button("All") { + session.setAllPlansEnabled(true) + } + Button("None") { + session.setAllPlansEnabled(false) + } + } + .fixedSize() + .accessibilityIdentifier("compare.plans.select") + } + if enabledPlanCount == 0 { + Text("Tables start out of the comparison so a first run cannot stream every row.") + .font(.caption) + .foregroundStyle(.secondary) + .fixedSize(horizontal: false, vertical: true) + } + } + .padding(.horizontal, 12) + .padding(.vertical, 6) + .background(.bar) + } + + private var enabledPlanCount: Int { + session.dataPlans.filter { $0.isEnabled }.count + } + + private var selectionSummary: String { + String( + format: String(localized: "%1$d of %2$d tables will be compared."), + enabledPlanCount, session.dataPlans.count + ) + } + + // MARK: - Cells + + @ViewBuilder + private func keyCell(_ plan: DataComparePlan) -> some View { + if let reason = plan.unavailableReason { + Label { + Text(reason) + .lineLimit(1) + } icon: { + Image(systemName: "exclamationmark.triangle.fill") + } + .foregroundStyle(differentiateWithoutColor ? .primary : CompareStatusStyle.warning) + .help(reason) + } else { + Text(plan.keyColumns.joined(separator: ", ")) + .foregroundStyle(.secondary) + .lineLimit(1) + .help(plan.keyColumns.joined(separator: ", ")) + } + } + + /// A table that has not been compared shows nothing rather than a zero: no difference found + /// and no comparison run are not the same answer. + @ViewBuilder + private func countCell(_ value: Int?, kind: RowDiffKind) -> some View { + if let value { + Text(value, format: .number) + .monospacedDigit() + .foregroundStyle(countTint(value, kind: kind)) + } + } + + private func countTint(_ value: Int, kind: RowDiffKind) -> Color { + guard value > 0 else { return .secondary } + guard !differentiateWithoutColor else { return .primary } + return CompareStatusStyle.tint(for: kind) + } + + private func enabledBinding(_ plan: DataComparePlan) -> Binding { + Binding( + get: { plan.isEnabled }, + set: { session.setPlanEnabled($0, for: plan.id) } + ) + } + + // MARK: - Empty state + + private var emptyState: some View { + ContentUnavailableView { + Label("No Tables Yet", systemImage: "tablecells") + } description: { + Text("Compare lists the tables both sides share. Choose the tables to compare, then press Compare.") + } actions: { + Button("Compare", action: onCompare) + .disabled(!session.canCompare) + .accessibilityIdentifier("compare.plans.compare") + } + } +} diff --git a/TablePro/Views/Compare/CompareDetailView.swift b/TablePro/Views/Compare/CompareDetailView.swift new file mode 100644 index 000000000..1f840c241 --- /dev/null +++ b/TablePro/Views/Compare/CompareDetailView.swift @@ -0,0 +1,148 @@ +// +// CompareDetailView.swift +// TablePro +// +// The right-hand pane: the definition of the selected object, the rows of the +// selected table, or the script the whole comparison would run. +// +// All three are reachable at any time. Nothing here is a step, so a user who +// wants to see the script before choosing what to include can. +// + +import SwiftUI + +internal struct CompareDetailView: View { + @Bindable internal var session: CompareSyncSession + internal let onCompare: () -> Void + internal let onGenerateScript: () -> Void + + internal var body: some View { + VStack(spacing: 0) { + paneSelector + Divider() + paneContent + } + } + + private var paneSelector: some View { + Picker(String(localized: "Detail"), selection: $session.detailPane) { + ForEach(CompareDetailPane.allCases, id: \.self) { pane in + Text(pane.title).tag(pane) + } + } + .pickerStyle(.segmented) + .labelsHidden() + .fixedSize() + .padding(.vertical, 8) + .frame(maxWidth: .infinity) + } + + @ViewBuilder + private var paneContent: some View { + switch session.detailPane { + case .definitions: + CompareDefinitionsPane(session: session) + case .rows: + CompareRowDiffPane(session: session, onCompare: onCompare) + case .script: + CompareScriptPane(session: session, onGenerateScript: onGenerateScript) + } + } +} + +internal struct CompareDefinitionsPane: View { + @Bindable internal var session: CompareSyncSession + + internal var body: some View { + if let result = session.selectedResult { + ScrollView { + definitionBody(result) + } + } else if session.mode == .data { + ContentUnavailableView { + Label("Definitions Compare Structure", systemImage: "doc.text.magnifyingglass") + } description: { + Text("Switch the comparison to Structure to see definitions.") + } + } else { + ContentUnavailableView { + Label("No Object Selected", systemImage: "doc.text") + } description: { + Text("Select an object to see its definition on both sides.") + } + } + } + + private func definitionBody(_ result: CompareObjectResult) -> some View { + VStack(alignment: .leading, spacing: 16) { + if let error = result.comparisonError { + Label { + Text(error) + .textSelection(.enabled) + } icon: { + Image(systemName: "exclamationmark.triangle.fill") + } + .foregroundStyle(CompareStatusStyle.warning) + .fixedSize(horizontal: false, vertical: true) + } + + StructureDefinitionDiffView( + sourceLines: result.sourceDefinition, + targetLines: result.targetDefinition + ) + + if !result.changes.isEmpty { + changesSection(result.changes) + } + + if !result.notes.isEmpty { + notesSection(result.notes) + } + } + .padding(16) + .frame(maxWidth: .infinity, alignment: .leading) + } + + private func changesSection(_ changes: [SchemaChange]) -> some View { + VStack(alignment: .leading, spacing: 6) { + Text("Changes") + .font(.subheadline.weight(.semibold)) + ForEach(Array(changes.enumerated()), id: \.offset) { _, change in + Label { + Text(change.description) + .textSelection(.enabled) + } icon: { + Image(systemName: change.isDestructive ? "exclamationmark.triangle.fill" : "pencil") + } + .foregroundStyle(changeTint(change)) + .font(.callout) + .fixedSize(horizontal: false, vertical: true) + } + } + .frame(maxWidth: .infinity, alignment: .leading) + } + + private func notesSection(_ notes: [String]) -> some View { + VStack(alignment: .leading, spacing: 6) { + Text("Notes") + .font(.subheadline.weight(.semibold)) + ForEach(notes, id: \.self) { note in + Label { + Text(note) + .textSelection(.enabled) + } icon: { + Image(systemName: "info.circle") + } + .font(.callout) + .foregroundStyle(.secondary) + .fixedSize(horizontal: false, vertical: true) + } + } + .frame(maxWidth: .infinity, alignment: .leading) + } + + private func changeTint(_ change: SchemaChange) -> Color { + guard change.isDestructive else { return .primary } + return CompareStatusStyle.warning + } +} diff --git a/TablePro/Views/Compare/CompareEndpointMenuBuilder.swift b/TablePro/Views/Compare/CompareEndpointMenuBuilder.swift new file mode 100644 index 000000000..55056b78c --- /dev/null +++ b/TablePro/Views/Compare/CompareEndpointMenuBuilder.swift @@ -0,0 +1,288 @@ +// +// CompareEndpointMenuBuilder.swift +// TablePro +// +// The Source and Target toolbar popups. +// +// An endpoint is a database, not a connection. Picking only a connection is +// what made two databases on one server impossible to compare and left the +// schema unset, so the menu is connection then database then schema, and the +// deeper levels load when their submenu opens rather than on every build. +// + +import AppKit +import SwiftUI + +@MainActor +internal final class CompareEndpointMenuBuilder: NSObject, NSMenuDelegate { + internal enum Side { + case source + case target + + internal var title: String { + switch self { + case .source: return String(localized: "Source") + case .target: return String(localized: "Target") + } + } + + internal var caption: String { + switch self { + case .source: return String(localized: "Will not change") + case .target: return String(localized: "Will be changed") + } + } + + internal var symbol: String { + switch self { + case .source: return "arrow.up.right.square" + case .target: return "arrow.down.right.square" + } + } + + internal var routeToken: String { + self == .source ? "source" : "target" + } + + internal init?(routeToken: String) { + switch routeToken { + case "source": self = .source + case "target": self = .target + default: return nil + } + } + } + + private let session: CompareSyncSession + private let onChange: () -> Void + private let metadata = CompareMetadataService() + + private var items: [Side: NSMenuToolbarItem] = [:] + private var databasesByConnection: [UUID: [String]] = [:] + private var schemasByEndpoint: [String: [String]] = [:] + private var loading: Set = [] + + internal init(session: CompareSyncSession, onChange: @escaping () -> Void) { + self.session = session + self.onChange = onChange + super.init() + } + + internal func item(for side: Side, identifier: NSToolbarItem.Identifier) -> NSToolbarItem { + let item = NSMenuToolbarItem(itemIdentifier: identifier) + item.label = side.title + item.paletteLabel = side.title + item.toolTip = side.caption + item.image = NSImage(systemSymbolName: side.symbol, accessibilityDescription: side.title) + item.showsIndicator = true + let menu = NSMenu() + menu.delegate = self + menu.identifier = NSUserInterfaceItemIdentifier(side.routeToken) + item.menu = menu + items[side] = item + refreshTitles() + return item + } + + internal func refreshTitles() { + for (side, item) in items { + let endpoint = side == .source ? session.source : session.target + item.title = endpoint?.qualifiedDescription ?? String(format: chooseFormat, side.title) + } + } + + private var chooseFormat: String { + String(localized: "Choose %@") + } + + // MARK: - Menu construction + + internal func menuNeedsUpdate(_ menu: NSMenu) { + let parts = (menu.identifier?.rawValue ?? "").split(separator: "|").map(String.init) + guard let first = parts.first, let side = Side(routeToken: first) else { return } + if parts.count > 1 { + switch parts[1] { + case "db": + guard parts.count > 2, let connectionId = UUID(uuidString: parts[2]) else { return } + databaseMenuNeedsUpdate(menu, side: side, connectionId: connectionId) + case "schema": + guard parts.count > 3, let connectionId = UUID(uuidString: parts[2]) else { return } + schemaMenuNeedsUpdate( + menu, side: side, connectionId: connectionId, + database: parts[3...].joined(separator: "|") + ) + default: + return + } + return + } + menu.removeAllItems() + let connections = ConnectionStorage.shared.loadConnections() + guard !connections.isEmpty else { + let empty = NSMenuItem(title: String(localized: "No saved connections"), action: nil, keyEquivalent: "") + empty.isEnabled = false + menu.addItem(empty) + return + } + for connection in connections { + menu.addItem(connectionItem(connection, side: side)) + } + } + + private func connectionItem(_ connection: DatabaseConnection, side: Side) -> NSMenuItem { + let item = NSMenuItem(title: connection.name, action: nil, keyEquivalent: "") + item.image = colorSwatch(connection.color) + + if side == .target, connection.safeModeLevel == .readOnly { + item.isEnabled = false + item.toolTip = String(localized: "Read-Only. Choose a different connection to write changes to.") + return item + } + + let submenu = NSMenu() + submenu.delegate = self + submenu.identifier = NSUserInterfaceItemIdentifier( + "\(side.routeToken)|db|\(connection.id.uuidString)" + ) + item.submenu = submenu + return item + } + + private func databaseMenuNeedsUpdate(_ menu: NSMenu, side: Side, connectionId: UUID) { + menu.removeAllItems() + guard let connection = ConnectionStorage.shared.loadConnections().first(where: { $0.id == connectionId }) else { + return + } + guard let databases = databasesByConnection[connectionId] else { + menu.addItem(loadingItem()) + load(databasesFor: connection, menu: menu) + return + } + guard !databases.isEmpty else { + menu.addItem(pick( + endpoint: CompareSyncEndpoint.from(connection: connection), + side: side, + title: connection.database ?? connection.name + )) + return + } + for database in databases { + let endpoint = CompareSyncEndpoint.from(connection: connection, database: database) + if PluginManager.shared.supportsSchemaSwitching(for: connection.type) { + let item = NSMenuItem(title: database, action: nil, keyEquivalent: "") + let submenu = NSMenu() + submenu.delegate = self + submenu.identifier = NSUserInterfaceItemIdentifier( + "\(side.routeToken)|schema|\(connectionId.uuidString)|\(database)" + ) + item.submenu = submenu + menu.addItem(item) + } else { + menu.addItem(pick(endpoint: endpoint, side: side, title: database)) + } + } + } + + private func schemaMenuNeedsUpdate(_ menu: NSMenu, side: Side, connectionId: UUID, database: String) { + menu.removeAllItems() + guard let connection = ConnectionStorage.shared.loadConnections().first(where: { $0.id == connectionId }) else { + return + } + let base = CompareSyncEndpoint.from(connection: connection, database: database) + menu.addItem(pick(endpoint: base, side: side, title: String(localized: "All schemas"))) + + let key = "\(connectionId.uuidString)|\(database)" + guard let schemas = schemasByEndpoint[key] else { + menu.addItem(loadingItem()) + load(schemasFor: base, connection: connection, key: key, menu: menu) + return + } + guard !schemas.isEmpty else { return } + menu.addItem(.separator()) + for schema in schemas { + menu.addItem(pick(endpoint: base.withSchema(schema), side: side, title: schema)) + } + } + + private func pick(endpoint: CompareSyncEndpoint, side: Side, title: String) -> NSMenuItem { + let item = NSMenuItem(title: title, action: #selector(select(_:)), keyEquivalent: "") + item.target = self + item.representedObject = CompareEndpointSelection(side: side, endpoint: endpoint) + let current = side == .source ? session.source : session.target + item.state = current?.id == endpoint.id ? .on : .off + return item + } + + private func loadingItem() -> NSMenuItem { + let item = NSMenuItem(title: String(localized: "Loading…"), action: nil, keyEquivalent: "") + item.isEnabled = false + return item + } + + @objc private func select(_ sender: NSMenuItem) { + guard let selection = sender.representedObject as? CompareEndpointSelection else { return } + switch selection.side { + case .source: session.source = selection.endpoint + case .target: session.target = selection.endpoint + } + refreshTitles() + onChange() + } + + // MARK: - Lazy loads + + /// A menu cannot wait on a network read, so the submenu opens showing "Loading…" and is + /// rebuilt once the answer arrives. The load is keyed so a menu opened twice does not run it + /// twice. + private func load(databasesFor connection: DatabaseConnection, menu: NSMenu) { + let key = "db|\(connection.id.uuidString)" + guard loading.insert(key).inserted else { return } + let service = metadata + Task { [weak self] in + let databases = (try? await service.databases(for: connection)) ?? [] + guard let self else { return } + self.loading.remove(key) + self.databasesByConnection[connection.id] = databases + menu.update() + } + } + + private func load( + schemasFor endpoint: CompareSyncEndpoint, + connection: DatabaseConnection, + key: String, + menu: NSMenu + ) { + guard loading.insert("schema|\(key)").inserted else { return } + let service = metadata + Task { [weak self] in + let schemas = (try? await service.schemas(for: endpoint, connection: connection)) ?? [] + guard let self else { return } + self.loading.remove("schema|\(key)") + self.schemasByEndpoint[key] = schemas + menu.update() + } + } + + private func colorSwatch(_ color: ConnectionColor) -> NSImage? { + guard color != .none else { return nil } + let size = NSSize(width: 10, height: 10) + let image = NSImage(size: size) + image.lockFocus() + NSColor(color.color).setFill() + NSBezierPath(ovalIn: NSRect(origin: .zero, size: size)).fill() + image.unlockFocus() + return image + } +} + +private final class CompareEndpointSelection: NSObject { + let side: CompareEndpointMenuBuilder.Side + let endpoint: CompareSyncEndpoint + + init(side: CompareEndpointMenuBuilder.Side, endpoint: CompareSyncEndpoint) { + self.side = side + self.endpoint = endpoint + super.init() + } +} diff --git a/TablePro/Views/Compare/CompareOptionsView.swift b/TablePro/Views/Compare/CompareOptionsView.swift new file mode 100644 index 000000000..6c105028a --- /dev/null +++ b/TablePro/Views/Compare/CompareOptionsView.swift @@ -0,0 +1,212 @@ +// +// CompareOptionsView.swift +// TablePro +// +// Everything that changes what a comparison means, in one popover. +// +// Changing an option here throws the previous answer away rather than adjusting +// it. A different normalisation rule or a different tolerance is a different +// question, so the old result is not a stale version of the new one. +// + +import SwiftUI +import TableProPluginKit + +internal struct CompareOptionsView: View { + @Bindable internal var session: CompareSyncSession + + @State private var savedProfiles: [CompareSyncProfile] = [] + @State private var newProfileName = "" + + internal var body: some View { + Form { + objectKindsSection + structureSection + dataSection + executionSection + savedComparisonsSection + } + .formStyle(.grouped) + .onAppear { + savedProfiles = session.savedProfiles + } + .onChange(of: session.mode) { + savedProfiles = session.savedProfiles + } + .onChange(of: session.includedKinds) { + session.resetComparison() + } + .onChange(of: session.structureOptions) { + session.resetComparison() + } + .onChange(of: session.dataOptions) { previous, current in + applyDataOptionChange(from: previous, to: current) + } + } + + /// A tolerance or a column set changes the answer, so every summary goes. A write-direction + /// toggle only changes which statements come out of an answer that still stands, so the script + /// goes and the summaries stay. + private func applyDataOptionChange(from previous: DataCompareOptions, to current: DataCompareOptions) { + let comparisonChanged = previous.floatTolerance != current.floatTolerance + || previous.timestampFractionalDigits != current.timestampFractionalDigits + || previous.excludedFromComparison != current.excludedFromComparison + || previous.keyColumns != current.keyColumns + if comparisonChanged { + session.clearDataSummaries() + } else { + session.invalidateScript() + } + } + + // MARK: - Objects + + private var objectKindsSection: some View { + Section { + ForEach(CompareObjectKind.allCases, id: \.self) { kind in + Toggle(kind.displayName, isOn: kindBinding(kind)) + .disabled(kind == .table) + .accessibilityIdentifier("compare.options.kind.\(kind.rawValue)") + } + } header: { + Text("Objects to Compare") + } footer: { + Text("Tables always take part.") + } + } + + private func kindBinding(_ kind: CompareObjectKind) -> Binding { + Binding( + get: { session.includedKinds.contains(kind) }, + set: { included in + guard kind != .table else { return } + if included { + session.includedKinds.insert(kind) + } else { + session.includedKinds.remove(kind) + } + } + ) + } + + // MARK: - Structure + + private var structureSection: some View { + Section { + Toggle("Identifier case", isOn: $session.structureOptions.ignoreIdentifierCase) + Toggle("Column order", isOn: $session.structureOptions.ignoreColumnOrder) + Toggle("Whitespace in text", isOn: $session.structureOptions.ignoreWhitespaceInText) + Toggle("Auto-increment seed", isOn: $session.structureOptions.ignoreAutoIncrementSeed) + Toggle("Collation and character set", isOn: $session.structureOptions.ignoreCollationAndCharset) + Toggle("Comments and owners", isOn: $session.structureOptions.ignoreCommentsAndOwners) + } header: { + Text("Structure Comparison") + } footer: { + Text("What is switched on here is ignored when two structures are compared. These drift between environments by design.") + } + } + + // MARK: - Data + + private var dataSection: some View { + Section { + Toggle("Insert rows the target is missing", isOn: $session.dataOptions.insertMissingRows) + Toggle("Update rows that differ", isOn: $session.dataOptions.updateDifferingRows) + Toggle("Delete rows the source does not have", isOn: $session.dataOptions.deleteExtraRows) + + LabeledContent("Numeric tolerance") { + TextField( + String(localized: "Numeric tolerance"), + value: $session.dataOptions.floatTolerance, + format: .number + ) + .labelsHidden() + .multilineTextAlignment(.trailing) + .accessibilityIdentifier("compare.options.floatTolerance") + } + + LabeledContent("Timestamp digits compared") { + Stepper(value: $session.dataOptions.timestampFractionalDigits, in: 0 ... 9) { + Text(session.dataOptions.timestampFractionalDigits, format: .number) + .monospacedDigit() + } + .accessibilityIdentifier("compare.options.timestampDigits") + } + } header: { + Text("Data Comparison") + } footer: { + Text("Delete is off by default, so a first run cannot remove a row from the target.") + } + } + + // MARK: - Execution + + private var executionSection: some View { + Section { + Picker("On error", selection: $session.executionSettings.errorHandling) { + Text("Stop and roll back").tag(ImportErrorHandling.stopAndRollback) + Text("Stop and keep what ran").tag(ImportErrorHandling.stopAndCommit) + Text("Skip and continue").tag(ImportErrorHandling.skipAndContinue) + } + Toggle("Run in a transaction", isOn: $session.executionSettings.wrapInTransaction) + .disabled(session.executionSettings.errorHandling == .skipAndContinue) + } header: { + Text("Execution") + } footer: { + if session.executionSettings.errorHandling == .skipAndContinue { + Text("A transaction cannot be combined with skip and continue: together they would leave the target half applied.") + } + } + } + + // MARK: - Saved comparisons + + private var savedComparisonsSection: some View { + Section { + if savedProfiles.isEmpty { + Text("No saved setups for this source and target.") + .foregroundStyle(.secondary) + } else { + ForEach(savedProfiles) { profile in + profileRow(profile) + } + } + HStack(spacing: 8) { + TextField(String(localized: "Name"), text: $newProfileName) + .accessibilityIdentifier("compare.options.profileName") + Button("Save") { + session.saveProfile(named: newProfileName) + newProfileName = "" + savedProfiles = session.savedProfiles + } + .disabled(!canSaveProfile) + .accessibilityIdentifier("compare.options.saveProfile") + } + } header: { + Text("Saved Comparisons") + } + } + + private func profileRow(_ profile: CompareSyncProfile) -> some View { + HStack(spacing: 8) { + Text(profile.name) + .lineLimit(1) + .truncationMode(.middle) + Spacer(minLength: 0) + Button("Load") { + session.apply(profile) + } + .accessibilityIdentifier("compare.options.loadProfile.\(profile.id.uuidString)") + Button("Delete", role: .destructive) { + session.deleteProfile(profile) + savedProfiles = session.savedProfiles + } + .accessibilityIdentifier("compare.options.deleteProfile.\(profile.id.uuidString)") + } + } + + private var canSaveProfile: Bool { + guard session.source != nil, session.target != nil else { return false } + return !newProfileName.trimmingCharacters(in: .whitespaces).isEmpty + } +} diff --git a/TablePro/Views/Compare/CompareProgressView.swift b/TablePro/Views/Compare/CompareProgressView.swift new file mode 100644 index 000000000..998a5c465 --- /dev/null +++ b/TablePro/Views/Compare/CompareProgressView.swift @@ -0,0 +1,86 @@ +// +// CompareProgressView.swift +// TablePro +// +// What the comparison is doing right now, and how to stop it. +// +// Cancel updates the button synchronously and never waits on the driver: +// `Task.cancel()` is cooperative, so a driver already blocked in a C call +// cannot be interrupted and may complete long after the user gave up. +// +// The root carries no padding of its own, so a host that already draws a strip +// around it does not end up padding it twice. +// + +import SwiftUI + +internal struct CompareProgressView: View { + @Bindable internal var session: CompareSyncSession + + /// A host that already shows the banner passes `false` rather than repeating it. + internal var showsMessages = true + + internal var body: some View { + VStack(alignment: .leading, spacing: 8) { + if session.isBusy { + activityRow + } + if showsMessages { + messages + } + } + } + + private var activityRow: some View { + HStack(spacing: 8) { + progressBar + .frame(maxWidth: 200) + Button("Cancel") { + session.cancelRunningWork() + } + .controlSize(.small) + .accessibilityIdentifier("compare.progress.cancel") + } + } + + /// `session.progress` exists only for a run whose total is known. Everything else reports no + /// countable unit of work, so it stays indeterminate rather than inventing one. + @ViewBuilder + private var progressBar: some View { + if let progress = session.progress { + ProgressView(progress) + .progressViewStyle(.linear) + } else { + ProgressView() + .progressViewStyle(.linear) + } + } + + @ViewBuilder + private var messages: some View { + Text(session.bannerText) + .font(.callout) + .foregroundStyle(.secondary) + .fixedSize(horizontal: false, vertical: true) + + if let message = session.errorMessage { + messageLabel(message, systemImage: "exclamationmark.triangle.fill", tint: CompareStatusStyle.error) + } + + if let message = session.informationalMessage { + messageLabel(message, systemImage: "info.circle", tint: CompareStatusStyle.warning) + } + } + + private func messageLabel(_ text: String, systemImage: String, tint: Color) -> some View { + Label { + Text(text) + .textSelection(.enabled) + .fixedSize(horizontal: false, vertical: true) + } icon: { + Image(systemName: systemImage) + } + .font(.callout) + .foregroundStyle(tint) + } +} diff --git a/TablePro/Views/Compare/CompareResultGrouping.swift b/TablePro/Views/Compare/CompareResultGrouping.swift new file mode 100644 index 000000000..9ae59cce0 --- /dev/null +++ b/TablePro/Views/Compare/CompareResultGrouping.swift @@ -0,0 +1,174 @@ +// +// CompareResultGrouping.swift +// TablePro +// +// Turns a comparison report into the rows a `Table` draws, grouped the way the +// session asks for. +// +// The grouping is real: it produces a section per difference or per object kind +// and the table renders each as a `DisclosureTableRow`. The picker this replaces +// only re-sorted, so "Group by Object Type" looked like it did nothing. +// +// Pure and free of SwiftUI so the shape of a grouping can be checked without a +// view. +// + +import Foundation + +internal struct CompareResultRow: Identifiable, Hashable { + internal enum Kind: Hashable { + case group(memberIds: [String]) + case object(CompareObjectResult) + } + + internal let id: String + internal let objectName: String + internal let typeName: String + internal let differenceName: String + internal let changeSummary: String + internal let kind: Kind + + internal var result: CompareObjectResult? { + guard case .object(let result) = kind else { return nil } + return result + } + + internal var memberIds: [String] { + guard case .group(let ids) = kind else { return [] } + return ids + } + + internal var isGroup: Bool { + result == nil + } +} + +internal struct CompareResultGroup: Identifiable { + internal let header: CompareResultRow + internal let rows: [CompareResultRow] + + internal var id: String { header.id } +} + +internal enum CompareResultGrouping { + /// A group header shares the table's row type, so its identifier has to be one no object can + /// produce: an object identifier is `kind|schema|name|signature` and never carries this prefix. + internal static let groupIdentifierPrefix = "compare-group|" + + internal static func isGroupIdentifier(_ identifier: String) -> Bool { + identifier.hasPrefix(groupIdentifierPrefix) + } + + internal static func rows( + from results: [CompareObjectResult], + sortedUsing comparators: [KeyPathComparator] + ) -> [CompareResultRow] { + results.map(row(for:)).sorted(using: comparators) + } + + internal static func groups( + from results: [CompareObjectResult], + grouping: CompareGrouping, + sortedUsing comparators: [KeyPathComparator] + ) -> [CompareResultGroup] { + switch grouping { + case .byDifference: + let buckets = Dictionary(grouping: results, by: { $0.status }) + return statusOrder.compactMap { status in + group( + named: CompareStatusStyle.title(for: status), + identifier: status.rawValue, + results: buckets[status] ?? [], + comparators: comparators + ) + } + case .byObjectType: + let buckets = Dictionary(grouping: results, by: { $0.identity.kind }) + return CompareObjectKind.allCases.compactMap { kind in + group( + named: kind.displayName, + identifier: kind.rawValue, + results: buckets[kind] ?? [], + comparators: comparators + ) + } + case .none: + return [] + } + } + + /// Objects whose metadata could not be read keep their own section whatever the grouping is: + /// they have no difference and no usable action, so folding them in with the rest would + /// present a failure as a result. + internal static func uncomparableGroup( + from results: [CompareObjectResult], + sortedUsing comparators: [KeyPathComparator] + ) -> CompareResultGroup? { + group( + named: String(localized: "Could Not Compare"), + identifier: "uncomparable", + results: results, + comparators: comparators + ) + } + + internal static func objectIds( + in selection: Set, + groups: [CompareResultGroup] + ) -> [String] { + var resolved: [String] = [] + for identifier in selection.sorted() { + guard isGroupIdentifier(identifier) else { + resolved.append(identifier) + continue + } + guard let group = groups.first(where: { $0.id == identifier }) else { continue } + resolved.append(contentsOf: group.header.memberIds) + } + return resolved + } + + private static let statusOrder: [TableDiffStatus] = [.onlyInSource, .onlyInTarget, .differs, .identical] + + private static func group( + named name: String, + identifier: String, + results: [CompareObjectResult], + comparators: [KeyPathComparator] + ) -> CompareResultGroup? { + guard !results.isEmpty else { return nil } + let includableIds = results + .filter { $0.isComparable && $0.suggestedAction != .skip } + .map { $0.id } + let header = CompareResultRow( + id: groupIdentifierPrefix + identifier, + objectName: name, + typeName: "", + differenceName: "", + changeSummary: results.count.formatted(), + kind: .group(memberIds: includableIds) + ) + return CompareResultGroup(header: header, rows: results.map(row(for:)).sorted(using: comparators)) + } + + private static func row(for result: CompareObjectResult) -> CompareResultRow { + CompareResultRow( + id: result.id, + objectName: result.identity.displayName, + typeName: result.identity.kind.displayName, + differenceName: result.isComparable + ? CompareStatusStyle.title(for: result.status) + : CompareStatusStyle.notComparedTitle, + changeSummary: changeSummary(for: result), + kind: .object(result) + ) + } + + /// A source-defined object has no parsed change list, only a body of SQL, so it deliberately + /// summarises to nothing rather than to a count of zero. + private static func changeSummary(for result: CompareObjectResult) -> String { + if let error = result.comparisonError { return error } + guard result.identity.kind == .table, !result.changes.isEmpty else { return "" } + return String(format: String(localized: "%d changes"), result.changes.count) + } +} diff --git a/TablePro/Views/Compare/CompareResultsView.swift b/TablePro/Views/Compare/CompareResultsView.swift new file mode 100644 index 000000000..1c2df19cf --- /dev/null +++ b/TablePro/Views/Compare/CompareResultsView.swift @@ -0,0 +1,216 @@ +// +// CompareResultsView.swift +// TablePro +// +// Every compared object in one table, grouped the way the session asks for. +// +// Grouping produces real sections through `DisclosureTableRow`, and a section +// header carries the include state of everything under it, so including a whole +// difference class is one click rather than one per row. +// + +import SwiftUI + +internal struct CompareResultsView: View { + @Bindable internal var session: CompareSyncSession + internal let onCompare: () -> Void + + @State private var sortOrder = [KeyPathComparator(\CompareResultRow.objectName)] + + @Environment(\.accessibilityDifferentiateWithoutColor) private var differentiateWithoutColor + + internal var body: some View { + let visible = session.visibleResults + let uncomparable = session.report?.uncomparable ?? [] + if session.report == nil { + noReportState + } else if visible.isEmpty, uncomparable.isEmpty { + emptyResultState + } else { + resultsTable(visible: visible, uncomparable: uncomparable) + } + } + + // MARK: - Table + + private func resultsTable( + visible: [CompareObjectResult], + uncomparable: [CompareObjectResult] + ) -> some View { + let groups = CompareResultGrouping.groups( + from: visible, grouping: session.grouping, sortedUsing: sortOrder + ) + let flatRows = CompareResultGrouping.rows(from: visible, sortedUsing: sortOrder) + let unreadable = CompareResultGrouping.uncomparableGroup(from: uncomparable, sortedUsing: sortOrder) + let selectableGroups = groups + (unreadable.map { [$0] } ?? []) + + return Table(of: CompareResultRow.self, selection: $session.selectedObjectId, sortOrder: $sortOrder) { + TableColumn("Include") { row in + includeToggle(for: row) + } + .width(min: 52, ideal: 60) + + TableColumn("Object", value: \.objectName) { row in + Text(row.objectName) + .fontWeight(row.isGroup ? .semibold : .regular) + .lineLimit(1) + .truncationMode(.middle) + .help(row.objectName) + } + + TableColumn("Type", value: \.typeName) { row in + Text(row.typeName) + .foregroundStyle(.secondary) + .lineLimit(1) + } + + TableColumn("Difference", value: \.differenceName) { row in + differenceCell(row) + } + + TableColumn("Change", value: \.changeSummary) { row in + Text(row.changeSummary) + .foregroundStyle(.secondary) + .lineLimit(1) + .help(row.changeSummary) + } + } rows: { + if session.grouping == .none { + ForEach(flatRows) { row in + SwiftUI.TableRow(row) + } + } else { + ForEach(groups) { group in + DisclosureTableRow(group.header) { + ForEach(group.rows) { row in + SwiftUI.TableRow(row) + } + } + } + } + if let unreadable { + DisclosureTableRow(unreadable.header) { + ForEach(unreadable.rows) { row in + SwiftUI.TableRow(row) + } + } + } + } + .contextMenu(forSelectionType: CompareResultRow.ID.self) { selection in + inclusionCommands(for: selection, groups: selectableGroups) + } + } + + @ViewBuilder + private func inclusionCommands(for selection: Set, groups: [CompareResultGroup]) -> some View { + let ids = CompareResultGrouping.objectIds(in: selection, groups: groups) + Button("Include") { + session.setIncluded(true, forIds: ids) + } + .disabled(ids.isEmpty) + Button("Exclude") { + session.setIncluded(false, forIds: ids) + } + .disabled(ids.isEmpty) + } + + // MARK: - Cells + + @ViewBuilder + private func includeToggle(for row: CompareResultRow) -> some View { + switch row.kind { + case .group(let memberIds): + Toggle(String(localized: "Include every object in this group"), isOn: groupInclusion(memberIds)) + .labelsHidden() + .toggleStyle(.checkbox) + .disabled(memberIds.isEmpty) + .accessibilityIdentifier("compare.results.includeGroup.\(row.id)") + case .object(let result): + Toggle(String(localized: "Include this object"), isOn: objectInclusion(result)) + .labelsHidden() + .toggleStyle(.checkbox) + .disabled(!result.isComparable || result.suggestedAction == .skip) + .accessibilityIdentifier("compare.results.include.\(result.id)") + } + } + + @ViewBuilder + private func differenceCell(_ row: CompareResultRow) -> some View { + if let result = row.result { + Label { + Text(row.differenceName) + .lineLimit(1) + } icon: { + Image(systemName: symbolName(for: result)) + } + .foregroundStyle(tint(for: result)) + } + } + + private func symbolName(for result: CompareObjectResult) -> String { + guard result.isComparable else { return "exclamationmark.triangle.fill" } + return CompareStatusStyle.symbolName(for: result.status) + } + + private func tint(for result: CompareObjectResult) -> Color { + guard !differentiateWithoutColor else { return .primary } + guard result.isComparable else { return CompareStatusStyle.warning } + return CompareStatusStyle.tint(for: result.status) + } + + // MARK: - Inclusion + + private func objectInclusion(_ result: CompareObjectResult) -> Binding { + Binding( + get: { session.isIncluded(result) }, + set: { session.setIncluded($0, for: result) } + ) + } + + private func groupInclusion(_ memberIds: [String]) -> Binding { + Binding( + get: { !memberIds.isEmpty && memberIds.allSatisfy { session.actions[$0, default: .skip] != .skip } }, + set: { session.setIncluded($0, forIds: memberIds) } + ) + } + + // MARK: - Empty states + + private var noReportState: some View { + ContentUnavailableView { + Label("No Comparison Yet", systemImage: "arrow.left.arrow.right.circle") + } description: { + Text("Choose a source and a target, then compare them.") + } actions: { + Button("Compare", action: onCompare) + .disabled(!session.canCompare) + .accessibilityIdentifier("compare.results.compare") + } + } + + @ViewBuilder + private var emptyResultState: some View { + if session.report?.differenceCount == 0 { + ContentUnavailableView { + Label("No Differences", systemImage: "equal.circle") + } description: { + Text("Every object that was compared matches.") + } actions: { + if !session.showsIdentical { + Button("Show Identical Objects") { + session.showsIdentical = true + } + .accessibilityIdentifier("compare.results.showIdentical") + } + } + } else if !session.searchText.isEmpty { + ContentUnavailableView.search(text: session.searchText) + } else { + ContentUnavailableView { + Label("Nothing to Show", systemImage: "line.3.horizontal.decrease.circle") + } description: { + Text("The object types taking part in the comparison are set in Options.") + } + } + } +} diff --git a/TablePro/Views/Compare/CompareRowDiffPane.swift b/TablePro/Views/Compare/CompareRowDiffPane.swift new file mode 100644 index 000000000..47e20e41f --- /dev/null +++ b/TablePro/Views/Compare/CompareRowDiffPane.swift @@ -0,0 +1,365 @@ +// +// CompareRowDiffPane.swift +// TablePro +// +// The row differences of one table, and the two column sets that decide them. +// +// The entry list is a capped preview, never the whole difference: the script is +// built from a fresh streamed pass. Anywhere the cap is in play the pane says +// so, because a list that silently stops looks like a smaller difference. +// + +import SwiftUI +import TableProPluginKit + +internal enum RowDiffFilter: String, CaseIterable, Hashable { + case all + case difference + case insert + case update + case delete + case same + + internal var title: String { + switch self { + case .all: + return String(localized: "All Rows") + case .difference: + return String(localized: "Difference") + case .insert: + return String(localized: "Insert") + case .update: + return String(localized: "Update") + case .delete: + return String(localized: "Delete") + case .same: + return String(localized: "Same") + } + } + + internal func matches(_ entry: RowDiffEntry) -> Bool { + switch self { + case .all: + return true + case .difference: + return entry.kind != .identical + case .insert: + return entry.kind == .insert + case .update: + return entry.kind == .update + case .delete: + return entry.kind == .delete + case .same: + return entry.kind == .identical + } + } +} + +internal struct CompareRowDiffPane: View { + @Bindable internal var session: CompareSyncSession + internal let onCompare: () -> Void + + @State private var filter: RowDiffFilter = .difference + + internal var body: some View { + if let plan = session.selectedPlan { + planBody(plan) + } else if session.mode == .structure { + ContentUnavailableView { + Label("Rows Compare Data", systemImage: "tablecells") + } description: { + Text("Switch the comparison to Data to see row differences.") + } + } else { + ContentUnavailableView { + Label("No Table Selected", systemImage: "tablecells") + } description: { + Text("Select a table to see its row differences.") + } + } + } + + private func planBody(_ plan: DataComparePlan) -> some View { + VStack(spacing: 0) { + columnEditors(plan) + Divider() + filterBar + if plan.summary?.truncatedEntries == true { + truncationNotice + } + Divider() + entryList(plan) + } + } + + // MARK: - Column editors + + private func columnEditors(_ plan: DataComparePlan) -> some View { + VStack(alignment: .leading, spacing: 6) { + HStack(alignment: .top, spacing: 16) { + columnMenu( + title: String(localized: "Key columns"), + summary: keySummary(plan), + systemImage: "key", + identifier: "compare.rows.keyColumns" + ) { + ForEach(plan.columns, id: \.self) { column in + Toggle(column, isOn: keyBinding(column, plan: plan)) + } + } + + columnMenu( + title: String(localized: "Compared columns"), + summary: comparedSummary(plan), + systemImage: "text.magnifyingglass", + identifier: "compare.rows.comparedColumns" + ) { + ForEach(nonKeyColumns(plan), id: \.self) { column in + Toggle(column, isOn: comparedBinding(column)) + } + } + + Spacer(minLength: 0) + } + + Text("A column left out of the comparison is still written on insert and update. Changing either list needs another comparison.") + .font(.caption) + .foregroundStyle(.secondary) + .fixedSize(horizontal: false, vertical: true) + + if session.needsRecompare { + recompareNotice + } + } + .padding(.horizontal, 12) + .padding(.vertical, 8) + } + + private func columnMenu( + title: String, + summary: String, + systemImage: String, + identifier: String, + @ViewBuilder content: () -> some View + ) -> some View { + VStack(alignment: .leading, spacing: 2) { + Text(title) + .font(.caption.weight(.semibold)) + .foregroundStyle(.secondary) + Menu { + content() + } label: { + Label(summary, systemImage: systemImage) + .lineLimit(1) + } + .fixedSize() + .accessibilityIdentifier(identifier) + } + } + + private var recompareNotice: some View { + HStack(spacing: 8) { + Label { + Text("Some tables have not been compared with the columns now chosen.") + } icon: { + Image(systemName: "exclamationmark.arrow.circlepath") + } + .font(.callout) + .foregroundStyle(CompareStatusStyle.warning) + .fixedSize(horizontal: false, vertical: true) + Button("Compare", action: onCompare) + .disabled(!session.canCompare) + .accessibilityIdentifier("compare.rows.recompare") + } + } + + // MARK: - Filter + + private var filterBar: some View { + HStack(spacing: 8) { + Picker(String(localized: "Show"), selection: $filter) { + ForEach(RowDiffFilter.allCases, id: \.self) { option in + Text(option.title).tag(option) + } + } + .fixedSize() + Spacer(minLength: 0) + } + .padding(.horizontal, 12) + .padding(.vertical, 6) + } + + private var truncationNotice: some View { + Label { + Text("This list is a capped preview. Apply covers every difference, not only the rows listed here.") + } icon: { + Image(systemName: "info.circle.fill") + } + .font(.callout) + .foregroundStyle(CompareStatusStyle.warning) + .fixedSize(horizontal: false, vertical: true) + .frame(maxWidth: .infinity, alignment: .leading) + .padding(.horizontal, 12) + .padding(.bottom, 6) + } + + // MARK: - Entries + + @ViewBuilder + private func entryList(_ plan: DataComparePlan) -> some View { + if let summary = plan.summary { + let entries = summary.entries.filter { filter.matches($0) } + if entries.isEmpty { + ContentUnavailableView { + Label("No Rows Match", systemImage: "line.3.horizontal.decrease.circle") + } description: { + Text("Change the filter to see the other rows.") + } + } else { + List(entries) { entry in + CompareRowDiffEntryView( + entry: entry, + isIncluded: rowBinding(entry, plan: plan) + ) + } + .listStyle(.inset) + } + } else { + ContentUnavailableView { + Label("Not Compared Yet", systemImage: "arrow.clockwise") + } description: { + Text(plan.unavailableReason ?? notComparedDescription) + } + } + } + + private var notComparedDescription: String { + String(localized: "Include this table and compare again to see its rows.") + } + + // MARK: - Bindings + + private func keyBinding(_ column: String, plan: DataComparePlan) -> Binding { + Binding( + get: { plan.isKeyColumn(column) }, + set: { _ in session.toggleKeyColumn(column, for: plan.id) } + ) + } + + private func comparedBinding(_ column: String) -> Binding { + Binding( + get: { session.isColumnCompared(column) }, + set: { _ in session.toggleComparedColumn(column) } + ) + } + + private func rowBinding(_ entry: RowDiffEntry, plan: DataComparePlan) -> Binding { + Binding( + get: { session.isRowIncluded(entry, in: plan) }, + set: { session.setRowIncluded($0, entry: entry, planId: plan.id) } + ) + } + + // MARK: - Summaries + + private func nonKeyColumns(_ plan: DataComparePlan) -> [String] { + plan.columns.filter { !plan.isKeyColumn($0) } + } + + private func keySummary(_ plan: DataComparePlan) -> String { + guard !plan.keyColumns.isEmpty else { return String(localized: "None chosen") } + return plan.keyColumns.joined(separator: ", ") + } + + private func comparedSummary(_ plan: DataComparePlan) -> String { + let excluded = nonKeyColumns(plan).filter { !session.isColumnCompared($0) } + guard !excluded.isEmpty else { return String(localized: "All") } + return String(format: String(localized: "%d left out"), excluded.count) + } +} + +internal struct CompareRowDiffEntryView: View { + internal let entry: RowDiffEntry + @Binding internal var isIncluded: Bool + + @Environment(\.accessibilityDifferentiateWithoutColor) private var differentiateWithoutColor + + internal var body: some View { + VStack(alignment: .leading, spacing: 3) { + HStack(spacing: 6) { + Toggle(String(localized: "Include this row"), isOn: $isIncluded) + .labelsHidden() + .toggleStyle(.checkbox) + .disabled(entry.kind == .identical) + .accessibilityIdentifier("compare.rows.include.\(entry.id.uuidString)") + + Label { + Text(CompareStatusStyle.title(for: entry.kind)) + } icon: { + Image(systemName: CompareStatusStyle.symbolName(for: entry.kind)) + } + .font(.caption) + .foregroundStyle(kindTint) + + Text(entry.keyDescription) + .font(.system(.callout, design: .monospaced)) + .textSelection(.enabled) + .lineLimit(1) + .truncationMode(.middle) + + Spacer(minLength: 0) + } + + ForEach(entry.cellDifferences, id: \.column) { difference in + cellDifferenceRow(difference) + } + } + .padding(.vertical, 2) + .listRowBackground(rowBackground) + } + + private func cellDifferenceRow(_ difference: CellDifference) -> some View { + HStack(alignment: .firstTextBaseline, spacing: 6) { + Text(difference.column) + .font(.caption.weight(.semibold)) + .lineLimit(1) + Text(Self.describe(difference.sourceValue)) + .font(.system(.caption, design: .monospaced)) + .lineLimit(1) + .truncationMode(.middle) + Image(systemName: "arrow.right") + .font(.caption2) + .foregroundStyle(.tertiary) + Text(Self.describe(difference.targetValue)) + .font(.system(.caption, design: .monospaced)) + .foregroundStyle(.secondary) + .lineLimit(1) + .truncationMode(.middle) + Spacer(minLength: 0) + Text(difference.rule.displayName) + .font(.caption2) + .foregroundStyle(.tertiary) + } + } + + private var kindTint: Color { + guard !differentiateWithoutColor else { return .primary } + return CompareStatusStyle.tint(for: entry.kind) + } + + private var rowBackground: Color { + guard !differentiateWithoutColor else { return .clear } + return CompareStatusStyle.rowTint(for: entry.kind) + } + + private static func describe(_ value: PluginCellValue) -> String { + switch value { + case .null: + return "NULL" + case .text(let text): + return text + case .bytes(let data): + return String(format: String(localized: "%d bytes"), data.count) + } + } +} diff --git a/TablePro/Views/Compare/CompareScriptPane.swift b/TablePro/Views/Compare/CompareScriptPane.swift new file mode 100644 index 000000000..1a97fccf6 --- /dev/null +++ b/TablePro/Views/Compare/CompareScriptPane.swift @@ -0,0 +1,235 @@ +// +// CompareScriptPane.swift +// TablePro +// +// The generated script, read-only, with the statements it is holding back. +// +// The script is not editable. Each statement carries the hazards the operation +// plan computed for it, and there is no way to recover those from edited text, +// so an editable script would quietly drop the only thing standing between a +// DROP COLUMN and the target. +// + +import SwiftUI +import UniformTypeIdentifiers + +internal struct CompareScriptPane: View { + @Bindable internal var session: CompareSyncSession + internal let onGenerateScript: () -> Void + + @AppStorage("structureCodeFontSize", store: AppStorageEnvironment.shared.defaults) private var fontSize = 13.0 + + @State private var isExporting = false + + internal var body: some View { + if session.statements.isEmpty { + emptyState + } else { + scriptContent + } + } + + // MARK: - Script + + private var scriptContent: some View { + let script = scriptText + return VStack(spacing: 0) { + header(script: script) + Divider() + if heldBackStatements.isEmpty { + editor(script: script) + } else { + VSplitView { + hazardList + editor(script: script) + } + } + } + .fileExporter( + isPresented: $isExporting, + document: SyncScriptDocument(text: script), + contentType: SyncScriptDocument.sqlType, + defaultFilename: exportFileName + ) { _ in } + } + + private func header(script: String) -> some View { + HStack(spacing: 12) { + Text(statementSummary) + .font(.callout) + .foregroundStyle(.secondary) + if !heldBackStatements.isEmpty { + Label { + Text(heldBackSummary) + } icon: { + Image(systemName: "hand.raised.fill") + } + .font(.callout) + .foregroundStyle(CompareStatusStyle.warning) + } + Spacer(minLength: 0) + Button("Copy") { + ClipboardService.shared.writeText(script) + } + .accessibilityIdentifier("compare.script.copy") + Button("Save\u{2026}") { + isExporting = true + } + .accessibilityIdentifier("compare.script.save") + } + .padding(.horizontal, 12) + .padding(.vertical, 8) + } + + private func editor(script: String) -> some View { + DDLTextView(ddl: script, fontSize: $fontSize, databaseType: session.target?.databaseType) + .frame(maxWidth: .infinity, maxHeight: .infinity) + } + + // MARK: - Hazards + + private var hazardList: some View { + List { + Section { + ForEach(heldBackStatements) { statement in + CompareHeldBackStatementRow(statement: statement, session: session) + } + } header: { + Text("Held Back") + } footer: { + Text("Allowing a statement applies to this run only. It is never saved.") + } + } + .listStyle(.inset) + } + + private var heldBackStatements: [SyncStatement] { + session.statements.filter { $0.isRefusedByDefault } + } + + // MARK: - Text + + private var scriptText: String { + session.statements.map { $0.sql }.joined(separator: "\n") + } + + private var exportFileName: String { + guard let target = session.target, !target.database.isEmpty else { return "sync" } + return "\(target.database)-sync" + } + + private var statementSummary: String { + String( + format: String(localized: "%1$d statements, %2$d will run."), + session.statements.count, session.runnableStatementCount + ) + } + + private var heldBackSummary: String { + String( + format: String(localized: "%1$d of %2$d allowed for this run"), + heldBackStatements.count - session.unacknowledgedHazardCount, + heldBackStatements.count + ) + } + + // MARK: - Empty state + + private var emptyState: some View { + ContentUnavailableView { + Label("No Script Yet", systemImage: "doc.plaintext") + } description: { + Text(emptyDescription) + } actions: { + Button("Generate Script", action: onGenerateScript) + .disabled(!session.canBuildScript) + .accessibilityIdentifier("compare.script.generate") + } + } + + private var emptyDescription: String { + if session.mode == .structure, !session.canGenerateStructureScript, let notice = session.crossEngineNotice { + return notice + } + guard session.selectedObjectCount > 0 else { + return String(localized: "Include at least one object, then generate the script.") + } + return String(localized: "Generate the script to see exactly what would run.") + } +} + +internal struct CompareHeldBackStatementRow: View { + internal let statement: SyncStatement + @Bindable internal var session: CompareSyncSession + + internal var body: some View { + VStack(alignment: .leading, spacing: 4) { + Toggle(isOn: allowanceBinding) { + Text(statement.summary) + .font(.callout) + } + .toggleStyle(.checkbox) + .accessibilityIdentifier("compare.script.allow.\(statement.id.uuidString)") + + ForEach(statement.hazards) { hazard in + Label { + VStack(alignment: .leading, spacing: 1) { + Text(hazard.kind.displayName) + .font(.caption.weight(.semibold)) + Text(hazard.explanation) + .font(.caption) + .foregroundStyle(.secondary) + .fixedSize(horizontal: false, vertical: true) + } + } icon: { + Image(systemName: "exclamationmark.triangle.fill") + .foregroundStyle(CompareStatusStyle.warning) + } + } + + Text(statement.sql) + .font(.system(.caption, design: .monospaced)) + .foregroundStyle(.secondary) + .textSelection(.enabled) + .lineLimit(3) + } + .padding(.vertical, 4) + } + + private var allowanceBinding: Binding { + Binding( + get: { session.executionSettings.allowedHazardStatementIds.contains(statement.id) }, + set: { allowed in + if allowed { + session.executionSettings.allowedHazardStatementIds.insert(statement.id) + } else { + session.executionSettings.allowedHazardStatementIds.remove(statement.id) + } + } + ) + } +} + +internal struct SyncScriptDocument: FileDocument { + internal static let sqlType = UTType(filenameExtension: "sql") ?? .plainText + + internal static var readableContentTypes: [UTType] { [sqlType, .plainText] } + + internal let text: String + + internal init(text: String) { + self.text = text + } + + internal init(configuration: ReadConfiguration) throws { + guard let data = configuration.file.regularFileContents, + let decoded = String(bytes: data, encoding: .utf8) else { + throw CocoaError(.fileReadCorruptFile) + } + text = decoded + } + + internal func fileWrapper(configuration: WriteConfiguration) throws -> FileWrapper { + FileWrapper(regularFileWithContents: Data(text.utf8)) + } +} diff --git a/TablePro/Views/Compare/CompareStatusBanner.swift b/TablePro/Views/Compare/CompareStatusBanner.swift deleted file mode 100644 index c062b71cb..000000000 --- a/TablePro/Views/Compare/CompareStatusBanner.swift +++ /dev/null @@ -1,121 +0,0 @@ -// -// CompareStatusBanner.swift -// TablePro -// -// States plainly whether anything has been written yet, and carries the target -// connection's colour so a production target stays visually distinct. -// - -import SwiftUI - -internal struct CompareStatusBanner: View { - internal let session: CompareSyncSession - - internal var body: some View { - HStack(spacing: 8) { - Image(systemName: symbol) - .foregroundStyle(tint) - Text(session.bannerText) - .font(.callout) - .foregroundStyle(.primary) - Spacer() - if let target = session.target { - HStack(spacing: 6) { - Circle() - .fill(target.color.color) - .frame(width: 9, height: 9) - Text(String(format: String(localized: "Target: %@"), target.qualifiedDescription)) - .font(.caption) - .foregroundStyle(.secondary) - } - } - } - .padding(.horizontal, 16) - .padding(.vertical, 8) - .background(tint.opacity(0.08)) - } - - private var symbol: String { - switch session.activity { - case .applying: return "exclamationmark.triangle.fill" - case .comparing, .connecting: return "magnifyingglass" - case .idle: return session.hasWrittenToTarget ? "checkmark.circle" : "eye" - } - } - - private var tint: Color { - switch session.activity { - case .applying: return .orange - case .comparing, .connecting: return .accentColor - case .idle: return session.hasWrittenToTarget ? .green : .secondary - } - } -} - -internal struct CompareSyncFooter: View { - internal let session: CompareSyncSession - @Binding internal var isConfirmingApply: Bool - - internal var body: some View { - HStack(spacing: 12) { - if let message = session.errorMessage { - Label(message, systemImage: "exclamationmark.octagon.fill") - .foregroundStyle(.red) - .font(.callout) - .lineLimit(2) - } else if let message = session.informationalMessage { - Label(message, systemImage: "info.circle") - .foregroundStyle(.secondary) - .font(.callout) - .lineLimit(2) - } - - Spacer() - - if session.isBusy { - if let progress = session.progress { - ProgressView(progress) - .progressViewStyle(.linear) - .frame(width: 180) - } else { - ProgressView() - .controlSize(.small) - } - Button(String(localized: "Cancel")) { session.cancelRunningWork() } - } else { - actionButtons - } - } - .padding(.horizontal, 16) - .padding(.vertical, 10) - } - - @ViewBuilder - private var actionButtons: some View { - switch session.step { - case .setup: - Button(String(localized: "Compare")) { session.runComparison() } - .keyboardShortcut(.defaultAction) - .disabled(!session.canCompare) - case .review: - Button(String(localized: "Back")) { session.step = .setup } - if session.needsRecompare { - Button(String(localized: "Compare Again")) { session.runComparison() } - .keyboardShortcut(.defaultAction) - Button(String(localized: "Generate Script")) { session.buildScript() } - .disabled(!session.canBuildScript) - } else { - Button(String(localized: "Generate Script")) { session.buildScript() } - .keyboardShortcut(.defaultAction) - .disabled(!session.canBuildScript) - } - case .script: - Button(String(localized: "Back")) { session.step = .review } - Button(String(localized: "Apply to Target")) { isConfirmingApply = true } - .disabled(session.statements.isEmpty) - case .apply: - Button(String(localized: "Done")) { session.step = .setup } - .keyboardShortcut(.defaultAction) - } - } -} diff --git a/TablePro/Views/Compare/CompareStatusStyle.swift b/TablePro/Views/Compare/CompareStatusStyle.swift new file mode 100644 index 000000000..754ddcb06 --- /dev/null +++ b/TablePro/Views/Compare/CompareStatusStyle.swift @@ -0,0 +1,137 @@ +// +// CompareStatusStyle.swift +// TablePro +// +// One vocabulary for a comparison outcome: a word, a symbol and a tint. +// +// Colour is never the carrier on its own. Every call site pairs the tint with +// the symbol and the word, and drops the tint when the system asks for shapes +// instead of colour. Tints resolve through `ThemeEngine` rather than the +// built-in `Color` literals, so a theme owns them the way it owns the grid. +// + +import SwiftUI + +internal enum CompareStatusStyle { + internal static let notComparedTitle = String(localized: "Not compared") + + // MARK: - Object status + + internal static func title(for status: TableDiffStatus) -> String { + switch status { + case .onlyInSource: + return String(localized: "Only in Source") + case .onlyInTarget: + return String(localized: "Only in Target") + case .differs: + return String(localized: "Differs") + case .identical: + return String(localized: "Identical") + } + } + + internal static func symbolName(for status: TableDiffStatus) -> String { + switch status { + case .onlyInSource: + return "plus.circle" + case .onlyInTarget: + return "minus.circle" + case .differs: + return "circle.lefthalf.filled" + case .identical: + return "equal.circle" + } + } + + @MainActor + internal static func tint(for status: TableDiffStatus) -> Color { + let colors = ThemeEngine.shared.colors.ui + switch status { + case .onlyInSource: + return colors.successSwiftUI + case .onlyInTarget: + return colors.errorSwiftUI + case .differs: + return colors.warningSwiftUI + case .identical: + return colors.secondaryTextSwiftUI + } + } + + // MARK: - Row difference + + internal static func title(for kind: RowDiffKind) -> String { + switch kind { + case .insert: + return String(localized: "Insert") + case .update: + return String(localized: "Update") + case .delete: + return String(localized: "Delete") + case .identical: + return String(localized: "Same") + } + } + + internal static func symbolName(for kind: RowDiffKind) -> String { + switch kind { + case .insert: + return "plus.circle.fill" + case .update: + return "circle.lefthalf.filled" + case .delete: + return "minus.circle.fill" + case .identical: + return "equal.circle" + } + } + + @MainActor + internal static func tint(for kind: RowDiffKind) -> Color { + let colors = ThemeEngine.shared.colors.ui + switch kind { + case .insert: + return colors.successSwiftUI + case .update: + return colors.warningSwiftUI + case .delete: + return colors.errorSwiftUI + case .identical: + return colors.secondaryTextSwiftUI + } + } + + /// The same tints the data grid paints an inserted, modified or deleted row with, so a row + /// difference here reads the way the same row reads in the grid. + @MainActor + internal static func rowTint(for kind: RowDiffKind) -> Color { + let colors = ThemeEngine.shared.colors.dataGrid + switch kind { + case .insert: + return colors.insertedSwiftUI + case .update: + return colors.modifiedSwiftUI + case .delete: + return colors.deletedSwiftUI + case .identical: + return .clear + } + } + + // MARK: - Message tints + + @MainActor + internal static var warning: Color { + ThemeEngine.shared.colors.ui.warningSwiftUI + } + + @MainActor + internal static var error: Color { + ThemeEngine.shared.colors.ui.errorSwiftUI + } + + @MainActor + internal static var success: Color { + ThemeEngine.shared.colors.ui.successSwiftUI + } +} diff --git a/TablePro/Views/Compare/CompareSyncApplyView.swift b/TablePro/Views/Compare/CompareSyncApplyView.swift deleted file mode 100644 index 083e76a7e..000000000 --- a/TablePro/Views/Compare/CompareSyncApplyView.swift +++ /dev/null @@ -1,121 +0,0 @@ -// -// CompareSyncApplyView.swift -// TablePro -// -// Per-statement outcome of a run, including what was held back and whether the -// run rolled back. -// - -import SwiftUI - -internal struct CompareSyncApplyView: View { - internal let session: CompareSyncSession - - internal var body: some View { - VStack(alignment: .leading, spacing: 0) { - summary - Divider() - outcomeList - } - } - - @ViewBuilder - private var summary: some View { - if let result = session.runResult { - VStack(alignment: .leading, spacing: 8) { - HStack(spacing: 16) { - countBadge( - String(localized: "Executed"), result.executedCount, - "checkmark.circle.fill", result.executedCount > 0 ? .green : .secondary - ) - countBadge( - String(localized: "Failed"), result.failedCount, - "xmark.circle.fill", result.failedCount > 0 ? .red : .secondary - ) - countBadge( - String(localized: "Held back"), result.heldBackCount, - "hand.raised.fill", result.heldBackCount > 0 ? .orange : .secondary - ) - Spacer() - } - - if result.rolledBack { - Label( - String(localized: "The run was rolled back. The target is unchanged."), - systemImage: "arrow.uturn.backward.circle.fill" - ) - .foregroundStyle(.orange) - } else if result.failedCount > 0 { - Label( - String(localized: "Statements that already ran stay applied. Compare again to see the current state."), - systemImage: "exclamationmark.triangle.fill" - ) - .foregroundStyle(.orange) - } - - if result.cancelled { - Label(String(localized: "Cancelled before the script finished."), systemImage: "stop.circle") - .foregroundStyle(.secondary) - } - } - .padding(16) - } else { - Text("Nothing has run yet.") - .foregroundStyle(.secondary) - .padding(16) - } - } - - private func countBadge(_ label: String, _ count: Int, _ symbol: String, _ tint: Color) -> some View { - HStack(spacing: 6) { - Image(systemName: symbol).foregroundStyle(tint) - Text("\(label): \(count)") - } - .font(.callout) - } - - private var outcomeList: some View { - List(session.runResult?.outcomes ?? []) { outcome in - VStack(alignment: .leading, spacing: 3) { - HStack(spacing: 6) { - Image(systemName: symbol(for: outcome)) - .foregroundStyle(tint(for: outcome)) - Text(outcome.statement.summary) - .font(.callout) - Spacer() - Text(stateLabel(for: outcome)) - .font(.caption) - .foregroundStyle(.secondary) - } - Text(outcome.statement.sql) - .font(.system(.caption2, design: .monospaced)) - .foregroundStyle(.secondary) - .textSelection(.enabled) - .lineLimit(2) - if let error = outcome.error { - Text(error) - .font(.caption) - .foregroundStyle(.red) - .textSelection(.enabled) - } - } - .padding(.vertical, 2) - } - .listStyle(.inset) - } - - private func symbol(for outcome: SyncStatementOutcome) -> String { - if outcome.wasSkipped { return "hand.raised.fill" } - return outcome.error == nil ? "checkmark.circle.fill" : "xmark.circle.fill" - } - - private func tint(for outcome: SyncStatementOutcome) -> Color { - if outcome.wasSkipped { return .orange } - return outcome.error == nil ? .green : .red - } - - private func stateLabel(for outcome: SyncStatementOutcome) -> String { - if outcome.wasSkipped { return String(localized: "Held back") } - return outcome.error == nil ? String(localized: "Ran") : String(localized: "Failed") - } -} diff --git a/TablePro/Views/Compare/CompareSyncCloseGuard.swift b/TablePro/Views/Compare/CompareSyncCloseGuard.swift deleted file mode 100644 index 7cb7d0564..000000000 --- a/TablePro/Views/Compare/CompareSyncCloseGuard.swift +++ /dev/null @@ -1,75 +0,0 @@ -// -// CompareSyncCloseGuard.swift -// TablePro -// -// Refuses to close the window while a script is being applied, so a run is not -// abandoned halfway without the user saying so. The delegate forwards every -// other message to whatever delegate SwiftUI installed. -// - -import AppKit -import SwiftUI - -internal struct CompareSyncCloseGuard: NSViewRepresentable { - internal let session: CompareSyncSession - - internal func makeNSView(context: Context) -> NSView { - let view = CloseGuardHostView() - view.session = session - return view - } - - internal func updateNSView(_ nsView: NSView, context: Context) { - (nsView as? CloseGuardHostView)?.session = session - } -} - -private final class CloseGuardHostView: NSView { - var session: CompareSyncSession? { - didSet { proxy.session = session } - } - - private let proxy = CloseGuardDelegateProxy() - - override func viewDidMoveToWindow() { - super.viewDidMoveToWindow() - guard let window else { return } - guard !(window.delegate is CloseGuardDelegateProxy) else { return } - proxy.forwarding = window.delegate - window.delegate = proxy - } -} - -private final class CloseGuardDelegateProxy: NSObject, NSWindowDelegate { - weak var forwarding: NSWindowDelegate? - weak var session: CompareSyncSession? - - override func responds(to aSelector: Selector!) -> Bool { - if super.responds(to: aSelector) { return true } - return forwarding?.responds(to: aSelector) ?? false - } - - override func forwardingTarget(for aSelector: Selector!) -> Any? { - if forwarding?.responds(to: aSelector) == true { return forwarding } - return super.forwardingTarget(for: aSelector) - } - - func windowShouldClose(_ sender: NSWindow) -> Bool { - guard let session, session.activity == .applying else { - return forwarding?.windowShouldClose?(sender) ?? true - } - - let alert = NSAlert() - alert.alertStyle = .critical - alert.messageText = String(localized: "A sync is still running") - alert.informativeText = String( - localized: "Closing now stops the run between statements. Statements that already ran stay applied." - ) - alert.addButton(withTitle: String(localized: "Keep Running")) - alert.addButton(withTitle: String(localized: "Stop and Close")) - guard alert.runModal() == .alertSecondButtonReturn else { return false } - - session.cancelRunningWork() - return true - } -} diff --git a/TablePro/Views/Compare/CompareSyncScriptView.swift b/TablePro/Views/Compare/CompareSyncScriptView.swift deleted file mode 100644 index c322d4911..000000000 --- a/TablePro/Views/Compare/CompareSyncScriptView.swift +++ /dev/null @@ -1,214 +0,0 @@ -// -// CompareSyncScriptView.swift -// TablePro -// -// The generated script and its hazards. Statements that would destroy data are -// listed but held back until they are allowed for this run. -// - -import AppKit -import SwiftUI -import TableProPluginKit -import UniformTypeIdentifiers - -internal struct CompareSyncScriptView: View { - @Bindable internal var session: CompareSyncSession - - @State private var isExporting = false - - internal var body: some View { - HSplitView { - hazardPane - .frame(minWidth: 300, idealWidth: 340) - scriptPane - .frame(minWidth: 400) - } - } - - private var heldBack: [SyncStatement] { - session.statements.filter { $0.isRefusedByDefault } - } - - private var hazardPane: some View { - VStack(alignment: .leading, spacing: 0) { - HStack { - Text("Warnings") - .font(.headline) - Spacer() - if !heldBack.isEmpty { - Text("\(allowedCount)/\(heldBack.count)") - .font(.caption) - .foregroundStyle(.secondary) - } - } - .padding(.horizontal, 12) - .padding(.vertical, 8) - - Divider() - - if heldBack.isEmpty { - VStack(spacing: 6) { - Image(systemName: "checkmark.shield") - .font(.title2) - .foregroundStyle(.green) - Text("Nothing in this script destroys data.") - .font(.callout) - .foregroundStyle(.secondary) - .multilineTextAlignment(.center) - } - .padding(20) - .frame(maxWidth: .infinity, maxHeight: .infinity) - } else { - List { - Section { - Text("These are held back. Allow one to include it in this run only; the choice is never saved.") - .font(.caption) - .foregroundStyle(.secondary) - } - ForEach(heldBack) { statement in - HeldBackStatementRow(statement: statement, session: session) - } - } - .listStyle(.inset) - } - - Divider() - executionSettings - } - } - - private var allowedCount: Int { - heldBack.filter { session.executionSettings.allowedHazardStatementIds.contains($0.id) }.count - } - - private var executionSettings: some View { - VStack(alignment: .leading, spacing: 6) { - Picker(String(localized: "On error"), selection: $session.executionSettings.errorHandling) { - Text("Stop and roll back").tag(ImportErrorHandling.stopAndRollback) - Text("Stop and keep what ran").tag(ImportErrorHandling.stopAndCommit) - Text("Skip and continue").tag(ImportErrorHandling.skipAndContinue) - } - - Toggle(String(localized: "Run in a transaction"), isOn: $session.executionSettings.wrapInTransaction) - .disabled(session.executionSettings.errorHandling == .skipAndContinue) - - if session.executionSettings.errorHandling == .skipAndContinue { - Text("A transaction cannot be used with skip and continue, because together they leave the target half-applied.") - .font(.caption2) - .foregroundStyle(.secondary) - } - } - .padding(12) - } - - private var scriptPane: some View { - VStack(alignment: .leading, spacing: 0) { - HStack { - Text("Script") - .font(.headline) - Text("\(session.statements.count) statements") - .font(.caption) - .foregroundStyle(.secondary) - Spacer() - Button(String(localized: "Copy")) { copyScript() } - Button(String(localized: "Save…")) { isExporting = true } - } - .padding(.horizontal, 12) - .padding(.vertical, 8) - - Divider() - - TextEditor(text: scriptBinding) - .font(.system(.body, design: .monospaced)) - .frame(maxWidth: .infinity, maxHeight: .infinity) - } - .fileExporter( - isPresented: $isExporting, - document: SyncScriptDocument(text: scriptBinding.wrappedValue), - contentType: SyncScriptDocument.sqlType, - defaultFilename: "sync" - ) { _ in } - } - - private var scriptBinding: Binding { - Binding( - get: { session.editedScript ?? session.statements.map { $0.sql }.joined(separator: "\n") }, - set: { session.editedScript = $0 } - ) - } - - private func copyScript() { - ClipboardService.shared.writeText(scriptBinding.wrappedValue) - } -} - -internal struct HeldBackStatementRow: View { - internal let statement: SyncStatement - @Bindable internal var session: CompareSyncSession - - internal var body: some View { - VStack(alignment: .leading, spacing: 4) { - Toggle(isOn: allowBinding) { - Text(statement.summary) - .font(.callout) - } - ForEach(statement.hazards) { hazard in - Label { - VStack(alignment: .leading, spacing: 1) { - Text(hazard.kind.displayName) - .font(.caption.weight(.semibold)) - Text(hazard.explanation) - .font(.caption2) - .foregroundStyle(.secondary) - } - } icon: { - Image(systemName: "exclamationmark.triangle.fill") - .foregroundStyle(.orange) - } - } - Text(statement.sql) - .font(.system(.caption2, design: .monospaced)) - .foregroundStyle(.secondary) - .textSelection(.enabled) - .lineLimit(3) - } - .padding(.vertical, 4) - } - - private var allowBinding: Binding { - Binding( - get: { session.executionSettings.allowedHazardStatementIds.contains(statement.id) }, - set: { allowed in - if allowed { - session.executionSettings.allowedHazardStatementIds.insert(statement.id) - } else { - session.executionSettings.allowedHazardStatementIds.remove(statement.id) - } - } - ) - } -} - -internal struct SyncScriptDocument: FileDocument { - internal static let sqlType = UTType(filenameExtension: "sql") ?? .plainText - - internal static var readableContentTypes: [UTType] { [sqlType, .plainText] } - - internal let text: String - - internal init(text: String) { - self.text = text - } - - internal init(configuration: ReadConfiguration) throws { - guard let data = configuration.file.regularFileContents, - let decoded = String(bytes: data, encoding: .utf8) else { - throw CocoaError(.fileReadCorruptFile) - } - text = decoded - } - - internal func fileWrapper(configuration: WriteConfiguration) throws -> FileWrapper { - FileWrapper(regularFileWithContents: Data(text.utf8)) - } -} diff --git a/TablePro/Views/Compare/CompareSyncSetupView.swift b/TablePro/Views/Compare/CompareSyncSetupView.swift deleted file mode 100644 index e1d0721de..000000000 --- a/TablePro/Views/Compare/CompareSyncSetupView.swift +++ /dev/null @@ -1,251 +0,0 @@ -// -// CompareSyncSetupView.swift -// TablePro -// -// Picks the two endpoints. Neither picker is prefilled with a target, and a -// read-only connection is refused as the target at selection time rather than -// at apply time. -// - -import SwiftUI - -internal struct CompareSyncSetupView: View { - @Bindable internal var session: CompareSyncSession - - @State private var candidates: [CompareSyncEndpoint] = [] - @State private var profileName = "" - - internal var body: some View { - ScrollView { - VStack(alignment: .leading, spacing: 20) { - modePicker - endpointPickers - directionSummary - profilesSection - optionsSection - } - .padding(20) - .frame(maxWidth: .infinity, alignment: .leading) - } - .task { candidates = CompareSyncEndpoint.candidates(from: ConnectionStorage.shared.loadConnections()) } - } - - private var modePicker: some View { - VStack(alignment: .leading, spacing: 6) { - Text("What to compare") - .font(.headline) - Picker("", selection: $session.mode) { - ForEach(CompareSyncMode.allCases, id: \.rawValue) { mode in - Text(mode.displayName).tag(mode) - } - } - .pickerStyle(.segmented) - .labelsHidden() - .frame(width: 260) - .onChange(of: session.mode) { _, _ in session.resetComparison() } - } - } - - private var endpointPickers: some View { - HStack(alignment: .top, spacing: 16) { - endpointColumn( - title: String(localized: "Source"), - caption: String(localized: "Will not change"), - selection: $session.source, - isTarget: false - ) - - Button { - session.swapEndpoints() - } label: { - Image(systemName: "arrow.left.arrow.right") - } - .help(String(localized: "Swap source and target")) - .disabled(!session.canSwap) - .padding(.top, 28) - - endpointColumn( - title: String(localized: "Target"), - caption: String(localized: "Will be changed"), - selection: $session.target, - isTarget: true - ) - } - } - - private func endpointColumn( - title: String, - caption: String, - selection: Binding, - isTarget: Bool - ) -> some View { - VStack(alignment: .leading, spacing: 6) { - HStack(spacing: 6) { - Text(title).font(.headline) - Text(caption) - .font(.caption) - .foregroundStyle(isTarget ? Color.orange : Color.secondary) - } - Picker("", selection: selection) { - Text(String(localized: "Choose a connection")).tag(CompareSyncEndpoint?.none) - ForEach(candidates) { candidate in - endpointRow(candidate, isTarget: isTarget) - .tag(CompareSyncEndpoint?.some(candidate)) - } - } - .labelsHidden() - .frame(maxWidth: .infinity) - .onChange(of: selection.wrappedValue) { _, _ in session.resetComparison() } - - if isTarget, let target = session.target, let reason = target.ineligibleAsTargetReason { - Label(reason, systemImage: "lock.fill") - .font(.caption) - .foregroundStyle(.red) - } - } - } - - private func endpointRow(_ candidate: CompareSyncEndpoint, isTarget: Bool) -> some View { - HStack(spacing: 6) { - Circle().fill(candidate.color.color).frame(width: 8, height: 8) - Text(candidate.qualifiedDescription) - if isTarget, let reason = candidate.ineligibleAsTargetReason { - Text(String(format: String(localized: "(%@)"), reason)) - .foregroundStyle(.secondary) - } - } - } - - @ViewBuilder - private var directionSummary: some View { - if let sentence = session.directionSentence { - Label(sentence, systemImage: "arrow.right.circle.fill") - .font(.callout) - .padding(10) - .background(Color.orange.opacity(0.1), in: RoundedRectangle(cornerRadius: 6)) - } - if let notice = session.crossEngineNotice { - Label(notice, systemImage: "exclamationmark.triangle") - .font(.caption) - .foregroundStyle(.secondary) - } - } - - @ViewBuilder - private var profilesSection: some View { - if session.source != nil, session.target != nil { - VStack(alignment: .leading, spacing: 6) { - Text("Saved comparisons") - .font(.headline) - - HStack(spacing: 8) { - let profiles = session.savedProfiles - if profiles.isEmpty { - Text("None saved for this pair yet.") - .font(.caption) - .foregroundStyle(.secondary) - } else { - Menu { - ForEach(profiles) { profile in - Button(profile.name) { session.apply(profile) } - } - Divider() - ForEach(profiles) { profile in - Button( - String(format: String(localized: "Delete %@"), profile.name), - role: .destructive - ) { - session.deleteProfile(profile) - } - } - } label: { - Label(String(localized: "Load"), systemImage: "tray.and.arrow.down") - } - .menuStyle(.borderlessButton) - .fixedSize() - } - - Spacer() - - TextField(String(localized: "Name"), text: $profileName) - .frame(width: 160) - Button(String(localized: "Save")) { - session.saveProfile(named: profileName) - profileName = "" - } - .disabled(profileName.trimmingCharacters(in: .whitespaces).isEmpty) - } - } - } - } - - @ViewBuilder - private var optionsSection: some View { - if session.mode == .structure { - StructureCompareOptionsView(session: session) - } else { - DataCompareOptionsView(session: session) - } - } -} - -internal struct StructureCompareOptionsView: View { - @Bindable internal var session: CompareSyncSession - - internal var body: some View { - VStack(alignment: .leading, spacing: 6) { - Text("What to ignore") - .font(.headline) - Text("These drift between environments by design. Turn one off to have the difference reported.") - .font(.caption) - .foregroundStyle(.secondary) - - Toggle("Identifier case", isOn: $session.structureOptions.ignoreIdentifierCase) - Toggle("Column order", isOn: $session.structureOptions.ignoreColumnOrder) - Toggle("Whitespace in default values and comments", isOn: $session.structureOptions.ignoreWhitespaceInText) - Toggle("Auto-increment seed value", isOn: $session.structureOptions.ignoreAutoIncrementSeed) - Toggle("Collation and character set", isOn: $session.structureOptions.ignoreCollationAndCharset) - Toggle("Comments, owners, and definers", isOn: $session.structureOptions.ignoreCommentsAndOwners) - } - .onChange(of: session.structureOptions) { _, _ in session.resetComparison() } - } -} - -internal struct DataCompareOptionsView: View { - @Bindable internal var session: CompareSyncSession - - internal var body: some View { - VStack(alignment: .leading, spacing: 6) { - Text("What to write") - .font(.headline) - - Toggle("Insert rows missing from the target", isOn: $session.dataOptions.insertMissingRows) - Toggle("Update rows that differ", isOn: $session.dataOptions.updateDifferingRows) - Toggle("Delete rows the source does not have", isOn: $session.dataOptions.deleteExtraRows) - - Text("Delete is off by default so the first run cannot remove a row you did not mean to touch.") - .font(.caption) - .foregroundStyle(.secondary) - - Divider().padding(.vertical, 4) - - Text("How values are judged equal") - .font(.headline) - HStack { - Text("Numeric tolerance") - TextField("", value: $session.dataOptions.floatTolerance, format: .number) - .frame(width: 100) - } - HStack { - Text("Timestamp fractional digits") - Stepper( - value: $session.dataOptions.timestampFractionalDigits, - in: 0...9 - ) { - Text("\(session.dataOptions.timestampFractionalDigits)") - } - .frame(width: 120) - } - } - } -} diff --git a/TablePro/Views/Compare/CompareSyncWindowController.swift b/TablePro/Views/Compare/CompareSyncWindowController.swift index 5344e9178..fef8748aa 100644 --- a/TablePro/Views/Compare/CompareSyncWindowController.swift +++ b/TablePro/Views/Compare/CompareSyncWindowController.swift @@ -2,17 +2,49 @@ // CompareSyncWindowController.swift // TablePro // +// The Compare & Sync window. +// +// Shaped like FileMerge's result window rather than an assistant: one +// persistent window with a customizable, autosaving toolbar, which is what +// Apple ships for a comparison the user re-runs. The four-step wizard this +// replaces had no toolbar, so it grew a numbered step header and a bottom +// action bar, both of which the HIG names directly: "Avoid creating custom +// window UI" and "Avoid putting critical information or actions in a bottom +// bar, because people often relocate a window in a way that hides its bottom +// edge." +// +// The toolbar is attached in `init`, after the session exists, because a +// delegate that returns nil for an item while `autosavesConfiguration` is on +// permanently prunes that item from the saved configuration on disk. +// import AppKit import SwiftUI -/// Hosts `CompareSyncWindowView` in an AppKit window. The registry keyed by the prefilled -/// source is the behaviour `WindowGroup(for:)` gave for free: a repeat open for the same -/// source focuses the comparison already in progress instead of starting a second one. +internal extension NSToolbarItem.Identifier { + static let compareSource = NSToolbarItem.Identifier("com.TablePro.compare.source") + static let compareSwap = NSToolbarItem.Identifier("com.TablePro.compare.swap") + static let compareTarget = NSToolbarItem.Identifier("com.TablePro.compare.target") + static let compareMode = NSToolbarItem.Identifier("com.TablePro.compare.mode") + static let compareRun = NSToolbarItem.Identifier("com.TablePro.compare.run") + static let compareOptions = NSToolbarItem.Identifier("com.TablePro.compare.options") + static let compareGrouping = NSToolbarItem.Identifier("com.TablePro.compare.grouping") + static let compareSearch = NSToolbarItem.Identifier("com.TablePro.compare.search") + static let compareGenerate = NSToolbarItem.Identifier("com.TablePro.compare.generate") + static let compareApply = NSToolbarItem.Identifier("com.TablePro.compare.apply") +} + @MainActor -internal final class CompareSyncWindowController: NSWindowController, NSWindowDelegate { +internal final class CompareSyncWindowController: NSWindowController, + NSWindowDelegate, NSToolbarDelegate, NSUserInterfaceValidations { private static var controllers: [UUID?: CompareSyncWindowController] = [:] + private let session = CompareSyncSession() + private lazy var runner = CompareRunner(session: session) + private lazy var endpointMenus = CompareEndpointMenuBuilder(session: session) { [weak self] in + self?.endpointsChanged() + } + internal static func present(prefillSource connectionId: UUID?) { let controller = controllers[connectionId] ?? CompareSyncWindowController(prefillSource: connectionId) controllers[connectionId] = controller @@ -21,25 +53,355 @@ internal final class CompareSyncWindowController: NSWindowController, NSWindowDe AppActivationPolicyController.shared.activate() } - private convenience init(prefillSource connectionId: UUID?) { - let content = CompareSyncWindowView(prefillSourceConnectionId: connectionId) - .environment(\.appServices, .live) - let hosting = NSHostingController(rootView: content) - /// A standalone window wants the content's minimum to become the window's, unlike a - /// split pane's host, where the same minimum would pin the window's dividers. - hosting.sizingOptions = [.minSize] - - let window = NSWindow.titled(String(localized: "Compare & Sync"), contentViewController: hosting) + private init(prefillSource connectionId: UUID?) { + let window = NSWindow( + contentRect: NSRect(x: 0, y: 0, width: 1_100, height: 700), + styleMask: [.titled, .closable, .miniaturizable, .resizable], + backing: .buffered, + defer: false + ) + window.minSize = NSSize(width: 720, height: 460) + window.title = String(localized: "Compare & Sync") window.identifier = NSUserInterfaceItemIdentifier(WindowIdentifier.compareSync) - window.styleMask = [.titled, .closable, .miniaturizable, .resizable] window.isRestorable = false - window.setContentSize(NSSize(width: 1_040, height: 680)) - window.setFrameAutosaveName(WindowIdentifier.compareSync) - self.init(window: window) + window.isReleasedWhenClosed = false + super.init(window: window) + + applyPrefill(connectionId) + window.contentViewController = makeContentController() window.delegate = self + window.applyAutosaveName(WindowIdentifier.compareSync) + installToolbar(on: window) + } + + @available(*, unavailable) + internal required init?(coder: NSCoder) { + fatalError("init(coder:) not supported") + } + + private func makeContentController() -> NSViewController { + let content = CompareWindowContentView( + session: session, + onCompare: { [weak self] in self?.runner.compare() }, + onGenerateScript: { [weak self] in self?.runner.buildScript() }, + onApply: { [weak self] in self?.presentApplySheet() } + ) + .environment(\.appServices, .live) + let hosting = NSHostingController(rootView: content) + /// A standalone window wants the content's minimum to become the window's, unlike a split + /// pane's host, where the same minimum would pin the window's dividers. + hosting.sizingOptions = [.minSize] + return hosting + } + + private func applyPrefill(_ connectionId: UUID?) { + guard let connectionId else { return } + let connections = ConnectionStorage.shared.loadConnections() + guard let match = connections.first(where: { $0.id == connectionId }) else { return } + session.source = CompareSyncEndpoint.from(connection: match) + } + + // MARK: - Toolbar + + private func installToolbar(on window: NSWindow) { + let toolbar = NSToolbar(identifier: "com.TablePro.CompareSyncToolbar") + toolbar.delegate = self + toolbar.displayMode = .iconAndLabel + toolbar.allowsUserCustomization = true + toolbar.autosavesConfiguration = true + window.toolbar = toolbar + window.toolbarStyle = .unified + } + + internal func toolbarDefaultItemIdentifiers(_ toolbar: NSToolbar) -> [NSToolbarItem.Identifier] { + [ + .compareSource, .compareSwap, .compareTarget, + .compareMode, .compareRun, + .flexibleSpace, + .compareGrouping, .compareOptions, .compareSearch, + .compareGenerate, .compareApply + ] + } + + internal func toolbarAllowedItemIdentifiers(_ toolbar: NSToolbar) -> [NSToolbarItem.Identifier] { + toolbarDefaultItemIdentifiers(toolbar) + [.space, .sidebarTrackingSeparator] + } + + internal func toolbar( + _ toolbar: NSToolbar, + itemForItemIdentifier itemIdentifier: NSToolbarItem.Identifier, + willBeInsertedIntoToolbar flag: Bool + ) -> NSToolbarItem? { + switch itemIdentifier { + case .compareSource: + return endpointMenus.item(for: .source, identifier: itemIdentifier) + case .compareTarget: + return endpointMenus.item(for: .target, identifier: itemIdentifier) + case .compareSwap: + return button( + itemIdentifier, + label: String(localized: "Swap"), + symbol: "arrow.left.arrow.right", + action: #selector(swapEndpoints(_:)) + ) + case .compareMode: + return modeItem(itemIdentifier) + case .compareRun: + return button( + itemIdentifier, + label: String(localized: "Compare"), + symbol: "arrow.triangle.2.circlepath", + action: #selector(runComparison(_:)), + prominent: true + ) + case .compareGenerate: + return button( + itemIdentifier, + label: String(localized: "Generate Script"), + symbol: "doc.text", + action: #selector(generateScript(_:)) + ) + case .compareApply: + return button( + itemIdentifier, + label: String(localized: "Apply…"), + symbol: "square.and.arrow.down.on.square", + action: #selector(applyToTarget(_:)) + ) + case .compareOptions: + return button( + itemIdentifier, + label: String(localized: "Options"), + symbol: "slider.horizontal.3", + action: #selector(showOptions(_:)) + ) + case .compareGrouping: + return groupingItem(itemIdentifier) + case .compareSearch: + return searchItem(itemIdentifier) + default: + return nil + } + } + + private func button( + _ identifier: NSToolbarItem.Identifier, + label: String, + symbol: String, + action: Selector, + prominent: Bool = false + ) -> NSToolbarItem { + let item = NSToolbarItem(itemIdentifier: identifier) + item.label = label + item.paletteLabel = label + item.toolTip = label + item.image = NSImage(systemSymbolName: symbol, accessibilityDescription: label) + item.action = action + item.target = self + item.isBordered = true + if prominent, #available(macOS 26.0, *) { + item.style = .prominent + } + return item + } + + private func modeItem(_ identifier: NSToolbarItem.Identifier) -> NSToolbarItem { + let control = NSSegmentedControl( + labels: CompareSyncMode.allCases.map { $0.displayName }, + trackingMode: .selectOne, + target: self, + action: #selector(modeChanged(_:)) + ) + control.selectedSegment = CompareSyncMode.allCases.firstIndex(of: session.mode) ?? 0 + let item = NSToolbarItem(itemIdentifier: identifier) + item.label = String(localized: "Compare") + item.paletteLabel = String(localized: "What to Compare") + item.toolTip = String(localized: "Compare structure or data") + item.view = control + return item + } + + private func groupingItem(_ identifier: NSToolbarItem.Identifier) -> NSToolbarItem { + let item = NSMenuToolbarItem(itemIdentifier: identifier) + item.label = String(localized: "Group By") + item.paletteLabel = String(localized: "Group By") + item.toolTip = String(localized: "Group results by difference or object type") + item.image = NSImage( + systemSymbolName: "list.bullet.indent", + accessibilityDescription: String(localized: "Group By") + ) + item.showsIndicator = true + let menu = NSMenu() + for grouping in CompareGrouping.allCases { + let entry = NSMenuItem(title: grouping.title, action: #selector(groupingChanged(_:)), keyEquivalent: "") + entry.target = self + entry.representedObject = grouping.rawValue + entry.state = session.grouping == grouping ? .on : .off + menu.addItem(entry) + } + item.menu = menu + return item + } + + private func searchItem(_ identifier: NSToolbarItem.Identifier) -> NSToolbarItem { + let item = NSSearchToolbarItem(itemIdentifier: identifier) + item.label = String(localized: "Search") + item.paletteLabel = String(localized: "Search") + item.toolTip = String(localized: "Filter results by name") + item.searchField.sendsWholeSearchString = false + item.searchField.target = self + item.searchField.action = #selector(searchChanged(_:)) + return item + } + + // MARK: - Actions + + @objc internal func runComparison(_ sender: Any?) { + runner.compare() + } + + @objc internal func generateScript(_ sender: Any?) { + runner.buildScript() + } + + @objc internal func applyToTarget(_ sender: Any?) { + presentApplySheet() + } + + @objc internal func swapEndpoints(_ sender: Any?) { + session.swapEndpoints() + endpointsChanged() + } + + @objc internal func showOptions(_ sender: Any?) { + presentOptionsPopover(from: sender) + } + + @objc internal func stopComparison(_ sender: Any?) { + session.cancelRunningWork() + } + + @objc private func modeChanged(_ sender: NSSegmentedControl) { + let index = sender.selectedSegment + guard CompareSyncMode.allCases.indices.contains(index) else { return } + session.mode = CompareSyncMode.allCases[index] + session.resetComparison() + } + + @objc private func groupingChanged(_ sender: NSMenuItem) { + guard let raw = sender.representedObject as? String, + let grouping = CompareGrouping(rawValue: raw) else { return } + session.grouping = grouping + window?.toolbar?.items + .compactMap { $0 as? NSMenuToolbarItem } + .forEach { menuItem in + menuItem.menu.items.forEach { $0.state = ($0.representedObject as? String) == raw ? .on : .off } + } + } + + @objc private func searchChanged(_ sender: NSSearchField) { + session.searchText = sender.stringValue + } + + private func endpointsChanged() { + session.resetComparison() + window?.subtitle = session.directionSentence ?? "" + } + + // MARK: - Validation + + /// Every toolbar item is also a menu-bar command, so both validate here. The HIG requires the + /// menu-bar mirror; this is the single place that decides whether either is available. + internal func validateUserInterfaceItem(_ item: any NSValidatedUserInterfaceItem) -> Bool { + switch item.action { + case #selector(runComparison(_:)): + return session.canCompare + case #selector(generateScript(_:)): + return session.canBuildScript + case #selector(applyToTarget(_:)): + return session.canApply + case #selector(swapEndpoints(_:)): + return session.canSwap && !session.isBusy + case #selector(stopComparison(_:)): + return session.isBusy + case #selector(showOptions(_:)): + return true + default: + return true + } + } + + // MARK: - Sheets + + private func presentApplySheet() { + guard let window, session.canApply else { return } + let sheet = EscapeDismissingHostingController( + rootView: CompareApplySheetView(session: session) { [weak self] choice in + guard let self else { return } + self.dismissSheet() + guard choice == .apply else { return } + self.runner.apply() + } + .environment(\.appServices, .live) + ) + sheet.sizingOptions = [] + sheet.preferredContentSize = NSSize(width: 640, height: 520) + window.contentViewController?.presentAsSheet(sheet) + } + + private func presentOptionsPopover(from sender: Any?) { + guard let window else { return } + let content = NSHostingController(rootView: CompareOptionsView(session: session).environment(\.appServices, .live)) + content.sizingOptions = [.preferredContentSize] + let popover = NSPopover() + popover.contentViewController = content + popover.contentSize = NSSize(width: 420, height: 520) + popover.behavior = .transient + let anchor = (sender as? NSToolbarItem)?.view + ?? window.toolbar?.items.first { $0.itemIdentifier == .compareOptions }?.view + guard let anchor else { return } + popover.show(relativeTo: anchor.bounds, of: anchor, preferredEdge: .maxY) + } + + private func dismissSheet() { + guard let sheet = window?.contentViewController?.presentedViewControllers?.last else { return } + window?.contentViewController?.dismiss(sheet) + } + + // MARK: - NSWindowDelegate + + /// The controller owns the window's delegate, so the close guard lives here. The view this + /// replaces installed a proxy delegate from a background `NSViewRepresentable` to answer this + /// one message, which meant a SwiftUI view reaching around AppKit's ownership to do it. + internal func windowShouldClose(_ sender: NSWindow) -> Bool { + guard session.activity == .applying else { return true } + + let alert = NSAlert() + alert.alertStyle = .critical + alert.messageText = String(localized: "A sync is still running") + alert.informativeText = String( + localized: "Closing now stops the run between statements. Statements that already ran stay applied." + ) + alert.addButton(withTitle: String(localized: "Keep Running")) + alert.addButton(withTitle: String(localized: "Stop and Close")) + guard alert.runModal() == .alertSecondButtonReturn else { return false } + + session.cancelRunningWork() + return true } internal func windowWillClose(_ notification: Notification) { + session.cancelRunningWork() Self.controllers = Self.controllers.filter { $0.value !== self } } } + +/// Cancel is the sheet's default button, per the HIG's rule for a destructive confirmation, so it +/// carries the Return shortcut and cannot also carry Escape. A sheet still has to answer Escape, +/// which is what `cancelOperation` is. +@MainActor +private final class EscapeDismissingHostingController: NSHostingController { + override func cancelOperation(_ sender: Any?) { + presentingViewController?.dismiss(self) + } +} diff --git a/TablePro/Views/Compare/CompareSyncWindowView.swift b/TablePro/Views/Compare/CompareSyncWindowView.swift deleted file mode 100644 index 239e04088..000000000 --- a/TablePro/Views/Compare/CompareSyncWindowView.swift +++ /dev/null @@ -1,112 +0,0 @@ -// -// CompareSyncWindowView.swift -// TablePro -// -// Root of the Compare & Sync auxiliary window. Steps advance in one direction -// and the banner never lets the user forget which side is written to. -// - -import SwiftUI - -internal struct CompareSyncWindowView: View { - internal let prefillSourceConnectionId: UUID? - - @State private var session = CompareSyncSession() - @State private var isConfirmingApply = false - - internal var body: some View { - VStack(spacing: 0) { - CompareSyncStepHeader(session: session) - Divider() - CompareStatusBanner(session: session) - Divider() - - stepContent - .frame(maxWidth: .infinity, maxHeight: .infinity) - - Divider() - CompareSyncFooter(session: session, isConfirmingApply: $isConfirmingApply) - } - .frame(minWidth: 900, minHeight: 560) - .background(CompareSyncCloseGuard(session: session)) - .task { applyPrefill() } - .alert(String(localized: "Apply changes?"), isPresented: $isConfirmingApply) { - Button(String(localized: "Cancel"), role: .cancel) {} - Button(String(localized: "Apply")) { session.apply() } - } message: { - Text(applyConfirmationMessage) - } - } - - @ViewBuilder - private var stepContent: some View { - switch session.step { - case .setup: - CompareSyncSetupView(session: session) - case .review: - if session.mode == .structure { - StructureCompareReviewView(session: session) - } else { - DataCompareReviewView(session: session) - } - case .script: - CompareSyncScriptView(session: session) - case .apply: - CompareSyncApplyView(session: session) - } - } - - private var applyConfirmationMessage: String { - let runnable = session.statements.filter { session.executionSettings.canRun($0) }.count - let heldBack = session.statements.count - runnable - let target = session.target?.qualifiedDescription ?? "" - guard heldBack > 0 else { - return String( - format: String(localized: "%d statements will run against %@. This cannot be undone automatically."), - runnable, target - ) - } - return String( - format: String(localized: "%d statements will run against %@. %d are held back as unsafe. This cannot be undone automatically."), - runnable, target, heldBack - ) - } - - private func applyPrefill() { - guard let prefillSourceConnectionId, session.source == nil else { return } - let connections = ConnectionStorage.shared.loadConnections() - guard let match = connections.first(where: { $0.id == prefillSourceConnectionId }) else { return } - session.source = CompareSyncEndpoint.candidates(from: [match]).first - } -} - -internal struct CompareSyncStepHeader: View { - internal let session: CompareSyncSession - - internal var body: some View { - HStack(spacing: 12) { - ForEach(CompareSyncStep.allCases, id: \.rawValue) { step in - HStack(spacing: 6) { - Image(systemName: symbol(for: step)) - .foregroundStyle(step <= session.step ? Color.accentColor : Color.secondary) - Text(step.title) - .fontWeight(step == session.step ? .semibold : .regular) - .foregroundStyle(step <= session.step ? Color.primary : Color.secondary) - } - if step != CompareSyncStep.allCases.last { - Image(systemName: "chevron.right") - .font(.caption) - .foregroundStyle(.tertiary) - } - } - Spacer() - } - .padding(.horizontal, 16) - .padding(.vertical, 10) - } - - private func symbol(for step: CompareSyncStep) -> String { - guard step != session.step else { return "\(step.rawValue + 1).circle.fill" } - return step < session.step ? "checkmark.circle.fill" : "\(step.rawValue + 1).circle" - } -} diff --git a/TablePro/Views/Compare/CompareWindowContentView.swift b/TablePro/Views/Compare/CompareWindowContentView.swift new file mode 100644 index 000000000..d43073cfc --- /dev/null +++ b/TablePro/Views/Compare/CompareWindowContentView.swift @@ -0,0 +1,101 @@ +// +// CompareWindowContentView.swift +// TablePro +// +// The window's body: results on the left, detail on the right. +// +// There is no action bar under it. Compare, Generate Script and Apply live in +// the toolbar and in the Database > Compare menu, which is where the HIG puts +// a window's primary actions and the only place a user can reach them when the +// window's bottom edge is off screen. +// + +import SwiftUI + +internal struct CompareWindowContentView: View { + @Bindable internal var session: CompareSyncSession + internal var onCompare: () -> Void + internal var onGenerateScript: () -> Void + internal var onApply: () -> Void + + internal var body: some View { + VStack(spacing: 0) { + CompareStatusStrip(session: session) + Divider() + AutosavingSplitView( + autosaveName: "com.TablePro.CompareSync.main", + primaryMinimum: 320, + secondaryMinimum: 360 + ) { + resultsPane + } secondary: { + CompareDetailView( + session: session, + onCompare: onCompare, + onGenerateScript: onGenerateScript + ) + } + } + .frame(minWidth: 720, minHeight: 460) + } + + @ViewBuilder + private var resultsPane: some View { + switch session.mode { + case .structure: + CompareResultsView(session: session, onCompare: onCompare) + case .data: + CompareDataPlansView(session: session, onCompare: onCompare) + } + } +} + +/// The one line that says whether anything has been written, plus in-flight progress. +/// +/// It sits at the top rather than the bottom for the reason the HIG gives about bottom bars, and +/// it is deliberately not an action bar: it carries state and a Cancel, never a primary action. +internal struct CompareStatusStrip: View { + @Bindable internal var session: CompareSyncSession + + internal var body: some View { + HStack(spacing: 12) { + Label { + Text(session.bannerText) + } icon: { + Image(systemName: symbol) + } + .font(.callout) + + if let target = session.target { + Divider().frame(height: 14) + HStack(spacing: 6) { + Circle() + .fill(target.color.color) + .frame(width: 9, height: 9) + .accessibilityHidden(true) + Text(String(format: String(localized: "Target: %@"), target.qualifiedDescription)) + .font(.caption) + .foregroundStyle(.secondary) + } + } + + Spacer(minLength: 12) + + if session.isBusy { + CompareProgressView(session: session, showsMessages: false) + } + } + .padding(.horizontal, 16) + .padding(.vertical, 8) + .background(.bar) + .accessibilityElement(children: .contain) + } + + private var symbol: String { + switch session.activity { + case .applying: return "exclamationmark.triangle.fill" + case .comparing, .connecting: return "magnifyingglass" + case .idle: return session.hasWrittenToTarget ? "checkmark.circle" : "eye" + } + } +} diff --git a/TablePro/Views/Compare/DataCompareReviewView.swift b/TablePro/Views/Compare/DataCompareReviewView.swift deleted file mode 100644 index 246a824cc..000000000 --- a/TablePro/Views/Compare/DataCompareReviewView.swift +++ /dev/null @@ -1,364 +0,0 @@ -// -// DataCompareReviewView.swift -// TablePro -// -// Per-table row counts on the left, the row differences on the right. One grid -// filtered six ways rather than six separate views. -// - -import SwiftUI -import TableProPluginKit - -internal enum RowDiffFilter: String, CaseIterable { - case all - case difference - case insert - case update - case delete - case same - - internal var title: String { - switch self { - case .all: return String(localized: "All Rows") - case .difference: return String(localized: "Difference") - case .insert: return String(localized: "Insert") - case .update: return String(localized: "Update") - case .delete: return String(localized: "Delete") - case .same: return String(localized: "Same") - } - } - - internal func matches(_ entry: RowDiffEntry) -> Bool { - switch self { - case .all: return true - case .difference: return entry.kind != .identical - case .insert: return entry.kind == .insert - case .update: return entry.kind == .update - case .delete: return entry.kind == .delete - case .same: return entry.kind == .identical - } - } -} - -internal struct DataCompareReviewView: View { - @Bindable internal var session: CompareSyncSession - - @State private var selection: String? - @State private var filter: RowDiffFilter = .difference - - internal var body: some View { - HSplitView { - planPane - .frame(minWidth: 320, idealWidth: 380) - rowPane - .frame(minWidth: 380) - } - } - - private var planPane: some View { - VStack(spacing: 0) { - List(selection: $selection) { - ForEach($session.dataPlans) { $plan in - DataComparePlanRow(plan: $plan) - .tag(plan.id) - } - } - .listStyle(.inset) - - if !session.truncatedPlanNames.isEmpty { - Divider() - Label( - String( - format: String(localized: "%d tables had more differences than are shown. Counts are still exact."), - session.truncatedPlanNames.count - ), - systemImage: "info.circle" - ) - .font(.caption) - .foregroundStyle(.secondary) - .padding(8) - } - } - } - - private var selectedPlan: DataComparePlan? { - session.dataPlans.first { $0.id == selection } - } - - @ViewBuilder - private var rowPane: some View { - if let plan = selectedPlan { - VStack(spacing: 0) { - DataComparePlanEditor(session: session, plan: plan) - Divider() - rowContent(for: plan) - } - } else { - VStack(spacing: 8) { - Image(systemName: "tablecells") - .font(.largeTitle) - .foregroundStyle(.tertiary) - Text("Select a table to see its row differences") - .foregroundStyle(.secondary) - } - .frame(maxWidth: .infinity, maxHeight: .infinity) - } - } - - @ViewBuilder - private func rowContent(for plan: DataComparePlan) -> some View { - if let summary = plan.summary { - VStack(spacing: 0) { - HStack { - Picker("", selection: $filter) { - ForEach(RowDiffFilter.allCases, id: \.rawValue) { option in - Text(option.title).tag(option) - } - } - .labelsHidden() - .frame(width: 150) - Spacer() - } - .padding(.horizontal, 12) - .padding(.vertical, 8) - - Divider() - - let entries = summary.entries.filter { filter.matches($0) } - if entries.isEmpty { - Text("No rows match this filter.") - .foregroundStyle(.secondary) - .frame(maxWidth: .infinity, maxHeight: .infinity) - } else { - List(entries) { entry in - RowDiffEntryRow(entry: entry) - } - .listStyle(.inset) - } - } - } else { - VStack(spacing: 8) { - Image(systemName: "arrow.clockwise") - .font(.largeTitle) - .foregroundStyle(.tertiary) - Text(plan.unavailableReason ?? String(localized: "Not compared yet. Run Compare Again to refresh this table.")) - .foregroundStyle(.secondary) - .multilineTextAlignment(.center) - } - .padding(20) - .frame(maxWidth: .infinity, maxHeight: .infinity) - } - } -} - -internal struct DataComparePlanEditor: View { - @Bindable internal var session: CompareSyncSession - internal let plan: DataComparePlan - - internal var body: some View { - VStack(alignment: .leading, spacing: 6) { - HStack(alignment: .top, spacing: 12) { - columnMenu( - title: String(localized: "Key columns"), - summary: plan.keyColumns.isEmpty - ? String(localized: "None chosen") - : plan.keyColumns.joined(separator: ", "), - systemImage: "key.fill" - ) { - ForEach(plan.columns, id: \.self) { column in - Toggle(column, isOn: Binding( - get: { session.isKeyColumn(column, in: plan) }, - set: { _ in session.toggleKeyColumn(column, for: plan.id) } - )) - } - } - - columnMenu( - title: String(localized: "Compared columns"), - summary: comparedSummary, - systemImage: "text.magnifyingglass" - ) { - ForEach(nonKeyColumns, id: \.self) { column in - Toggle(column, isOn: Binding( - get: { session.isColumnCompared(column) }, - set: { _ in session.toggleComparedColumn(column) } - )) - } - } - - Spacer() - } - - Text("Excluded columns are still written on insert and update. Changing either list needs another comparison.") - .font(.caption2) - .foregroundStyle(.secondary) - } - .padding(.horizontal, 12) - .padding(.vertical, 8) - } - - private var nonKeyColumns: [String] { - plan.columns.filter { !session.isKeyColumn($0, in: plan) } - } - - private var comparedSummary: String { - let excluded = nonKeyColumns.filter { !session.isColumnCompared($0) } - guard !excluded.isEmpty else { return String(localized: "All") } - return String(format: String(localized: "%d excluded"), excluded.count) - } - - private func columnMenu( - title: String, - summary: String, - systemImage: String, - @ViewBuilder content: () -> some View - ) -> some View { - VStack(alignment: .leading, spacing: 2) { - Text(title) - .font(.caption.weight(.semibold)) - .foregroundStyle(.secondary) - Menu { - content() - } label: { - Label(summary, systemImage: systemImage) - .font(.caption) - .lineLimit(1) - } - .menuStyle(.borderlessButton) - .fixedSize() - } - } -} - -internal struct DataComparePlanRow: View { - @Binding internal var plan: DataComparePlan - - internal var body: some View { - VStack(alignment: .leading, spacing: 3) { - HStack(spacing: 6) { - Toggle("", isOn: $plan.isEnabled) - .labelsHidden() - .disabled(!plan.isComparable) - Text(plan.id) - .font(.callout) - Spacer() - } - - if let reason = plan.unavailableReason { - Label(reason, systemImage: "exclamationmark.circle") - .font(.caption2) - .foregroundStyle(.orange) - } else if let summary = plan.summary { - HStack(spacing: 10) { - countLabel(String(localized: "Insert"), summary.insertCount, "plus.circle") - countLabel(String(localized: "Update"), summary.updateCount, "pencil.circle") - countLabel(String(localized: "Delete"), summary.deleteCount, "minus.circle") - countLabel(String(localized: "Same"), summary.identicalCount, "equal.circle") - if summary.skippedNullKeyCount > 0 { - countLabel( - String(localized: "Skipped, NULL key"), - summary.skippedNullKeyCount, - "exclamationmark.circle" - ) - } - } - .font(.caption2) - .foregroundStyle(.secondary) - } else { - Text(String(format: String(localized: "Key: %@"), plan.keyColumns.joined(separator: ", "))) - .font(.caption2) - .foregroundStyle(.secondary) - } - } - .padding(.vertical, 2) - } - - private func countLabel(_ label: String, _ count: Int, _ symbol: String) -> some View { - HStack(spacing: 3) { - Image(systemName: symbol) - Text("\(count)") - } - .help(label) - } -} - -internal struct RowDiffEntryRow: View { - internal let entry: RowDiffEntry - - @Environment(\.accessibilityDifferentiateWithoutColor) private var differentiateWithoutColor - - internal var body: some View { - VStack(alignment: .leading, spacing: 3) { - HStack(spacing: 6) { - Label { - Text(kindLabel) - .font(.caption2) - } icon: { - Image(systemName: kindSymbol) - } - .foregroundStyle(differentiateWithoutColor ? Color.primary : kindTint) - .frame(width: 84, alignment: .leading) - - Text(entry.keyDescription) - .font(.system(.callout, design: .monospaced)) - Spacer() - } - - ForEach(entry.cellDifferences, id: \.column) { difference in - HStack(alignment: .top, spacing: 6) { - Text(difference.column) - .font(.caption2.weight(.semibold)) - .frame(width: 100, alignment: .leading) - Text(Self.describe(difference.sourceValue)) - .font(.system(.caption2, design: .monospaced)) - Image(systemName: "arrow.right") - .font(.caption2) - .foregroundStyle(.tertiary) - Text(Self.describe(difference.targetValue)) - .font(.system(.caption2, design: .monospaced)) - .foregroundStyle(.secondary) - Spacer() - Text(difference.rule.displayName) - .font(.caption2) - .foregroundStyle(.tertiary) - } - } - } - .padding(.vertical, 2) - } - - private static func describe(_ value: PluginCellValue) -> String { - switch value { - case .null: return "NULL" - case .text(let text): return text - case .bytes(let data): return String(format: String(localized: "%d bytes"), data.count) - } - } - - private var kindLabel: String { - switch entry.kind { - case .insert: return String(localized: "Insert") - case .update: return String(localized: "Update") - case .delete: return String(localized: "Delete") - case .identical: return String(localized: "Same") - } - } - - private var kindSymbol: String { - switch entry.kind { - case .insert: return "plus.circle.fill" - case .update: return "circle.lefthalf.filled" - case .delete: return "minus.circle.fill" - case .identical: return "equal.circle" - } - } - - private var kindTint: Color { - switch entry.kind { - case .insert: return .green - case .update: return .orange - case .delete: return .red - case .identical: return .secondary - } - } -} diff --git a/TablePro/Views/Compare/StructureCompareReviewView.swift b/TablePro/Views/Compare/StructureCompareReviewView.swift deleted file mode 100644 index c981f99bc..000000000 --- a/TablePro/Views/Compare/StructureCompareReviewView.swift +++ /dev/null @@ -1,315 +0,0 @@ -// -// StructureCompareReviewView.swift -// TablePro -// -// Differences grouped by object type or by operation, with the source and -// target definitions side by side. Difference type never rests on colour alone. -// - -import SwiftUI - -internal enum CompareGrouping: String, CaseIterable { - case byStatus - case byName - - internal var title: String { - switch self { - case .byStatus: return String(localized: "Group by operation") - case .byName: return String(localized: "Group by name") - } - } -} - -internal struct StructureCompareReviewView: View { - @Bindable internal var session: CompareSyncSession - - @State private var grouping: CompareGrouping = .byStatus - @State private var showIdentical = false - @State private var selection: String? - - internal var body: some View { - HSplitView { - treePane - .frame(minWidth: 340, idealWidth: 420) - detailPane - .frame(minWidth: 360) - } - } - - private var report: StructureDiffReport? { - session.structureReport - } - - private var visibleResults: [TableDiffResult] { - guard let report else { return [] } - let base = showIdentical ? report.comparable : report.comparable.filter { $0.status != .identical } - switch grouping { - case .byName: - return base.sorted { $0.id.localizedStandardCompare($1.id) == .orderedAscending } - case .byStatus: - return base.sorted { lhs, rhs in - guard lhs.status == rhs.status else { - return statusRank(lhs.status) < statusRank(rhs.status) - } - return lhs.id.localizedStandardCompare(rhs.id) == .orderedAscending - } - } - } - - private func statusRank(_ status: TableDiffStatus) -> Int { - switch status { - case .onlyInSource: return 0 - case .differs: return 1 - case .onlyInTarget: return 2 - case .identical: return 3 - } - } - - private var treePane: some View { - VStack(spacing: 0) { - HStack { - Picker("", selection: $grouping) { - ForEach(CompareGrouping.allCases, id: \.rawValue) { option in - Text(option.title).tag(option) - } - } - .labelsHidden() - .frame(width: 190) - Spacer() - Toggle(String(localized: "Show identical"), isOn: $showIdentical) - .toggleStyle(.checkbox) - } - .padding(.horizontal, 12) - .padding(.vertical, 8) - - Divider() - - List(selection: $selection) { - ForEach(visibleResults) { result in - CompareResultRow(result: result, session: session) - .tag(result.id) - } - - if let uncomparable = report?.uncomparable, !uncomparable.isEmpty { - Section(String(localized: "Cannot be compared")) { - ForEach(uncomparable) { result in - VStack(alignment: .leading, spacing: 2) { - Text(result.id) - Text(result.comparisonError ?? "") - .font(.caption) - .foregroundStyle(.secondary) - } - } - } - } - } - .listStyle(.inset) - - Divider() - summaryBar - } - } - - private var summaryBar: some View { - HStack(spacing: 14) { - if let report { - statusCount(String(localized: "To create"), report.count(of: .onlyInSource), "plus.circle") - statusCount(String(localized: "To alter"), report.count(of: .differs), "pencil.circle") - statusCount(String(localized: "To drop"), report.count(of: .onlyInTarget), "minus.circle") - statusCount(String(localized: "Identical"), report.count(of: .identical), "equal.circle") - } - Spacer() - } - .font(.caption) - .padding(.horizontal, 12) - .padding(.vertical, 8) - } - - private func statusCount(_ label: String, _ count: Int, _ symbol: String) -> some View { - HStack(spacing: 4) { - Image(systemName: symbol) - Text("\(label): \(count)") - } - .foregroundStyle(.secondary) - } - - @ViewBuilder - private var detailPane: some View { - if let result = visibleResults.first(where: { $0.id == selection }) { - CompareResultDetailView( - result: result, - sourceSnapshot: session.sourceSnapshotCache[result.id], - targetSnapshot: session.targetSnapshotCache[result.id] - ) - } else { - VStack(spacing: 8) { - Image(systemName: "sidebar.right") - .font(.largeTitle) - .foregroundStyle(.tertiary) - Text("Select a table to see what differs") - .foregroundStyle(.secondary) - } - .frame(maxWidth: .infinity, maxHeight: .infinity) - } - } -} - -internal struct CompareResultRow: View { - internal let result: TableDiffResult - @Bindable internal var session: CompareSyncSession - - @Environment(\.accessibilityDifferentiateWithoutColor) private var differentiateWithoutColor - - internal var body: some View { - HStack(spacing: 8) { - Label { - Text(statusLabel) - .font(.caption2) - .fixedSize() - } icon: { - Image(systemName: statusSymbol) - } - .labelStyle(.titleAndIcon) - .foregroundStyle(differentiateWithoutColor ? Color.primary : statusTint) - .frame(width: 96, alignment: .leading) - - VStack(alignment: .leading, spacing: 1) { - Text(result.tableName) - if !result.notes.isEmpty { - Text(result.notes[0]) - .font(.caption2) - .foregroundStyle(.secondary) - .lineLimit(1) - } - } - - Spacer() - - Picker("", selection: actionBinding) { - ForEach(availableActions, id: \.rawValue) { action in - Text(actionTitle(action)).tag(action) - } - } - .labelsHidden() - .frame(width: 110) - } - .padding(.vertical, 2) - } - - private var actionBinding: Binding { - Binding( - get: { session.action(for: result) }, - set: { session.setAction($0, for: result) } - ) - } - - private var availableActions: [TableSyncAction] { - switch result.status { - case .onlyInSource: return [.skip, .create] - case .onlyInTarget: return [.skip, .drop] - case .differs: return [.skip, .alter] - case .identical: return [.skip] - } - } - - private func actionTitle(_ action: TableSyncAction) -> String { - switch action { - case .create: return String(localized: "Create") - case .alter: return String(localized: "Alter") - case .drop: return String(localized: "Drop") - case .skip: return String(localized: "Skip") - } - } - - private var statusLabel: String { - switch result.status { - case .onlyInSource: return String(localized: "Source only") - case .onlyInTarget: return String(localized: "Target only") - case .differs: return String(localized: "Different") - case .identical: return String(localized: "Identical") - } - } - - private var statusSymbol: String { - switch result.status { - case .onlyInSource: return "plus.circle.fill" - case .onlyInTarget: return "minus.circle.fill" - case .differs: return "circle.lefthalf.filled" - case .identical: return "equal.circle" - } - } - - private var statusTint: Color { - switch result.status { - case .onlyInSource: return .green - case .onlyInTarget: return .red - case .differs: return .orange - case .identical: return .secondary - } - } -} - -internal struct CompareResultDetailView: View { - internal let result: TableDiffResult - internal let sourceSnapshot: TableStructureSnapshot? - internal let targetSnapshot: TableStructureSnapshot? - - internal var body: some View { - ScrollView { - VStack(alignment: .leading, spacing: 12) { - Text(result.id) - .font(.headline) - - if !result.notes.isEmpty { - VStack(alignment: .leading, spacing: 4) { - Text("Notes") - .font(.subheadline.weight(.semibold)) - ForEach(Array(result.notes.enumerated()), id: \.offset) { _, note in - Label(note, systemImage: "info.circle") - .font(.caption) - .foregroundStyle(.secondary) - } - } - } - - if let sourceSnapshot, let targetSnapshot { - StructureDefinitionDiffView( - sourceLines: TableDefinitionRenderer.lines(for: sourceSnapshot), - targetLines: TableDefinitionRenderer.lines(for: targetSnapshot) - ) - } else if let onlySide = sourceSnapshot ?? targetSnapshot { - VStack(alignment: .leading, spacing: 4) { - Text(sourceSnapshot == nil ? "Definition on the target" : "Definition on the source") - .font(.subheadline.weight(.semibold)) - ForEach(TableDefinitionRenderer.lines(for: onlySide), id: \.self) { line in - Text(line) - .font(.system(.caption, design: .monospaced)) - .textSelection(.enabled) - } - } - } - - if result.changes.isEmpty { - Text("No structural changes.") - .foregroundStyle(.secondary) - } else { - VStack(alignment: .leading, spacing: 4) { - Text("Changes") - .font(.subheadline.weight(.semibold)) - ForEach(Array(result.changes.enumerated()), id: \.offset) { _, change in - HStack(alignment: .top, spacing: 6) { - Image(systemName: change.isDestructive ? "exclamationmark.triangle.fill" : "arrow.right") - .font(.caption) - .foregroundStyle(change.isDestructive ? Color.orange : Color.secondary) - Text(change.description) - .font(.callout) - } - } - } - } - } - .padding(16) - .frame(maxWidth: .infinity, alignment: .leading) - } - } -} diff --git a/TablePro/Views/Compare/StructureDefinitionDiffView.swift b/TablePro/Views/Compare/StructureDefinitionDiffView.swift index debd600c2..ef4552412 100644 --- a/TablePro/Views/Compare/StructureDefinitionDiffView.swift +++ b/TablePro/Views/Compare/StructureDefinitionDiffView.swift @@ -33,7 +33,7 @@ internal struct StructureDefinitionDiffView: View { } .pickerStyle(.segmented) .labelsHidden() - .frame(width: 140) + .fixedSize() } .padding(.bottom, 6) @@ -128,9 +128,9 @@ internal struct StructureDefinitionDiffView: View { guard !isEmpty else { return Color.secondary.opacity(0.05) } switch kind { case .unchanged: return .clear - case .changed: return Color.orange.opacity(0.12) - case .added: return isBefore ? .clear : Color.green.opacity(0.12) - case .removed: return isBefore ? Color.red.opacity(0.12) : .clear + case .changed: return CompareStatusStyle.rowTint(for: .update) + case .added: return isBefore ? .clear : CompareStatusStyle.rowTint(for: .insert) + case .removed: return isBefore ? CompareStatusStyle.rowTint(for: .delete) : .clear } } @@ -138,8 +138,8 @@ internal struct StructureDefinitionDiffView: View { guard !differentiateWithoutColor else { return .clear } switch kind { case .context: return .clear - case .added: return Color.green.opacity(0.12) - case .removed: return Color.red.opacity(0.12) + case .added: return CompareStatusStyle.rowTint(for: .insert) + case .removed: return CompareStatusStyle.rowTint(for: .delete) } } } diff --git a/TableProTests/Core/Compare/CompareCapabilityDeclarationTests.swift b/TableProTests/Core/Compare/CompareCapabilityDeclarationTests.swift new file mode 100644 index 000000000..7f8e5f03e --- /dev/null +++ b/TableProTests/Core/Compare/CompareCapabilityDeclarationTests.swift @@ -0,0 +1,58 @@ +// +// CompareCapabilityDeclarationTests.swift +// TableProTests +// +// Compare & Sync is gated on `.schemaCompare` and `.dataCompare`, and both bits shipped for two +// releases with no driver setting either, so the feature refused every connection it was offered. +// A driver lives in a plugin bundle the test target cannot import, so the declaration is checked by +// reading the driver's source. +// + +import Foundation +import Testing + +@Suite("Compare capability declaration") +struct CompareCapabilityDeclarationTests { + private static let repositoryRoot: URL = { + var url = URL(fileURLWithPath: #filePath) + for _ in 0 ..< 4 { + url.deleteLastPathComponent() + } + return url + }() + + private static let bundledSQLDriverSources = [ + "Plugins/MySQLDriverPlugin/MySQLPluginDriver.swift", + "Plugins/PostgreSQLDriverPlugin/PostgreSQLPluginDriver.swift", + "Plugins/SQLiteDriverPlugin/SQLitePlugin.swift", + ] + + private func capabilitiesDeclaration(in source: String) -> String? { + guard let start = source.range(of: "var capabilities: PluginCapabilities") else { return nil } + let body = source[start.upperBound...] + guard let end = body.range(of: "\n }") else { return nil } + return String(body[.. CompareSyncEndpoint { + CompareSyncEndpoint( + scope: DatabaseScope(connectionId: connectionId, database: database, schema: schema), + connectionName: "server", + databaseType: .postgresql, + safeModeLevel: .silent, + color: .blue + ) + } + + /// `canCompare` used to key on the connection id, which made this pair identical and refused + /// the comparison the issue asks for by name: two versions of a schema on one server. + func testTwoDatabasesOnOneConnectionAreDistinctEndpoints() { + XCTAssertNotEqual(endpoint(database: "app_prod").id, endpoint(database: "app_staging").id) + } + + func testTwoSchemasInOneDatabaseAreDistinctEndpoints() { + XCTAssertNotEqual( + endpoint(database: "app", schema: "public").id, + endpoint(database: "app", schema: "sales").id + ) + } + + func testTheSameScopeIsTheSameEndpoint() { + XCTAssertEqual(endpoint(database: "app", schema: "public").id, endpoint(database: "app", schema: "public").id) + } + + func testQualifiedDescriptionNamesEveryLevelThatIsSet() { + XCTAssertEqual(endpoint(database: "app", schema: "public").qualifiedDescription, "server / app / public") + XCTAssertEqual(endpoint(database: "app").qualifiedDescription, "server / app") + XCTAssertEqual(endpoint(database: "").qualifiedDescription, "server") + } + + func testChangingDatabaseClearsTheSchema() { + let moved = endpoint(database: "app", schema: "public").withDatabase("other") + + XCTAssertEqual(moved.database, "other") + XCTAssertNil(moved.schema) + } + + func testReadOnlyEndpointIsRefusedAsATarget() { + let readOnly = CompareSyncEndpoint( + scope: DatabaseScope(connectionId: connectionId, database: "prod", schema: nil), + connectionName: "prod", + databaseType: .postgresql, + safeModeLevel: .readOnly, + color: .red + ) + + XCTAssertFalse(readOnly.canBeWrittenTo) + XCTAssertNotNil(readOnly.ineligibleAsTargetReason) + } +} + +final class CompareTableKindClassifierTests: XCTestCase { + private func table(_ type: String) -> PluginTableInfo { + PluginTableInfo(name: "orders", type: type, schema: "public", comment: nil) + } + + func testViewsAreRecognisedHoweverTheEngineSpellsThem() { + for spelling in ["VIEW", "view", "SYSTEM VIEW", "BASE VIEW"] { + XCTAssertEqual(CompareTableKindClassifier.kind(of: table(spelling)), .view, spelling) + } + } + + func testMaterializedViewsAreTheirOwnKind() { + for spelling in ["MATERIALIZED VIEW", "MATERIALIZED_VIEW", "materialized view"] { + XCTAssertEqual(CompareTableKindClassifier.kind(of: table(spelling)), .materializedView, spelling) + } + } + + /// PostgreSQL reports PARTITIONED TABLE for an ordinary, directly queryable table. Matching the + /// literal string TABLE would have silently dropped it from every comparison, which is why the + /// rule is subtractive. + func testPartitionedAndForeignTablesStillCompareAsTables() { + for spelling in ["TABLE", "BASE TABLE", "PARTITIONED TABLE", "FOREIGN TABLE", "LOCAL TEMPORARY"] { + XCTAssertEqual(CompareTableKindClassifier.kind(of: table(spelling)), .table, spelling) + } + } + + func testAForeignTableIsFlaggedSeparatelyFromItsKind() { + XCTAssertTrue(CompareTableKindClassifier.isForeign(table("FOREIGN TABLE"))) + XCTAssertFalse(CompareTableKindClassifier.isForeign(table("BASE TABLE"))) + } + + func testOnlyATableCarriesRows() { + XCTAssertTrue(CompareObjectKind.table.carriesRows) + for kind in CompareObjectKind.allCases where kind != .table { + XCTAssertFalse(kind.carriesRows, "\(kind.rawValue) holds no rows a data compare can walk") + } + } +} + +final class DataComparePlanColumnTests: XCTestCase { + private func plan(generated: Set, keys: [String] = ["id"]) -> DataComparePlan { + DataComparePlan( + table: "orders", + schema: "public", + columns: ["id", "total", "line_total"], + columnDescriptors: [ + KeyColumnDescriptor(name: "id", dataType: "bigint"), + KeyColumnDescriptor(name: "total", dataType: "numeric"), + KeyColumnDescriptor(name: "line_total", dataType: "numeric") + ], + generatedColumns: generated, + keyColumns: keys, + isEnabled: true + ) + } + + /// MySQL rejects an explicit value for a generated column outright and PostgreSQL rejects it + /// for a stored one, so it is read and compared but never written. + func testGeneratedColumnsAreReadButNotWritten() { + let plan = plan(generated: ["line_total"]) + + XCTAssertEqual(plan.readColumns, ["id", "total", "line_total"]) + XCTAssertEqual(plan.writeColumns, ["id", "total"]) + } + + func testGeneratedColumnMatchIsCaseInsensitive() { + XCTAssertEqual(plan(generated: ["LINE_TOTAL"]).writeColumns, ["id", "total"]) + } + + func testATableWhoseSharedColumnsAreAllGeneratedIsNotComparable() { + let allGenerated = plan(generated: ["id", "total", "line_total"]) + + XCTAssertNotNil(DataComparePlan.unavailableReason(for: allGenerated)) + } + + func testKeyDescriptorsCarryOnlyTheKeyColumns() { + XCTAssertEqual(plan(generated: []).keyDescriptors.map { $0.name }, ["id"]) + } + + func testATableWithNoKeyIsNotComparable() { + XCTAssertNotNil(DataComparePlan.unavailableReason(for: plan(generated: [], keys: []))) + } + + func testAKeyMissingFromTheSharedColumnsIsNotComparable() { + XCTAssertNotNil(DataComparePlan.unavailableReason(for: plan(generated: [], keys: ["tenant_id"]))) + } +} diff --git a/TableProTests/Core/Compare/CompareResultGroupingTests.swift b/TableProTests/Core/Compare/CompareResultGroupingTests.swift new file mode 100644 index 000000000..68f9e1e79 --- /dev/null +++ b/TableProTests/Core/Compare/CompareResultGroupingTests.swift @@ -0,0 +1,164 @@ +// +// CompareResultGroupingTests.swift +// TableProTests +// +// The results list had a "Group by" picker that only re-sorted: both of its cases returned a flat +// array, so choosing "Object Type" changed the row order and produced no sections at all. These +// pin that grouping is real, and that a group header expands to exactly the objects a bulk include +// should touch. +// + +@testable import TablePro +import XCTest + +final class CompareResultGroupingTests: XCTestCase { + private let comparators = [KeyPathComparator(\CompareResultRow.objectName)] + + private func result( + _ name: String, + kind: CompareObjectKind = .table, + status: TableDiffStatus = .differs, + error: String? = nil + ) -> CompareObjectResult { + CompareObjectResult( + identity: CompareObjectIdentity(kind: kind, schema: "public", name: name), + status: status, + comparisonError: error + ) + } + + // MARK: - Sections + + func testGroupingByDifferenceProducesOneSectionPerStatus() { + let groups = CompareResultGrouping.groups( + from: [ + result("a", status: .onlyInSource), + result("b", status: .onlyInTarget), + result("c", status: .differs) + ], + grouping: .byDifference, + sortedUsing: comparators + ) + + XCTAssertEqual(groups.count, 3) + XCTAssertEqual(groups.flatMap { $0.rows }.count, 3) + } + + func testGroupingByObjectTypeProducesOneSectionPerKind() { + let groups = CompareResultGrouping.groups( + from: [ + result("orders", kind: .table), + result("reporting", kind: .view), + result("audit", kind: .function) + ], + grouping: .byObjectType, + sortedUsing: comparators + ) + + XCTAssertEqual(groups.count, 3) + XCTAssertEqual(Set(groups.map { $0.header.objectName }).count, 3) + } + + func testTheTwoGroupingsSectionTheSameResultsDifferently() { + let results = [ + result("orders", kind: .table, status: .differs), + result("reporting", kind: .view, status: .differs) + ] + + let byDifference = CompareResultGrouping.groups( + from: results, grouping: .byDifference, sortedUsing: comparators + ) + let byKind = CompareResultGrouping.groups( + from: results, grouping: .byObjectType, sortedUsing: comparators + ) + + XCTAssertEqual(byDifference.count, 1, "both differ, so one difference section") + XCTAssertEqual(byKind.count, 2, "two kinds, so two kind sections") + } + + func testAnEmptyBucketProducesNoSection() { + let groups = CompareResultGrouping.groups( + from: [result("orders", status: .differs)], + grouping: .byDifference, + sortedUsing: comparators + ) + + XCTAssertEqual(groups.count, 1) + } + + func testNoGroupingProducesFlatRows() { + let rows = CompareResultGrouping.rows( + from: [result("b"), result("a")], sortedUsing: comparators + ) + + XCTAssertEqual(rows.map { $0.objectName }, ["public.a", "public.b"]) + XCTAssertTrue(rows.allSatisfy { !$0.isGroup }) + } + + // MARK: - Bulk include + + /// A group header's include checkbox must not reach an identical object, whose only available + /// action is skip, nor one that could not be compared at all. + func testGroupMembersExcludeIdenticalAndUncomparableResults() { + let groups = CompareResultGrouping.groups( + from: [ + result("a", status: .differs), + result("b", status: .identical), + result("c", status: .differs, error: "permission denied") + ], + grouping: .byObjectType, + sortedUsing: comparators + ) + + let members = groups.flatMap { $0.header.memberIds } + XCTAssertEqual(members.count, 1) + XCTAssertTrue(members[0].contains("a")) + } + + func testSelectingAGroupHeaderExpandsToItsMembers() { + let groups = CompareResultGrouping.groups( + from: [result("a"), result("b")], + grouping: .byObjectType, + sortedUsing: comparators + ) + let header = try? XCTUnwrap(groups.first).header + + let ids = CompareResultGrouping.objectIds(in: [header?.id ?? ""], groups: groups) + + XCTAssertEqual(ids.count, 2) + } + + func testSelectingObjectsPassesTheirOwnIdentifiersThrough() { + let orders = result("orders") + let ids = CompareResultGrouping.objectIds(in: [orders.id], groups: []) + + XCTAssertEqual(ids, [orders.id]) + } + + /// A group header shares the table's row type, so its identifier has to be one no object can + /// produce, or a bulk include would resolve to a nonexistent object. + func testAGroupIdentifierCannotCollideWithAnObjectIdentifier() { + let groups = CompareResultGrouping.groups( + from: [result("a")], grouping: .byObjectType, sortedUsing: comparators + ) + + XCTAssertTrue(CompareResultGrouping.isGroupIdentifier(groups[0].header.id)) + XCTAssertFalse(CompareResultGrouping.isGroupIdentifier(result("a").id)) + } + + // MARK: - Uncomparable + + func testUncomparableResultsGetTheirOwnSection() { + let group = CompareResultGrouping.uncomparableGroup( + from: [result("a", error: "permission denied")], sortedUsing: comparators + ) + + XCTAssertNotNil(group) + XCTAssertEqual(group?.rows.count, 1) + XCTAssertTrue(group?.header.memberIds.isEmpty ?? false, "nothing unreadable can be included") + } + + func testNoUncomparableSectionWhenEverythingCompared() { + XCTAssertNil(CompareResultGrouping.uncomparableGroup(from: [], sortedUsing: comparators)) + } +} diff --git a/TableProTests/Core/Compare/CompareSQLLiteralTests.swift b/TableProTests/Core/Compare/CompareSQLLiteralTests.swift new file mode 100644 index 000000000..b48b5f3c3 --- /dev/null +++ b/TableProTests/Core/Compare/CompareSQLLiteralTests.swift @@ -0,0 +1,54 @@ +// +// CompareSQLLiteralTests.swift +// TableProTests +// +// The PluginKit default renders binary as `X'89504E47'`, a bit-string literal. MySQL, MariaDB, +// SQLite and ClickHouse accept it. PostgreSQL rejects it with "column is of type bytea but +// expression is of type bit", SQL Server wants `0x`, and Oracle wants `HEXTORAW`. No shipped +// driver overrides `sqlLiteral(for:)`, so the spelling is decided per engine here. +// + +@testable import TablePro +import XCTest + +final class CompareSQLLiteralTests: XCTestCase { + private let png = Data([0x89, 0x50, 0x4E, 0x47]) + + func testBitStringEnginesKeepTheDefaultSpelling() throws { + for type in [DatabaseType.mysql, .mariadb, .sqlite, .clickhouse, .duckdb, .libsql, .turso, .cloudflareD1] { + let literal = try XCTUnwrap(CompareSQLLiteral.binaryLiteral(for: png, databaseType: type)) + XCTAssertEqual(literal, "X'89504E47'", "\(type.rawValue) uses a bit-string literal") + } + } + + func testPostgresFamilyUsesAByteaCast() throws { + for type in [DatabaseType.postgresql, .cockroachdb, .redshift, .pglite] { + let literal = try XCTUnwrap(CompareSQLLiteral.binaryLiteral(for: png, databaseType: type)) + XCTAssertEqual(literal, "'\\x89504e47'::bytea", "\(type.rawValue) uses a bytea literal") + } + } + + func testSQLServerUsesZeroX() throws { + let literal = try XCTUnwrap(CompareSQLLiteral.binaryLiteral(for: png, databaseType: .mssql)) + + XCTAssertEqual(literal, "0x89504E47") + } + + func testOracleUsesHexToRaw() throws { + let literal = try XCTUnwrap(CompareSQLLiteral.binaryLiteral(for: png, databaseType: .oracle)) + + XCTAssertEqual(literal, "HEXTORAW('89504E47')") + } + + /// An engine this build does not name falls back to the driver's own spelling rather than + /// guessing at one, which is why the helper returns nil instead of a default. + func testAnUnnamedEngineHasNoOpinion() { + XCTAssertNil(CompareSQLLiteral.binaryLiteral(for: png, databaseType: DatabaseType(rawValue: "Whatever"))) + } + + func testEmptyDataStillProducesAValidLiteral() throws { + let literal = try XCTUnwrap(CompareSQLLiteral.binaryLiteral(for: Data(), databaseType: .postgresql)) + + XCTAssertEqual(literal, "'\\x'::bytea") + } +} diff --git a/TableProTests/Core/Compare/CompareSyncExecutorTests.swift b/TableProTests/Core/Compare/CompareSyncExecutorTests.swift index 04efc9bce..66fa86ccf 100644 --- a/TableProTests/Core/Compare/CompareSyncExecutorTests.swift +++ b/TableProTests/Core/Compare/CompareSyncExecutorTests.swift @@ -14,10 +14,12 @@ private final class RecordingDriver: PluginDatabaseDriver, @unchecked Sendable { var transactionEvents: [String] = [] var failingStatements: Set = [] var transactionsSupported = true + var transactionalDDLSupported = true var declaredCapabilities: PluginCapabilities = [] var capabilities: PluginCapabilities { declaredCapabilities } var supportsTransactions: Bool { transactionsSupported } + var supportsTransactionalDDL: Bool { transactionalDDLSupported } func connect() async throws {} @@ -71,11 +73,9 @@ private struct AlwaysDenyGate: ExecutionGate { final class CompareSyncExecutorTests: XCTestCase { private func endpoint() -> CompareSyncEndpoint { CompareSyncEndpoint( - connectionId: UUID(), - displayName: "staging", + scope: DatabaseScope(connectionId: UUID(), database: "app", schema: nil), + connectionName: "staging", databaseType: .mysql, - database: "app", - schema: nil, safeModeLevel: .silent, color: .blue ) @@ -207,12 +207,26 @@ final class CompareSyncExecutorTests: XCTestCase { func testNoTransactionWhenDriverDoesNotSupportOne() async throws { let driver = RecordingDriver() driver.transactionsSupported = false + driver.transactionalDDLSupported = false _ = try await run(statements: [statement("A;")], driver: driver) XCTAssertTrue(driver.transactionEvents.isEmpty) } + /// A structure sync on MySQL, MariaDB or Oracle must not open a transaction it cannot roll + /// back: DDL commits implicitly there, so the ROLLBACK undid nothing while the run reported + /// "The target is unchanged." + func testStructureSyncOpensNoTransactionWhenDDLCommitsImplicitly() async throws { + let driver = RecordingDriver() + driver.transactionsSupported = true + driver.transactionalDDLSupported = false + + _ = try await run(statements: [statement("ALTER TABLE users DROP COLUMN legacy_id;")], driver: driver) + + XCTAssertTrue(driver.transactionEvents.isEmpty) + } + // MARK: - Gate func testDeniedAuthorizationRunsNoStatements() async { @@ -247,12 +261,21 @@ final class CompareSyncExecutorTests: XCTestCase { } final class CompareSyncExecutionSettingsTests: XCTestCase { + private func driver(transactions: Bool, transactionalDDL: Bool) -> RecordingDriver { + let driver = RecordingDriver() + driver.transactionsSupported = transactions + driver.transactionalDDLSupported = transactionalDDL + return driver + } + func testTransactionIsDisabledForSkipAndContinue() { var settings = CompareSyncExecutionSettings() settings.wrapInTransaction = true settings.errorHandling = .skipAndContinue - XCTAssertFalse(settings.usesTransaction(supportsTransactions: true)) + XCTAssertFalse(settings.usesTransaction( + for: .data, driver: driver(transactions: true, transactionalDDL: true) + )) } func testTransactionRequiresDriverSupport() { @@ -260,8 +283,35 @@ final class CompareSyncExecutionSettingsTests: XCTestCase { settings.wrapInTransaction = true settings.errorHandling = .stopAndRollback - XCTAssertTrue(settings.usesTransaction(supportsTransactions: true)) - XCTAssertFalse(settings.usesTransaction(supportsTransactions: false)) + XCTAssertTrue(settings.usesTransaction( + for: .data, driver: driver(transactions: true, transactionalDDL: true) + )) + XCTAssertFalse(settings.usesTransaction( + for: .data, driver: driver(transactions: false, transactionalDDL: true) + )) + } + + /// MySQL, MariaDB and Oracle commit implicitly on every DDL statement, so a structure sync + /// wrapped in a transaction reported "The target is unchanged" after a ROLLBACK that undid + /// nothing. Structure asks `supportsTransactionalDDL`, data asks `supportsTransactions`. + func testStructureSyncAsksForTransactionalDDLRatherThanTransactions() { + var settings = CompareSyncExecutionSettings() + settings.wrapInTransaction = true + settings.errorHandling = .stopAndRollback + let mysqlLike = driver(transactions: true, transactionalDDL: false) + + XCTAssertFalse(settings.usesTransaction(for: .structure, driver: mysqlLike)) + XCTAssertTrue(settings.usesTransaction(for: .data, driver: mysqlLike)) + } + + func testStructureSyncUsesATransactionWhenTheEngineSupportsTransactionalDDL() { + var settings = CompareSyncExecutionSettings() + settings.wrapInTransaction = true + settings.errorHandling = .stopAndRollback + + XCTAssertTrue(settings.usesTransaction( + for: .structure, driver: driver(transactions: true, transactionalDDL: true) + )) } } @@ -292,11 +342,9 @@ final class CompareSyncEligibilityTests: XCTestCase { final class CompareSyncEndpointTests: XCTestCase { private func endpoint(_ level: SafeModeLevel) -> CompareSyncEndpoint { CompareSyncEndpoint( - connectionId: UUID(), - displayName: "prod", + scope: DatabaseScope(connectionId: UUID(), database: "prod", schema: nil), + connectionName: "prod", databaseType: .postgresql, - database: nil, - schema: nil, safeModeLevel: level, color: .red ) diff --git a/TableProTests/Core/Compare/DataDiffEngineTests.swift b/TableProTests/Core/Compare/DataDiffEngineTests.swift index 92264f7bb..b02c35f94 100644 --- a/TableProTests/Core/Compare/DataDiffEngineTests.swift +++ b/TableProTests/Core/Compare/DataDiffEngineTests.swift @@ -42,6 +42,54 @@ final class DataDiffEngineTests: XCTestCase { // MARK: - Merge join classification + /// The retained entry list is a preview, capped at `maxRetainedEntries`. Script generation used + /// to build DML from that list, so a table with 12,000 differences produced 5,000 statements and + /// the run reported success. The sink sees every entry the walk produces, before the cap. + func testTheEntrySinkSeesEveryDifferenceEvenPastTheRetentionCap() async throws { + var options = DataCompareOptions() + options.keyColumns = ["id"] + options.maxRetainedEntries = 10 + + let source = ArrayRowProvider(rows: (1 ... 50).map { + DataRow(values: ["id": .text(String(format: "%04d", $0)), "name": .text("n")]) + }) + let engine = DataDiffEngine( + options: options, + columns: ["id", "name"], + keyDescriptors: [KeyColumnDescriptor(name: "id", dataType: "int")] + ) + + var seen = 0 + let summary = try await engine.compare(source: source, target: ArrayRowProvider(rows: [])) { _ in + seen += 1 + } + + XCTAssertEqual(summary.insertCount, 50, "counts stay exact") + XCTAssertEqual(summary.entries.count, 10, "the retained preview stays capped") + XCTAssertTrue(summary.truncatedEntries) + XCTAssertEqual(seen, 50, "the sink must see every difference, not the capped preview") + } + + func testTheSinkIsOptionalAndTheCapStillAppliesWithoutIt() async throws { + var options = DataCompareOptions() + options.keyColumns = ["id"] + options.maxRetainedEntries = 2 + + let source = ArrayRowProvider(rows: (1 ... 5).map { + DataRow(values: ["id": .text("\($0)"), "name": .text("n")]) + }) + let engine = DataDiffEngine( + options: options, + columns: ["id", "name"], + keyDescriptors: [KeyColumnDescriptor(name: "id", dataType: "int")] + ) + + let summary = try await engine.compare(source: source, target: ArrayRowProvider(rows: [])) + + XCTAssertEqual(summary.insertCount, 5) + XCTAssertEqual(summary.entries.count, 2) + } + func testRowMissingFromTargetIsAnInsert() async throws { let summary = try await diff( source: [row(["id": "1", "name": "a"]), row(["id": "2", "name": "b"])], diff --git a/TableProTests/Core/Compare/DataSyncScriptBuilderTests.swift b/TableProTests/Core/Compare/DataSyncScriptBuilderTests.swift index 996b3991f..e56fb945e 100644 --- a/TableProTests/Core/Compare/DataSyncScriptBuilderTests.swift +++ b/TableProTests/Core/Compare/DataSyncScriptBuilderTests.swift @@ -62,7 +62,9 @@ final class DataSyncScriptBuilderTests: XCTestCase { columns: [String] = ["id", "name"], schema: String? = nil ) -> [SyncStatement] { - DataSyncScriptBuilder(targetDriver: driver, options: overrides ?? options()) + DataSyncScriptBuilder( + targetDriver: driver, targetDatabaseType: .mysql, options: overrides ?? options() + ) .build(table: "users", schema: schema, writeColumns: columns, entries: entries) } @@ -245,3 +247,92 @@ final class DataSyncScriptBuilderTests: XCTestCase { ) } } + +final class DataSyncScriptBuilderColumnTests: XCTestCase { + private func builder( + _ databaseType: DatabaseType = .postgresql, + options: DataCompareOptions + ) -> DataSyncScriptBuilder { + DataSyncScriptBuilder( + targetDriver: QuotingDriver(), + targetDatabaseType: databaseType, + options: options + ) + } + + private func options() -> DataCompareOptions { + var options = DataCompareOptions() + options.keyColumns = ["id"] + options.insertMissingRows = true + options.updateDifferingRows = true + options.deleteExtraRows = true + return options + } + + private func insertEntry() -> RowDiffEntry { + RowDiffEntry( + kind: .insert, + keyDescription: "1", + sourceRow: DataRow(values: [ + "id": .text("1"), + "blob": .bytes(Data([0x89, 0x50])), + "total": .text("9") + ]), + targetRow: nil + ) + } + + /// PostgreSQL rejects `X'8950'` with "column is of type bytea but expression is of type bit". + func testBinaryValuesUseTheTargetEnginesSpelling() { + let statements = builder(.postgresql, options: options()).build( + table: "files", schema: "public", writeColumns: ["id", "blob"], entries: [insertEntry()] + ) + + XCTAssertEqual(statements.count, 1) + XCTAssertTrue(statements[0].sql.contains("'\\x8950'::bytea"), statements[0].sql) + XCTAssertFalse(statements[0].sql.contains("X'"), statements[0].sql) + } + + func testBitStringEnginesKeepTheirOwnSpelling() { + let statements = builder(.mysql, options: options()).build( + table: "files", schema: nil, writeColumns: ["id", "blob"], entries: [insertEntry()] + ) + + XCTAssertTrue(statements[0].sql.contains("X'8950'"), statements[0].sql) + } + + /// The three buckets exist so a caller can interleave several tables in dependency order. A + /// flat per-table inserts+updates+deletes is only correct for one table. + func testStatementsAreBucketedByKind() { + var statements = DataSyncStatements() + let entries = [ + insertEntry(), + RowDiffEntry( + kind: .delete, keyDescription: "2", + sourceRow: nil, targetRow: DataRow(values: ["id": .text("2")]) + ) + ] + let builder = builder(.mysql, options: options()) + for entry in entries { + builder.append(entry, table: "files", schema: nil, writeColumns: ["id", "blob"], into: &statements) + } + + XCTAssertEqual(statements.inserts.count, 1) + XCTAssertEqual(statements.deletes.count, 1) + XCTAssertTrue(statements.updates.isEmpty) + XCTAssertFalse(statements.isEmpty) + } + + func testDeleteStatementsCarryARefusedHazard() { + var statements = DataSyncStatements() + builder(.mysql, options: options()).append( + RowDiffEntry( + kind: .delete, keyDescription: "2", + sourceRow: nil, targetRow: DataRow(values: ["id": .text("2")]) + ), + table: "files", schema: nil, writeColumns: ["id"], into: &statements + ) + + XCTAssertTrue(statements.deletes[0].isRefusedByDefault) + } +} diff --git a/TableProTests/Core/Compare/ForeignKeyTopologicalSortTests.swift b/TableProTests/Core/Compare/ForeignKeyTopologicalSortTests.swift new file mode 100644 index 000000000..524fdc8bc --- /dev/null +++ b/TableProTests/Core/Compare/ForeignKeyTopologicalSortTests.swift @@ -0,0 +1,122 @@ +// +// ForeignKeyTopologicalSortTests.swift +// TableProTests +// + +import Foundation +import TableProPluginKit +import Testing + +@Suite("ForeignKeyTopologicalSort") +struct ForeignKeyTopologicalSortTests { + private func table(_ name: String, _ schema: String? = nil) -> ForeignKeyTopologicalSort.Table { + ForeignKeyTopologicalSort.Table(name: name, schema: schema) + } + + private func foreignKey(to referencedTable: String, schema: String? = nil) -> PluginForeignKeyInfo { + PluginForeignKeyInfo( + name: "fk_\(referencedTable)", + column: "\(referencedTable)_id", + referencedTable: referencedTable, + referencedColumn: "id", + referencedSchema: schema + ) + } + + @Test("A table with no schema is identified by its bare name") + func bareNameIsTheIdentifierWithoutASchema() { + #expect(table("orders").identifier == "orders") + #expect(table("orders", "").identifier == "orders") + #expect(table("orders", "public").identifier == "public.orders") + } + + @Test("The same table name in two schemas stays two tables") + func sameNameInTwoSchemasStaysDistinct() { + let ordered = ForeignKeyTopologicalSort.ordered( + [table("orders", "public"), table("orders", "sales")], + foreignKeysByTable: [:] + ) + + #expect(ordered.map { $0.identifier } == ["public.orders", "sales.orders"]) + #expect(ordered.map { $0.schema } == ["public", "sales"]) + } + + @Test("One table listed twice is emitted once") + func repeatedTableIsEmittedOnce() { + let ordered = ForeignKeyTopologicalSort.ordered( + [table("orders", "public"), table("orders", "public")], + foreignKeysByTable: [:] + ) + + #expect(ordered.map { $0.identifier } == ["public.orders"]) + } + + @Test("A parent precedes every child that references it") + func parentPrecedesChild() { + let ordered = ForeignKeyTopologicalSort.ordered( + [table("orders", "public"), table("customers", "public")], + foreignKeysByTable: ["public.orders": [foreignKey(to: "customers", schema: "public")]] + ) + + #expect(ordered.map { $0.identifier } == ["public.customers", "public.orders"]) + } + + @Test("A foreign key that names no schema points inside the referencing table's schema") + func unqualifiedForeignKeyResolvesInsideTheReferencingSchema() { + let ordered = ForeignKeyTopologicalSort.ordered( + [table("invoices", "sales"), table("regions", "sales")], + foreignKeysByTable: ["sales.invoices": [foreignKey(to: "regions")]] + ) + + #expect(ordered.map { $0.identifier } == ["sales.regions", "sales.invoices"]) + } + + @Test("A foreign key across schemas orders the table it really points at") + func crossSchemaForeignKeyOrdersTheReferencedSchema() { + let ordered = ForeignKeyTopologicalSort.ordered( + [table("orders", "sales"), table("customers", "public"), table("customers", "sales")], + foreignKeysByTable: [ + "sales.orders": [foreignKey(to: "customers", schema: "public")], + "sales.customers": [foreignKey(to: "orders", schema: "sales")] + ] + ) + + #expect(ordered.map { $0.identifier } == ["public.customers", "sales.orders", "sales.customers"]) + } + + @Test("childrenFirst puts a child ahead of its parent") + func childrenFirstReversesDependencyOrder() { + let ordered = ForeignKeyTopologicalSort.ordered( + [table("orders", "public"), table("customers", "public")], + foreignKeysByTable: ["public.orders": [foreignKey(to: "customers", schema: "public")]], + childrenFirst: true + ) + + #expect(ordered.map { $0.identifier } == ["public.orders", "public.customers"]) + } + + @Test("A dependency cycle keeps every table exactly once") + func cycleKeepsEveryTableExactlyOnce() { + let ordered = ForeignKeyTopologicalSort.ordered( + [table("orders", "public"), table("customers", "public"), table("orders", "sales")], + foreignKeysByTable: [ + "public.orders": [foreignKey(to: "customers", schema: "public")], + "public.customers": [foreignKey(to: "orders", schema: "public")] + ] + ) + let identifiers = ordered.map { $0.identifier } + + #expect(identifiers.count == 3) + #expect(Set(identifiers) == ["public.orders", "public.customers", "sales.orders"]) + } + + @Test("A self-referencing foreign key does not strand its table") + func selfReferenceDoesNotStrandTheTable() { + let ordered = ForeignKeyTopologicalSort.ordered( + [table("employees", "public"), table("departments", "public")], + foreignKeysByTable: ["public.employees": [foreignKey(to: "employees", schema: "public")]] + ) + + #expect(ordered.map { $0.identifier } == ["public.departments", "public.employees"]) + } +} diff --git a/TableProTests/Core/Compare/KeyOrderingTests.swift b/TableProTests/Core/Compare/KeyOrderingTests.swift index 90f98d971..2cb9891db 100644 --- a/TableProTests/Core/Compare/KeyOrderingTests.swift +++ b/TableProTests/Core/Compare/KeyOrderingTests.swift @@ -11,7 +11,7 @@ import XCTest final class KeyOrderingPolicyTests: XCTestCase { private func numeric() -> KeyOrdering { KeyOrdering(orders: [.numeric]) } - private func text() -> KeyOrdering { KeyOrdering(orders: [.binaryText]) } + private func text() -> KeyOrdering { KeyOrdering(orders: [.caseSensitiveText]) } func testNumericKeysOrderNumerically() { XCTAssertEqual(numeric().compare([.text("9")], [.text("10")]), .orderedAscending) @@ -45,7 +45,7 @@ final class KeyOrderingPolicyTests: XCTestCase { } func testCompositeKeyFallsThroughToSecondColumn() { - let ordering = KeyOrdering(orders: [.binaryText, .numeric]) + let ordering = KeyOrdering(orders: [.caseSensitiveText, .numeric]) XCTAssertEqual( ordering.compare([.text("a"), .text("2")], [.text("a"), .text("10")]), @@ -70,24 +70,76 @@ final class KeyOrderingPolicyTests: XCTestCase { func testOrdersDerivedFromDeclaredColumnTypes() { let orders = KeyOrdering.orders( for: ["id", "name"], - columnTypes: ["id": "bigint", "name": "varchar(50)"] + descriptors: [ + KeyColumnDescriptor(name: "id", dataType: "bigint"), + KeyColumnDescriptor(name: "name", dataType: "varchar(50)") + ] ) - XCTAssertEqual(orders, [.numeric, .binaryText]) + XCTAssertEqual(orders, [.numeric, .caseSensitiveText]) } - func testUnknownColumnTypeFallsBackToBinaryText() { - XCTAssertEqual(KeyOrdering.orders(for: ["mystery"], columnTypes: [:]), [.binaryText]) + func testUnknownColumnTypeFallsBackToCaseSensitiveText() { + XCTAssertEqual(KeyOrdering.orders(for: ["mystery"], descriptors: []), [.caseSensitiveText]) } - // MARK: - Stream order check + // MARK: - Exact numeric ordering - func testNumericOnlyKeysNeedNoStreamCheck() { - XCTAssertFalse(KeyOrdering(orders: [.numeric]).requiresStreamOrderCheck) + /// Going through Double collapsed every pair of integers sharing the first 53 bits, so two + /// Snowflake ids one apart matched as the same row and the engine emitted an UPDATE that + /// overwrote a different row. + func testTwoBigIntegersAboveTwoToTheFiftyThreeAreNotEqual() { + let ordering = numeric() + let lower: [PluginCellValue] = [.text("1234567890123456789")] + let higher: [PluginCellValue] = [.text("1234567890123456790")] + + XCTAssertEqual(ordering.compare(lower, higher), .orderedAscending) + XCTAssertEqual(ordering.compare(higher, lower), .orderedDescending) + XCTAssertEqual(ordering.compare(lower, lower), .orderedSame) } - func testTextKeysRequireStreamCheck() { - XCTAssertTrue(KeyOrdering(orders: [.numeric, .binaryText]).requiresStreamOrderCheck) + func testNumericOrderingIsNotLexicographic() { + XCTAssertEqual(numeric().compare([.text("9")], [.text("10")]), .orderedAscending) + } + + /// An unparsable numeric key used to collapse onto a shared zero, which made every one of them + /// compare equal to every other. + func testUnparsableNumericKeysStayDistinct() { + XCTAssertNotEqual(numeric().compare([.text("n/a")], [.text("unknown")]), .orderedSame) + } + + // MARK: - Collation + + func testCaseInsensitiveCollationIsDetectedPerEngine() { + for collation in ["utf8mb4_general_ci", "NOCASE", "SQL_Latin1_General_CP1_CI_AS"] { + XCTAssertTrue(KeyOrdering.isCaseInsensitive(collation), "\(collation) is case-insensitive") + } + for collation in ["utf8mb4_bin", "SQL_Latin1_General_CP1_CS_AS", "C", nil] { + XCTAssertFalse(KeyOrdering.isCaseInsensitive(collation), "\(collation ?? "nil") is case-sensitive") + } + } + + /// The server's own key constraint treats these as one row, so a byte comparator reported an + /// orphan insert for a row the target already had. + func testCaseInsensitiveKeyMatchesRegardlessOfCase() { + let ordering = KeyOrdering(orders: [.caseInsensitiveText]) + + XCTAssertEqual(ordering.compare([.text("Alice")], [.text("ALICE")]), .orderedSame) + XCTAssertEqual(KeyOrdering(orders: [.caseSensitiveText]).compare( + [.text("Alice")], [.text("ALICE")] + ), .orderedDescending) + } + + func testCollationDecidesTheTextOrder() { + let orders = KeyOrdering.orders( + for: ["name", "code"], + descriptors: [ + KeyColumnDescriptor(name: "name", dataType: "varchar(50)", collation: "utf8mb4_general_ci"), + KeyColumnDescriptor(name: "code", dataType: "varchar(50)", collation: "utf8mb4_bin") + ] + ) + + XCTAssertEqual(orders, [.caseInsensitiveText, .caseSensitiveText]) } // MARK: - NULL keys @@ -109,7 +161,9 @@ final class DataDiffOrderingSafetyTests: XCTestCase { return DataDiffEngine( options: options, columns: ["id", "name"], - columnTypes: ["id": numericKey ? "int" : "varchar(20)"] + keyDescriptors: [ + KeyColumnDescriptor(name: "id", dataType: numericKey ? "int" : "varchar(20)") + ] ) } diff --git a/TableProTests/Core/Compare/SourceObjectDiffEngineTests.swift b/TableProTests/Core/Compare/SourceObjectDiffEngineTests.swift new file mode 100644 index 000000000..d6cda302d --- /dev/null +++ b/TableProTests/Core/Compare/SourceObjectDiffEngineTests.swift @@ -0,0 +1,193 @@ +// +// SourceObjectDiffEngineTests.swift +// TableProTests +// +// Views, procedures, functions and triggers have no parsed structure to compare: their body IS +// the definition. What the engine has to get right is the matching, so an overloaded routine is +// not confused with its sibling, and the normalising, so a formatting difference is not reported +// as a real one. +// + +@testable import TablePro +import XCTest + +final class SourceObjectDiffEngineTests: XCTestCase { + private func read( + _ name: String, + kind: CompareObjectKind = .function, + schema: String? = "public", + signature: String? = nil, + source: String + ) -> RoutineSourceRead { + RoutineSourceRead(name: name, kind: kind, schema: schema, signature: signature, source: source) + } + + private func engine(_ options: StructureCompareOptions = .default) -> SourceObjectDiffEngine { + SourceObjectDiffEngine(options: options) + } + + // MARK: - Status + + func testAnObjectOnlyOnTheSourceIsCreated() { + let results = engine().compare( + source: [read("audit", source: "BEGIN END")], + target: [] + ) + + XCTAssertEqual(results.count, 1) + XCTAssertEqual(results[0].status, .onlyInSource) + XCTAssertEqual(results[0].suggestedAction, .create) + } + + func testAnObjectOnlyOnTheTargetIsDropped() { + let results = engine().compare( + source: [], + target: [read("stale", source: "BEGIN END")] + ) + + XCTAssertEqual(results[0].status, .onlyInTarget) + XCTAssertEqual(results[0].suggestedAction, .drop) + } + + func testAMatchingDefinitionIsIdentical() { + let results = engine().compare( + source: [read("audit", source: "BEGIN\n SELECT 1;\nEND")], + target: [read("audit", source: "BEGIN\n SELECT 1;\nEND")] + ) + + XCTAssertEqual(results[0].status, .identical) + XCTAssertEqual(results[0].suggestedAction, .skip) + } + + func testADifferentDefinitionIsAlter() { + let results = engine().compare( + source: [read("audit", source: "BEGIN SELECT 1; END")], + target: [read("audit", source: "BEGIN SELECT 2; END")] + ) + + XCTAssertEqual(results[0].status, .differs) + XCTAssertEqual(results[0].suggestedAction, .alter) + XCTAssertFalse(results[0].sourceDefinition.isEmpty) + XCTAssertFalse(results[0].targetDefinition.isEmpty) + } + + // MARK: - Normalising + + func testTrailingSemicolonsAndLineEndingsAreNotADifference() { + let results = engine().compare( + source: [read("audit", source: "BEGIN SELECT 1; END;")], + target: [read("audit", source: "BEGIN SELECT 1; END\r\n")] + ) + + XCTAssertEqual(results[0].status, .identical) + } + + func testWhitespaceIsADifferenceUntilItIsIgnored() { + let source = [read("audit", source: "BEGIN\n SELECT 1;\nEND")] + let target = [read("audit", source: "BEGIN SELECT 1; END")] + + XCTAssertEqual(engine(strict()).compare(source: source, target: target)[0].status, .differs) + + var lenient = StructureCompareOptions.default + lenient.ignoreWhitespaceInText = true + XCTAssertEqual(engine(lenient).compare(source: source, target: target)[0].status, .identical) + } + + func testIdentifierCaseIsADifferenceUntilItIsIgnored() { + let source = [read("audit", source: "BEGIN SELECT 1; END")] + let target = [read("audit", source: "begin select 1; end")] + + XCTAssertEqual(engine(strict()).compare(source: source, target: target)[0].status, .differs) + + var lenient = StructureCompareOptions.default + lenient.ignoreIdentifierCase = true + XCTAssertEqual(engine(lenient).compare(source: source, target: target)[0].status, .identical) + } + + // MARK: - Matching + + /// PostgreSQL and Oracle both allow two routines to share a name, so the signature is part of + /// the identity. Without it one overload is compared against the other. + func testTwoOverloadsOfOneNameAreMatchedBySignature() { + let results = engine().compare( + source: [ + read("area", signature: "(integer)", source: "SELECT 1"), + read("area", signature: "(geometry)", source: "SELECT 2") + ], + target: [ + read("area", signature: "(geometry)", source: "SELECT 2") + ] + ) + + XCTAssertEqual(results.count, 2) + XCTAssertEqual(results.filter { $0.status == .identical }.count, 1) + XCTAssertEqual(results.filter { $0.status == .onlyInSource }.count, 1) + } + + func testTwoKindsSharingOneNameAreNotMatched() { + let results = engine().compare( + source: [read("audit", kind: .function, source: "SELECT 1")], + target: [read("audit", kind: .procedure, source: "SELECT 1")] + ) + + XCTAssertEqual(results.count, 2) + XCTAssertEqual(Set(results.map { $0.status }), [.onlyInSource, .onlyInTarget]) + } + + func testTwoSchemasSharingOneNameAreNotMatched() { + let results = engine().compare( + source: [read("audit", schema: "public", source: "SELECT 1")], + target: [read("audit", schema: "sales", source: "SELECT 1")] + ) + + XCTAssertEqual(results.count, 2) + } + + // MARK: - Missing definitions + + /// A driver that lists a routine but cannot return its body must not report it as identical to + /// another routine whose body is also empty. + func testAnObjectWithNoDefinitionCarriesANote() { + let results = engine().compare( + source: [read("audit", source: "")], + target: [] + ) + + XCTAssertFalse(results[0].notes.isEmpty) + } + + private func strict() -> StructureCompareOptions { + var options = StructureCompareOptions.default + options.ignoreWhitespaceInText = false + options.ignoreIdentifierCase = false + return options + } +} + +final class SourceObjectHazardTests: XCTestCase { + private let classifier = SyncSafetyClassifier() + + private func identity(_ kind: CompareObjectKind) -> CompareObjectIdentity { + CompareObjectIdentity(kind: kind, schema: "public", name: "reporting") + } + + /// A view holds no rows, so dropping one is recoverable from the source and only warns. A + /// materialized view does hold rows, so it is refused like a table. + func testDroppingAViewIsRefusedButDroppingAMaterializedViewAlsoWarnsAboutItsRows() { + let view = classifier.hazards(forDropping: identity(.view), isReplacement: false) + let materialized = classifier.hazards(forDropping: identity(.materializedView), isReplacement: false) + + XCTAssertTrue(view.contains { $0.severity == .refusedByDefault }) + XCTAssertTrue(materialized.contains { $0.severity == .refusedByDefault }) + XCTAssertGreaterThan(materialized.count, view.count) + } + + /// A replace drops and recreates, so it warns about dependents rather than about losing the + /// object: the object comes straight back. + func testAReplacementWarnsAboutDependentsRatherThanBeingRefused() { + let hazards = classifier.hazards(forDropping: identity(.function), isReplacement: true) + + XCTAssertFalse(hazards.contains { $0.severity == .refusedByDefault }) + XCTAssertTrue(hazards.contains { $0.severity == .warning }) + } +} diff --git a/TableProTests/Core/Compare/TableDefinitionRendererTests.swift b/TableProTests/Core/Compare/TableDefinitionRendererTests.swift index 04cc2e2bb..0264fa13c 100644 --- a/TableProTests/Core/Compare/TableDefinitionRendererTests.swift +++ b/TableProTests/Core/Compare/TableDefinitionRendererTests.swift @@ -93,6 +93,7 @@ final class TableDefinitionRendererTests: XCTestCase { } } +@MainActor final class CompareSyncProfileStorageTests: XCTestCase { private var defaults: UserDefaults! private var storage: CompareSyncProfileStorage! @@ -112,38 +113,42 @@ final class CompareSyncProfileStorageTests: XCTestCase { super.tearDown() } + private func scope(_ connectionId: UUID, database: String = "app", schema: String? = nil) -> DatabaseScope { + DatabaseScope(connectionId: connectionId, database: database, schema: schema) + } + private func profile( name: String, - source: UUID, - target: UUID, + source: DatabaseScope, + target: DatabaseScope, mode: CompareSyncMode = .structure ) -> CompareSyncProfile { CompareSyncProfile( name: name, - sourceConnectionId: source, - targetConnectionId: target, + source: source, + target: target, mode: mode, structureOptions: .default, dataOptions: .default, - selectedTables: ["users"] + selectedObjects: ["users"] ) } func testSavedProfileRoundTrips() { - let source = UUID() - let target = UUID() + let source = scope(UUID()) + let target = scope(UUID()) storage.save(profile(name: "nightly", source: source, target: target)) let loaded = storage.profiles(source: source, target: target, mode: .structure) XCTAssertEqual(loaded.count, 1) XCTAssertEqual(loaded[0].name, "nightly") - XCTAssertEqual(loaded[0].selectedTables, ["users"]) + XCTAssertEqual(loaded[0].selectedObjects, ["users"]) } func testProfilesAreScopedToSourceTargetAndMode() { - let source = UUID() - let target = UUID() + let source = scope(UUID()) + let target = scope(UUID()) storage.save(profile(name: "structure", source: source, target: target, mode: .structure)) storage.save(profile(name: "data", source: source, target: target, mode: .data)) @@ -152,9 +157,37 @@ final class CompareSyncProfileStorageTests: XCTestCase { XCTAssertTrue(storage.profiles(source: target, target: source, mode: .structure).isEmpty) } + /// Keying on the connection pair alone could not tell two databases on one server apart, so a + /// comparison saved against staging came back for production. + func testTwoDatabasesOnOneConnectionKeepSeparateProfiles() { + let connectionId = UUID() + let staging = scope(connectionId, database: "app_staging") + let production = scope(connectionId, database: "app_prod") + let target = scope(UUID()) + storage.save(profile(name: "staging", source: staging, target: target)) + storage.save(profile(name: "production", source: production, target: target)) + + XCTAssertEqual(storage.profiles(source: staging, target: target, mode: .structure).map(\.name), ["staging"]) + XCTAssertEqual( + storage.profiles(source: production, target: target, mode: .structure).map(\.name), ["production"] + ) + } + + func testTwoSchemasInOneDatabaseKeepSeparateProfiles() { + let connectionId = UUID() + let publicSchema = scope(connectionId, schema: "public") + let salesSchema = scope(connectionId, schema: "sales") + let target = scope(UUID()) + storage.save(profile(name: "public", source: publicSchema, target: target)) + storage.save(profile(name: "sales", source: salesSchema, target: target)) + + XCTAssertEqual(storage.profiles(source: publicSchema, target: target, mode: .structure).map(\.name), ["public"]) + XCTAssertEqual(storage.profiles(source: salesSchema, target: target, mode: .structure).map(\.name), ["sales"]) + } + func testSavingSameProfileIdUpdatesRatherThanDuplicates() { - let source = UUID() - let target = UUID() + let source = scope(UUID()) + let target = scope(UUID()) var existing = profile(name: "first", source: source, target: target) storage.save(existing) existing.name = "renamed" @@ -166,9 +199,9 @@ final class CompareSyncProfileStorageTests: XCTestCase { XCTAssertEqual(loaded[0].name, "renamed") } - func testDeleteRemovesOnlyThatProfile() { - let source = UUID() - let target = UUID() + func testDeleteRemovesOnlyThatProfile() { + let source = scope(UUID()) + let target = scope(UUID()) let keep = profile(name: "keep", source: source, target: target) let drop = profile(name: "drop", source: source, target: target) storage.save(keep) diff --git a/TableProTests/Core/Compare/TimestampValueTests.swift b/TableProTests/Core/Compare/TimestampValueTests.swift new file mode 100644 index 000000000..08ddb36fd --- /dev/null +++ b/TableProTests/Core/Compare/TimestampValueTests.swift @@ -0,0 +1,116 @@ +// +// TimestampValueTests.swift +// TableProTests +// +// `DateFormatter` clamps a fractional second to milliseconds whatever the pattern says, so +// `.123456` and `.123457` parsed to the same instant and every microsecond difference between two +// `timestamp(6)` columns read as identical no matter what precision the user asked for. The +// comparison then scaled a `Double` seconds value by up to 1e9, which leaves Double's +// exact-integer range and puts the same class of precision loss back into the fixed path. +// + +@testable import TablePro +import XCTest + +final class TimestampValueTests: XCTestCase { + private func value(_ text: String) throws -> TimestampValue { + try XCTUnwrap(TimestampValue.parse(text), "\(text) should parse as a timestamp") + } + + // MARK: - Sub-second precision + + func testMicrosecondDifferenceIsNotIdenticalAtSixDigits() throws { + let earlier = try value("2024-01-01 10:00:00.123456") + let later = try value("2024-01-01 10:00:00.123457") + + XCTAssertFalse(earlier.equals(later, fractionalDigits: 6)) + } + + func testMicrosecondDifferenceIsIdenticalAtThreeDigits() throws { + let earlier = try value("2024-01-01 10:00:00.123456") + let later = try value("2024-01-01 10:00:00.123999") + + XCTAssertTrue(earlier.equals(later, fractionalDigits: 3)) + } + + func testNanosecondDifferenceIsNotIdenticalAtNineDigits() throws { + let earlier = try value("2024-01-01 10:00:00.123456789") + let later = try value("2024-01-01 10:00:00.123456790") + + XCTAssertFalse(earlier.equals(later, fractionalDigits: 9)) + XCTAssertTrue(earlier.equals(later, fractionalDigits: 6)) + } + + func testWholeSecondsCompareEqualAtEveryPrecision() throws { + let first = try value("2024-01-01 10:00:00") + let second = try value("2024-01-01T10:00:00") + + for digits in 0 ... 9 { + XCTAssertTrue(first.equals(second, fractionalDigits: digits)) + } + } + + func testFractionalDigitsAreReadExactlyRatherThanRounded() throws { + let value = try value("2024-01-01 00:00:00.5") + + XCTAssertEqual(value.nanosecondsSinceEpoch % 1_000_000_000, 500_000_000) + } + + func testMoreThanNineFractionalDigitsAreTruncatedNotMisread() throws { + let value = try value("2024-01-01 00:00:00.1234567891234") + + XCTAssertEqual(value.nanosecondsSinceEpoch % 1_000_000_000, 123_456_789) + } + + // MARK: - Offsets + + /// The same instant written at two offsets is one instant, so it is never a difference. + func testEquivalentInstantsAtDifferentOffsetsCompareEqual() throws { + let utc = try value("2024-01-01 10:00:00+00:00") + let offset = try value("2024-01-01 15:30:00+05:30") + + XCTAssertTrue(utc.equals(offset, fractionalDigits: 6)) + } + + func testOffsetWithFractionalSecondsParses() throws { + let utc = try value("2024-01-01 10:00:00.250000+00:00") + + XCTAssertEqual(utc.nanosecondsSinceEpoch % 1_000_000_000, 250_000_000) + } + + // MARK: - Non-timestamps + + func testShortStringsAndPlainNumbersAreNotTimestamps() { + for text in ["", "abc", "12", "2024"] { + XCTAssertNil(TimestampValue.parse(text), "\(text) should not parse as a timestamp") + } + } + + func testDateOnlyParses() throws { + XCTAssertNoThrow(try value("2024-01-01")) + } +} + +final class FractionalSecondTests: XCTestCase { + func testFractionIsSplitOffAndScaledToNanoseconds() { + let split = FractionalSecond.split(from: "2024-01-01 10:00:00.123456") + + XCTAssertEqual(split.withoutFraction, "2024-01-01 10:00:00") + XCTAssertEqual(split.nanoseconds, 123_456_000) + } + + /// A `+05:30` offset holds a colon, not a dot, so it must survive untouched. + func testOffsetSurvivesTheSplit() { + let split = FractionalSecond.split(from: "2024-01-01 10:00:00.5+05:30") + + XCTAssertEqual(split.withoutFraction, "2024-01-01 10:00:00+05:30") + XCTAssertEqual(split.nanoseconds, 500_000_000) + } + + func testTextWithNoFractionIsUnchanged() { + let split = FractionalSecond.split(from: "2024-01-01 10:00:00") + + XCTAssertEqual(split.withoutFraction, "2024-01-01 10:00:00") + XCTAssertEqual(split.nanoseconds, 0) + } +} diff --git a/docs/features/compare-sync.mdx b/docs/features/compare-sync.mdx index cd32d7b03..c4da9bc45 100644 --- a/docs/features/compare-sync.mdx +++ b/docs/features/compare-sync.mdx @@ -1,132 +1,112 @@ --- title: Compare & Sync -description: Compare structure or data between two connections and generate the SQL script that syncs the target +description: Compare two databases and generate the SQL script that brings one in line with the other --- -Compare two connections and generate the SQL script that brings one in line with the other. Use it to check whether staging matches production, to diff two versions of a schema, or to copy rows between servers. +Pick a source and a target, press **Compare**, and every object that differs lists in one window. Include the ones to change, generate the script, and read it before anything runs. Requires a Starter license. -Requires a Starter license. + + Compare and Sync window with a results table on the left and a two-up definition diff on the right + Compare and Sync window with a results table on the left and a two-up definition diff on the right + ## Opening it -- **File > Compare & Sync Databases…** -- Right-click a connection in the sidebar or in the connection list and choose **Compare/Sync with…**. The connection you clicked is filled in as the source. +- **Database > Compare > Compare & Sync Databases…** +- Right-click a connection in the connection list and choose **Compare/Sync with…**. The connection clicked becomes the source. -## Source and target +Every toolbar control also sits under **Database > Compare**, so the whole flow is reachable from the keyboard. -The **source** is the connection that will not change. The **target** is the connection that will change. +## Choosing the two sides -Both pickers start empty. Nothing is preselected as the target, so the write side is always a deliberate choice. A sentence under the pickers spells out what will happen, for example *Compare `staging` and write changes to `prod`*. Use **Swap** to reverse the direction. +**Source** and **Target** are database pickers, not connection pickers: each one walks connection, then database, then schema. Two databases on one server are a valid pair, and so are two schemas in one database. -A connection whose safe mode level is **Read-Only** cannot be chosen as the target. It appears in the list with the reason shown, so you find out at selection time rather than after comparing. +The **source** never changes. The **target** is written to. A connection whose safe mode level is **Read-Only** is disabled in the target picker with the reason shown, so the refusal arrives at selection time rather than after comparing. **Swap** reverses the direction. -The target connection's color is carried into the window and onto the apply button, so a connection you have tagged as production stays visually distinct. +Nothing is written until **Apply**. Until then the strip along the top reads **Comparing only. Nothing has been written.** -Nothing is written to either database until you apply. Until then the window shows **Comparing only, nothing has been written**. +## What takes part -## Comparing structure +**Options** chooses the object kinds. Tables are always compared; views, materialized views, procedures, functions and triggers are opt-in. -Structure comparison reads column, index, foreign key, and primary key metadata from both sides and compares the parsed values. It does not diff `CREATE TABLE` text, because driver-rendered DDL varies by formatting and by system-generated constraint names, which reports identical objects as different. +| Kind | Compared as | +|---|---| +| Tables | Parsed columns, indexes, foreign keys, storage engine and collation | +| Views, materialized views | Normalized definition text | +| Procedures, functions | Normalized definition text, matched on name and argument list | +| Triggers | Normalized definition text, per table | -Each table lands in one of four states: **only in source**, **only in target**, **different**, or **identical**. Tables that cannot be compared get their own group with the reason, so nothing is silently skipped. - -Every object starts unchecked. You choose what to apply. +Tables are never compared as DDL text. Driver-rendered DDL varies by formatting and by system-generated constraint names, which reports identical tables as different. A routine has no parsed form to compare instead, so its body is the definition, and the normalizer folds line endings, trailing semicolons and, when the options say so, whitespace and identifier case. ### What is ignored -These differences drift between environments by design, so they are ignored by default. Turn any of them off to have the difference reported. +These drift between environments by design, so they are ignored by default. Turn one off to have the difference reported. | Option | What it ignores | -| --- | --- | -| Identifier case | `Users` and `users` are the same table | -| Column order | Same columns in a different order | -| Whitespace in text | Padding inside default values and comments | -| Auto-increment seed | `AUTO_INCREMENT=184` against `AUTO_INCREMENT=1522` | -| Collation and character set | Column and table collation differences | -| Comments and owners | Column comments, object owners, and definers | - -Indexes and foreign keys are matched on structure, not on name. An index that matches on columns, uniqueness, and type but carries a different system-generated name is reported as a note rather than as a change, so no DDL is generated for it. - -Renames are never guessed. A renamed column shows as a drop and an add, because no tool can tell a rename from a drop plus an add without being told. - -### Same-engine rule - -Generating a structure sync script needs matching database types. Column data types are engine-specific strings, so building DDL for one engine out of another engine's metadata is not sound. MySQL and MariaDB are treated as one family. - -Two different engines can still be compared. You get the differences as a read-only view, with no script. +|---|---| +| Identifier case | `Orders` against `orders` | +| Column order | The same columns in a different order | +| Whitespace in text | Indentation inside default values, comments and routine bodies | +| Auto-increment seed | The counter's current value | +| Collation and character set | A table-level or column-level collation difference | +| Comments, owners, definers | Descriptive metadata with no runtime effect | -## Comparing data +## Reading the results -Data comparison matches rows by a key and walks both sides in key order, so neither table is loaded into memory in full. +Each object lands in one of four states: **only in source**, **only in target**, **different**, or **identical**. **Group By** sections the table by difference or by object kind, and the search field filters by name. Identical objects stay hidden until **Show Identical Objects**. -Key columns are filled in from the source table's primary key, and you can change them per table from the **Key columns** menu above the row list. Composite keys are supported. A table with no key, or with no columns in common, is listed as not comparable rather than matched on a guess, because matching on every column cannot tell one row from two identical rows. +Every row carries an **Include** checkbox, and a group header carries one for everything under it. Nothing is included until it is checked. -Changing keys or compared columns clears that table's result. Press **Compare Again** to refresh it. +An object whose metadata could not be read keeps its own **Could Not Compare** section with the driver's reason. One unreadable object never stops the rest of the comparison. -Tables are matched by name across the two sides, and only the columns present on both are compared. +The detail pane on the right has three tabs. **Definitions** shows the source and target side by side, split or unified, rendered from the same function so a formatting difference cannot appear as a real one. **Rows** is the data comparison. **Script** is the generated SQL. -Three actions control what the script contains: +## Comparing rows -- **Insert missing rows** (on by default) -- **Update differing rows** (on by default) -- **Delete extra rows** (off by default) +Switch the mode control to **Data**. The left pane lists the tables present on both sides. -Delete is off by default so the first run cannot remove a row you did not mean to touch. +Tables start unchecked. Choose the ones to compare, then press **Compare**: a data comparison reads every row of every checked table on both sides, so comparing a whole database by accident is expensive. -### Which columns are compared +Rows are matched by key, read in key order from both sides and walked in lockstep, so neither side is ever held in memory in full. -Columns used to compare are separate from columns that get written. Use the **Compared columns** menu to exclude one. Exclude `updated_at` and rows that differ only in that column stop showing as differences, while the column is still carried into any row that is inserted or updated. +- Key columns default to the primary key and are editable per table. Composite keys work. A table with no usable key lists as not comparable rather than being matched on a guess. +- The compare set and the write set are separate. Exclude `updated_at` from the comparison and it is still written on insert and update. +- A generated column is read and compared but never written, because engines reject an explicit value for one. +- NULL equals only NULL. Numeric tolerance and timestamp precision are set in **Options**, and two spellings of the same instant at different offsets are equal. +- When a value is flagged, the row names the rule that fired. -Exclusions apply by column name across every table in the comparison, which is what you want for audit columns that repeat. +Filter the rows six ways: **All**, **Difference**, **Insert**, **Update**, **Delete**, **Same**. Each row has its own **Include** checkbox. -### How values are judged equal +The row list is a capped preview. Past the cap the pane says so, and **Apply** still covers every difference: the script is built from a fresh pass over both sides, not from the rows on screen. -- `NULL` equals only `NULL`. It is never treated as an empty string. A row whose *key* is NULL cannot identify anything, so it is skipped and counted rather than given an arbitrary sort position. -- Key columns must sort the same way on both sides. A numeric key does by construction. For any other key TablePro checks the order as rows arrive and stops with an explanation if the server's collation sorts differently, rather than reporting a row that exists on both sides as a delete. -- Numbers compare exactly unless you set a tolerance. A tolerance of `0.001` treats `109.05999755859375` and `109.05999755859381` as equal. The comparison gives the same answer whichever side you call the source. -- Timestamps compare as instants at the fractional precision you choose. The same instant written at two offsets, such as `08:00:00-08:00` and `11:00:00-05:00`, is not a difference. No timezone conversion is applied anywhere in the comparison. -- Binary values compare by bytes. +### One connection, two databases -When a value is flagged, the row inspector names the rule that fired, so you can tell why two values that look the same were treated as different. +A data comparison needs both sides open at once. On an engine that pools connections, two databases on one connection is fine. On an engine that cannot pool, both sides share one driver and one database position, so the comparison refuses that pair by name and asks for a second connection for the target. ## The script -The generated script is editable before it runs. +**Generate Script** builds the SQL. It is read-only: each statement carries the hazards its operation plan computed, and those cannot be recovered from edited text. **Copy** and **Save…** take it elsewhere, and the query editor runs a hand-edited version through the normal path. -Statements are ordered by foreign key dependency: tables are dropped children first, and created parents first. For data, inserts come before updates before deletes. A circular foreign key still emits every table. +Statements are ordered by foreign key dependency, not alphabetically. Tables are created parent-first and dropped child-first; row inserts run parent-first and row deletes child-first. -### Held-back statements - -Anything that can destroy data is listed but not executed unless you allow it for that run: - -- Dropping a table or a column -- A type change that can truncate values, such as `varchar(255)` to `varchar(50)` -- Making a nullable column `NOT NULL` -- Changing the primary key - -Held-back statements stay visible in the preview, so what you see is what would run. There is no setting that permanently allows them; the choice is made per run. - -Collation changes and dropped indexes are shown as warnings rather than held back. +Script generation needs matching database types, with MySQL and MariaDB counting as one family. A cross-engine pair still compares, read-only: column data types are engine-specific strings, so generating DDL for one engine from another's metadata is not sound. ## Applying -Applying runs the script against the target only. You confirm once, in an alert that names the target and counts the statements. - -Data sync runs in a transaction where the target supports one. Structure sync runs in a transaction only where the target supports transactional DDL; on MySQL and Oracle it does not, so statements that already ran stay applied if a later one fails. The window says which case applies rather than implying a rollback you will not get. +Anything that would destroy data is generated, listed, and held back. Dropping a table, dropping a column, narrowing a type, adding NOT NULL, changing a primary key and deleting a row each need an explicit allowance, and that allowance covers one run and is never saved. -If you choose to continue past errors, the transaction option is disabled, because the two combined leave the target half-applied. +**Apply…** opens a sheet with the script, a summary, and the warnings. **Cancel** is the default button and **Apply** is marked destructive. Apply stays disabled while any included statement still has an unacknowledged hazard. -Progress is reported per statement and the run can be cancelled. Cancelling stops the run between statements; a statement already in flight finishes. + + Applying runs the script against the target. Statements that already ran stay applied unless the whole run is inside a transaction that rolls back. + -Closing the window or quitting TablePro while a run is in progress asks first, and says that statements which already ran stay applied. +**On error** chooses between stopping and rolling back, stopping and keeping what ran, and skipping and continuing. A transaction cannot be combined with skip and continue, because together they leave the target half-applied. -## Saving a setup +Whether a transaction covers the run depends on the engine. MySQL, MariaDB and Oracle commit implicitly on every DDL statement, so a structure sync on those engines runs without one rather than implying a rollback that will not happen. -Give a comparison a name and **Save** it, and it is stored against that source, target, and mode. Load it later from the same screen to restore the mode, ignore options, value rules, and which tables were selected. Delete one from the same menu. +Closing the window mid-run asks first, and says that statements which already ran stay applied. -## Limits +## Saving a comparison -- One direction per run. To sync both ways, swap and run again. -- Two live connections only. Backups, dump files, and source control are not comparison endpoints. -- No scheduling. Every comparison is started by you and reviewed before anything runs. -- Structure sync needs a driver that reports comparable structure metadata and can generate DDL. Data sync needs rows addressable by a key. A driver that declares neither stops the comparison with the reason shown once both sides are connected. +A named comparison remembers the source, the target, the mode, the object kinds, the options and the included objects. Load it from **Options** to run the same comparison again. From aeb12879e8ccada27304508d55ecaa749c771e0c Mon Sep 17 00:00:00 2001 From: Ngo Quoc Dat Date: Sun, 23 Aug 2026 12:40:18 +0700 Subject: [PATCH 5/9] fix(compare): schema-aware matching, difference-only retention, and data-path FK ordering Claude-Session: https://claude.ai/code/session_01QZKyY8vPUn3myu82D145pe --- Plugins/SQLExportPlugin/SQLExportPlugin.swift | 23 +- TablePro/Core/Compare/CompareRowService.swift | 4 +- .../Core/Compare/CompareRunner+Data.swift | 24 +- TablePro/Core/Compare/CompareRunner.swift | 9 +- .../Core/Compare/CompareSyncExecutor.swift | 35 ++- .../Compare/CompareSyncSession+Editing.swift | 6 +- TablePro/Core/Compare/DataComparePlan.swift | 6 + TablePro/Core/Compare/DataDiffEngine.swift | 14 +- TablePro/Core/Compare/KeyOrdering.swift | 24 +- .../Compare/StructureCompareOptions.swift | 10 + .../Core/Compare/StructureDiffEngine.swift | 9 +- TablePro/Core/Menu/FileMenuBuilder.swift | 4 - .../Views/Compare/CompareApplySheetView.swift | 17 +- .../Compare/CompareEndpointMenuBuilder.swift | 11 +- .../Views/Compare/CompareRowDiffPane.swift | 27 ++- .../Compare/CompareReviewFindingTests.swift | 218 ++++++++++++++++++ TableProUITests/CompareSyncUITests.swift | 8 +- docs/images/compare-sync-window-dark.png | Bin 0 -> 532326 bytes docs/images/compare-sync-window.png | Bin 0 -> 532959 bytes 19 files changed, 408 insertions(+), 41 deletions(-) create mode 100644 TableProTests/Core/Compare/CompareReviewFindingTests.swift create mode 100644 docs/images/compare-sync-window-dark.png create mode 100644 docs/images/compare-sync-window.png diff --git a/Plugins/SQLExportPlugin/SQLExportPlugin.swift b/Plugins/SQLExportPlugin/SQLExportPlugin.swift index d6b0304a3..c1592299a 100644 --- a/Plugins/SQLExportPlugin/SQLExportPlugin.swift +++ b/Plugins/SQLExportPlugin/SQLExportPlugin.swift @@ -35,6 +35,14 @@ final class SQLExportPlugin: ExportFormatPlugin, SettablePlugin, @unchecked Send var ddlFailures: [String] = [] var metadataWarnings: [String] = [] + /// A dump refers to its tables unqualified whenever every selected table lives in one + /// container, which is what makes it restorable into any database. Qualifying became necessary + /// only once an export could span two containers holding the same table name: unqualified there + /// means one schema's rows land in the other's table. The CREATE statements come back from the + /// driver verbatim and cannot be qualified without rewriting engine DDL, so a spanning export + /// says so rather than shipping a dump whose three phases disagree. + var exportSpansContainers = false + private static let logger = Logger(subsystem: "com.TablePro", category: "SQLExportPlugin") required init() { loadSettings() } @@ -68,6 +76,7 @@ final class SQLExportPlugin: ExportFormatPlugin, SettablePlugin, @unchecked Send ) async throws -> ExportFormatResult { ddlFailures = [] metadataWarnings = [] + exportSpansContainers = false let actualDestination: URL let gzipTempURL: URL? @@ -95,6 +104,7 @@ final class SQLExportPlugin: ExportFormatPlugin, SettablePlugin, @unchecked Send let columnsByTable = await prefetchColumns(tables: tables, dataSource: dataSource) let fkMap = await prefetchForeignKeys(tables: tables, dataSource: dataSource) let sortedTables = topologicallySort(tables, fkMap: fkMap) + noteContainerSpan(of: sortedTables) try writeDropPhase(sortedTables: sortedTables, dataSource: dataSource, to: fileHandle) try await writeDependentTypesAndSequences( @@ -406,13 +416,24 @@ final class SQLExportPlugin: ExportFormatPlugin, SettablePlugin, @unchecked Send return orderedNames.compactMap { groups[$0] } } + private func noteContainerSpan(of tables: [PluginExportTable]) { + let containers = Set(tables.map { $0.containerName ?? "" }) + exportSpansContainers = containers.count > 1 + guard exportSpansContainers else { return } + metadataWarnings.append( + "Warning: this export spans \(containers.count) databases or schemas. Table references are " + + "qualified, but CREATE TABLE comes from the server unqualified, so restore it into the " + + "matching database or schema." + ) + } + private func qualifiedRef( schema: String, table: String, dataSource: any PluginExportDataSource ) -> String { let quotedTable = dataSource.quoteIdentifier(table) - guard !schema.isEmpty else { return quotedTable } + guard exportSpansContainers, !schema.isEmpty else { return quotedTable } return "\(dataSource.quoteIdentifier(schema)).\(quotedTable)" } diff --git a/TablePro/Core/Compare/CompareRowService.swift b/TablePro/Core/Compare/CompareRowService.swift index 70ff5b962..20a18abf0 100644 --- a/TablePro/Core/Compare/CompareRowService.swift +++ b/TablePro/Core/Compare/CompareRowService.swift @@ -84,7 +84,7 @@ internal struct CompareRowService { ) let collector = SyncStatementCollector() _ = try await engine.compare(source: sourceProvider, target: targetProvider) { entry in - guard !excludedKeys.contains(entry.keyDescription) else { return } + guard !excludedKeys.contains(entry.keyIdentity) else { return } collector.append(entry, table: table, schema: schema, writeColumns: writeColumns, builder: builder) } return collector.statements @@ -118,7 +118,7 @@ internal struct CompareRowService { keyDescriptors: plan.keyDescriptors ) let sourceSchema = source.schema ?? plan.schema - let targetSchema = target.schema ?? plan.schema + let targetSchema = plan.targetSchema let readColumns = plan.readColumns let keyColumns = plan.keyColumns let table = plan.table diff --git a/TablePro/Core/Compare/CompareRunner+Data.swift b/TablePro/Core/Compare/CompareRunner+Data.swift index a62f36a34..ead9bd941 100644 --- a/TablePro/Core/Compare/CompareRunner+Data.swift +++ b/TablePro/Core/Compare/CompareRunner+Data.swift @@ -74,6 +74,10 @@ internal extension CompareRunner { } guard !byTable.isEmpty else { return [] } + /// `session.sourceSnapshots` is filled by the structure path only, so reading it here left + /// the graph empty and the ordering fell back to alphabetical: `order_items` before + /// `orders`, which is exactly the foreign key failure this ordering exists to prevent. + /// The data path records its own snapshots when it builds the plans. let foreignKeys = CompareRunner.foreignKeyMap(from: session.sourceSnapshots) let nodes = byTable.map { ForeignKeyTopologicalSort.Table(name: $0.plan.table, schema: $0.plan.schema) } let parentFirst = ForeignKeyTopologicalSort @@ -106,19 +110,28 @@ internal extension CompareRunner { ) try Task.checkCancellation() - let targetByName = Dictionary( - targetReads.map { ($0.table.name.lowercased(), $0) }, uniquingKeysWith: { first, _ in first } + /// Keyed on schema and name, not name alone: two schemas of one database can hold the same + /// table, and pairing on the bare name took the shared column set from the wrong + /// counterpart while reading rows from the right one. + let options = session.structureOptions + let targetByKey = Dictionary( + targetReads.map { (options.matchKey(name: $0.table.name, schema: $0.table.schema), $0) }, + uniquingKeysWith: { first, _ in first } ) let previous = Dictionary( session.dataPlans.map { ($0.id, $0) }, uniquingKeysWith: { first, _ in first } ) + session.sourceSnapshots = Dictionary( + sourceReads.compactMap { $0.snapshot }.map { ($0.qualifiedName, $0) }, + uniquingKeysWith: { first, _ in first } + ) + var plans: [DataComparePlan] = [] for read in sourceReads { guard read.failure == nil else { continue } - guard let counterpart = targetByName[read.table.name.lowercased()], counterpart.failure == nil else { - continue - } + let pairKey = options.matchKey(name: read.table.name, schema: read.table.schema) + guard let counterpart = targetByKey[pairKey], counterpart.failure == nil else { continue } let targetNames = Set(counterpart.columns.map { $0.name.lowercased() }) let shared = read.columns.filter { targetNames.contains($0.name.lowercased()) } let schema = read.table.schema ?? context.source.schema @@ -128,6 +141,7 @@ internal extension CompareRunner { var plan = DataComparePlan( table: read.table.name, schema: schema, + targetSchema: counterpart.table.schema ?? context.target.schema, columns: shared.map { $0.name }, columnDescriptors: shared.map { KeyColumnDescriptor(name: $0.name, dataType: $0.dataType, collation: $0.collation) diff --git a/TablePro/Core/Compare/CompareRunner.swift b/TablePro/Core/Compare/CompareRunner.swift index 84caf0548..086c7a3e2 100644 --- a/TablePro/Core/Compare/CompareRunner.swift +++ b/TablePro/Core/Compare/CompareRunner.swift @@ -39,7 +39,7 @@ internal struct CompareRunner { session.activity = .connecting defer { session.activity = .idle } do { - let context = try await resolveContext() + let context = try resolveContext() if let refusal = try await capabilityRefusal(context) { session.errorMessage = refusal return @@ -69,7 +69,7 @@ internal struct CompareRunner { session.activity = .comparing defer { session.activity = .idle } do { - let context = try await resolveContext() + let context = try resolveContext() let built: [SyncStatement] switch session.mode { case .structure: @@ -109,7 +109,9 @@ internal struct CompareRunner { } do { - let context = try await resolveContext() + /// Resolved for its validation: it throws when a connection has gone away, which + /// must stop the run before anything is written. + _ = try resolveContext() session.hasWrittenToTarget = true let statements = session.statements let settings = session.executionSettings @@ -129,7 +131,6 @@ internal struct CompareRunner { progress: runProgress ) } - _ = context session.runResult = result session.lastAction = .applied( Date(), target: target.qualifiedDescription, statements: result.executedCount diff --git a/TablePro/Core/Compare/CompareSyncExecutor.swift b/TablePro/Core/Compare/CompareSyncExecutor.swift index 650490fe1..ee6ff17ce 100644 --- a/TablePro/Core/Compare/CompareSyncExecutor.swift +++ b/TablePro/Core/Compare/CompareSyncExecutor.swift @@ -62,6 +62,23 @@ internal struct CompareSyncRunResult { internal let rolledBack: Bool internal let cancelled: Bool + /// Set when the statements ran but the transaction could not be committed, which leaves the + /// target in whatever state the engine decided rather than in either of the two the user + /// expects. + internal let commitFailure: String? + + internal init( + outcomes: [SyncStatementOutcome], + rolledBack: Bool, + cancelled: Bool, + commitFailure: String? = nil + ) { + self.outcomes = outcomes + self.rolledBack = rolledBack + self.cancelled = cancelled + self.commitFailure = commitFailure + } + internal var executedCount: Int { outcomes.filter { $0.succeeded }.count } @@ -188,15 +205,29 @@ internal actor CompareSyncExecutor { let shouldRollback = usesTransaction && (cancelled || (stopped && settings.errorHandling == .stopAndRollback)) + var commitFailure: String? if usesTransaction { if shouldRollback { try? await driver.rollbackTransaction() } else { - try await driver.commitTransaction() + /// A commit that throws used to propagate past the whole run, so the result was + /// discarded and the user got an error with no record of which statements had + /// already executed. The failure belongs in the result, not instead of it. + do { + try await driver.commitTransaction() + } catch { + Self.logger.error("Sync commit failed: \(error.localizedDescription, privacy: .public)") + commitFailure = error.localizedDescription + } } } - return CompareSyncRunResult(outcomes: outcomes, rolledBack: shouldRollback, cancelled: cancelled) + return CompareSyncRunResult( + outcomes: outcomes, + rolledBack: shouldRollback, + cancelled: cancelled, + commitFailure: commitFailure + ) } private static let progressBatchSize: Int64 = 25 diff --git a/TablePro/Core/Compare/CompareSyncSession+Editing.swift b/TablePro/Core/Compare/CompareSyncSession+Editing.swift index 7a0c258bf..5c9fdd43d 100644 --- a/TablePro/Core/Compare/CompareSyncSession+Editing.swift +++ b/TablePro/Core/Compare/CompareSyncSession+Editing.swift @@ -78,15 +78,15 @@ internal extension CompareSyncSession { /// cap the script is built from a fresh streamed pass, so an unseen row is included by /// definition; the pane says as much rather than implying the list is the whole difference. func isRowIncluded(_ entry: RowDiffEntry, in plan: DataComparePlan) -> Bool { - !plan.excludedRowKeys.contains(entry.keyDescription) + !plan.excludedRowKeys.contains(entry.keyIdentity) } func setRowIncluded(_ included: Bool, entry: RowDiffEntry, planId: String) { guard let index = dataPlans.firstIndex(where: { $0.id == planId }) else { return } if included { - dataPlans[index].excludedRowKeys.remove(entry.keyDescription) + dataPlans[index].excludedRowKeys.remove(entry.keyIdentity) } else { - dataPlans[index].excludedRowKeys.insert(entry.keyDescription) + dataPlans[index].excludedRowKeys.insert(entry.keyIdentity) } invalidateScript() } diff --git a/TablePro/Core/Compare/DataComparePlan.swift b/TablePro/Core/Compare/DataComparePlan.swift index 10908cf1b..713e6616b 100644 --- a/TablePro/Core/Compare/DataComparePlan.swift +++ b/TablePro/Core/Compare/DataComparePlan.swift @@ -17,6 +17,10 @@ import TableProPluginKit internal struct DataComparePlan: Identifiable, Hashable, Sendable { internal let table: String internal let schema: String? + + /// The counterpart's schema, which is not always the source's. Reading the target with the + /// source's schema name is how a comparison of `audit.users` read `public.users`' columns. + internal let targetSchema: String? internal var columns: [String] internal var columnDescriptors: [KeyColumnDescriptor] internal var generatedColumns: Set @@ -29,6 +33,7 @@ internal struct DataComparePlan: Identifiable, Hashable, Sendable { internal init( table: String, schema: String?, + targetSchema: String? = nil, columns: [String], columnDescriptors: [KeyColumnDescriptor] = [], generatedColumns: Set = [], @@ -40,6 +45,7 @@ internal struct DataComparePlan: Identifiable, Hashable, Sendable { ) { self.table = table self.schema = schema + self.targetSchema = targetSchema ?? schema self.columns = columns self.columnDescriptors = columnDescriptors /// Normalised here rather than at the call site: every comparison is case-insensitive, and diff --git a/TablePro/Core/Compare/DataDiffEngine.swift b/TablePro/Core/Compare/DataDiffEngine.swift index 967107f43..8e1026c04 100644 --- a/TablePro/Core/Compare/DataDiffEngine.swift +++ b/TablePro/Core/Compare/DataDiffEngine.swift @@ -49,6 +49,7 @@ internal struct RowDiffEntry: Identifiable, Hashable, Sendable { internal let id: UUID internal let kind: RowDiffKind internal let keyDescription: String + internal let keyIdentity: String internal let sourceRow: DataRow? internal let targetRow: DataRow? internal let cellDifferences: [CellDifference] @@ -57,6 +58,7 @@ internal struct RowDiffEntry: Identifiable, Hashable, Sendable { id: UUID = UUID(), kind: RowDiffKind, keyDescription: String, + keyIdentity: String? = nil, sourceRow: DataRow?, targetRow: DataRow?, cellDifferences: [CellDifference] = [] @@ -64,6 +66,7 @@ internal struct RowDiffEntry: Identifiable, Hashable, Sendable { self.id = id self.kind = kind self.keyDescription = keyDescription + self.keyIdentity = keyIdentity ?? keyDescription self.sourceRow = sourceRow self.targetRow = targetRow self.cellDifferences = cellDifferences @@ -188,6 +191,7 @@ internal struct DataDiffEngine { RowDiffEntry( kind: .insert, keyDescription: KeyOrdering.description(of: entry.key), + keyIdentity: KeyOrdering.identity(of: entry.key), sourceRow: entry.row, targetRow: nil ) @@ -197,6 +201,7 @@ internal struct DataDiffEngine { RowDiffEntry( kind: .delete, keyDescription: entry.map { KeyOrdering.description(of: $0.key) } ?? "", + keyIdentity: entry.map { KeyOrdering.identity(of: $0.key) } ?? "", sourceRow: nil, targetRow: entry?.row ) @@ -219,6 +224,7 @@ internal struct DataDiffEngine { return RowDiffEntry( kind: differences.isEmpty ? .identical : .update, keyDescription: KeyOrdering.description(of: source.key), + keyIdentity: KeyOrdering.identity(of: source.key), sourceRow: source.row, targetRow: target.row, cellDifferences: differences @@ -245,12 +251,18 @@ internal extension DataDiffEngine { skippedNullKeyCount += 1 } + /// Only differences are retained. Keeping identical rows too meant a table with 100,000 + /// matching rows and ten differences near the end filled the retained list with matches and + /// dropped every difference, so the pane reported a count and listed nothing. The identical + /// count stays exact and the pane reports it as a number rather than as rows. mutating func add(_ entry: RowDiffEntry) { switch entry.kind { case .insert: insertCount += 1 case .update: updateCount += 1 case .delete: deleteCount += 1 - case .identical: identicalCount += 1 + case .identical: + identicalCount += 1 + return } guard entries.count < limit else { truncated = true diff --git a/TablePro/Core/Compare/KeyOrdering.swift b/TablePro/Core/Compare/KeyOrdering.swift index 6bf312784..9e566587f 100644 --- a/TablePro/Core/Compare/KeyOrdering.swift +++ b/TablePro/Core/Compare/KeyOrdering.swift @@ -69,15 +69,25 @@ internal struct KeyOrdering { key.contains { if case .null = $0 { return true } else { return false } } } + /// The row's identity, which is what excluding one row from a sync keys on, so two different + /// composite keys must never render the same. Joining with ", " made ("a", "b, c") and + /// ("a, b", "c") identical and silently excluded the wrong row. A unit separator cannot appear + /// in a key value. + internal static func identity(of key: [PluginCellValue]) -> String { + key.map(component(of:)).joined(separator: "\u{1F}") + } + + /// What a person reads. Ambiguity is fine here, because nothing keys on it. internal static func description(of key: [PluginCellValue]) -> String { - key.map { value in - switch value { - case .null: return "NULL" - case .text(let text): return text - case .bytes(let data): return data.base64EncodedString() - } + key.map(component(of:)).joined(separator: ", ") + } + + private static func component(of value: PluginCellValue) -> String { + switch value { + case .null: return "NULL" + case .text(let text): return text + case .bytes(let data): return data.base64EncodedString() } - .joined(separator: ", ") } internal static func orders(for keyColumns: [String], descriptors: [KeyColumnDescriptor]) -> [ColumnOrder] { diff --git a/TablePro/Core/Compare/StructureCompareOptions.swift b/TablePro/Core/Compare/StructureCompareOptions.swift index 4d3a44f11..3807d0670 100644 --- a/TablePro/Core/Compare/StructureCompareOptions.swift +++ b/TablePro/Core/Compare/StructureCompareOptions.swift @@ -26,6 +26,16 @@ internal extension StructureCompareOptions { return ignoreIdentifierCase ? trimmed.lowercased() : trimmed } + /// Two schemas of one database can hold the same table name, so the name alone cannot identify + /// a table. Matching on it collapsed `public.users` and `audit.users` onto one result, diffed + /// both against whichever target arrived first, and never reported the other as target-only. + /// The schema joins the key only when both sides carry one, so a schemaless engine is + /// unaffected. + func matchKey(name: String, schema: String?) -> String { + guard let schema, !schema.isEmpty else { return matchKey(name) } + return "\(matchKey(schema))\u{1F}\(matchKey(name))" + } + func normalizedText(_ value: String?) -> String? { guard let value else { return nil } var result = value diff --git a/TablePro/Core/Compare/StructureDiffEngine.swift b/TablePro/Core/Compare/StructureDiffEngine.swift index e87bd0995..1b6e3dfc6 100644 --- a/TablePro/Core/Compare/StructureDiffEngine.swift +++ b/TablePro/Core/Compare/StructureDiffEngine.swift @@ -28,7 +28,7 @@ internal struct StructureDiffEngine { var handled: Set = [] for snapshot in source { - let key = options.matchKey(snapshot.name) + let key = options.matchKey(name: snapshot.name, schema: snapshot.schema) handled.insert(key) guard let counterpart = targetByKey[key] else { results.append(TableDiffResult( @@ -41,7 +41,7 @@ internal struct StructureDiffEngine { results.append(compareTable(source: snapshot, target: counterpart)) } - for snapshot in target where !handled.contains(options.matchKey(snapshot.name)) { + for snapshot in target where !handled.contains(options.matchKey(name: snapshot.name, schema: snapshot.schema)) { results.append(TableDiffResult( tableName: snapshot.name, schema: snapshot.schema, @@ -85,7 +85,10 @@ internal struct StructureDiffEngine { } private func indexByMatchKey(_ snapshots: [TableStructureSnapshot]) -> [String: TableStructureSnapshot] { - Dictionary(snapshots.map { (options.matchKey($0.name), $0) }, uniquingKeysWith: { first, _ in first }) + Dictionary( + snapshots.map { (options.matchKey(name: $0.name, schema: $0.schema), $0) }, + uniquingKeysWith: { first, _ in first } + ) } private func columnOrderNotes( diff --git a/TablePro/Core/Menu/FileMenuBuilder.swift b/TablePro/Core/Menu/FileMenuBuilder.swift index 0344ce556..03fb88ffd 100644 --- a/TablePro/Core/Menu/FileMenuBuilder.swift +++ b/TablePro/Core/Menu/FileMenuBuilder.swift @@ -30,10 +30,6 @@ enum FileMenuBuilder { shortcut: .manageConnections, keyboard: keyboard ), - MenuItemFactory.item( - String(localized: "Compare & Sync Databases…"), - action: #selector(AppDelegate.compareAndSyncDatabases(_:)) - ), MenuItemFactory.separator, MenuItemFactory.item( String(localized: "Open File…"), diff --git a/TablePro/Views/Compare/CompareApplySheetView.swift b/TablePro/Views/Compare/CompareApplySheetView.swift index beac87e71..3329c5fd4 100644 --- a/TablePro/Views/Compare/CompareApplySheetView.swift +++ b/TablePro/Views/Compare/CompareApplySheetView.swift @@ -217,6 +217,21 @@ internal struct CompareApplySheetView: View { ) } + if let commitFailure = result.commitFailure { + Label { + Text(String( + format: String( + localized: "The statements ran but the transaction could not be committed: %@" + ), + commitFailure + )) + .fixedSize(horizontal: false, vertical: true) + } icon: { + Image(systemName: "exclamationmark.octagon.fill") + } + .foregroundStyle(CompareStatusStyle.error) + } + if result.cancelled { noticeLabel( String(localized: "Cancelled before the script finished."), @@ -334,7 +349,7 @@ internal struct CompareApplySheetView: View { HStack(spacing: 12) { if session.unacknowledgedHazardCount > 0 { Label { - Text("Allow or drop every held-back statement before applying.") + Text("Allow every held-back statement on the Warnings tab, or exclude the objects that produced them, before applying.") .fixedSize(horizontal: false, vertical: true) } icon: { Image(systemName: "hand.raised.fill") diff --git a/TablePro/Views/Compare/CompareEndpointMenuBuilder.swift b/TablePro/Views/Compare/CompareEndpointMenuBuilder.swift index 55056b78c..c885b08f9 100644 --- a/TablePro/Views/Compare/CompareEndpointMenuBuilder.swift +++ b/TablePro/Views/Compare/CompareEndpointMenuBuilder.swift @@ -189,7 +189,6 @@ internal final class CompareEndpointMenuBuilder: NSObject, NSMenuDelegate { return } let base = CompareSyncEndpoint.from(connection: connection, database: database) - menu.addItem(pick(endpoint: base, side: side, title: String(localized: "All schemas"))) let key = "\(connectionId.uuidString)|\(database)" guard let schemas = schemasByEndpoint[key] else { @@ -197,8 +196,14 @@ internal final class CompareEndpointMenuBuilder: NSObject, NSMenuDelegate { load(schemasFor: base, connection: connection, key: key, menu: menu) return } - guard !schemas.isEmpty else { return } - menu.addItem(.separator()) + /// There is deliberately no "All schemas". Comparing every schema at once reads two + /// schemas' same-named tables as one object, and the generated ALTER carries no schema of + /// its own, so it would land on whichever schema the connection happens to be on. An + /// endpoint on a schema-capable engine names exactly one schema. + guard !schemas.isEmpty else { + menu.addItem(pick(endpoint: base, side: side, title: database)) + return + } for schema in schemas { menu.addItem(pick(endpoint: base.withSchema(schema), side: side, title: schema)) } diff --git a/TablePro/Views/Compare/CompareRowDiffPane.swift b/TablePro/Views/Compare/CompareRowDiffPane.swift index 47e20e41f..e4665d69e 100644 --- a/TablePro/Views/Compare/CompareRowDiffPane.swift +++ b/TablePro/Views/Compare/CompareRowDiffPane.swift @@ -85,7 +85,25 @@ internal struct CompareRowDiffPane: View { Divider() filterBar if plan.summary?.truncatedEntries == true { - truncationNotice + notice(String( + localized: "This list is a capped preview. Apply covers every difference, not only the rows listed here." + )) + } + if let skipped = plan.summary?.skippedNullKeyCount, skipped > 0 { + notice(String( + format: String( + localized: "%d rows hold NULL in a key column and were left out. Choose a key with no NULLs to compare them." + ), + skipped + )) + } + if filter == .same, plan.summary?.identicalCount ?? 0 > 0 { + notice(String( + format: String( + localized: "%d rows match. Matching rows are counted, not listed, so a difference is never crowded out of this list." + ), + plan.summary?.identicalCount ?? 0 + )) } Divider() entryList(plan) @@ -189,9 +207,12 @@ internal struct CompareRowDiffPane: View { .padding(.vertical, 6) } - private var truncationNotice: some View { + /// A row whose key holds NULL has no identity a merge join can use, so it is left out of the + /// comparison and out of the sync. That used to be counted and never shown, so the pane + /// reported no differences and the user concluded the two tables matched. + private func notice(_ text: String) -> some View { Label { - Text("This list is a capped preview. Apply covers every difference, not only the rows listed here.") + Text(text) } icon: { Image(systemName: "info.circle.fill") } diff --git a/TableProTests/Core/Compare/CompareReviewFindingTests.swift b/TableProTests/Core/Compare/CompareReviewFindingTests.swift new file mode 100644 index 000000000..27e54937e --- /dev/null +++ b/TableProTests/Core/Compare/CompareReviewFindingTests.swift @@ -0,0 +1,218 @@ +// +// CompareReviewFindingTests.swift +// TableProTests +// +// One test per defect a review of this feature turned up. Each fails against the code as it stood +// before the fix, which is the only reason to keep them together in one file. +// + +@testable import TablePro +import TableProPluginKit +import XCTest + +final class CompareRetentionCapTests: XCTestCase { + private func engine(limit: Int) -> DataDiffEngine { + var options = DataCompareOptions() + options.keyColumns = ["id"] + options.maxRetainedEntries = limit + return DataDiffEngine( + options: options, + columns: ["id", "name"], + keyDescriptors: [KeyColumnDescriptor(name: "id", dataType: "int")] + ) + } + + private func row(_ id: Int, name: String) -> DataRow { + DataRow(values: ["id": .text(String(format: "%06d", id)), "name": .text(name)]) + } + + /// Identical rows used to consume the retained list, so a table with thousands of matches and + /// a difference at the end reported the difference in the count and listed nothing. + func testIdenticalRowsDoNotCrowdDifferencesOutOfTheRetainedList() async throws { + var source: [DataRow] = (1 ... 50).map { row($0, name: "same") } + var target: [DataRow] = (1 ... 50).map { row($0, name: "same") } + source.append(row(51, name: "changed")) + target.append(row(51, name: "original")) + + let summary = try await engine(limit: 10).compare( + source: ArrayRowProvider(rows: source), + target: ArrayRowProvider(rows: target) + ) + + XCTAssertEqual(summary.identicalCount, 50, "matches are still counted exactly") + XCTAssertEqual(summary.updateCount, 1) + XCTAssertEqual(summary.entries.count, 1, "only the difference is retained") + XCTAssertEqual(summary.entries[0].kind, .update) + XCTAssertFalse(summary.truncatedEntries, "one difference is well inside the cap") + } + + func testTheCapStillAppliesToDifferences() async throws { + let source = (1 ... 20).map { row($0, name: "n") } + + let summary = try await engine(limit: 5).compare( + source: ArrayRowProvider(rows: source), + target: ArrayRowProvider(rows: []) + ) + + XCTAssertEqual(summary.insertCount, 20) + XCTAssertEqual(summary.entries.count, 5) + XCTAssertTrue(summary.truncatedEntries) + } +} + +final class CompareKeyIdentityTests: XCTestCase { + /// Excluding one row from a sync keys on this string, so two different composite keys rendering + /// the same silently excluded the wrong row. + func testTwoCompositeKeysThatReadAlikeHaveDistinctIdentities() { + let first: [PluginCellValue] = [.text("a"), .text("b, c")] + let second: [PluginCellValue] = [.text("a, b"), .text("c")] + + XCTAssertEqual(KeyOrdering.description(of: first), KeyOrdering.description(of: second)) + XCTAssertNotEqual(KeyOrdering.identity(of: first), KeyOrdering.identity(of: second)) + } + + func testTheSameKeyAlwaysHasTheSameIdentity() { + let key: [PluginCellValue] = [.text("tenant"), .text("42")] + + XCTAssertEqual(KeyOrdering.identity(of: key), KeyOrdering.identity(of: key)) + } + + func testASingleKeyIdentityMatchesItsDescription() { + XCTAssertEqual(KeyOrdering.identity(of: [.text("42")]), KeyOrdering.description(of: [.text("42")])) + } + + func testAnEntryCarriesBothTheReadableKeyAndItsIdentity() { + let entry = RowDiffEntry( + kind: .insert, + keyDescription: "a, b", + keyIdentity: "a\u{1F}b", + sourceRow: nil, + targetRow: nil + ) + + XCTAssertEqual(entry.keyDescription, "a, b") + XCTAssertEqual(entry.keyIdentity, "a\u{1F}b") + } + + func testAnEntryWithNoExplicitIdentityFallsBackToItsDescription() { + let entry = RowDiffEntry(kind: .insert, keyDescription: "42", sourceRow: nil, targetRow: nil) + + XCTAssertEqual(entry.keyIdentity, "42") + } +} + +final class CompareSchemaMatchingTests: XCTestCase { + private func snapshot(_ name: String, schema: String?) -> TableStructureSnapshot { + TableStructureSnapshot( + name: name, + schema: schema, + columns: [ + EditableColumnDefinition( + id: UUID(), + name: "id", + dataType: "int", + isNullable: false, + defaultValue: nil, + autoIncrement: false, + unsigned: false, + comment: nil, + collation: nil, + onUpdate: nil, + charset: nil, + extra: nil, + isPrimaryKey: true + ) + ] + ) + } + + /// Matching on the bare name collapsed two schemas' same-named tables onto one result, diffed + /// both against whichever target arrived first, and never reported the other as target-only. + func testTwoSchemasSharingATableNameAreComparedSeparately() { + let report = StructureDiffEngine().compare( + source: [snapshot("users", schema: "public"), snapshot("users", schema: "audit")], + target: [snapshot("users", schema: "public")] + ) + + XCTAssertEqual(report.results.count, 2) + XCTAssertEqual(report.count(of: .identical), 1) + XCTAssertEqual(report.count(of: .onlyInSource), 1) + } + + func testATargetOnlyTableInASecondSchemaIsReported() { + let report = StructureDiffEngine().compare( + source: [snapshot("users", schema: "public")], + target: [snapshot("users", schema: "public"), snapshot("users", schema: "audit")] + ) + + XCTAssertEqual(report.count(of: .onlyInTarget), 1) + } + + func testASchemalessEngineStillMatchesOnNameAlone() { + let report = StructureDiffEngine().compare( + source: [snapshot("users", schema: nil)], + target: [snapshot("users", schema: nil)] + ) + + XCTAssertEqual(report.count(of: .identical), 1) + } + + func testMatchKeyIgnoresSchemaWhenOnlyOneSideHasOne() { + let options = StructureCompareOptions.default + + XCTAssertEqual(options.matchKey(name: "users", schema: nil), options.matchKey("users")) + XCTAssertNotEqual( + options.matchKey(name: "users", schema: "audit"), + options.matchKey(name: "users", schema: "public") + ) + } +} + +final class CompareRunResultTests: XCTestCase { + /// A commit that threw used to propagate past the whole run, so the result was discarded and + /// the user got an error with no record of which statements had already executed. + func testACommitFailureIsCarriedOnTheResultRatherThanReplacingIt() { + let statement = SyncStatement(sql: "A;", objectName: "t", summary: "A") + let result = CompareSyncRunResult( + outcomes: [SyncStatementOutcome(id: statement.id, statement: statement, error: nil, wasSkipped: false)], + rolledBack: false, + cancelled: false, + commitFailure: "deadlock detected" + ) + + XCTAssertEqual(result.executedCount, 1, "the per-statement record survives a failed commit") + XCTAssertEqual(result.commitFailure, "deadlock detected") + } + + func testASuccessfulRunCarriesNoCommitFailure() { + let result = CompareSyncRunResult(outcomes: [], rolledBack: false, cancelled: false) + + XCTAssertNil(result.commitFailure) + } +} + +final class CompareDataPlanSchemaTests: XCTestCase { + /// The target used to be read with the source's schema name, so a comparison of `audit.users` + /// took `public.users`' columns while reading `audit.users`' rows. + func testAPlanRemembersTheTargetsOwnSchema() { + let plan = DataComparePlan( + table: "users", + schema: "public", + targetSchema: "audit", + columns: ["id"], + keyColumns: ["id"], + isEnabled: true + ) + + XCTAssertEqual(plan.schema, "public") + XCTAssertEqual(plan.targetSchema, "audit") + } + + func testAPlanWithNoTargetSchemaMirrorsTheSource() { + let plan = DataComparePlan( + table: "users", schema: "public", columns: ["id"], keyColumns: ["id"], isEnabled: true + ) + + XCTAssertEqual(plan.targetSchema, "public") + } +} diff --git a/TableProUITests/CompareSyncUITests.swift b/TableProUITests/CompareSyncUITests.swift index 92f7a5d52..943b0367a 100644 --- a/TableProUITests/CompareSyncUITests.swift +++ b/TableProUITests/CompareSyncUITests.swift @@ -6,10 +6,14 @@ final class CompareSyncUITests: UITestCase { let menuBar = app.menuBars.firstMatch XCTAssertTrue(menuBar.waitForExistence(timeout: 10)) - menuBar.menuBarItems["File"].click() + menuBar.menuBarItems["Database"].click() + menuBar.menuItems["Compare"].click() let item = menuBar.menuItems["Compare & Sync Databases…"] - XCTAssertTrue(item.waitForExistence(timeout: 5), "Compare & Sync must be reachable from the File menu") + XCTAssertTrue( + item.waitForExistence(timeout: 5), + "Compare & Sync must be reachable from Database > Compare" + ) guard item.isEnabled else { throw XCTSkip("Compare & Sync is licence gated and unavailable in this build") } diff --git a/docs/images/compare-sync-window-dark.png b/docs/images/compare-sync-window-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..82fe667b85bbaca437e06d723e12dee39b2db89e GIT binary patch literal 532326 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�EhuSrj;Yd#lSn`RxZCRldWe}u0Cm;~_KHr`G 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

bz|O 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%0Au0B91`T%4kACE6rM8U1rC&@E8rZXw~m_%>#|G2 zF(a*39!{C3d|yBF77siJLF}()NpbD=@c?{&Qh{gg@SZ>Bc#DmKZ*Xij<)2_2^&7xj z6Nx3Z4=z1lD~r(Yj=M2&(ZMA+6*aS9b9cA;mp%>lHjW*c!f{UC8^qXN{qK^}t0I&= z;vzktyVCmUxe0sLWbXTANo+?4fVb}ki;qj;SJ3MqWYAbZ@$6~7=2HU_b{Q$#IUqfh zix<;<`zm+l9$SmjW*Tznv!Ge6$z5pxEp6B#kTxdlRTj`!xvD#T6tlYW`ht+YHVIyV z(Nv*KK1FKwATeA3ES}R2+JUgFDeHUX+$XX~ot zsDGGPnJffD*e={~3FKG-K~8Jl=L0HB2vR6T3>@E$hdY@uWpT*=fTJz)S>hr3GX*D8 z{=_VNRu94ab(GU9PtBLem)CY6jw>D~db$NTLWtc*%y(p#g3z3aDqfUT=MQQ>YGt%g zWQAaW(LxA-#01^Y5h*tOV!QAY7bh;yOd&Lb<3ebJ+x%u_-@`;P&$H<@C<#*j(o{;w z@?)MDFPS0fVJO(tx_V>*C-5ZZa`4emXhoyq=>g8T7Khls@nK?Q%A^VNtZ(xbglRel zdX%s&KpOsE$X9V)C{GOG2TfIJ0ag^l#I!6G3ra?<5T;JY3$MX`@vI;3zpS_c(SRMz-kw7e`y& zS}DRK#z)aXMY$DZew$O&`rg=pY@f zl9xpp|ERsxwDxM0y=R^f%{-BP?AFyigOB#iY?>IkXcDRPVDGQQ%VqEKX^vSvFS0%q z!`Y@|qQGtJ1)f5M5`TBcL|@lZf}uDx{lZ9>pR9Ere_F&73 zq~PA(6iUg%uxs!L6@V&S1V6*H?>_}HpTGAoReqy^@k8VrUy4Pc%fsYlEV!IXcy`|d zb&1_GL@Qd@PH9{W_VO&VK-)MNuO^*1kG|AW#mp0fD2UdrSoPlYI|--tz*Ym*1vk$W zKJxZb{9xj>UU%5TJwZIm^^)s9(vRD<)L1vat*RdqY)jbCu+yYf@ko2*>U3&J&lAZe z+OFe0luAX)(Y2Y2|n(!PoX*pgXxexQkA|Bex!5Ph5e!6j0y)X&^p9GH9QYloc z1(#?5-Q4@62En{}_vfzA=UJkrq(TqIY4c3^nn2VLsGJI!a-2-rlw6g!38$sV!zP zTk&GN2I?8mMve97ER#I(MHu+b1o#9{y7i=Z&!R}pUT5IG_vXS|7kU}%HC@p-@sceg z$fFb&e%cwjCXNb7!;y!PV*l$OHsZ$0FPZ<3KpSSB;a~z3rXU(58jmWC|IcCOGH48M+lkcNc{zWjl1wWji+%6*omb|9a7& zTCGlPUx9Zt@#%(VmKnaG62sKsGY&hXezbC_omH>ROwb|E%IlJ*$-_UIdg-3ieyHMK z>^>q87>wlv3w9Qp?(nXTzCWQIe8$kao?1AjXwX2lt7&o-QkxIx^ z8z(1SK~vlzMwz$B4I8&CW5*57;bu}8L>_b(i@5`!y9{(F+0D`$2QWN~Yg^&78;6T1 zOIUg1^XanEUB$GBZJ#sWSY3P{SOrG0LsR%gv*a(fO6HdwLeRPyern}Q>mx@!>Ncw> z`P?(A@w_+jz#;U#osd<;XhT_c;o;Yhp-ac6tJ@ablsp<&7EyNe@42bLob-qcO_dVS zF0`DsNkz6|ZXH$N(0SFJe~`QQ?&;^1nlC{m{N)VMHXaaz+3G0kJOL_K4yvWrF%aGz zW(wfoIi!+6(?UDPFV%i$Y`bSZj%)T()o!ETSxeIgOQmIJ`zIDS>&u%EY|{37RwVi* zc>W4kyj0p~;gqaizH>M@x}ZYlOT&%J;f-ac)Hto4eS70CWqFcg3@l$5(ECv8|H0mw zfJ52#{a*={waprn_L3xpY||!pA#I43sgSayQpk2GN@c55k}^_Jlu5Q^xk#ZbLqaG+ zV_zC$9b@J?|K~O6?s@;u^DfW-{lD+~JntOWaopqRR>xf1dH%NV_tV~9`eysQeaR*E zWigS@uu~w%Gz zi%u7EI_EFac5);Py&6-={0OzvO1Mn6mZ4pWe#Gs?Lu}|iK{i?@#6>^2P{C% z;nKh%?|lTT?y+o$3b1lJedrT&HFU1`k9c}2@&1Vvhc?0C-QZM#6}*KFD8=(o;{&GI z7`&N89>Y|liv*+537)M#C>64K1dOiqRn2Iy{c5PfM(d3_fMYM~G_;&|sl^k;CbUp< zOKt`%;!$~cS{Cy4QadtJyy2bf6i^~%UHWL=qI46l9gwg)>YkxIUbee>zRwf4&Q9j} zDswfQF2WdgmFzWa&L7j3RUnsds(hK>aScn$J;qU`hdo|4e?c&MSo>V!X#1#lLd4WJ zszVId#=KoClke<#nUA78ljPQamr1gb^YeTQ-PB&im7T__8HY4~_G9tkho}6Y)eYTz zsdw>c96PIQGQ|?FpC{f#)0>PF?B_qTTg_$Y&;bja#ykY!sc0Aj5%?Mxz-kT$=SJZ~ zzYcQ#3@&R&->V`RF^q#VR0(%^nF z?i8-&!O~*8%MlGq&ySuxDXaRunB`ShQ26|+^^Z>$)(1-&Zq~VVKN25~b}ceBQAu9A zbNJC;H%Vsh)_DF!dls=X``P$_{r9P?TZixI$LAizAI%1ME3Q(87faCF=DGf3)kKB ziB4^*HT8^exvRCN#gpFDn%(=Ic;z#LlomD4MU5CRn~x)V!$45cvewDnrq89EgYyM= z6(|wlAMn^%L-F(KU9{rpF=8|7U;}rhuw_y}(?2?}lnE<#LA6!D2-yGdO>al>MFGY= zVK9UcnNbNUr$DSIS$is%GzfYIWo$b1vu(RQROhiQww7HieW`EsA9fP z`QJgb?aWMQb9gp2qQtTKL+ne3LfoIiNhZUsa`LdW%^PruMvUeAVM$){=(Mp*Cdn{H z7=&xphz1vlAK36+c$=_Vgc>CnWh{PMOIrgLq|6Lf5ur}6oS}KbAgw*&n(&aPXw(~> z74M9&yWy$LA8VuS;^+9B%87rJF8a(nE=gPBRUFfN%rniBtdND6=ihO=+%{fERSB@? zRpTT@Og_PKF%||&M6M!mhd|!`8O%mV!Zey@%l$2C55t;A+nuQBFLJ`2l%}*<&2;2$iVK86cyFX|^BlKf56wl_o8h zc6{aB4Gk41pE?EGc(z{Ib)gI$-bPMLlaU-GdZb2}xmij0YM+RGFU5C`QhI_f zyOy!Hns|qVnABk13HDKJI=GlxsQL17Kle~cc^_qE8v8wjLvav!Zpw8|{o?Vm6zQxk zd{@l;q>#QH4Z5FTRfn=_V)2j!qOyw9C#V-jz~%NrUQv;fnjd?!WwwG3#x);~;P}S1 zgD+sx`Ys%(ecLuscQeKmo^Iv+oVe@6&a3+$XaX*a32a48y>H7k28g2w`w6ASBr)6J z!j)aCZXLQ(HKgvtdNNu|KbDfXRHk?h!)a0X72ku}ViD?@^k?^V_hjh_b#`@rrB6M7 zuzaUg&c#P=!xuIf1wJ|F3ZcD&QIc7umPp2dG<)j{Z^!d57i=+RH?7ZQEesQQZy)aH z4R=wE0}x??w{(6B6YP_It)Mvhi^sDi4$@5M=)^)fF2RjOP!hz0bIj*RD*c;8TTENR zVz2G&YiheXQK}tQc6y?gmMAe~psMM;jnV#~zEvW`WV>w9DmB{*b^0X( z;~@E+BVNXfLT|xuFR{Nmc*!10B+q0V5%Hbkzvzu`+cmtT4e>d!g9bDGF!;ixbigY< zzGS1WL<(#`seSiiSL~sCecCjCd6$MOF<*(zyDbyz`U49*4K`~DF_eJ!$dY<>k>?Q3 zwh)m`Ct?>lM$FOy#&q&$gT}2e5TAB>hiD2+FHyxQ+`ZfINM~wr2l_G$;Kgvn0%V*@ zKX{DeLo~i&?j%LYJ&NTw*OHLxy@n5&Cj!OZwiQI>hDKzoZYpBE^51&WEjX&hkI5{G zRWGo8uxAU_y>vsm%jP9`Z-bBBEp81kTRFDO@C$8g#+%Vkn-7ct zb8~5gyaIa;{LrUELDDn7XWf9g2CT!O$<2jQedI6nAF{87*-;!D!{}c5<9qtm>_S_} zEwoG9*@S7+mr|vkRW_${lBaV+ux*G|#Lws8CQIh$%fVZ_r8r~tizm7pAt71;r8uJY zF=$rwNIzMs(n4#Y4HBv^6oa7GQ0Se8)x0K{5)mz*`KR?QT@Mie)0UOKff`vXC4{6f6 zR*oQ`s&kz$sTMRh4-M@}i+qB8KbMkD93n{HTgM}ZL&QOR%lHmyHw8W_QEOm*eBvE# z>zVu+zP3P)j7;pDypIg|x_7KFv4!cKM+O%##l1Z~96>fkPiZn5 zR*?3CQ4Ta5O<_RF1Nu%EhddY!k!_YU><@_h*>iG)-e*vW9_+qmf||io(m6}Sq$YB^)gA^1y-r`Q>x>LPRFp}U^78T(_pzdOPPKnA*8Dt$g+AqyX{To7UKNm*Jq z_2@LL2~iM)6=XlqM?QTtkxjtV-e{$YG|GIVxYR|NLX7U^7GlACcpc*32!QlD04paT z-S4^TpfI?zWtH2Bf?^%@T~;&Ti%*{c-}$ilIM-HP$*Fggz@~IGI?L#hJkVS_7x>k> zQ#Cj;u5kY)&&LyiV39tO-IZYC+DDOvnmJBk;Q>ZIqb2qq>Hqg8^oTGy>iOFQg- z^I^M%fu4%wFRD=OFLx41<( z>Ruj6V5QsZj-a1bN88B`bl9Y`sg2kdd00yNu7^*MwB{kfFAa!4D9vb2U%_sIvFCwD-Dv4ZiGvI3Y{5-8_?p1 zg?9@=yaB8hfAm?49g0#kzAGLmQb;RWjIp9dMR;#<+kn{V_5NBmCH||rBb8?zTP>gU znpkvjs8;Z7$8u}MrWrGHYwmrd>yI+kS~5a%PSzZdpi&|SGTd-vZQco%~s#E%)Y-Ms=an_>($vSuotPNTSkgDtWY3% zpEC3Nqf%MTrf=x%CBN@;8RXo&nxDiypA+mY9rw|qGe>xL4t;f`2ETVmfj&lhVy}DK z$OC_T0|i37V5|!Zxac7Tj+tMPL=#en^TuIHLR36`aoS)QkgbbmQ05T)x zD$rKZUtA_Uhu{v8u6IJML_cu30r*#oXDk8ugIa|2(}RccsZ|hYN`z z{_WdZZqc2nH+ET-cZQW(B)Vpt2H}l)uT~`#K#<4X{rz~%A@ez}nxsJ= zFO&^*5yoqRzzPlsO#+G@dQ~SI0U0imG6>$m+V#YW4L2Km0-kqQqVF!T$ybZDZ^2Xg zD*(6~FxT;M#M})WIUa@ewOv7&KyLNEJJD2Li;*eU%I~mne;|MX8KM`URvmcUNBLF-KHSz}t6Ws-T)MKJ1i!U%4 z3-2H0DEz9!Ys&ZiyHkaMBA!By4qh7ZS}j1moB+omb1**bf2t!Ye1vM zu;Wmh>%f7Ny#w5z>(z8J0WIPsPU7fu%_(j~w@TE=xZ=oS}~He26;!2s>N)0OR(_b)L=Bq9+l(A4R{>6;zi z`s}iML`Z%7L(OyxU)|H63fs@dptYe5*1A4*x7_bPw{#f!jx}c84>+4;TRvp?lYy6R zUmJ?SOOTzkbWN%vCox`P^;b(S>hS){**KVysVuYXE>b%5#qrJ$5OVrGh=vmdB%uwk z6lfX;U_X`kD#N>2$@$h{M*@7+Qi?buZ9R$tuvSR)p2F#l5dd~G`lwSj!Ey-E@66>e zMa3!CneIN)eSh?PJ^zye6fmUrYV{uY?`s_ze&YwDZ@i7_&m#Dv^OrY~gZq51CHjGx zbF4NSyc=jg-srwyVSMEX4%KZYM12sxh&0n?$tJQ+F#d?iBQie5?=pO}Xzmn5Fs{$6 zsx)iCO0&+`!y@N(-{q0|-0{wDy>1>!NR+c^Q8wwvO1O3eVH=U2=GSPuO9}{SCpcml1kg>Cz%rlf)7`MsLZcMaq^HEu0P9WIky?Enm{mpIVWTXI8 z?|l66{-}dE9=DShm{zLyy`(?Mg^wqyhX-yEuQOXo1rT5@z=#Th5>tb^-(y|rB}n!u~ThSRBJEu#aP zn7$9IuO#Sx>fO~t83q40#nz^`uRzXhB{Rd?`<67ixr`A|arUZ)-2it8vVhy$+jpy1 zZvh(q$M@M>VK-<^7G3)UXK>&c9qD$$US9Ey(=a<9-!c%I_bc; z`#)Ye9rM91V-rg!pj1W1h6OkOe7_eoYhm7}Tc}-dfnH-_E5plR>g&|ufA_$g~ zQ+J>9Y^T%4Mle!0G3O$T;^q7u=xG@to1Uk2ZIDcNyd!&W8Z|PYDTkzHc_;JIbK7$3 zj9^ht&fUaQ_f?!=qa=QBbtRgEQI@SK-SwNjJY%~@$^_`^J&_gB^Rz1RMJ4E;8E;sy zuKD_>{!cq~i@`)X2|pN$quru#W#N_WXv!lr{m8v?Y~)e!O9QZQg6pabKdp+Loc-YvK3hakLdF+g4cau+9onY(jfKn)fSk25BVfi+#H z*LbVPqU9GcmxdVdG*)XARw?n;9)84k>ffDS@ECEv(&pg|SKxqE!?OoTW5RG%4aCIt z?yqyYZg&a~Hv&6qb`#Y^CEH~_McyirX)~CYMlarqAbN!I?OXn%XN>rnTc*=e}Fhh8~B3>k;#w$g}4{pRh zzZiI;h(D>W3gMt`W(Tl?zOby{7Fhqw(csShDEG5_t|Bx=BX z28P!Jx$a#zG)kXNqEST#FCtAuE(mu`{_V|Hpc(1>AKyvNH zM@Nd~zqO_89@5Zkcp_4!^CrRm)P~K0**PEDR#qL{%IJ_2^T~g4Xuo}Cj`xta=i}Tb zPj*Bkj;zpmZ>KX@j!$8g2S@GOG%w4$M(qBzE=Kx;OfDRG3wXX$3$9~aw!Tp|;*A=8QfqS(sA*#fUt60HIp|6|3|;5#pr z8G(V}e}_r3()W$M@#|?#HJTfi8FdUcUMOqZG-ttU)@SQg(==TX5ce1psdY@hvUQ2` zq!+;NDSYI30uMT>R}87~>O1ezez(3b4jBtOcO-L8cjAW}Yuz4j3C{%a#I=$bIyD-Z zJ5m5T$nLOR2dOdOqG798T2Ip`aU#MF69~b~28p9#Q}YKK=aROPr^4_|?bJm~VfRHW zO~uKRqXs)XU=Euk*hL3&7UVj!xN`9j1f2s2E=M{t32PG;)DRClsJ^PMY0gg(-}hs) z0%CH)<4gTmgx&3;tSr6wA$1+k4RLK|tk|X6v=2r@H`8*dV?-j^PNeqfd`5qQ)*271 zuJnX!nu*5^ju3_znh(;r&r$AJLTziA+;}sKSIQzj#xDQ1ZBP%ck!B;d(}@pXnO-@R z8VeGA0x+~DR5Gx47`Q3&_7_JdjTSEj7&Y+lw3k4jss|Qd@k%v#Rv#+%=)-(#^J zuayUqggkOtbB!xsbZ@zGcg^#q#pUm#MxJ^VMtFU>EAN!HrJ?cBt=unX8|>(-8Hi5j zyam|9Lxj3db7Wz<)!;OdZqZ^6RSIBb1(PvD;YI7V&mc(ywv8m)!?f^~Hf0d;gReBN zsNswc_2O}t+=GfR$}~wYZx}s{zsfIt=ZjCgA^Fn=%|awM!{ zzPm)>-h$65#3KHI@b!sc(hCkos6||<{2UUDM(8^|xc+QOlGD=mw-! zpWmm>R-xMx*xEZg6{_7884u~&G?pnbI_7k>f~XQNZJP*AeF#BUX8OOV)~Ch9}Ewi#1H0c(n_svXF;0j190;`IVM45&J;Q zEtFuu&g)n&2n33Z!@RmpAP5nHCrMnctinPlbXZa@)K!~U0&G^{Bc`yudl@!kdR#dw zY^n!C2rhMF2Hf^3OeLak#n&^Ss)-e)a?(+hPGcxz0}}CTYix`uCYs9&>Yr&Q5w~oy z`c zsE0lm8AO);wD-b{;Vz6vKroy@Zb)$nihkHKaBWcq+82fkzr)9f;&zDuGEQ z47ksCcHxZaH_@t?9^TA`S>M_@|8b%%IXclH>B>sDhglq2RiBWaFznmSXo{Lxl@&UI z&xE*M@q&A(WCNTXK&Naf!3GJu)p%km&k#hE;~^f7cV7a&djaA^(UI`$lRP&15pJ84 zhoP_@XdBIVqD%#HKx*47wc@#6vcMP+xCpTdxa*LsoR8S{ogMA}#2VWf>%|p^8&6{1 zo3nkvQV);#x9#;xx_@F9CF9k##PEgQEiN0jD@1$uTDj>|w%2&cJ7oENvhTW17jTp( zrBN)shBA}KEax3OX?Y@dyfU}hgIAdYr}Lh`#RZ=r@b+UF!TmkH3KUGn&DF=Dq;H3l`>8^tD`JEsRka4ChssPGnDG{S9`>rb&(h$J$ zFCc=^?jh5=FRsn3du8Q#bGKvM=9?+v4=p|wYR6fgntrF2gw_Mr|Wn zn*#lp?r>sa1fuUg#ZP)kUGWIlz?{2xbg0O-7ftd^e-0ypKOCK^bXL-6X+2^fVNaqN zoC_)f@s-5HVv6ZRiE2p(K5IB_I#Yy_n)8@Lz{WmJo!nkgzsifex*LMe;BQ;O3wFQ` zg;ny~S0`7t(@1v6M~1y8X2wNd3&8ycKfpWZ$r@Y>x_ig?&oeK#1zi1ba)1^_0A}eG z?~NjxO~3Yy#hbAm%2Gci-nF0pVPTz}_8~%5pxJ#yf3;?o!`X{s1Lc~pPjwVsE;ub0 zt{a+=xhSncTpHJ{6*-B_iWodf32VsQ!jXIRJINi{mc2Tk+C64Q88&f zv#E03>r5tNmW$~`o%cI}*Q&LcZGvXicnfk)m<(DmxxtY0-Zr+gw@<;gHZaEXSL z?_aSR>9;}~*U9xtI~lKb{*41^LB|Nd1Ou+4=rZrGS8_j9$7CkM@BJCOzv+gOR^8r( z2cu@_cb{=4yxYd!lhw70QFW}qe$co4`JtZ`#kT{_l=g2HR@7MCk&^nX`5cPfMC|Enzl7M$F{Em*%3B|}< zsvZdKThU85h4G$|Kz!;NJk@M~Iy}2+c%+ke6>DI#Nbtgq*bgDy$4izJ(neCIS$z;@ zb}6(G=KFGoEcMO5$c4ET$2b~fcXoSxY?ys6SW@?o+sBLEY?qKFAgkmxObS=5Z$VGp zvKd>dkPV7xzI$J86SD0vBO9cBw_IB1!Ua!WBYU=TP0s~IQC6j%2PAVl=1AlZGFy^$ zz#2XAs3J!cmQD$fa37?7_1IGEq}XdhLW zy%{sbOo9KseS9%3Urfsv)AGf%d@(IwOv@M3^2M}#F)bYC8kf8M){q8#F)d$A%NNt~ z#k71eEw7%=7t?b2Vp_hKmM^B|i)r~{TE3W;FQz5-nvLKFqr1&B&2TM=7(dwo9hh z>3`3CFd%-BeKbfwRLk7r_*UCTJD!QMH%AY~Ja)YFv3GT?+f0Tz)0yh_6S;FpuVhVI zWs%eGB%`uOjR_OG;VC5tp;v&`$54&?J5IPo1HW;T59nn=gswWc(L$ssw2cCK70RG) z2xm2o9~uS|bPNU23fy=Fedh<=8SIPbgpUxhgC8$g#lUwVNcrQ|m@OwuQ}^yF1qsPu zG;BMEsm0?I(u2y{<(eFXT?+4tSk-83S@{0oIyXBcG_#8$(o(TIRVQ!GT<@3a;YD8k zbW*X4f>+gxjQPpaCs17~~ExFq$3wT+7urH(SE&xxXBuCczCI6|qSO zY@g?Ge3R-0n@c;(TLQJHl+J5XOZITAPDTd)40GM1nalbXEpRh-%i+SN?$&8jvQ{(_ zeJ;NIjy!o{PED$LmaFf|;N3aoX#O~)`id6^{e$YZJgiR`day`NkstX==2644G+AVU zFvUFZS_u9R7)l~KO;e%sH&B1AKg2^WNH`CY1SGi2G-8kvnO|OD4Z%2*7zZ4M1RNEC zR~j18yd3_BsI)haYK^)i>i3f-4%)V@{WKT8WAZnU+$O;*6|&a|GzjUH}D;k{|(1v+P~?T-0%#_nWRA&XzGL#=bWD!_ zM{`Uj{j)kI6L0-9J0{!wRmWs5-!b{$bWHxA(&QE8yCnZVxFpl~F3JChF3IZutS-sa ze`=Rx^z&bFNml$vbxDS-h~He20c+ePdF=n$B^jvyBe*0R{c=ez`UiDMF8T*`Np}2S z=aOvsFI|##ahGJkb^q60l4;T*a!cvA<@-rmACrB;#Tx+~#hzM+%q*@T8~8Y6QA}Rb z*kHRIcyg5;)gi4#vO3X?p$VUUFf=|8hX{QcslJt)A9=~l9;eJ`X?~NPiiLX~oWG@J zBNC3hC{8(4V6p>yT6&Wc&N;AVJMb6CZ;_k2Ugz6gm;V%(+>&5dkrh#f0Ku_307Z+rJ9G_4q` zB7kjx6M$XNQ3_LY6V}R&uqF*Hy}bHNB-Z-le3Nt7PN@W?*RHoET3g?zMKsE1?U}#k zr(oCXQ47mVFh<@P&m4P;NlH>E5ea3BhZu2D5S0O5omPIcfc~ z3)-9mMjgCV=xEj{Vi1ULcMVA#xxBAajY7$6Sv3Su2PB7SqVc|=!1kS1SYd==L)})h z`WiDuxkX+i@()srXK_%~YidaIhjtdp`DsUU^6^bi&N&?i(hP=`s7=2~m-YHD?Tg2| zITtwN-JJiwja>_{;Yz=6dbNN@A??6MZ)mU&`IZ>-$6mIf`%uw3XTD4Ff6yfvJVAH1 z+aLN?Uw+WHg2klf%3(6KW4_Q!vqh2+Ej(a9SZ;IYf>E681;m*xAcN*SJ--(_USM>z z{n^_XwU+IYI&YWW`}Xs!b9~?7d9-1tcFeNwLyDMtP(mvVLOF;!Lwb)G@{8Hwo`7iJRd>DIuinv9l8*Ns zce-%HPG4j3=2Al&%i;EWiJ0d`2}Q$1LA_1+welJlvX>FD%bfINtuoJ&=F#=8Sj|s{ z)|%TXnF}q;Vltm7joypFPBldG*q|(sJpt5W666lVN^)xax(YDpf#a$!)>3F3*%3-^Xg_+Kz%#`p>>3Rtv=s4EYqj^pGI8!qJC;!wHk zA`{qO>>5TSQ%ml7YP7ePbobrXxyKy&QNg%}tcmmVIDFAw`pYe?r5!CMz8(Xd`_a>P zFZ@8hbN50AroGIL9z^Y(A+lBXK0r)>~2vxk`>KlF-ldz~^ zFTlZ(?G@XA5CluE6=Y|4Px%E~D4P!Z>p0Yi_J^$78hE86IJFLBPR3cKXe1n@*N>A$ zaJq=|*2RFU37mTuE1b;!R#S-5f*@z3ZF3BTpNP9|QnEeZ%m$@C1O$SWPBem}^N0N(ZWke4hC1UnHUnM2g ztxmb>C!6DpkC|whgjT7i)r{z}}b;-j5BrEbGA%@#OJWD4W@8Q8 zftlcZ2#n8z7vWn>!7(e|G%>nhF4EdYL8Gnf&yAU|}^9V=>Y~@Xke1^|vW8M+wKL4MD!z5DC@q6c6- zH%85Pqdbyo>QZilH`8uC%kuBJ;q)gW=3iK@K=(uJNqo95e7X_#ZN0;5eg z;xJ}_Yry;l)O*lu*~XoHUsyN{i@Z5Ic`;UVWJR`i{Rkdt3aJqa&ap5 zaXKU7%}f?$&CMnMEiTE5VQQMTXE|xP#oKeEM?!WM&ae4Cg|U-)G2=tdQtPv}NgK+| zB8dqHKE!^Qu_>wLe0ot=IRp75b|3prk(4QmvAR2>i)j5S%IUeM<};-9l|6{(ipC4u zHbZ`@6nKxW62N9CPL&#~BEomWrS=M_d9Rh;jLPD$vR1Qt==8yy%URW3*|BrM@ z_ThHU5K}BF%qTIW7X@nA3t^I8Z^VtpF1V)J(P>qIl4#De?T(#$5M4cXw$So10n&o> zv^%v$wNpm*^lBuC513D8BZ(iDon)$f;q08Q8mPTjlSX2|tLW>iG;go|AW`GQw)MxK zp*}VfXgW2*a#=#LrAnU*;P7y^1V{x%ALn}G(TnI~{dRPc7)9iOG@%I;qa-(r)=t9r zaNfuqu;%U304){31816X{E?4`bsm0{=c-XoTdy;j zlk{vAr6<*&^P87J<4rUdE-~ZNfr@9r_wWsO9s!w8U%TLNAmP_RzFb-;{0nt%Hf14| z_~gz7%=Pj1e%c4=7PMhL*a2D7W*D5D1EXJDj-1AxX|2hIZ2Djn(Yp3{ZFgEoqOCsI zxMj_}t9AtsyuB8^Gxu7hH+aD#Q8dc!oZGEA4_maK^ zY1E>w81Y8hw*6h`mlqBlT`g3XpKma?#HW~f^ZtBsW9~_WL)yKOBWW^yp>4y`I*4>e zAWTqefdr=2EcpV*fb~f9f!VX~%vx;Fgh03wCHZI;7e_Ctv1R^iU6N-4LLw;McvQ4Y zK2o#W8F=itDt+xtH*=My8x}8Gq&tK>pt!2;bbS_@75B|@?evf;ZW-1w*0EkLDhEyM z`A}V)uC+7)U8%&};5fDysi)M4Y`cmsbLq*l3Kh^I;mrg(w$_KjP#x3oc3nwReZQ1AFh(+ z&^e3kT>qi4G4g5o*)3nxYt@bOy`xEwRzEqI?t4>gkQ!>|uvOyQ4=%O6>Xnr_*6&#v zAa0p7_^q*<;aUC-<1vXvOYPqy8xr{f;Y&G@0F2XV zcSyFVmFbw(H{)Zh8S10tmwp(<10sugi`<}DvobrrPl}s?GD*C9jq}C=VXg$@?LSzH zMga`Z;^~Wh{*aXXXLCs=YGUo9=W4z(H{G@#m2C1_vw_YCSwSO$1#@I)UU`x4Y@lFH zv`I1bta#y{=-GC6(K)_L^8YNCWHbh>k1@c=M~5Q0wq4&USR=Yjz!bg`J*ND4<}oh) zY0cCF&WcKU4I7uNPGuGaTrql?gII05keyZHYE5|jIKsvO3s7^oG;qj!AHk}7EE^0A zSh<}(^ohBe;wk7K@$^*U{Szq;ZGywQ!Knf(n9Dby|3ogyy-ViSTc|8Gf3ZqoEyLQc zJ;*G1ZrNJ{+Y>Xw9WM2lWM3e?wfD|6a(yMn8SS7aKWm3S8Gj+C%vgPyZ1Zs%4Y^CEsDZ}IYtba%^#;U2Nf-Ao!o8u zT*^6;e+F;<0gsLU(_NB-v5_OAoLPXQjucf6!$OWArmq-QB!epE`;>v9g!ym zpyiA}!NARbas2yTl2y1!{J@6q!rO$^BGf3sC}Z*4TADgokTNq^MT9!Na)#y!gS7U9 zYr;dGqET;jR=hL9?uMr}f2@tRi=X3jDkuI?y67|SxFl_fS8+`9G0!whvO*SOo`1*f za$6$k={4i31lWfl_2gkm5tB~{kF8uHautE`8}jzgU^YS$rqMK8?r%|h7}h-6?nFg# zO7>rbKwZM(ieJWzvUA#*VI4%R)AA267dGew@c;xeY4e+zbUASf?vflvC2Dg9$S8?s z`|8{$!E(sF6XSI*tgP;v69Q?QL^>y=#>%Fy9$Za0FCX`F50#YnQC6n0-vcJXLFBn9 z*E#iz@k$PvMLMeszqXm56wQGh*jMqgafvBwF^oi3l0xq`~@_?$8)cn|+ zEwdGTFs}J<1jje79ee>QqBr0T#t*e`+c4vaL*eOG-cO0UPVBt8|A8jpvY3disHyjD zxyAr-#GCzu@(<{ej2r}>!5s5Bl1iqFq7;BHfo+6sv61V|79-8=w0CTF3`Cn z@u2v91^B(ydMR?#I?sgbFL{?1S&^btJFM*VL@g~*V#q*M(|a4E{Xu=JM2N|D*`ify zwiW91O9sY4@;gVoj2DI8g5O?Ze|7MZJ(S2Uq8CgQM0}_CFM8wKb`5`tieTNPcma&4 z!{7^((t)rD7!Oj5x)Ld{{-pNZi(RpY?)7QY{N-I5uEf8?C7IZ8#BS0HU^@A;LE}~! zlutXoLo@}ZnyBIw?%r)1VIgX2a0mJ_3=+R%5yTv1oJv1MHSAA@E^kMxtJDlN1Y+92`j zcA+^fv@ItZW4=h;Y;9OLD8m-zRv+Af`E0q$BjCb6D8bg;brVMnkyv6Sxx);86_L@1 z>6Je^mp(PQX_c$`md5EO5r}Q>xk`fvf_jKtrpqAJtb-g+hdKcJ({!)rL*_1fI%Y?7 zl2#uUX&mmD_NYr)*Qj&X;hhJ)I$tKMe3(Kvh*=%wa{kU33Odipqm*vY*T?pJUT?Ao zoO+7~gp#5rybcIKvQ0T@?orY+)?!)R!znDp)1dZ^C+Uwn zSU>x|arqtq5{GLQsOz?5>zgd~9ysA`mHN+~zWSiv-`vc;B_M9A{_ajuI2fMGCpl0xt zbj}hnsfsf{nY3hOe_K>gSMkOatwZa49TJVRYi`*LRyxiLQL!(`2hToAHs+*_k*P3X zUrDEZKYqc78>_0eTFzK=2>ue|DRxGvy2#vk=&omN#{QV@?~Yw&V;Sgjsr31Pg)Dr) zazTW_CuM2f)T7g|CPYCHR+IfeANlmrL^c6ad!v;q(kSzd;!+o7>N9A4xrJCTA6|#} zHv%BN4!|l3NcVfLIw%b8Y+2=YqM%queV5e?xKhxe2=TweG1-jWea^S$!^_^%R*?__ z=!t4Z&g3vgP$M&}uleK}WE(@zBGTRV`puErILXt@h6C1GtuC70bKOD{_+nZv&ys~N zrsa!ivwDD7M1N$Fja@xSYE$+4tij z_k099!T9i@yDs%PJtLVqC;dl87`-1w&HWP^Onz@U#3j80qbx~K1QVG5M8{;lm=^D6 z|82))zL@p|gDYa~2 z-XC=k$6J)-1*VnieJ|-xa^Jx%KyL~R%;i{q*o>oMjbCPRGfqQ!VG&&v6Z3kaWi*Hc=fyiSdf=Mqp7@-z%rSfw~FdCun z^x*olB}q{O`ci)jy+H#Bl>mUA)ltkLn7 z#Rl-6Clz9$9^QMfiQPs7w3Wi$WpccU_=on}bydo}Q-?x&{?i)?4o46 zx|SHe(7VND!*+#e?_Mi6oyztaFL{S7zfbmE*XaU|@}xA1rPokq@|fkkgC{LdGZ25~5!%LHAo?#%+cHu^G5)hV9{#|7{aK$mFFZ=wOx z#27D*=;AuLUTG)e70$nLAT8(^0hnNbFQ)C%<%?RwlOCTOGUUki28Z4vFkV#K~6a1IFw){i6Bm=&fmM^B|i)nWyDeYYxJg1U{-gIWL z@c8#V>YbOTWzmO*Oo2r)n7g>_n=9S34!HI<5$go7Ae9^7>%1l)EYybxEM}o47}ZaS zON75C2}-8&2K*$Uc=#!(`r{953pQuf0;mXYXl4=mNmhOwGCYX8HcpK6H9Wz8Wx#Tj z3dg;(F3Z}i9Y}1CI99lE2@UKY;d&<@@x`=!F)d$A%NNt~#k71eEniH_7t`{^w0}9x z%oo%0#k71e?Yb!ogVbJr*nC7|WW4*n`)C@0DLknpG?aq)Bab9X@Qzo z``t#(TdR)l_B`czcx%q!i#(s#538S=(HY7g$uNfv2Ck&JC z|A!5ebx!_w7$$oon5(C+(jwZ+ND0YyHM00pd7~9b|5q<)HoS^nq|}C_eX*vcJvu4) zdfyI*^!(;NH(hm$FTS8wVXjk^WAfdMLL|bgEoA4wl*4+j(4Tuq=RYQv^qXcya1AV% zIrm{$j{b#54!h1rJ?FVvk#(_?&ID!CKd+?w0%g=avp5-?7H5`vGUOY|DoXe=;z&_=wkrVzHKf4=m@% z)=Oa3dqre=5;4;HV-6ekj_n0^!V`yV!d7>s?O=j!+CLC8=(JC{^nfJ-mR2EA~jSsqTw+HIYYJ_CAZPn04I`owAn|f3oe6)SdWq zyD9!}6^}Nlv2^F#v=Vw1n<$rru$!|Q)y~X=sy{;{hUj)1j7c`hjF`K5GFfN(fIh2e zGn=KrLD;Px-f7C=bjpz7&i{hSd0yO-O@3XnWZqSNGmx zPZ5r1dDQV?k1kPuj15$sZpusMqrqYM(3^B!nJonx`^(aDl8RU)?7B> zDF>~{Nv|Vz+P~fgN>m<5i&q7xtSnK{?OpJj@jU9@LQ#W`Kw;20;}H`04H>cBY1aWR zuT5ujf_MhAxXElF$6h%lc@vz)8b9{>6%Rgz%JV!R*fgzqh zwbp1OUle4^Jp~2n44UbWXQiIb^p#drVuh56(6PET%V>>PPgg66O8O`@cD;*JeE6_s z>#|W(F@xCD?djfmtb`!9-FH~Ub1$@Q?;S|iIpIH&G3zc{ZGEErTb8QlAB(u&*fK!+(>OYAWdB03 zFf2{(K0OT@KFxal)wlxbRp4zsT74%zzgltkqhc`8j`Ona60;~6ZER)@JX1#g5R@Ir zLkaIdQ5SLTuCJHgZi_4PY#>I@jx{{?%~LNZSq)yEkOI&l3lZf1p_HE#O!=YvS#Xz5Jt z1W|E7X8hS5cM_Il8#xsZ;C9iq^r>PZx&)|4{EU7Q4T|ojv{+N7A4Q7DO_a( zN&W!bEe+Z2y8%OQPIyBVP{28svD*b$T26054#1hx|uaO z*j7+}1H5?%=>oV4w;9*k;1X(R?}ES^LjEi`YMfFY?#6;oD%IHpvsZ}$DviIq5%+pr z#a8HT1-&jD8Q#5K#=E~bk7WI9Uuf+e%cOT|Zzp^%C}=&K{$y9AlU!XfYi#WwqZaAL zJKfK)Y0;rY^zJ>YOYYP;83yg_tpxXvtcjCbtXpNkkY9HEY1pmj)?sG}dsX+0n8b8{ zKJ0bDegDjKS5OtSbj`D=$rroMjh>B6_${bGj$;M5DI#%g&7%eO_lyC~)Pjq*WCyM> zW)o*h#C3p6pn2TFZjsM~L;Eu6d(ETEev5PTz^=J5P(E%bG6;mERxTaZ!SInvLm=IR zyJE82#|lBV9(kRcx71S$Opv8yQqJ5Bcs(ou;fuCsC;+pifEN^v{-uyweC(xAJxBs-4G6&B~KSb0VQ+^dWHm0RGM0|5Nr5YI?j>lY!@Lm_SbljWMh_drJG9kRVli`oF zfI;MmV9CS%B-NkQ^+$osWR4JqotfLmdHjX|AJgm<0eHuPFv(Rb?Vs6+P{$SEPz65i z#2|v}!RJno8;N5rWY6V6Ekp-tS7#1V4jrwc!!zyx8U$BQr1B_yMrV`j_LvurjOJg#X(S3TBi{NB3ZWmsipiTZlvoy_|D z(bWbCVK0V!8bNF8V%;~ZTRkEmDx=Bn`Tt?>U7(?C-~Z82R6?a364Q}NsD$J&q|!m@ zBq2sQl|z%{Ob;nK$W$shWRj!^MMz?joRWr|LK%$np>a0G%ya+mXJ+)i-~Ipn*V=op zwg2n4*WT+{%V^U3&h5VM>-t=u>vLUKONwIi>zL`Fz&c9H#RjW+@(be#tCOS7ix(3JwwtmWROZGy?24ge0qko_-|)8%1y8Fpun$3 ztSN1x?S_Xx54>tW(9or&%=5QZNGA*(1WR^55wZDlyyFJwqi39$suAA(E_-hizv_R0=;n z$*3nK3h+8q;vWa0uSN`^@5m^7udU#<9j)3L0VkU@NjPKP80%<1P8=S_jWf1g33xm( z+Vx|L<%fGCQ<-6RjxWjn@-Xe)`^U7QcL7-?<~n2b#xajio^^;DG{Ti_3`}ID(+fOS z_Q+BC$|RSi``H!I6CIDea$j?$LByHx$lWGzB5I}p3HX*RAGytu-<8&$*OgXH^l|d; z7YT3RV!1t#tb&-Z_b$Suo|*$PYFT0*ohcmHeue&9ly@88 zU@y2xk@fcT0K=0l#47XYna6iR;q#yhoci?IYiQrdff2|aAj>GgZUHSB=&ov|mr1P9 z`Gc%jiFmAcb34PH(ffk5wx1~VbM1RrA?$EUuD*1_>Ddp>D!@647)x;!HXt8IVxw7mh2HYZjnn9S4V) zNi2N^5{0TkC*B=GhhES!!Ze*7sot!i%#325s5>05Q+%f9}XhSxT14)CJq-B z(X;wf=GuJM_RUS|txxaD%J`|Atn%sQXb5FH?)4#8rVW-=D!lV8PZiBvtK>Fy>l8*$9g0rThQ5{;NV%#!w6MyY+vL)GKCj6oPWj5rLVy&<0T|SP0*NVlSNHF=|sh0=XMJzqc^2ZD*a>ik&Z~ zNIw2lI<5w}(6)UChc*ssfhhpqbc*(8dYSqPo2_4%GYm3vkvT;{3JNRkYaCrIr|F`y z&AIBthD$jKwFjDH%ErHnC5*-(LwEGeUDOnMk>PV{qpqn`NXFqv$d- z&N!KtoPunkppRd38qKJh6Jo0YqHogse@|M z91|*d1+%;R57@DW_m5?il{lIoQoVbowP|mI80Y;(8CAPWWk)r#P|1g|6y46YT>-1GtdjU&eV6KmwAm>Xzcy$%K30!(%+`n zT)e7P1?uU)7F6P&8CjI*QiN|PvEe5eVz>gwe#%UzDk|v4?A6plIr`%y z6fHh=c2CILw3N(_Zp-~q5x+G~d9JL!%5h)$`bGJ=rG%#jZl|pXm-5^XnZ^uX6UI?C z%jHv2J1iZ~KEc2Hb^>Yi;)5K5yp%d0ZhxU%S7C<1{~^WzS4F~m@RxwP4gEi#aH5di zz7NB}sJtlZzxqmIdjmST0wAhj>Y7ALwRzr(?OK{B$EKN}KK}<@(f`0T7xe@uz4RfY zpZf^T=JNf4mafe3R;qS(rTmKM`&%L`Y|5Y7mCg%%B&8AeXX?@3mFwZBmw%HYd+@o9 zIuFo@vjv5XFLJ&~^7_R~f_sJ#q2b_#ajb!ek!P}zo+~!R$S~o<)ObQt>C}Ue9Y^Y% zy02W-8~+!KqiCmH!R&Uq-0hWck22zy7?1Z0VL)e#E5a6Y1%AY4cg=5m zAmtbgkE@O#D>*y}`nGv8HHZ}sU^|7rMv1>&^WY`B@@Q4+&s8>o#c+Cb1_ez?zO|EH zBQATnDoiU-Ud`9)YQ)GHk()mTWwa^;=ycK^yU>aqNulh_90V%*+Tr^(R(qId_^ZY?Msv#B~zZ z?7p2G`(WE1$7#D7PB(!P$bL+l_NykUWPje5iCkceNuFXkB~gIXM#Ss7S@~n0VtJ9rB8Wsa0=gh4%R!~XL;9F z!H5z$W&4BM>;SrY@_k;ldDJ|}ixWTp9V&pvW`TbV7;p+e=gm%vf@YZJY%fa3Z@Y1h zLH|G6T))oCAlrGI6!`2>tEKPFGh>>c1F{Pqj?k=gaV4N9>NtO*ZI6el_CXHFXeJPK zYZr}7ZiybQN*r;h@zSh`%$YcDTw31Rn9P*UQyA@dH|SyKGop=}TW$37d2O+HqkL== zrDVpx;qznN$PXvQCbai+JwHJK@4{tARDuAtg6H{X2Mme+`_l(-XtURWcPmOlS)J3~ zCU2)kBzh^MK77!_B%Z>|u!F!jwXlrx3@l{8%TK}8BM}K7$!;2R;zy>W7Sr@0nOYo% z6tEs#sj=p4JrsK~DeuwC@>rs3%37hS*2^`_S81vvmIothj5Ex(r^ktjfJ8;S&s4)7 zWM`k)qLgsNJGLtT{r`58gOK9c?ZvgWXn3pd>urqk zWosE3hj48jxw-Eye5JWEHw>;clODgW+h=IpI5)DzI(=waYidVJ{LnA3Dc|SOnQw`t zCT?36kVhv^CUaudojUPwG-DYU5_*&e@i_6mywmoF)q}b~fOk6Jv?grS7Up`?rD5z1 ze4iSjSpz);2%)%-V*nrPX-Pc=Sgzr^089i?Bg*ji`IKC)S!h)!+OL6>8Yvyo-LoaEXcc#d0kE&aXldPk;>3G0K`4H-orDvN) zthGBho&cH!duhLW@UuNcoleGd!ryVX2po3{5eZ>r4#1LRy)=9cNUl9Edz{$K4$zh`eH9{$sEKnzr$y{i z!g`kbI2x+>+Fd>Ty)#UUn$dT2@%m$Ii}TT8e@Gt3Gz*!(;^*9ZW@J;^HqbR!Ab(>k zJ}@}#H}d?s88yA(Wucx2gEyo4Oc8HJb*Mj^vXAPufix@(fuMxIim9Ju?$EG&O(uB` zN&XY~f3`_7zMGQv#D49asFr5tlz$B{#p%O=c-w5Nq?Bb}Os##eDN;AhV)4n8=7tnx zWaXPf;kQrBti%vV)bDNbx#idA=~RK!I!sf|AkeX}6Yn*T zNih^)V5&IFgH99tW>BoiDrH{V_G|0&`d&5~ade6N@Sd6}x3l=qM6^N@?SAX9=Zsofz zSV`mkcFJ>nzk^uo*91#zPoIaHfirGm&FR3-iV$#LNu}_$Bw;*XgYMueio=;j6jgp*-XGo;GX;Qmg0jAfnG7aCx12m z{>d>_s(O0QQ{vS?dwZ5+HH3}+MSnXC{{FT_4&_36Q?}Kws|YsH&m6_JgX?a%*9Oa8 zl29-b?sT;W|3Bw0F=m#yXL~VI>n|IP!)QHXPD)>{G z{;>}1pT+EqN0tNmn%mtB9v#?UrMY8e>jkCKTg?pM7jo6jPo-hBfyuZ;{aABe|I=-e z$wuq`R8?P3i^B6$nY5n%=WtXZC09x9gjmW2K9=N>W3e9=f*v|=mu@1%RH-?@>7RZ` ze5w}d?gz&IPR;U$+sc3%p@2y|D#9K8%}2`E^5E(fI0T{2q=a`q%kq>29b!kOH1~17 zs2Vw;CD?fQGJ;LZwF^NLx*~+0_9JQ)esxhM2R6j|n?8zpx#j!U1qDunjr~pY0ni?zWnw!wKhl6#s0b0=^%>FW1LuQ6fZGB%Z-gXw z`P60??%)yWYu8}b+FBPl2N{E(OJVe8${lwLcNn7Pd8@hfG*!G5uThi$To=GCSL05~ zt--R_w5xaFR~*Zf1<$6O%;tFKYEJQVfI{q<9}i#HvI~s5Gq|1tXJePSGJE(>=FypV zwWSSTi6V!an5V_Zr<&cZT$0tSMh~k`92hEWq4}Ff9=Q>5)M-SW6SRIx$^wf$Ri_Rj`g1<%zbsQ^{Z)Hg;~l1YpueW6_4=f469aBW@p45 zVics_C7ix5WaB0;%0*0$b)Ty&r6fz>uK1coHvC9Jy?n-fMUPAh6dJg?C})r|ghqXR zUdvzELEpa~J$c*oM~C^#=_iXV#ob@H7E)TD(7^cUwoNbmdJ)I!aOZDFkeO1x*(B&6 z*`j|p<768Ro#ykd5^Tgca9R-FL8-m|-;sZq9+-6HGX*%7HwAJ95Q1?L8OUZm9F4YR z3(Z1z2^4V?V3JTA3+aWnDGVhSL;$pj-824d!J-fQ2tAi-Tc6_`>v!oocyh%_vSwzh0e{{EE@Ei&9ruOFBeS#kB1 z!DhMc&K9{P>CJZS3DjaM>!0ruvm)bq*HLa389&ghcqAc1@T^fyS&EBZL)Cp1sDDxf z%6K$C9|K8_W=7^p$Q6&WiCim{iHwD13oo34Q(WlamS6{ByKC|47HDwc;$Sw9BH%tu zS%BEeLp0*#9R#B8z6@VABEUtEcf?wTW^+Nbmo{)8ktP28CT2*Q`;*D_Yd$V{U;uL6 zs==|E*Z|lrWHvQjJFal>T6+ye)5zmvP7Pjjmz4hkRz{!@mopMpIJ82uWLsXyNOCwu z!)goqc%)HhC8D6wDRF*|odR>phzU+{jD;6k9ce6oXF;4PJHG4PzHlp&)7!UWc@XsuEP6<=i>elCyi;w85KVVIo1wp>3eeuwjSk}johGOGly!?$v`%8 znAcnwTXhkT9mD-|5JSLT<5e7_b{s;M{~#!Di20%zMdEilsNEL2*}tcmgz~7RPJB3c z;>4aZ?MJ4T`z#8$w7%z{-R+U7oPB^j20bM`jGo#PtQuPP_;i!mK~gobR#kKI`)1Ea za?c|2A}khmkFgheuI|d5xNQ&Tt8YHO_EMV^1KFu3fi+3)xvl8>{!&uUqz%&OG0S|} z>aU#zFggoA;jM~3G?II1vZJ_Mbsj9kP-qcM4M6`T%`t@=a@=nfa=yX$hd6dp^X^mt z*LmYeiO%2ANw7gO{(4w1g>wh&;wJjIJB(n2^xn^m3P9L?MOR*_&&bc`{ps(ImTihu zSt}=t5QI0}C$P-n9>hb?F<5#+KS?3~;J_4Ls2U~Rl zfk0??O@VPy(J~HUmLEW#&(=+U5meU&yixRA_f6`--4cZ9_1xYdlrm>m$rqb4UOI;+ zs0+=nF$kbB$x%I#r4bU(>b@d#XdxA{2+?GEa#|$%(~&LqVi(4mUb19k-F}2P%Ac-R z&s~{d)Y^L1N@3QhA`Mi^7~!HKWd zC#wwVOr(dW7MaL*?4}IWQ`{rURmEDR-AHx{zYT_xHE3-On%YXnz2mLERo#Y?t1_8C zEH}^9^gzIi|6Wa!C0PWaemamnNp3QI@m&n2bR+?eXxp2I+m^Db0dM21@}|C_y(mlU zM8_^U#N?b$UGq$o!-KN?eBI=Utvmg+Uv!%?pDFI3l^9Rl%PyqOP(H@li!>&!WL$#L z)yK`AR`t7M&D3#kNGxwTOzc5J1M3GyyTkb-?+}=3Bp(I;p77+b>tm$I;8uNfp?oa<9Ga%4vf#316B3~86PECR(+y5RV^pHijsnS{{lv*Kwo zZylPCI|q`flzcJnQ7|=r9n#nWuQiEd%e;QFmwZMP23k%<`^L!zYjy;q%HgLIx(!Un zGbWbPiL%H_z4ke0*b|=gIbOO{T{JJNlUFZ)~{gC=&)<&h7xRy65O)S z9xM5pxq2*po=+ij*}3fF9-mez#(g>{!&9O$YH zzfMD z+YcZBQ)1lTL-stVBEe>8I$hj_FI=iSI5I8GS6F1T+_%HIei;2HB3X^s(4P-|$ApYl zS#d-uMY|LO>NAEa@S^iF4q^&u2x<)xk%x8R=@okqYHdSpCf~SkdiLmj=0hpzvHT~G zh&fDWr$W{~$=U<2!y^NG={u5$Cup7@y(8!WbS;k0)z4j)%8iOA0O$z$|PVD2PA|fDGd!A3%}bVp2ER z2X~i4Q=LT}$>_z?3#6f0XUvR~MZWm6nTB>{9McdwG5vX(N;pCZV^VeEzMdkf6l`mH zy2vH5`8~Qw?BSWQ27%=|7YfGu8}rX)zcci*Co8EiJtJGYV!Ol^<+bkc(I)y&krKvd z%!l}MQM=fZT;&BFbd2nu=F5R_>{xYdz7ro5fmQ9jKTN{jiPmXl_MoQBjONGCM$;F3 zp;SHXS?z%_b{!Mrkb;YTPac|9gYp_|P$(8;8txiLF3*8YQzTlB>H1~G}&|C!}kOUa1CmLTQkI{dO=*~UmWgn#yx8A>0ZrL^=ql}UiS&0IQ z>+fA(|4to`znX&$+C|F*6U16Ty{Tr#;`EOKnbRo=KyG5c$58_*A`A ziJr!#bJ{+ZDFhA)3DNdH=- zzU%T;u^7{#Jm+VI1+AYI(+}SozDMa==jJn-?bOt_n{356|8huh6Zw^LgwX5r0riD8 zL-jqSe+Xt5ldKbX?XAJWb_*_(S}YJb3gcmz$s85vz`?W-S@j>aVV4j*k6IT0DXRBD zwOhuB@FrqnpugH6(g#B$kqLAOk>Sf;%c6?K2`7VC6v1ZNf(vXdV;{E9-eToY83b^~ zB*XzamC>kWk*T=JzSuEs&)&4?g?qkhUbfsQM}KUSxB7(5SVlojkMmH85Jy5`s4LR? zQ3y^vX2aW(8HCL|>bYU;eF_;Jn>jII+SQ1Q%myF&n_i$yWL4VRLjx}Zkj6}PcItsN zeJI_6eCl5CdJRRBuLp|yB@REfYk3S|OMiC}MS(I-)ih5kda4YJgnQ4HQ$L zDZ9Nnw=VC?UNV9_|;HzLK;60+b_xQZqeXw^U@B2;5VkFl{C08N%D{NfT zE=in2sMeWc23fx^Rik!OhGqQfWw-64+Ajy1;PlU<6YqZxrc}(^_D!dy{6hjxTD;i7 zD6} z)*|&^LX2z6yW#BUFtmn-$Q*oqZcC1t*~wq0mHU3Y%@7QMSeblJ;0 zE&~TuwbJ|cOU75X(W4yfro7EgSDL&Y3wspZ&uE?nIjO~G|IYHreKT)XD@gGjMW6x0 z=zCZyfN*O8c!bkbR+Vf#f-#)`tLGm0gRs@70ksRn51)}^Z88t(E`^`_;Eao~q2Dii z)0-FF6vtneWe3ie>pM7*Uu4kN6AxBz)gN4SG)A7TsBIg-etYiQ7TM&wyWqqA zh@n{5VHAhV9Lip?{B8n1kX7eJh_Gf8_%EWphEH<^o>Oh1k)>R%c-e*IvX&B;IYs*urV8 zX)TV#*<(d>r>7RjXl>BgZ9fguyrP`zsI%&NP`G+`j#P249DKt8p3?kK3QWynGi;Su zvFs4`!E5J6E=L}FQN9`3j7_o4CE><&2okKcJ(J`sK!VjHGET*!lx+3)BL#J=6s?Vy zZ&r@0NoNQV{V!iVGI94w;^hr$O6djT4L=`t1i9mmL{;T}_{yPy>1khfVLB*={NI0r zDYl7Bz`m5?K2dmg6Q?WS`+BEW0GQ1T+;NIo-KwA{S?IgHaC7r_MZX_8SNh9knr2wb zz?w!Qo47}T7Z$1MmjP$xJrX1h(KShS>NB}M2-Q+1(&<=ZN`k)9D=s%uN#|+La_0>L zZNBG+doKcsl;q^?th(b^2T{(@k`ha-#&S#eatyRMS;b`>x5 z{n9!L>hS4LS?`@+wH{-zq(mCeSSp80n=-eV2IjA(Ef5ZOf&owY@G_z zH*O1{UQ$xk)eI&B=1ql8eww*DGoj+2^@?PZdYA3=SO^+|Wzual%^5CrD77W~dTSfy z(v1>vHyH~h;Z4d=^NVoDp50rEA-K|zG(A{)u>5!a(A6GMMq}<^75r#Vyh6cQarhgI zTnhsz+Ib4x2?Dz`jabA7~VqRhkL-acikq@0EU)y%P9U&EZb z3>VRfZG>?VR^pN6sK$|J_-}H(q`NPK=wLshN4B}_?xN!{ZAdS}&p0v(rx`6AMolC> zz-Prba*YnjtXn?%Y$qqXPv|sz@=?Q~=~yw`^(Tq_R}1ed>Gk%;*j~!7%zpCO-z=ad z>&XnkL7KWP+;@Dd6*u?AD{4SIy2IJL*$aW6wn;-PekhY3{$gp&lO8-@o(ho#w}t_# zaJsSB8!vIW9P#2nX*h}dP{U`blTtx0FPO1q74*hUBTQpBAe8$k>yJ`!FFR+lrROIw30S+C%HzygzLw8M0xPyv*N&xo41}yS@;Z04sINQm$b+>u ztG@r2$}a#Z(^FFQ?a#EfoEYln5xWk-mnI&sITLrI6x?z3FT;{zN@$mmaN*mlz-O zukU>Qbu1}8yJUtOPdJ+xKjU5)aP&_1D~jcXeyA0H2fi`6*AaYVg~8|xf?=cq3WWG2 zv>rV+o`W@D51?)4Q20>|e8KK#lL$7PcRb_GQ&efqwg~&M|B~CpVjNlwcyf3JKK|`w zHtQKah^S%a&~c)aR;DmJC)Anc>+^2$+v(Eh*JD+0ZvDMQ`*0boL>>4tnAiW!&p1SF zTf}95pNbFE!;-&m&3ur{2Yt_Fw`cxY?Ww05(6A^bx}T`_IFAQ(rQgTOIu;{5x(~T+ z#no|lf8`xZer}lu9%}$Te#B&$jpZ)a6bAOr_5%2;_~XG!?2l*q@ zseRMF;Q_ghJ9XnI0h*7`txRH9*fAjgmlclle+=r6xdb+bz7Q)vw((Vya9DB6(3ew3 zXE+4nkvE4jN-SGf0P8=|T05&md`3Q@9}WiAug_4e)EcsxoH_mEUD3?U)MV%N6vKKq z9as*alqx(arK{Tk2^J;L?|Tl+4#N((!&lRJ07%-TVtR z^Hxhs1TH}zw?B{~t(n^W)D`+v;aB9J4!z$fkCEZ=c4nnZY_-^%_@1@_-Ie|8El8~U z`xiKPFe;8oE-$svPM8YkSQbqGVxP2}3845_-9DUNDo2+4fSJn4R|k;1-sP(#>nSU? z9O?~SnbZ5DrCG7bZpK^8X#(jdNIm7aiF8ojKTYh&fklf5lW2J3cP}O4;xG-`#v<_E zFsvjq6kuk?a37PX#KDVQ9HyuUKp*QKB7WOJ49mQOt9RkCq}=Wyhz`5 zXywv2vd~p1T}S577vgkw3NE8FSex7K{d_y{ivYCPAbm+{68!I9_%P@$fYm6KothRI z!3!hWM?T?Y+c`_k1;BE}%xeMHdZ<+&83wx#Co-(-TpoVLYu*+U1fMBux11cQX}xC< zjI>6YCfwR(yg?8ZHfblni1s!-5&vUPfq1{ywO~pc<6`(jJ$${-D$Ld!znv z&ilsQ2P3{|lud6OGxkh9^=`-N@`oS4PoDZc%^|CYyg;S~iub6Wd*pDHMUom+v`UE= z>&K}NHi7ft^D6-hCR9g3y@{G=5V9+5&KGoC0s^L%>~@OA$Q?JPS|~hOunZyr+HF(& zf)Etr56cRFU6KDhAi=~x3Ibj7^L%cT>l%XUm)Y5!&s42l&l6xUp7UFp`uoEmR0R?BeyVfmqsCQi~P3VhZ7Bz?opt!rY$(?DN> zlwB<0r2Fa%&3RhBM#rW*6dX2>=+drMA8aHxx7j^2^&C(>q3Xr;)) zQjyX6h3ppmEC(A57%$Zb@D5TxpQBEzK|+-;cYz65?iCAxH|oz6Po?Bv+jj2?rXdJ-ljS{WtslreEOTW zGZbCCxjd(30Qdy{Gyqb+4U!`#Y(`Kkrem)Fjlb{Zx_IL2Mo>;iv&y z!ess$`xeC}SWS*#TBTLus8+kgYa{3e2LHP>Or8&Lsi558jA;LgXw3mP;B(-H)J^w+ zk3Q2%^6L1A**s7U$JFbwBcMy?bTJQYlfEa@k_-A*P0Q*1PFnK?RQ7A|XHcjsg zIPba@ZI$XHBk{=aW%k8@3Ek?FyDK7<^PT&au-uwUN?W6ozF#t`+uFGGU{OFkAwl)| z>6|O~7L8LQ9GrKH|LWkt6n0lY%{4Le^zmP<0}Q`e7EJV;)0bH=V=TaQQa&}s zlH}+Zp>!{-!k>$7;QDaT;XxT7z=qQvkmyva+G*O{KBhK`&)qsrP76Xad|5R%%T~iT_VPO0sxbV%WnWjs&=qIoI`P<|@xYTOxB&Ou(u4E`yGL;Jvn z9gm*@QIt=ek;eJEMLuN^H0hob+$}}0ynX$X z;~xg?avf;%t2)W8-J;54MJIT5o*l&%>`X$}V-W+HY2GT1-h)L~_ry1QpAF1@Z|)NI zPkJ5CDm(gVjMQ-j9@DY!g4}!?{>{s{gh%qau#kyYtiR-G4b0&vfupM)x5jqd?mdo` zn3SkgBWpKRQ@pMpBEcXe5g@yOi$Ne8U)--gQ&E?fFv9Te0CcfMdQ(Pwmw#cE9ZZ{- z)4WsHCnxy8>2q|_0x^=MKgbLp_3@7Cd8fbESgov%y?{_Rwl!Bajh|MVchRb!*7Gqq;lx?xB+C#4 z2}5E&4OhBsc$aq4B;}NarhRMn9I7<=?8X?+!1C&)iuH4wqJ72+FH@P9NX^GW(!9>K z=$!ZwWqBdr^;Z{%OrBV{7<^ABxppmBq+U;R)8uQ?iPh=n=78>Y%o1TSBi%s7qYr76 zg#!Gru`)SKDQUsNLqml_AqxUKoWR42k=ct5_m-Jo4b#(yf)Q?#fpQWbAq<%Vc*}t; zEHNq-fp1e3=-oa)YnWPPJ0MVZ!oQpcaXRlJ6cr=YluG8vne@u2gT?3i_LkBr6*Ld; zsatBE^P}VJmE79VDk;LyH*?(ivz9j>x@SrRu1p@k)1MzP_1!&=$bNw{J@UT)&O8z+ zW`9!YO{N9zWuQf=??gS}&lEbcwb9Gu>*F*o{gH9^377t$Y_^SG8Xfu>E|yzh;0DuT zaLw&l-7Mwsz*HPaLCYLXZSqmY_vA4PUTEO+Y{l9wdTN3Q>h?aBo1a|*_1|D zh=QX(k>)$0ty0+K4_TVI3z}+p>6deyK2BYQw;&K^w1Rv{IQ+T6_u%|RcGbgo*>G&q z)MDTpc3gJgZIZd7+=DZ2C*&H*2?^U=TX#M^TbAZ+!|{_&d!$(&F*x>o9_7N1{D7>F z!K)kPMAUlR80gjqS3t_|04_qJ#33Er;F3+y)!zvC+U5{Q)nTraPuSwtt+bBmyXzIq z+B^9REC6P5@aGWSU}moDxUPK!WbX(c<54^dFFBQ^2QagMiPRuJhu?PtC5aor%4k$NSXK-Zg1}$@$qzSM`{7H|mmJxF zN;L&2ES-opvpuctv-if~H-=-c^vn-!f7xjD^Gp5yCHkYeanHp}3nw@0Jn8iq&=bqH zHt16KEO8IgxRcS`m|DR4^^=pjF#VnKc3v4YVYM!|7z){8dkp0^q#)=UuoICQP}{{v z-N-N{U=BQwiUa>Cu&3gk{L%lZg~L&;bG=Vn@f|~YBxE_JO|M3fbRJu z9QB+}$znQ#f}ln1G=NU96c0A+zV7<-b$0nnjpGUBO`(UC9qd-tDr;T)>Vjr#u}-HI z_&fzgi3I_fm6wK#4JFs-_yBmAQ^Xw<%qMD*E94aP6`N(3IY}_rYpKHliRT(Q=j9(V z7?xh4h}o-pC2kVBwwG+y*{BHPS9tEg{gwpCs|j9XhL|_E9z`WUpo0L7&^CW@;NxdC~d=f-uKsc zdF=Yq@ot(?MgnWC&UGYy8&-5>a%zEiRqZSFBV;QIL+c*2psm z^>vc7&>E+IKJz}jLf*Lk*S+Shjr+_^%M_$v(l2>^?H5~=okgwG-nlL*HlN~>KnwWk zP{_*vouXI!wKkhO9~K!?8c|ytghYD6dk?`|MES?2yG zW=-V2fMCIFcelWbu2K!X^PeSG1h6w@8nxwv~5uwYu`qxibmvbJe zTD6Z9JGgO4deyb~iT61YXVwP3vi5vAb^dL;x*xu$PSyLI{ejOr9DP@ZM94~yTUgdz z{6Mo>;r;-Adaq9@j+^iKRh{4h8l7QLnUzHo>ZY^3GK__x=m>!qCUy_}jq^?RlNnzz z7{&Ir)`mS=K|3zqVQ`cjJ+ol48erSP|Do=8EDV>fA#T0|_lV-RcV$hg1eU${^oBDc z(TTt16pt7)A54xYLZr7g=(y!$Oba|Tzn8pC5N?~a?QY-}$i}eUOcsmcnbozF&X}>d z`uc2$&x9BhMo>^zYW$}DaAO_&Y7JcLxaY@Cw*@;(!{pZ;$g=yjP9&U!m%1aXNPnFO<2EyJ7QX)LEyQ9blF{vYFZ~wdDOLWOXPiIqsKb14oI2&0ILkP z_=XzX5zp-+?dc_sYq9e4E}L>lUnm!eNm1cf+h~o7{F*zW>&Mmh+~g}qg7GQqke$tH z$nU=Zh9;XHuL26Y#)OkXZ@|3kE+m0cO{hxhq-k9%Z#XLxXawIFl(0MB_`jTJOWHFP zi*P1K?5^|-7*ev!(OL#D1neN#Qv`Np@DkQ4jItz5C|*}}k4C#XJlotzhZm z4)A8a6JVXpC(42`2yHNS1M-&N(b@0eTVyCh(qNH;h=ogvjP(Qcz;p82=qFA z_i8zfDK+@Xo0fhqUF$=uTIP?{Po6AAynkO=2FQfN8tJXl$C4;<)V$8k6M*836pWat ze`zVU|ExtSjoQ=FwA-|~!Bk#$tv`X>LFn`=zg?S2z0+RO!z8#R^|rrtG<<&9)e%TB z7#5;-qbB{98g)JEcsev+Hcy9^GY7>h@jO4a_po6MBzdq^@jw081oHQ!a}T_dB}`cAvj}65(PHHD^|XG3Noi}XR`4NQq!c<3H79CZmfr`9Jc5uma)%(h z#Sw6+L%|n0)pBfe@wYz{#MTacF>qK97fRxmUtGd?y)vIS**#En@ytKhdN`n+!+KPJ zeYD!|!-Q|xEx3f0ho~!jLLSO)L(8x2%(T}D%}LXcK^&}3Jl_Hf=zY>RFFo&&TG!zB zdyiMV)%5Ud-5Y1vV(iv*0IWWlXxfGNJySnS;sEIv(5$7JHXCwhdB^=PMpP>dH`E{tizp=E5Zv^sbIjF!)N^#pGvj5KuI_&JR(Zzb zn;D|FDlFnzy+HiaHkUimx~-8ouhJHsUfhB`5Q>>GZu+$LiC^NC75C zklZ1DMG9iW)AEy_$!5Y^S0=D*`0S5?9`6Lwdzt{DD8T%Z^S9dLE!`b`~D_ohlju5?pxx% zvLP8!l5+=N_<-?wIbPu2{gZn6mWiy%Zv~CqhF90;WtCzrujKxWfHit83A&%<;EM2b z&;7E4SQqZvP;(n1sOvQcR7%0Wz(SI~AklSC5q4SmWF4%bF#_7}Y7haKCixbGsu2G6 z@gk}VLjP?FQ(sz3L*>Jf)ljdP-K+%C;=+1pos_i6a-@R)$StWrz+;f(b^p$Gn+q;< z8e{;J#);vCxt8p$L zCAkHT?2mtUB+SgWur3<{JX{G^ll^@@k^5+tcLnzYC7F4nH!`a({ztnabqfd7-n zdgf0o80Uufl-|1_p=L4FbpDx@JHgv-3jbt#$leCM=jmZ#)EGncG|Xr6^9!>&5D4T!nR@(!`2Q+*2|qn$dCej^ZMI~J_gaVt+Io1> zJw}5`SlCz;Rao*);sd|e`@&g}B^2jk_ z|0Xt>#M>n$vmNM}=VzaH zC@YP}za^w%fxf*VYwQ0!s4ayD0+{uQw0<_b_X#4#LeFFB2cMoySbQ1M+Vf*4MVfm zWAa6A;&(5^57n?r7djuL7vBfZCeikdPm1A`M9-M7Yv_LSn5!dG;?a~C%u`(Pxl?he z?sI#Z@?UYLojT{%Kgf{w%7@Gv_B ziR{Be?o(n=1(#_Y`@FF^3=&&|TS0-gzsMXECRzz|z|IYy5DP)JhrwM)fJoS$ZnrZw z4m!)WCePDds^j%!W&nf&n#S4e6VemShobaUVSy=Vmr(|*(6Tl)k%dg9wI2x`o7yO! zcR#vI8fNE3Ps!gXKR;e@+b``Hv&`|WVH<(zJ-2j|ezVTf4Z~Fb(TyjL_Rin)i59ex zUAuiu^~TrZF!gKrJ7UYQG+RF6?I>wdeAv855R}hnM7>|g<_%=f`3g89!?$NP=@j^| zcQAnh+irCrTMWf>F6kCF->n#FWUWz}_G{JJDeG~{TjZloiAbx|RLr@GdwJbE@DAw9 z3(IdyDb3Bh-`J#(szU)Dj@9FgD}nFN30GyB904^~f7>6d&oboLh3d`VhX^|~R*3=v zY(}SqItUD#_AU;BjUF(Nl&{IoRV;if21*uVZWm}TYXjXkUwc;rj5GWh)skW4!w~>w zONS{R6Xy^|B3V1DjZ)Jl5y-2P1GUj#?;Bkp5qXv}7Mx zWOB8~WY=(OMpWw8(?ut?Ii*>Z&O>b~&9thPYkGmGo}QFM#GgZeML!Au>ZnSK9CqyD z5vx!utk!feS=}NLbS*!8JM{eLe(E1V|ecoK@Kg)5FFe?9EEZ^3I1bR>%VzPs4-|>R5jAP7yO)WF}S{$ zGAYL8jO2W_pZ~e6vQxa2ybWz|En?c05*QcRzIAu;&jrGL+h`K)z-|I3yTR4adTp&^ z!4S@LLCu=27xdywO2324?LNsUY0NXdMUDlNM!-DrK znkGwkPnegi)pv5kw301TBS4$qB^a)nD-QnWAWEQe^177~0q^sCPWn6}$q!&D*vPS3HbUyQ2cVZy6?)1DTtr5^$OoBY zc9$H?RrGdI4(0#+sgqS_apA_!?wyVsA5+Ja>#jejY*4!&j5fVBxl$;wN zNQqO6dDH&&VSI}}$C^6Jd<9R3&jJ|6hB>e>cEARChB%cYzrI6f3A>yCu50AB1tDV4aSaDLey{TBs;D?}xRe<5AKp7EqJ` z0(BslXpr_y zhy?`aFPHR}hw%oM&Ji8PRHK}+KssU*Z@NN9|Hd(8AP^v-=)^AA+6Bek_JT%5cQxKu zIVJWxx#sMbi1EB=M*Vf^nz*n3?JBbuc{f^X)MZ##E%M)dzvMsNKRv!TaR2^?s^*O2 zmv2;F?tOx_%(ySB_3G*-uj$va+a+NJOPim;l2#QJar~QO=U%~X*!~25o_`>;(*VHw z+WrUmdhV_u6{w%2bISC~5LlIgi6LiGv#{4OgyBh7@vvdR`ltr8McmJl;{ z54~(cIJCZ(rQda-4A!2Y$2WRgXb2ruxBf&^-{N^gl9OW&O10PIZ}%a*(~I!EER;=d z2nexi>5N;MQ0w2L5i4>isJ!E#%iG02zi~LR5iH#4jQ{9?<@%2*iPDFCzAm1e{I7-Sd2vzgQO;I=Y)`a$>E)2q>qY8{aqj3#oy}ezJWAN>_W7-0w zarMRxtp7pXn}@~NzVX9ILMon+B!dt_NQIWMJY-8qMT!@5w3hwKsk z?F2{8I<qB(e;7i&-|7l#`>q(amhy<~^8y@bz`1+XR zAd5956&+42iwz9Og)>CF{evH!Dt>p% zvi+O6rFA*W!!p0VJ>ltCubS~ejgOlSjXn?Wc$k00pFY&GHH;m~80nZX(<1L<>(CLc zcQsq)5c{OkG|RS7^7&<=7NTKSL)bp$REgq$UW$bBh?FijT~>Ygr#{T0@cGbn+lAtJ z3tTr#zaWZZBT)GaU5&-OCKHq=_B9H25m|Vb?D%0Z9aCh!b;}Y?@Z431QP2-ZPm2;`~GpCTIt3p;S%^Gr;ZbP}M^J@8Jii?AfR4@7tuiJpQfhe7I!Rti1UNcKRb&bfBe{S}yIE z`Dn*Eg$Di3TIu@x5fWCztfKa?^!iA*+OIE?915x zd@_~UpMIOb!9g+IHl9I|o<*={M3l_S=W$`i|3fwY`RD)hjka1Mgcfg_Eq8a;$@Qe~ zcTv{zY&w)qEJ>YtS3`z2y>f=mdBZg3``gnvKC&^H+g5)z!X8I_YAdD3or_oWzmymM zJYDv!-<#wu@*my|nF)N-EXXQ3h*{wyj~nAMXpQRSN$O&mm zaP^hfr$`fz6Y>FD&cFCFp9O|GjB1~kcf1ea(^#gp#789LU>(-?-adxk0Rlf2>m;l#4 z;}F3JI6qtlb=<*1%BR8?_dEYl@yA4FqmjaZH%w3iG-UCz8ULf%v}ZyKqVoD*@xLb= zK7Z)e@mL)o;te5ZWsUtFDz{vhLlOQf%Kr~H+M*=jb604lsIb^rEe7ga2z(<1oL>9! zMd43#vlExyl3pF44lGRECV##V+ahmndiI~&nunk1BqwQRHD$h0H}={Y6i#{^+RQM! zyiV)m_y5l}+7csy@8@8r?gVSOXcb(S(@#;J+H*O=V8!ROs2{0|>7z?8zS2xfkmne# z)A8HGV#YT7k`Fz&Zvl0!=Gh+`JFXcX2w8ZD>w7>g>;e4t^2clMt~g4G5}SG=G69o= z)G`CQZjXCqzz!NjXyNd}q;^jrG}Mhqfek3lW?%k~qaD8Ab}U-etK~-ge{Z9$Imoz_ zZhc1RPdsqX?BZ-n{%JT2K_?-#rn{dGoe!Rs-BlEm9~POrZU>e3A?V)=9(Q9puMQ1S zUu-No8+&vY*0*wNx^qe)l&tsb);b*9eiIw%F>Ule_drw!Ox6h0ch@lf&Bz@4w$q9W z%*^H^uel13gJnJpAFEFUkrLPK@0m*WlB zm!M76EB!*bMkk|_F+#kxPg=2)vFm)xvzpoW@iwpKh!Q^`>!DC^b9TMute4L4FCs;! z*Y+>O?qL5SVnMC*u)?tBoEKlKjrT__OBH_X4q#Ilh5_X)KZEX!`Sl221aT7K2T|#I@gT>0Go${9OrcX@;yJz&tNzlPc=LpMQsc zrDX^;cmLI#&e|zAh6u|4e&P-hCrU9%@oC_i4J@_!RKp_&oRf0DeDGE|o!`*%jmJuE z3~vYQvUkO`f}QV2BH3FbV_##yqMxE0cj2a&?~{YPu1a3YdA*qKeU1EgYPM%teWtz-lOOv^BE1VIOQd(u;)B^K z$^7u$6NKcAkmUL6+vj7>e-|um;LI-nVWHlep8}rD2+14bKM8rFD-OfZIMkleL8?S< zctUi?2=66Q54X_L7fymsld`v*$++gH2tDb)AMH-Yp1d(msIoqAtg}K_srG)Lopbhi zVU2mDSJDb<_e=Vkg%;m$27x0Hgj`=o$n}p*n`Tyw=2W;EB9)JoBJZw`87L4wPC{)IIl2h{CO@k2kNM_?*G!UsIbcgRW z**ddS!P2{H0X5o$VR_xLsunL zVju&WhD-$2SVff9xJSq6r7n z%5w10aLFGn!|_Itimce04E=l+W@CG52cZ-i$>M(!c_koV2}s@hKyX%=qoenDt%|(D zT{L{3a7Y2CRG?>h1yi}zVVZOCW0@0mTDz8gvEJ-)4hhTZrO0&tIPz&*f#O`hq>T|& z-{B5YiL;7tbz;V%IFc6AxgQIV+O;)C!?ku+^nu>{;WK(!=}*Une6$crhYLE~e_X-; zfeTGo1OHjBIWNs?xo7$t1><-gDzJZ|kZBJFqnL1fSR54lWUPZfLJ*j%&?~cH=ax;w zsV|5AOk(QRp-y6KN%6WWZjz0#$lY+W)u+4fbln2-V}s*s3h$yy!2wV*ys@^3JySpR z+2h=eJJjumi(;7ck$-Rfvl>hMRKAN#-MU(ZfXwwnzn-+*K1ds=d#H81$6_& zqgC(iEgX+A;__$go6e3aeQ$bBv^;9IVl*6Q2v4blAWL(oc7>!7*qg&J)b`W4Qb-j ziROY%^bs4{$p|xQ7f);eaaLP4#v-s8b%#>!7neCX2?crG0FGq9yQ}=cF67ayYQdcS zkM_mYt(~r6=Hyt5ddVMum)@Aa=3t70cS2|ob5G}kj*GN=hfjR(2`@KKaLaH3kTN}e z;#hD9 zkYrV%x=I0ZS$dd|GeyXFHVIR>Iu&@<1LYqt#ZkKr`ffsUOtMX91X(x(mpWXN#`UFo zi@+}I4^)(y`KJ#ZGZ+7#VC#Xm_tpy;vuzLB8Nw!Vzn;|su(&EmO2oZVGxcU)%*o)# z>(ARSW@`m>m|D}SGbiSuLQ zvmXi~BLKXLwF=n;u_8Yl!$&>FCqHmSSjMvG(?XRAHX3K8X;@GG}>nu6&`jwr^B6;TwMcdu|TqJKtp-$d>M{h@= zXO?|S_hv%tS1Cc?dX8CSZuVNnC*OLOn|swX7K_msq4a*5S%w5ljvK@q+uQ)`A<0|% zLgd-YUInSY;8FaOAY}l~>9}#=_s2Vqf6Y|>K<$%X;~Y)1Vbk7opsaEvl}xazQ_ z{+%Ypz?2G}uga@{Gm+1=z!|KtI=DlV;*JwM2i(Pa@EC9?*!*0@_2-KN&W z!}}T9v9;hGa^mV}hUzWQel6@yBW@+zhDtB>cnP+BhDmV>e5{UXs`JYh!mHK_KWIar zj)2Vth0q8YHrdCGknwIiG(v_l+VydWcEL*ox*03*)g^AmI2xisH)FBInoI{dy7dQ= zJ{2EX6gPgwKM_>sihn3|kte?HV7`fVH`eB77+$fVXTRwNtYsu|NS$cWa zzx8jpVC(oRLn{8F-+CFoZ+~V|T6N?)@AxR6*B*?1R$jusRT&4mtVx~N0C4qLZS`e| zk93K*cHr~=R+53cOJRO5FjIT;SSt;H6wgaD?%VE*Sb6HCB466;$?ti`Xp2vDlJbJD zSxRlR>l!dxma1uX0`Z*l+$5^o^~$dGo^D!^^6h-jL&-S=--Fc$YwrMs&vO9%I-D$C zUjo}ttW&~ph_a=89hdvw-DmgSeUQMTY4eX@OE$R=Ql%7oj=VlDjCgU3ybvFzQ zUVfpry%M3@2O6EBCbP$S8J$2u_v1j#=8Bq(^^Q&W8r%K_da$u8_$6uV`YrmavFp8w zB?H&kp7)Nndv89Bud%&{l%lE&a(D|^d!OAy3|EqO&btwIc&bqD$pd6%h2QiS!w)Y+ zUpVZ!Y?e?OY24_6ZETs0tvOyo-1M2cG&?5x40g!x&JJ%ICFRumhf;>W+vPF};eMz3P1N6_>aHV?%nn+vo$k8a zM2it&5`a-ho<%W4e(X1kH#=@A;BZxAt( zff>le&%i{o$CfN)9$o@W;z~wl_QH_D3-|XHZkyq}rxP5%ChcHJ^`SwkWrR-8N5&`-QIqPD|Elh_AW8p&ey{1<-=Nre? zEE^*WHBGL<(XNGrR^q+|Pj$5eK~htpAYLTg`>}m%@GN0YliJ|@xAmc|&?i~A*~&lW zj~4*$nS4cf_WMgB8OfF^`T}LR{l={D3@!U9ScZY0f&lYQXZ>nrG#3>`Dm7Ovd{cWM z-inoR)m3M3@)@|(7WH?!H`J4E4!gX1kG$SZW4$UQA7<+=-5lF~FiPZ=3x84=1M@f7 z1Y_|s#-!po$&CEVodO!i4RR{5&FiH`GA=;-{#t4qToVa%LBy&V8 z;(H`6t~PLoOjJj1UXSdoM>=bs1`Kl29eBQWMnQ}Ya5!uIq*(9$`G!#O~cpP z_FQjGW60a5jZJa8U+;+6H?{s+_aDNp?8+$F=pUDi=dqE+<2U_D$!sL2*th;tL@ zfPC5I{DM=Wx0)Mrdu3H!i2c3qjzSV2-!cfL@z!T_Mtnc*qQcnYWL^y|&`# z)cxs_#ZlmC3YFmIV!6H>@J%Y!L&+{oP2Ff)=41cc(`i#zv;tcd9(sIaw;>eAjkl+0 zui#o+<;9qz*1<5kzL2`7{PDY6P<`n@71KMO$LWbkCXMGD&tLBObn*hv&$QOPUL zp1oJZ+Q1?4Aek*W!bmF&3g>pkfzL=A8lYL=;_{1y6u`4Q2*I$BFn+WviMhZxmWzTV zz%!|URbZrXLX)!yX8mPsHcLQgY9=0hetkAtDM`(9ywU?=!Y#$@XEpD`PA9AKR_kL&#(J=Jvr?dL>hsBS=LjuR< z{O@ktuDr!XNcc0vj|{O9j`K8fzA1WpzG+%l&EX)Em-0uR7?o{F8Soj+zWjf`KiqW~b$QcU6Cn z%9WR@-;jR`X(lwtLLT^WBTw{V@n)Iq07jV_j6q~UIFOCJA!YP;%U2z!n!sRF3ML*( z9T1YBnZx*#NnVu{s5~%JAJB3Z5{&3$n2h*x-Vh&B@tec%Dku>;!YwVcR=;`ZxuWk8 zx4PmbbWqmm7G3raJk9kG{T{x+K)_ml{Bqdz)qL?L=V~PTj6(!$`r3oy`eg|t!}(Pn z&Tf4wn*%IGa_PPi{wX&+$d8!iaW#{d1t}yI{@Z%yJB#s&0y_J)HE;+b%uPfMLk5Uk zP%;Jq9T)e$HMcn7!O=4>YI|m1c9u%ZtSn~9%Vk9S zh!$oWv>5c)JEd3FImYx7+k&H{_#>T(@dQ+<7Fl@{nHIyTzew(I+r zTj*{Lnu=bwAj!~0xsEv;rVN_k)5B>y*y;mwV2S%z<{&b!Eq*)R`Tbq$YT%zir4D-0&jxMN4v# zJlF2my|nmvDu2~g)@w}kKy$;~1B>1qGaY1++Q{2B_<8S}shVK6(kwAiIm*+dAhp%z z;BKv?`?J=aIhwIVL(%zU_g)8e;wKyPwn) z*tVC>^7R-85MXluooR!tEq^vHz)iPBA9*MR7w0yPb;#kM_DC;5oQv>WTRa6GV>~8R zZ#})3G-GixE@8p%aS)IbT;6<7azBs_lQC14Od-S>0n~~im)$IArHo&C!45fi^T$)x zVoU|gX(2ef<%#$@8!U70b6MvURN|L8e1*Git;-o6mIu;#m(I=4d#zXeiz1>83Cbkr4{4 zksH5{bdUuQd&+JxSsk_VhN?PD6#scCn_yb=?*VQK7R@0Fsn|f^IIy@Y4PQSg{`$e> z49o;KQ(hv5QJskGWOzXstCuPcgS31w32bcf#<3%wlA!tr{y6X>_$x8DF_0T@-K_zh zSkZ7WcEbxL2Ea&$#YcANT2wWy$OV{kJCOl9z|HcU{q~X$uum-B0k)8-fgRv)sYKR` z(rlR%_uU6RwbG1z9+^DW+|cQjH`Kry{!ZA{!=)tXwMg!`D<(xHa`E7$5l-0rpGKEj z1HYM=;)4GmEdTw$Zf4b`!%m&iedJCwn+m5t{w%!RTFfR4YMwL^h4by(vGd}Ew|Hre zqr{-=gJ5tHkI099%AycHV;%|>z7qII{0u}Xe%LJpdxCa!54Rv-7SGcYK|ni2Ewjrn zXC}?KAZ1y?#kN@|s!50UD$MeqpWvfk&hHJhG*HX^-fuT5`Y2NoH{5eAvE)#s7Zy)t zW^X3lT;JN?pO*afRZ_Bfq<RGR($_7eb6F_hfzNW$}zp;qR0tM--+-PXvFYQp~_#lNPI(IZaQDJ!yoy=rVBAO zAx(FSZY*CHx@p0lDWZ$%8Sz9zxv&r1E)p;ppml_f1{k1a4{DDr)zWd4+vLDG_O|ol zF6R1kZ!)58J6~@|0BQDiBx3^}+=0p%9sYi)tXNmw{bA-8HW;Zk$-cQMT$95DV}j?& zL?x7<`Ws_u8nCU27-6r<#p=y#8D$HTXMx@q9<~rPP=P`b;&GppIzD-Hpb^KnxKvj? z8eIkjB!c286KNJ-e2d>K_)y_|=O@d==ttwyhb<4R+jl}=<(JqCR``gJ+y{db94{h5 zt{Qb!nRvBD4<#OSJ5RgrENMT@VVMv`#QL48&{o;=bP)r=PK0zF)U!#8TY7AM>6)UR zfS7vWGk%{({qMx@&{kOn+A8lOUbuFQVdwy8W8qXcua`Ze1&(h0UE+lAfsQFf} zDL5bT>15NG|2%$0<9cdN03#!toK+T_1H`c26I+g*n+geoKPGHs_!9Ai8fFgbUP;&x zzcIWvTLg`j#{()1pMP+Y=PNGSicTO198e%cz|kAFch}E!Uzn8%lc@}V&dS|O%{MP- zeD9FZWUV+cY%U~`+iTuXqQl1BjP4rP;S zpMI6gt3ECyfFW3DLWIzt>p%3P2p#g^NyO)9!(KvKZvwpGHODyOX3%ut?78B2o%KIc zaN??iIKtwf;4TJi`3zO4)g}D8_#^iN{MuzA3x#XPpt16Omx`4mo zhl1qD8QfHpB-b5kHvjmHrd{`rr%En-CS~? zXRFeNE!X;(Tf{|V2l#@VpA8ENs!R!D)b<~8BlI&@Ll6)-9Jgm-uSjgI>|mFyXuV4m z{@2A~e&XZUZm07>S9tz#xo%a$90=$Lr!s|H*qp@Wy1~4;+@ZBFQuH+gw7rpX)XMy!CulG3Q8ps4a&PcTxN4n$(5pI6@>2Lp_FAqap zK7wbr`#fJ*UCK}W@mc@|jy^^StFbKXChE@BST{G@L=9@x>gU--v_P~tF&I>P(9=flb@66BT_c;?q4;f>ARnAFg z0hU(Pp>-igd|9z(|o8BN>y__tuM#$-g-WrPG2;9WbIn_yMlaTp+Q*t5pX<>&E&FC_ z8(!M)ti zA{Id1uDDvo9~!PUgZKxUDA3$dFcWCx2En$E3nIBz|E^=pHRIQ^Hm)dCbZ^V6gXq9;lAU zFL)M$yDaDCWAC>rTIG2S=uICb6sRca?ay3fms7luA(L|1Z|dAP>C3M zx;jQB7ebHZbHN*Nn`HvDS+<=4;kvqY<}nD|G&6NS$+Rd9(2v&HnZJyBKL?VQP?t^o zD$VnZ;t=5L&5(|5c+gS;o6BYLwi26VywV$jdR(CqZ2AVm&hYwv7``c0c`PX1{Ux&e z)==)Sxw^@Im{h(4Cg{>RkcA?4Odg{=T*@MBeV)EQ-S&Kobr4tF8g3yb5aTpLu3Ofx z(asu=}ri3U~@b6l%P^YE#qqEa59I6&WfW zL^E4pZ`jHc8|=zDy*QZFWFBMjD&#($o~Y}>7WfWaYG63=HvGP51_!R2dUjY@$VBw7 zWnP|1F=MB9xqe3;+ce?5;qLQvWCR|5f*zIynm}okQ8@yEa5!j`Ip_u>JL8tBM)W_M zEs_y6>*)6@ zCnqzwqa`pAFtH9m{fdk?*na$6<`0KqCJDK{9EFMNYhD$jy!9)Gj*dTSAqW)V^4&33 z11?S$SNh;FCw;5<%0vCGYQgljk`mgyJg{?|QMIaLbd>;jf6(?o*eeNyVFFGXAU-~p ztQtKxYApovmoAnQ<~r1;5g8!LA4lZBdA_h5q_enn&^Y!UPD7O{4%7+D1C2sJ0kfC%MQ z*dm_57EkX^g0LQ+q+GWkxmBbD2NCHP2_ma#DB=64PRma9UGutokdy?!94XE7T zHQF+;^m+Pkt(PO_3I3XG5Z_HHT6jgynLlNhP4h-cN{{@zLu~WcK3vZA@qM`Pg*qRb zJKy>p#;&~&&PolFtl>MD@C*9y$)h*CZ^u+fXZC^+0AVZaATz0hwNmI&%l zcD@VPvhs_!pT!Vm*D0@Cw2FYVKWrPOF26Nes*;?#`{DKYnZZlY@dXN7U z%+r%1Ka1(jHX9$&UO!-V zI-IY>L0{G&f6-CFkk|h$C4P?<#}5O=Io{!&GZ_$JPGB_2O%)HxqKx+-E^Y+#YDuG% zQlRF*&b0PT>^A}TBNgq#FC`dkA8~VYTy}=-9)BY=^2?L_jrE5bYmSwr+1ACT+55jN zl<8ULPt-rV&6hdfslu&E77yS)ut^+m-PhBl#Cf*0iqj|?<_EF@AooIQ9VmC%{6|i& znQ8w(4tnzNc@Q`|3m7=%u#I<=}wUNIJkskk@^OP zqcNA7$S0iY+19EcB$-vIfc_=p=Z-NCi2Z;@3h%r(>M+@i5@~X zkOdCe+yK-v$*WQXt>kr+FoH28N$^xK4in%@LBh=7h58H3<77!8@B+3c2eU9P(h7;x zzbI??uz*nn`lP)tuaXN0X;KZ`L=#B%;#O#ZeIO_&SfHtCyOVL%pD06Mb{!*>X4mfA zhIfir?s7lYotILS*u#m=^<@anqkRy>w<5?RIfmXLyA4HgtK|@kV@#g3^#_M8SH5l} z^rF?lKAp6E$wL@z-r`!2g{4g5GCY=G8cGL`T{MMswK`aLJ#!(Z`=6Hg$%o^T_F2a4 z2SU#k9P;EX!|1vlFeFmtR<5mkD2C9Q*Ox=EKxrSNPl6o==$2c6v`G~`eaL*c zQWs}~HN3!ue-;U8@bf}2{yF~Rz|X}YY6y*2_YW-We0MS%_4fDguRmL*8s94N4K62+ zpVEIK&LuqZq#sPG-mhY%h^TIHGB~N?lVyI2?NXxtUlOLNE`t19Y6~B3u{O$|# z%V!gb29fK|%=Vws=}r$k{Tnum>8&^WvN7jNXOf5a!sNl&nl%vcd!w|7bG|bZkO)9*`jTy0z1ftJop@OaLh}sU-@+gsD-vC_s+D|q z@bayMt6-+$iJgX@+04>h0&chb>q7K9%TnBKc_+34c%1s(ZkwwXxDy+D;y2T5?zWwC z26a#E$D%f~mqI!3n+tDtG~dSMyiU}gV^l90Uc#xRP|iyT&YU?GER+RT5$pRHmry`y zvgjSDV1)+(LLqT}RX3>>G)D>qN-CQcA~emEh;XL6&DnB0Q+eKp5Z$I}(1+}7*`idg zNsN)1`Nj($mz3PsukbT592+B42iXO1*%dK9KN8y}(HWjDm+G@e%3VYoi?jtqF6#1r zsVrdpE$7WN#PFde52s;<;SfiEOyajZOx_hJBziBa)_4n#Nh@*m*HGW`T;=-^&<%_A zykq;;>G+&?eaCTzXERlkN|xc;&4fX5NY2}6a?5apACumYS(phN}#VJjz!4dWX4a(;&+= zyuj#%o$fWL=N-iLyp=-{Tf;FwtVe#9BDFXpLpP7u@;!D2k1;xE@LRyF&yNg3JQWm3 zC$AiEd}6No^im#U%D4Ig8QgDKG@7=fIKI)cEm&*dSo`aRxe?QlofVAhKV0r;og3{K zf^)4Xd){3B_-Vv>Zd&!B>!c&OgKuKj|UsYmyUHP zd>To!1$hq3fFENbJ22f#pMD<&&hhrEm`CPFBw zrmQ6DU>g{oS@uH5*md{2+?48h-G729PCy$jN7msiGvtFH$mzj?)!iI|0OjH3cMy^i z$2$^1*oo3a`-%TFy;{OnxO^@ST)gm)DCc4zmRHUti6@Uhcpr$Tj!g;TyoCMh_nI39 zF;VcLMXwXNI?0dyfmEJ&Kdv3KKV-Un(#D}5ypfYK9u1W(bJQD3NoNML93l=C?v z^Yo3w(BliPvpJ7O42+NUswF^U`TjY}4NLInWSlDcRYx4Be{>U-U~iLjRzbqF zfSVnba6hiT;=`*T+^H3usZ<&hO6)W7%ox#Pd;6>xk5aK=>q+(?L1k%B-c(FCe=?qd z5UKD(a6fJ@KIM>$^j$0zP;(Lg8!U3LocD71Q{_@1U^;M42sr!fgS7kID>0m0q-n*! zK_!`EUei?cfa&L<{UVkK!iNhwwI0k*g1yt8w=^FZH6k04OEZ761rH2(n>Mkcq-@aj z`km~zVo;82dTqxypunDj0!BCjWvhSX%f6jUIA~D~GST}K&nqAg;f7pU*m~mUO)4sU zghGrhVV);4rx6&$SeIJ>79?b(O+lpyNoVtF++al-Qcgoz5YPY@&>rxt?4FOhg-7iM z=kD+ek)e5;cJ=>KIno%L6M2p89dKjYy-ycK%e*Uz8s_v{7rkyXA&|cqQ~MRo%YRpN zQ!|;@ltw}+>_7E|bk~0rnb>#v3D;*9Ft~;d`H%Z9tK(oma#WR|%iRtzmrz2APCJzS z8JEm4Y)8mRlK{mF2MJ<^6Z$R-q3<&0>CZyMO;ALPb8rFd!WnRU45<@ztd4zk^NJgL zbkt%0bDjE4pJ3Mn_g#+C+-6Ym4sC8`FwjJg6UpUv8qrrALNN=OpaHwt?r+>r*6P{4 zI8u4cIH$R>M)jQ=l=YrBG4T7jRxZ*Fi???_^+Wp0wCpz-B!;}ZxN8DFihCwRS4`|0 zN!(obe2M**`C{Krm;;@=p_ePt3x&PGZ~s(F#4%#c9|q)1pqf6o{vYlM$JgY-)=x&& zWR7@EF6^A(-NesO*^AdFJQ~XvFvo`WvBErG)Obs`If3O5gt$_G(O`m}f7tP$)&lXER?n z77|B@obb6HtiSN>T+I4r_K_x%MzBQRn?;6Y?AR&j(1sJ8#~<3gZJQY73IHGEPi zUmeo#FSon+kmr(a8{*A8QqvTSeq=I8)36>9pzuNhLM!ljZitcTz14!!ckFAhGF*)K&oH%Jyq@b$RUVbs`E=fN4%!x`8()?LzH5u45L&3SE1y}243kCAL^~CS zk;ZFGWTsr>=LI{k$fcXN1e@Rexv68dwkVc{G8aoA?Cs++6eb?71Um#bRt}QWrQtzI z-S7{lesB7r0x(m}^KE_i44{p+i>z9R@?@8*gBa)A^T_u^I7ZU^M+Esz9Z6XtbqzZG7Y#Z1z8fu{SLT8T5=`28rH z$}`C$OojP`uL^hOLTaRI0bcC%6y%9EFUDdf-~CJSa5!5PYW7pa547I z+j-E3*>xk*cwt?Ad(NX1BaaUq)Jv(-^Q~@dId|w-SwoA4uO69aLmYVKQl}()$+T5*Z9y7xe`33hnIK_@=nI1Ch zH3Ll^@RE>sWn&79BqI$J{eU0Bac?XIOw|;Avp=m~`1%sm<(55_AdU* zjJb0G4Jkmq3^>GI@@>IOi5WBAI)m6k;h)c-NU9ZdlebLaX!ar&LJVGd@jw-r4!C8* zV`|u#Ef)5&%om8X;9R3fBnm;pTBF(hYxH#|m)%KBxuJE|7}>GZV8h6X#NMF|eF-uS zoV$bDGGgkv)Ww^9zs1X@EYp+lAAMDR%Gp;lGU(a!Bhs@iZALjK(ID2J6gzF3ZBuJ( z+hRC07157Vky6)g!gZD7QAGmj1bp4=y#Agy+THImJ_ zFW}}}rYQLARKc}_m*rUCD0qo+je3!A6O+{{3zYS9MSRGHsJ*b~tMCc0ECMh8>Ri0E zp>SHoamVky=MR%JKHN^&d*83~_3u~8p7|b{di~x0eR^`*r0u^9+`qIG#113I4+>6V7VPXU>|4lT)eY)^yvQBYG6PO-nNc4ez z1KW8V+T({%oQlG~J=-V45zV2I*n;puBBQm*rI%3y-T_kpnt7~6ZCol_C-=-PE(=nv zLDeL{=LpvyFgLnU{xea#GEG#xWH2@^sZ zLd6SoiL*fc?tqGafVkDG3B9ud!Hn7M3UTMLJJ9Ncr2^%<<7pN*WghQ`5_{3pcLs6v zL&+>`-|Ko?7HWP&`62nlDmI)ERgoRvPX)d?O}tt;)1AjB0 zW!-Vf?+rNwjM=Y?*6P1f>vQw)iRB5i;ss82?4VvsnRV&M82Hej(#MBlr^Wgu2yIB=x`GK?ZY6oCv5ALP*@~W!!Ipl0$r^aRN|?L_#{N zgj_q+T6dwd9VXL7La6$E9(=s=)WwANNv>|jUk>=X=Os3%%sP$shq`N2-Tor8>TsW} zTXa8}Vd48{0BFte|Im-|#X@{K2Olrg3xiW1 z6QmVhbNoTv#76zkY?J>X;3mp0IAaSPKu|Qo>G-v@&j%qx{L3@Wc1QkI?F|7B|J5 zU!T7_%OsZFUEykDlr0_;{A)m1}_nnagAm_jdEZ`N7$ydSZnkmqk*)SAd zGu)jwNY3i!5^&pKJ#=PnWpszz3@@U)tlW+4+Y0r!Q25)cFlDMbZTaDsMLK?rso*A3 zgsMlLG!@~(-+rE0_*?f!_!|_eveWL8@}2`V1jDP$C&k{Kcdj^e}w@L50~Tqab61A?&Gi&hf4HCOx_5g)pL>ux(< zeh<5sf{I2=1DNc6Xxal24FLomO<|CnBY-57UXXKsaC97J#f=M>W3XSXX>I9y^roAc zoTyK#$X#n~|0L_=qpqt%7Y_$l998|rCWE1&j|hnbDk}Q=tZXWFBqNuak3jl_F@MW> zama;s9!QBKUBWg1B#mSyCZjr0+d3Fe$FD8ylG4z>s!}!3-*T}{6rTIBFG1%%aq;yqXakI)>Qq_=p z0=dofq}&+Lk8n)VfYvG!ED%X0XydIs#A*^C+F|1DjQGllLZH@58izNMA$cm!JWfd;!9-0NP zESvGg8CKQY!NEu+)+WOEI$dq*(KW-rb7CCIwx`-R*ATUJ*Tp%M=)fMXv43az7M^qM zSYd)@ztF^lKP6~At^gk9^Ao!CGhYY8W~!++sffaM+Ou59~nP~|{{ z65z;1fQKxLJA^Q>6 zakZmXLghg>aw)P=1|nm1qb0DYzbn&;9=(~1bY5>*Qy=!++fA+oO{Clnd%Q2*LWEx8`Xp9 zsj<}6x#ks((Pdk~36IN~MNf=gzWkqYZFT#_8{w!9KJ!S}P;mpYKWZL{=lB1x&cbkI zG(7kC+aK@2(6aD}Y?_qn2+fQ*u{yxsZ=6Qdg);?sOXkL8*cx;D$|6dPH%G|I1U^e< zguD;BG_z1gk29s8+O8A{xEpU9fj6K~j1w!Ei(9kh;zHM%q$EQ3-dkDkEYA6-Z|$SV zoUOjp;M6KV)6ksTITVer)TI}<)b_1|GTL%1(jx!~d>&h&tT|HeW8C}(F>Hv>ME(Q-zr@>kU7{kT7bSfUP z7|C*&dV#IXAbJrWM8L23>H=xl#>Q;V(vQJfH`WB(8TU4c&rJ_ItjM$+%yHk zdYqL?JC%8jOTs&zss1C*7Z%4MFOlH>=eR+cxCc6Wj!2M)sSYex>G97x08xMHAjk=p z@yGY-ww&2rG~$2#%()lwwX&ZNnz5tHHRI$w5}m9pLgysB$%x*X<@~RFy>CwN^@bGM z-72f3(Y)(yBGlA4{?N{aDk67xszmuin!m~-eDy!Yx6cb1B_91eym0%1`V|z=6^C)L ze-MB#6g_g}xXWuk&B6$akSl>&;E`|}*f4-vVBPK4fW-+gtNRF83XgIrNSP!K&_NJQ zy@Og{C_{ydb>Tdy=M5GV!kn8do)jdk8aJ=zx@=s?qRF|SYDgo!UDVvX&RI2&cGjc!z=Ic`> z=;!9Z+QcbH!x_zsH{&c?1$$xD5#b@=LOikC(!%n!> z#c@KX5ng4Chz9TV{C;ZnNt<>VRx~Ciy*t$U;#`yBV@NeYU3=-ynp-C1FF9I8m4jp` zjfAulqjNsYMWqO}>QBvP0%4_CX9SzQ91u|Kc9lt-U~&IIO!3!u-gD(TmoY)&s>%Q|xM-wm;r~fTOeJX-kHx z?d~Kl;t%z}1{QV0*1$8zx8=O9b8DgIDE)-PkzoCtbq6f->U>H4P@u(S^?#Rjmv(m= zhneGQG(Gou7(r7KKk-4j^hrEqGvo-z)n`PQXYrS^)m%gnkHSyjW_&WfLlo{^$mBC1 zRQNwS@kIbp02HOpug^F0*1394{iY9BxeOBF=Q1Ef@;UzFSi#Tn5cLJ0Mv$Hs5%1H3b#XXp_7VF$ zW3O>ps+&Nf_bwMzle7<@R6Uk{g zhgLN%O{FLdk9`Ni5$p6@J4R;Qqua>b{1}9AtbG346Xf~WWMx;9A3F>gKuE^7WzSnY(-`mI(*mwjkihYNSs}K73r4-9SXwC@x$W~}a zNto-itB6>HI|b7?cy`9vbQ)Qm9WZIm*3ifC7v4Cm06*92OdpFBHU@qS2_FiZI&+L^ z`a$h);)mfU>G0fiyxYdMO?4+HdW*? zzNzLS4ftl=IJc65@y)u;(=k=s0`#8^DZ8mAUHW|XSiIhbgNsxcEiG_XM$c_!E7DlR z{lFsI3r@;o&2Y82cjdaI)0TNxvN-{=tL&u+OVZOGaU1E=l*yMIZxFs`n%<6d7(BF4 zI71sz+*!2x`@{NhssR3sJ^=%=)$ZMh&ySIFup`>9Vw5kL7LQbzdslb3cB(K3gEwe= z=m**Be*(vy2k$1I0Ql34GhiSIf^=Av;sbiVc{FrlmISO5%wumY5d3Z3oFrX>)F611 z_c^vp#I$4p>?NNm*7)7q`n@p*QXCgvR`sYOz(0Tmx9-B^jChyoz13;)vO*tPM)a^x z<(P*A?i-9fH2tKY-^DyebAwV;-l%7>+)3yIAJH{k$pd3jso8tLC?91NxLlWL8^Tp_ zvJ%y6Q`P=2gdWjUv)^GeJxSdy;CzDBX<)sfqU zR&#YrV|BZCt6qtI|JCYEsey^Z(~R0ZN?rjfr)@xXO7>3DAxzjckAyZm*dR78iLEMS zuyPqfc26E+JemD(Nv^T09J~a95Odyy(=v(ywyN;$+IubmlzXdo-{UP2KWC6!q!k?4 z64O774<}(7MD81mGc77%j`h&H`QYIx7%@E%gzP4DvPlyx%t4><6%X3lP@SSquZkk% z;`Ldh|L_>RY2v|6IsI+WyE(xPPBsi#2`BWtNNu1_hLa{{z;Dpel#z4Fn3q2z{nd-tW@`&QaPBmbY#b5#+;6GL+8hwK=T$ z(vjr8-X(lCh&ioXua!`rXOtJ|e0}stj^4`i8%4^w7knD{OYD)AMpiy5;h(Au)c>#c z-oziuHf|fwl6~LT#+p#s_ZYj1>?KQ0W#6@tRF{31Bq1@DvLs1DiyBL|lqDoohKNK) z#x`cI`JLCe@8^Bq_w)M`?yiraF_)Qh`!2`vJv ztvZ|m?-X?NP#5EhuYrj0xwO{wlU>S8IxW~uYfkMEsHGay0{URTYDXo>aq?L}A&7{$@H#kAX@R`Cw>I#!V z^7V&{r3oqW#E96gMx+RTaFTY^mcg}0>b`&JfifrqX0c{V(>(RpzFAQqb;E7|v&0Ju z{wr>kz-8zIZ`USIrofF(U-mR6GA(fT>Qtib!CyC~OkqY)x6yxPu66HSo}~5x!PE3W zl~s>bblL8qk!zAAqP^P>0w%6pmAq21Sm}-r|2XN>>2x4!e(l%u;*JQFzzGST6U*g5 z&~*(q6P6qLb>X^q(OtT8RtFTCdbO*&GJ?Ns6S>AGnF+icq|51~qaDdf&sMj-ZU6N8 ze)x4z*EIQA0@Gq9*l#x(m&0zv+5NMGX?G=++_bb7)un zW?3}$QS$6c05CR;O4V@*D82sTBvCCxlyJPd)EJ^shtp*Q!`cRBUd}9!dF4D!hLDdmH!G(lu91S?H5* z>+`|qQd@kNzl~z!B3}pbv~_INL0{>pvTzHEFnZ<;lR)`UWGvYXmJB%y3c|jyq*)!i z(*inlYW_US=7wM0LtK!sXOfy+y;~ftc(DZs)F7doO?A9*jf4qB`N*fpPgMNm`IOsx zxNc`y-6?G501#iNhJHZ0bbI@2Nm!4Gue=2yemA+3QaTBCn-zt0aMhJ)NKEKZ3wmmD zp8Gp4xiRd2p&ZMM4f42xD@>%~oeKRx2C73v=BQ~h!82+;Lsx=vgEf$UFl-A)Lu*LIPp37T)b zHKJRTd+zjzwbo?#+qJV5*tQb}pYHBywrd<%eC&+k|5!w1_X0Au?R(oKJI}PY&0qG7 z&SZ%PyHKu#2T3In*IW(-)_nGE5PudL-n(zzuB?e&&d)u#W~rHbF85RryLkIL!7gat zVgCcQ^)7H;`jXr`)FuO%s<-!d;|Q7O*w$R;aug0}CPhPnP(uPTVcmC8r1vOZOMb;u zVGaci>nk?Y)gOolv&WIDda@X8R^u^W0gqgMbdb`-vs4riP%aN`E>-GG8T@lSZ#T7Ex!#}NhVMw}KRv2$sA%FqR2L##V`K(q0ab|C! z$x(t6j|WNsVNt3N_>;f~U3|P7O{x|22#+pMF z#)IKKUP0!R7*d*AHi>^tXCd==(?j?uC5NQ3wlRIU{f^^}3iu$qJyZ_cQ1VIjw+8Wt zk?-Va@B-h3{$XqtdRfqnPY(Id(OXNx`RSSVPz7vDDV*az1Wj$R_hYWW=Oi{)=Ip?x z2$<6zmD-cpG;@EV!giEUx2`bAM+Ve8AJ z{9xkm-$bqWI(PSLhoJm7cR}MkYV4cVFe2p;(iOVKWHN;z*a0w692f*PnMC#7N`s&( zfTXb}2EL@LdvE~jnOw*gjB*vI_WhI&1|2!ikX>Q`6U??i1;(lAFg-~eAnYNh4f%;p zvkat(69ds;tP6A;p{Klm>oXeWOCq)UaT7dhY-_?`95I!+{b3%uM?kMJtTD?2Y#%W| zL5%uUv81?Ps}Db;hGV9tI)tApF{A!MYq!+YzSqSBEe$RSh`TvN26FrV`H^S86`IRp zpqzB2;sf`{0%ygA!L-YMeWBH7Ap;A8&KGId*{Ff_cN~(@dI?MftB|_3-DG(xVu=YV za|!O73S{?}gWQmkMR=(>v`^nFO`Dn2TW$;?WWz9uBb77V&;fk51(hYCS%G1Ugdq6P zXvO_P9*$5cY)(l5L#?o2hs;JLws)MBI0tBd>KF4YQuUqepuwN}{Eq<*uI!rCLMBrJ zQ)1DJzP4>U&%5euYdTT8!5j%SP1`LDZU(oN!Qq8#I+xG9fb?FMhrP;)fBej}#m?|D z8)K5hmBOaM#y=ezL9GWaNB7+?cgrYpt?-V@OuX%>g?4{YxatXkEu9#k7R(&i-^^^8 zEn)a9RZIm^I3)4vy(Ox1lIznNmLfv45+!hmSF3 z+a4-`O(_W^cF?TQ@*L!|{Ds#(U(2HuXLV{^8w?wc zBk8HZF!{=1nSE1cI|I5ioOve@uXH9{^(!*U;O5fzsPE7b=EPkI(=&~6-m&FTs*gVl z+LD?vZ9P`2?PpQN(>DCIze$PghW^V!{ekPxjkxD!KmYlDbG7Sa4qQ9~Q@lLjnA2C(yX$GvRiXwk^VKE-2cMta%<*fPzi zdu{JZg}kdp(&xZSfN^&R#{CJS`YpxS-Bhj#ONcvh1@U4nYqYgDb{hw$PUniX<>~5%t(euNU$t!2s$E36{)-=oAo*V-!$r8wdz&tpHb7WLr%fIt$ zF$La7Ix|s>_G15zu2U`sCPCbiNmp5$1M6lEiK+xki$C}o$O??UDI}^kfB|nT3<8~p ziy~qUTk48KWBiok#8wdf^$0;XVSUP4EvA3@6>AA)OQ1OPF!!pz@qx~yZ_Pee3-Vc( zDCtg`_6LeqOqTwfUN>K@i1=tz&@_1anfzSS@gQz-xzCRVpPhA8s}Aa;XxHl@PR;Zk zW_Ne0Bte0P4rbHoLFXLOPtpB`tp9ZeV9D8GSHcV328OckaM_#9+R=D#e)cBn~wZCP-u5zj>hPF;lW4X4)oO#0n7CNF#rdT@QZ*@$JX3r5WTnRzyo+Pi;NsTuM!d+vQs0i+kzFA~1CYOH7K9**pJ=Mc;QV!swNlW`=qO;N6!=j*23 zN-d3k#V-5|cg!s}s=aC%dARy+{Z(z(z{RHu!EVZj=1z_J1eQFk|BnZ9?B9EwNx~^d)7Fvt0JO7a zQ+5ry$h2T*ZTIDXo4c1O^JAa`s8wW`i=edtabD|zQlCnW+rDOQh%L9qmv-#uD2b^B#9r|!Yz3GHs%4(+nxqh__;iqWW ziW~#F<}VA-mjwQO>X0&Ho%uF27F3zxvF-9xlj5dcNC^R0fk~8-r1P9ArNG3|)+;+O zYR;ybk>izjoV*g33usS|h8-b}Ci2kq<-pD*!1tVA73II8qxl5d7UCd%t5AZu)7{J1$P|QI&*yJ&k@JX zhnGpYGbhCR8Z$x`X7z2l{VK3Qjo$6~6T$NKU;A7qMtc^%+(#R_zL)!g0*Mp7%x6Ko(9(p~!ewBDj23v9^PYk+h-;CKD#W`#s!?GXD&sWzUk z^t;VUmH7O|P&fusQ89s>m13X?dINWX)ME4is?ctF4+vgyp~iKQiQ|Z&+l-KRNMa$s z-eM$A{K22y9|KY%n?EyK+dtXoGd~K=*P7Z8N2L<3BbmSjk8XtpoNxe=G!0-<6FRMl zE}riyxrkjS=_w7R@pI_yL$3-{1g5r_$*)(BsI!x|u`8jM&usp^z{M(Q6!6k9uHy82 z4A-YzXQN$VpQ}Dj&fg0SiE0|ti@MqxtY4mEJ3VVY?P=8%!1+6~>Sn=GO z;)gEveYwE9WmTuv)1H_=ll5V0_upkN=S?fM7qc?!!ocM4!#F7c*wD|liV-+HV`!fz zz&23ltlJCAg%aUgz#p9bB$^Rdj5|jMhAB!!9t6Nk9IvF*qkC3SMNp5zILO=GuYHj_ zZ3^}9fm!1+Eq%mujGprFiwNPlznB%fUNZpV%@d$DwDLhVvj8L&Z9^+0wBQunos|-H zk_;7MMb5juDn5Hahke=f+U$m+^ zls|Ie-lOXhlY@91{rRXzZ?#uTY8QUAY(Ek+Mw%LnG|L`&3>KF)wo zgoIt4$KERd+p%7GXr(doiP{K%78coa`r5s%-Pb&A7eb!fI{Wr-UVE(v6y+PnaL3B}7o!Q$&n?eC}qn~$h>sH;46=3IOxNm7i$R%sMOCbkh_Vw)oE~XW2 z)|lqiPOAU{AIe?s9;rQILMM# z9;hrM^MdM1agY@GgE<=i=Tmy4QDMVVTImcEq(25qBEBEXARVKg%__{yvf{hCKP~7YnEKZ6`LJ7129ISTxdlx; z*OX2NYM%Ci4 zf}n7P9bg+smY~5%TiU09eA@5hz>8b*G_QVu)m3CFXbR0_L20#AwMU$^Iq%cHZ6vHE#*1&l}NwI zspfdNEPLtTFPV5@is`$MuAryYZo$7F4Ki&g25)6wym)u}d7phiuaU+y*;~bR_jZ@- zxlEF>W>E)~Pf75wdU9|nR(quJ=4QP^3pShw%xp6_0g|(8!JT6Q0joHLcOlRB!#sMH zdG+UX-+Zl*;6c%MIzeK@(ekW7~OOP6cB_S>@sK#V<4L8?- zFARD<{&>9J9)PW1aH&E_gnOTm*-8&$+(Oy=#@*;fFrhEshPsqfPqv`(0NCg-rKl7w z9TLM2RJJ_;cb=rDRS!x^AT#~^C-f{gA#{#KfoHR+29G^bNLXG;l@S8oOo!}VXHQM@ zMNGgE2{A#NyBM#M3#>FpeIX1nW}QcCFtqnA#dU)B{m0ND@0$VAANlis z&Z@3AvJ&3Q)8dC-5Ey}^NP*%6N5dCxhS8fqV{CB#a0)C|yYE~KOj`bp1hh%Q1=OF~ zPZXJ#aueU2+>k%xbN0^CU24F~@DE~;z!TWAOuG^sp}^gc*ZgArk5t}Iy@PX24?$q# zvUM8)1t!;H-W$zeA0+oZn89o&QCc4gQ@{=)!sPlaI`~_D+nO$SzAb>5?|c%E^dUaY z7=W}HKtVe8syt|-_n8meq_X{I;`e7?;h;8xl1y-{Ci7b80<}i%3VimAM9kn&W5&Hf zRGn>)&9CHm5?P1(aPJ=^#Pw%5Cg5xmDR7ngW(`$kmo3( zK7Q;E9B6n5(i!8DSK$0&V;U8}28u~fn^R1l))aTx_gc0@oz=!b z0g6;wvMdbqjvwa;T&X@C4=g;A0L3y8N81p$gIM^uTQQ`#sjQvgor}@ROo?k4>)~4h zpZac0>4_RF%=8RWf!AeDYs`iWg7YBGfa}nHu)r-T$Bx923S_|7RLo8= z5B^dd>*Z0=N_37^C3;Lv^Et-vC=G1^xCn^z@4vl4!8!2Q=4eN+#?2L)tVT2pj3c8TY?Y`YudgSn_p&QTj0LQwxE*1ISd@G!#~JRc4;(d zcJ3|T*+iwjsH((+hlpNoqr*${wWas8*}z{w#;FvSbNIIA-x(BT>?IP~0;)mvq4Psp z1gx+;xdNB4(vu2EaTkAtuq1^jy$LLGtu2Qg*XuyegBVsB=NGr!Oo(yCj~0(+k^g1;!Ovv2e9ijZnxN6@X~ zgv=gQB%bd2kTfv0<@w=kaWoVZHh$4tTr`PRRN0DSWXUlKXr}9QQxo?R1ld@}s#O;o z;Jv=(ZPDqg6hM>LU*aIv>Fv_>(cIFUi_u~hd+OiUZ|QI|eMYJs?rUj!)qYpYeje%U z@6Beam#Qyuw z>G_A{SjA)b&<~D{{?rtMk!w*ro7t5lA4a%S3Li?pcazVi=e`v_Gz2g1)Ob08QN|^v5P8ejwCn0mMy!U>9k{(6xEw0Ei2)plksofGg6vgHl z{V4pTd)}P`fJd;~HaGiO`aM4efGt17|K4P}xsvS`4|S=6N$T6hOxB1Vd{ITa3G~IA zR**+D8bbny-l@did(BHW=sf)35Xh5PDH3xNP}=vq5gb0`2adt-ZC>c>!U4WYO0kMrU~v2$Wtm1~VZ?IQDQT$VEt z_S3^_neTKP70fPX(B^% z5HSF+-)4#IB=I`|O}6e(kqT$hr#lECFe-*H7D$wM-s#IQDtqrv(3odm48JJ(!ECgH z6nAk;pWSQmZ}Jb0%EDISUVb2cGp4NQu5}GjDI}K>(aWuGeOwB@uMOEw9dTf?dt<^G zTvR--7!~@v+2V7ir}y!t!Poslu0coJwt{8AV&R2A$XD>yn1=LwJc~hM+6M(11{MLX zN_*g7>!8NEnC3h5UHhHWa<6s^CGeaa`s-mJ=!=P8s!`%;J4(W*tMz=v>N`_ z9d}AV<H=P%M z2Fq_&1o212K%Lg%Pw1&%!x-T)Ap~YY?Bg6O@G<-pMayH9NgKst5%|T*UScliGue^X z;N2+l;N1pj?^X=nP3@JJF#rGuP*i*9>o@2nq&UE%ym||LNuWV@3*~%jRT+9aUF*cIgo5Q$}nInHL zZG{y$Ow6p%db-#M$C}lTa%Q_=sf(!}ZIPhT9;%yuahh@+QNYXSOopk&UodVR;?8sB zG<@>LtB5J1-dD47()6Zq?33A{m))*K{89Xr4`mMh7jGqy$ zvqUY8v=Ahe$+iSc!tyQ#((7qD$|+U`kiBZF7URrv>AB{YAEbVv2Tz>-ggo8^v6Hy; z;N+xesTi9U^((3U8|BU0mZvvNDC+q-sd^oOKo=kTTT}S*gB@A?;H}sRu>bj*r9GFM zq~xXf&-o3n`W(gQqwi0agWv}Rq8=9GH5B>sBROik>Mcl+pTPZto?Pu;rtplJT)#+1 zJ!tSnVF2}+&pY$bJkrDo)K&FAS@E&(o)5;*ZrvF<5FImvKrjW?6bTPLQ9oZhoioKN zR)TxKXTJ6s11a!@*BApu{sV$yWviAR zr5Lt=%~>64CU0)nDeJL3PnA8=+#}4)8#WK6CT`%pX@!Q@1U@| zX}jF_ejxg_{8FI~lfrAlbF0B@b!)Ap0PmdKP+#}H$)9cTc~)|0N3wJ-jrOCh;i=(y z)J|S|P4BWY(Q3rs(y5`8zz9Cd{w8C{`k1_W5a@8aBpHD^HpE|DNMg$xUR;zwy4@bK zx3{O-u7hF3A*?)7MI){Mew>D18<;UVznc+5@^t4A6IwE>!{GV%=Na!&caOj$PAXAF zJAg4_+*t*Xz}VXI0WCBZUuzmV1{4q}^{5lt#sZhubxTUauZOe-zKMawuo-ign}%MR zSc|@TQxtnuoO7&ZuAzUiz%FKusbf|TSEG6Nk>YyoGiHF%D#}O*;QQO`2~8crf0J7^ zxIPV;+W*aLFAp|>Pt`F{yQ?S9N)T#Od98ZPj~)a3mr9ueStDx-#9TEJ^uSJwqDFU7 zHH}%6g0dUa_7eJ6c##72MfRJ#n-Noc*L;aCvn*DfQr^b~fsv*G0+L=Fm+cQd@1wE7 z*me<{J$zDzOX0@=4=zibJEK5b70-8r!kp#zS$%xjiUFzM7)n|d)3Q{VN!A=KY1ZX| zi5t|Bn5o{h8`+;IMT&bX61DhE>jif;*Xa<;%`ON0dR*|TvEW;S67fqf%vc%=NlLw@ z?SWp8nhQ0^vB*8;xjz$FaUBz<@5TVEW>;Xcnia#>rk{ZI(!MXThxY|y3TIiUbd(w{4sI3w=ZWhtI%nJ- zEyt2N;xkJX48DFns8CZ_j*hsut!qpE^ZMcBn?EHH@5%PD-*2tvW=u$YnGA`gevA{H zu4VAVx8>2p&)x4hv`oIYo=ZL}S`c#|7k`Zg{}rm}3|Hbjo?gq#dIAmJxK zuG*pj2xGa>PtUlpd0M-}&(op}5(;O|N7XzG29f{3uIug5F`KP@iVTpId*plEc_ z|9Vlc_{jgz`h2fLto?h%klfDd?{50(+Ff3zOaRSExHC99gSC~PnY@?oD>Y06S+P z99G6oLB_!+FK*wCA(efQx@ZqcVCNOrno={_vV)5@&=1s+7CIfahn)WKoaXX!gjQs4 ze5Zyr7Q>&;o6z$0+!+=m;D1sH7bCOzr%@!~&S{=Pvfy$b#5>YS-FxI?_VX{4#pZ(- z+N|>Qnj&)-D?I}X!-=I8M(#JRzP(Gtr>%z0umdcfjbqx*k|o{Gjmjy7#OeF_CI|NE zS>ABCc%B!G^yp!Sw`Ug-zcs^rM9wm^XoC@G+$^DC%$M85WEOL3E5N1RbIo(hcfZd) zlHZp*pIOQcK$@f=6H5P+X!yCpurWm^rR-cgp~_+bz&BCJoQ|sv@n9_%qtiv^Yt`v# z6${S)i_up?7=4@pHU)mvQa&TbCNkb1B9|5Fiw*vMX5MZiv);N3NlO#1*u z04d;ZxoNY`Ho*@0+*`odThb+Uby9tudlD0H&3-PyyoYr{r(dNz)Io)0JBtq&- z{$Hg27yAE5{jYDf{x4F0?mtrhKT`icQvW|v|36ayKT`icQvW|v|36ayKT`icQvW|v z|NoEFr{dn!2Zm1Q$A;}YRj_cqkopJ{5^faEUHszBuOaPYe`SQCFYdav5)cvYW1Ke@ zvSAE4|Ef8paaGrH9-Tx-NrN*nDIlE|6i9{NGe?8L)K zG3R%81}SLYvxMaIa~}RFOA#dXp4}Bs!id_2qMDK>SnQ#g)zT zl+3xN${%o9s6AnsczopRWEfZEce~T`>R7ym!JH=d+HIBo+2YQ*7quf6%{UpS1`~1* zPAEG~UNDz)jTx2`=Xx4&2aQ*uB!L{7Wl5=BpB#_~w2MeBjDxN*BzX-1KrKpFQ1Kj_ z+=*6XVdN5yt(LyY0B2tpA}{-Z@9bvQA9QL~CJFysa@DUTt{a+>t!P(QLQ)(z*f=sY zKx{Mg5eHePodKK|C=M5}w~m}KH8f&?oyvfm_T7MbWXS=Top$wN2BFAnRCr?_OVd&2 z7E0^(pW>~E2FXKj1+l=r<}s0q&Wz+v&RZVzWr0Em3zL0oiwCdmUzW*TtPRJe^>Mn$cb3`V< z6lM3L;}tt{cF4hN@XdbIJ*i^c3hJwPsI@N9{?`QY4@nia{_!IZk3%jNL0E2sI*IMi zw2SkQh&N(f9CW?8^=A( z$USIppaFyTamKPT2MHhOi!qdDZowqA^OjNXhuQ_uADhr2pp^J6=)vKr zC&UDdUVqo`S+rd`!90bXI16sdR7`ij9u(e!W)vc1vfKKqRMAuI^Y`%ql0WHFF=1@& zxawR>(JeDV<`P2ucMX5Y{WJx8wjsp7N0@$8MnJ7D;uMC=sfAh?~e}tku@gCFswH>F-te@Ot zukX3<6097^GJE`5+xXNRA7<=R5NOE z25djNt(4tK57_!kwj5r2778UnX@J4Yl0^~xmqWjJ;KCN93d0FS=-<_eFV`k4#}$IQ ztBu|KKp{&{akz5$G^19i@@7PA*3ta7G2P3^`CCf-pgd!_6^xzKMPu~>Gz;|xb#rq) z(rxk?z1^Yj9}2h~=JnveoY2F3uIba^*K2r2Cm$Flt!7WH8=m@)fl^Y3wI~ zvUUZUt`&G$5pOkv0+TBmM?|fCsKx6Z8?Jc`rVJQLmtIEr7fTB+8&P5ilQbSi!`d$Q zX8S4#DCD{!t46>Ou>W4~^8Z}(*SpiWX}1}=E=EAD&@PpP3~HWs3N;yAd5$em^S}x_ zwi9{>F0vz^k0W9-cCJ!zUt|6aHv)>P5C8bFJPGCWSK^*h`@#!u%=_MMD{y2Ay>6Pz zYG+T(s;>1klI_x|yHM%!VK&M#(d@_-C@Fa}8yZHmoaH(L5Yhm5M4;`PObqjBI-K!v zdTR3KJ3(>g?lKVxgZXr;`kC~_GW0ptGTeQnMj6rP0LC-aoK}-fql34f)IBPCZV7DT zOR$|{G*$hrqfTqrAP?s;-c|iyVn5JR=#?$@kvMC5D(64f0cX1Z`5AfcBYlbWNd4!{ zOem7NLiw>p{>m(Lf6sN9SGV-GN{`5=0m9#=8W8?Bm+;E^sNLhg$1gPFdK;E!qE;)? zZYPBFyFF=dhTdki(VdU>k%qxYx!kvxXh9{(G*;{~J;_VvC=O`8J;(IOQ2Go#{0TJs z5$9%77y~SLr`bdv9H1oIZj`M+faFtF83BrHN_`}N$6CIRHYIf>6l|in4#(bR`L-bm zsQYu-mtr7!>kzQIUxj(4TFsW}k+E(6hwq=`%DU%Eni~OpKUa5#^VjwNxoI!$re?tR z>+$}}_iy~m_h(Q;%LVK?pyn(5q+Yt0Sql?y%i>|jpxX!MYrT3793Q|4-xN9Z3}O4{ zGoeT5@7T#A>~79Fb(O6OYheeUJ}(O=OzY25)ws@=pL3TZRj!Zrx7+ow)L_O)c{d+f zYOME+&rvwt-eG|+XhD_v@(|k?Wh=|oUngn0v9iKkzb_`Frfo6iRKpkgw$K@na zrkw&a;nBUjcJcWhF*kA6b`fxW2em+TCh62t5x?`toc#mRsB^b;0rgK#I;rBSr9i-> z7n~+w93_z{-j>wC`j7A1@qplQHP+nZk|=EgI0%-w;a4%A`>(;hw)C*)Yx8q;dNE)T zJbE7Hb7@4940wOxP)Wf1E8Fh)p%W6&X$l1_YQ=$V` zBCXPj+`E4#6bF*8v}{K%(6in1(26PK=&8QC`uf!(DQYFoI5n(- zl^)gvwEt=hX#M4`Xz0NyCJ8*IkL5rt3ou#rg{E7GqE|t50M*)M>J?#^wK#yVTrT7L zK<|j2F@~D<3`_=#AR^ZoI*Q~gfiPpJ;<%g;!s}!qj}f=&D26QlY0rAc#!3_rO7OV@ zQValU1VRjpaTBTtC&9o#GPtCOkA`il5AR1_BYOaOlw%-8@$gY7PEz^~!{qCfq>VYJ z$(Asfc@3R?y)4hY8Juw_{`L9GN?FO(l9#IDHFpJ?KQ{OOQi%OqdVRn|#ZbRKY5Sm| ziAwjjfxthbPge=dSV#^L%fm#f4WNh5dPGBfIXh<8V(mGr9V&JED{SI9y69#Mj z{>32v#)&lo&TTsgsU+ zw!!>I3{~m_GS3dTA7(#x_Jb;?AoZ-;kIX6b3|(Sd0jLsO+ZwIHjxF8yiNB$8x$|P8 z?beFfs^0NWZOnH~7TJA%_ne-+xMtP6c#mrZu&M zdQS-{?~zF%^oPyXDsOJ2veN1q{4W_p28>%TV`h(?+V3?lKu+@FfWhhC@T6}3Na6f) z=MLrn2vGi^K>-niSZhG}TmM7(cWlyk_|@?GTr5L0ESF-#sO~ukX~-FL&l*uGe5KC9 zDzv~ZO-vR}tNI%%gv3>;{^W`V2?7@04?CgG=vsdI+J;>@sc`jh>ni-vw-C48tC5d= zTc@knIV5R;TG(I6HS%6Mb8_9|JJe=D&gPq$tl~90_>YGo0ewczAet7uzP_gSR*+O? z^fBO(gTQyd$6$}K6Pt#emD*QYAQs&__Hs(dRz^pY?jAm5pa6FN1Xo-tJ=NeFQku~T z#sImJZ$1lefm)&S>gL84HbsIkKkPI_4-QLarG9M5d;9XF-i@?3cWpj?*#^rLtb635 zw;=0~n=YAyN91biQd#BXFuQ-f{=%-(;j!O$Qh%;pW;a^kC)Td$T`^j3q(H&ke=|u=7BBX-VB<>g%gGZ&-Z)=AuSN@d zQf9BuITNa310egYaP7KyObxF~&xxZ=pbK&b`QiNcVGb=gTW(O^hD*=%je*3Z7zJ&03BQ!}hi^jhl?9-)X$s+pTZ6^jlu$A=NEF(Z;VsCpg|OsA zRT!asSIi!IH^y4>l4BQkk^lOFW8uxyq=!YT>lY;14A;M4Vk)Q6Dz|#C8*6MkMoBKC z&j*;>dGPPAO-64uSqudg!=MlN)5?x=5?ort4uK89F`HIAt&(NLj|nur1}C06p)-iG zOdxyw?#U{l1x;S@+OGyX^-9ZDWKPB_rRwnG^*RwIO zy}F3h`%13b3pXWFwG4{lAY`Lkrvr*fP71U*$65<1_AS9Vv$PjHGl3MP=4&5*ny(MQympOLdKo zruI>o|KQ@4FH(EL?1MbwFP(Wo^(A#vtp1=cP_wo(zd|!`S;6#7E73XvyfBQKu&pwE z^eZ$4vu|KZ6+NHgaqhA+Ew4u2rdHvh|Sl`lut^Ad@;i$RaFRwYOY(zFg zv9rl?2UC7)z4y4u1O2tryB#W346{kOs{`6w`9b>Ia;lAT33V@`+~)?BOsnkG@l+j& z`AlgCz;4H1EM56h>7}F$w#!EWt1BRaEXGZ2nZ}z|s$@e3HG`^tIffcbm9gRj7K@Y0 z3$DSRsfBm;Z)UQ^wZ%|h=&8Arn?76h&Wz8kq8#%P`=!K6)>-44nl;@Er-iPpZgEGj zlXI)sX?cGxkp(R3By<+F7@5W&uV46~XlG)x>hk6_)xuevnk2_*_bIHXezmTf71#DB zvM+bW^iAWB}9C{|>W1;P}Tjm}ne7@qcst3xMO->R#`CZnI%cwE7iyk%3Zj5>M3= z9KiO)AKb+GOVn_-S0rvu_Hp_qGkl`lM8xXEBwhx}h!o!LO>cY{J&WAq`ob)fIi-l>~qr75(38vjtoDXP4A@*b1271 zR~tz9fDLfo#Qd)9s>R)aC<6vo>oc$S-@jGA=pyT%C$>%;%fA?27BUz0wY2r#%1zAh z?4LTFafm$7*S95+@lNOpWYw_}X3SUf#Fj(6L*jz&^4#Jt&|4ST9KcywP6l{8DSEPC z$R}w0P8MXZv>kpBd4s(1CF%X)VtNh5XaOOj zmH6T%rwSJE{L~@cJck$id^UHHl?heHWz-&COmmEw0;T96{^N&TAH+kp%a_^*=&2_T z;U~R$&HfSX&(V>i4yCnus}04NKo73_CBXJPO#0cV4MAF;m_i4Pi_zr~Vyeg+aucmw z-)TAwDT4^3Ju(_pSdhiB=&J^!&5TcE&g29x>G?eHM;A$as4DvHdgPVfOjiL0N7TA@ zxxaTLa&UBQ^J2D^!moRBwV3z~1ti1qJ(IT^5j3$OC~El7QVoD)Ki`<+AIW|I`@^`1JD`*^ z*RtAc+s_l(@23RE)nJqIK;7}+JU5sIX9>=!9K8fX&xD6nZFAg`$tgC|$TsRZ?)xO0 ze~=HyYFanmyvjw>T%6oByDA(aZIX!ZgwmilXl%b7ZbT(?;??uD?S-CwD)}S2NgH=A zzGK}Us4~PGVy@a67-%$k780*U{aTFV$L(3hR_=AA#kr2$F&v;y|FTRFRX5)R1bb~D z)Z4uyZ95;B-E<@Wn`9Y?hCtrJOwL{Lc-{)#J6U-I57N~sv}A7US~RsLY(I1;s}+Pj z$fc;d15$k*pQ*w4M0EXwive`(hn`;?RlUwW8;OuwA-#hPAim>=3*MhyYp((z-%j`g zPM8~nh8Q>|jWW_B@4fF#JvUfk_59E>HOZ;#Fj4;2ii|cL23lsEw64dd5d;XcrsRqc6XlZ(4L; z@UssO+|&7!VQZ@4*7V;Ph|y&VW6P9;RAhxQjvGDtsvvWeceCqE`E(rB_d_&Pcq1Tn zwrz|P#>ABr?{j+If~Jm=w^u0J5!W};o;gxwTF62_UCv)Po;0$4*|y~r_jUP{A-W3- zu9QQwo%q_jzvTCFZ|@y5VAhW6zc;4pR zg(I6A2|Qy4F@r2XoDpX9;aSy`^gpW<5tq-~X@L#=(~iEh@Y#xFqgl5Dx#rL*maI4Y zA{j_EAaS(u)5ZQ_{{JajMv9t8c#iE+QTip6KRc&LtK5(D`ds7Zs5}>K3GM*9cDS>W ztg}=tub6-r11sB4wW3sop1E>EtV-zdt3rh%sTloo>Zh+)r;7~c%PTx`Sw)wK*+Wl4 zUPLw3Gp3G4t&`unVhT3;v-fkdt|)+nHTtkgnTT44v=ki_(yjkm`(XIkn+aC{T6YCE z^&Su^EJJ`efI=dOq~;*~?D7B6>YL_05&>F$kI&b?0j)lEzX|j_rv)b&KZt7Z_%&T)wUrx3Jf?)%rQ4-Bw>&?-{B_+s>iiR8i%Z1c;N(8Nj=A5u z%e5@W>?Qg$GMi{?-1#4=e*cTBycDa3x{vKKV?VR{rsyaU21?{Ijz15QS9c?IkW>^) z0;J;Bm_timxi8y*wwML^zZ|-HcAndUk;1#TaAYqFNtqYa^Wt(HNfcw( z3rKuL_xa@UhAOYWoyyP{**bR3C5|eX++>Aq7*ioFXmEjG>E|t85F|w!Q(g*r@Mz7n zpb|{2rKUmsjr(eYdq#P^4>OgWrePA@gG_xLHe!YQUeYQ7f%Jz2{wDn{E!?S# z{eN#A!0>bJrUz*wvN$+1!CI*>U?2_Mp`(c2Jp+)EQuMKsK`fi8!9P0v(6FdH?4PCd mCbw$?)!zb$*w2&HU1@!k8;V6||Ly|+j#${5KQTQM`~LyWO?(#s literal 0 HcmV?d00001 diff --git a/docs/images/compare-sync-window.png b/docs/images/compare-sync-window.png new file mode 100644 index 0000000000000000000000000000000000000000..e57b6c7db378927d31ebaca729e201606e5adbf9 GIT binary patch literal 532959 zcmYIv1zeNu`#sViDN>@02BkwvV01`_NGY9?iimaV9~Wum7iV0AUb$3M`Ug2FiEK^~oz?bL~$;kT=TWugMbBZa$M+UMz| zcYo@OiX72p5M;Aj@1JLUCLttLTE9|vH&)Wd>uIuwJA1tYw->wBL{}{HgBvk|>wgOO zf4&J>8pIFfZA34lhQH_HT`78B1(wM%Kco@3lqJoGi>Nl}>HHijOTnLYm#OrKrn0zc zFFng1o$=r>Dsz9ILP>E(xp)<~fq^Hper-3aQfPP3i-)$TuF|7*yHzr*?lV&`x|ik_ zN*B%DiLVvX7x?f?u}EoPr9f*uUajiWM0}D0yD~L}rALc_2}M?5mWFgvZv3ubf^eYV z>^2SkvhaFNNlAyn3l4X^O2gz$Gt{jQt^^U%Q{UK1@xo$}xtG2L%x~zBrup5MaVY*C zIAd37i^!i0E(aGrUZ_Rsst-pk@10{@BGj})is*CB$bmi&bn?w5FL}>pHA(4vXNO&$ zC(UT=P@8pYh;P3YIUC!mjWU4)?O#-C4JZbd81R-IV@@eg&jQ!}Nw?DY|a5+ULwb`kUg4l&2V^fxs}uf&P^=6~2@F7ah! z;(5>bmCE%!bvA|9j=j&Y2DPHzi}Rh9=RZ}+XF2y&G*O>y=~9wBDtV5==g;PM$?fN; zyy^c#FTh=Ygiq&)1m(H+!B$7=I&?yhpQIDl zkyNFUiItqCU7@+rAuLCc*kLMndRr&CP$;^+T@2-5lN1<*im#66&cbjJjRr$E=0M z)$Ii9m@dQxXt!0ovTC=cstFqxSK>0)85^nc6K`czrySDpEuSoFFOwWG8kJtL*bUkh zxJ5}~*6XfuH$=UiyNDo2r`41G_x_bU<*@e9k1sMKPrniS$+(e_*>!ZY zaMSxhov22XCeq(Y6)+tURy`I=@ABb{uKXNZS#fBtoLRn5KRa{sr_N9h#xUWgqOaO- z%%aVrB}GLaOD_s=3U%d83tW)7u8XZ3FC7=p(df(X6zR(Dto&UmTzRyTuCm=r!4bV~ zm?7$$+n#%+FR$0K5Apc)XP?hf{?B%At)5@yT6O;1;6<-+OM$6iQQ@Y7w}QEXig&j+ zLo=b-%<=iU`qcTUvF3em@kNQN53lN6UA_8k0lV<5FTMZQ0&Y=r@#Qvtn{H9IkJZ}h z_$kKR4`qQ>C(B)`m~5NusLrH4(v>dfuimo~Kfb^jcwC6n{*2w3q6<7$`lqpy&Bw=% zr*T@I`DsghV|<(4lRac~!hks~Sej5;S+`KtX?w;l!0y$PUB`l|_1dDkH?}V?;8Pf# zx*SCHMK5||`n?~7U8t+eJ!8~ng{#Esopl&;khTkIo7QOyZZo;gd_ClP8R0U{6#MH$ z>WSbJr%yaSv8>dsbo!CZqv#=;7Aokacz~#wx zPKrzFnPc?KeXoAGA^E2&r<81!c2vH3O$6-qyG&|KL|5O;!>b&1PE$(LPXQ{NeG<{qL7gKP|i_-Bf%U zt{_5Oy-{e3$8=-uqYdhAC%>PXI9C*Qu;90x|2y*YmZi9DwOzG(^{6PVX{0HOH1E}k z2%mF^Q2x-emz}SPD+;r9i~SK#!)`BC{p!AcZe96Dy-Rw9xz_0JV9JcWdb7-q)aE+R2 zdslo%1S5xG#P~wpkPy5_q559M?c)1i+HbXW+^(?Ed(ix5ymc&)t%#RsO0O)UTB)#b zv&MVn(a1Bo^IuaNUp4N}{h8~U%M@Y~?qolet&km--Ik3g*C;<^Zl(i?SQ?^>*p@sH>bB-B)#k#FDi9;&R5K@&0`wl zzMft0qqf(*@PRt1Z|dXCzU#jpUhRqe^yb)46|6mJWjmB1Ne!=3D$Jk_-{wMebnm$S~S436|V6pV^1v2)SWDV$Qg;cJmh)K6+D zt@m~enzHMZx}L_|HIqVj&E@KuYg$W&OUh60JD+x#dfOlQW#WSH&C55DPYoNE>i;-Y zwE6sc)X{dYjc!6`?byWi`bkGL=1yeXeqse*3ZJbC^s3Lpwy)|&VTE%0@{{F|UIgLO z-`51nRZ8m)lC*_$9mWVX48QYzf}42jjN!a`w1M04_yf+{Q{7V$B)S1aKPvxc$&0tu zU!O(7EbA;C8Bymh-Qbtbmh6+{o#t$O^7y{JlLH}mKlR6Ce_(&zKHGlsKGXfbdF{Wy z{CMrTk(auV`uf422k93AE;v8YTL1Oub=yo3O0VtKb!*%*0*~B7Y-)|zRJhtkutmu& z&+h1DC%w8;4%2`#iR81SwJw}z&wK`se_!?Igxhpz zsdZD+3bm@B*4F&;0eYi&_uSN|en^1o;~RB#1)p8MQnu9x6!@73pYludUpx0Z>Q%*$ z+P8S_7T1iTQFYs!_H%(-YV$9N*T$B2K3QI7yUc^h4-c#HH0Y@?9nJd_o*2I8viCX~ zmpb{t^wPa&I~R)^N?tBS{@%S#z)kQ)s5rd}dR>TWBelKkc~-qxMH+g3IqB!#JJH+A z!7qQliv0F#@4>nHb1HvmfBt^W9o7Kf`A&+t6AZ7!wbC^pmNbfPwa&>eh0SqHiF;dq zDVZSp>^lFt`{VtTPG-j+U-w~t=CH)ePzmmD-W+jxVcA>wk#JjueT8rLo9)fhCv>cATR zYt(Yr@)Ej2E7NT8PRH%jaKLUGsc@#fXKZzBO!s-R<`o(%MHV4>_PZ)Z6aqaI+N%b{ zkDt{tHTg!q-{_Evfjh5hMJux{UnNpf2=?YT#hV8w(-pMn2=L5>s!%vPn|8lJl;Hj- z#spEm7r3@WHM{@4igGhEe+P#eB@Oc$zk-4w?hl)clS4nDd4OL7y&X(^%*`pzfXDO{ z)JING(11rrz?aq$zW;k{ctnDN>hO6=3W_9u3hMuU#sYjN|Ca^6$glbLowAhje?P$_ zS4#E2$8>kWPf(PKb=HG#457x3*C;5sM9E)AOl(9pDJZllO!Rf^B9E*W2R&K{$o7)V z{Z84Klz3TiQ)9hJwk2t453YB8;Mw!t)j(lv?7jD_z5dAy_AAckUw$7NGE1$?+uv_M zxJE>}6F;mEx#hogRI~a3F#sqQhA^tWHJ#UU(mB8l_ZK0=-6{;5bWyW}A z*N8+%%B$eVq3eo2B|(Ky1@r`Jf&OCsB&cRrc9INr;Y)DwtxY_lbap3cDRvlPOp8WU ztF2&ULq<@n8U!e5*fkoO-{D4M4v1aLvRbGZkt773{LmyJfCh~bIMvWWetHW(fP{#P z*Jo)86(~i}J&hW+YmRM#Tl0Rd{J%e#(cKribfe+qnW$kXU!%a=&H4ENQEGswvey@l zRHNmKx>GLa{@R=u7BkuDC01nEcuu%V8W7o0zmehAgapz>NDw{&g}?CW*M+9sdNGz3 zHOO&S?65!up->?H+$wV9EY3Cf*+9^F__2Wv|6{luL?v7WtCpmJGye<8Xh)bF1?S!J zZ=A}f*YYuhah)Pto21OX>^oTGDkkOxAw*^JxAJ4yKFbd=iW>XBSi5E#Zh)TuEc;~! zyRker6XI^T(*ko)&hS@CsaI;}R~t)Y|7i3e2JUp^ooG(P$+{N?V))jhxxGk%Nm+2@ z;)^Jjy``QV@z50JEq{ISjBfO<99&Z_eSB@hHa!_R-$3etj%xKI7hJb38OxY$pi7!I zURJ0YOkLeL8XE#`BR5H$q;m4XmR+eC2P;X1WJH?mq9viwD1EI}%wOUWPR+LpD-Ka} zyQU;xA?v)3WwaI?B-EKnkfW}7*L7N!TcG3vDiTk?X&#GWu&s_b(f4Dp*QlpD zVerKdf+WB4`lwp~%p5H6Z4oh)82gxbMY8gxAe@8BVP(6=v^}iv;d%If zjD#6%=28qHjVo-^nxux;Hk($Mox)c@0y5G(xQic3q4UaYNlW@w99cfbo)w^QYLFH| zHJD`Tw{e0uJ1U7$-&Qx%InX+zwAj{f-NB=6TZK2?bh`e{B<;J^6Fu2=p$8F?@O_jG z>wwxWX3`E;w)fdp( z`cX?aTcu%pkR483cC=69C{G6$S>k$9G6}y9c(Jm$YJxNADO?I_fD$=^Dv(>YAt- zY*-1hX^aF}f~AfTNyRB1awa{%IYmPoe_7A|aN;F|P_g|kBxL%f&UPB7nXMr$BqVr1 zp8bn<_JX*38j~gH!6z7TrClqhM1rJ_6$%fX9dsfwh-ggzMTXEV)YYxh{B4^$pR^nQ z_BV~;qoYPFG(#&#)3+|i?Yl6uY^1FolWe!SLeG$FAv2die zv6#c>df!X`s_hV513`~;mf4QPTS+ZCH=$^cO8-Reg-HrEm@hM}X&p46kmyKBWtK)R zt4INL9AX!dLsv=pR*34J6I@o@5+)#~1;-m@@$!zNYma+`dF1rJWHcnnOO%7upx_#( z*EE2nVKIb)lzl%&@X~e&{>JuQI|_-@na(M_NO6(v4G*yb`948dgex?ScL0+@^Rf)$ z>9s-;;R!@YS4m&9a&4cgmI|J>(B~arwd#)Z=CWwQ^lyifBN|u62E=?%JuXUT+!Li4 zyq0`tkR|u0uk?V!uto8DSi{abx0D8E3#q2;=mAQokGheZA?+$tsA;p`m?J$OATv=9`^(k2KQCEd?yQ~MJ z@i!{ucB*)lphU(s_!RidlA|E0Yecz@zZVd(L$+(m-H- z!B8x%V%w60Bn{ig5&0OcOYhqDVisq_S)V($dfyLk)`osqu?ffOY>ixBL??Ngxrtep zq@&(gpE6Gu>3W`5U|GJ~Vco%%UrarZ5$+I}DSj6JXi1~zRtJweY#3oI(=%P1gNmZa zk*C`x#&;Z8z6*SqkD743d!&W}(TOhia?>Sh{;nv{VLcu3^HvH;{G|u{07b1rrzZH< z48c_3RLhfv>O&Tu*tV=IFPqhaPQy$t{mAMoVB~DvM-5=c5G-gL6u7x`IBpXiry3*& z4X8E_{$dF$POPOzm})%XbyMjL<#Rk>0Heoy?NdN0o_b-2vec{rZ(#?nzhy2@aT(~f zYsl{}TA`1#A2$8T1qbKB2ZyfllFM{V7Ux>0ghT)NfVzbzKxg-_Al@ui zbs7EH%*p6k`0dPplu$q9mFHW?>pK;wAvslbR6V=zM|;JeH&2H1PHLb&`VxnbYYnA> zP%`EpL|}T6^Xy|Sm@&hlSm=q&DcK*-OlkUj9E3*uj%}C=;&0>_kw$l|Q08ql$bmL6 zc!q=cKtH)Cf8>s}Ow&n9Eo(+WI19B3V^MKbk}Bf}stmVE!V~L!tH9Xs@ue~d1? zx*CDs#8*RlV|pabFXfQTB>8f+2YpY2qOYuqh4tv4o6+spOL?1>`}KF+H>TkUTjJ!S z-)Zfhjfn}nmZdo;&7${m;f_n^mhmaZu$fsp20y9bf7@+cq1E0-bue4HW!K4*B&yy1 zA~3uYv87V$2LEd)+m`qnyd0W3B>5s6QrkU3XaFvcaP&UU&|~O?^kYawaD2w=qq#5o zOzoF_fBeEd$W@4DvKN6%0^OzzlJJOSz_Q}#`oNjl+>T=#+|99;IPv$TP`q>vhK_T5 z=6F1zFz^Mgf6yz#{io?$+(?TRso-l328Yl+Gd_b232n-+fl5A=K_bFhI6LsWpRCv7 z%0S0y_1)DYZE3D%s@$5?a9Gpl`%7Q`*1EbclQEU4m*SPT(cU>KgLi3Dr3u57?{sbt zx&HOyO*_~BJWvIbyeuw5RmjZVC17R7s?52*MFkJCf-~8eP2RL`( z^G5yh!Pl~xE1(C|k|B5lUxGc#ywD0|fziNg+ckUnCS87lOtDs6j5i_GLKCPF5E2Rm zVxC;3UZu4evX~3IBYUFiuqW7~=#I+xhq14A4JaaBya-y@!7#GoE`HoREgKExC6liZ zmNmJ380n7&1;!n8gz-Vl{R6e#rA9;tzJm$|=%?63yoE=ncKX5hG&ReD?( zj|E7{6_7q*7(32TUr=$s#et!DAIn`$}mBm{&PJBBtYP+mf5CF&l%r~iMs0?y4vpXbjqNCas$D z+E`@Q^%yNFZ{ADGXMJb*cuzu}z5#3kBBk5J+v}i!R86Lsbk9C*jJYyWoMZJl{r&zQ zVzZ;x?1bp+H_pSUoEC52{1x?nDwo;h z_*Q$H!cBMB-$#iF-#a{;3}}sMLNAh5Z~@V&Lu!D@M}30q&k-0a^+=jC$2RN@_;aPC zfu5r_pG)uq6ZH#vh-SOoFN|tvkR_vzJVGpS?a)VoN=WZz+%O8;TZ`#G#!@kOu$jpB zAYYW+c{O&ts7{Y1>!&qZK~uft-)t#4u+JI|f7rLQIl4WpV~iIM+r;M$W1=BWsZEmN zh=87TneE5Ial~(Ks)y;ruqoaHK&rEukZLYXQ{*GNW8u8*_~-6>`Y z^PUSVto_Nkbagyf>u;mu@Z?AH+(is*M$HKrOX37fX=^h{5+}YWH~V= z@rZpLXe1(?TqzI+1pK&ZeCC^C#tphB0dQ%Pj}=Nx;U8xL5X=B(Fkjrkpnu_)uUNiX zxGrKIOiN5C`_+mC)GcFn&iQW8&t$aJnTDxCBfY||_QIFWjlRs2c(>Ol6ZAqIhG!hi z4vw*Td>CmWR}pfHPL2&|7<;aGBX3W94Dl#IHQE-M;yN<+j^Aeh<17fWH;>Rlnadig z3x;mi&y;%dRArDl&M#MtJ(tZ*kpSf$28UZI5H$Y9IEq0ri{AG$>N85uXchTTNMC*h zX@BveHm6{6GGt35hFC}eFS5NQ-b_x8(~VY<6pDQei5WQbE{IuHyJRrr{)OIGT>Ee3Z9tM&BNMF}3>kWkp2V_7j(3*ZkU>_g zinkT24m84D*Z%z55VwZDBa1@Bd2rDhZ`;7$Sn@#`0_$-TnF|R(=lV4wF@rqgI|44z ziD3iyw7D+q|Bi{)aH(M!p37l2i0o8inL!C01NE_Qmk3eart%F4E$0}gJ18iSK}vo> z%shr7pUSOYT6k!_e8pq<(jZo=?oWQ}@|h~Nl5^;DgU{=+zTLj;D(EuF2x&>hsXU#0 z0r`k^JOh*UR|;i~ZVY=t<(2tCkq*IjWqa`?&nQzdd}?fmIupZ6r`NB$FlJc>O%p0Sq5K0GC&GE1@23JtQ(gpQOpIc3IC|SVzaF$eY0W zFFKBpxbIs350FWb5BopG%0;nb-;&V(QK^TAF~5mmiE|97jb`bqV$vwz!b%)1VAy9%au{d0vPVX z%sAzf3=R?$tmTz_m)_jH;p*Ui7Sj`aZf$R}E_oWa^UX&rJ#(fR#xky5EgHO*${V3c z_ucc>9gi@fb4_O z^9|uwgUuXCT;;@Ou0FKu{i0Hc$Q2X6_{sj>qN}Z5ya_aQ&$yY)ANy$V`^-i-*f{AF zK(r0s?2FuSoZAiQeF_Yu5D*)u6Q5^vrP_+#`+{KTCrSl)iNJgKC&TD3AnQ{d%tseCNi9pXyb7b%fQN|lGM;jl#D=hiqxbMoNZcq8o`DZ$pJMsNzlEs}hmgUlCDBoX6ZP%VfwBHNGTi)@_>sPujDto1SOu)eGh}vl zHjd~_(uuM{Ss%v^w?t0Z`IWF?A)h9wUp2IlA!TCIfhVo-Ny=HDH~x9Y!c#(mBjAM`+?=%nV)yNOn`)QidMoTRXKCYt?I_5_JU6~0-^~Lj~g?U zOM=b9S+S>}gD4BhRCK{vmm zXk}}d|AqhouQaI_(_cfzSQ5u~WB$}a4!3HdGbq1+tpBN8m$ZA02nI(y8g)qKRF^sj z{l0p~RzfE{$V{{j<9rkw@+b+Qs8fbyIgBD9Udy`@wi5esw+3TEza2YB2B(JrRe<6s zxRtVnOa|S#Y^|x`Oaud35_hb8lQl|(3mdYn0~oA5pzPFi(}*f_vY3Q(?=KawT1X)L zEg>eU+-JZ40-5#BY}571rD1VX>gB4vmo6dKo~y@}b2zeQmkix{W0P3gbx#djBK%kO z$4_qnMMHvtG=WGav-97wtDJl2Cr#5RQ^kJm1w?$zJGCNn==y^cV#}cV8z+dl@ax9a zS|lU44l`~tD{Zv$9}TJL3}wLOL6e(Tz!*`?Z|r_X22z9m-pfkqqh;+%)+kXKEtuRm zEl*L)rgGi`Xli3sD3=2p0&4#C=E}~-RTEN@z^`LLxMgz(GWc@ldWV|O9#JXiJ+K$U zZglD$o*b=ih02^5KTL~TBJk?s+T=cQc+MS}MECmz4aP@!=6kI0me`1InBz~o`A&;V z#lM@EtMe>gM@M|3wbe=(6TRHxzc;hw1y>V2C4ec~nFN42SfN(WWptS3K* zMeL^Tu>mmsy0Uyd#%%SdIvW#yzncu;`9IvATOO22?8n#&YLof;V|ZhS6@akUl>bha zccK;(m%@!olzgbShFn34ut!4|anv>|nEM){Z09nblMh`QbD0GA;5>%|C=fTAud6#D zXjHqvdAUP$>RYyj<^K5CiQlmbq#bE(cT%#CE`=)JbW@U;Uv*s^;n14y%tu}PocdP%i__UDLm|gRq4o^zK|%VMTd(g=mz77#1svrzBPKHKdR>FZFKLFJ-ES;LGT`mrSFoovPDuynhTH=#7GIVTHx;uO|oy+jEE_B3( z3|R#_BhsH#_hUL3%0Ebq5fBXV5NqUVFeKv&Xw0>^#C@)2A3s=$4W2T8Ht5ccryKRZ zmpoz^B=*T>D^IEgjCO$j8z^Ex%3g0uesZxN>Bg#b{??)b1OB4p@%+&dwnE|-9>t*t zST=>sb1}wKZxj?cd}|4D|8ZZO(Oqo-eqJ~%d;yq5j^Tvp+niOol+R{d_b({vUtD;V zuNJX|7iOQX8R|?)B}!(S7z4#2lWra%yRot1!ctp|X%bOzDq6RJ&fWV)td}k2zu!x^ z<6pI-cm5fCHMyb$H^soT%KaniS)VXh$o>TR?HI7ecjAlaz4z>0Vl~5Wq z7Ae)^>Zd`TKHC~*Kq9h+ISKV}G$9TwB(JE(Zh*?eVssyF*&mFciv5&$2q6p~he8C6 zcG1CG|OS1TGpg0Vn<9`0ag@aavKIyM3a`utx zIc2!!IZM1~QxnvQHZTXML~+CoHa|(ry?|IfMs7F$<8$`l;6@G~ul6c~UL0}HRv3VI z1GqM zUd=6zLx?evb!kEfA=BZEoH%JR(S5#=eH8TtMDeR$-?I;)CuEMD7hDUdYz@pK&r4ei zG(JFUr*&X8Gi!KiADz)2dsP7OSxTNS;veOW4A6&}&oC>8e>a(d$5G@s=^~-=9#l__p`J|AV5008&h%($$sFQ1qrQZakzh~ch5pOnMBat`RE-_CwP z{AR;8FvJmd$}<$ppr4)ePAecMSCCfphetjT_F}}8w;L9nwui&hQxb?# z*C-PUOhWAd(l5F5DBjN^>tumcu$<^2?$@z^$V{26s1#enuah0z#^H;oTzWFdP3UeG zmAi^99}uwg?X5hNh{-A5$m3{s^6ogQK&$R>-(CgNUR!7Y1gsGHwr7Zj^N z1l%RBOUX+dcc$%-m0fceGY!K&C9Qh$wlw&3IT+9$L9A$}TxU?K<8ZlzGNY|P!39(u zvXBXDN!pl=0mL}%Fpj#Iz%-|>b4(IsjV`j}{o$|x8~AGHlq>-P>wTjc4na9dX@@GP zNW$)_`R5uW-#znV|7`@wTV%35VMG+?Tk3}Xc5hZHNlJ^2pR62Lb}n_@#tw%^ze_Vn zOrlu2W(z%{q*M2r7p3W#$&?uk?_6?Gj*`BqS~wg-Yy4Ga=Sx-ZZpgI}`~pwlIzHt? z{BLD%qNQ#DfR3s{06Khj(x zEvIoS)DOGKp!1|Jb|%e$V!QrRJpjHVtF)u2^DHZvc!3ITa+BVjsi98XdXzr`iqSx& zq-X>%OMRpWg20eO0kr9q53|d_Ytdx#S*skT%>WAm%-y0snv%6T4A(XyGJ5B2U1$zYE=xpb6Ezz@sVef_Ac*zdphdZ%F;0 zYhv=YtJ4J^7Maapyt=b^^MXC(MUFBGK{!xT zNq{_)6t298Bbb8Qn`q_xKDtzWozlw?5fk@K?-65?lL5+H9& zzq@1sdDoZ**RySkQ za7QJWLlaz_V#13)(bP`_(;y0|dCOz^#K-5?kwNeFT(LS(Qw@bhmFn~CevF&_z**oJ z015I`@#921;mM0yDAra?JkiO=i6mb}AqNV=GV;RJG86fNGRRnikQ>>H5kLFh3LLCh zK!jq}HBy|s1PB3E z31KitYrtTnvZOc`SvbDmKu;Y2Z)+71eN*`MEf|U1oJYy;rlCI76T>l!R ziTNiyimM7hpXIAG7j^=~zbURG89J?<88S#JG3eA|WCr+unz4*$V4S{VE#{&HQ^93aVXs-}_)I5dkh~{uc|{7`%P0X*I8;5sX&#Du`y@&#baaJ1aB?4B9pCvNeecuVoT%TK*P0|MBiG_g2oKU zZRpYBY%HkQ$51&xFlszh7g8U0-7iPZJbKNULVBPW)kaW!`BHO0Fz&k>^hRGpUW@9i z)o6kFCv_2;LhY(y-dE;GpQN&jzQ0d4^c0&6TM{jb!0y+V)W*-!os8r-vZWGMsyT&P z#|)SsF662~!k0nnjJBkdl6Z+)jNm;2t2pZjyXUJF%y_t<0DxazKt`OI6~mE{Tok@J zjU(s@f%PJA2Icb1Ru3clTUV-|X5SgH1d3k{6iGeJ07&Yt^Vd54$N~#19~b8#kW)12 zuzwNpxMjW{FQ1;SGDax3-dq+ov`!Z$aJGCK!pn+8>V)6GMo_3Lg?_uUH^9G+7Htvl z`xK6B#`9Aso*D3Yu#Aojx(}F8-iK1V8rHQ9x1@t>vn>Tj5&`}}{N3mhT|ji4CyxnE zL6|@LF(kmvl62z7mpp6GzlW>Hn^7G)@Dwj#c#zoond@(`P8!p zHDxySgO;!SFkilHJ*zWS@xK;Sc)`2uGc=I%}VNL2yXpxK~Rd=7)h(H82k8#IZfx znrb*dVLPpRs5AWYReqf)g<=hsWj`M4vuKvuIn{Qv4s(JZx9pWhXki*#Mq!5&%*nz^ ze(9lF6pxfiinn~I`)`ntuL&sew95{=-5`vSamV6^Tc zxRn2Np(3wf#lpl>hB1_EHjUg@k41eh8md~E3dw<;S~h5k7hgZ*4pZ#A937SOKAiQT z_q%H)==XcW`a@vBDV;k(Cu`s4LvSatGjA==u0PO!V3AR=|pedHv`0@T1xAHG*bUQ3jNl|JwtB5k z^ydxWeQQ*I8$$eg`99C7WzPJNz2e->33%vnUjc(<^IE^?eAjyNozE-%DgY>Opn`FsUk1l> zKo0zWi^nY?mngh&ag0g8FP@|^+1FOk&9IbCVX~;2ZKLzhTlH)OGzm+jvLs&4&-Rx3 zV+@4o98@2Mk`^#O@!MrTbRlzzaYT~oL#g}9cR2{~O8OaF;10VGJk?qnkQgGSwY^cE zOpHqPy5iHQPl}MtF{DMq1S0pj z{$-5a$2lf~B^(IM$`bh72+au;|4A6};hL$K!^&)@g06$$!nq9wjU0W%nz!z8 z1+jwB=Gb*j6bFTX92$5Ih-ApeTp3d?wFkWFi2!sDXcA-_DuWgCMXHv!Tr=bdt#7;p zBwc;t-bwV*wFC}~2z_nPZ4ANO%zmI(y>u<}mGh1EXcs=K^)r ze;4yy2Sg}|d_-@rER-JmiG%=doRLSEwekE1EBhZ|zJJ4lDxvax@*T48eJV5Vnv!rh zh0cH>L{Em0kD*uv@R$q?a4N~k{r}ty1@9uYcr7s+ca9hDRJ9mgK7fwM2UJ?*AN1st z%{;gpl6oX_9x|GY7#8^$?(iQeAm3`T-!S+y;aCo9HD+e%vmE=2IZyu32g!c#e$22d zUSOusd%hZd@qt=dL&1uenGa^?>E={;=77EFo2eITw;IiwT9#*C@WEC0@kVEZ-dd+k zpbt&7lr&?H&OL`?bI61JW|j^BVt@27bE6XJ+kKS)eT>#@+Mvz?enXM_q1SIsq@|Pg zq%B@VB3sBBrNoxrN33v5 z$snG?mqUKV3!dFrS@r&oqvd2yRf}0c*csA-cY88K2Ky(Bf$b7(@$|}L3`@c}g#h}# z9Q~^4bV2|9Ly_e2kEf8#WdgB1{ybcku85dH!`r~_bN1zQ`0t@QnNM`4pW@V(wx4{Y zJ}7v4?V|6agdc?GwmyzVw#1bPEBc4h*}dBqAu;RhQ=a>;PX#=Tyz|Slq&U#HJRkM+ zLEq7}hJsPK1!3eotJ@i1GS;U5yCG0Xj8naPbh}|8mY5sZJ5s+gzH5%ZvE`BacqZVBy{Lo7z^y2!nDfg|k6pL=vqE-GtSkP!mL4M znKy9#%**fbpjtpD6nNE+oIB0V+=fwcLP3ih#F^-JaC7pGs zh0Ha{aBwqGEEdXy@}QYB^|y5^AgL=(ENz1dZ;o}49ctM;ebl(+i8ufk-bxgFwnB+> zeLEKoRm0k6R*d@UElw94yvGdI17F-?Ur(o_t`ApTi8u*<5z&rY;JT#76acZIuH*+lhTnH}L$ zWoV2BxRB$+L^7LjRRITz@7@wCgXiI>Ah_P+&jR`ZX2F%ahx|QJyI3_|`96}VnyeIk zLCjf=`2RD>LEX7!m$1ltb+NKaCk6!j5fp=iYp9DM%suC`#?k3LbNSfJkFSRvpxaj~ zO3UF(uFjw^?E!8YSVo1O2Z`l*+~{!f#|QszD-Y=?jQI3~VKN=doJQSicp@{7qiej_lbEH_};p0FO*zzZ=c4$g$gjw$Xk! zF6~T1-;Vo-_e(1K(%%P5*t0mDt}Jn~PcBP`lr2Dg%9ab8sc>)ai$^^1oIAZm9Xx7&XPc zu#y0MYVts3_t;^3ChO_d&Q-|IiieowVt_lnSHH(L_)}7!WMX#$p`}oRe4;jv?xVr^ zUUQ$-BQZ3rltNXi(GYuv zDY5fr{j<=gSoTjYeW~5m-TEd zaak^q;Z=`YCFlXxw8TL=aGf?mnn0S8oMnj zR|UH<(RDgQB!M7_%Z~g{rO7+&9QwB&pRNP#IY|=yiC)m9#i_VB!eyx)`-mI{f+ZC* z9|NgS{|>uj+o8dQ&wl zOZG;7kmHx(d&5G(T6!1Po$P&@eWW-0sm{yLf`sB>smF9aw zrHJNkDiJLF(-UY}Q0#pOw3}c$x&;J91;`sgxTeZPtp)|C@325Qk&oSat`zbU0H+@w z9V4Kqm`TLr$4E&jy<1LVVhz3BbO zlZkT%RU7fFO(}RxT7(e7k^QUftT7?vL4mj!A(O!<A z`v>Y#2*c*mrYX0Pgdbng&M1)XwH^#JXH#h5ZHj&(cJzdns~JM*Iy=o!KNm`6+r z8QtX%hpk3!o=FuU@OgyHdlDN~Fs;rwOhDY%D=&pB;K%UfpOI8Qlxn9A^y4zQl>%e# zIO3bi6E)>C#rCM8Gw$^;a(>7DY|2015^8N0D@=e1FjWpkC4@Wx7nMF57JYeFb)S@5 zn-YEbHr1ej1}{$dddq{cCSvZJsRJ{8gJs9jb`+S4QcqdP$#vF4{Xk) zEEZq+TlwwtttqIvN!?lgIV>iz(_$?gy65^gq)zx|=$BEdy%{`$=V}7NMS`2Bbw%{r z?=)t!w^EI}-_)v|D89%0K4%??9thljv`AATGhn|Q>1eF|y0oY7&OfW=KX~#SJq;FN zo6U1}+p-SA-?Q&7gcwElg6T?s=yGYidT!aRnvh#+=gBSo1=O;*;It7?LC~`W?(Bz) z>T@;pXcsP>vB6`Y@uq25q3k0q!w!gaK5rw*n+c1CufRJ^4Xo6lZ2oSZCehU_is-A; z$p+RUIamO}A)D)UV0T<+voR@2$&|czA&FzPfn}(+xC}HD*q?Zd)b0!13}>pixt=_c zY*;pBn#&nCO0w8^Rmqro&E89&;d+LwTBGKgTzkQ7?>o;Az#5I!L*+>%x?&g#oTiGr zllu8UMNmxdk(!Cl1r*j+j&>aR8Mhyx&6hrMnt zo$S^4%{nG_NV4gg%ZRnMQm36VmP(k%XP8Gi4S@nvgE@T?cLNKSagdBg9Wu$G_Rv7( zbd(@F2i6)D6680}vg%E`>WjPas}$(KrThwJ2H!K`?L_wXk_@Dn-K;_X$ULN#kp3f2 z?TfP4ieHzId=Lr(udm15>=NuT|5)?F>yqXBeDkl%Qai+Mv_^j>ezL9+0{f(PX(7#p z2?sLRaA(;~b!XdVrOaNsDVb}=|MPlxV3Ve@^8iLHO-u}om}+9nrT{Dh47G9hsItj> zwqCtWcKht2udP|AvuwM}VhW#(;V1sORSTAp51^Uu7$(PzQ8shVK4kTs1#}_bc7sPP zK>DJv*=es4_zk-xc+05#vCn_5o_To4Z)9=e%(;mFa$#}yE;JBn?tNbMnsHjW2=tgt zJ*-yeK9jF0K{f&SY0#+4A8g>&zdPtd4HrJ?`sHFo%dl1A_sT@mkWVUwE!)?wRjiud zVHJFI`v^RUIQzrXOV602=k(2fWrN<{`r!Uo_0zxF3bsd|>NRMfJoOsy!RanV(FHE& z8P6sSl0TPWv&+N8j$&+_-&l$Vy!>3e9(3e_sg&5sZ+d0mM60LB!#AMpxbER6I_+Lj zWz?oTL4By7)+19EAg8c$>O5Fz84~6=_vsBWihel(p(qJ|SM9~rat0WIxnm)7T>T%0 zCBA;DLt;03bHMSo8SHEyL+6ERF#Y^GjJS(^wv{4~YfZcK83 z3g@l`sFge}eVW8WyPzJ~=A) zg-u@}JQZ&2{j)lp!hU4GRe$Wm`o|o_liR=}Cm7c6`U}0AUnICOh&f$rtEl)KWK5_t zF-WfoZoTmpwaRz#Zx*UmwJNV4Giwh%&Np{rVP+%nRjG)g)s!{sC<#epANyc1W_#}6{fv5lKA-RR_xta6J(o*! zb#*oOeV_ZB*Lj`SIgk5x-*9KtNoz^%%l4?0K)+EY;T%p;!Ukh2`1jjx-kRoD6YL&&2k7B$zO>p5f$F4(Tp&W2Kw*&45BdgqqpV5+(i z@k!WARtj^&&8@fxX6QV+{~~5POXNzGrAtpVR635(39C*Prbq4gxKw06EPDMsw0Z46 zUZWn$rD@BH)3wsgef6{GFt6LUqp|7LgU(==IwZlgsZo7&&(K`^?Ly#fLZ#;R&l0ws zP_eLU^HPZ_Ma}s*!7^dJs+n(L8;6QW>3K<|J|r=LsjE|bZlB9t)+y!@WLe4fTC=P3 zLDS~2_OVoHjC9e4Y4v$Ox=iQ>VkVb&WhrFr)ql-D;?cbCTCr5Vb^HEpN#YOS>dov$ zA~DU^F34z_JTw?WMu8M=7BI{TrF;RSpq=n2|iR6^0oX>``-h{B?I3gPUJRkFe&zU`lKijI7h z3u(Bw?U&#BY$!wEJo5=WSFgXO^L*6th~wF{wrX;cC(6Tiew!y=@bE=-^dD`?R(eq1 za1;v4Bi zTMmntP+y8jq^@?UY5P50@y`En^opYE1CFow=#KT#avR-?$Q|*PnoxY;k#i&H66;e6ZTJ=$fkUT(SMlmtAR3x_VD<3GQ(5iq`V5Mg#ShCtT*7&f`pR zD!mlHzX|p~4x9K$hsi%|iYphY+$r2r7kl)pm;$(^{spf#q9-{`+j})9j>jiHSiwt% z)D}b<|39h~W+^>ZEE}@I$vbtw8p--DyZjtc0?krIMJe_ciRMd7g`&+ODlK1B5C>ti{hJ@Ir-i%2S<} z1G%Vk4wOdXTZx66q3{8=cd1!l^0bgNhoxiXl^8TyzmFw;OzGkg|E^k>9|MpCEaiy< z>KXl{4>wwtG`|**>Dsj|ov(-8;Yv&yJ8M)(v&`hD6piT!9Fwcb8rOVH54!ro>)hI9 zAIs^I3h_5&s!1=`Pc`75#<}62lNv>#WW!HGbyqtAJMu6~FXpU$w;q&LRt;V2u}c!~ zfj$+cdLuMG;Srie&ZjR{8zEcow#)E4<$)z}Tw9mN6Y1(`C_m)IXH3%1=UhugX5zBn zd`H@itw|g3J4WdQBBHYHJLUOuZCIQ5^hrRyhYl)_)w$zUOpj`hkon!yEudS+SiJ9q zvm&!ntConpj7;B8$#2M(BLZoAY z-Qx})9}V%zX-=iZe}XE8{?2S-S<>{0+KP^d7y6E=e1$H9%xv=QQ(`-avN5ag5;tjE z5GP`%RJ=4HVP^!R;!0##cA-brL+Y6+x=dLF+2I^?K882WLQiKw&)XtXT^MUs;)B&2 zFbesiNa^loL`hzT=e$8SALgf6DXfBpr$u;%h^cKN(QbOije3Xm(J5uXLXcJZBAn~_%J1!IU!ECWwK1f59Py{Z1CV3>8qtc2N}%g-KA19Gc7Y5WG1WsdkxQxClBeW`G$DT==2SD^)fVwt$kl=VY&;>@rwN$IS@whCMh?z%;k? ztN8uRpR4Yx%;3oH_ifd zJP6g+n*KVqIoB~|Jt_VL-lXN=sofiiYnzi9Z@B#Xe>A<5Uv z84uTy^ySmEfwmFx@713LW)o0dW^=9{mK9<*y1RD~>^_FM-^SL|K)tp0P>%Od(0boI zhfF1wAt7$}F`d$s)KI1|5WDdManjEP@oj;y^%M56Mhs1Au>t}xro1h;X% z>xlVClu7VYLC5Vrg;xhv=#EHHYQ{z6sFG*OgwrJEeBUJN{SqH%>8@ z3Biyy*rDtLN0VT!h10g1-td6Q0p#22p37IauN|RH$Nm(9cv@|5?DO>GWV+c$tWub| z3YLN%6Cn%o=ZQ01wMsx{mMD>eZjd(y*-+5)1piffgjVED1ozb{ z?2o09UIoZYS%RMa1k5eGHK8tO-J21?HADDS;-;3|jDB+j3!ryt+>}!HqM0Y#;|hVV z>64&S$2T6wm{pF7elKpRJj+ftAb=bxn> zczjxA*6V>ougNA@u8=R4IQgWonTogaff5D6{rBGqk^(TM7mrs^kFc0T_v*ZYr z`=edzL1)pR)DZO+F6%DEJwKS#y{M4XKPY#BcBXx4GnrESqO`Q_)q|XMfmyzK1`U0F zuorCBbp#ZYVIfTD%B`Gq?&`z#R{wg!R#VXJvVpe9>if#!LNn=^QE1%Z`MZwJ}93%LxFW^{U zTswVJ_vVXBj=}ymO1glDKug2{?K`S3+7VmzNB(1^IYL;&y4J7Xhf2jBAKQVux7+-Y zj0S#v`bpQ{xmz0dIcf;$^qx+hU7}u$i0dlbXR{CY*XS=|dv?e^P5o`OgT_okBtCPp z4-}(UmjB@xq4HQ8QyxEA_J*Fcr=DaFJH#L(q_xrx=~IVNO%W^etrx!|CvD<)596<` z7D>WJ9yv*v0>2ScFg_#31@!rQP~2l94TCD2sWZ9g`gg>76~>@ERmK87b{V#LDV*I8 zhQEo`%fy>Ysm~GwWB&BuIUU`p)0%Vq7~}WyNIA`Z06x5ZyRjwUQwQoo_9F(@TFXZd|vwd0IRN02cnw(d9?Z`uOs=Z zIj?5f>GfEW5_ZZd4+>L1$1I*cW^az(Fj*nO&!kpf#6~P!7oUF6a}BXAfvJ`ctlFl; z?ZvttG8d6jkw=&P#UDN?iNo?go;i$uNgP=|DNAKu_E0Sp^<`^>hSNeec0|j?$v3tO}hS z7#DP5$#<-27~{`b(X4eoW+1mU2OJP%W*NX@oO~-0%66T=#Z%3Q0w&f~BSyyOYhs5w zLzK8Ue3L#*Cl`*yVjY5*?i_nwUcGiV2W-D}06ZT#3dXDDW^tyMr<`XfmV1Wq*H*A> zJt{=E*xqQi#j6o-@5e$3q$N{ENFP4msW~!a(Wrdvv_JEiL6W4`i$cNob;)BP@$~VB zfm7u^KRk>mE2!tYrhj^gf8YP(Wfw>BF0$lyrr-U2&^vC{*4O&aB!;Cj2JOh_m~Uy7 zeKR(&6e3&=izNr@NDjp!8L~#$Fd{79`MmVioM6L@$ZUwgW9Z0*mz#rSySg9iVaNb` zmdL8}jsm}5;9v~ubWKAj_s<{(NOhzdTD*(EMlxW})?*jiUU3#*^`;(k+`RL%8Mo`m z21N(86N`(XNG%aoMfG%)V5hCr&H)Nv8mxRmaU@>r0EE}yag3*U*WVP*B7j*^9UhRuR=wdibex| zc{z&@cV%}~LiJLK-N!U9$Z!RJU&6=aUkaHj&ARq0)9_?kJ0ii)8tb?A*_>|ik4s1m z^nhxMG~b*8xyEn?4Q|n8#iv}U!Tk-g-PfT`{ZYX}`#qDPeJQwpcolR7u=*UqQk#uq z(I| z;od7nCZ1^$%?S}rM<8~%SUGyk%xb3Yq>1iBlSK#k z)o*yR$)RBK^`(zg)$Ie7F+I1>M#Z6;jy%gLLC)OPGZXn93*plx()uMaJh6`V>Mx{nxdCErT%sAS%;oS$ zZ^!nAn%CDj?`IBhzp6*n3C}tx-b44Uweid&U9f}xFu$uf=^%HpMIF9Y@W@SwphNH5 zP1E+T8xfcO{^pS6wcymfDY*`CzXW8`HaQnwI|(<=oO@{OAl!c}Y>wqxL?4EE(<bf-=o#?gr%seZ^6w8>o3kfzhVy?se-JVJHsm zOHeC_P2N&l75I_MUsqph6A_l#QQs8rl`YgznS4%W?NhC5XI{>f%#`@?HO1c^O>s5nb);>aWrGc zelUs*0h9b0Eb9#55@72rFs7N=YkbeJM@p?m@Ea6naK_fd+21S!CGR}LcK6wqhal~i z_sNKV)-LcxyjE;%9>wM(-E8q(n*~mtrFP>RJr}HU{*JKka!V=bpl)O9OMy17KCS6K z;*&5Lagx46_@9L0+cOiV9hHL$G}7c}x#3I7Pmt!ywW@Tr!aob%Q>{D>C(B0Hz7yKb z7r3O=#WPen#8#|gdFASL{uhezHSeF*KRaG5=KDJm*2Hcj5?(KeqmiPaBdep{ZM$bO zCSCT@&|sz1&9gUKpLu-g>dy4q`m$T)`m_45OwYhIg)V5(qk66J1+wWL zHdhgT#=)ByE^YbE6c%rm$ilp3I^gWG+nWzTov`}!ee~9CJLC~8L!VvF6*#SlJQ3k$ z)C&Az&mb$sGK(J<#*mA6Kkk+raA-)zS`+QxuCMrA;(>_cqC zXVQhWnu$FG77EyG_U$NSWt3!Dt^UcT`E{$ZsyLomO@m{f&oUY$c367uxV6=Q;*v>S zPA?Xa5iQq@Pxj2-Hj-Ng=%4`49j-6sOawIsT_(6nCRR^4J5>AH2{q|71#=(ymW&rF zJ+f^m7#Is%QWKm-*>66~luVP9T*4c>?FF%ng}O)k%5_OXcCL9OX4<0kOi;$i6kU4Q7+(cW7?{9 zZClyLK92vh@_~WI+1qN89`_Z3eQPp=<420iM8_jSFUpwQc^*RPy2obJw{WpZ5PlsK zVq{8TAot^MXFd>C=W0Kw9Gvu-lkXe*2zt7-bnfIKW6?3n_}X;e-{%Zk+#B5-dzdOU zSHU30gkHvvZzj4)KDZrqvSrNduf8x4D?flA-hk4FKZsfL|+GKJ7=&yiSs5XHMQy(}6lzz*`yZ%QU z>R$T*?Ykk0S?Hgq03*8}T4ID>$QX&f%`i;GB~m!-oZVm~kSARDhpfWTL*~N-5`PbN z%1eImZ%I;4?K&}6U+wjr`}(en1|Z)?2QhGxK)U7 z(zs*3DJ?M(1S-;~yT*7raBS4)#WqrZ06I-l3gdP>)4dXN zM}%w&XOrNFeI#nuC$ECL_i$}S(;P|LK!(jmUjto@6U-Y(Wu_>v_jA8UE#IFJ6np~H zDTz*tlP9+@+XC}#Uv8p_B)~C|8w=5-{iYVE{?}AQck37N4FZm7pBB1yRzXA;RAB+iUg1%(!oL;Eb}zx4rWq+grOBYo=eIpt)@; z_#m_7#ig!_MuT22$;ksx;d3jHS36MRE(Od49IE7}LwT2#5Z1a5WB@o2zG>;%bpJ@l zrJSk?b|R5slce_P55dn4l~BJU+jAcTR|0N1Ndka7s2lkzpkA zUp}Jd`$92)-P7c^zW3U5TpjLi@o+jktJPP0DbZ`_ic5W+&79|qG$RycKDWL%x`a5w z3YUCKYHOU3h(6;q^NB$jwe1ZD_>J$GB*6gg<841Bsz`G&R%4)-G#>!iHgjXh94RiG zP2>`fr-CoYC6kM1zD}8Pa7@C4%ItGceB2f-ULCbZXo|p*0^`UWFpqvjP?m2Cx-T8a zF;$=EBz>Cae5DrntbYZE9R0d-!K*Zbf9nqG(-&?etxoUiZn@XBliT`f@7YUI>Mh4s znq!TZp~t{Ob(ls{#y4*jW*2aES8F`DpA@8QEw-y>aCv%*TR`Fwa`Wo7h7X7P8>8{EYvaW+JAQ)x1Pyqv|u| zk@w>rSEkf&lEYuRNCc$lcMj@hQCDe=g^9hX`S6$?BwFycP$9^fFRr@zk|Af7Y}A#% z_41w0q1kZY#4qj&20?kSLV&t6M-o&aaP_uJ#}M&GFb?LB`F&qqxh)>4pceEaaJ&bR zV~eue(Nc~BRAAo#`N)ckPhy#Fk7jC6FA&~OrOY905|@GofKpJ8z<)yN;hRQgZI|Vc zK_m)3(eU{I)!;IwHi8h7kBSEmCbwQFSK8Q$eAIL~+U@f6}oPS}!g(7A^l? zty{mnkQ?0WwxuIMojj-iwe;TjWkbijS@NCvT~262}Tv z0qLL?fjvgJS=>7lZg$kLD$t;~pdpAemNCnfuk^1L z$u91Z-)gVQM9H?_W&;V#K!J?<8rOD7XHZN*3Xm<^??3Uc`@vCz(|;E!UY;tP58yfh zb*W2<^8y5=HPFI|hJ~O5jDcw!JR^oF7sn)VaCKXN1IPp4kr6_n9sKsT@_GOL?Zw5e znw@{ZAk5%r@P+W_@AJuwE6z>nzlbKFHH0aA&ORN%>Du>wRAEuZG|Fa_1Iql)wT6Wm zIrJT_OQm$aG)vJ#oruqie5GitiR&(0qDI z&A0i@8#7BsQ$rk=rGkHxYoXY8^+Obm#0=mjBE2N8+K0i5%oHyEqx^3raP99|z-E5E z_0YxC1FZckhHuldS7ylZYdu+aPcVj&d@v~X6wCmp)@cMTn}FhE?O-7#s5)Wv3&O96 zS)sk;G%{I)hh1-nhS(0n>-esfA(ngRQI`?LP5b?KQg`jTh3n>*l%bSw0J{xm2vFfq zu$8;8qFy6<4Xa=oIq5QoPVFJS74UQ6dJEIJ?8{Y@3WTyeFhS-M-#?1oOS5u^a`}w> z9fFw(;=X}%#NmztT}5Hp0PlC5ujI$`pid8W`etlGidt=n~8?(KQ zILbK-?$Xe3?r-2#ji*yMx`3Dgj({Je*#K?~-w-Zv@yU$PS#o7h?rg!l8k)G^(ux;u z7=cM*!B!M>pu>OKgj-+HBbLH|X~h3!tKzM33^vD>dmpujj@*I!SXUyEOe4{!4Zu8i zbZF?aO_(=flUh{2(z;lu@$l7=pYP4rxwTSGzi6ZP8d1VB!IFd=jjmMP^Xm@WD>1)0 z6Bk+SSeevAST~`eiGMH2@=^AA59dIrNBX;RNbl)X#eL3Ue&k>-ISPD47dtIy$&6Ci zG;RQ&7I+RW}e|$|HGJt&y zIK7@66DpfIWljPc{+Prx2*gvs`631a-8Km+1hXIY-yA0>cqk%0&3o4G*;ubsJfs${ zsts--r1=UO!mu*i9?&PbwR}6B?zbYk?$nQS_5S6Y4{yl5%%Tca_s$7T$*y$1hBM4+ zR>YQjp!TbN-Rtp=&tJ53xVBHG+xw{4n3dFtjLQn64WgU+Z0}rD^f=jeLYwgIcky`e z)roNqnC&C7oftbLFAz{xTTs&5G_NMhnmo;ywH228JW_0B8$V&}8?6Jmfq6LYAMXaEc$=x3ij+i*@{=Ff|C zDO>b}>-8Pug~)qqpY@3_-CP*YO>tju4)9UKB^{fh<>FqRAQm^8x&D}y?z&1q#hQ>8 zX`^neju)VVMrs4UW@%go+QOdiJX}MSoLz8Zykjl}52e~M`zAe}LjKPy4X{BiWIDX# zYJV>?!t>z^AMXpB2?ckD+T9f{I%XwKNAr2sz^r9a*A)m)>hgiS*?pc7Dl`(JHVaVH z^}|QBEzTk>L-S$}H|%qFz?xulvqm+tl#HOU@VZFegau7(!h!*-Dxu?CvPP+2%B{XT z?p+m3WWI$s$O>mN`5Ob^4}Br>g10=Mg$$xz(0&I2{jdFk`yG-(5UAn(dh|Is2r9`u zOE!88{`hC?7kQr3`QHXk2s8l(3cGB-gUBlk+`wNz#b}wQh~qgm6ME!5fJ;Hb9kBJx zgK8-$>83Wx7Xj-EuLelmR!BG5-nsQ`am#6klJSf+?dPpU>N7jJM}oR?RSgKPZ`$Z| zf`i=$(UmycVD7KaUS)u1i-;?y6n&2QSKOSeb}G2ho4!&0|30!J9i`GD4Tb*D6$3Q`K@##E%SR%`sc5ADqeBF%4_sxJY!z zM{{nM|Bk{Zpj~ej>`XA(ht`oE1^A||Sjlvd==)8hp zE|@4m{YdKhG8O|32c4^kuRsDBHQ< zo{1b<)?FBNd4cGE;u3`#3NRA}3G*PH76$HkU6M^@T%OxA82LI+#my0?HK^spL?g}A z7mM^xvWyn*=2P6oG$3ld1||o3Z!S_f&EXD}+o+UF2A8-@j-cVVOi%cF31v>B*FGH; zqHXf$D+UHgS)uyNj>_L+!bD9cn8Ih?gHRN z;9>}%RL?FEZ+|jL%kU{s!$2mQ z7;=RE1Q|J}=!W7xgo|;sU=Y=dhG(;12p$oz;b0bo1r6v@aDSrf4PcxC*R_BU|DeFX zAIZ~b`hNux2<=l?R9Xvu{7&f99Yzmz_4%?z)_8@Cc&7-6hlrFZYBeBmdc;X=cOXT3%Vu5Nyh)B^r!JQAXes#~?c)jiCtXJ3XmHrj}KQ(a7`ZM9T<+bP$))(D_JK6ex zh;YarN0DK4g2Wn73ljR6XZhsh`NLXKg`-r~3pcgSQ3h)3Y9o7;k{v=U2Jmn8g2z8uUspSj4tph$Vi!eY5W7mn2!gF9%u-eeD* z;!!aEZ^q#vn`SHq+8?!~dIgNf9&yre*&c9}er-uAt(KK`Kl>vBbvr z!p@2^N_n`VjQkKc!?h_DM8Gv+mLZ;Z44TO`{yEa&7%qt>REwmEPUF2{P4u!8?yTsf zVm<$M!NVDa&uottDbdo%69qzJhi3 zF35EE6KK*jF5<~EW;zIEra)*9?<+X7?mNV4|G2#}^8Xw&irv+PK(b6os~t;A!K!Fp zT8ib`@+_v>t_7=h12C(`ppoSI1^B?T>IBzCx)Glk$ne<_e01tAn6{%X97bP#>GfqV zN1Z0G9^Dc`M-505A*mpMX(aLfo{f9^rtLR{ji1prbgHNCVst8oy5MW;eb`>d48+X# z5zqaS+TL@V%sBZD8%_{z2>3VVe$kmJ51HA}MvlZY=4E*6g87OR;Dwk{lz0PN`3rB( zOKTaX1BHczWx=&iXYUPERQ0c zZRv>cHBsRNsruV6X!3m1AK$iV=(S8_PsxrnHBo%(X}`w$MyR*m+`%DEN;bS>vgPKZZJ-(CN`2S9;$q?@oBZX?o>7IuM*k`{ zpX298&jfb9+tzuf>wPsy)pkgTPy( zveNN@QGjJO=wyxcS@jeX&5S!0@|pck!3k!ke~GD*i9V6m7C#C%;~La@-rO92>WKG< z9cEVS4t`IhgLx{rMYv_rFo2F^kVYOh&KjY!cs7^8BECmI0+^IeATUw}pb6tTf<57O zN4;@4+fT@!^R6OQh5sj}lcquUr!bCyq{G_R)(xGqRm;y>=(veP!Gm^*IQq4FBu;C=3<-$_;0F!= zqNnogs1Y&Za$;`e%TXx_b7_8ga*0>|b@T0L#8vt36<_7G*sAA6m?IsQ)2%SlRl$ZF3#wB23%JW|> zQfuVwSIx5In}9*vX7n-y6<8GJ`7v47^&nSe{gr-1D25Y)-mt!95zj_YWaNWGi%$_R z7ka#H3=vqx%Zc!`nPuz7K-@B>__quGSv}h*z%VjdxEYN4*+}=}Rn+?N{jn@SV&KDsjXd?9S zp7EVVhF;bh#gr`4T&?Dskn4oF@j`K~Y#D_~pqzg_NE3M$<)qkmjw{UIOCv7;}mjq=;d`3leQgVA%=`E`2kBIdIhq zC&M>-K}kScII1YwaIv1&L|?S3`(B2Jb| z2NZuoTefK$^_MrOx}UM)DJ;#=)#?{~qTyWhXr-s56?={}@i!uBoHceS?E&z+j zKAmRMJu^1&PsOUcxk9_2lG=)6_oPW({bpXVbu>61kNR_GtC5aYi9M6v<=kkGHH)ej zoiU4Wx;Y#-s9OJSLeD8ls60xwfgo0S=0(NnyG`f1WQnsOVNovzbV%&d3^hvNbK8&w zisOgw36n$Fpj+k4c?q7MKhT9a5Ck@_U4&j;4Faee(njyl449k2Em^n`ywnzy3&1FV zo3#xz;kIdacN`ItApbD9#xz#*T$VpE1J&`Rj0~qbqdE9ukpfir+%cf0-VQO_(8ZI} zm*b#awfOGZHd(g*vT4*8FeF_;lo0MU>-x2vTJlUJYzbqAMyw-ct4z~|HAYg{-*9}V zhxsV3=AupPzFrC?5fto2cI=AZE*hORoR;MBTP*E{-&$?wo79-`$9Gh39{kXp)^T&2 zc0F08uLG5RRriN9imit+0=oTS+@0Yuah9Jr z$nJ&A3BPg$s3fI@Gih4GxPK#b!jcYfRB(zMG*AG|8Dq!7yuA?hjx zx#OC7$X!d`SLWer40g$|lz_FY_wqNr1JP5}i!X&ib@zS_0@37uK-tWk2n)ko1YuJ& zTYWO>Du-wyvYmf@EB>T}_#~PE$-Kvqb9{pF&?Gxq{#gp;8E|!rURMyX!Op8FJmbbj z7RnV`@uc<5hJD&D@v6tBpKG}^)z7OWKf5hOcl-&~ZoW1^s%md`6&P_1S1Jlg`3#EG zTb_M6Xj}JARwwb@p=#gYs2b+(iYD^SE?T%TQjlm8xHae@JW%IpEl8kaRRF1GsYOKL zzc3|X<|2PDp-ABasz1Mw_rcskd?+UVUr)VGb*ZT4Ik!G{CdE0Mx7?EocEj*JRJ3X{ z&Ytz~UQ>R=aKW{^z`m2WUytJor5~dU6#{PsCSKMQJl?-+`xkiGN7I(Bo#1i_MMtq5 zaWjY5B)ErFa&D2Aha)8c_kc4&LC6K{Vk%Ph$z+N0dDFw6Zsg4g3%9wrxvinSYntg4 z?@*~1Gyt&cYSxdM7S=vdvp782XjkbSy34w*9ws43pTeRb4TmQ8(!JiHQ9b>a;X(i5 zWbi=%OQA5-S+IaQk*D38XGseT6m}W$_krJk(QsTE6Uzy)`p>@^Fus$G{A(500B052 z!WawPXpG26RE^4oQ%Dq=$ZeX~24he_!+n^0$mUKjq3qu!9kAc;Y|GQ){TaGnUQOKe zD;;I5jqc~Vmdob&kn1`0FfbOO?d*$fZD)^bBz{D#$jG0P!MHyx8U(yeg-%cf7NqKsm2U;Tp|@a6am3-T z1=D-@{s{u9WlCgOE_w(&#r{ly&@F*C5h4S1kiJF(iCLHu|As^*cDOpHxgI zMTIuf=Ev(tx18w?c+tms!9i`jzIeQFH^vRKoGff3z{jXS<3qO$k!l`|(TI!^U`=Zr z*|-?;en3#3$DA*K%dg-YXaT;fhd^&^-sL+y(+Nlk?hAZyb{l2WPo_M#!1Mhqc+$S^+Ti3z*?j0!AXp2CtAK7bo5VhDbp{+ug*7@=;>IeM3kt|4m00 zftEQ8gX_XFlGgzEOQlnSSol8_9{g1RKm_?OheG*NY$1+wrT!;$!Ceqn+g>3QFJ;JL zLzxD#3H;Qu&Jba+V4d?cpnMAxa@*to=!hoaxcA~Fey){rd-A!9BQ}Bb9i1NyYBFTo zW6woo$96aj>POA>k!punFY2}%Nv!i27b)&%hM}7#_NdJ`P9bn;8I(}vsjf53T?4te@1`mOlI2Mit8v?PiE~ytWxpQho zKYe58T{Z1r^=ukN7$AL8CnrC-MkmY3ecmamx#CyU&e-RgZxcfzL+TF8P_~aw?LM_+ zNXs*EF(bm0D|_N*7nS)oIzAD&MORm?ZmKe>nzfBOZF||G+BO*G&%fq=yn0ZbQ_|6DGn2UDs#KnyvuVB>ODiKu|I1@8&<*#> z-cXaI>QwaIY5m)TEse`JW}QsQco&|k2Xsic$SDGL{h1#%M8g{_T`s4O)roJ=EM9SG za`MvBBe3=w#l5ypb9cBWTC;ilF=f9{i3$XXrJxlV$DH*n(kGk~{4$|YQmqlp02aa} zp#px^ozS^Hc7oMsN+en~AG}#I{%Vf+8Wt* z@=w3$%MvZ$tKazchjX`0Sdq#B!*sbL_Av&pJOf_uZi~!%*}8dSN1$idiEX`g0--34 z1U|-c$Ni2@^>ndYZ)yERXm6h`vwFq8jh1q~Iw7P0#4!k1X9-+<1~>&*02d-Te@7ZX zqV`Yij)aN_c%vbDiv!=FZ1MlouVBY0ta2T!gJAR1fz^pLYJJfMPqAKD(6eHnA- z25%zap^P4`UW0%PK#y`LA$WAAMa^Jd_MXOvn4)bfH-RJXJeT>OsNa?@8~?1~^7gA; zuN#=>wq<8M*uiM{kg(17uyw$W8pgUAS*zzwBdZMojTl9t#?UFD)l-9ScJ8S&GI?enARH!U|Gu13O58X9i*P1q@K@rFpzKJR z;kFapjhD|6!u(&fpF3K3w>}cE$zZlEMd{gV6iuM9<-*$wg2v}sRPy_N1hc-(1)OOI z4kgGeZjZnax|VYYts`(-P$<@B6m$a?j+=s7f&1Vq7(#AMUfJV&!25CqCxMv~{-cES z&A$5dH7H|S$me)v6+9F7+YZtlR^py|(Nih#A+Oc(;FMavc0IvKpQ7=H@%&$+4wf1W zUF3wsu7^8ZwRs-%XnnhME%8vkD|dV#E<69*C48n6Whr~d;V zVjnNVGVPCYcFqT>2gm%jX`!w2HSnQUO_8-Kmd$&(9T@%DIA>Z-BCTPAz7+hGQU<~3 z(gvC9LLvpj%VJ2IeRoDw(*&9uGGv zr{hu9=qpkqS>zTj(==!w+m?oOA|>2TFb8T;Tey-|5X3B4@Hrs4LrDnw8t^7gYZ?zN zn26d!gEr9m?+UF-8RX#qSUC3gQgZ4*Ze^v)EnswNn%Y0~XT13Gg++Kz(-de1kd^eJU-arJd;vcpKBfd>Lc6_r$J5|Y~u)$D5A`XFV;S~)2e6c{I*~(0|ED%L4fK5 z#=-0tu{X0EyjLFgsF{!$_)@4LK~=22qkeK@^dsu^t`+R^%TH?JV%ELaigzZt$j#@G zk*0tPD>f-SxH4173oN8#g(kg*n4N+hRpwkGs{qXh*DlQAq6+|iE4p%_WZed?ZNR)! zQynsbxuJzXim`0iB~C}EOPh_pA zW8Kmi{T|4Pv`}9n(yPvqUtG0V;X#C_QTQl+*Ogz2-Ga$v>KaeHg#1hUkc$ol1nwu} zb5An?_go5H_{tYDFe*y`4nQ(IAzZF{i z6agBhE^w0dzJd=wlT_@i^FKA(Dd0vU&0 zmA@5Q9Fr_OPkvJ~u;G1ZA+*#=V06Roy8E-?r7M-~m%m$@lci9;g1d57O0#G*!t+4I z0k1RC=xXg^`D;t$@?&@sPXrqM(5!+ZCBfs3}T8Drw;-|pGeS2uU z0pW7id0-u_=@aHd5|l21Ufj*~&}3DnkU!rOR{0_Q1?>krfbe}N0g@m8FYd!u26%AX z|Br|6H)R{?#b2f+9~J*eYq10py-l?Ad}AMl5yHuz0`G|kI+YQXRd@BH%q{ZuxGeWn z$(@@vKryg?!n4=jcPP}uDb1q!r%Inq_mq9KrDeG*Z$3@_5qX;m(BV?=qolJWHamp& zEq43U15ejZwD_w1i24~qI9%*U;^Mmas_W7kNMpuY`Vu zSPct&yGN;nL-rA99*7hd~RdHW58<8~LfB|QATQE452u52qh^!Y0{fISY< zr~ZbGls{pkX*&k1btIHaRGdyv&0|+{0R)+rtMZ%-K7KvsWRL++jn9Yz!rvAGVmpaL z;e|aFlVks7%rR;g*14YMsNHRv7gw;5aO@{hDiJ&>G}&?e`{ZaZd#BLMDOyCALk_TI z%3pKY|48%Msx9@)jBnGnozuJYz`$uk#q9kLBApcB**8KvK9awx9n5_hZoGH&td5jn zFFnIf@ye@QQ9`!)Pg@er*!U%Y7F>W56Bj&<4|qIH_zUn-WUEzG2Jn>#PvMT~e&E`y zmQ3SfPgk?mVB+x?!^CrWKmf}{7_n3TTaL9_LMaDXA3haqGqj4_k)lxf(tV)qJnLuc zfvpqarCK!>rJJf_&dS=pc7Tw?mT7(K5O%mC--HO39K)P zENle=qrso>l=UTF_k*T0GM#k?8?C3KDEi{CvmZbRT zEsgRqpyg3yTL2h_hDt6$*f5fGfF}Sh8CT+<5KA*XnH%{`teeEkP2e6t5d`le3b1j`-G8U@>folsE395Ew-Ue3yPz8A<;Gh;8o?^DArE=>?Pf^u?H!F|+U|@w z4gC?M6EkC`Y>zLW-;mcmU#!+QTK2)&`HJS3lbn_M(ujrNOPN0LtM}S_*da^Z(C5eA zo;&`;@`eTK@^!s1lR>B;;koD&<>gfKos^GA0Los*1dp2#XCak2ADW}q<-~_kFR4-+ z;?+eAC*Hk3+@NrSRAv=Wc-fnl<+BE>#I^+Wl=YQSl?;LY);h*r((aLGbF{J@uYn)_ zutEKWI2Iy-VtWC-v%=yj+-8W55NahJUQm2qjUuYFjA!Gegd;=J_q|`x0-2<)eSaX$ z4B(MpUi2kQapQ|QyHF{OF9;RMsH*d*2NF?3yuv2(AtbZyy4} z!qYf2z7HpECdh)fTv<_d(B^*?)?uAs9d;;o3IIIV-w|s2N2GguZOZHx_$>lKmA3kF34GC^C!!~Xhb#Ju*ok~;@Z2*g7sFBA)4L=_Y`|J4uqzx_?@Q7g7OS2(TEHJ+fVS@@X`l%>V*$^=?hl3zxGg| z_z63x$Y}LQLSDy4{wc_!Ww%jNdJsXF<@?0R~iIbGqOVKT)*& zXyP^HOhQI_MZb<~#$n+b23Jlr;5;(Yo)*s8eE*&2amJyK8()4lm1?$IRH1sM(=AAwRT%Guf0g+8wBh>3 zj2c>DocKXnj`R>!Q&ay9zB;z|6QnD~kTvlrE@UE&=}(8Gi;1fe&{_|{*JQnhtP4j| zug3#3?M^>lB8rT@VGspKWttuYps5Q!0RqZTh02}rEUepfgdBslQssDKKiwD%M1Z+c zoiO1jNxlqOycS)?qqzkhzj9gZ%EDk_3bl6Uwcv!ci!?F@IMeT{63oN&zZ%XhA>BEv zYQAu!ur7|lFjTwmHMZ0}xB2Q}_qQ+JH2TCOr_FADx|@EGmaeal|IV~)+%(w1tw$?5 z;>YS43M>H;2s+Lx)Ae|Q4Iyx`76Cpk{mkNSl4Td+AFxUnLZ%4e!`G5MbIo15h4kEb z#=cQJEQ9^4A|$TH#ZQvAgQ(lWrBXY<#RzFB;Z$8x41 zYB3#m8n?`D2squIk)cPSI!}9iD$1ZIu-S7-^ro!8@Y>;JHo5zt-ARgZW@COIE$58bo$P}K#0&UC z+PM>G1e0Flf_@_s-SJ(*45b!{vxo?oY(JI;(|kT15yV_L%IWmw4R7A>F1_67 zV3x{+l51?VvfB4%tr+Awt9De#*G9{#`01>Ih6HV}#8gkayX5)udhHTb+J^Xn)H`-p z6}5c1DsQ)5Iu*U$(ez;YAo(2%$qFple#r{~UGTk!1vEN8TsN8~6m34P?EU|Ar%P#v9hZlT7`F}50$+=oD&#(t*-aIdfx+5GRoa!7G*As&%(nm=v=)Y0JQL{yGD6TI?DM-m zq2=JnojiFQ1v%}=Bf^2Tf7HcPHqESye7=azY?!8%!kg{S#zWV!hher88IckzWnA0F%u9!gck%IFZG&$f?_YYG17T9CbWa;j(2{D!S*PuWZk#DttBl zX=8$>uU-p+cj(ELP{9T??B%)0{sbOjHBeZ)Zmz_Wl4Wy6ITD*XOh5E&J!-S)*F(2e z=(M`a1vW3FDZ&TNdyx&pG!25dJ$tok=QV2KesHon?p;5=-BCE~UeMR`xt`oa!`eZl zm0Y#>3_<1zY!^t*LKyVVD8`!~X#KE*L9U1gNvdg|1(``Y3?^QzP~?ca>_VjtV(@|2 z^aQ0Zk(a2he0n|o;O1ZG-*Rgo9%~1q;I|HML6c-c!Nl?xE+v0jg;h0;OTYz~qKO<* zG!4-vmphAYtQ8{+$v$OQym2G0{;75^zIkie?9|Wb-i6FLb0bP^f<Yf_&9nky<*O_ z*ipik?A&BqtaFVeB^wN~B*xp*8UEjvdpax0m_5XzmF-)qLh-zqitX*AC=k{d`Pl z&3sns=k-+s?{Pna;;p^u#anjJELrJIk4l%

^Wp3-?=jorGxbl9yu(>^Fk!z0wJI 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

f@v?%w0bSl(;?nHx>*aFD75Hkx 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

MKH! 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�K^{B<%_yFNT}SdCQZIZY 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%0AD~0)xxFVI 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 Date: Sun, 23 Aug 2026 13:48:13 +0700 Subject: [PATCH 6/9] fix(compare): correct the window against the HIG and fix twelve UI defects (#721) Claude-Session: https://claude.ai/code/session_01QZKyY8vPUn3myu82D145pe --- .../Core/Compare/CompareRunner+Data.swift | 12 + TablePro/Core/Compare/CompareRunner.swift | 9 +- .../Core/Compare/CompareSyncEndpoint.swift | 59 +- .../Compare/CompareSyncSession+Editing.swift | 6 +- .../Core/Compare/CompareSyncSession.swift | 152 +- TablePro/InfoPlist.xcstrings | 47 +- TablePro/Resources/Localizable.xcstrings | 53182 ++++++++-------- .../Views/Compare/CompareApplySheetView.swift | 74 +- .../Compare/CompareDataPlanGrouping.swift | 202 + .../Views/Compare/CompareDataPlansView.swift | 198 +- .../Views/Compare/CompareDetailView.swift | 4 + .../Compare/CompareEndpointMenuBuilder.swift | 20 +- .../Views/Compare/CompareProgressView.swift | 82 +- .../Views/Compare/CompareResultsView.swift | 77 +- .../Views/Compare/CompareRowDiffPane.swift | 18 +- .../Views/Compare/CompareScriptPane.swift | 51 +- TablePro/Views/Compare/CompareStatusBar.swift | 96 + .../Compare/CompareSyncWindowController.swift | 194 +- .../Compare/CompareWindowContentView.swift | 43 +- .../Components/AutosavingSplitView.swift | 14 + .../CompareDataPlanGroupingTests.swift | 221 + .../Compare/CompareCountedStringTests.swift | 134 + 22 files changed, 29536 insertions(+), 25359 deletions(-) create mode 100644 TablePro/Views/Compare/CompareDataPlanGrouping.swift create mode 100644 TablePro/Views/Compare/CompareStatusBar.swift create mode 100644 TableProTests/Core/Compare/CompareDataPlanGroupingTests.swift create mode 100644 TableProTests/Views/Compare/CompareCountedStringTests.swift diff --git a/TablePro/Core/Compare/CompareRunner+Data.swift b/TablePro/Core/Compare/CompareRunner+Data.swift index ead9bd941..f4948e1c7 100644 --- a/TablePro/Core/Compare/CompareRunner+Data.swift +++ b/TablePro/Core/Compare/CompareRunner+Data.swift @@ -52,6 +52,18 @@ internal extension CompareRunner { session.selectedPlanId = plans.first { $0.isEnabled && $0.isComparable }?.id ?? plans.first?.id session.detailPane = .rows session.invalidateScript() + + /// Plans start unchecked so a first Compare cannot stream every row of every table, which + /// means a first run legitimately reads nothing. Recording that as "0 differences" invited + /// the reader to conclude the two databases matched. + let comparedAny = plans.contains { $0.isEnabled && $0.isComparable && $0.summary != nil } + guard comparedAny else { + session.lastAction = .none + session.informationalMessage = String( + localized: "No tables were compared. Choose the tables to compare, then press Compare." + ) + return + } session.lastAction = .compared(Date(), differences: session.dataDifferenceTotal) } diff --git a/TablePro/Core/Compare/CompareRunner.swift b/TablePro/Core/Compare/CompareRunner.swift index 086c7a3e2..e1c98011d 100644 --- a/TablePro/Core/Compare/CompareRunner.swift +++ b/TablePro/Core/Compare/CompareRunner.swift @@ -112,7 +112,6 @@ internal struct CompareRunner { /// Resolved for its validation: it throws when a connection has gone away, which /// must stop the run before anything is written. _ = try resolveContext() - session.hasWrittenToTarget = true let statements = session.statements let settings = session.executionSettings let mode = session.mode @@ -131,10 +130,18 @@ internal struct CompareRunner { progress: runProgress ) } + /// Set from the result, not before the run. Setting it up front meant a declined + /// authorization or a driver that could not run the script still flipped the status + /// strip to "written", next to text that still read "Nothing has been written." + session.hasWrittenToTarget = session.hasWrittenToTarget || result.executedCount > 0 session.runResult = result session.lastAction = .applied( Date(), target: target.qualifiedDescription, statements: result.executedCount ) + /// The script just ran, so it describes work the target has already had. Leaving it + /// armed left Apply enabled on a stale plan, one click from running the same + /// CREATE/ALTER/DELETE a second time. + session.markAppliedAndStale() } catch { session.errorMessage = error.localizedDescription } diff --git a/TablePro/Core/Compare/CompareSyncEndpoint.swift b/TablePro/Core/Compare/CompareSyncEndpoint.swift index 6f96d06ad..fdae989bb 100644 --- a/TablePro/Core/Compare/CompareSyncEndpoint.swift +++ b/TablePro/Core/Compare/CompareSyncEndpoint.swift @@ -20,18 +20,27 @@ internal struct CompareSyncEndpoint: Hashable, Identifiable, Sendable { internal let safeModeLevel: SafeModeLevel internal let color: ConnectionColor + /// What a person reads where the database is named. A file-based engine's database *is* an + /// absolute path, so spelling it out put `/Users/…/Library/Application Support/…/Chinook.sqlite` + /// in a toolbar popup, a window subtitle and a status strip at once, truncated in all three. + /// Resolved once at construction, because the rule needs `PluginManager`, which is main-actor + /// bound, and this type crosses into the executor actor. + internal let databaseLabel: String + internal init( scope: DatabaseScope, connectionName: String, databaseType: DatabaseType, safeModeLevel: SafeModeLevel, - color: ConnectionColor + color: ConnectionColor, + databaseLabel: String? = nil ) { self.scope = scope self.connectionName = connectionName self.databaseType = databaseType self.safeModeLevel = safeModeLevel self.color = color + self.databaseLabel = databaseLabel ?? scope.database } internal var id: String { @@ -52,6 +61,15 @@ internal struct CompareSyncEndpoint: Hashable, Identifiable, Sendable { } internal var qualifiedDescription: String { + var parts = [connectionName] + if !databaseLabel.isEmpty, databaseLabel != connectionName { parts.append(databaseLabel) } + if let schema = scope.schema, !schema.isEmpty { parts.append(schema) } + return parts.joined(separator: " / ") + } + + /// The unshortened scope, for a tooltip. A file path is worth having somewhere, just not in + /// three chrome surfaces at once. + internal var fullDescription: String { var parts = [connectionName] if !scope.database.isEmpty { parts.append(scope.database) } if let schema = scope.schema, !schema.isEmpty { parts.append(schema) } @@ -60,17 +78,19 @@ internal struct CompareSyncEndpoint: Hashable, Identifiable, Sendable { /// The name shown once the connection is already named elsewhere, so a picker does not repeat it. internal var scopeDescription: String { - guard !scope.database.isEmpty else { return String(localized: "Server") } - return scope.qualifiedDescription + guard !databaseLabel.isEmpty else { return String(localized: "Server") } + guard let schema = scope.schema, !schema.isEmpty else { return databaseLabel } + return "\(databaseLabel).\(schema)" } - internal func withDatabase(_ database: String) -> CompareSyncEndpoint { + internal func withDatabase(_ database: String, label: String? = nil) -> CompareSyncEndpoint { CompareSyncEndpoint( scope: DatabaseScope(connectionId: scope.connectionId, database: database, schema: nil), connectionName: connectionName, databaseType: databaseType, safeModeLevel: safeModeLevel, - color: color + color: color, + databaseLabel: label ?? database ) } @@ -80,29 +100,40 @@ internal struct CompareSyncEndpoint: Hashable, Identifiable, Sendable { connectionName: connectionName, databaseType: databaseType, safeModeLevel: safeModeLevel, - color: color + color: color, + databaseLabel: databaseLabel ) } } +@MainActor internal extension CompareSyncEndpoint { - static func from(connection: DatabaseConnection, database: String? = nil, schema: String? = nil) -> CompareSyncEndpoint { - CompareSyncEndpoint( - scope: DatabaseScope( - connectionId: connection.id, - database: database ?? connection.database ?? "", - schema: schema - ), + static func from( + connection: DatabaseConnection, + database: String? = nil, + schema: String? = nil + ) -> CompareSyncEndpoint { + let resolved = database ?? connection.database ?? "" + return CompareSyncEndpoint( + scope: DatabaseScope(connectionId: connection.id, database: resolved, schema: schema), connectionName: connection.name, databaseType: connection.type, safeModeLevel: connection.safeModeLevel, - color: connection.color + color: connection.color, + databaseLabel: label(for: resolved, type: connection.type) ) } static func candidates(from connections: [DatabaseConnection]) -> [CompareSyncEndpoint] { connections.map { from(connection: $0) } } + + /// The rule `ConnectionToolbarState` already applies to the main window's scope chip: a + /// file-based engine's database is a path, and only its last component is worth showing. + static func label(for database: String, type: DatabaseType) -> String { + guard PluginManager.shared.connectionMode(for: type) == .fileBased else { return database } + return (database as NSString).lastPathComponent + } } internal enum CompareSyncEligibility { diff --git a/TablePro/Core/Compare/CompareSyncSession+Editing.swift b/TablePro/Core/Compare/CompareSyncSession+Editing.swift index 5c9fdd43d..22f92a7d1 100644 --- a/TablePro/Core/Compare/CompareSyncSession+Editing.swift +++ b/TablePro/Core/Compare/CompareSyncSession+Editing.swift @@ -64,10 +64,14 @@ internal extension CompareSyncSession { clearDataSummaries() } + /// A row exclusion is keyed on the row's identity, which only the key columns decide. Changing + /// which columns take part in the comparison asks a different question of the same rows, so the + /// answers are discarded and the exclusions are not: wiping them threw away every per-row + /// decision in every table because one `updated_at` was unticked. `setKeyColumns` does clear + /// them, because a new key really does mean different rows. func clearDataSummaries() { for index in dataPlans.indices { dataPlans[index].summary = nil - dataPlans[index].excludedRowKeys = [] } invalidateScript() } diff --git a/TablePro/Core/Compare/CompareSyncSession.swift b/TablePro/Core/Compare/CompareSyncSession.swift index 161c8b653..6a963c2f0 100644 --- a/TablePro/Core/Compare/CompareSyncSession.swift +++ b/TablePro/Core/Compare/CompareSyncSession.swift @@ -84,6 +84,9 @@ internal final class CompareSyncSession { internal var lastAction: CompareSyncLastAction = .none internal var progress: Progress? internal var hasWrittenToTarget = false + + /// True once a script has run against the target, until the next comparison. + internal var isStaleAfterApply = false internal var runTask: Task? internal var pendingSelection: Set = [] @@ -111,10 +114,7 @@ internal final class CompareSyncSession { } internal var canCompare: Bool { - guard let source, let target else { return false } - guard target.canBeWrittenTo else { return false } - guard activity == .idle else { return false } - return source.id != target.id + compareDisabledReason == nil } internal var canGenerateStructureScript: Bool { @@ -148,14 +148,26 @@ internal final class CompareSyncSession { case .none: return String(localized: "Comparing only. Nothing has been written.") case .compared(let date, let differences): + /// The count is not the first argument, so a plural variation on the format string + /// cannot key on it; the singular is chosen here instead. Without this the strip read + /// "1 differences". + let time = Self.timeFormatter.string(from: date) + guard differences != 1 else { + return String( + format: String(localized: "Compared %@. 1 difference. Nothing has been written."), time + ) + } return String( format: String(localized: "Compared %@. %d differences. Nothing has been written."), - Self.timeFormatter.string(from: date), differences + time, differences ) case .applied(let date, let name, let statements): + let time = Self.timeFormatter.string(from: date) + guard statements != 1 else { + return String(format: String(localized: "Applied to %@ at %@. 1 statement."), name, time) + } return String( - format: String(localized: "Applied to %@ at %@. %d statements."), - name, Self.timeFormatter.string(from: date), statements + format: String(localized: "Applied to %@ at %@. %d statements."), name, time, statements ) } } @@ -199,17 +211,69 @@ internal final class CompareSyncSession { } internal var canBuildScript: Bool { - guard activity == .idle else { return false } - switch mode { - case .structure: - return selectedObjectCount > 0 && canGenerateStructureScript - case .data: - return selectedObjectCount > 0 - } + scriptDisabledReason == nil } internal var canApply: Bool { - activity == .idle && !statements.isEmpty && target?.canBeWrittenTo == true + applyDisabledReason == nil + } + + // MARK: - Why an action is unavailable + + /// The HIG asks an app to "show people when a command can't be carried out and help people + /// understand why", and to give a disabled control a tooltip naming the unmet precondition + /// rather than repeating its own name. Validation used to compute these conditions and throw + /// the reason away, returning a bare Bool, so every disabled toolbar item said only what it + /// was called. + internal var compareDisabledReason: String? { + if isBusy { return String(localized: "A comparison is already running.") } + guard let source else { return String(localized: "Choose a source to compare from.") } + guard let target else { return String(localized: "Choose a target to compare against.") } + if let refusal = target.ineligibleAsTargetReason { return refusal } + guard source.id != target.id else { + return String(localized: "The source and the target are the same database.") + } + return nil + } + + internal var scriptDisabledReason: String? { + if isBusy { return String(localized: "A comparison is already running.") } + if isStaleAfterApply { + return String(localized: "The script already ran. Compare again to see where the target stands.") + } + if report == nil, dataPlans.isEmpty { + return String(localized: "Compare the two databases first.") + } + if mode == .structure, !canGenerateStructureScript { + return crossEngineNotice ?? String(localized: "These two engines cannot share a script.") + } + guard selectedObjectCount > 0 else { + return mode == .structure + ? String(localized: "Include at least one object to generate a script for it.") + : String(localized: "Include at least one table to generate a script for it.") + } + return nil + } + + internal var applyDisabledReason: String? { + if isBusy { return String(localized: "A run is already in progress.") } + if isStaleAfterApply { + return String(localized: "The script already ran. Compare again to see where the target stands.") + } + guard target?.canBeWrittenTo == true else { + return target?.ineligibleAsTargetReason ?? String(localized: "Choose a target to write to.") + } + guard !statements.isEmpty else { return String(localized: "Generate the script first.") } + guard unacknowledgedHazardCount == 0 else { + guard unacknowledgedHazardCount != 1 else { + return String(localized: "1 statement would destroy data and is not allowed yet.") + } + return String( + format: String(localized: "%d statements would destroy data and are not allowed yet."), + unacknowledgedHazardCount + ) + } + return nil } /// A statement carrying an unacknowledged hazard is why Apply stays disabled rather than @@ -245,6 +309,34 @@ internal final class CompareSyncSession { return dataPlans.first { $0.id == selectedPlanId } } + /// What the window's bottom status bar reads. The HIG names a count of a window's contents as + /// the sanctioned use of a bottom bar, with Finder's item and selection counts as the example. + internal var statusCounts: [CompareStatusCount] { + switch mode { + case .structure: + guard let report else { return [] } + return [ + CompareStatusCount(status: .onlyInSource, count: report.count(of: .onlyInSource)), + CompareStatusCount(status: .differs, count: report.count(of: .differs)), + CompareStatusCount(status: .onlyInTarget, count: report.count(of: .onlyInTarget)), + CompareStatusCount(status: .identical, count: report.count(of: .identical)) + ] + case .data: + guard !dataPlans.isEmpty else { return [] } + let compared = dataPlans.compactMap { $0.summary } + return [ + CompareStatusCount(status: .onlyInSource, count: compared.reduce(0) { $0 + $1.insertCount }), + CompareStatusCount(status: .differs, count: compared.reduce(0) { $0 + $1.updateCount }), + CompareStatusCount(status: .onlyInTarget, count: compared.reduce(0) { $0 + $1.deleteCount }), + CompareStatusCount(status: .identical, count: compared.reduce(0) { $0 + $1.identicalCount }) + ] + } + } + + internal var includedCount: Int { + selectedObjectCount + } + internal var truncatedPlanNames: [String] { dataPlans.filter { $0.summary?.truncatedEntries == true }.map { $0.id } } @@ -255,6 +347,11 @@ internal final class CompareSyncSession { // MARK: - Lifecycle + /// `lastAction` is what the banner reads, so it is part of the result and is cleared with it. + /// Leaving it behind made the banner claim "52 differences" over a pane reading "No Comparison + /// Yet": changing an endpoint correctly discarded the answer, and the banner kept advertising + /// it. `hasWrittenToTarget` deliberately survives, because a write already happened and no + /// later comparison makes that untrue. internal func resetComparison() { report = nil sourceSnapshots = [:] @@ -265,9 +362,24 @@ internal final class CompareSyncSession { selectedPlanId = nil runResult = nil errorMessage = nil + informationalMessage = nil + lastAction = .none + isStaleAfterApply = false invalidateScript() } + /// After a run the report describes a target that has since changed, so it is stale rather than + /// wrong: it stays on screen to be read, and every action that would write again is withdrawn + /// until the user compares once more. + internal func markAppliedAndStale() { + statements = [] + actions = [:] + for index in dataPlans.indices { + dataPlans[index].isEnabled = false + } + isStaleAfterApply = true + } + internal func invalidateScript() { statements = [] runResult = nil @@ -303,3 +415,13 @@ internal enum CompareGrouping: String, CaseIterable, Hashable { } } } + +/// One cell of the bottom status bar. Data mode reuses the structure vocabulary deliberately: an +/// insert is a row that exists only on the source, a delete only on the target, so the same four +/// words describe both comparisons and the bar does not change shape between modes. +internal struct CompareStatusCount: Identifiable, Hashable { + internal let status: TableDiffStatus + internal let count: Int + + internal var id: String { status.rawValue } +} diff --git a/TablePro/InfoPlist.xcstrings b/TablePro/InfoPlist.xcstrings index 0af4dd1bd..07479889d 100644 --- a/TablePro/InfoPlist.xcstrings +++ b/TablePro/InfoPlist.xcstrings @@ -1,6 +1,36 @@ { "sourceLanguage" : "en", "strings" : { + "Beancount Ledger" : { + + }, + "CFBundleDisplayName" : { + "comment" : "Bundle display name", + "extractionState" : "extracted_with_value", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "TablePro" + } + } + } + }, + "CFBundleName" : { + "comment" : "Bundle name", + "extractionState" : "extracted_with_value", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "TablePro" + } + } + } + }, + "DuckDB Database" : { + + }, "NSDesktopFolderUsageDescription" : { "comment" : "Privacy - Desktop Folder Usage Description", "extractionState" : "manual", @@ -72,7 +102,22 @@ } } } + }, + "SQL File" : { + + }, + "SQLite Database" : { + + }, + "TablePro Connection" : { + + }, + "TablePro Filter Row" : { + + }, + "TablePro Plugin" : { + } }, "version" : "1.0" -} +} \ No newline at end of file diff --git a/TablePro/Resources/Localizable.xcstrings b/TablePro/Resources/Localizable.xcstrings index da439984e..25a101bc1 100644 --- a/TablePro/Resources/Localizable.xcstrings +++ b/TablePro/Resources/Localizable.xcstrings @@ -98,6 +98,426 @@ } } }, + "--" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "--" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "--" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "--" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "--" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "--" + } + } + } + }, + "-- … %d more characters not shown; use Copy All for the full output." : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "-- … 나머지 %d자는 표시되지 않음. 전체 출력은 모두 복사를 사용하십시오." + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "-- … %d karakter daha gösterilmiyor; çıktının tamamı için Tümünü Kopyala'yı kullanın." + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "-- … còn %d ký tự nữa không hiển thị; dùng Sao chép tất cả để xem toàn bộ kết quả." + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "-- … 还有%d个字符未显示;使用\"全部复制\"获取完整输出。" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "-- … 還有 %d 個字未顯示;請使用「全部複製」取得完整輸出。" + } + } + } + }, + "—" : { + "extractionState" : "stale", + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "—" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "—" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "—" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "—" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "—" + } + } + } + }, + ", %@" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : ", %@" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : ", %@" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : ", %@" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : ",%@" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : ",%@" + } + } + } + }, + ", and %lld more" : { + "comment" : "Plural suffix for the number of overflow items.", + "isCommentAutoGenerated" : true, + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : ", 외 %lld개" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : " ve %lld tane daha" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : " và %lld mục nữa" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : ",还有 %lld 项" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : ",還有 %lld 項" + } + } + } + }, + ":" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : ":" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : ":" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : ":" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : ":" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : ":" + } + } + } + }, + ":%@" : { + "shouldTranslate" : false + }, + "…and %d more lines" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "…외 %d줄" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "…ve %d satır daha" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "…và %d dòng nữa" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "…还有 %d 行" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "…還有 %d 列" + } + } + } + }, + ".%@" : { + "extractionState" : "stale", + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : ".%@" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : ".%@" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : ".%@" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : ".%@" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : ".%@" + } + } + } + }, + "·" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "·" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "·" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "·" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "·" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "·" + } + } + } + }, + "''" : { + "extractionState" : "stale", + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "''" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "''" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "''" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "''" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "''" + } + } + } + }, + "'%@' is a reserved Windows device name" : { + "extractionState" : "stale", + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "'%@' 이름은 Windows에서 예약된 장치 이름입니다" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "'%@' ayrılmış bir Windows aygıt adıdır" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "'%@' là tên thiết bị Windows dành riêng" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "'%@' 是 Windows 保留设备名" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "「%@」是 Windows 保留的裝置名稱" + } + } + } + }, + "'since' must not be later than 'until'." : { + + }, + "“%@” owns database objects" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "데이터베이스 객체의 소유자는 “%@”입니다" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "“%@” veritabanı nesnelerinin sahibi" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "“%@” đang sở hữu các đối tượng cơ sở dữ liệu" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "“%@” 拥有数据库对象" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "「%@」擁有資料庫物件" + } + } + } + }, "\"%@\" was changed since you opened it. Review the diff and choose how to resolve." : { "localizations" : { "ko" : { @@ -201,6 +621,40 @@ } } }, + "“%@” will be disconnected and any in-flight requests will be cancelled." : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "“%@”의 연결이 해제되고 진행 중인 모든 요청이 취소됩니다." + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "\"%@\" bağlantısı kesilecek ve devam eden tüm istekler iptal edilecek." + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "“%@” sẽ bị ngắt kết nối và mọi yêu cầu đang xử lý sẽ bị hủy." + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "“%@” 将被断开连接,所有进行中的请求将被取消。" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "「%@」將會中斷連線,所有進行中的請求都會被取消。" + } + } + } + }, "\"%@\" will be moved to Trash. You can recover it from there." : { "localizations" : { "ko" : { @@ -269,6 +723,40 @@ } } }, + "“%@” will be permanently deleted. External clients using this token will lose access immediately." : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "“%@” 항목이 영구적으로 삭제됩니다. 이 토큰을 사용하는 외부 클라이언트는 즉시 접근 권한을 잃습니다." + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "\"%@\" kalıcı olarak silinecek. Bu token'ı kullanan harici istemciler erişimi anında kaybedecek." + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "“%@” sẽ bị xóa vĩnh viễn. Các client bên ngoài đang dùng token này sẽ mất quyền truy cập ngay lập tức." + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "“%@” 将被永久删除。使用此令牌的外部客户端将立即失去访问权限。" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "「%@」將會永久刪除。使用此權杖的外部用戶端將立即失去存取權限。" + } + } + } + }, "\"%@\" will be removed from the sidebar. Files on disk will not be deleted." : { "localizations" : { "ko" : { @@ -337,546 +825,685 @@ } } }, - "%.3fms" : { - "comment" : "A value of a time in milliseconds.", - "isCommentAutoGenerated" : true, + "(%@)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%.3fms" + "value" : "(%@)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%.3fms" + "value" : "(%@)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%.3fms" + "value" : "(%@)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%.3fms" + "value" : "(%@)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%.3fms" + "value" : "(%@)" } } } }, - "%1$@ (%2$@)" : { + "(%lld %@)" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "(%1$lld %2$@)" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@ (%2$@)" + "value" : "(%1$lld %2$@)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@ (%2$@)" + "value" : "(%lld %@)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@ (%2$@)" + "value" : "(%1$lld %2$@)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@(%2$@)" + "value" : "(%lld %@)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@(%2$@)" + "value" : "(%1$lld %2$@)" } } } }, - "%1$@ (ORA-%2$ld)." : { + "(%lld active)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@ (ORA-%2$ld)." + "value" : "(%lld개 활성)" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "(%lld etkin)" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "(%lld đang hoạt động)" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "(%lld 活跃)" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "(%lld 個使用中)" } } } }, - "%1$@ +%2$lld" : { + "(%lld hidden)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@ +%2$lld" + "value" : "(%lld개 숨김)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@ +%2$lld" + "value" : "(%lld gizli)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@ +%2$lld" + "value" : "(%lld ẩn)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@ +%2$lld" + "value" : "(%lld 个已隐藏)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@ +%2$lld" + "value" : "(%lld 個已隱藏)" } } } }, - "%1$@ chart of %2$@ by %3$@ with %4$d points" : { + "(%lld)" : { "localizations" : { - "en" : { + "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@ chart of %2$@ by %3$@ with %#@points@" - }, - "substitutions" : { - "points" : { - "argNum" : 4, - "formatSpecifier" : "d", - "variations" : { - "plural" : { - "one" : { - "stringUnit" : { - "state" : "translated", - "value" : "%arg point" - } - }, - "other" : { - "stringUnit" : { - "state" : "translated", - "value" : "%arg points" - } - } - } - } - } + "value" : "(%lld)" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "(%lld)" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "(%lld)" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "(%lld)" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "(%lld)" + } + } + } + }, + "(%lld/%lld)" : { + "extractionState" : "stale", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "(%1$lld/%2$lld)" } }, "ko" : { "stringUnit" : { - "value" : "%3$@ 기준 %2$@의 %1$@ 차트, %#@points@", - "state" : "translated" - }, - "substitutions" : { - "points" : { - "argNum" : 4, - "formatSpecifier" : "d", - "variations" : { - "plural" : { - "other" : { - "stringUnit" : { - "value" : "지점 %arg개", - "state" : "translated" - } - } - } - } - } + "state" : "translated", + "value" : "(%1$lld/%2$lld)" } }, "tr" : { "stringUnit" : { - "value" : "%3$@ ölçütüne göre %2$@ için %4$d noktalı %1$@ grafiği", - "state" : "translated" + "state" : "translated", + "value" : "(%lld/%lld)" } }, "vi" : { "stringUnit" : { - "value" : "Biểu đồ %1$@ của %2$@ theo %3$@ với %4$d điểm", - "state" : "translated" + "state" : "translated", + "value" : "(%lld/%lld)" } }, "zh-Hans" : { "stringUnit" : { - "value" : "包含 %4$d 个点的%1$@图:按%3$@显示%2$@", - "state" : "translated" + "state" : "translated", + "value" : "(%lld/%lld)" } }, "zh-Hant" : { "stringUnit" : { - "value" : "包含 %4$d 個點的%1$@圖:依%3$@顯示%2$@", - "state" : "translated" + "state" : "translated", + "value" : "(%1$lld/%2$lld)" } } } }, - "%1$@ of %2$@" : { + "(Empty)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@/%2$@" + "value" : "(비어 있음)" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "(Boş)" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "(Trống)" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "(空)" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "(空)" } } } }, - "%1$@ of %2$@ on this page" : { + "(NULL)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 페이지에서 %2$@개 중 %1$@개" + "value" : "(NULL)" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "(NULL)" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "(NULL)" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "(NULL)" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "(NULL)" } } } }, - "%1$@ on %2$@" : { + "(optional)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%2$@에서 %1$@" + "value" : "(선택 사항)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%2$@ üzerinde %1$@" + "value" : "(isteğe bağlı)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@ trên %2$@" + "value" : "(tùy chọn)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%2$@ 上的 %1$@" + "value" : "(可选)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%2$@ 上的 %1$@" + "value" : "(選填)" } } } }, - "%1$@ was signed by %2$@ (Team ID %3$@) and notarized by Apple. TablePro did not write it.\n\nA database plugin runs as part of TablePro and can read the credentials of every connection you open. Trust this developer only if you would give them that access.\n\nTrusting applies to every plugin this developer signs, now and later. You can withdraw it in Settings > Plugins." : { + "(showing %d of %d rows)" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "(showing %1$d of %2$d rows)" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플러그인: %1$@. 서명자: %2$@ (팀 ID %3$@). Apple의 공증을 받았습니다. TablePro에서 만든 플러그인이 아닙니다.\n\n데이터베이스 플러그인은 TablePro의 일부로 실행되며 사용자가 여는 모든 연결의 자격 증명을 읽을 수 있습니다. 해당 접근 권한을 부여해도 되는 개발자만 신뢰하십시오.\n\n개발자를 신뢰하면 현재와 이후에 이 개발자가 서명하는 모든 플러그인에 적용됩니다. 설정 > 플러그인에서 언제든지 신뢰를 해제할 수 있습니다." + "value" : "(%1$d/%2$d행 표시 중)" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "(%d / %d satır gösteriliyor)" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "(đang hiển thị %d trên %d hàng)" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "(显示 %d / %d 行)" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "(顯示 %1$d / %2$d 列)" } } } }, - "%1$@ → %2$@ · %3$@ runs before, %4$@ now" : { - "comment" : "Regression detail: prior duration, recent duration, prior count, recent count", + "(this Mac)" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "(this Mac)" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@ → %2$@ · 이전 실행 %3$@, 현재 %4$@" + "value" : "(이 Mac)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@ → %2$@ · önce %3$@ çalışma, şimdi %4$@" + "value" : "(bu Mac)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@ → %2$@ · trước %3$@ lần chạy, hiện %4$@" + "value" : "(máy Mac này)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@ → %2$@ · 之前 %3$@ 次,现在 %4$@ 次" + "value" : "(此 Mac)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@ → %2$@ · 之前 %3$@ 次,現在 %4$@ 次" + "value" : "(這台 Mac)" } } } }, - "%1$@, %2$@" : { - "shouldTranslate" : false - }, - "%1$@: %2$@" : { - "comment" : "A list of failed drops, one per line.", - "isCommentAutoGenerated" : true, + "**Available commands:**" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@: %2$@" + "value" : "**사용 가능한 명령:**" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@: %2$@" + "value" : "**Kullanılabilir komutlar:**" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@: %2$@" + "value" : "**Các lệnh khả dụng:**" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@:%2$@" + "value" : "**可用命令:**" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@:%2$@" + "value" : "**可用指令:**" } } } }, - "%1$d of %2$d" : { - "comment" : "A description of the current position in a collection of items. The first argument is the current position. The second argument is the total number of items.", - "isCommentAutoGenerated" : true, + "/%@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$d/%2$d" + "value" : "/%@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%2$d içinden %1$d" + "value" : "/%@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%1$d trên %2$d" + "value" : "/%@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%1$d / %2$d" + "value" : "/%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%1$d / %2$d" + "value" : "/%@" } } } }, - "%1$d of %2$d rows, %3$d marked for deletion" : { + "/%@ · %@" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "/%1$@ · %2$@" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%2$d행 중 %1$d행, %3$d행 삭제 예정" + "value" : "/%1$@ · %2$@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%2$d satırdan %1$d tanesi, %3$d tanesi silinmek üzere işaretli" + "value" : "/%1$@ · %2$@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%1$d trên %2$d hàng, %3$d hàng được đánh dấu xoá" + "value" : "/%1$@ · %2$@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%2$d 行中的 %1$d 行,%3$d 行已标记删除" + "value" : "/%1$@ · %2$@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%2$d 列中的 %1$d 列,%3$d 列已標記刪除" + "value" : "/%1$@ · %2$@" } } } }, - "%1$lld of %2$lld statements were applied. This connection does not roll back user and role changes." : { + "/%@ needs a query: type one in the editor or after the command." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$lld/%2$lld개 SQL 문이 적용되었습니다. 이 연결에서는 사용자 및 역할 변경을 롤백하지 않습니다." + "value" : "/%@ 명령에는 쿼리가 필요합니다. 편집기 또는 명령 뒤에 쿼리를 입력하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%2$lld ifadeden %1$lld tanesi uygulandı. Bu bağlantı, kullanıcı ve rol değişikliklerini geri almaz." + "value" : "/%@ bir sorgu gerektirir: düzenleyiciye veya komutun ardına bir sorgu yazın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã áp dụng %1$lld trên %2$lld câu lệnh. Kết nối này không hoàn tác các thay đổi người dùng và vai trò." + "value" : "/%@ cần một truy vấn: nhập vào trình soạn thảo hoặc sau lệnh." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已应用 %2$lld 条语句中的 %1$lld 条。此连接不会回滚用户和角色更改。" + "value" : "/%@需要一个查询:请在编辑器中或命令后输入。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已套用 %2$lld 條陳述式中的 %1$lld 條。此連線不會回復使用者與角色的變更。" + "value" : "/%@ 需要一個查詢:請在編輯器中或指令後輸入。" } } } }, - "%1$lld statements executed, %2$lld failed" : { - "comment" : "The number of statements that were skipped and the number of statements that failed.", - "isCommentAutoGenerated" : true, + "/path/to/agent.sock" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$lld개 SQL 문 실행됨, %2$lld개 실패" + "value" : "/path/to/agent.sock" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%1$lld ifade çalıştırıldı, %2$lld başarısız" + "value" : "/path/to/agent.sock" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã chạy %1$lld câu lệnh, %2$lld lỗi" + "value" : "/path/to/agent.sock" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已执行 %1$lld 条语句,%2$lld 条失败" + "value" : "/path/to/agent.sock" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已執行 %1$lld 條陳述式,%2$lld 條失敗" + "value" : "/path/to/agent.sock" } } } }, - "%1$lld users, %2$lld roles" : { + "/path/to/ca-cert.pem" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사용자 %1$lld명, 역할 %2$lld개" + "value" : "/path/to/ca-cert.pem" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%1$lld kullanıcı, %2$lld rol" + "value" : "/path/to/ca-cert.pem" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%1$lld người dùng, %2$lld vai trò" + "value" : "/đường/dẫn/tới/ca-cert.pem" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%1$lld 个用户,%2$lld 个角色" + "value" : "/path/to/ca-cert.pem" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%1$lld 個使用者、%2$lld 個角色" + "value" : "/path/to/ca-cert.pem" } } } }, - "%@ %@" : { + "/path/to/database.sqlite" : { + "extractionState" : "stale", "localizations" : { - "en" : { + "ko" : { "stringUnit" : { - "state" : "new", - "value" : "%1$@ %2$@" + "state" : "translated", + "value" : "/path/to/database.sqlite" } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "/path/to/database.sqlite" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "/đường/dẫn/tới/database.sqlite" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "/path/to/database.sqlite" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "/path/to/database.sqlite" + } + } + } + }, + "%.3fms" : { + "comment" : "A value of a time in milliseconds.", + "isCommentAutoGenerated" : true, + "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@ %2$@" + "value" : "%.3fms" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ %@" + "value" : "%.3fms" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%@ %@" + "value" : "%.3fms" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%@ %@" + "value" : "%.3fms" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@ %2$@" + "value" : "%.3fms" } } } @@ -1070,107 +1697,128 @@ } } }, - "%@ Preview" : { + "%@ %@" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "%1$@ %2$@" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 미리보기" + "value" : "%1$@ %2$@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ Önizleme" + "value" : "%@ %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xem trước %@" + "value" : "%@ %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 预览" + "value" : "%@ %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 預覽" + "value" : "%1$@ %2$@" } } } }, - "%@ Query" : { + "%@ • %@" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "%1$@ • %2$@" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 쿼리" + "value" : "%1$@ • %2$@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ Sorgusu" + "value" : "%1$@ • %2$@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Truy vấn %@" + "value" : "%1$@ • %2$@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 查询" + "value" : "%1$@ • %2$@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 查詢" + "value" : "%1$@ • %2$@" } } } }, - "%@ Switch Failed" : { + "%@ → %@.%@" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "%1$@ → %2$@.%3$@" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 전환 실패" + "value" : "%1$@ → %2$@.%3$@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ Değiştirilemedi" + "value" : "%@ → %@.%@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển %@ thất bại" + "value" : "%@ → %@.%@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 切换失败" + "value" : "%@ → %@.%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 切換失敗" + "value" : "%1$@ → %2$@.%3$@" } } } + }, + "%@ cannot be compared, because its driver does not expose metadata." : { + }, "%@ cannot be empty" : { "localizations" : { @@ -1239,6 +1887,9 @@ } } } + }, + "%@ cannot compare two of its own databases at once, because it reads both through one connection. Use a second connection for the target." : { + }, "%@ completed" : { "localizations" : { @@ -1307,6 +1958,12 @@ } } } + }, + "%@ does not report structure metadata that can be compared." : { + + }, + "%@ does not support reading rows in key order, which data compare needs." : { + }, "%@ does not support switching schemas in TablePro." : { "localizations" : { @@ -1561,6 +2218,9 @@ } } } + }, + "%@ is no longer a saved connection." : { + }, "%@ is required" : { "localizations" : { @@ -1901,6 +2561,74 @@ } } }, + "%@ Preview" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ 미리보기" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ Önizleme" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "Xem trước %@" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ 预览" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ 預覽" + } + } + } + }, + "%@ Query" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ 쿼리" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ Sorgusu" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "Truy vấn %@" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ 查询" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ 查詢" + } + } + } + }, "%@ requires a Pro license" : { "localizations" : { "ko" : { @@ -1974,6 +2702,9 @@ } } } + }, + "%@ row" : { + }, "%@ rows" : { "comment" : "Total rows for a query shape, %@ is a count", @@ -2149,6 +2880,40 @@ } } }, + "%@ Switch Failed" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ 전환 실패" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ Değiştirilemedi" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "Chuyển %@ thất bại" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ 切换失败" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ 切換失敗" + } + } + } + }, "%@ switches reconnect the session" : { "localizations" : { "ko" : { @@ -2217,198 +2982,276 @@ } } }, - "%@ • %@" : { + "%@_name" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@_name" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@_name" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@_name" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@_name" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@_name" + } + } + } + }, + "%@, %@" : { + "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { "state" : "new", - "value" : "%1$@ • %2$@" + "value" : "%1$@, %2$@" } }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@ • %2$@" + "value" : "%1$@, %2$@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@ • %2$@" + "value" : "%@, %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@ • %2$@" + "value" : "%@, %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@ • %2$@" + "value" : "%@, %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@ • %2$@" + "value" : "%1$@, %2$@" } } } }, - "%@ → %@.%@" : { + "%@, finished" : { + + }, + "%@, pinned" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@, 고정됨" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@, sabitlendi" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@, đã ghim" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@,已固定" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@,已釘選" + } + } + } + }, + "%@: %@" : { "localizations" : { "en" : { "stringUnit" : { "state" : "new", - "value" : "%1$@ → %2$@.%3$@" + "value" : "%1$@: %2$@" } }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@ → %2$@.%3$@" + "value" : "%1$@: %2$@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ → %@.%@" + "value" : "%1$@: %2$@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%@ → %@.%@" + "value" : "%1$@: %2$@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%@ → %@.%@" + "value" : "%1$@: %2$@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@ → %2$@.%3$@" + "value" : "%1$@: %2$@" } } } }, - "%@%@" : { - "extractionState" : "stale", + "%@: %@, %@" : { "localizations" : { "en" : { "stringUnit" : { "state" : "new", - "value" : "%1$@%2$@" + "value" : "%1$@: %2$@, %3$@" } }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@%2$@" + "value" : "%1$@: %2$@, %3$@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@%@" + "value" : "%@: %@, %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%@%@" + "value" : "%@: %@, %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%@%@" + "value" : "%@:%@、%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@%2$@" + "value" : "%@:%@、%@" } } } }, - "%@, %@" : { + "%@: %lld" : { "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { "state" : "new", - "value" : "%1$@, %2$@" + "value" : "%1$@: %2$lld" } }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@, %2$@" + "value" : "%1$@: %2$lld" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@, %@" + "value" : "%@: %lld" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%@, %@" + "value" : "%@: %lld" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%@, %@" + "value" : "%@: %lld" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@, %2$@" + "value" : "%1$@: %2$lld" } } } }, - "%@, pinned" : { + "%@:%@" : { + "extractionState" : "stale", "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "%1$@:%2$@" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@, 고정됨" + "value" : "%1$@:%2$@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@, sabitlendi" + "value" : "%@:%@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%@, đã ghim" + "value" : "%@:%@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%@,已固定" + "value" : "%@:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%@,已釘選" + "value" : "%1$@:%2$@" } } } @@ -2568,14 +3411,425 @@ } } }, - "%@: %@" : { + "%@%@" : { + "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { "state" : "new", - "value" : "%1$@: %2$@" + "value" : "%1$@%2$@" } }, + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$@%2$@" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@%@" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@%@" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@%@" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$@%2$@" + } + } + } + }, + "%@×" : { + "comment" : "Number of times a query ran, %@ is a count\nSlowdown multiple, %@ is a number", + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@×" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ kez" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ lần" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ 次" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ 次" + } + } + } + }, + "%@ms" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ms" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ms" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ms" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ms" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ms" + } + } + } + }, + "%@s" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@s" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@s" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@s" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@s" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@s" + } + } + } + }, + "%1$@ … %2$d lines" : { + + }, + "%1$@ (%2$@)" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$@ (%2$@)" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$@ (%2$@)" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$@ (%2$@)" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$@(%2$@)" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$@(%2$@)" + } + } + } + }, + "%1$@ (ORA-%2$ld)." : { + "extractionState" : "stale", + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$@ (ORA-%2$ld)." + } + } + } + }, + "%1$@ %2$@ is dropped and recreated, so anything depending on it fails until it exists again." : { + + }, + "%1$@ → %2$@ · %3$@ runs before, %4$@ now" : { + "comment" : "Regression detail: prior duration, recent duration, prior count, recent count", + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$@ → %2$@ · 이전 실행 %3$@, 현재 %4$@" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$@ → %2$@ · önce %3$@ çalışma, şimdi %4$@" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$@ → %2$@ · trước %3$@ lần chạy, hiện %4$@" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$@ → %2$@ · 之前 %3$@ 次,现在 %4$@ 次" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$@ → %2$@ · 之前 %3$@ 次,現在 %4$@ 次" + } + } + } + }, + "%1$@ +%2$lld" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$@ +%2$lld" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$@ +%2$lld" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$@ +%2$lld" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$@ +%2$lld" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$@ +%2$lld" + } + } + } + }, + "%1$@ chart of %2$@ by %3$@ with %4$d points" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$@ chart of %2$@ by %3$@ with %#@points@" + }, + "substitutions" : { + "points" : { + "argNum" : 4, + "formatSpecifier" : "d", + "variations" : { + "plural" : { + "one" : { + "stringUnit" : { + "state" : "translated", + "value" : "%arg point" + } + }, + "other" : { + "stringUnit" : { + "state" : "translated", + "value" : "%arg points" + } + } + } + } + } + } + }, + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%3$@ 기준 %2$@의 %1$@ 차트, %#@points@" + }, + "substitutions" : { + "points" : { + "argNum" : 4, + "formatSpecifier" : "d", + "variations" : { + "plural" : { + "other" : { + "stringUnit" : { + "state" : "translated", + "value" : "지점 %arg개" + } + } + } + } + } + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%3$@ ölçütüne göre %2$@ için %4$d noktalı %1$@ grafiği" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "Biểu đồ %1$@ của %2$@ theo %3$@ với %4$d điểm" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "包含 %4$d 个点的%1$@图:按%3$@显示%2$@" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "包含 %4$d 個點的%1$@圖:依%3$@顯示%2$@" + } + } + } + }, + "%1$@ in %2$@" : { + + }, + "%1$@ of %2$@" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$@/%2$@" + } + } + } + }, + "%1$@ of %2$@ on this page" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "이 페이지에서 %2$@개 중 %1$@개" + } + } + } + }, + "%1$@ on %2$@" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%2$@에서 %1$@" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%2$@ üzerinde %1$@" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$@ trên %2$@" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "%2$@ 上的 %1$@" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "%2$@ 上的 %1$@" + } + } + } + }, + "%1$@ was signed by %2$@ (Team ID %3$@) and notarized by Apple. TablePro did not write it.\n\nA database plugin runs as part of TablePro and can read the credentials of every connection you open. Trust this developer only if you would give them that access.\n\nTrusting applies to every plugin this developer signs, now and later. You can withdraw it in Settings > Plugins." : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "플러그인: %1$@. 서명자: %2$@ (팀 ID %3$@). Apple의 공증을 받았습니다. TablePro에서 만든 플러그인이 아닙니다.\n\n데이터베이스 플러그인은 TablePro의 일부로 실행되며 사용자가 여는 모든 연결의 자격 증명을 읽을 수 있습니다. 해당 접근 권한을 부여해도 되는 개발자만 신뢰하십시오.\n\n개발자를 신뢰하면 현재와 이후에 이 개발자가 서명하는 모든 플러그인에 적용됩니다. 설정 > 플러그인에서 언제든지 신뢰를 해제할 수 있습니다." + } + } + } + }, + "%1$@, %2$@" : { + "shouldTranslate" : false + }, + "%1$@, returns %2$@" : { + + }, + "%1$@: %2$@" : { + "comment" : "A list of failed drops, one per line.", + "isCommentAutoGenerated" : true, + "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", @@ -2597,272 +3851,227 @@ "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@: %2$@" + "value" : "%1$@:%2$@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@: %2$@" + "value" : "%1$@:%2$@" } } } }, - "%@: %@, %@" : { + "%1$d of %2$d" : { + "comment" : "A description of the current position in a collection of items. The first argument is the current position. The second argument is the total number of items.", + "isCommentAutoGenerated" : true, "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "%1$@: %2$@, %3$@" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@: %2$@, %3$@" + "value" : "%1$d/%2$d" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@: %@, %@" + "value" : "%2$d içinden %1$d" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%@: %@, %@" + "value" : "%1$d trên %2$d" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%@:%@、%@" + "value" : "%1$d / %2$d" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%@:%@、%@" + "value" : "%1$d / %2$d" } } } }, - "%@: %lld" : { - "extractionState" : "stale", - "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "%1$@: %2$lld" - } - }, - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "%1$@: %2$lld" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "%@: %lld" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "%@: %lld" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "%@: %lld" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "%1$@: %2$lld" - } - } - } + "%1$d of %2$d allowed for this run" : { + }, - "%@:%@" : { - "extractionState" : "stale", + "%1$d of %2$d rows, %3$d marked for deletion" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "%1$@:%2$@" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@:%2$@" + "value" : "%2$d행 중 %1$d행, %3$d행 삭제 예정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@:%@" + "value" : "%2$d satırdan %1$d tanesi, %3$d tanesi silinmek üzere işaretli" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%@:%@" + "value" : "%1$d trên %2$d hàng, %3$d hàng được đánh dấu xoá" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%@:%@" + "value" : "%2$d 行中的 %1$d 行,%3$d 行已标记删除" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@:%2$@" + "value" : "%2$d 列中的 %1$d 列,%3$d 列已標記刪除" } } } }, - "%@_name" : { + "%1$d of %2$d tables will be compared." : { + + }, + "%1$d statements stay out of this run and %2$@ keeps what it has for them." : { + + }, + "%1$d statements, %2$d will run." : { + + }, + "%1$lld of %2$lld statements were applied. This connection does not roll back user and role changes." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@_name" + "value" : "%1$lld/%2$lld개 SQL 문이 적용되었습니다. 이 연결에서는 사용자 및 역할 변경을 롤백하지 않습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@_name" + "value" : "%2$lld ifadeden %1$lld tanesi uygulandı. Bu bağlantı, kullanıcı ve rol değişikliklerini geri almaz." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%@_name" + "value" : "Đã áp dụng %1$lld trên %2$lld câu lệnh. Kết nối này không hoàn tác các thay đổi người dùng và vai trò." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%@_name" + "value" : "已应用 %2$lld 条语句中的 %1$lld 条。此连接不会回滚用户和角色更改。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%@_name" + "value" : "已套用 %2$lld 條陳述式中的 %1$lld 條。此連線不會回復使用者與角色的變更。" } } } }, - "%@ms" : { + "%1$lld statements executed, %2$lld failed" : { + "comment" : "The number of statements that were skipped and the number of statements that failed.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ms" + "value" : "%1$lld개 SQL 문 실행됨, %2$lld개 실패" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ms" + "value" : "%1$lld ifade çalıştırıldı, %2$lld başarısız" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%@ms" + "value" : "Đã chạy %1$lld câu lệnh, %2$lld lỗi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%@ms" + "value" : "已执行 %1$lld 条语句,%2$lld 条失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%@ms" + "value" : "已執行 %1$lld 條陳述式,%2$lld 條失敗" } } } }, - "%@s" : { + "%1$lld users, %2$lld roles" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@s" + "value" : "사용자 %1$lld명, 역할 %2$lld개" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@s" + "value" : "%1$lld kullanıcı, %2$lld rol" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%@s" + "value" : "%1$lld người dùng, %2$lld vai trò" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%@s" + "value" : "%1$lld 个用户,%2$lld 个角色" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%@s" + "value" : "%1$lld 個使用者、%2$lld 個角色" } } } }, - "%@×" : { - "comment" : "Number of times a query ran, %@ is a count\nSlowdown multiple, %@ is a number", + "%1$lldh %2$02lldm" : { + + }, + "%1$lldm %2$02llds" : { + + }, + "%d bytes" : { "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "%@×" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "%@ kez" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "%@ lần" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "%@ 次" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "%@ 次" + "en" : { + "variations" : { + "plural" : { + "one" : { + "stringUnit" : { + "state" : "translated", + "value" : "%d byte" + } + }, + "other" : { + "stringUnit" : { + "state" : "translated", + "value" : "%d bytes" + } + } + } } } } @@ -2907,7 +4116,30 @@ } } }, + "%d changes" : { + "localizations" : { + "en" : { + "variations" : { + "plural" : { + "one" : { + "stringUnit" : { + "state" : "translated", + "value" : "%d change" + } + }, + "other" : { + "stringUnit" : { + "state" : "translated", + "value" : "%d changes" + } + } + } + } + } + } + }, "%d columns" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { @@ -3112,6 +4344,9 @@ } } } + }, + "%d exported row(s)" : { + }, "%d favorites will be permanently deleted." : { "localizations" : { @@ -3180,13 +4415,19 @@ } } } + }, + "%d left out" : { + + }, + "%d lines" : { + }, "%d more" : { "localizations" : { "ko" : { "stringUnit" : { - "value" : "%d개 더", - "state" : "translated" + "state" : "translated", + "value" : "%d개 더" } }, "tr" : { @@ -3214,6 +4455,9 @@ } } } + }, + "%d more lines" : { + }, "%d of %d" : { "localizations" : { @@ -3336,6 +4580,7 @@ } }, "%d of %d rows selected" : { + "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -3512,7 +4757,52 @@ } } }, + "%d rows hold NULL in a key column and were left out. Choose a key with no NULLs to compare them." : { + "localizations" : { + "en" : { + "variations" : { + "plural" : { + "one" : { + "stringUnit" : { + "state" : "translated", + "value" : "%d row holds NULL in a key column and was left out. Choose a key with no NULLs to compare it." + } + }, + "other" : { + "stringUnit" : { + "state" : "translated", + "value" : "%d rows hold NULL in a key column and were left out. Choose a key with no NULLs to compare them." + } + } + } + } + } + } + }, + "%d rows match. Matching rows are counted, not listed, so a difference is never crowded out of this list." : { + "localizations" : { + "en" : { + "variations" : { + "plural" : { + "one" : { + "stringUnit" : { + "state" : "translated", + "value" : "%d row matches. Matching rows are counted, not listed, so a difference is never crowded out of this list." + } + }, + "other" : { + "stringUnit" : { + "state" : "translated", + "value" : "%d rows match. Matching rows are counted, not listed, so a difference is never crowded out of this list." + } + } + } + } + } + } + }, "%d selected" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { @@ -3550,112 +4840,114 @@ "localizations" : { "ko" : { "stringUnit" : { - "value" : "%d개 건너뜀", - "state" : "translated" + "state" : "translated", + "value" : "%d개 건너뜀" } }, "tr" : { "stringUnit" : { - "value" : "%d atlandı", - "state" : "translated" + "state" : "translated", + "value" : "%d atlandı" } }, "vi" : { "stringUnit" : { - "value" : "đã bỏ qua %d", - "state" : "translated" + "state" : "translated", + "value" : "đã bỏ qua %d" } }, "zh-Hans" : { "stringUnit" : { - "value" : "已跳过 %d 行", - "state" : "translated" + "state" : "translated", + "value" : "已跳过 %d 行" } }, "zh-Hant" : { "stringUnit" : { - "value" : "已略過 %d 列", - "state" : "translated" + "state" : "translated", + "value" : "已略過 %d 列" } } } }, - "%d-%d of %@%@ rows" : { + "%d-%d of ? rows" : { + "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { "state" : "new", - "value" : "%1$d-%2$d of %3$@%4$@ rows" + "value" : "%1$d-%2$d of ? rows" } }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$d-%2$d / %3$@%4$@행" + "value" : "%1$d-%2$d / ?행" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%d-%d / %@%@ satır" + "value" : "%1$d-%2$d / ? satır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%d-%d trên %@%@ dòng" + "value" : "%1$d-%2$d trên ? hàng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%d-%d / %@%@行" + "value" : "第%1$d-%2$d行,共?行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%1$d-%2$d / %3$@%4$@ 列" + "value" : "%1$d-%2$d / ? 列" } } } }, - "%d-%d of ? rows" : { + "%d-%d of %@%@ rows" : { + "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { "state" : "new", - "value" : "%1$d-%2$d of ? rows" + "value" : "%1$d-%2$d of %3$@%4$@ rows" } }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$d-%2$d / ?행" + "value" : "%1$d-%2$d / %3$@%4$@행" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%1$d-%2$d / ? satır" + "value" : "%d-%d / %@%@ satır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%1$d-%2$d trên ? hàng" + "value" : "%d-%d trên %@%@ dòng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "第%1$d-%2$d行,共?行" + "value" : "%d-%d / %@%@行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%1$d-%2$d / ? 列" + "value" : "%1$d-%2$d / %3$@%4$@ 列" } } } @@ -3981,83 +5273,83 @@ } } }, - "%lld in / %lld out tokens" : { - "extractionState" : "stale", + "%lld in · %lld out" : { "localizations" : { "en" : { "stringUnit" : { "state" : "new", - "value" : "%1$lld in / %2$lld out tokens" + "value" : "%1$lld in · %2$lld out" } }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "입력 토큰 %1$lld개 / 출력 토큰 %2$lld개" + "value" : "입력 %1$lld · 출력 %2$lld" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%lld giriş / %lld çıkış belirteç" + "value" : "%lld giriş · %lld çıkış" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%1$lld vào / %2$lld ra token" + "value" : "%lld vào · %lld ra" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%lld 输入 / %lld 输出 token" + "value" : "%lld 输入 · %lld 输出" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%1$lld 輸入 / %2$lld 輸出 token" + "value" : "%1$lld 輸入 · %2$lld 輸出" } } } }, - "%lld in · %lld out" : { + "%lld in / %lld out tokens" : { + "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { "state" : "new", - "value" : "%1$lld in · %2$lld out" + "value" : "%1$lld in / %2$lld out tokens" } }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "입력 %1$lld · 출력 %2$lld" + "value" : "입력 토큰 %1$lld개 / 출력 토큰 %2$lld개" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%lld giriş · %lld çıkış" + "value" : "%lld giriş / %lld çıkış belirteç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%lld vào · %lld ra" + "value" : "%1$lld vào / %2$lld ra token" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%lld 输入 · %lld 输出" + "value" : "%lld 输入 / %lld 输出 token" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%1$lld 輸入 · %2$lld 輸出" + "value" : "%1$lld 輸入 / %2$lld 輸出 token" } } } @@ -4115,6 +5407,9 @@ } } } + }, + "%lld minutes" : { + }, "%lld objects" : { "localizations" : { @@ -4511,117 +5806,117 @@ } } }, - "%lld row%@ affected" : { - "extractionState" : "stale", + "%lld row(s) affected" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "%1$lld row%2$@ affected" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$lld개 행%2$@에 영향" + "value" : "%lld개 행에 영향" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%lld satır%@ etkilendi" + "value" : "%lld satır etkilendi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%lld dòng%@ bị ảnh hưởng" + "value" : "%lld dòng bị ảnh hưởng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%lld 行%@受影响" + "value" : "%lld 行受影响" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已影響 %1$lld 列%2$@" + "value" : "已影響 %lld 列" } } } }, - "%lld row%@ to export" : { + "%lld row%@ affected" : { + "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { "state" : "new", - "value" : "%1$lld row%2$@ to export" + "value" : "%1$lld row%2$@ affected" } }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$lld개 행%2$@ 내보내기" + "value" : "%1$lld개 행%2$@에 영향" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%lld satır%@ dışa aktarılacak" + "value" : "%lld satır%@ etkilendi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%lld hàng%@ để export" + "value" : "%lld dòng%@ bị ảnh hưởng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%lld 行%@待导出" + "value" : "%lld 行%@受影响" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "待匯出 %1$lld 列%2$@" + "value" : "已影響 %1$lld 列%2$@" } } } }, - "%lld row(s) affected" : { + "%lld row%@ to export" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "%1$lld row%2$@ to export" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%lld개 행에 영향" + "value" : "%1$lld개 행%2$@ 내보내기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%lld satır etkilendi" + "value" : "%lld satır%@ dışa aktarılacak" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%lld dòng bị ảnh hưởng" + "value" : "%lld hàng%@ để export" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%lld 行受影响" + "value" : "%lld 行%@待导出" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已影響 %lld 列" + "value" : "待匯出 %1$lld 列%2$@" } } } @@ -5058,40 +6353,6 @@ } } }, - "%lld%%" : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "%lld%%" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "%lld%%" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "%lld%%" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "%lld%%" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "%lld%%" - } - } - } - }, "%lld-%lld of %lld ^[rows](inflect: true)" : { "localizations" : { "ko" : { @@ -5229,548 +6490,185 @@ } } }, - "%lldm %llds" : { - "extractionState" : "stale", - "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "%1$lldm %2$llds" - } - }, - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "%1$lld분 %2$lld초" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "%lldm %llds" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "%lldm %llds" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "%lldm %llds" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "%1$lld 分 %2$lld 秒" - } - } - } - }, - "'%@' is a reserved Windows device name" : { - "extractionState" : "stale", + "%lld%%" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "'%@' 이름은 Windows에서 예약된 장치 이름입니다" + "value" : "%lld%%" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "'%@' ayrılmış bir Windows aygıt adıdır" + "value" : "%lld%%" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "'%@' là tên thiết bị Windows dành riêng" + "value" : "%lld%%" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "'%@' 是 Windows 保留设备名" + "value" : "%lld%%" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "「%@」是 Windows 保留的裝置名稱" + "value" : "%lld%%" } } } }, - "''" : { + "%lldm %llds" : { "extractionState" : "stale", - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "''" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "''" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "''" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "''" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "''" - } - } - } - }, - "(%@)" : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "(%@)" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "(%@)" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "(%@)" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "(%@)" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "(%@)" - } - } - } - }, - "(%lld %@)" : { "localizations" : { "en" : { "stringUnit" : { "state" : "new", - "value" : "(%1$lld %2$@)" + "value" : "%1$lldm %2$llds" } }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "(%1$lld %2$@)" + "value" : "%1$lld분 %2$lld초" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "(%lld %@)" + "value" : "%lldm %llds" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "(%1$lld %2$@)" + "value" : "%lldm %llds" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "(%lld %@)" + "value" : "%lldm %llds" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "(%1$lld %2$@)" + "value" : "%1$lld 分 %2$lld 秒" } } } }, - "(%lld active)" : { - "extractionState" : "stale", - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "(%lld개 활성)" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "(%lld etkin)" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "(%lld đang hoạt động)" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "(%lld 活跃)" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "(%lld 個使用中)" - } - } - } + "%llds" : { + }, - "(%lld hidden)" : { + "•" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "(%lld개 숨김)" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "(%lld gizli)" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "(%lld ẩn)" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "(%lld 个已隐藏)" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "(%lld 個已隱藏)" - } - } - } - }, - "(%lld)" : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "(%lld)" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "(%lld)" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "(%lld)" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "(%lld)" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "(%lld)" - } - } - } - }, - "(%lld/%lld)" : { - "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "(%1$lld/%2$lld)" - } - }, - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "(%1$lld/%2$lld)" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "(%lld/%lld)" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "(%lld/%lld)" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "(%lld/%lld)" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "(%1$lld/%2$lld)" - } - } - } - }, - "(Empty)" : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "(비어 있음)" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "(Boş)" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "(Trống)" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "(空)" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "(空)" - } - } - } - }, - "(NULL)" : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "(NULL)" + "value" : "•" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "(NULL)" + "value" : "•" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "(NULL)" + "value" : "•" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "(NULL)" + "value" : "•" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "(NULL)" + "value" : "•" } } } }, - "(optional)" : { + "••••••••" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "(선택 사항)" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "(isteğe bağlı)" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "(tùy chọn)" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "(可选)" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "(選填)" - } - } - } - }, - "(showing %d of %d rows)" : { - "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "(showing %1$d of %2$d rows)" - } - }, - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "(%1$d/%2$d행 표시 중)" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "(%d / %d satır gösteriliyor)" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "(đang hiển thị %d trên %d hàng)" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "(显示 %d / %d 行)" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "(顯示 %1$d / %2$d 列)" - } - } - } - }, - "(this Mac)" : { - "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "(this Mac)" - } - }, - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "(이 Mac)" + "value" : "••••••••" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "(bu Mac)" + "value" : "••••••••" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "(máy Mac này)" + "value" : "••••••••" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "(此 Mac)" + "value" : "••••••••" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "(這台 Mac)" + "value" : "••••••••" } } } }, - "**Available commands:**" : { + "© 2026 Ngo Quoc Dat.\n%@" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "**사용 가능한 명령:**" + "value" : "© 2026 Ngo Quoc Dat.\n%@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "**Kullanılabilir komutlar:**" + "value" : "© 2026 Ngo Quoc Dat.\n%@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "**Các lệnh khả dụng:**" + "value" : "© 2026 Ngo Quoc Dat.\n%@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "**可用命令:**" + "value" : "© 2026 Ngo Quoc Dat.\n%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "**可用指令:**" + "value" : "© 2026 Ngo Quoc Dat.\n%@" } } } @@ -5809,386 +6707,414 @@ } } }, - ", %@" : { + "<1 ms" : { + "comment" : "Query duration under one millisecond", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : ", %@" + "value" : "<1 ms" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : ", %@" + "value" : "<1 ms" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : ", %@" + "value" : "<1 ms" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : ",%@" + "value" : "<1 毫秒" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : ",%@" + "value" : "<1 毫秒" } } } }, - ", and %lld more" : { - "comment" : "Plural suffix for the number of overflow items.", - "isCommentAutoGenerated" : true, + "<1ms" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : ", 외 %lld개" + "value" : "<1ms" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : " ve %lld tane daha" + "value" : "<1ms" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : " và %lld mục nữa" + "value" : "<1ms" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : ",还有 %lld 项" + "value" : "<1ms" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : ",還有 %lld 項" + "value" : "<1ms" } } } }, - "--" : { + "=" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "--" + "value" : "=" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "--" + "value" : "=" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "--" + "value" : "=" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "--" + "value" : "=" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "--" + "value" : "=" } } } }, - "-- … %d more characters not shown; use Copy All for the full output." : { + "~/.pgpass found — matching entry exists" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "-- … 나머지 %d자는 표시되지 않음. 전체 출력은 모두 복사를 사용하십시오." + "value" : "~/.pgpass 발견 — 일치하는 항목 있음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "-- … %d karakter daha gösterilmiyor; çıktının tamamı için Tümünü Kopyala'yı kullanın." + "value" : "~/.pgpass bulundu — eşleşen giriş var" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "-- … còn %d ký tự nữa không hiển thị; dùng Sao chép tất cả để xem toàn bộ kết quả." + "value" : "Tìm thấy ~/.pgpass — có entry khớp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "-- … 还有%d个字符未显示;使用\"全部复制\"获取完整输出。" + "value" : "~/.pgpass 已找到 - 存在匹配条目" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "-- … 還有 %d 個字未顯示;請使用「全部複製」取得完整輸出。" + "value" : "已找到 ~/.pgpass,存在相符的項目" } } } }, - ".%@" : { + "~/.pgpass found — no matching entry" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : ".%@" + "value" : "~/.pgpass 발견 — 일치하는 항목 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : ".%@" + "value" : "~/.pgpass bulundu — eşleşen giriş yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : ".%@" + "value" : "Tìm thấy ~/.pgpass — không có entry khớp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : ".%@" + "value" : "~/.pgpass 已找到 - 无匹配条目" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : ".%@" + "value" : "已找到 ~/.pgpass,但無相符的項目" } } } }, - "/%@" : { + "~/.pgpass found, matching entry exists" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "/%@" + "value" : "~/.pgpass 발견, 일치하는 항목 있음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "/%@" + "value" : "~/.pgpass bulundu, eşleşen kayıt var" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "/%@" + "value" : "Tìm thấy ~/.pgpass, có mục khớp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "/%@" + "value" : "已找到~/.pgpass,存在匹配条目" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "/%@" + "value" : "已找到 ~/.pgpass,存在相符的項目" } } } }, - "/%@ needs a query: type one in the editor or after the command." : { + "~/.pgpass found, no matching entry" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "/%@ 명령에는 쿼리가 필요합니다. 편집기 또는 명령 뒤에 쿼리를 입력하십시오." + "value" : "~/.pgpass 발견, 일치하는 항목 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "/%@ bir sorgu gerektirir: düzenleyiciye veya komutun ardına bir sorgu yazın." + "value" : "~/.pgpass bulundu, eşleşen kayıt yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "/%@ cần một truy vấn: nhập vào trình soạn thảo hoặc sau lệnh." + "value" : "Tìm thấy ~/.pgpass, không có mục khớp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "/%@需要一个查询:请在编辑器中或命令后输入。" + "value" : "已找到~/.pgpass,无匹配条目" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "/%@ 需要一個查詢:請在編輯器中或指令後輸入。" + "value" : "已找到 ~/.pgpass,沒有相符的項目" } } } }, - "/%@ · %@" : { + "~/.pgpass has incorrect permissions (needs chmod 0600)" : { "localizations" : { - "en" : { + "ko" : { "stringUnit" : { - "state" : "new", - "value" : "/%1$@ · %2$@" + "state" : "translated", + "value" : "~/.pgpass 권한이 올바르지 않음(chmod 0600 필요)" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "~/.pgpass yanlış izinlere sahip (chmod 0600 gerekli)" } }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "~/.pgpass có quyền không đúng (cần chmod 0600)" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "~/.pgpass 权限不正确(需要 chmod 0600)" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "~/.pgpass 權限不正確(需要 chmod 0600)" + } + } + } + }, + "~/.pgpass not found" : { + "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "/%1$@ · %2$@" + "value" : "~/.pgpass 파일을 찾을 수 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "/%1$@ · %2$@" + "value" : "~/.pgpass bulunamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "/%1$@ · %2$@" + "value" : "Không tìm thấy ~/.pgpass" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "/%1$@ · %2$@" + "value" : "未找到 ~/.pgpass" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "/%1$@ · %2$@" + "value" : "找不到 ~/.pgpass" } } } }, - "/path/to/agent.sock" : { + "~/.ssh/id_rsa" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "/path/to/agent.sock" + "value" : "~/.ssh/id_rsa" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "/path/to/agent.sock" + "value" : "~/.ssh/id_rsa" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "/path/to/agent.sock" + "value" : "~/.ssh/id_rsa" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "/path/to/agent.sock" + "value" : "~/.ssh/id_rsa" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "/path/to/agent.sock" + "value" : "~/.ssh/id_rsa" } } } }, - "/path/to/ca-cert.pem" : { + "⌘K" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "/path/to/ca-cert.pem" + "value" : "⌘K" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "/path/to/ca-cert.pem" + "value" : "⌘K" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "/đường/dẫn/tới/ca-cert.pem" + "value" : "⌘K" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "/path/to/ca-cert.pem" + "value" : "⌘K" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "/path/to/ca-cert.pem" + "value" : "⌘K" } } } }, - "/path/to/database.sqlite" : { - "extractionState" : "stale", + "⌘T" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "/path/to/database.sqlite" + "value" : "⌘T" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "/path/to/database.sqlite" + "value" : "⌘T" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "/đường/dẫn/tới/database.sqlite" + "value" : "⌘T" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "/path/to/database.sqlite" + "value" : "⌘T" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "/path/to/database.sqlite" + "value" : "⌘T" } } } @@ -6674,480 +7600,548 @@ } } }, - "10,000" : { + "2" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "10,000" + "value" : "2" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "10.000" + "value" : "2" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "10,000" + "value" : "2" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "10,000" + "value" : "2" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "10,000" + "value" : "2" } } } }, - "10,000 rows" : { + "2 spaces" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "10,000개 행" + "value" : "공백 2개" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "10.000 satır" + "value" : "2 boşluk" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "10.000 dòng" + "value" : "2 dấu cách" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "10,000 行" + "value" : "2 个空格" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "10,000 列" + "value" : "2 個空格" } } } }, - "100" : { + "3" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "100" + "value" : "3" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "100" + "value" : "3" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "100" + "value" : "3" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "100" + "value" : "3" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "100" + "value" : "3" } } } }, - "100 rows" : { + "4 spaces" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "100개 행" + "value" : "공백 4개" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "100 satır" + "value" : "4 boşluk" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "100 dòng" + "value" : "4 dấu cách" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "100 行" + "value" : "4 个空格" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "100 列" + "value" : "4 個空格" } } } }, - "100,000" : { + "5,000" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "100,000" + "value" : "5,000" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "100.000" + "value" : "5.000" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "100.000" + "value" : "5,000" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "100,000" + "value" : "5,000" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "100,000" + "value" : "5,000" } } } }, - "2" : { - "extractionState" : "stale", + "5,000 rows" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "2" + "value" : "5,000개 행" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "2" + "value" : "5.000 satır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "2" + "value" : "5.000 dòng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "2" + "value" : "5,000 行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "2" + "value" : "5,000 列" } } } }, - "2 spaces" : { + "6" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "공백 2개" + "value" : "6" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "2 boşluk" + "value" : "6" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "2 dấu cách" + "value" : "6" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "2 个空格" + "value" : "6" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "2 個空格" + "value" : "6" } } } }, - "22" : { + "7 days" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "22" + "value" : "7일" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "22" + "value" : "7 gün" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "22" + "value" : "7 ngày" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "22" + "value" : "7 天" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "22" + "value" : "7 天" } } } }, - "3" : { - "extractionState" : "stale", + "8" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "3" + "value" : "8" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "3" + "value" : "8" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "3" + "value" : "8" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "3" + "value" : "8" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "3" + "value" : "8" } } } }, - "30 days" : { + "8 spaces" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "30일" + "value" : "공백 8개" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "30 gün" + "value" : "8 boşluk" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "30 ngày" + "value" : "8 dấu cách" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "30 天" + "value" : "8 个空格" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "30 天" + "value" : "8 個空格" } } } }, - "30s" : { + "8+ characters" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "30초" + "value" : "8자 이상" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "30s" + "value" : "8+ karakter" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "30 giây" + "value" : "8+ ký tự" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "30秒" + "value" : "至少8个字符" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "30 秒" + "value" : "至少 8 個字" } } } }, - "4 spaces" : { + "10,000" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "공백 4개" + "value" : "10,000" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "4 boşluk" + "value" : "10.000" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "4 dấu cách" + "value" : "10,000" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "4 个空格" + "value" : "10,000" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "4 個空格" + "value" : "10,000" } } } }, - "5,000" : { + "10,000 rows" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "5,000" + "value" : "10,000개 행" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "5.000" + "value" : "10.000 satır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "5,000" + "value" : "10.000 dòng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "5,000" + "value" : "10,000 行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "5,000" + "value" : "10,000 列" } } } }, - "5,000 rows" : { + "22" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "5,000개 행" + "value" : "22" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "5.000 satır" + "value" : "22" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "5.000 dòng" + "value" : "22" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "5,000 行" + "value" : "22" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "5,000 列" + "value" : "22" + } + } + } + }, + "30 days" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "30일" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "30 gün" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "30 ngày" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "30 天" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "30 天" + } + } + } + }, + "30s" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "30초" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "30s" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "30 giây" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "30秒" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "30 秒" } } } @@ -7186,142 +8180,6 @@ } } }, - "500" : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "500" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "500" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "500" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "500" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "500" - } - } - } - }, - "500 rows" : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "500개 행" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "500 satır" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "500 dòng" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "500 行" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "500 列" - } - } - } - }, - "500,000" : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "500,000" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "500.000" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "500.000" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "500,000" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "500,000" - } - } - } - }, - "6" : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "6" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "6" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "6" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "6" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "6" - } - } - } - }, "60 days" : { "localizations" : { "ko" : { @@ -7390,313 +8248,274 @@ } } }, - "7 days" : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "7일" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "7 gün" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "7 ngày" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "7 天" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "7 天" - } - } - } - }, - "8" : { + "90 days" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "8" + "value" : "90일" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "8" + "value" : "90 gün" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "8" + "value" : "90 ngày" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "8" + "value" : "90 天" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "8" + "value" : "90 天" } } } }, - "8 spaces" : { + "100" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "공백 8개" + "value" : "100" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "8 boşluk" + "value" : "100" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "8 dấu cách" + "value" : "100" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "8 个空格" + "value" : "100" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "8 個空格" + "value" : "100" } } } }, - "8+ characters" : { + "100 rows" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "8자 이상" + "value" : "100개 행" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "8+ karakter" + "value" : "100 satır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "8+ ký tự" + "value" : "100 dòng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "至少8个字符" + "value" : "100 行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "至少 8 個字" + "value" : "100 列" } } } }, - "90 days" : { + "100,000" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "90일" + "value" : "100,000" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "90 gün" + "value" : "100.000" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "90 ngày" + "value" : "100.000" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "90 天" + "value" : "100,000" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "90 天" + "value" : "100,000" } } } }, - ":" : { + "500" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : ":" + "value" : "500" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : ":" + "value" : "500" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : ":" + "value" : "500" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : ":" + "value" : "500" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : ":" + "value" : "500" } } } }, - ":%@" : { - "shouldTranslate" : false - }, - "<1 ms" : { - "comment" : "Query duration under one millisecond", + "500 rows" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "<1 ms" + "value" : "500개 행" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "<1 ms" + "value" : "500 satır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "<1 ms" + "value" : "500 dòng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "<1 毫秒" + "value" : "500 行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "<1 毫秒" + "value" : "500 列" } } } }, - "<1ms" : { + "500,000" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "<1ms" + "value" : "500,000" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "<1ms" + "value" : "500.000" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "<1ms" + "value" : "500.000" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "<1ms" + "value" : "500,000" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "<1ms" + "value" : "500,000" } } } }, - "=" : { - "extractionState" : "stale", + "A built-in plugin \"%@\" already provides this bundle ID" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "=" + "value" : "기본 제공 플러그인 \"%@\"에서 이미 이 번들 ID를 제공합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "=" + "value" : "A built-giriş plugin \"%@\" already provides this bundle ID" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "=" + "value" : "Plugin tích hợp \"%@\" đã cung cấp bundle ID này" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "=" + "value" : "内置插件 \"%@\" 已提供此 bundle ID" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "=" + "value" : "內建外掛「%@」已提供此 bundle ID" } } } @@ -7735,39 +8554,8 @@ } } }, - "A built-in plugin \"%@\" already provides this bundle ID" : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "기본 제공 플러그인 \"%@\"에서 이미 이 번들 ID를 제공합니다" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "A built-giriş plugin \"%@\" already provides this bundle ID" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "Plugin tích hợp \"%@\" đã cung cấp bundle ID này" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "内置插件 \"%@\" 已提供此 bundle ID" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "內建外掛「%@」已提供此 bundle ID" - } - } - } + "A column left out of the comparison is still written on insert and update. Changing either list needs another comparison." : { + }, "A command named \"/%@\" already exists." : { "localizations" : { @@ -7974,6 +8762,9 @@ } } } + }, + "a destructive statement" : { + }, "A different file already exists at %@." : { "localizations" : { @@ -8178,6 +8969,9 @@ } } } + }, + "a query" : { + }, "A query is still running. Disconnecting cancels it." : { "localizations" : { @@ -8212,6 +9006,9 @@ } } } + }, + "A SELECT to export. Use instead of 'tables'." : { + }, "A service account key is required" : { "localizations" : { @@ -8282,6 +9079,7 @@ } }, "A sync conflict was detected and needs to be resolved." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { @@ -8314,6 +9112,12 @@ } } } + }, + "A sync is still running" : { + + }, + "A transaction cannot be combined with skip and continue: together they would leave the target half applied." : { + }, "A user or role with this name already exists." : { "localizations" : { @@ -8349,4518 +9153,4348 @@ } } }, - "ACTIVE CONNECTIONS" : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "활성 연결" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "AKTİF BAĞLANTILAR" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "KẾT NỐI ĐANG HOẠT ĐỘNG" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "活跃连接" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "使用中的連線" - } - } - } - }, - "AI" : { + "About TablePro" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "AI" + "value" : "TablePro에 관하여" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "AI" + "value" : "TablePro Hakkında" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "AI" + "value" : "Giới thiệu TablePro" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "AI" + "value" : "关于 TablePro" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "AI" + "value" : "關於 TablePro" } } } }, - "AI Chat" : { + "Accent Color:" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "AI 채팅" + "value" : "강조 색상:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yapay Zeka Sohbeti" + "value" : "Vurgu Rengi:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "AI Chat" + "value" : "Màu nhấn:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "AI 对话" + "value" : "强调色:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "AI 對話" + "value" : "強調色:" } } } }, - "AI Not Configured" : { + "Access" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "AI가 설정되지 않음" + "value" : "접근 권한" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "AI Yapılandırılmadı" + "value" : "Erişim" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "AI chưa được cấu hình" + "value" : "Quyền truy cập" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "AI 未配置" + "value" : "访问权限" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "AI 尚未設定" + "value" : "存取權限" } } } }, - "AI Policy" : { + "Access Application" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "AI 정책" + "value" : "Access 애플리케이션" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yapay Zeka İlkesi" + "value" : "Access uygulaması" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chính sách AI" + "value" : "Ứng dụng Access" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "AI 策略" + "value" : "Access应用程序" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "AI 政策" + "value" : "Access 應用程式" } } } }, - "AI Policy controls in-app AI agents. External Clients controls Raycast, Cursor, Claude Desktop, and other MCP clients. Effective scope is the minimum of the requesting token's scope and the External Clients level." : { + "Access Key ID" : { "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "AI 정책은 앱 내 AI 에이전트를 제어합니다. 외부 클라이언트는 Raycast, Cursor, Claude Desktop 및 기타 MCP 클라이언트를 제어합니다. 유효 범위는 요청 토큰의 범위와 외부 클라이언트 수준 중 더 제한적인 범위입니다." - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "AI Politikası uygulama içi AI ajanlarını kontrol eder. Harici İstemciler ise Raycast, Cursor, Claude Desktop ve diğer MCP istemcilerini kontrol eder. Etkin kapsam, talep eden token'ın kapsamı ile Harici İstemciler düzeyinin minimumudur." - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "AI Policy kiểm soát các AI agent trong ứng dụng. External Clients kiểm soát Raycast, Cursor, Claude Desktop và các MCP client khác. Phạm vi thực tế là mức thấp hơn giữa phạm vi của token yêu cầu và mức External Clients." - } - }, - "zh-Hans" : { + "en" : { "stringUnit" : { "state" : "translated", - "value" : "AI 策略控制应用内 AI 代理。外部客户端控制 Raycast、Cursor、Claude Desktop 及其他 MCP 客户端。实际权限取请求令牌权限与外部客户端级别中的较低值。" + "value" : "Access Key ID" } }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "AI 政策控制應用程式內的 AI 代理程式。外部用戶端控制 Raycast、Cursor、Claude Desktop 及其他 MCP 用戶端。實際範圍取請求權杖範圍與外部用戶端層級兩者中較低者。" - } - } - } - }, - "AI Provider" : { - "extractionState" : "stale", - "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "AI 제공업체" + "value" : "액세스 키 ID" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yapay Zeka Sağlayıcısı" + "value" : "Access Key ID" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhà cung cấp AI" + "value" : "Access Key ID" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "AI 提供商" + "value" : "Access Key ID" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "AI 供應商" + "value" : "Access Key ID" } } } }, - "AI Rules" : { + "Access Method" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "AI 규칙" + "value" : "접근 방식" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yapay zeka kuralları" + "value" : "Erişim Yöntemi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Quy tắc AI" + "value" : "Phương thức truy cập" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "AI规则" + "value" : "访问方式" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "AI 規則" + "value" : "存取方式" } } } }, - "AI Walkthrough" : { + "Access Token" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "AI 단계별 안내" + "value" : "액세스 토큰" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "AI Adım Adım Anlatım" + "value" : "Erişim Belirteci" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hướng dẫn AI" + "value" : "Access Token" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "AI 分步讲解" + "value" : "访问令牌" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "AI 逐步解說" + "value" : "存取權杖" } } } }, - "AI access is disabled for this connection" : { + "Access uses your ChatGPT subscription (Plus, Pro, Business, or Enterprise) and follows OpenAI's terms. This is an unofficial interface that may change." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 연결에서는 AI 접근이 비활성화되어 있습니다" + "value" : "ChatGPT 구독(Plus, Pro, Business 또는 Enterprise)을 통해 이용하며 OpenAI 약관을 따릅니다. 이는 변경될 수 있는 비공식 인터페이스입니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu bağlantı için AI erişimi devre dışı" + "value" : "Erişim, ChatGPT aboneliğinizi (Plus, Pro, Business veya Enterprise) kullanır ve OpenAI'nin koşullarına tabidir. Bu, değişebilecek resmi olmayan bir arayüzdür." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Quyền truy cập AI bị tắt cho kết nối này" + "value" : "Truy cập sử dụng gói đăng ký ChatGPT của bạn (Plus, Pro, Business hoặc Enterprise) và tuân theo điều khoản của OpenAI. Đây là giao diện không chính thức và có thể thay đổi." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此连接的 AI 访问已禁用" + "value" : "访问会使用你的 ChatGPT 订阅(Plus、Pro、Business 或 Enterprise),并遵循 OpenAI 的条款。这是一个可能会变动的非官方接口。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此連線的 AI 存取已停用" + "value" : "存取會使用你的 ChatGPT 訂閱(Plus、Pro、Business 或 Enterprise),並遵循 OpenAI 的條款。這是一個可能會變動的非官方介面。" } } } }, - "AI access policies are configured per-connection in each connection's settings." : { + "Account" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "AI 접근 정책은 각 연결의 설정에서 연결별로 구성합니다." + "value" : "계정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "AI erişim politikaları her bağlantının ayarlarında ayrı ayrı yapılandırılır." + "value" : "Hesap" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chính sách truy cập AI được cấu hình riêng cho từng kết nối trong phần cài đặt." + "value" : "Tài khoản" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "AI 访问策略在每个连接的设置中单独配置。" + "value" : "账户" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "AI 存取原則在每個連線的設定中個別設定。" + "value" : "帳號" } } } }, - "AI and MCP" : { + "Account ID" : { "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "AI 및 MCP" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "AI ve MCP" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "AI và MCP" - } - }, - "zh-Hans" : { + "en" : { "stringUnit" : { "state" : "translated", - "value" : "AI 与 MCP" + "value" : "Account ID" } }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "AI 與 MCP" - } - } - } - }, - "AI is disabled for this connection." : { - "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 연결에서는 AI가 비활성화되어 있습니다." + "value" : "계정 ID" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu bağlantı için yapay zeka devre dışı." + "value" : "Account ID" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "AI bị tắt cho kết nối này." + "value" : "Account ID" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此连接已禁用 AI。" + "value" : "账户 ID" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此連線已停用 AI。" + "value" : "帳號 ID" } } } }, - "AI made too many tool calls in one response. Try simplifying the request." : { - "extractionState" : "stale", + "Account Identifier" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "AI가 한 응답에서 도구를 너무 많이 호출했습니다. 요청을 더 간단하게 작성해 보십시오." + "value" : "계정 식별자" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yapay zeka tek yanıtta çok fazla araç çağrısı yaptı. İsteği sadeleştirmeyi deneyin." + "value" : "Hesap tanımlayıcısı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "AI gọi quá nhiều công cụ trong một phản hồi. Hãy thử đơn giản hóa yêu cầu." + "value" : "Mã định danh tài khoản" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "AI在一次回复中调用了过多工具。请尝试简化请求。" + "value" : "账户标识符" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "AI 在一次回應中呼叫了過多工具。請嘗試簡化請求。" + "value" : "帳號識別碼" } } } }, - "AI responses may be inaccurate" : { + "Account:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "AI 응답은 부정확할 수 있습니다" + "value" : "계정:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yapay zeka yanıtları hatalı olabilir" + "value" : "Hesap:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phản hồi của AI có thể không chính xác" + "value" : "Tài khoản:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "AI回复可能不准确" + "value" : "账户:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "AI 回應可能不準確" + "value" : "帳號:" } } } }, - "AI-Powered Assistant" : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "AI 기반 어시스턴트" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "AI Destekli Asistan" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "Trợ lý AI" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "AI 助手" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "AI 助理" - } - } - } + "Acknowledgements" : { + }, - "AI-generated. Review before applying." : { + "Action" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "AI가 생성했습니다. 적용하기 전에 검토하십시오." + "value" : "작업" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yapay zeka üretti. Uygulamadan önce gözden geçirin." + "value" : "Eylem" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Do AI tạo. Hãy xem lại trước khi áp dụng." + "value" : "Thao tác" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "由 AI 生成。应用前请先检查。" + "value" : "操作" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "由 AI 產生。套用前請先檢查。" + "value" : "動作" } } } }, - "AI-powered SQL completions appear as ghost text while typing. Press Tab to accept, Escape to dismiss." : { - "extractionState" : "stale", + "Action Failed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "AI 기반 SQL 자동 완성이 입력하는 동안 고스트 텍스트로 표시됩니다. Tab 키를 눌러 적용하고 Escape 키를 눌러 닫으십시오." + "value" : "작업 실패" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yapay zeka destekli SQL tamamlamaları yazarken hayalet metin olarak görünür. Kabul etmek için Tab, kapatmak için Escape." + "value" : "İşlem Başarısız" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gợi ý SQL bằng AI xuất hiện dưới dạng văn bản mờ khi gõ. Nhấn Tab để chấp nhận, Escape để bỏ qua." + "value" : "Thao tác thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "AI 驱动的 SQL 补全在输入时以虚影文本显示。按 Tab 接受,按 Escape 关闭。" + "value" : "操作失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "AI 驅動的 SQL 補全會在輸入時以淡色文字顯示。按 Tab 接受,按 Escape 關閉。" + "value" : "操作失敗" } } } }, - "ALL DATABASES" : { - "extractionState" : "stale", + "Action: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 데이터베이스" + "value" : "작업: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "TÜM VERİTABANLARI" + "value" : "Eylem: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "TẤT CẢ CƠ SỞ DỮ LIỆU" + "value" : "Thao tác: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "所有数据库" + "value" : "操作:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "所有資料庫" + "value" : "動作:%@" } } } }, - "ALL SCHEMAS" : { - "extractionState" : "stale", + "Activate" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 스키마" + "value" : "활성화" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "TÜM ŞEMALAR" + "value" : "Etkinleştir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "TẤT CẢ SCHEMA" + "value" : "Kích hoạt" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "所有 SCHEMA" + "value" : "激活" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "所有綱要" + "value" : "啟用" } } } }, - "ANALYZE (update statistics after vacuum)" : { + "Activate a Team license to publish to the team library." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "ANALYZE (vacuum 후 통계 업데이트)" + "value" : "팀 라이브러리에 게시하려면 Team 라이선스를 활성화하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "ANALYZE (vacuum sonrası istatistikleri güncelle)" + "value" : "Takım kitaplığına yayınlamak için bir Team lisansı etkinleştirin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "ANALYZE (cập nhật thống kê sau vacuum)" + "value" : "Kích hoạt giấy phép Team để xuất bản lên thư viện nhóm." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "ANALYZE(vacuum 后更新统计信息)" + "value" : "激活 Team 许可证后才能发布到团队库。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "ANALYZE(vacuum 後更新統計資訊)" + "value" : "啟用 Team 授權後才能發佈到團隊庫。" } } } }, - "AND" : { - "extractionState" : "stale", + "Activate License" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "AND" + "value" : "라이선스 활성화" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "VE" + "value" : "Lisansı Etkinleştir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "AND" + "value" : "Kích hoạt giấy phép" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "AND" + "value" : "激活许可证" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "AND" + "value" : "啟用授權" } } } }, - "ANTHROPIC_API_KEY and ANTHROPIC_AUTH_TOKEN are removed from the tool's environment, so replies always draw on the subscription." : { + "Activate License…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "도구의 환경에서 ANTHROPIC_API_KEY와 ANTHROPIC_AUTH_TOKEN이 제거되므로 응답에는 항상 구독이 사용됩니다." + "value" : "라이선스 활성화…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "ANTHROPIC_API_KEY ve ANTHROPIC_AUTH_TOKEN aracın ortamından kaldırılır, bu yüzden yanıtlar her zaman abonelikten düşer." + "value" : "Lisansı Etkinleştir…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "ANTHROPIC_API_KEY và ANTHROPIC_AUTH_TOKEN bị loại khỏi môi trường của công cụ, nên các câu trả lời luôn dùng gói đăng ký." + "value" : "Kích hoạt giấy phép…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "ANTHROPIC_API_KEY 和 ANTHROPIC_AUTH_TOKEN 会从该工具的环境变量中移除,因此回复始终消耗订阅额度。" + "value" : "激活许可证…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "ANTHROPIC_API_KEY 和 ANTHROPIC_AUTH_TOKEN 會從該工具的環境變數中移除,因此回覆一律消耗訂閱額度。" + "value" : "啟用授權…" } } } }, - "API Key" : { + "Activate next time you launch TablePro" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "API 키" + "value" : "다음 TablePro 실행 시 활성화" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "API Anahtarı" + "value" : "TablePro'yu bir sonraki başlatışınızda etkinleştir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "API Key" + "value" : "Kích hoạt lần khởi chạy TablePro tiếp theo" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "API Key" + "value" : "下次启动TablePro时激活" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "API Key" + "value" : "下次啟動 TablePro 時啟用" } } } }, - "API Token" : { + "Activate Now" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "API Token" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "API 토큰" + "value" : "지금 활성화" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "API Token" + "value" : "Şimdi Etkinleştir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "API Token" + "value" : "Kích hoạt ngay" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "API Token" + "value" : "立即激活" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "API Token" + "value" : "立即啟用" } } } }, - "API Token Required" : { + "Activation Failed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "API 토큰 필요" + "value" : "활성화 실패" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "API Anahtarı Gerekli" + "value" : "Etkinleştirme Başarısız" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Yêu cầu mã API" + "value" : "Kích hoạt thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "需要 API 令牌" + "value" : "激活失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "需要 API 權杖" + "value" : "啟用失敗" } } } }, - "API key is required" : { + "Activations (%lld of %lld)" : { "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "API 키가 필요합니다" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "API anahtarı gerekli" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "Yêu cầu khóa API" - } - }, - "zh-Hans" : { + "en" : { "stringUnit" : { - "state" : "translated", - "value" : "需要 API 密钥" + "state" : "new", + "value" : "Activations (%1$lld of %2$lld)" } }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "需要 API key" - } - } - } - }, - "API key set" : { - "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "API 키 설정됨" + "value" : "활성화(%1$lld/%2$lld)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "API anahtarı ayarlı" + "value" : "Etkinleştirmeler (%lld / %lld)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã đặt API key" + "value" : "Kích hoạt (%1$lld / %2$lld)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已设置 API 密钥" + "value" : "激活数(%lld / %lld)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已設定 API key" + "value" : "啟用數(%1$lld / %2$lld)" } } } }, - "API token" : { + "Active" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "API 토큰" + "value" : "활성" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "API anahtarı" + "value" : "Etkin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mã API" + "value" : "Đang hoạt động" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "API 令牌" + "value" : "活跃" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "API 權杖" + "value" : "使用中" } } } }, - "AUTO" : { + "Active Connections" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "자동" + "value" : "활성 연결" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "OTO" + "value" : "Aktif Bağlantılar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "TỰ ĐỘNG" + "value" : "Kết nối đang hoạt động" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "自动" + "value" : "活跃连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "自動" + "value" : "使用中的連線" } } } }, - "AWS Region" : { + "ACTIVE CONNECTIONS" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "AWS Region" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "AWS 리전" + "value" : "활성 연결" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "AWS Bölgesi" + "value" : "AKTİF BAĞLANTILAR" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "AWS Region" + "value" : "KẾT NỐI ĐANG HOẠT ĐỘNG" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "AWS 区域" + "value" : "活跃连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "AWS 區域" + "value" : "使用中的連線" } } } }, - "AWS SSO Sign-In Failed" : { + "Active Merges" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "AWS SSO 로그인 실패" + "value" : "활성 병합" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "AWS SSO oturumu açılamadı" + "value" : "Aktif Birleştirmeler" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đăng nhập AWS SSO thất bại" + "value" : "Hợp nhất đang chạy" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "AWS SSO登录失败" + "value" : "活跃合并" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "AWS SSO 登入失敗" + "value" : "進行中的合併" } } } }, - "AWS SSO Sign-In Required" : { + "Active Provider" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "AWS SSO 로그인 필요" + "value" : "활성 프로바이더" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "AWS SSO ile oturum açma gerekli" + "value" : "Aktif Sağlayıcı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Yêu cầu đăng nhập AWS SSO" + "value" : "Nhà cung cấp đang hoạt động" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "需要AWS SSO登录" + "value" : "活动提供方" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "需要 AWS SSO 登入" + "value" : "使用中的供應商" } } } }, - "AWS SSO sign-in finished. Test the connection again." : { + "Active Queries" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "AWS SSO 로그인이 완료되었습니다. 연결을 다시 테스트하십시오." + "value" : "활성 쿼리" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "AWS SSO oturum açma tamamlandı. Bağlantıyı yeniden test edin." + "value" : "Aktif Sorgular" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã hoàn tất đăng nhập AWS SSO. Hãy kiểm tra lại kết nối." + "value" : "Truy vấn đang chạy" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "AWS SSO登录已完成。请再次测试连接。" + "value" : "活跃查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "AWS SSO 登入已完成。請再次測試連線。" + "value" : "進行中的查詢" } } } }, - "AWS managed key-value/document store" : { + "Active Sessions" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "AWS 관리형 키-값/문서 저장소" + "value" : "활성 세션" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "AWS'nin yönettiği anahtar-değer/belge deposu" + "value" : "Aktif Oturumlar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kho key-value/tài liệu do AWS quản lý" + "value" : "Phiên đang hoạt động" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "AWS托管的键值/文档存储" + "value" : "活跃会话" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "AWS 託管的鍵值/文件儲存" + "value" : "使用中的工作階段" } } } }, - "About TablePro" : { + "Activity" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro에 관하여" + "value" : "활동" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro Hakkında" + "value" : "Etkinlik" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giới thiệu TablePro" + "value" : "Hoạt động" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "关于 TablePro" + "value" : "活动" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "關於 TablePro" + "value" : "活動" } } } }, - "Accent Color:" : { - "extractionState" : "stale", + "Activity Details" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "강조 색상:" + "value" : "활동 세부사항" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Vurgu Rengi:" + "value" : "Etkinlik ayrıntıları" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Màu nhấn:" + "value" : "Chi tiết hoạt động" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "强调色:" + "value" : "活动详情" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "強調色:" + "value" : "活動詳細資訊" } } } }, - "Access" : { + "Activity is retained for 90 days." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "접근 권한" + "value" : "활동은 90일간 보관됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Erişim" + "value" : "Etkinlikler 90 gün boyunca saklanır." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Quyền truy cập" + "value" : "Hoạt động được lưu trong 90 ngày." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "访问权限" + "value" : "活动记录保留 90 天。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "存取權限" + "value" : "活動記錄保留 90 天。" } } } }, - "Access Application" : { + "Activity Log" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Access 애플리케이션" + "value" : "활동 로그" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Access uygulaması" + "value" : "Etkinlik Günlüğü" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ứng dụng Access" + "value" : "Nhật ký hoạt động" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Access应用程序" + "value" : "活动日志" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Access 應用程式" + "value" : "活動記錄" } } } }, - "Access Key ID" : { + "Actual" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Access Key ID" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "액세스 키 ID" + "value" : "실제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Access Key ID" + "value" : "Gerçek" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Access Key ID" + "value" : "Thực tế" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Access Key ID" + "value" : "实际" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Access Key ID" + "value" : "實際" } } } }, - "Access Method" : { + "Actual Rows" : { + "comment" : "Label for the number of rows in the actual result set.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "접근 방식" + "value" : "실제 행" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Erişim Yöntemi" + "value" : "Gerçek Satır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phương thức truy cập" + "value" : "Số hàng thực tế" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "访问方式" + "value" : "实际行数" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "存取方式" + "value" : "實際列數" } } } }, - "Access Token" : { + "Actual Time" : { + "comment" : "Label for the actual time taken by a query.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "액세스 토큰" + "value" : "실제 시간" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Erişim Belirteci" + "value" : "Gerçek Süre" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Access Token" + "value" : "Thời gian thực tế" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "访问令牌" + "value" : "实际耗时" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "存取權杖" + "value" : "實際耗時" } } } }, - "Access uses your ChatGPT subscription (Plus, Pro, Business, or Enterprise) and follows OpenAI's terms. This is an unofficial interface that may change." : { + "Add" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "ChatGPT 구독(Plus, Pro, Business 또는 Enterprise)을 통해 이용하며 OpenAI 약관을 따릅니다. 이는 변경될 수 있는 비공식 인터페이스입니다." + "value" : "추가" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Erişim, ChatGPT aboneliğinizi (Plus, Pro, Business veya Enterprise) kullanır ve OpenAI'nin koşullarına tabidir. Bu, değişebilecek resmi olmayan bir arayüzdür." + "value" : "Ekle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Truy cập sử dụng gói đăng ký ChatGPT của bạn (Plus, Pro, Business hoặc Enterprise) và tuân theo điều khoản của OpenAI. Đây là giao diện không chính thức và có thể thay đổi." + "value" : "Thêm" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "访问会使用你的 ChatGPT 订阅(Plus、Pro、Business 或 Enterprise),并遵循 OpenAI 的条款。这是一个可能会变动的非官方接口。" + "value" : "添加" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "存取會使用你的 ChatGPT 訂閱(Plus、Pro、Business 或 Enterprise),並遵循 OpenAI 的條款。這是一個可能會變動的非官方介面。" + "value" : "新增" } } } }, - "Account" : { + "Add %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "계정" + "value" : "%@ 추가" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Hesap" + "value" : "%@ Ekle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tài khoản" + "value" : "Thêm %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "账户" + "value" : "添加 %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "帳號" + "value" : "新增 %@" } } } }, - "Account ID" : { + "Add Another SQL Folder..." : { + "extractionState" : "stale", "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Account ID" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "계정 ID" + "value" : "다른 SQL 폴더 추가..." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Account ID" + "value" : "Başka Bir SQL Klasörü Ekle..." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Account ID" + "value" : "Thêm thư mục SQL khác..." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "账户 ID" + "value" : "添加其他SQL文件夹..." } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "帳號 ID" + "value" : "新增其他 SQL 資料夾…" } } } }, - "Account Identifier" : { + "Add Another SQL Folder…" : { + "comment" : "Text for a menu item that adds a new linked SQL folder.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "계정 식별자" + "value" : "다른 SQL 폴더 추가…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Hesap tanımlayıcısı" + "value" : "Başka Bir SQL Klasörü Ekle…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mã định danh tài khoản" + "value" : "Thêm thư mục SQL khác…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "账户标识符" + "value" : "添加另一个 SQL 文件夹…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "帳號識別碼" + "value" : "加入另一個 SQL 資料夾…" } } } }, - "Account:" : { + "Add as Copy" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "계정:" + "value" : "복사본으로 추가" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Hesap:" + "value" : "Kopya Olarak Ekle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tài khoản:" + "value" : "Thêm dưới dạng bản sao" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "账户:" + "value" : "作为副本添加" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "帳號:" + "value" : "新增為副本" } } } }, - "Action" : { + "Add at least one column with a name and type" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "작업" + "value" : "이름과 유형이 지정된 열을 하나 이상 추가하십시오" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eylem" + "value" : "En az bir ad ve türe sahip sütun ekleyin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thao tác" + "value" : "Thêm ít nhất một cột có tên và kiểu dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "操作" + "value" : "请至少添加一个包含名称和类型的列" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "動作" + "value" : "請至少新增一個含名稱與型別的欄位" } } } }, - "Action Failed" : { + "Add Check Constraint" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "작업 실패" + "value" : "체크 제약 조건 추가" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İşlem Başarısız" + "value" : "Kontrol Kısıtı Ekle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thao tác thất bại" + "value" : "Thêm ràng buộc kiểm tra" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "操作失败" + "value" : "添加检查约束" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "操作失敗" + "value" : "新增檢查約束" } } } }, - "Action: %@" : { + "Add Column" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "작업: %@" + "value" : "열 추가" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eylem: %@" + "value" : "Sütun Ekle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thao tác: %@" + "value" : "Thêm cột" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "操作:%@" + "value" : "添加列" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "動作:%@" + "value" : "新增欄位" } } } }, - "Activate" : { + "Add Column…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "활성화" + "value" : "열 추가…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Etkinleştir" + "value" : "Sütun Ekle…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kích hoạt" + "value" : "Thêm cột…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "激活" + "value" : "添加列…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "啟用" + "value" : "新增欄位…" } } } }, - "Activate License" : { + "Add columns first" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "라이선스 활성화" + "value" : "먼저 열을 추가하십시오" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Lisansı Etkinleştir" + "value" : "Önce sütun ekleyin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kích hoạt giấy phép" + "value" : "Thêm cột trước" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "激活许可证" + "value" : "请先添加列" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "啟用授權" + "value" : "請先新增欄位" } } } }, - "Activate License…" : { + "Add columns to see the CREATE TABLE statement" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "라이선스 활성화…" + "value" : "CREATE TABLE 문을 보려면 열을 추가하십시오" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Lisansı Etkinleştir…" + "value" : "CREATE TABLE ifadesini görmek için sütun ekleyin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kích hoạt giấy phép…" + "value" : "Thêm cột để xem câu lệnh CREATE TABLE" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "激活许可证…" + "value" : "添加列以查看 CREATE TABLE 语句" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "啟用授權…" + "value" : "新增欄位以查看 CREATE TABLE 陳述式" } } } }, - "Activate Now" : { + "Add Command" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "지금 활성화" + "value" : "명령 추가" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Şimdi Etkinleştir" + "value" : "Komut Ekle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kích hoạt ngay" + "value" : "Thêm lệnh" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "立即激活" + "value" : "添加命令" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "立即啟用" + "value" : "新增指令" } } } }, - "Activate a Team license to publish to the team library." : { + "Add Connection" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "팀 라이브러리에 게시하려면 Team 라이선스를 활성화하십시오." + "value" : "연결 추가" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Takım kitaplığına yayınlamak için bir Team lisansı etkinleştirin." + "value" : "Bağlantı Ekle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kích hoạt giấy phép Team để xuất bản lên thư viện nhóm." + "value" : "Thêm kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "激活 Team 许可证后才能发布到团队库。" + "value" : "添加连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "啟用 Team 授權後才能發佈到團隊庫。" + "value" : "新增連線" } } } }, - "Activate next time you launch TablePro" : { + "Add Custom Provider…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다음 TablePro 실행 시 활성화" + "value" : "사용자 지정 프로바이더 추가…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro'yu bir sonraki başlatışınızda etkinleştir" + "value" : "Özel Sağlayıcı Ekle…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kích hoạt lần khởi chạy TablePro tiếp theo" + "value" : "Thêm nhà cung cấp tùy chỉnh…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "下次启动TablePro时激活" + "value" : "添加自定义提供方…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "下次啟動 TablePro 時啟用" + "value" : "新增自訂供應商…" } } } }, - "Activation Failed" : { + "Add Element" : { + "comment" : "A button that adds a new element to a list.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "활성화 실패" + "value" : "요소 추가" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Etkinleştirme Başarısız" + "value" : "Öğe Ekle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kích hoạt thất bại" + "value" : "Thêm phần tử" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "激活失败" + "value" : "添加元素" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "啟用失敗" + "value" : "加入元素" } } } }, - "Activations (%lld of %lld)" : { + "Add filter" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Activations (%1$lld of %2$lld)" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "활성화(%1$lld/%2$lld)" + "value" : "필터 추가" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Etkinleştirmeler (%lld / %lld)" + "value" : "Filtre ekle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kích hoạt (%1$lld / %2$lld)" + "value" : "Thêm bộ lọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "激活数(%lld / %lld)" + "value" : "添加筛选" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "啟用數(%1$lld / %2$lld)" + "value" : "新增篩選" } } } }, - "Active" : { + "Add Filter" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "활성" + "value" : "필터 추가" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Etkin" + "value" : "Filtre Ekle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang hoạt động" + "value" : "Thêm bộ lọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "活跃" + "value" : "添加筛选" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "使用中" + "value" : "新增篩選" } } } }, - "Active Connections" : { + "Add Filter (Cmd+Shift+F)" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "활성 연결" + "value" : "필터 추가(Cmd+Shift+F)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Aktif Bağlantılar" + "value" : "Filtre Ekle (Cmd+Shift+F)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối đang hoạt động" + "value" : "Thêm bộ lọc (Cmd+Shift+F)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "活跃连接" + "value" : "添加筛选 (Cmd+Shift+F)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "使用中的連線" + "value" : "新增篩選 (Cmd+Shift+F)" } } } }, - "Active Merges" : { + "Add filter row" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "활성 병합" + "value" : "필터 행 추가" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Aktif Birleştirmeler" + "value" : "Filtre satırı ekle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hợp nhất đang chạy" + "value" : "Thêm dòng bộ lọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "活跃合并" + "value" : "添加筛选行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "進行中的合併" + "value" : "新增篩選列" } } } }, - "Active Provider" : { + "Add Folder…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "활성 프로바이더" + "value" : "폴더 추가…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Aktif Sağlayıcı" + "value" : "Klasör Ekle…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhà cung cấp đang hoạt động" + "value" : "Thêm Thư mục…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "活动提供方" + "value" : "添加文件夹…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "使用中的供應商" + "value" : "新增資料夾…" } } } }, - "Active Queries" : { + "Add Foreign Key" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "활성 쿼리" + "value" : "외래 키 추가" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Aktif Sorgular" + "value" : "Yabancı Anahtar Ekle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Truy vấn đang chạy" + "value" : "Thêm khóa ngoại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "活跃查询" + "value" : "添加外键" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "進行中的查詢" + "value" : "新增外鍵" } } } }, - "Active Sessions" : { + "Add from Existing" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "활성 세션" + "value" : "기존 항목에서 추가" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Aktif Oturumlar" + "value" : "Mevcuttan Ekle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phiên đang hoạt động" + "value" : "Thêm từ nguồn có sẵn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "活跃会话" + "value" : "从已有来源添加" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "使用中的工作階段" + "value" : "從現有來源新增" } } } }, - "Activity" : { + "Add Host" : { + "comment" : "Label for the \"Add Host\" button in the host list field row.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "활동" + "value" : "호스트 추가" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Etkinlik" + "value" : "Sunucu Ekle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hoạt động" + "value" : "Thêm máy chủ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "活动" + "value" : "添加主机" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "活動" + "value" : "加入主機" } } } }, - "Activity Details" : { + "Add Index" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "활동 세부사항" + "value" : "인덱스 추가" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Etkinlik ayrıntıları" + "value" : "İndeks Ekle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chi tiết hoạt động" + "value" : "Thêm chỉ mục" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "活动详情" + "value" : "添加索引" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "活動詳細資訊" + "value" : "新增索引" } } } }, - "Activity Log" : { + "Add indexes to improve query performance on frequently searched columns" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "활동 로그" + "value" : "자주 검색하는 열의 쿼리 성능을 높이려면 인덱스를 추가하십시오" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Etkinlik Günlüğü" + "value" : "Sık aranan sütunlarda sorgu performansını artırmak için indeks ekleyin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhật ký hoạt động" + "value" : "Thêm chỉ mục để cải thiện hiệu suất truy vấn trên các cột thường xuyên tìm kiếm" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "活动日志" + "value" : "添加索引以提升常用搜索列的查询性能" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "活動記錄" + "value" : "為常搜尋的欄位新增索引以提升查詢效能" } } } }, - "Activity is retained for 90 days." : { + "Add Jump Host" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "활동은 90일간 보관됩니다." + "value" : "점프 호스트 추가" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Etkinlikler 90 gün boyunca saklanır." + "value" : "Atlama Sunucusu Ekle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hoạt động được lưu trong 90 ngày." + "value" : "Thêm Jump Host" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "活动记录保留 90 天。" + "value" : "添加跳板机" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "活動記錄保留 90 天。" + "value" : "新增跳板主機" } } } }, - "Actual" : { + "Add Linked SQL Folder..." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "실제" + "value" : "연결된 SQL 폴더 추가..." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Gerçek" + "value" : "Bağlı SQL Klasörü Ekle..." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thực tế" + "value" : "Thêm thư mục SQL liên kết..." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "实际" + "value" : "添加链接的SQL文件夹..." } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "實際" + "value" : "新增連結的 SQL 資料夾…" } } } }, - "Actual Rows" : { - "comment" : "Label for the number of rows in the actual result set.", + "Add Linked SQL Folder…" : { + "comment" : "Text for a menu item that adds a linked SQL folder.", "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "실제 행" + "value" : "연결된 SQL 폴더 추가…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Gerçek Satır" + "value" : "Bağlı SQL Klasörü Ekle…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Số hàng thực tế" + "value" : "Thêm thư mục SQL liên kết…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "实际行数" + "value" : "添加关联 SQL 文件夹…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "實際列數" + "value" : "加入連結的 SQL 資料夾…" } } } }, - "Actual Time" : { - "comment" : "Label for the actual time taken by a query.", - "isCommentAutoGenerated" : true, + "Add provider" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "실제 시간" + "value" : "프로바이더 추가" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Gerçek Süre" + "value" : "Sağlayıcı ekle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thời gian thực tế" + "value" : "Thêm nhà cung cấp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "实际耗时" + "value" : "添加提供商" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "實際耗時" + "value" : "新增供應商" } } } }, - "Add" : { + "Add Provider" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "추가" + "value" : "프로바이더 추가" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ekle" + "value" : "Sağlayıcı Ekle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thêm" + "value" : "Thêm nhà cung cấp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "添加" + "value" : "添加提供商" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增" + "value" : "新增供應商" } } } }, - "Add %@" : { + "Add Provider…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 추가" + "value" : "프로바이더 추가…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ Ekle" + "value" : "Sağlayıcı Ekle…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thêm %@" + "value" : "Thêm nhà cung cấp…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "添加 %@" + "value" : "添加提供方…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增 %@" + "value" : "新增供應商…" } } } }, - "Add Another SQL Folder..." : { - "extractionState" : "stale", + "Add Row" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다른 SQL 폴더 추가..." + "value" : "행 추가" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Başka Bir SQL Klasörü Ekle..." + "value" : "Satır Ekle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thêm thư mục SQL khác..." + "value" : "Thêm dòng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "添加其他SQL文件夹..." + "value" : "添加行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增其他 SQL 資料夾…" + "value" : "新增列" } } } }, - "Add Another SQL Folder…" : { - "comment" : "Text for a menu item that adds a new linked SQL folder.", - "isCommentAutoGenerated" : true, + "Add tags" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다른 SQL 폴더 추가…" + "value" : "태그 추가" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Başka Bir SQL Klasörü Ekle…" + "value" : "Etiket ekle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thêm thư mục SQL khác…" + "value" : "Thêm thẻ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "添加另一个 SQL 文件夹…" + "value" : "添加标签" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "加入另一個 SQL 資料夾…" + "value" : "新增標籤" } } } }, - "Add Check Constraint" : { + "Add the JSON below inside the file and save" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "체크 제약 조건 추가" + "value" : "아래 JSON을 파일에 추가하고 저장하십시오" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kontrol Kısıtı Ekle" + "value" : "Aşağıdaki JSON'u dosyaya ekleyin ve kaydedin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thêm ràng buộc kiểm tra" + "value" : "Thêm JSON dưới đây vào tệp và lưu lại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "添加检查约束" + "value" : "将下方 JSON 添加到文件中并保存" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增檢查約束" + "value" : "將下方 JSON 加入檔案中並儲存" } } } }, - "Add Column" : { + "Add Theme" : { + "comment" : "Add Theme", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열 추가" + "value" : "테마 추가" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sütun Ekle" + "value" : "Tema Ekle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thêm cột" + "value" : "Thêm giao diện" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "添加列" + "value" : "添加主题" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增欄位" + "value" : "加入佈景主題" } } } }, - "Add Column…" : { + "Add to Favorites" : { + "comment" : "A label that describes an action to add an item to a user's favorites.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열 추가…" + "value" : "즐겨찾기에 추가" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sütun Ekle…" + "value" : "Sık Kullanılanlara Ekle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thêm cột…" + "value" : "Thêm vào Yêu thích" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "添加列…" + "value" : "添加到收藏" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增欄位…" + "value" : "加入我的最愛" } } } }, - "Add Command" : { + "Add validation rules to ensure data integrity" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "명령 추가" + "value" : "데이터 무결성을 보장하려면 유효성 검사 규칙을 추가하십시오" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Komut Ekle" + "value" : "Veri bütünlüğünü sağlamak için doğrulama kuralları ekleyin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thêm lệnh" + "value" : "Thêm quy tắc xác thực để đảm bảo tính toàn vẹn dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "添加命令" + "value" : "添加验证规则以确保数据完整性" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增指令" + "value" : "新增驗證規則以確保資料完整性" } } } }, - "Add Connection" : { + "Added" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 추가" + "value" : "추가됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı Ekle" + "value" : "Eklendi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thêm kết nối" + "value" : "Đã thêm" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "添加连接" + "value" : "新增" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增連線" + "value" : "新增" } } } }, - "Add Custom Provider…" : { + "Address" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사용자 지정 프로바이더 추가…" + "value" : "주소" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Özel Sağlayıcı Ekle…" + "value" : "Adres" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thêm nhà cung cấp tùy chỉnh…" + "value" : "Địa chỉ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "添加自定义提供方…" + "value" : "地址" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增自訂供應商…" + "value" : "位址" } } } }, - "Add Element" : { - "comment" : "A button that adds a new element to a list.", - "isCommentAutoGenerated" : true, + "Adds a narrow strip on the window's leading edge listing every connection and database you have open, so one click switches to it." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "요소 추가" + "value" : "열어 둔 모든 연결과 데이터베이스를 나열하는 좁은 막대를 윈도우 왼쪽 가장자리에 추가하여 클릭 한 번으로 전환할 수 있습니다." } }, "tr" : { "stringUnit" : { - "state" : "translated", - "value" : "Öğe Ekle" + "state" : "needs_review", + "value" : "Pencerenin sol kenarında açık her bağlantıyı ve veritabanını listeleyen dar bir şerit ekler; tek tıkla geçiş yaparsınız." } }, "vi" : { "stringUnit" : { - "state" : "translated", - "value" : "Thêm phần tử" + "state" : "needs_review", + "value" : "Thêm một dải hẹp ở cạnh trái cửa sổ liệt kê mọi kết nối và cơ sở dữ liệu đang mở, chỉ cần một cú nhấp để chuyển sang." } }, "zh-Hans" : { "stringUnit" : { - "state" : "translated", - "value" : "添加元素" + "state" : "needs_review", + "value" : "在窗口前缘添加一条窄栏,列出所有已打开的连接和数据库,单击即可切换。" } }, "zh-Hant" : { "stringUnit" : { - "state" : "translated", - "value" : "加入元素" + "state" : "needs_review", + "value" : "在視窗前緣加入一條窄列,列出所有已開啟的連線與資料庫,單擊即可切換。" } } } }, - "Add Filter" : { + "Adds a Recent section at the top of the Tables sidebar with the last tables you opened per connection and database." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터 추가" + "value" : "연결 및 데이터베이스별로 최근에 연 테이블을 표시하는 최근 항목 섹션을 테이블 사이드바 상단에 추가합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtre Ekle" + "value" : "Tablolar kenar çubuğunun üstüne, her bağlantı ve veritabanı için en son açtığınız tabloları gösteren bir Son Kullanılanlar bölümü ekler." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thêm bộ lọc" + "value" : "Thêm mục Gần đây ở đầu thanh bên Bảng, hiển thị các bảng bạn mở gần nhất theo từng kết nối và cơ sở dữ liệu." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "添加筛选" + "value" : "在表侧边栏顶部添加“最近”区域,按连接和数据库显示你最近打开的表。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增篩選" + "value" : "在資料表側邊欄頂端加入「最近」區塊,依連線與資料庫顯示你最近開啟的資料表。" } } } }, - "Add Filter (Cmd+Shift+F)" : { - "extractionState" : "stale", + "Adjust Limit" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터 추가(Cmd+Shift+F)" + "value" : "제한 조정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtre Ekle (Cmd+Shift+F)" + "value" : "Limiti Ayarla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thêm bộ lọc (Cmd+Shift+F)" + "value" : "Điều chỉnh giới hạn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "添加筛选 (Cmd+Shift+F)" + "value" : "调整限制" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增篩選 (Cmd+Shift+F)" + "value" : "調整上限" } } } }, - "Add Folder…" : { + "admin" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "폴더 추가…" + "value" : "admin" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Klasör Ekle…" + "value" : "yönetici" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thêm Thư mục…" + "value" : "admin" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "添加文件夹…" + "value" : "admin" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增資料夾…" + "value" : "admin" } } } }, - "Add Foreign Key" : { + "Administration" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "외래 키 추가" + "value" : "관리" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yabancı Anahtar Ekle" + "value" : "Yönetim" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thêm khóa ngoại" + "value" : "Quản trị" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "添加外键" + "value" : "管理" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增外鍵" + "value" : "管理" } } } }, - "Add Host" : { - "comment" : "Label for the \"Add Host\" button in the host list field row.", - "isCommentAutoGenerated" : true, + "Advanced" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "호스트 추가" + "value" : "고급" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sunucu Ekle" + "value" : "Gelişmiş" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thêm máy chủ" + "value" : "Nâng cao" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "添加主机" + "value" : "高级" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "加入主機" + "value" : "進階" } } } }, - "Add Index" : { + "Advanced object-relational SQL" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "인덱스 추가" + "value" : "고급 객체 관계형 SQL" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İndeks Ekle" + "value" : "Gelişmiş nesne-ilişkisel SQL" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thêm chỉ mục" + "value" : "SQL quan hệ-đối tượng nâng cao" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "添加索引" + "value" : "高级对象关系型SQL" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增索引" + "value" : "進階的物件關聯式 SQL" } } } }, - "Add Jump Host" : { + "Agent" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "점프 호스트 추가" + "value" : "에이전트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Atlama Sunucusu Ekle" + "value" : "Ajan" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thêm Jump Host" + "value" : "Agent" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "添加跳板机" + "value" : "Agent" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增跳板主機" + "value" : "Agent" } } } }, - "Add Linked SQL Folder..." : { - "extractionState" : "stale", + "Agent mode calls tools in a loop until it finishes or hits this limit, then pauses so you can continue. Raising it costs more tokens per reply." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결된 SQL 폴더 추가..." + "value" : "에이전트 모드는 완료되거나 이 제한에 도달할 때까지 도구를 반복 호출한 후, 계속할 수 있도록 일시 정지합니다. 제한을 높이면 응답당 더 많은 토큰이 소모됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlı SQL Klasörü Ekle..." + "value" : "Agent modu, iş bitene veya bu limite ulaşılana kadar araçları döngüde çağırır, sonra devam edebilmeniz için duraklar. Limiti yükseltmek yanıt başına daha fazla token harcar." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thêm thư mục SQL liên kết..." + "value" : "Chế độ agent gọi công cụ theo vòng lặp cho đến khi xong hoặc chạm giới hạn này, rồi tạm dừng để bạn tiếp tục. Tăng giới hạn sẽ tốn nhiều token hơn cho mỗi câu trả lời." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "添加链接的SQL文件夹..." + "value" : "Agent 模式会循环调用工具,直到完成或达到此上限,然后暂停等你继续。上限越高,每条回复消耗的 token 越多。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增連結的 SQL 資料夾…" + "value" : "Agent 模式會循環呼叫工具,直到完成或達到此上限,然後暫停等你繼續。上限越高,每則回覆消耗的 token 越多。" } } } }, - "Add Linked SQL Folder…" : { - "comment" : "Text for a menu item that adds a linked SQL folder.", - "isCommentAutoGenerated" : true, + "Agent Socket" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결된 SQL 폴더 추가…" + "value" : "에이전트 소켓" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlı SQL Klasörü Ekle…" + "value" : "Aracı Soketi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thêm thư mục SQL liên kết…" + "value" : "Agent Socket" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "添加关联 SQL 文件夹…" + "value" : "Agent Socket" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "加入連結的 SQL 資料夾…" + "value" : "Agent Socket" } } } }, - "Add Provider" : { - "extractionState" : "stale", + "Agent: full tool access including destructive DDL. Safe mode still gates execution." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "프로바이더 추가" + "value" : "에이전트: 파괴적인 DDL을 포함한 모든 도구에 접근할 수 있습니다. 안전 모드에서도 실행을 제한합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sağlayıcı Ekle" + "value" : "Ajan: yıkıcı DDL dahil tüm araçlara erişim. Güvenli mod yürütmeyi yine de denetler." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thêm nhà cung cấp" + "value" : "Agent: toàn quyền dùng công cụ, gồm cả DDL phá hủy. Chế độ an toàn vẫn kiểm soát việc thực thi." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "添加提供商" + "value" : "Agent:可使用全部工具,包括破坏性DDL。安全模式仍会控制执行。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增供應商" + "value" : "Agent:可使用全部工具,包括破壞性的 DDL。安全模式仍會控管執行。" } } } }, - "Add Provider…" : { + "AI" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "프로바이더 추가…" + "value" : "AI" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sağlayıcı Ekle…" + "value" : "AI" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thêm nhà cung cấp…" + "value" : "AI" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "添加提供方…" + "value" : "AI" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增供應商…" + "value" : "AI" } } } }, - "Add Row" : { + "AI access is disabled for this connection" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "행 추가" + "value" : "이 연결에서는 AI 접근이 비활성화되어 있습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satır Ekle" + "value" : "Bu bağlantı için AI erişimi devre dışı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thêm dòng" + "value" : "Quyền truy cập AI bị tắt cho kết nối này" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "添加行" + "value" : "此连接的 AI 访问已禁用" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增列" + "value" : "此連線的 AI 存取已停用" } } } }, - "Add Theme" : { - "comment" : "Add Theme", - "isCommentAutoGenerated" : true, + "AI access policies are configured per-connection in each connection's settings." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테마 추가" + "value" : "AI 접근 정책은 각 연결의 설정에서 연결별로 구성합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tema Ekle" + "value" : "AI erişim politikaları her bağlantının ayarlarında ayrı ayrı yapılandırılır." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thêm giao diện" + "value" : "Chính sách truy cập AI được cấu hình riêng cho từng kết nối trong phần cài đặt." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "添加主题" + "value" : "AI 访问策略在每个连接的设置中单独配置。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "加入佈景主題" + "value" : "AI 存取原則在每個連線的設定中個別設定。" } } } }, - "Add as Copy" : { + "AI access policy" : { + + }, + "AI and MCP" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "복사본으로 추가" + "value" : "AI 및 MCP" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kopya Olarak Ekle" + "value" : "AI ve MCP" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thêm dưới dạng bản sao" + "value" : "AI và MCP" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "作为副本添加" + "value" : "AI 与 MCP" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增為副本" + "value" : "AI 與 MCP" } } } }, - "Add at least one column with a name and type" : { + "AI and MCP queries" : { + + }, + "AI Chat" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이름과 유형이 지정된 열을 하나 이상 추가하십시오" + "value" : "AI 채팅" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "En az bir ad ve türe sahip sütun ekleyin" + "value" : "Yapay Zeka Sohbeti" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thêm ít nhất một cột có tên và kiểu dữ liệu" + "value" : "AI Chat" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "请至少添加一个包含名称和类型的列" + "value" : "AI 对话" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "請至少新增一個含名稱與型別的欄位" + "value" : "AI 對話" } } } }, - "Add columns first" : { - "extractionState" : "stale", + "AI is disabled for this connection." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "먼저 열을 추가하십시오" + "value" : "이 연결에서는 AI가 비활성화되어 있습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Önce sütun ekleyin" + "value" : "Bu bağlantı için yapay zeka devre dışı." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thêm cột trước" + "value" : "AI bị tắt cho kết nối này." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "请先添加列" + "value" : "此连接已禁用 AI。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "請先新增欄位" + "value" : "此連線已停用 AI。" } } } }, - "Add columns to see the CREATE TABLE statement" : { + "AI made too many tool calls in one response. Try simplifying the request." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "CREATE TABLE 문을 보려면 열을 추가하십시오" + "value" : "AI가 한 응답에서 도구를 너무 많이 호출했습니다. 요청을 더 간단하게 작성해 보십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "CREATE TABLE ifadesini görmek için sütun ekleyin" + "value" : "Yapay zeka tek yanıtta çok fazla araç çağrısı yaptı. İsteği sadeleştirmeyi deneyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thêm cột để xem câu lệnh CREATE TABLE" + "value" : "AI gọi quá nhiều công cụ trong một phản hồi. Hãy thử đơn giản hóa yêu cầu." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "添加列以查看 CREATE TABLE 语句" + "value" : "AI在一次回复中调用了过多工具。请尝试简化请求。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增欄位以查看 CREATE TABLE 陳述式" + "value" : "AI 在一次回應中呼叫了過多工具。請嘗試簡化請求。" } } } }, - "Add filter" : { + "AI Not Configured" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터 추가" + "value" : "AI가 설정되지 않음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtre ekle" + "value" : "AI Yapılandırılmadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thêm bộ lọc" + "value" : "AI chưa được cấu hình" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "添加筛选" + "value" : "AI 未配置" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增篩選" + "value" : "AI 尚未設定" } } } }, - "Add filter row" : { + "AI Policy" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터 행 추가" + "value" : "AI 정책" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtre satırı ekle" + "value" : "Yapay Zeka İlkesi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thêm dòng bộ lọc" + "value" : "Chính sách AI" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "添加筛选行" + "value" : "AI 策略" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增篩選列" + "value" : "AI 政策" } } } }, - "Add from Existing" : { + "AI Policy controls in-app AI agents. External Clients controls Raycast, Cursor, Claude Desktop, and other MCP clients. Effective scope is the minimum of the requesting token's scope and the External Clients level." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기존 항목에서 추가" + "value" : "AI 정책은 앱 내 AI 에이전트를 제어합니다. 외부 클라이언트는 Raycast, Cursor, Claude Desktop 및 기타 MCP 클라이언트를 제어합니다. 유효 범위는 요청 토큰의 범위와 외부 클라이언트 수준 중 더 제한적인 범위입니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Mevcuttan Ekle" + "value" : "AI Politikası uygulama içi AI ajanlarını kontrol eder. Harici İstemciler ise Raycast, Cursor, Claude Desktop ve diğer MCP istemcilerini kontrol eder. Etkin kapsam, talep eden token'ın kapsamı ile Harici İstemciler düzeyinin minimumudur." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thêm từ nguồn có sẵn" + "value" : "AI Policy kiểm soát các AI agent trong ứng dụng. External Clients kiểm soát Raycast, Cursor, Claude Desktop và các MCP client khác. Phạm vi thực tế là mức thấp hơn giữa phạm vi của token yêu cầu và mức External Clients." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "从已有来源添加" + "value" : "AI 策略控制应用内 AI 代理。外部客户端控制 Raycast、Cursor、Claude Desktop 及其他 MCP 客户端。实际权限取请求令牌权限与外部客户端级别中的较低值。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "從現有來源新增" + "value" : "AI 政策控制應用程式內的 AI 代理程式。外部用戶端控制 Raycast、Cursor、Claude Desktop 及其他 MCP 用戶端。實際範圍取請求權杖範圍與外部用戶端層級兩者中較低者。" } } } }, - "Add indexes to improve query performance on frequently searched columns" : { + "AI Provider" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "자주 검색하는 열의 쿼리 성능을 높이려면 인덱스를 추가하십시오" + "value" : "AI 제공업체" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sık aranan sütunlarda sorgu performansını artırmak için indeks ekleyin" + "value" : "Yapay Zeka Sağlayıcısı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thêm chỉ mục để cải thiện hiệu suất truy vấn trên các cột thường xuyên tìm kiếm" + "value" : "Nhà cung cấp AI" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "添加索引以提升常用搜索列的查询性能" + "value" : "AI 提供商" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "為常搜尋的欄位新增索引以提升查詢效能" + "value" : "AI 供應商" } } } }, - "Add provider" : { - "extractionState" : "stale", + "AI responses may be inaccurate" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "프로바이더 추가" + "value" : "AI 응답은 부정확할 수 있습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sağlayıcı ekle" + "value" : "Yapay zeka yanıtları hatalı olabilir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thêm nhà cung cấp" + "value" : "Phản hồi của AI có thể không chính xác" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "添加提供商" + "value" : "AI回复可能不准确" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增供應商" + "value" : "AI 回應可能不準確" } } } }, - "Add tags" : { + "AI Rules" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "태그 추가" + "value" : "AI 규칙" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Etiket ekle" + "value" : "Yapay zeka kuralları" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thêm thẻ" + "value" : "Quy tắc AI" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "添加标签" + "value" : "AI规则" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增標籤" + "value" : "AI 規則" } } } }, - "Add the JSON below inside the file and save" : { + "AI Walkthrough" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "아래 JSON을 파일에 추가하고 저장하십시오" + "value" : "AI 단계별 안내" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Aşağıdaki JSON'u dosyaya ekleyin ve kaydedin" + "value" : "AI Adım Adım Anlatım" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thêm JSON dưới đây vào tệp và lưu lại" + "value" : "Hướng dẫn AI" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将下方 JSON 添加到文件中并保存" + "value" : "AI 分步讲解" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將下方 JSON 加入檔案中並儲存" + "value" : "AI 逐步解說" } } } }, - "Add to Favorites" : { - "comment" : "A label that describes an action to add an item to a user's favorites.", - "isCommentAutoGenerated" : true, + "AI-generated. Review before applying." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "즐겨찾기에 추가" + "value" : "AI가 생성했습니다. 적용하기 전에 검토하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sık Kullanılanlara Ekle" + "value" : "Yapay zeka üretti. Uygulamadan önce gözden geçirin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thêm vào Yêu thích" + "value" : "Do AI tạo. Hãy xem lại trước khi áp dụng." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "添加到收藏" + "value" : "由 AI 生成。应用前请先检查。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "加入我的最愛" + "value" : "由 AI 產生。套用前請先檢查。" } } } }, - "Add validation rules to ensure data integrity" : { + "AI-Powered Assistant" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터 무결성을 보장하려면 유효성 검사 규칙을 추가하십시오" + "value" : "AI 기반 어시스턴트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veri bütünlüğünü sağlamak için doğrulama kuralları ekleyin" + "value" : "AI Destekli Asistan" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thêm quy tắc xác thực để đảm bảo tính toàn vẹn dữ liệu" + "value" : "Trợ lý AI" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "添加验证规则以确保数据完整性" + "value" : "AI 助手" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增驗證規則以確保資料完整性" + "value" : "AI 助理" } } } }, - "Added" : { + "AI-powered SQL completions appear as ghost text while typing. Press Tab to accept, Escape to dismiss." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "추가됨" + "value" : "AI 기반 SQL 자동 완성이 입력하는 동안 고스트 텍스트로 표시됩니다. Tab 키를 눌러 적용하고 Escape 키를 눌러 닫으십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklendi" + "value" : "Yapay zeka destekli SQL tamamlamaları yazarken hayalet metin olarak görünür. Kabul etmek için Tab, kapatmak için Escape." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã thêm" + "value" : "Gợi ý SQL bằng AI xuất hiện dưới dạng văn bản mờ khi gõ. Nhấn Tab để chấp nhận, Escape để bỏ qua." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新增" + "value" : "AI 驱动的 SQL 补全在输入时以虚影文本显示。按 Tab 接受,按 Escape 关闭。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增" + "value" : "AI 驅動的 SQL 補全會在輸入時以淡色文字顯示。按 Tab 接受,按 Escape 關閉。" } } } }, - "Address" : { + "Alert" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "주소" + "value" : "알림" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Adres" + "value" : "Uyarı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Địa chỉ" + "value" : "Cảnh báo" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "地址" + "value" : "警告" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "位址" + "value" : "警示" } } } }, - "Adds a Recent section at the top of the Tables sidebar with the last tables you opened per connection and database." : { + "Alert (Full)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 및 데이터베이스별로 최근에 연 테이블을 표시하는 최근 항목 섹션을 테이블 사이드바 상단에 추가합니다." + "value" : "알림(전체)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tablolar kenar çubuğunun üstüne, her bağlantı ve veritabanı için en son açtığınız tabloları gösteren bir Son Kullanılanlar bölümü ekler." + "value" : "Uyarı (Tam)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thêm mục Gần đây ở đầu thanh bên Bảng, hiển thị các bảng bạn mở gần nhất theo từng kết nối và cơ sở dữ liệu." + "value" : "Cảnh báo (Đầy đủ)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在表侧边栏顶部添加“最近”区域,按连接和数据库显示你最近打开的表。" + "value" : "警告(完整)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在資料表側邊欄頂端加入「最近」區塊,依連線與資料庫顯示你最近開啟的資料表。" + "value" : "警示(完整)" } } } }, - "Adds a narrow strip on the window's leading edge listing every connection and database you have open, so one click switches to it." : { + "Algorithm" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열어 둔 모든 연결과 데이터베이스를 나열하는 좁은 막대를 윈도우 왼쪽 가장자리에 추가하여 클릭 한 번으로 전환할 수 있습니다." + "value" : "알고리즘" } }, "tr" : { "stringUnit" : { - "state" : "needs_review", - "value" : "Pencerenin sol kenarında açık her bağlantıyı ve veritabanını listeleyen dar bir şerit ekler; tek tıkla geçiş yaparsınız." + "state" : "translated", + "value" : "Algoritma" } }, "vi" : { "stringUnit" : { - "state" : "needs_review", - "value" : "Thêm một dải hẹp ở cạnh trái cửa sổ liệt kê mọi kết nối và cơ sở dữ liệu đang mở, chỉ cần một cú nhấp để chuyển sang." + "state" : "translated", + "value" : "Thuật toán" } }, "zh-Hans" : { "stringUnit" : { - "state" : "needs_review", - "value" : "在窗口前缘添加一条窄栏,列出所有已打开的连接和数据库,单击即可切换。" + "state" : "translated", + "value" : "算法" } }, "zh-Hant" : { "stringUnit" : { - "state" : "needs_review", - "value" : "在視窗前緣加入一條窄列,列出所有已開啟的連線與資料庫,單擊即可切換。" + "state" : "translated", + "value" : "演算法" } } } }, - "Adjust Limit" : { + "All" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "제한 조정" + "value" : "전체" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Limiti Ayarla" + "value" : "Tümü" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Điều chỉnh giới hạn" + "value" : "Tất cả" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "调整限制" + "value" : "全部" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "調整上限" + "value" : "全部" } } } }, - "Administration" : { + "All (%lld)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "관리" + "value" : "전체(%lld)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yönetim" + "value" : "Tümü (%lld)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Quản trị" + "value" : "Tất cả (%lld)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "管理" + "value" : "全部(%lld)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "管理" + "value" : "全部(%lld)" } } } }, - "Advanced" : { + "All %d rows selected" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "고급" + "value" : "%d개 행 모두 선택됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Gelişmiş" + "value" : "Tüm %d satır seçildi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nâng cao" + "value" : "Đã chọn tất cả %d dòng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "高级" + "value" : "已选择全部%d行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "進階" + "value" : "已選取全部 %d 列" } } } }, - "Advanced object-relational SQL" : { + "All %lld ^[rows](inflect: true) selected" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "고급 객체 관계형 SQL" + "value" : "%lld개 행 모두 선택됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Gelişmiş nesne-ilişkisel SQL" + "value" : "Tüm %lld satır seçildi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "SQL quan hệ-đối tượng nâng cao" + "value" : "Đã chọn tất cả %lld dòng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "高级对象关系型SQL" + "value" : "已选择全部%lld行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "進階的物件關聯式 SQL" + "value" : "已選取全部 %lld 列" } } } }, - "Agent" : { + "All %lld rows selected" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "에이전트" + "value" : "%lld개 행 모두 선택됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ajan" + "value" : "All %lld satır seçildi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Agent" + "value" : "Đã chọn tất cả %lld dòng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Agent" + "value" : "已选择全部 %lld 行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Agent" + "value" : "已選取全部 %lld 列" } } } }, - "Agent Socket" : { + "All categories" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "에이전트 소켓" + "value" : "모든 카테고리" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Aracı Soketi" + "value" : "Tüm kategoriler" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Agent Socket" + "value" : "Tất cả danh mục" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Agent Socket" + "value" : "所有分类" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Agent Socket" + "value" : "所有類別" } } } }, - "Agent mode calls tools in a loop until it finishes or hits this limit, then pauses so you can continue. Raising it costs more tokens per reply." : { + "All columns" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "에이전트 모드는 완료되거나 이 제한에 도달할 때까지 도구를 반복 호출한 후, 계속할 수 있도록 일시 정지합니다. 제한을 높이면 응답당 더 많은 토큰이 소모됩니다." + "value" : "모든 열" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Agent modu, iş bitene veya bu limite ulaşılana kadar araçları döngüde çağırır, sonra devam edebilmeniz için duraklar. Limiti yükseltmek yanıt başına daha fazla token harcar." + "value" : "Tüm sütunlar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chế độ agent gọi công cụ theo vòng lặp cho đến khi xong hoặc chạm giới hạn này, rồi tạm dừng để bạn tiếp tục. Tăng giới hạn sẽ tốn nhiều token hơn cho mỗi câu trả lời." + "value" : "Tất cả cột" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Agent 模式会循环调用工具,直到完成或达到此上限,然后暂停等你继续。上限越高,每条回复消耗的 token 越多。" + "value" : "所有列" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Agent 模式會循環呼叫工具,直到完成或達到此上限,然後暫停等你繼續。上限越高,每則回覆消耗的 token 越多。" + "value" : "所有欄位" } } } }, - "Agent: full tool access including destructive DDL. Safe mode still gates execution." : { + "All columns visible" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "에이전트: 파괴적인 DDL을 포함한 모든 도구에 접근할 수 있습니다. 안전 모드에서도 실행을 제한합니다." + "value" : "모든 열 표시 중" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ajan: yıkıcı DDL dahil tüm araçlara erişim. Güvenli mod yürütmeyi yine de denetler." + "value" : "Tüm sütunlar görünür" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Agent: toàn quyền dùng công cụ, gồm cả DDL phá hủy. Chế độ an toàn vẫn kiểm soát việc thực thi." + "value" : "Hiện tất cả cột" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Agent:可使用全部工具,包括破坏性DDL。安全模式仍会控制执行。" + "value" : "显示所有列" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Agent:可使用全部工具,包括破壞性的 DDL。安全模式仍會控管執行。" + "value" : "顯示所有欄" } } } }, - "Alert" : { + "All Connections" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "알림" + "value" : "모든 연결" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Uyarı" + "value" : "Tüm Bağlantılar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cảnh báo" + "value" : "Tất cả kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "警告" + "value" : "所有连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "警示" + "value" : "所有連線" } } } }, - "Alert (Full)" : { + "ALL DATABASES" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "알림(전체)" + "value" : "모든 데이터베이스" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Uyarı (Tam)" + "value" : "TÜM VERİTABANLARI" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cảnh báo (Đầy đủ)" + "value" : "TẤT CẢ CƠ SỞ DỮ LIỆU" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "警告(完整)" + "value" : "所有数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "警示(完整)" + "value" : "所有資料庫" } } } }, - "Algorithm" : { + "All Environments" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "알고리즘" + "value" : "모든 환경" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Algoritma" + "value" : "Tüm Ortamlar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thuật toán" + "value" : "Tất cả môi trường" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "算法" + "value" : "所有环境" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "演算法" + "value" : "所有環境" } } } }, - "All" : { + "All Objects" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "전체" + "value" : "모든 객체" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tümü" + "value" : "Tüm Nesneler" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tất cả" + "value" : "Tất cả đối tượng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "全部" + "value" : "所有对象" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "全部" + "value" : "所有物件" } } } }, - "All %d rows selected" : { + "All rights reserved." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%d개 행 모두 선택됨" + "value" : "모든 권리 보유." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm %d satır seçildi" + "value" : "Tüm hakları saklıdır." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã chọn tất cả %d dòng" + "value" : "Đã đăng ký bản quyền." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已选择全部%d行" + "value" : "保留所有权利。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已選取全部 %d 列" + "value" : "保留所有權利。" } } } }, - "All %lld ^[rows](inflect: true) selected" : { + "All rows" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%lld개 행 모두 선택됨" + "value" : "모든 행" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm %lld satır seçildi" + "value" : "Tüm satırlar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã chọn tất cả %lld dòng" + "value" : "Tất cả dòng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已选择全部%lld行" + "value" : "所有行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已選取全部 %lld 列" + "value" : "所有列" } } } }, - "All %lld rows selected" : { - "extractionState" : "stale", + "All Rows" : { + + }, + "All rows…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%lld개 행 모두 선택됨" + "value" : "모든 행…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "All %lld satır seçildi" + "value" : "Tüm satırlar…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã chọn tất cả %lld dòng" + "value" : "Tất cả các hàng…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已选择全部 %lld 行" + "value" : "所有行…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已選取全部 %lld 列" + "value" : "所有列…" } } } }, - "All (%lld)" : { + "ALL SCHEMAS" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "전체(%lld)" + "value" : "모든 스키마" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tümü (%lld)" + "value" : "TÜM ŞEMALAR" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tất cả (%lld)" + "value" : "TẤT CẢ SCHEMA" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "全部(%lld)" + "value" : "所有 SCHEMA" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "全部(%lld)" + "value" : "所有綱要" } } } }, - "All Connections" : { + "All selected connections were skipped." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 연결" + "value" : "선택한 모든 연결을 건너뛰었습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm Bağlantılar" + "value" : "Seçilen tüm bağlantılar atlandı." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tất cả kết nối" + "value" : "Tất cả kết nối đã chọn đã bị bỏ qua." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "所有连接" + "value" : "所有选中的连接均已跳过。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "所有連線" + "value" : "所有選取的連線都已略過。" } } } }, - "All Environments" : { + "All tables and data will be permanently deleted." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 환경" + "value" : "모든 테이블과 데이터가 영구적으로 삭제됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm Ortamlar" + "value" : "Tüm tablolar ve veriler kalıcı olarak silinecek." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tất cả môi trường" + "value" : "Tất cả bảng và dữ liệu sẽ bị xoá vĩnh viễn." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "所有环境" + "value" : "所有表和数据将被永久删除。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "所有環境" + "value" : "所有資料表與資料將被永久刪除。" } } } }, - "All Objects" : { + "All time" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 객체" + "value" : "전체 기간" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm Nesneler" + "value" : "Tüm zamanlar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tất cả đối tượng" + "value" : "Mọi thời điểm" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "所有对象" + "value" : "全部时间" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "所有物件" + "value" : "全部時間" } } } @@ -12899,923 +13533,893 @@ } } }, - "All Types" : { + "All tokens" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 유형" + "value" : "모든 토큰" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm Türler" + "value" : "Tüm token'lar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tất cả kiểu" + "value" : "Tất cả token" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "所有类型" + "value" : "所有令牌" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "所有類型" + "value" : "所有權杖" } } } }, - "All categories" : { + "All Types" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 카테고리" + "value" : "모든 유형" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm kategoriler" + "value" : "Tüm Türler" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tất cả danh mục" + "value" : "Tất cả kiểu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "所有分类" + "value" : "所有类型" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "所有類別" + "value" : "所有類型" } } } }, - "All columns" : { + "Allow" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 열" + "value" : "허용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm sütunlar" + "value" : "İzin Ver" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tất cả cột" + "value" : "Cho phép" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "所有列" + "value" : "允许" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "所有欄位" + "value" : "允許" } } } }, - "All columns visible" : { + "Allow %@ on '%@'?" : { "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "모든 열 표시 중" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "Tüm sütunlar görünür" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "Hiện tất cả cột" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "显示所有列" - } - }, - "zh-Hant" : { + "en" : { "stringUnit" : { - "state" : "translated", - "value" : "顯示所有欄" + "state" : "new", + "value" : "Allow %1$@ on '%2$@'?" } } } }, - "All rights reserved." : { - "extractionState" : "stale", + "Allow %@ to access TablePro?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 권리 보유." + "value" : "%@의 TablePro 접근을 허용하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm hakları saklıdır." + "value" : "%@ uygulamasının TablePro'ya erişmesine izin verilsin mi?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã đăng ký bản quyền." + "value" : "Cho phép %@ truy cập TablePro?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "保留所有权利。" + "value" : "允许 %@ 访问 TablePro?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "保留所有權利。" + "value" : "允許 %@ 存取 TablePro?" } } } }, - "All rows" : { + "Allow AI Access" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 행" + "value" : "AI 접근 허용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm satırlar" + "value" : "Yapay Zeka Erişimine İzin Ver" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tất cả dòng" + "value" : "Cho phép truy cập AI" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "所有行" + "value" : "允许 AI 访问" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "所有列" + "value" : "允許 AI 存取" } } } }, - "All rows…" : { + "Allow every held-back statement on the Warnings tab, or exclude the objects that produced them, before applying." : { + + }, + "Allow remote connections" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 행…" + "value" : "원격 연결 허용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm satırlar…" + "value" : "Uzak bağlantılara izin ver" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tất cả các hàng…" + "value" : "Cho phép kết nối từ xa" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "所有行…" + "value" : "允许远程连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "所有列…" + "value" : "允許遠端連線" } } } }, - "All selected connections were skipped." : { + "Allowed Connections" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "선택한 모든 연결을 건너뛰었습니다." + "value" : "허용된 연결" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Seçilen tüm bağlantılar atlandı." + "value" : "İzin Verilen Bağlantılar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tất cả kết nối đã chọn đã bị bỏ qua." + "value" : "Kết nối được phép" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "所有选中的连接均已跳过。" + "value" : "允许的连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "所有選取的連線都已略過。" + "value" : "允許的連線" } } } }, - "All tables and data will be permanently deleted." : { + "Allowed values" : { + + }, + "Allowing a statement applies to this run only. It is never saved." : { + + }, + "Also handles" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 테이블과 데이터가 영구적으로 삭제됩니다." + "value" : "다음 항목도 처리" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm tablolar ve veriler kalıcı olarak silinecek." + "value" : "Ayrıca işler" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tất cả bảng và dữ liệu sẽ bị xoá vĩnh viễn." + "value" : "Cũng xử lý" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "所有表和数据将被永久删除。" + "value" : "兼容类型" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "所有資料表與資料將被永久刪除。" + "value" : "同時支援" } } } }, - "All time" : { + "Also handles:" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "전체 기간" + "value" : "다음 항목도 처리:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm zamanlar" + "value" : "Ayrıca işler:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mọi thời điểm" + "value" : "Cũng hỗ trợ:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "全部时间" + "value" : "还支持:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "全部時間" + "value" : "同時支援:" } } } }, - "All tokens" : { + "Alternate Row" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 토큰" + "value" : "교차 행" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm token'lar" + "value" : "Alternatif Satır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tất cả token" + "value" : "Dòng xen kẽ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "所有令牌" + "value" : "交替行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "所有權杖" + "value" : "交替列" } } } }, - "Allow" : { + "Always" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "허용" + "value" : "항상" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İzin Ver" + "value" : "Her Zaman" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cho phép" + "value" : "Luôn luôn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "允许" + "value" : "始终" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "允許" + "value" : "永遠" } } } }, - "Allow %@ to access TablePro?" : { + "Always 'connected' on success" : { + + }, + "Always 'created' on success" : { + + }, + "Always 'disconnected' on success" : { + + }, + "Always 'dropped' on success" : { + + }, + "Always 'focused' on success" : { + + }, + "Always 'opened' on success" : { + + }, + "Always 'switched' on success" : { + + }, + "Always Allow" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@의 TablePro 접근을 허용하시겠습니까?" + "value" : "항상 허용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ uygulamasının TablePro'ya erişmesine izin verilsin mi?" + "value" : "Her Zaman İzin Ver" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cho phép %@ truy cập TablePro?" + "value" : "Luôn cho phép" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "允许 %@ 访问 TablePro?" + "value" : "始终允许" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "允許 %@ 存取 TablePro?" + "value" : "永遠允許" } } } }, - "Allow AI Access" : { + "Always allow %@ for this connection" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "AI 접근 허용" + "value" : "이 연결에서 %@ 항상 허용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yapay Zeka Erişimine İzin Ver" + "value" : "Bu bağlantıda %@ için her zaman izin ver" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cho phép truy cập AI" + "value" : "Luôn cho phép %@ với kết nối này" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "允许 AI 访问" + "value" : "对此连接始终允许%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "允許 AI 存取" + "value" : "對這個連線一律允許 %@" } } } }, - "Allow remote connections" : { + "Always count" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "원격 연결 허용" + "value" : "항상 집계" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Uzak bağlantılara izin ver" + "value" : "Her zaman say" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cho phép kết nối từ xa" + "value" : "Luôn đếm" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "允许远程连接" + "value" : "始终计数" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "允許遠端連線" + "value" : "永遠計數" } } } }, - "Allowed Connections" : { + "Always for this connection" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "허용된 연결" + "value" : "이 연결에서 항상" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İzin Verilen Bağlantılar" + "value" : "Bu bağlantı için her zaman" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối được phép" + "value" : "Luôn với kết nối này" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "允许的连接" + "value" : "始终用于此连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "允許的連線" + "value" : "一律用於這個連線" } } } }, - "Also handles" : { + "Always Hide" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다음 항목도 처리" + "value" : "항상 가리기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ayrıca işler" + "value" : "Her Zaman Gizle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cũng xử lý" + "value" : "Luôn ẩn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "兼容类型" + "value" : "始终隐藏" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "同時支援" + "value" : "永遠隱藏" } } } }, - "Also handles:" : { - "extractionState" : "stale", + "Always Show" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다음 항목도 처리:" + "value" : "항상 표시" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ayrıca işler:" + "value" : "Her Zaman Göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cũng hỗ trợ:" + "value" : "Luôn hiện" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "还支持:" + "value" : "始终显示" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "同時支援:" + "value" : "永遠顯示" } } } }, - "Alternate Row" : { + "Amazon's columnar warehouse on Postgres" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "교차 행" + "value" : "Postgres 기반 Amazon의 열 지향 데이터 웨어하우스" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Alternatif Satır" + "value" : "Amazon'un Postgres tabanlı sütunsal veri ambarı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dòng xen kẽ" + "value" : "Kho dữ liệu dạng cột của Amazon trên nền Postgres" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "交替行" + "value" : "Amazon基于Postgres的列式数据仓库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "交替列" + "value" : "Amazon 基於 Postgres 的欄式資料倉儲" } } } }, - "Always" : { - "extractionState" : "stale", + "an explain" : { + + }, + "an export" : { + + }, + "An external app is asking for an API token. Review the permissions before approving." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "항상" + "value" : "외부 앱에서 API 토큰을 요청합니다. 승인하기 전에 권한을 검토하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Her Zaman" + "value" : "Harici bir uygulama API token'ı istiyor. Onaylamadan önce izinleri inceleyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Luôn luôn" + "value" : "Một ứng dụng bên ngoài đang yêu cầu API token. Hãy xem lại quyền trước khi chấp thuận." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "始终" + "value" : "外部应用正在请求 API 令牌。请在批准前审核权限。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "永遠" + "value" : "有外部應用程式正在請求 API 權杖。請在核准前審查權限。" } } } }, - "Always Allow" : { + "An external link wants to add a database connection:\n\nName: %@\n%@" : { + "extractionState" : "stale", "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "항상 허용" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "Her Zaman İzin Ver" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "Luôn cho phép" - } - }, - "zh-Hans" : { + "en" : { "stringUnit" : { - "state" : "translated", - "value" : "始终允许" + "state" : "new", + "value" : "An external link wants to add a database connection:\n\nName: %1$@\n%2$@" } }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "永遠允許" - } - } - } - }, - "Always Hide" : { - "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "항상 가리기" + "value" : "외부 링크에서 데이터베이스 연결을 추가하려고 합니다:\n\n이름: %1$@\n%2$@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Her Zaman Gizle" + "value" : "Bir harici bağlantı veritabanı bağlantısı eklemek istiyor:\n\nAd: %@\n%@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Luôn ẩn" + "value" : "Một liên kết bên ngoài muốn thêm kết nối cơ sở dữ liệu:\n\nTên: %@\n%@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "始终隐藏" + "value" : "外部链接想要添加数据库连接:\n\n名称:%@\n%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "永遠隱藏" + "value" : "有外部連結想要新增資料庫連線:\n\n名稱:%1$@\n%2$@" } } } }, - "Always Show" : { + "An external link wants to apply a filter:\n\n%@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "항상 표시" + "value" : "외부 링크에서 필터를 적용하려고 합니다:\n\n%@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Her Zaman Göster" + "value" : "Harici bir bağlantı filtre uygulamak istiyor:\n\n%@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Luôn hiện" + "value" : "Một liên kết bên ngoài muốn áp dụng bộ lọc:\n\n%@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "始终显示" + "value" : "外部链接要应用筛选条件:\n\n%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "永遠顯示" + "value" : "有外部連結想要套用篩選:\n\n%@" } } } }, - "Always allow %@ for this connection" : { + "An external link wants to connect to a %@ database:\n\n%@\n\nConnect only if you trust the source of this link." : { "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "이 연결에서 %@ 항상 허용" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "Bu bağlantıda %@ için her zaman izin ver" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "Luôn cho phép %@ với kết nối này" - } - }, - "zh-Hans" : { + "en" : { "stringUnit" : { - "state" : "translated", - "value" : "对此连接始终允许%@" + "state" : "new", + "value" : "An external link wants to connect to a %1$@ database:\n\n%2$@\n\nConnect only if you trust the source of this link." } }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "對這個連線一律允許 %@" - } - } - } - }, - "Always count" : { - "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "항상 집계" + "value" : "외부 링크에서 %1$@ 데이터베이스에 연결하려고 합니다:\n\n%2$@\n\n이 링크의 출처를 신뢰하는 경우에만 연결하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Her zaman say" + "value" : "Harici bir bağlantı %1$@ veritabanına bağlanmak istiyor:\n\n%2$@\n\nYalnızca bu bağlantının kaynağına güveniyorsanız bağlanın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Luôn đếm" + "value" : "Một liên kết bên ngoài muốn kết nối tới cơ sở dữ liệu %1$@:\n\n%2$@\n\nChỉ kết nối nếu bạn tin tưởng nguồn của liên kết này." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "始终计数" + "value" : "一个外部链接想要连接到 %1$@ 数据库:\n\n%2$@\n\n只有在你信任此链接来源时才连接。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "永遠計數" + "value" : "一個外部連結想要連線到 %1$@ 資料庫:\n\n%2$@\n\n只有在你信任這個連結的來源時才連線。" } } } }, - "Always for this connection" : { + "An external link wants to open a query on \"%@\":\n\n%@" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "An external link wants to open a query on \"%1$@\":\n\n%2$@" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 연결에서 항상" + "value" : "외부 링크에서 \"%1$@\"의 쿼리를 열려고 합니다:\n\n%2$@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu bağlantı için her zaman" + "value" : "Harici bir bağlantı \"%@\" üzerinde bir sorgu açmak istiyor:\n\n%@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Luôn với kết nối này" + "value" : "Một liên kết bên ngoài muốn mở truy vấn trên \"%@\":\n\n%@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "始终用于此连接" + "value" : "外部链接希望在 \"%@\" 上打开查询:\n\n%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "一律用於這個連線" + "value" : "有外部連結想要在「%1$@」上開啟查詢:\n\n%2$@" } } } }, - "Amazon's columnar warehouse on Postgres" : { + "An external link wants to open a query on connection \"%@\":\n\n%@" : { + "extractionState" : "stale", "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "An external link wants to open a query on connection \"%1$@\":\n\n%2$@" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Postgres 기반 Amazon의 열 지향 데이터 웨어하우스" + "value" : "외부 링크에서 \"%1$@\" 연결의 쿼리를 열려고 합니다:\n\n%2$@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Amazon'un Postgres tabanlı sütunsal veri ambarı" + "value" : "Bir harici bağlantı \"%@\" bağlantısında sorgu açmak istiyor:\n\n%@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kho dữ liệu dạng cột của Amazon trên nền Postgres" + "value" : "Một liên kết bên ngoài muốn mở truy vấn trên kết nối \"%@\":\n\n%@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Amazon基于Postgres的列式数据仓库" + "value" : "外部链接想要在连接\"%@\"上打开查询:\n\n%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Amazon 基於 Postgres 的欄式資料倉儲" + "value" : "有外部連結想要在連線「%1$@」上開啟查詢:\n\n%2$@" } } } @@ -13854,471 +14458,598 @@ } } }, - "An external app is asking for an API token. Review the permissions before approving." : { + "An operation is already running." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "외부 앱에서 API 토큰을 요청합니다. 승인하기 전에 권한을 검토하십시오." + "value" : "이미 작업이 실행 중입니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Harici bir uygulama API token'ı istiyor. Onaylamadan önce izinleri inceleyin." + "value" : "Zaten bir işlem yürütülüyor." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Một ứng dụng bên ngoài đang yêu cầu API token. Hãy xem lại quyền trước khi chấp thuận." + "value" : "Một thao tác đang chạy." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "外部应用正在请求 API 令牌。请在批准前审核权限。" + "value" : "已有操作正在运行。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "有外部應用程式正在請求 API 權杖。請在核准前審查權限。" + "value" : "已有操作正在執行。" } } } }, - "An external link wants to add a database connection:\n\nName: %@\n%@" : { + "An unknown sync error occurred: %@" : { "extractionState" : "stale", "localizations" : { - "en" : { + "ko" : { "stringUnit" : { - "state" : "new", - "value" : "An external link wants to add a database connection:\n\nName: %1$@\n%2$@" + "state" : "translated", + "value" : "알 수 없는 동기화 오류가 발생했습니다: %@" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Bilinmeyen bir eşitleme hatası oluştu: %@" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "Đã xảy ra lỗi đồng bộ không xác định: %@" } }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "发生未知同步错误:%@" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "發生未知的同步錯誤:%@" + } + } + } + }, + "Analytical" : { + "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "외부 링크에서 데이터베이스 연결을 추가하려고 합니다:\n\n이름: %1$@\n%2$@" + "value" : "분석용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bir harici bağlantı veritabanı bağlantısı eklemek istiyor:\n\nAd: %@\n%@" + "value" : "Analitik" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Một liên kết bên ngoài muốn thêm kết nối cơ sở dữ liệu:\n\nTên: %@\n%@" + "value" : "Phân tích" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "外部链接想要添加数据库连接:\n\n名称:%@\n%@" + "value" : "分析型" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "有外部連結想要新增資料庫連線:\n\n名稱:%1$@\n%2$@" + "value" : "分析型" } } } }, - "An external link wants to apply a filter:\n\n%@" : { + "ANALYZE (update statistics after vacuum)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "외부 링크에서 필터를 적용하려고 합니다:\n\n%@" + "value" : "ANALYZE (vacuum 후 통계 업데이트)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Harici bir bağlantı filtre uygulamak istiyor:\n\n%@" + "value" : "ANALYZE (vacuum sonrası istatistikleri güncelle)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Một liên kết bên ngoài muốn áp dụng bộ lọc:\n\n%@" + "value" : "ANALYZE (cập nhật thống kê sau vacuum)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "外部链接要应用筛选条件:\n\n%@" + "value" : "ANALYZE(vacuum 后更新统计信息)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "有外部連結想要套用篩選:\n\n%@" + "value" : "ANALYZE(vacuum 後更新統計資訊)" } } } }, - "An external link wants to connect to a %@ database:\n\n%@\n\nConnect only if you trust the source of this link." : { + "and" : { "localizations" : { - "en" : { + "ko" : { "stringUnit" : { - "state" : "new", - "value" : "An external link wants to connect to a %1$@ database:\n\n%2$@\n\nConnect only if you trust the source of this link." + "state" : "translated", + "value" : "그리고" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "ve" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "và" } }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "和" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "且" + } + } + } + }, + "AND" : { + "extractionState" : "stale", + "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "외부 링크에서 %1$@ 데이터베이스에 연결하려고 합니다:\n\n%2$@\n\n이 링크의 출처를 신뢰하는 경우에만 연결하십시오." + "value" : "AND" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Harici bir bağlantı %1$@ veritabanına bağlanmak istiyor:\n\n%2$@\n\nYalnızca bu bağlantının kaynağına güveniyorsanız bağlanın." + "value" : "VE" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Một liên kết bên ngoài muốn kết nối tới cơ sở dữ liệu %1$@:\n\n%2$@\n\nChỉ kết nối nếu bạn tin tưởng nguồn của liên kết này." + "value" : "AND" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "一个外部链接想要连接到 %1$@ 数据库:\n\n%2$@\n\n只有在你信任此链接来源时才连接。" + "value" : "AND" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "一個外部連結想要連線到 %1$@ 資料庫:\n\n%2$@\n\n只有在你信任這個連結的來源時才連線。" + "value" : "AND" } } } }, - "An external link wants to open a query on \"%@\":\n\n%@" : { + "Animations" : { + "extractionState" : "stale", "localizations" : { - "en" : { + "ko" : { "stringUnit" : { - "state" : "new", - "value" : "An external link wants to open a query on \"%1$@\":\n\n%2$@" + "state" : "translated", + "value" : "애니메이션" } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Animasyonlar" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "Hiệu ứng" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "动画" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "動畫" + } + } + } + }, + "Anonymous (loopback)" : { + + }, + "Another install is already in progress for this plugin" : { + "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "외부 링크에서 \"%1$@\"의 쿼리를 열려고 합니다:\n\n%2$@" + "value" : "이 플러그인의 다른 설치가 이미 진행 중입니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Harici bir bağlantı \"%@\" üzerinde bir sorgu açmak istiyor:\n\n%@" + "value" : "Bu eklenti için zaten bir yükleme sürüyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Một liên kết bên ngoài muốn mở truy vấn trên \"%@\":\n\n%@" + "value" : "Đang có một quá trình cài đặt khác cho plugin này" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "外部链接希望在 \"%@\" 上打开查询:\n\n%@" + "value" : "此插件已有另一个安装正在进行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "有外部連結想要在「%1$@」上開啟查詢:\n\n%2$@" + "value" : "這個外掛已有另一個安裝正在進行" } } } }, - "An external link wants to open a query on connection \"%@\":\n\n%@" : { - "extractionState" : "stale", + "ANTHROPIC_API_KEY and ANTHROPIC_AUTH_TOKEN are removed from the tool's environment, so replies always draw on the subscription." : { "localizations" : { - "en" : { + "ko" : { "stringUnit" : { - "state" : "new", - "value" : "An external link wants to open a query on connection \"%1$@\":\n\n%2$@" + "state" : "translated", + "value" : "도구의 환경에서 ANTHROPIC_API_KEY와 ANTHROPIC_AUTH_TOKEN이 제거되므로 응답에는 항상 구독이 사용됩니다." } }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "ANTHROPIC_API_KEY ve ANTHROPIC_AUTH_TOKEN aracın ortamından kaldırılır, bu yüzden yanıtlar her zaman abonelikten düşer." + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "ANTHROPIC_API_KEY và ANTHROPIC_AUTH_TOKEN bị loại khỏi môi trường của công cụ, nên các câu trả lời luôn dùng gói đăng ký." + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "ANTHROPIC_API_KEY 和 ANTHROPIC_AUTH_TOKEN 会从该工具的环境变量中移除,因此回复始终消耗订阅额度。" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "ANTHROPIC_API_KEY 和 ANTHROPIC_AUTH_TOKEN 會從該工具的環境變數中移除,因此回覆一律消耗訂閱額度。" + } + } + } + }, + "Any Column" : { + "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "외부 링크에서 \"%1$@\" 연결의 쿼리를 열려고 합니다:\n\n%2$@" + "value" : "어느 열이든" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bir harici bağlantı \"%@\" bağlantısında sorgu açmak istiyor:\n\n%@" + "value" : "Herhangi Bir Sütun" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Một liên kết bên ngoài muốn mở truy vấn trên kết nối \"%@\":\n\n%@" + "value" : "Bất kỳ cột nào" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "外部链接想要在连接\"%@\"上打开查询:\n\n%@" + "value" : "任意列" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "有外部連結想要在連線「%1$@」上開啟查詢:\n\n%2$@" + "value" : "任一欄位" } } } }, - "An operation is already running." : { + "any element" : { + + }, + "Any element of %@ may match this row on its own" : { + + }, + "Any Outcome" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이미 작업이 실행 중입니다." + "value" : "결과 무관" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Zaten bir işlem yürütülüyor." + "value" : "Her Sonuç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Một thao tác đang chạy." + "value" : "Mọi kết quả" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已有操作正在运行。" + "value" : "任意结果" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已有操作正在執行。" + "value" : "任何結果" } } } }, - "An unknown sync error occurred: %@" : { + "API Key" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "알 수 없는 동기화 오류가 발생했습니다: %@" + "value" : "API 키" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bilinmeyen bir eşitleme hatası oluştu: %@" + "value" : "API Anahtarı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã xảy ra lỗi đồng bộ không xác định: %@" + "value" : "API Key" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "发生未知同步错误:%@" + "value" : "API Key" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "發生未知的同步錯誤:%@" + "value" : "API Key" } } } }, - "Analytical" : { + "API key is required" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "분석용" + "value" : "API 키가 필요합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Analitik" + "value" : "API anahtarı gerekli" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phân tích" + "value" : "Yêu cầu khóa API" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "分析型" + "value" : "需要 API 密钥" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "分析型" + "value" : "需要 API key" } } } }, - "Animations" : { - "extractionState" : "stale", + "API key set" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "애니메이션" + "value" : "API 키 설정됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Animasyonlar" + "value" : "API anahtarı ayarlı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiệu ứng" + "value" : "Đã đặt API key" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "动画" + "value" : "已设置 API 密钥" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "動畫" + "value" : "已設定 API key" } } } }, - "Another install is already in progress for this plugin" : { + "API token" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 플러그인의 다른 설치가 이미 진행 중입니다" + "value" : "API 토큰" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu eklenti için zaten bir yükleme sürüyor" + "value" : "API anahtarı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang có một quá trình cài đặt khác cho plugin này" + "value" : "Mã API" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此插件已有另一个安装正在进行" + "value" : "API 令牌" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "這個外掛已有另一個安裝正在進行" + "value" : "API 權杖" } } } }, - "Any Column" : { + "API Token" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "API Token" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "어느 열이든" + "value" : "API 토큰" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Herhangi Bir Sütun" + "value" : "API Token" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bất kỳ cột nào" + "value" : "API Token" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "任意列" + "value" : "API Token" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "任一欄位" + "value" : "API Token" } } } }, - "Any Outcome" : { + "API Token Required" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "결과 무관" + "value" : "API 토큰 필요" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Her Sonuç" + "value" : "API Anahtarı Gerekli" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mọi kết quả" + "value" : "Yêu cầu mã API" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "任意结果" + "value" : "需要 API 令牌" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "任何結果" + "value" : "需要 API 權杖" } } } @@ -14495,6 +15226,16 @@ } } }, + "Applied to %@ at %@. %d statements." : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Applied to %1$@ at %2$@. %3$d statements." + } + } + } + }, "Applied when opening a table. Click a column header to override." : { "extractionState" : "stale", "localizations" : { @@ -14564,453 +15305,432 @@ } } }, - "Apply All" : { - "extractionState" : "stale", + "Apply %@ sync to %@" : { "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "모두 적용" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "Tümünü Uygula" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "Áp dụng tất cả" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "全部应用" - } - }, - "zh-Hant" : { + "en" : { "stringUnit" : { - "state" : "translated", - "value" : "全部套用" + "state" : "new", + "value" : "Apply %1$@ sync to %2$@" } } } }, - "Apply Changes" : { + "Apply %1$d statements to %2$@?" : { + + }, + "Apply a row limit when running queries and cap results at the configured row count" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "변경 사항 적용" + "value" : "쿼리 실행 시 행 제한을 적용하고 결과를 설정된 행 수로 제한" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Değişiklikleri Uygula" + "value" : "Sorguları çalıştırırken satır limiti uygula ve sonuçları ayarlanan satır sayısıyla sınırla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Áp dụng thay đổi" + "value" : "Áp dụng giới hạn dòng khi chạy truy vấn và giới hạn kết quả ở số dòng đã cấu hình" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "应用更改" + "value" : "运行查询时应用行数限制,并将结果限制在配置的行数内" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "套用變更" + "value" : "執行查詢時套用列數上限,並將結果限制在設定的列數內" } } } }, - "Apply Filter" : { + "Apply active filters (Cmd+Return)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터 적용" + "value" : "활성 필터 적용(Cmd+Return)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtre Uygula" + "value" : "Etkin filtreleri uygula (Cmd+Return)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Áp dụng bộ lọc" + "value" : "Áp dụng các bộ lọc đang bật (Cmd+Return)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "应用筛选" + "value" : "应用启用的筛选 (Cmd+Return)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "套用篩選" + "value" : "套用啟用的篩選(Cmd+Return)" } } } }, - "Apply Filter from Link" : { + "Apply All" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "링크의 필터 적용" + "value" : "모두 적용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantıdan Filtre Uygula" + "value" : "Tümünü Uygula" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Áp dụng bộ lọc từ liên kết" + "value" : "Áp dụng tất cả" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "从链接应用筛选" + "value" : "全部应用" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "從連結套用篩選" + "value" : "全部套用" } } } }, - "Apply Only This Filter" : { + "Apply Changes" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 필터만 적용" + "value" : "변경 사항 적용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yalnızca Bu Filtreyi Uygula" + "value" : "Değişiklikleri Uygula" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chỉ áp dụng bộ lọc này" + "value" : "Áp dụng thay đổi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "仅应用此筛选" + "value" : "应用更改" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "僅套用此篩選" + "value" : "套用變更" } } } }, - "Apply Schema Changes" : { + "Apply Filter" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "스키마 변경 사항 적용" + "value" : "필터 적용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Şema Değişikliklerini Uygula" + "value" : "Filtre Uygula" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Áp dụng thay đổi schema" + "value" : "Áp dụng bộ lọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "应用Schema更改" + "value" : "应用筛选" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "套用綱要變更" + "value" : "套用篩選" } } } }, - "Apply This Filter" : { - "extractionState" : "stale", + "Apply Filter from Link" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 필터 적용" + "value" : "링크의 필터 적용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu Filtreyi Uygula" + "value" : "Bağlantıdan Filtre Uygula" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Áp dụng bộ lọc này" + "value" : "Áp dụng bộ lọc từ liên kết" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "应用此筛选" + "value" : "从链接应用筛选" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "套用此篩選" + "value" : "從連結套用篩選" } } } }, - "Apply User and Role Changes" : { + "Apply filters" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사용자 및 역할 변경 사항 적용" + "value" : "필터 적용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kullanıcı ve Rol Değişikliklerini Uygula" + "value" : "Filtreleri uygula" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Áp dụng thay đổi người dùng và vai trò" + "value" : "Áp dụng bộ lọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "应用用户和角色更改" + "value" : "应用筛选" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "套用使用者與角色變更" + "value" : "套用篩選" } } } }, - "Apply a row limit when running queries and cap results at the configured row count" : { + "Apply only this filter" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 실행 시 행 제한을 적용하고 결과를 설정된 행 수로 제한" + "value" : "이 필터만 적용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorguları çalıştırırken satır limiti uygula ve sonuçları ayarlanan satır sayısıyla sınırla" + "value" : "Yalnızca bu filtreyi uygula" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Áp dụng giới hạn dòng khi chạy truy vấn và giới hạn kết quả ở số dòng đã cấu hình" + "value" : "Chỉ áp dụng bộ lọc này" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "运行查询时应用行数限制,并将结果限制在配置的行数内" + "value" : "仅应用此筛选" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "執行查詢時套用列數上限,並將結果限制在設定的列數內" + "value" : "僅套用這個篩選" } } } }, - "Apply active filters (Cmd+Return)" : { + "Apply Only This Filter" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "활성 필터 적용(Cmd+Return)" + "value" : "이 필터만 적용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Etkin filtreleri uygula (Cmd+Return)" + "value" : "Yalnızca Bu Filtreyi Uygula" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Áp dụng các bộ lọc đang bật (Cmd+Return)" + "value" : "Chỉ áp dụng bộ lọc này" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "应用启用的筛选 (Cmd+Return)" + "value" : "仅应用此筛选" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "套用啟用的篩選(Cmd+Return)" + "value" : "僅套用此篩選" } } } }, - "Apply filters" : { - "extractionState" : "stale", + "Apply Schema Changes" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터 적용" + "value" : "스키마 변경 사항 적용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtreleri uygula" + "value" : "Şema Değişikliklerini Uygula" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Áp dụng bộ lọc" + "value" : "Áp dụng thay đổi schema" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "应用筛选" + "value" : "应用Schema更改" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "套用篩選" + "value" : "套用綱要變更" } } } }, - "Apply only this filter" : { - "extractionState" : "stale", + "Apply suggested SQL?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 필터만 적용" + "value" : "제안된 SQL을 적용하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yalnızca bu filtreyi uygula" + "value" : "Önerilen SQL uygulansın mı?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chỉ áp dụng bộ lọc này" + "value" : "Áp dụng SQL được đề xuất?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "仅应用此筛选" + "value" : "应用建议的 SQL?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "僅套用這個篩選" + "value" : "要套用建議的 SQL 嗎?" } } } }, - "Apply suggested SQL?" : { + "Apply this filter" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "제안된 SQL을 적용하시겠습니까?" + "value" : "이 필터 적용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Önerilen SQL uygulansın mı?" + "value" : "Bu filtreyi uygula" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Áp dụng SQL được đề xuất?" + "value" : "Áp dụng bộ lọc này" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "应用建议的 SQL?" + "value" : "应用此筛选" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "要套用建議的 SQL 嗎?" + "value" : "套用此篩選" } } } }, - "Apply this filter" : { + "Apply This Filter" : { "extractionState" : "stale", "localizations" : { "ko" : { @@ -15022,7 +15742,7 @@ "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu filtreyi uygula" + "value" : "Bu Filtreyi Uygula" } }, "vi" : { @@ -15044,6 +15764,9 @@ } } } + }, + "Apply to %@" : { + }, "Apply to Editor" : { "localizations" : { @@ -15078,6 +15801,46 @@ } } } + }, + "Apply to Target…" : { + + }, + "Apply User and Role Changes" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "사용자 및 역할 변경 사항 적용" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Kullanıcı ve Rol Değişikliklerini Uygula" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "Áp dụng thay đổi người dùng và vai trò" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "应用用户和角色更改" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "套用使用者與角色變更" + } + } + } + }, + "Apply…" : { + }, "Applying or clearing filters will reload data and discard all unsaved changes." : { "localizations" : { @@ -15112,6 +15875,9 @@ } } } + }, + "Applying to %@…" : { + }, "Approve" : { "localizations" : { @@ -15180,6 +15946,9 @@ } } } + }, + "Approximate row count, when requested" : { + }, "Are you sure you want to cancel the running query for this session?" : { "localizations" : { @@ -15527,35 +16296,41 @@ "localizations" : { "ko" : { "stringUnit" : { - "value" : "영역", - "state" : "translated" + "state" : "translated", + "value" : "영역" } }, "tr" : { "stringUnit" : { - "value" : "Alan", - "state" : "translated" + "state" : "translated", + "value" : "Alan" } }, "vi" : { "stringUnit" : { - "value" : "Miền", - "state" : "translated" + "state" : "translated", + "value" : "Miền" } }, "zh-Hans" : { "stringUnit" : { - "value" : "面积", - "state" : "translated" + "state" : "translated", + "value" : "面积" } }, "zh-Hant" : { "stringUnit" : { - "value" : "面積", - "state" : "translated" + "state" : "translated", + "value" : "面積" } } } + }, + "Argument list the engine reports, such as (date), when it reports one" : { + + }, + "Array element scope" : { + }, "As Copy" : { "localizations" : { @@ -15625,241 +16400,241 @@ } } }, - "Ask AI about your database" : { + "Ask about step %d" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "AI에게 데이터베이스에 대해 질문" + "value" : "%d단계에 대해 질문" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanınız hakkında yapay zekaya sorun" + "value" : "%d. adım hakkında soru sor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hỏi AI về cơ sở dữ liệu của bạn" + "value" : "Hỏi về bước %d" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "向 AI 询问您的数据库" + "value" : "询问第 %d 步" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "向 AI 詢問你的資料庫" + "value" : "詢問第 %d 步" } } } }, - "Ask AI to Fix" : { - "extractionState" : "stale", + "Ask about this change" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "AI에게 수정 요청" + "value" : "이 변경 사항에 대해 질문" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Düzeltmesi için Yapay Zekaya Sor" + "value" : "Bu değişiklik hakkında soru sor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhờ AI sửa lỗi" + "value" : "Hỏi về thay đổi này" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "让 AI 修复" + "value" : "询问此更改" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "讓 AI 修正" + "value" : "詢問這項變更" } } } }, - "Ask Each Time" : { + "Ask about this change…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "매번 묻기" + "value" : "이 변경 사항에 대해 질문…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Her Seferinde Sor" + "value" : "Bu değişiklik hakkında soru sor…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hỏi mỗi lần" + "value" : "Hỏi về thay đổi này…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "每次询问" + "value" : "询问此更改…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "每次詢問" + "value" : "詢問這項變更…" } } } }, - "Ask about step %d" : { + "Ask about your database…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%d단계에 대해 질문" + "value" : "데이터베이스에 대해 질문…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%d. adım hakkında soru sor" + "value" : "Veritabanınız hakkında sorun…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hỏi về bước %d" + "value" : "Hỏi về cơ sở dữ liệu của bạn…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "询问第 %d 步" + "value" : "询问您的数据库…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "詢問第 %d 步" + "value" : "詢問關於你的資料庫的問題…" } } } }, - "Ask about this change" : { + "Ask AI about your database" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 변경 사항에 대해 질문" + "value" : "AI에게 데이터베이스에 대해 질문" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu değişiklik hakkında soru sor" + "value" : "Veritabanınız hakkında yapay zekaya sorun" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hỏi về thay đổi này" + "value" : "Hỏi AI về cơ sở dữ liệu của bạn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "询问此更改" + "value" : "向 AI 询问您的数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "詢問這項變更" + "value" : "向 AI 詢問你的資料庫" } } } }, - "Ask about this change…" : { + "Ask AI to Fix" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 변경 사항에 대해 질문…" + "value" : "AI에게 수정 요청" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu değişiklik hakkında soru sor…" + "value" : "Düzeltmesi için Yapay Zekaya Sor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hỏi về thay đổi này…" + "value" : "Nhờ AI sửa lỗi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "询问此更改…" + "value" : "让 AI 修复" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "詢問這項變更…" + "value" : "讓 AI 修正" } } } }, - "Ask about your database…" : { + "Ask Each Time" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스에 대해 질문…" + "value" : "매번 묻기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanınız hakkında sorun…" + "value" : "Her Seferinde Sor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hỏi về cơ sở dữ liệu của bạn…" + "value" : "Hỏi mỗi lần" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "询问您的数据库…" + "value" : "每次询问" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "詢問關於你的資料庫的問題…" + "value" : "每次詢問" } } } @@ -15933,6 +16708,9 @@ } } } + }, + "Ask the engine for the plan of a statement and return both the raw plan text and, where TablePro can parse it, a node tree with costs and row estimates. Setting 'analyze' runs the statement for real, so an analyzed write needs tools:write and Safe Mode approval." : { + }, "Ask: read-only schema lookups. AI can browse but not run queries." : { "localizations" : { @@ -16036,6 +16814,12 @@ } } } + }, + "Attribute key" : { + + }, + "Attribute label" : { + }, "Attributes" : { "localizations" : { @@ -16070,6 +16854,9 @@ } } } + }, + "Audience" : { + }, "Auth" : { "localizations" : { @@ -16281,36 +17068,36 @@ } } }, - "Authentication Method" : { + "Authentication failed: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "인증 방식" + "value" : "인증 실패: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kimlik doğrulama yöntemi" + "value" : "Kimlik doğrulama başarısız: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phương thức xác thực" + "value" : "Xác thực thất bại: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "身份验证方式" + "value" : "身份验证失败:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "身分驗證方式" + "value" : "身分驗證失敗:%@" } } } @@ -16349,70 +17136,70 @@ } } }, - "Authentication failed: %@" : { + "Authentication is required for this operation" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "인증 실패: %@" + "value" : "이 작업에는 인증이 필요합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kimlik doğrulama başarısız: %@" + "value" : "Bu işlem için kimlik doğrulama gerekiyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xác thực thất bại: %@" + "value" : "Thao tác này yêu cầu xác thực" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "身份验证失败:%@" + "value" : "此操作需要身份验证" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "身分驗證失敗:%@" + "value" : "這項操作需要身分驗證" } } } }, - "Authentication is required for this operation" : { + "Authentication Method" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 작업에는 인증이 필요합니다" + "value" : "인증 방식" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu işlem için kimlik doğrulama gerekiyor" + "value" : "Kimlik doğrulama yöntemi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thao tác này yêu cầu xác thực" + "value" : "Phương thức xác thực" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此操作需要身份验证" + "value" : "身份验证方式" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "這項操作需要身分驗證" + "value" : "身分驗證方式" } } } @@ -16588,174 +17375,209 @@ } } }, - "Auto Generate" : { + "AUTO" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "자동 생성" + "value" : "자동" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Otomatik Oluştur" + "value" : "OTO" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tự động tạo" + "value" : "TỰ ĐỘNG" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "自动生成" + "value" : "自动" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "自動產生" + "value" : "自動" } } } }, - "Auto Inc" : { - "extractionState" : "stale", + "Auto cleanup" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "자동 증가" + "value" : "자동 정리" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Oto Artış" + "value" : "Otomatik temizleme" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tự tăng" + "value" : "Tự động dọn dẹp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "自增" + "value" : "自动清理" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "自動遞增" + "value" : "自動清理" } } } }, - "Auto Increment" : { + "Auto cleanup on startup" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "자동 증가" + "value" : "시작 시 자동 정리" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Otomatik Artış" + "value" : "Başlangıçta otomatik temizlik" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tự động tăng" + "value" : "Tự động dọn dẹp khi khởi động" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "自动递增" + "value" : "启动时自动清理" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "自動遞增" + "value" : "啟動時自動清理" } } } }, - "Auto cleanup" : { + "Auto Generate" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "자동 정리" + "value" : "자동 생성" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Otomatik temizleme" + "value" : "Otomatik Oluştur" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tự động dọn dẹp" + "value" : "Tự động tạo" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "自动清理" + "value" : "自动生成" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "自動清理" + "value" : "自動產生" } } } }, - "Auto cleanup on startup" : { + "Auto Inc" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "시작 시 자동 정리" + "value" : "자동 증가" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Başlangıçta otomatik temizlik" + "value" : "Oto Artış" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tự động dọn dẹp khi khởi động" + "value" : "Tự tăng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "启动时自动清理" + "value" : "自增" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "啟動時自動清理" + "value" : "自動遞增" + } + } + } + }, + "Auto Increment" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "자동 증가" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Otomatik Artış" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tự động tăng" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "自动递增" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "自動遞增" } } } @@ -16793,6 +17615,9 @@ } } } + }, + "Auto-increment seed" : { + }, "Auto-indent" : { "extractionState" : "stale", @@ -17066,6 +17891,9 @@ } } } + }, + "Average row length" : { + }, "Average Time" : { "localizations" : { @@ -17101,6 +17929,41 @@ } } }, + "avg %@" : { + "comment" : "Average duration, %@ is a duration", + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "평균 %@" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "ort. %@" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "trung bình %@" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "平均 %@" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "平均 %@" + } + } + } + }, "Avg Row" : { "localizations" : { "ko" : { @@ -17135,6 +17998,182 @@ } } }, + "AWS managed key-value/document store" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "AWS 관리형 키-값/문서 저장소" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "AWS'nin yönettiği anahtar-değer/belge deposu" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "Kho key-value/tài liệu do AWS quản lý" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "AWS托管的键值/文档存储" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "AWS 託管的鍵值/文件儲存" + } + } + } + }, + "AWS Region" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "AWS Region" + } + }, + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "AWS 리전" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "AWS Bölgesi" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "AWS Region" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "AWS 区域" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "AWS 區域" + } + } + } + }, + "AWS SSO Sign-In Failed" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "AWS SSO 로그인 실패" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "AWS SSO oturumu açılamadı" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "Đăng nhập AWS SSO thất bại" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "AWS SSO登录失败" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "AWS SSO 登入失敗" + } + } + } + }, + "AWS SSO sign-in finished. Test the connection again." : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "AWS SSO 로그인이 완료되었습니다. 연결을 다시 테스트하십시오." + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "AWS SSO oturum açma tamamlandı. Bağlantıyı yeniden test edin." + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "Đã hoàn tất đăng nhập AWS SSO. Hãy kiểm tra lại kết nối." + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "AWS SSO登录已完成。请再次测试连接。" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "AWS SSO 登入已完成。請再次測試連線。" + } + } + } + }, + "AWS SSO Sign-In Required" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "AWS SSO 로그인 필요" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "AWS SSO ile oturum açma gerekli" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "Yêu cầu đăng nhập AWS SSO" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "需要AWS SSO登录" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "需要 AWS SSO 登入" + } + } + } + }, "Back" : { "localizations" : { "ko" : { @@ -17381,7 +18420,6 @@ }, "Backup Dump…" : { "comment" : "A button that triggers a backup dump.", - "extractionState" : "stale", "isCommentAutoGenerated" : true, "localizations" : { "ko" : { @@ -17415,6 +18453,12 @@ } } } + }, + "Backup finished" : { + + }, + "Backups" : { + }, "Badge Background" : { "localizations" : { @@ -17485,7 +18529,6 @@ } }, "Bar" : { - "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { @@ -17553,6 +18596,80 @@ } } }, + "bastion.example.com" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "bastion.example.com" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "bastion.example.com" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "bastion.example.com" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "bastion.example.com" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "bastion.example.com" + } + } + } + }, + "BEFORE, AFTER, or INSTEAD OF" : { + + }, + "Begin, commit, or roll back a transaction on the connection's shared session. The transaction stays open across calls until committed or rolled back, and it is the same session the user's own tabs run on, so leave nothing open. Needs tools:write." : { + + }, + "between" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "사이" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "between" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "giữa" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "介于" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "介於" + } + } + } + }, "Between %@ and %@" : { "localizations" : { "ko" : { @@ -17626,6 +18743,9 @@ } } } + }, + "Binary content" : { + }, "Block" : { "extractionState" : "stale", @@ -18003,6 +19123,9 @@ } } } + }, + "Bring an open tab to the front, using a tab id from list_recent_tabs." : { + }, "Browse" : { "localizations" : { @@ -18037,6 +19160,9 @@ } } } + }, + "Browse Table" : { + }, "Browse, edit, and manage your data with ease" : { "localizations" : { @@ -18072,70 +19198,70 @@ } } }, - "Browser Sign-In" : { + "Browse…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "브라우저 로그인" + "value" : "찾아보기…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tarayıcıyla oturum açma" + "value" : "Gözat…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đăng nhập bằng trình duyệt" + "value" : "Duyệt…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "浏览器登录" + "value" : "浏览…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "瀏覽器登入" + "value" : "瀏覽…" } } } }, - "Browse…" : { + "Browser Sign-In" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "찾아보기…" + "value" : "브라우저 로그인" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Gözat…" + "value" : "Tarayıcıyla oturum açma" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Duyệt…" + "value" : "Đăng nhập bằng trình duyệt" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "浏览…" + "value" : "浏览器登录" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "瀏覽…" + "value" : "瀏覽器登入" } } } @@ -18144,8 +19270,8 @@ "localizations" : { "ko" : { "stringUnit" : { - "value" : "차트 생성 중", - "state" : "translated" + "state" : "translated", + "value" : "차트 생성 중" } }, "tr" : { @@ -18585,6 +19711,7 @@ } }, "CA certificate not found: %@" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { @@ -18618,489 +19745,6 @@ } } }, - "CHANGED" : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "변경됨" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "DEĞİŞTİRİLDİ" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "ĐÃ THAY ĐỔI" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "已更改" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "已變更" - } - } - } - }, - "CLI Connection Name" : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "CLI 연결 이름" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "CLI bağlantı adı" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "Tên kết nối CLI" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "CLI连接名称" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "CLI 連線名稱" - } - } - } - }, - "CLI Paths" : { - "extractionState" : "stale", - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "CLI 경로" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "CLI Yolları" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "Đường dẫn CLI" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "CLI 路径" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "CLI 路徑" - } - } - } - }, - "CLI tool \"%@\" not found in PATH" : { - "extractionState" : "stale", - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "PATH에서 CLI 도구 \"%@\"을(를) 찾을 수 없습니다" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "CLI aracı \"%@\" PATH içinde bulunamadı" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "Không tìm thấy công cụ CLI \"%@\" trong PATH" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "在 PATH 中未找到 CLI 工具 \"%@\"" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "在 PATH 中找不到 CLI 工具「%@」" - } - } - } - }, - "CMD" : { - "extractionState" : "stale", - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "CMD" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "CMD" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "CMD" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "CMD" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "CMD" - } - } - } - }, - "COMMENT" : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "COMMENT" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "COMMENT" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "COMMENT" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "COMMENT" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "COMMENT" - } - } - } - }, - "CRITICAL: Transaction rollback failed - database may be in inconsistent state: %@" : { - "extractionState" : "stale", - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "심각: 트랜잭션 롤백 실패 - 데이터베이스가 일관되지 않은 상태일 수 있음: %@" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "CRITICAL: Transaction rollback failed - database may be giriş inconsistent state: %@" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "NGHIÊM TRỌNG: Hoàn tác giao dịch thất bại - cơ sở dữ liệu có thể ở trạng thái không nhất quán: %@" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "严重:事务回滚失败 - 数据库可能处于不一致状态:%@" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "嚴重:交易還原失敗 - 資料庫可能處於不一致狀態:%@" - } - } - } - }, - "CSV" : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "CSV" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "CSV" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "CSV" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "CSV" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "CSV" - } - } - } - }, - "CSV Properties" : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "CSV 속성" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "CSV Özellikleri" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "Thuộc tính CSV" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "CSV 属性" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "CSV 屬性" - } - } - } - }, - "CSV with Headers" : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "헤더 포함 CSV" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "Başlıklı CSV" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "CSV kèm tiêu đề" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "带标题行的 CSV" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "含標題列的 CSV" - } - } - } - }, - "CSV/JSON Editing" : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "CSV/JSON 편집" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "CSV/JSON Düzenleme" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "Chỉnh sửa CSV/JSON" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "CSV/JSON 编辑" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "CSV/JSON 編輯" - } - } - } - }, - "CURDATE()" : { - "extractionState" : "stale", - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "CURDATE()" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "CURDATE()" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "CURDATE()" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "CURDATE()" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "CURDATE()" - } - } - } - }, - "CURRENT_TIMESTAMP()" : { - "extractionState" : "stale", - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "CURRENT_TIMESTAMP()" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "CURRENT_TIMESTAMP()" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "CURRENT_TIMESTAMP()" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "CURRENT_TIMESTAMP()" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "CURRENT_TIMESTAMP()" - } - } - } - }, - "CURTIME()" : { - "extractionState" : "stale", - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "CURTIME()" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "CURTIME()" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "CURTIME()" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "CURTIME()" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "CURTIME()" - } - } - } - }, "Cache Hit Ratio" : { "localizations" : { "ko" : { @@ -19479,6 +20123,40 @@ } } }, + "Cancel query for session %@" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "세션 %@의 쿼리 취소" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ oturumunun sorgusunu iptal et" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "Huỷ truy vấn cho phiên %@" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "取消会话 %@ 的查询" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "取消工作階段 %@ 的查詢" + } + } + } + }, "Cancel Restore Dump" : { "comment" : "A button that cancels a restore dump.", "isCommentAutoGenerated" : true, @@ -19551,39 +20229,11 @@ } } }, - "Cancel query for session %@" : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "세션 %@의 쿼리 취소" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "%@ oturumunun sorgusunu iptal et" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "Huỷ truy vấn cho phiên %@" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "取消会话 %@ 的查询" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "取消工作階段 %@ 的查詢" - } - } - } + "cancel stops the query, kill ends the session (default cancel)" : { + + }, + "Cancel the running query on a server session, or kill the session outright. Takes a process id from get_server_dashboard. Needs tools:write and the user's approval." : { + }, "Cancelled" : { "localizations" : { @@ -19618,6 +20268,9 @@ } } } + }, + "Cancelled before the script finished." : { + }, "Cancelled by user." : { "localizations" : { @@ -19652,6 +20305,9 @@ } } } + }, + "cancelling a server query" : { + }, "Cancelling…" : { "localizations" : { @@ -19687,346 +20343,347 @@ } } }, - "Cannot Save Command" : { + "Cannot connect to Ollama at %@. Is Ollama running?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "명령을 저장할 수 없음" + "value" : "%@에서 Ollama에 연결할 수 없습니다. Ollama가 실행 중입니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Komut kaydedilemiyor" + "value" : "%@ adresindeki Ollama'ya bağlanılamıyor. Ollama çalışıyor mu?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể lưu lệnh" + "value" : "Không thể kết nối đến Ollama tại %@. Ollama có đang chạy không?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法保存命令" + "value" : "无法连接到 %@ 上的 Ollama。Ollama 是否正在运行?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法儲存指令" + "value" : "無法連線到 %@ 上的 Ollama。Ollama 是否正在執行?" } } } }, - "Cannot Show DDL" : { + "Cannot execute write queries: connection is read-only" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "DDL을 표시할 수 없음" + "value" : "쓰기 쿼리를 실행할 수 없습니다. 연결이 읽기 전용입니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "DDL gösterilemiyor" + "value" : "Yazma sorguları çalıştırılamıyor: bağlantı salt okunur" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể hiển thị DDL" + "value" : "Không thể thực thi truy vấn ghi: kết nối chỉ đọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法显示DDL" + "value" : "无法执行写入查询:连接为只读" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法顯示 DDL" + "value" : "無法執行寫入查詢:連線為唯讀" } } } }, - "Cannot connect to Ollama at %@. Is Ollama running?" : { + "Cannot execute write queries: TablePro's Safe Mode is set to read-only for this connection" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@에서 Ollama에 연결할 수 없습니다. Ollama가 실행 중입니까?" + "value" : "쓰기 쿼리를 실행할 수 없음: 이 연결에 대한 TablePro의 안전 모드가 읽기 전용으로 설정되어 있습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ adresindeki Ollama'ya bağlanılamıyor. Ollama çalışıyor mu?" + "value" : "Yazma sorguları çalıştırılamıyor: Bu bağlantı için TablePro'nun Safe Mode ayarı salt okunur" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể kết nối đến Ollama tại %@. Ollama có đang chạy không?" + "value" : "Không thể chạy truy vấn ghi: Chế độ an toàn của TablePro đang đặt kết nối này ở chế độ chỉ đọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法连接到 %@ 上的 Ollama。Ollama 是否正在运行?" + "value" : "无法执行写入查询:TablePro 的安全模式已将此连接设为只读" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法連線到 %@ 上的 Ollama。Ollama 是否正在執行?" + "value" : "無法執行寫入查詢:TablePro 的安全模式已將此連線設為唯讀" } } } }, - "Cannot execute write queries: TablePro's Safe Mode is set to read-only for this connection" : { + "Cannot format empty SQL" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쓰기 쿼리를 실행할 수 없음: 이 연결에 대한 TablePro의 안전 모드가 읽기 전용으로 설정되어 있습니다" + "value" : "빈 SQL은 포맷할 수 없습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yazma sorguları çalıştırılamıyor: Bu bağlantı için TablePro'nun Safe Mode ayarı salt okunur" + "value" : "Boş SQL biçimlendirilemez" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể chạy truy vấn ghi: Chế độ an toàn của TablePro đang đặt kết nối này ở chế độ chỉ đọc" + "value" : "Không thể định dạng SQL trống" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法执行写入查询:TablePro 的安全模式已将此连接设为只读" + "value" : "无法格式化空 SQL" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法執行寫入查詢:TablePro 的安全模式已將此連線設為唯讀" + "value" : "無法格式化空白的 SQL" } } } }, - "Cannot execute write queries: connection is read-only" : { + "Cannot save changes: connection is read-only" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쓰기 쿼리를 실행할 수 없습니다. 연결이 읽기 전용입니다." + "value" : "변경 사항을 저장할 수 없습니다. 연결이 읽기 전용입니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yazma sorguları çalıştırılamıyor: bağlantı salt okunur" + "value" : "Değişiklikler kaydedilemiyor: bağlantı salt okunur" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể thực thi truy vấn ghi: kết nối chỉ đọc" + "value" : "Không thể lưu thay đổi: kết nối ở chế độ chỉ đọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法执行写入查询:连接为只读" + "value" : "无法保存更改:连接为只读" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法執行寫入查詢:連線為唯讀" + "value" : "無法儲存變更:連線為唯讀" } } } }, - "Cannot format empty SQL" : { + "Cannot Save Command" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "빈 SQL은 포맷할 수 없습니다" + "value" : "명령을 저장할 수 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Boş SQL biçimlendirilemez" + "value" : "Komut kaydedilemiyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể định dạng SQL trống" + "value" : "Không thể lưu lệnh" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法格式化空 SQL" + "value" : "无法保存命令" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法格式化空白的 SQL" + "value" : "無法儲存指令" } } } }, - "Cannot save changes: connection is read-only" : { + "Cannot save schema changes: connection is read only." : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "변경 사항을 저장할 수 없습니다. 연결이 읽기 전용입니다." + "value" : "스키마 변경 사항을 저장할 수 없습니다. 연결이 읽기 전용입니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Değişiklikler kaydedilemiyor: bağlantı salt okunur" + "value" : "Şema değişiklikleri kaydedilemiyor: bağlantı salt okunur." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể lưu thay đổi: kết nối ở chế độ chỉ đọc" + "value" : "Không thể lưu thay đổi schema: kết nối chỉ đọc." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法保存更改:连接为只读" + "value" : "无法保存Schema更改:连接为只读。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法儲存變更:連線為唯讀" + "value" : "無法儲存綱要變更:連線為唯讀。" } } } }, - "Cannot save schema changes: TablePro's Safe Mode is set to read-only for this connection." : { + "Cannot save schema changes: connection is read-only." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "스키마 변경 사항을 저장할 수 없습니다. 이 연결에 대한 TablePro의 안전 모드가 읽기 전용으로 설정되어 있습니다." + "value" : "스키마 변경 사항을 저장할 수 없습니다. 연결이 읽기 전용입니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Şema değişiklikleri kaydedilemiyor: Bu bağlantı için TablePro'nun Safe Mode ayarı salt okunur." + "value" : "Şema değişiklikleri kaydedilemez: bağlantı salt okunur." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể lưu thay đổi schema: Chế độ an toàn của TablePro đang đặt kết nối này ở chế độ chỉ đọc." + "value" : "Không thể lưu thay đổi schema: kết nối chỉ đọc." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法保存 Schema 更改:TablePro 的安全模式已将此连接设为只读。" + "value" : "无法保存 schema 更改:连接为只读。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法儲存綱要變更:TablePro 的安全模式已將此連線設為唯讀。" + "value" : "無法儲存綱要變更:連線為唯讀。" } } } }, - "Cannot save schema changes: connection is read only." : { - "extractionState" : "stale", + "Cannot save schema changes: TablePro's Safe Mode is set to read-only for this connection." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "스키마 변경 사항을 저장할 수 없습니다. 연결이 읽기 전용입니다." + "value" : "스키마 변경 사항을 저장할 수 없습니다. 이 연결에 대한 TablePro의 안전 모드가 읽기 전용으로 설정되어 있습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Şema değişiklikleri kaydedilemiyor: bağlantı salt okunur." + "value" : "Şema değişiklikleri kaydedilemiyor: Bu bağlantı için TablePro'nun Safe Mode ayarı salt okunur." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể lưu thay đổi schema: kết nối chỉ đọc." + "value" : "Không thể lưu thay đổi schema: Chế độ an toàn của TablePro đang đặt kết nối này ở chế độ chỉ đọc." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法保存Schema更改:连接为只读。" + "value" : "无法保存 Schema 更改:TablePro 的安全模式已将此连接设为只读。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法儲存綱要變更:連線為唯讀。" + "value" : "無法儲存綱要變更:TablePro 的安全模式已將此連線設為唯讀。" } } } }, - "Cannot save schema changes: connection is read-only." : { + "Cannot Show DDL" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "스키마 변경 사항을 저장할 수 없습니다. 연결이 읽기 전용입니다." + "value" : "DDL을 표시할 수 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Şema değişiklikleri kaydedilemez: bağlantı salt okunur." + "value" : "DDL gösterilemiyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể lưu thay đổi schema: kết nối chỉ đọc." + "value" : "Không thể hiển thị DDL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法保存 schema 更改:连接为只读。" + "value" : "无法显示DDL" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法儲存綱要變更:連線為唯讀。" + "value" : "無法顯示 DDL" } } } @@ -20382,6 +21039,9 @@ } } } + }, + "Case-insensitive substring to look for" : { + }, "Category" : { "localizations" : { @@ -20486,74 +21146,77 @@ } } }, - "Cell Value" : { - "extractionState" : "stale", + "Cell selection cleared" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "셀 값" + "value" : "셀 선택이 해제되었습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Hücre Değeri" + "value" : "Hücre seçimi temizlendi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giá trị ô" + "value" : "Đã bỏ chọn ô" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "单元格值" + "value" : "已清除单元格选择" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "儲存格值" + "value" : "已清除儲存格選取" } } } }, - "Cell selection cleared" : { + "Cell Value" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "셀 선택이 해제되었습니다" + "value" : "셀 값" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Hücre seçimi temizlendi" + "value" : "Hücre Değeri" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã bỏ chọn ô" + "value" : "Giá trị ô" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已清除单元格选择" + "value" : "单元格值" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已清除儲存格選取" + "value" : "儲存格值" } } } + }, + "Cell value: string, number, boolean, or null" : { + }, "Certificate" : { "localizations" : { @@ -20828,6 +21491,40 @@ } } }, + "Change password for %@" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ 암호 변경" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@ için parolayı değiştir" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "Đổi mật khẩu cho %@" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "更改 %@ 的密码" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "更改 %@ 的密碼" + } + } + } + }, "Change Password for %@" : { "localizations" : { "ko" : { @@ -20929,6 +21626,9 @@ } } } + }, + "Change the filter to see the other rows." : { + }, "Change Type" : { "localizations" : { @@ -20964,43 +21664,43 @@ } } }, - "Change password for %@" : { + "Changed" : { + "comment" : "Text for a split diff marker that indicates a change in a split diff.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 암호 변경" + "value" : "변경됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ için parolayı değiştir" + "value" : "Değişti" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đổi mật khẩu cho %@" + "value" : "Đã thay đổi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "更改 %@ 的密码" + "value" : "已更改" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "更改 %@ 的密碼" + "value" : "已變更" } } } }, - "Changed" : { - "comment" : "Text for a split diff marker that indicates a change in a split diff.", - "isCommentAutoGenerated" : true, + "CHANGED" : { "localizations" : { "ko" : { "stringUnit" : { @@ -21011,13 +21711,13 @@ "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Değişti" + "value" : "DEĞİŞTİRİLDİ" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã thay đổi" + "value" : "ĐÃ THAY ĐỔI" } }, "zh-Hans" : { @@ -21033,6 +21733,31 @@ } } } + }, + "Changes" : { + + }, + "Changes applied" : { + + }, + "Changes saved" : { + + }, + "Changing %@ from %@ to %@ can truncate existing values." : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Changing %1$@ from %2$@ to %3$@ can truncate existing values." + } + } + } + }, + "Changing the collation of %@ can change sort order and uniqueness." : { + + }, + "Changing the primary key rebuilds the table and can fail on duplicate values." : { + }, "Character Set" : { "extractionState" : "stale", @@ -21142,100 +21867,100 @@ "localizations" : { "ko" : { "stringUnit" : { - "value" : "차트", - "state" : "translated" + "state" : "translated", + "value" : "차트" } }, "tr" : { "stringUnit" : { - "value" : "Grafik", - "state" : "translated" + "state" : "translated", + "value" : "Grafik" } }, "vi" : { "stringUnit" : { - "value" : "Biểu đồ", - "state" : "translated" + "state" : "translated", + "value" : "Biểu đồ" } }, "zh-Hans" : { "stringUnit" : { - "value" : "图表", - "state" : "translated" + "state" : "translated", + "value" : "图表" } }, "zh-Hant" : { "stringUnit" : { - "value" : "圖表", - "state" : "translated" + "state" : "translated", + "value" : "圖表" } } } }, - "Chart Type" : { + "Chart data scope" : { "localizations" : { "ko" : { "stringUnit" : { - "value" : "차트 종류", - "state" : "translated" + "state" : "translated", + "value" : "차트 데이터 범위" } }, "tr" : { "stringUnit" : { - "value" : "Grafik Türü", - "state" : "translated" + "state" : "translated", + "value" : "Grafik veri kapsamı" } }, "vi" : { "stringUnit" : { - "value" : "Loại biểu đồ", - "state" : "translated" + "state" : "translated", + "value" : "Phạm vi dữ liệu biểu đồ" } }, "zh-Hans" : { "stringUnit" : { - "value" : "图表类型", - "state" : "translated" + "state" : "translated", + "value" : "图表数据范围" } }, "zh-Hant" : { "stringUnit" : { - "value" : "圖表類型", - "state" : "translated" + "state" : "translated", + "value" : "圖表資料範圍" } } } }, - "Chart data scope" : { + "Chart Type" : { "localizations" : { "ko" : { "stringUnit" : { - "value" : "차트 데이터 범위", - "state" : "translated" + "state" : "translated", + "value" : "차트 종류" } }, "tr" : { "stringUnit" : { - "value" : "Grafik veri kapsamı", - "state" : "translated" + "state" : "translated", + "value" : "Grafik Türü" } }, "vi" : { "stringUnit" : { - "value" : "Phạm vi dữ liệu biểu đồ", - "state" : "translated" + "state" : "translated", + "value" : "Loại biểu đồ" } }, "zh-Hans" : { "stringUnit" : { - "value" : "图表数据范围", - "state" : "translated" + "state" : "translated", + "value" : "图表类型" } }, "zh-Hant" : { "stringUnit" : { - "value" : "圖表資料範圍", - "state" : "translated" + "state" : "translated", + "value" : "圖表類型" } } } @@ -21244,8 +21969,8 @@ "localizations" : { "ko" : { "stringUnit" : { - "value" : "불러온 %2$@행 중 처음 %1$@행을 차트로 표시 중", - "state" : "translated" + "state" : "translated", + "value" : "불러온 %2$@행 중 처음 %1$@행을 차트로 표시 중" } }, "tr" : { @@ -21278,8 +22003,8 @@ "localizations" : { "ko" : { "stringUnit" : { - "value" : "차트는 결과 창이 불러온 행을 그립니다. 그리드 선택, 찾기, 숨긴 열, 값 필터는 차트를 바꾸지 않습니다.", - "state" : "translated" + "state" : "translated", + "value" : "차트는 결과 창이 불러온 행을 그립니다. 그리드 선택, 찾기, 숨긴 열, 값 필터는 차트를 바꾸지 않습니다." } }, "tr" : { @@ -21312,8 +22037,8 @@ "localizations" : { "ko" : { "stringUnit" : { - "value" : "차트에는 Y축으로 쓸 숫자 열이 필요합니다. 이 결과에는 없습니다.", - "state" : "translated" + "state" : "translated", + "value" : "차트에는 Y축으로 쓸 숫자 열이 필요합니다. 이 결과에는 없습니다." } }, "tr" : { @@ -21411,110 +22136,113 @@ } } }, - "Check Status" : { + "Check a query for correctness, cost, and risk against the live schema before running it" : { + + }, + "Check for Updates…" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Check Status" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "상태 확인" + "value" : "업데이트 확인…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Durumu Kontrol Et" + "value" : "Güncellemeleri Kontrol Et…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kiểm tra trạng thái" + "value" : "Kiểm tra cập nhật…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "检查状态" + "value" : "检查更新…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "檢查狀態" + "value" : "檢查更新…" } } } }, - "Check for Updates…" : { + "Check mode:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "업데이트 확인…" + "value" : "검사 모드:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Güncellemeleri Kontrol Et…" + "value" : "Kontrol modu:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kiểm tra cập nhật…" + "value" : "Chế độ kiểm tra:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "检查更新…" + "value" : "检查模式:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "檢查更新…" + "value" : "檢查模式:" } } } }, - "Check mode:" : { + "Check Status" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Check Status" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "검사 모드:" + "value" : "상태 확인" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kontrol modu:" + "value" : "Durumu Kontrol Et" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chế độ kiểm tra:" + "value" : "Kiểm tra trạng thái" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "检查模式:" + "value" : "检查状态" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "檢查模式:" + "value" : "檢查狀態" } } } @@ -21725,243 +22453,8 @@ } } }, - "Choose AI provider and model" : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "AI 제공업체 및 모델 선택" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "Yapay zeka sağlayıcısını ve modeli seçin" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "Chọn nhà cung cấp và mô hình AI" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "选择AI提供商和模型" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "選擇 AI 供應商與模型" - } - } - } - }, - "Choose Another Folder…" : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "다른 폴더 선택…" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "Başka Bir Klasör Seç…" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "Chọn thư mục khác…" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "选择其他文件夹…" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "選擇其他資料夾…" - } - } - } - }, - "Choose Column" : { - "localizations" : { - "ko" : { - "stringUnit" : { - "value" : "열 선택", - "state" : "translated" - } - }, - "tr" : { - "stringUnit" : { - "value" : "Sütun Seç", - "state" : "translated" - } - }, - "vi" : { - "stringUnit" : { - "value" : "Chọn cột", - "state" : "translated" - } - }, - "zh-Hans" : { - "stringUnit" : { - "value" : "选择列", - "state" : "translated" - } - }, - "zh-Hant" : { - "stringUnit" : { - "value" : "選擇欄", - "state" : "translated" - } - } - } - }, - "Choose Destination…" : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "대상 선택…" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "Hedef Seç…" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "Chọn nơi lưu…" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "选择目标位置…" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "選擇目的地…" - } - } - } - }, - "Choose Dump File" : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "덤프 파일 선택" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "Döküm Dosyası Seç" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "Chọn tệp dump" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "选择转储文件" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "選擇備份檔" - } - } - } - }, - "Choose Folder" : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "폴더 선택" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "Klasör Seç" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "Chọn thư mục" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "选择文件夹" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "選擇資料夾" - } - } - } - }, - "Choose Type" : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "유형 선택" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "Tür Seç" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "Chọn kiểu" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "选择类型" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "選擇類型" - } - } - } + "Choose %@" : { + }, "Choose a %@ export file to import" : { "localizations" : { @@ -21997,70 +22490,70 @@ } } }, - "Choose a Database" : { + "Choose a certificate or key file" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 선택" + "value" : "인증서 또는 키 파일 선택" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bir veritabanı seçin" + "value" : "Sertifika veya anahtar dosyası seçin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn cơ sở dữ liệu" + "value" : "Chọn tệp chứng chỉ hoặc key" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选择数据库" + "value" : "选择证书或密钥文件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選擇資料庫" + "value" : "選擇憑證或金鑰檔案" } } } }, - "Choose a certificate or key file" : { + "Choose a Database" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "인증서 또는 키 파일 선택" + "value" : "데이터베이스 선택" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sertifika veya anahtar dosyası seçin" + "value" : "Bir veritabanı seçin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn tệp chứng chỉ hoặc key" + "value" : "Chọn cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选择证书或密钥文件" + "value" : "选择数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選擇憑證或金鑰檔案" + "value" : "選擇資料庫" } } } @@ -22167,6 +22660,9 @@ } } } + }, + "Choose a key column before comparing data." : { + }, "Choose a location to save the diagram as PNG." : { "localizations" : { @@ -22373,6 +22869,46 @@ } } }, + "Choose a source and a target first." : { + + }, + "Choose a source and a target, then compare them." : { + + }, + "Choose AI provider and model" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "AI 제공업체 및 모델 선택" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Yapay zeka sağlayıcısını ve modeli seçin" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "Chọn nhà cung cấp và mô hình AI" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "选择AI提供商和模型" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "選擇 AI 供應商與模型" + } + } + } + }, "Choose an export file to import" : { "localizations" : { "ko" : { @@ -22407,6 +22943,176 @@ } } }, + "Choose Another Folder…" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "다른 폴더 선택…" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Başka Bir Klasör Seç…" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "Chọn thư mục khác…" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "选择其他文件夹…" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "選擇其他資料夾…" + } + } + } + }, + "Choose Column" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "열 선택" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sütun Seç" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "Chọn cột" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "选择列" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "選擇欄" + } + } + } + }, + "Choose Destination…" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "대상 선택…" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Hedef Seç…" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "Chọn nơi lưu…" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "选择目标位置…" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "選擇目的地…" + } + } + } + }, + "Choose Dump File" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "덤프 파일 선택" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Döküm Dosyası Seç" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "Chọn tệp dump" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "选择转储文件" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "選擇備份檔" + } + } + } + }, + "Choose Folder" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "폴더 선택" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Klasör Seç" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "Chọn thư mục" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "选择文件夹" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "選擇資料夾" + } + } + } + }, "Choose port automatically" : { "localizations" : { "ko" : { @@ -22441,6 +23147,40 @@ } } }, + "Choose Type" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "유형 선택" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tür Seç" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "Chọn kiểu" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "选择类型" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "選擇類型" + } + } + } + }, "Choose what happens to them when the role is dropped." : { "localizations" : { "ko" : { @@ -22855,6 +23595,40 @@ } } }, + "Clear all" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "모두 지우기" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tümünü temizle" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "Xóa tất cả" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "全部清除" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "全部清除" + } + } + } + }, "Clear All" : { "localizations" : { "ko" : { @@ -22923,6 +23697,41 @@ } } }, + "Clear all history" : { + "extractionState" : "stale", + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "모든 기록 지우기" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tüm geçmişi temizle" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "Xoá toàn bộ lịch sử" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "清除全部历史" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "清除全部歷程記錄" + } + } + } + }, "Clear All History?" : { "localizations" : { "ko" : { @@ -22957,6 +23766,40 @@ } } }, + "Clear all query history" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "모든 쿼리 기록 지우기" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tüm sorgu geçmişini temizle" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "Xóa toàn bộ lịch sử truy vấn" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "清除全部查询历史" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "清除全部查詢歷程記錄" + } + } + } + }, "Clear All Value Filters" : { "localizations" : { "ko" : { @@ -22991,6 +23834,40 @@ } } }, + "Clear applied filters without removing filter rows" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "필터 행은 유지하고 적용된 필터만 지우기" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Filtre satırlarını kaldırmadan uygulanan filtreleri temizle" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "Xóa các bộ lọc đã áp dụng mà không gỡ các dòng bộ lọc" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "清除已应用的筛选,但不移除筛选行" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "清除已套用的篩選,但不移除篩選列" + } + } + } + }, "Clear Conversation" : { "extractionState" : "stale", "localizations" : { @@ -23333,7 +24210,7 @@ } } }, - "Clear Search" : { + "Clear search" : { "extractionState" : "stale", "localizations" : { "ko" : { @@ -23345,7 +24222,7 @@ "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Aramayı Temizle" + "value" : "Aramayı temizle" } }, "vi" : { @@ -23368,311 +24245,278 @@ } } }, - "Clear Selection" : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "선택 해제" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "Seçimi Temizle" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "Bỏ chọn" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "取消选择" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "清除選取範圍" - } - } - } - }, - "Clear Value Filter" : { + "Clear Search" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "값 필터 지우기" + "value" : "검색 지우기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Değer Filtresini Temizle" + "value" : "Aramayı Temizle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa bộ lọc giá trị" + "value" : "Xóa tìm kiếm" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "清除值筛选" + "value" : "清除搜索" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "清除值篩選" + "value" : "清除搜尋" } } } }, - "Clear all" : { + "Clear Selection" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모두 지우기" + "value" : "선택 해제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tümünü temizle" + "value" : "Seçimi Temizle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa tất cả" + "value" : "Bỏ chọn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "全部清除" + "value" : "取消选择" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "全部清除" + "value" : "清除選取範圍" } } } }, - "Clear all history" : { + "Clear table filter" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 기록 지우기" + "value" : "테이블 필터 지우기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm geçmişi temizle" + "value" : "Tablo filtresini temizle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xoá toàn bộ lịch sử" + "value" : "Xóa bộ lọc bảng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "清除全部历史" + "value" : "清除表筛选" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "清除全部歷程記錄" + "value" : "清除資料表篩選" } } } }, - "Clear all query history" : { + "Clear the queries shown here" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 쿼리 기록 지우기" + "value" : "여기에 표시된 쿼리 지우기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm sorgu geçmişini temizle" + "value" : "Burada gösterilen sorguları temizle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa toàn bộ lịch sử truy vấn" + "value" : "Xoá các truy vấn đang hiển thị ở đây" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "清除全部查询历史" + "value" : "清除此处显示的查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "清除全部查詢歷程記錄" + "value" : "清除此處顯示的查詢" } } } }, - "Clear applied filters without removing filter rows" : { + "Clear Value Filter" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터 행은 유지하고 적용된 필터만 지우기" + "value" : "값 필터 지우기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtre satırlarını kaldırmadan uygulanan filtreleri temizle" + "value" : "Değer Filtresini Temizle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa các bộ lọc đã áp dụng mà không gỡ các dòng bộ lọc" + "value" : "Xóa bộ lọc giá trị" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "清除已应用的筛选,但不移除筛选行" + "value" : "清除值筛选" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "清除已套用的篩選,但不移除篩選列" + "value" : "清除值篩選" } } } }, - "Clear search" : { - "extractionState" : "stale", + "CLI Connection Name" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "검색 지우기" + "value" : "CLI 연결 이름" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Aramayı temizle" + "value" : "CLI bağlantı adı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa tìm kiếm" + "value" : "Tên kết nối CLI" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "清除搜索" + "value" : "CLI连接名称" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "清除搜尋" + "value" : "CLI 連線名稱" } } } }, - "Clear table filter" : { + "CLI Paths" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 필터 지우기" + "value" : "CLI 경로" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tablo filtresini temizle" + "value" : "CLI Yolları" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa bộ lọc bảng" + "value" : "Đường dẫn CLI" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "清除表筛选" + "value" : "CLI 路径" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "清除資料表篩選" + "value" : "CLI 路徑" } } } }, - "Clear the queries shown here" : { + "CLI tool \"%@\" not found in PATH" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "여기에 표시된 쿼리 지우기" + "value" : "PATH에서 CLI 도구 \"%@\"을(를) 찾을 수 없습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Burada gösterilen sorguları temizle" + "value" : "CLI aracı \"%@\" PATH içinde bulunamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xoá các truy vấn đang hiển thị ở đây" + "value" : "Không tìm thấy công cụ CLI \"%@\" trong PATH" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "清除此处显示的查询" + "value" : "在 PATH 中未找到 CLI 工具 \"%@\"" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "清除此處顯示的查詢" + "value" : "在 PATH 中找不到 CLI 工具「%@」" } } } @@ -24055,161 +24899,162 @@ } } }, - "Client Certificates" : { + "Client certificate not found: %@" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "클라이언트 인증서" + "value" : "클라이언트 인증서를 찾을 수 없습니다: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İstemci sertifikaları" + "value" : "İstemci sertifikası bulunamadı: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chứng chỉ client" + "value" : "Không tìm thấy chứng chỉ client: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "客户端证书" + "value" : "未找到客户端证书:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "用戶端憑證" + "value" : "找不到用戶端憑證:%@" } } } }, - "Client Certificates (Optional)" : { - "extractionState" : "stale", + "Client Certificates" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "클라이언트 인증서(선택 사항)" + "value" : "클라이언트 인증서" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İstemci Sertifikaları (İsteğe Bağlı)" + "value" : "İstemci sertifikaları" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chứng chỉ máy khách (Tùy chọn)" + "value" : "Chứng chỉ client" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "客户端证书(可选)" + "value" : "客户端证书" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "用戶端憑證(選填)" + "value" : "用戶端憑證" } } } }, - "Client ID" : { + "Client Certificates (Optional)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "클라이언트 ID" + "value" : "클라이언트 인증서(선택 사항)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Client ID" + "value" : "İstemci Sertifikaları (İsteğe Bağlı)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Client ID" + "value" : "Chứng chỉ máy khách (Tùy chọn)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "客户端ID" + "value" : "客户端证书(可选)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "用戶端 ID" + "value" : "用戶端憑證(選填)" } } } }, - "Client Key" : { + "Client ID" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "클라이언트 키" + "value" : "클라이언트 ID" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İstemci Anahtarı" + "value" : "Client ID" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khóa máy khách" + "value" : "Client ID" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "客户端密钥" + "value" : "客户端ID" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "用戶端金鑰" + "value" : "用戶端 ID" } } } }, - "Client Secret" : { + "Client Key" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "클라이언트 시크릿" + "value" : "클라이언트 키" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Client Secret" + "value" : "İstemci Anahtarı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Client Secret" + "value" : "Khóa máy khách" } }, "zh-Hans" : { @@ -24226,104 +25071,105 @@ } } }, - "Client certificate not found: %@" : { + "Client key is required when client certificate is set" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "클라이언트 인증서를 찾을 수 없습니다: %@" + "value" : "클라이언트 인증서가 설정된 경우 클라이언트 키가 필요합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İstemci sertifikası bulunamadı: %@" + "value" : "İstemci sertifikası ayarlandığında istemci anahtarı gerekli" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy chứng chỉ client: %@" + "value" : "Cần khóa client khi đã đặt chứng chỉ client" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未找到客户端证书:%@" + "value" : "设置客户端证书时需要客户端私钥" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "找不到用戶端憑證:%@" + "value" : "設定用戶端憑證時需要用戶端金鑰" } } } }, - "Client key is required when client certificate is set" : { + "Client key not found: %@" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "클라이언트 인증서가 설정된 경우 클라이언트 키가 필요합니다" + "value" : "클라이언트 키를 찾을 수 없습니다: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İstemci sertifikası ayarlandığında istemci anahtarı gerekli" + "value" : "İstemci anahtarı bulunamadı: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cần khóa client khi đã đặt chứng chỉ client" + "value" : "Không tìm thấy khóa client: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "设置客户端证书时需要客户端私钥" + "value" : "未找到客户端私钥:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "設定用戶端憑證時需要用戶端金鑰" + "value" : "找不到用戶端金鑰:%@" } } } }, - "Client key not found: %@" : { + "Client Secret" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "클라이언트 키를 찾을 수 없습니다: %@" + "value" : "클라이언트 시크릿" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İstemci anahtarı bulunamadı: %@" + "value" : "Client Secret" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy khóa client: %@" + "value" : "Client Secret" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未找到客户端私钥:%@" + "value" : "客户端密钥" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "找不到用戶端金鑰:%@" + "value" : "用戶端金鑰" } } } @@ -24465,355 +25311,245 @@ } } }, - "Close (ESC)" : { - "extractionState" : "stale", - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "닫기(ESC)" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "Kapat (ESC)" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "Đóng (ESC)" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "关闭 (ESC)" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "關閉 (ESC)" - } - } - } - }, - "Close All Tabs" : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "모든 탭 닫기" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "Tüm Sekmeleri Kapat" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "Đóng tất cả tab" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "关闭所有标签页" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "關閉所有分頁" - } - } - } - }, - "Close Connection" : { - "comment" : "Text for the menu item that closes the current connection.", + "Close “%@”" : { + "comment" : "The title of a menu item that closes a connection. The argument is the name of the connection.", "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 닫기" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "Bağlantıyı Kapat" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "Đóng kết nối" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "关闭连接" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "關閉連線" - } - } - } - }, - "Close Other Tabs" : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "다른 탭 닫기" + "value" : "“%@” 닫기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Diğer Sekmeleri Kapat" + "value" : "“%@” Bağlantısını Kapat" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đóng các tab khác" + "value" : "Đóng “%@”" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "关闭其他标签页" + "value" : "关闭“%@”" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "關閉其他分頁" + "value" : "關閉「%@」" } } } }, - "Close Others" : { + "Close (ESC)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다른 항목 닫기" + "value" : "닫기(ESC)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Diğerlerini Kapat" + "value" : "Kapat (ESC)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đóng các tab khác" + "value" : "Đóng (ESC)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "关闭其他" + "value" : "关闭 (ESC)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "關閉其他" + "value" : "關閉 (ESC)" } } } }, - "Close Result Tab" : { + "Close active connections to apply." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "결과 탭 닫기" + "value" : "적용하려면 활성 연결을 닫으십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sonuç Sekmesini Kapat" + "value" : "Uygulamak için etkin bağlantıları kapatın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đóng tab kết quả" + "value" : "Đóng các kết nối đang hoạt động để áp dụng." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "关闭结果标签页" + "value" : "关闭活跃连接后生效。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "關閉結果分頁" + "value" : "關閉作用中的連線以套用。" } } } }, - "Close Tab" : { + "Close All Tabs" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "탭 닫기" + "value" : "모든 탭 닫기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sekmeyi Kapat" + "value" : "Tüm Sekmeleri Kapat" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đóng tab" + "value" : "Đóng tất cả tab" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "关闭标签页" + "value" : "关闭所有标签页" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "關閉分頁" + "value" : "關閉所有分頁" } } } }, - "Close Tabs for Other Databases" : { + "Close Connection" : { + "comment" : "Text for the menu item that closes the current connection.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다른 데이터베이스의 탭 닫기" + "value" : "연결 닫기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Diğer Veritabanlarının Sekmelerini Kapat" + "value" : "Bağlantıyı Kapat" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đóng tab của các cơ sở dữ liệu khác" + "value" : "Đóng kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "关闭其他数据库的标签页" + "value" : "关闭连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "關閉其他資料庫的分頁" + "value" : "關閉連線" } } } }, - "Close Tabs for Other Schemas" : { + "Close Other Tabs" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다른 스키마의 탭 닫기" + "value" : "다른 탭 닫기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Diğer Şemaların Sekmelerini Kapat" + "value" : "Diğer Sekmeleri Kapat" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đóng tab của các schema khác" + "value" : "Đóng các tab khác" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "关闭其他 Schema 的标签页" + "value" : "关闭其他标签页" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "關閉其他綱要的分頁" - } - } - } - }, - "Close Window" : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "윈도우 닫기" + "value" : "關閉其他分頁" } } } }, - "Close active connections to apply." : { + "Close Others" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "적용하려면 활성 연결을 닫으십시오." + "value" : "다른 항목 닫기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Uygulamak için etkin bağlantıları kapatın." + "value" : "Diğerlerini Kapat" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đóng các kết nối đang hoạt động để áp dụng." + "value" : "Đóng các tab khác" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "关闭活跃连接后生效。" + "value" : "关闭其他" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "關閉作用中的連線以套用。" + "value" : "關閉其他" } } } @@ -24921,243 +25657,223 @@ } } }, - "Close the open Sample connection before resetting it." : { + "Close Result Tab" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "재설정하기 전에 열려 있는 Sample 연결을 닫으십시오." + "value" : "결과 탭 닫기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sıfırlamadan önce açık olan Örnek bağlantısını kapatın." + "value" : "Sonuç Sekmesini Kapat" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đóng kết nối Mẫu đang mở trước khi đặt lại." + "value" : "Đóng tab kết quả" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重置前请先关闭已打开的示例连接。" + "value" : "关闭结果标签页" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重設前請先關閉已開啟的範例連線。" + "value" : "關閉結果分頁" } } } }, - "Close “%@”" : { - "comment" : "The title of a menu item that closes a connection. The argument is the name of the connection.", - "isCommentAutoGenerated" : true, + "Close Tab" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "“%@” 닫기" + "value" : "탭 닫기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "“%@” Bağlantısını Kapat" + "value" : "Sekmeyi Kapat" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đóng “%@”" + "value" : "Đóng tab" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "关闭“%@”" + "value" : "关闭标签页" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "關閉「%@」" + "value" : "關閉分頁" } } } }, - "Closing this tab will discard all unsaved changes." : { - "extractionState" : "stale", + "Close Tabs for Other Databases" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 탭을 닫으면 저장하지 않은 모든 변경 사항이 폐기됩니다." + "value" : "다른 데이터베이스의 탭 닫기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu sekmeyi kapatmak tüm kaydedilmemiş değişiklikleri siler." + "value" : "Diğer Veritabanlarının Sekmelerini Kapat" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đóng tab này sẽ hủy tất cả thay đổi chưa lưu." + "value" : "Đóng tab của các cơ sở dữ liệu khác" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "关闭此标签页将丢弃所有未保存的更改。" + "value" : "关闭其他数据库的标签页" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "關閉此分頁將捨棄所有未儲存的變更。" + "value" : "關閉其他資料庫的分頁" } } } }, - "Cloud Native" : { + "Close Tabs for Other Schemas" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "클라우드 네이티브" + "value" : "다른 스키마의 탭 닫기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bulut tabanlı" + "value" : "Diğer Şemaların Sekmelerini Kapat" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cloud Native" + "value" : "Đóng tab của các schema khác" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "云原生" + "value" : "关闭其他 Schema 的标签页" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "雲端原生" + "value" : "關閉其他綱要的分頁" } } } }, - "Cloud SQL Auth Proxy" : { + "Close the open Sample connection before resetting it." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Cloud SQL Auth Proxy" + "value" : "재설정하기 전에 열려 있는 Sample 연결을 닫으십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Cloud SQL Kimlik Doğrulama Proxy'si" + "value" : "Sıfırlamadan önce açık olan Örnek bağlantısını kapatın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cloud SQL Auth Proxy" + "value" : "Đóng kết nối Mẫu đang mở trước khi đặt lại." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Cloud SQL Auth Proxy" + "value" : "重置前请先关闭已打开的示例连接。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Cloud SQL Auth Proxy" + "value" : "重設前請先關閉已開啟的範例連線。" } } } }, - "Cloud SQL Auth Proxy disconnected. Click to reconnect." : { + "Close the open session for a connection." : { + + }, + "Close Window" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Cloud SQL Auth Proxy의 연결이 끊어졌습니다. 클릭하여 다시 연결하십시오." - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "Cloud SQL Auth Proxy bağlantısı kesildi. Yeniden bağlanmak için tıklayın." - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "Cloud SQL Auth Proxy đã ngắt kết nối. Nhấn để kết nối lại." - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "Cloud SQL Auth Proxy 已断开。点按可重新连接。" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "Cloud SQL Auth Proxy 已中斷連線。點按即可重新連線。" + "value" : "윈도우 닫기" } } } }, - "Cloud SQL Instance" : { + "Closing now stops the run between statements. Statements that already ran stay applied." : { + + }, + "Closing this tab will discard all unsaved changes." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Cloud SQL 인스턴스" + "value" : "이 탭을 닫으면 저장하지 않은 모든 변경 사항이 폐기됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Cloud SQL Örneği" + "value" : "Bu sekmeyi kapatmak tüm kaydedilmemiş değişiklikleri siler." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phiên bản Cloud SQL" + "value" : "Đóng tab này sẽ hủy tất cả thay đổi chưa lưu." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Cloud SQL 实例" + "value" : "关闭此标签页将丢弃所有未保存的更改。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Cloud SQL 執行個體" + "value" : "關閉此分頁將捨棄所有未儲存的變更。" } } } @@ -25196,1008 +25912,1038 @@ } } }, - "Cloudflare Access needs a browser sign-in. Sign in at %@, then reconnect." : { + "Cloud Native" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Cloudflare Access에 브라우저 로그인이 필요합니다. %@에서 로그인한 후 다시 연결하십시오." + "value" : "클라우드 네이티브" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Cloudflare Access tarayıcıyla oturum açmayı gerektiriyor. %@ adresinde oturum açın, sonra yeniden bağlanın." + "value" : "Bulut tabanlı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cloudflare Access cần đăng nhập qua trình duyệt. Đăng nhập tại %@, rồi kết nối lại." + "value" : "Cloud Native" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Cloudflare Access需要浏览器登录。请在%@登录,然后重新连接。" + "value" : "云原生" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Cloudflare Access 需要瀏覽器登入。請在 %@ 登入,然後重新連線。" + "value" : "雲端原生" } } } }, - "Cloudflare Tunnel" : { + "Cloud SQL Auth Proxy" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Cloudflare 터널" + "value" : "Cloud SQL Auth Proxy" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Cloudflare Tüneli" + "value" : "Cloud SQL Kimlik Doğrulama Proxy'si" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cloudflare Tunnel" + "value" : "Cloud SQL Auth Proxy" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Cloudflare隧道" + "value" : "Cloud SQL Auth Proxy" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Cloudflare 隧道" + "value" : "Cloud SQL Auth Proxy" } } } }, - "Cloudflare hostname is required" : { + "Cloud SQL Auth Proxy disconnected. Click to reconnect." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Cloudflare 호스트 이름이 필요합니다" + "value" : "Cloud SQL Auth Proxy의 연결이 끊어졌습니다. 클릭하여 다시 연결하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Cloudflare sunucu adı gerekli" + "value" : "Cloud SQL Auth Proxy bağlantısı kesildi. Yeniden bağlanmak için tıklayın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cần hostname Cloudflare" + "value" : "Cloud SQL Auth Proxy đã ngắt kết nối. Nhấn để kết nối lại." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "需要Cloudflare主机名" + "value" : "Cloud SQL Auth Proxy 已断开。点按可重新连接。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "需要 Cloudflare 主機名稱" + "value" : "Cloud SQL Auth Proxy 已中斷連線。點按即可重新連線。" } } } }, - "Cloudflare tunnel disconnected. Click to reconnect." : { + "Cloud SQL Instance" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Cloudflare 터널의 연결이 끊어졌습니다. 클릭하여 다시 연결하십시오." + "value" : "Cloud SQL 인스턴스" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Cloudflare tüneli kesildi. Yeniden bağlanmak için tıklayın." + "value" : "Cloud SQL Örneği" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cloudflare tunnel đã ngắt kết nối. Bấm để kết nối lại." + "value" : "Phiên bản Cloud SQL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Cloudflare隧道已断开。点按以重新连接。" + "value" : "Cloud SQL 实例" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Cloudflare 隧道已中斷。點按以重新連線。" + "value" : "Cloud SQL 執行個體" } } } }, - "Cluster" : { + "cloud-sql-proxy not found. Install it with `brew install cloud-sql-proxy`, download it above, or choose the binary." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "클러스터" + "value" : "cloud-sql-proxy를 찾을 수 없습니다. `brew install cloud-sql-proxy`로 설치하거나 위에서 다운로드하거나 바이너리를 선택하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Cluster" + "value" : "cloud-sql-proxy bulunamadı. `brew install cloud-sql-proxy` ile yükleyin, yukarıdan indirin veya çalıştırılabilir dosyayı seçin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cluster" + "value" : "Không tìm thấy cloud-sql-proxy. Cài bằng `brew install cloud-sql-proxy`, tải xuống ở trên, hoặc chọn tệp thực thi." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "集群" + "value" : "未找到 cloud-sql-proxy。可用 `brew install cloud-sql-proxy` 安装、在上方下载,或直接选择可执行文件。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "叢集" + "value" : "找不到 cloud-sql-proxy。可用 `brew install cloud-sql-proxy` 安裝、在上方下載,或直接選擇執行檔。" } } } }, - "Cluster Seed Nodes" : { + "cloud-sql-proxy was not found. Install it with `brew install cloud-sql-proxy`, or download it in the Cloud SQL Auth Proxy settings." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "클러스터 시드 노드" + "value" : "cloud-sql-proxy를 찾을 수 없습니다. `brew install cloud-sql-proxy`로 설치하거나 Cloud SQL Auth Proxy 설정에서 다운로드하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Cluster Tohum Düğümleri" + "value" : "cloud-sql-proxy bulunamadı. `brew install cloud-sql-proxy` ile yükleyin veya Cloud SQL Auth Proxy ayarlarından indirin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nút khởi tạo Cluster" + "value" : "Không tìm thấy cloud-sql-proxy. Cài bằng `brew install cloud-sql-proxy`, hoặc tải xuống trong cài đặt Cloud SQL Auth Proxy." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "集群种子节点" + "value" : "未找到 cloud-sql-proxy。可用 `brew install cloud-sql-proxy` 安装,或在 Cloud SQL Auth Proxy 设置中下载。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "叢集種子節點" + "value" : "找不到 cloud-sql-proxy。可用 `brew install cloud-sql-proxy` 安裝,或在 Cloud SQL Auth Proxy 設定中下載。" } } } }, - "Code expired" : { + "Cloudflare Access needs a browser sign-in. Sign in at %@, then reconnect." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "코드 만료됨" + "value" : "Cloudflare Access에 브라우저 로그인이 필요합니다. %@에서 로그인한 후 다시 연결하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kod süresi doldu" + "value" : "Cloudflare Access tarayıcıyla oturum açmayı gerektiriyor. %@ adresinde oturum açın, sonra yeniden bağlanın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mã đã hết hạn" + "value" : "Cloudflare Access cần đăng nhập qua trình duyệt. Đăng nhập tại %@, rồi kết nối lại." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "代码已过期" + "value" : "Cloudflare Access需要浏览器登录。请在%@登录,然后重新连接。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "驗證碼已過期" + "value" : "Cloudflare Access 需要瀏覽器登入。請在 %@ 登入,然後重新連線。" } } } }, - "Code expires in %d seconds" : { + "Cloudflare hostname is required" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "코드가 %d초 후 만료됩니다" + "value" : "Cloudflare 호스트 이름이 필요합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kod %d saniye içinde sona erer" + "value" : "Cloudflare sunucu adı gerekli" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mã hết hạn sau %d giây" + "value" : "Cần hostname Cloudflare" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "代码将在 %d 秒后过期" + "value" : "需要Cloudflare主机名" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "驗證碼將在 %d 秒後過期" + "value" : "需要 Cloudflare 主機名稱" } } } }, - "Collapse All" : { + "Cloudflare Tunnel" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모두 축소" + "value" : "Cloudflare 터널" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tümünü Daralt" + "value" : "Cloudflare Tüneli" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thu gọn tất cả" + "value" : "Cloudflare Tunnel" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "全部折叠" + "value" : "Cloudflare隧道" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "全部收合" + "value" : "Cloudflare 隧道" } } } }, - "Collapse Junction Tables" : { + "Cloudflare tunnel disconnected. Click to reconnect." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "조인 테이블 축소" + "value" : "Cloudflare 터널의 연결이 끊어졌습니다. 클릭하여 다시 연결하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı Tablolarını Daralt" + "value" : "Cloudflare tüneli kesildi. Yeniden bağlanmak için tıklayın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thu gọn bảng trung gian" + "value" : "Cloudflare tunnel đã ngắt kết nối. Bấm để kết nối lại." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "折叠关联表" + "value" : "Cloudflare隧道已断开。点按以重新连接。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "摺疊關聯資料表" + "value" : "Cloudflare 隧道已中斷。點按以重新連線。" } } } }, - "Collapse junction tables into many-to-many relationships" : { + "cloudflared failed to start: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "조인 테이블을 다대다 관계로 축소" + "value" : "cloudflared를 시작하지 못했습니다: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı tablolarını çoktan çoğa ilişkilere daralt" + "value" : "cloudflared başlatılamadı: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thu gọn bảng trung gian thành quan hệ nhiều-nhiều" + "value" : "cloudflared không khởi động được: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将关联表折叠为多对多关系" + "value" : "cloudflared启动失败:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將關聯資料表摺疊為多對多關聯" + "value" : "cloudflared 啟動失敗:%@" } } } }, - "Collation" : { + "cloudflared failed to start." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "정렬 규칙" + "value" : "cloudflared를 시작하지 못했습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Karşılaştırma" + "value" : "cloudflared başlatılamadı." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đối chiếu" + "value" : "cloudflared không khởi động được." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "排序规则" + "value" : "cloudflared启动失败。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "定序" + "value" : "cloudflared 啟動失敗。" } } } }, - "Collation:" : { + "cloudflared not found. Install it with `brew install cloudflared`, or choose the binary above." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "정렬 규칙:" + "value" : "cloudflared를 찾을 수 없습니다. `brew install cloudflared`로 설치하거나 위에서 바이너리를 선택하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Harmanlama:" + "value" : "cloudflared bulunamadı. `brew install cloudflared` ile yükleyin veya yukarıdan ikili dosyayı seçin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đối chiếu:" + "value" : "Không tìm thấy cloudflared. Cài đặt bằng `brew install cloudflared`, hoặc chọn tệp thực thi ở trên." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "排序规则:" + "value" : "未找到cloudflared。请使用`brew install cloudflared`安装,或在上方选择其二进制文件。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "定序:" + "value" : "找不到 cloudflared。請使用 `brew install cloudflared` 安裝,或在上方選擇其二進位檔。" } } } }, - "Colon :" : { + "cloudflared was not found. Install it with `brew install cloudflared`, or set its path in the connection's Cloudflare Tunnel settings." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "콜론 :" + "value" : "cloudflared를 찾을 수 없습니다. `brew install cloudflared`로 설치하거나 연결의 Cloudflare Tunnel 설정에서 경로를 지정하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İki Nokta :" + "value" : "cloudflared bulunamadı. `brew install cloudflared` ile yükleyin veya bağlantının Cloudflare Tüneli ayarlarında yolunu belirtin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dấu hai chấm :" + "value" : "Không tìm thấy cloudflared. Cài đặt bằng `brew install cloudflared`, hoặc đặt đường dẫn trong cài đặt Cloudflare Tunnel của kết nối." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "冒号 :" + "value" : "未找到cloudflared。请使用`brew install cloudflared`安装,或在该连接的Cloudflare隧道设置中设置其路径。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "冒號 :" + "value" : "找不到 cloudflared。請使用 `brew install cloudflared` 安裝,或在該連線的 Cloudflare 隧道設定中設定其路徑。" } } } }, - "Color" : { + "cloudflared was not found. Set its path below first." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "색상" + "value" : "cloudflared를 찾을 수 없습니다. 먼저 아래에서 경로를 설정하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Renk" + "value" : "cloudflared bulunamadı. Önce aşağıda yolunu belirtin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Màu sắc" + "value" : "Không tìm thấy cloudflared. Hãy đặt đường dẫn bên dưới trước." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "颜色" + "value" : "未找到cloudflared。请先在下方设置其路径。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顏色" + "value" : "找不到 cloudflared。請先在下方設定其路徑。" } } } }, - "Color %@" : { + "Cluster" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "색상 %@" + "value" : "클러스터" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Renk %@" + "value" : "Cluster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Màu %@" + "value" : "Cluster" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "颜色 %@" + "value" : "集群" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顏色 %@" + "value" : "叢集" } } } }, - "Colors" : { + "Cluster Seed Nodes" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "색상" + "value" : "클러스터 시드 노드" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Renkler" + "value" : "Cluster Tohum Düğümleri" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Màu sắc" + "value" : "Nút khởi tạo Cluster" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "颜色" + "value" : "集群种子节点" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顏色" + "value" : "叢集種子節點" } } } }, - "Column" : { + "CMD" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열" + "value" : "CMD" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sütun" + "value" : "CMD" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cột" + "value" : "CMD" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "列" + "value" : "CMD" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "欄位" + "value" : "CMD" } } } }, - "Column Details" : { - "extractionState" : "stale", + "Code expired" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열 세부사항" + "value" : "코드 만료됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sütun Ayrıntıları" + "value" : "Kod süresi doldu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chi tiết cột" + "value" : "Mã đã hết hạn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "列详情" + "value" : "代码已过期" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "欄位詳細資料" + "value" : "驗證碼已過期" } } } }, - "Column Name" : { - "extractionState" : "stale", + "Code expires in %d seconds" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열 이름" + "value" : "코드가 %d초 후 만료됩니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sütun Adı" + "value" : "Kod %d saniye içinde sona erer" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên cột" + "value" : "Mã hết hạn sau %d giây" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "列名" + "value" : "代码将在 %d 秒后过期" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "欄位名稱" + "value" : "驗證碼將在 %d 秒後過期" } } } }, - "Column Reorder Failed" : { + "Code folding" : { + + }, + "collapse" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열 순서 변경 실패" + "value" : "접기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sütun Yeniden Sıralama Başarısız" + "value" : "daralt" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sắp xếp lại cột thất bại" + "value" : "thu gọn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "列重排序失败" + "value" : "收起" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "欄位重新排序失敗" + "value" : "收合" } } } }, - "Column count mismatch on line %d: expected %d columns, found %d." : { + "Collapse All" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Column count mismatch on line %1$d: expected %2$d columns, found %3$d." - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$d번째 줄의 열 수가 일치하지 않습니다. 예상: %2$d개, 실제: %3$d개." + "value" : "모두 축소" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%d. satırda sütun sayısı uyuşmuyor: %d sütun bekleniyordu, %d bulundu." + "value" : "Tümünü Daralt" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Số cột không khớp ở dòng %d: cần %d cột, tìm thấy %d." + "value" : "Thu gọn tất cả" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "第%d行列数不匹配:期望%d列,实际%d列。" + "value" : "全部折叠" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "第 %1$d 行欄位數不符:預期 %2$d 個欄位,實際 %3$d 個。" + "value" : "全部收合" } } } }, - "Column count mismatch on line %lld: expected %lld columns, found %lld." : { - "extractionState" : "stale", + "Collapse Junction Tables" : { "localizations" : { - "en" : { + "ko" : { "stringUnit" : { - "state" : "new", - "value" : "Column count mismatch on line %1$lld: expected %2$lld columns, found %3$lld." + "state" : "translated", + "value" : "조인 테이블 축소" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Bağlantı Tablolarını Daralt" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "Thu gọn bảng trung gian" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "折叠关联表" } }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "摺疊關聯資料表" + } + } + } + }, + "Collapse junction tables into many-to-many relationships" : { + "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$lld번째 줄의 열 수가 일치하지 않습니다. 예상: %2$lld개, 실제: %3$lld개." + "value" : "조인 테이블을 다대다 관계로 축소" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satır %lld'de sütun sayısı uyuşmazlığı: %lld sütun bekleniyordu, %lld bulundu." + "value" : "Bağlantı tablolarını çoktan çoğa ilişkilere daralt" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Số cột không khớp ở dòng %1$lld: mong đợi %2$lld cột, tìm thấy %3$lld." + "value" : "Thu gọn bảng trung gian thành quan hệ nhiều-nhiều" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "第 %lld 行列数不匹配:期望 %lld 列,实际 %lld 列。" + "value" : "将关联表折叠为多对多关系" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "第 %1$lld 行欄位數不符:預期 %2$lld 個欄位,實際 %3$lld 個。" + "value" : "將關聯資料表摺疊為多對多關聯" } } } }, - "Column name" : { + "Collation" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열 이름" + "value" : "정렬 규칙" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sütun adı" + "value" : "Karşılaştırma" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên cột" + "value" : "Đối chiếu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "列名" + "value" : "排序规则" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "欄位名稱" + "value" : "定序" } } } }, - "Column names must be unique." : { + "Collation and character set" : { + + }, + "Collation or character set change" : { + + }, + "Collation:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열 이름은 고유해야 합니다." + "value" : "정렬 규칙:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sütun adları benzersiz olmalıdır." + "value" : "Harmanlama:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên cột không được trùng nhau." + "value" : "Đối chiếu:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "列名必须唯一。" + "value" : "排序规则:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "欄位名稱必須是唯一的。" + "value" : "定序:" } } } }, - "Column reorder failed: %@" : { + "Colon :" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열 순서 변경 실패: %@" + "value" : "콜론 :" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sütun yeniden sıralama başarısız: %@" + "value" : "İki Nokta :" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sắp xếp lại cột thất bại: %@" + "value" : "Dấu hai chấm :" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "列重排序失败:%@" + "value" : "冒号 :" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "欄位重新排序失敗:%@" + "value" : "冒號 :" } } } }, - "Column reorder is not supported for this database type" : { + "Color" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 데이터베이스 유형에서는 열 순서 변경을 지원하지 않습니다" + "value" : "색상" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu veritabanı türü için sütun yeniden sıralama desteklenmiyor" + "value" : "Renk" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sắp xếp lại cột không được hỗ trợ cho loại cơ sở dữ liệu này" + "value" : "Màu sắc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此数据库类型不支持列重排序" + "value" : "颜色" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此資料庫類型不支援欄位重新排序" + "value" : "顏色" } } } }, - "Column-oriented OLAP for big data" : { + "Color %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "빅데이터용 열 지향 OLAP" + "value" : "색상 %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Büyük veri için sütun yönelimli OLAP" + "value" : "Renk %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "OLAP dạng cột cho dữ liệu lớn" + "value" : "Màu %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "面向大数据的列式OLAP" + "value" : "颜色 %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "適用於大數據的欄式 OLAP" + "value" : "顏色 %@" } } } }, - "Column: %@" : { + "Colors" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열: %@" + "value" : "색상" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sütun: %@" + "value" : "Renkler" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cột: %@" + "value" : "Màu sắc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "列:%@" + "value" : "颜色" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "欄位:%@" + "value" : "顏色" } } } }, - "Columns" : { + "Column" : { "localizations" : { "ko" : { "stringUnit" : { @@ -26208,7 +26954,7 @@ "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sütunlar" + "value" : "Sütun" } }, "vi" : { @@ -26231,4478 +26977,4487 @@ } } }, - "Columns (comma-separated)" : { - "extractionState" : "stale", + "Column comment" : { + + }, + "Column count mismatch on line %d: expected %d columns, found %d." : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Column count mismatch on line %1$d: expected %2$d columns, found %3$d." + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열(쉼표로 구분)" + "value" : "%1$d번째 줄의 열 수가 일치하지 않습니다. 예상: %2$d개, 실제: %3$d개." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sütunlar (virgülle ayrılmış)" + "value" : "%d. satırda sütun sayısı uyuşmuyor: %d sütun bekleniyordu, %d bulundu." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Các cột (phân tách bằng dấu phẩy)" + "value" : "Số cột không khớp ở dòng %d: cần %d cột, tìm thấy %d." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "列(逗号分隔)" + "value" : "第%d行列数不匹配:期望%d列,实际%d列。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "欄位(以逗號分隔)" + "value" : "第 %1$d 行欄位數不符:預期 %2$d 個欄位,實際 %3$d 個。" } } } }, - "Comfortable" : { + "Column count mismatch on line %lld: expected %lld columns, found %lld." : { + "extractionState" : "stale", "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Column count mismatch on line %1$lld: expected %2$lld columns, found %3$lld." + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "여유롭게" + "value" : "%1$lld번째 줄의 열 수가 일치하지 않습니다. 예상: %2$lld개, 실제: %3$lld개." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Rahat" + "value" : "Satır %lld'de sütun sayısı uyuşmazlığı: %lld sütun bekleniyordu, %lld bulundu." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thoải mái" + "value" : "Số cột không khớp ở dòng %1$lld: mong đợi %2$lld cột, tìm thấy %3$lld." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "舒适" + "value" : "第 %lld 行列数不匹配:期望 %lld 列,实际 %lld 列。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "寬鬆" + "value" : "第 %1$lld 行欄位數不符:預期 %2$lld 個欄位,實際 %3$lld 個。" } } } }, - "Comma ," : { + "Column default expression" : { + + }, + "Column Details" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쉼표 ," + "value" : "열 세부사항" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Virgül ," + "value" : "Sütun Ayrıntıları" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dấu phẩy ," + "value" : "Chi tiết cột" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "逗号 ," + "value" : "列详情" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "逗號 ," + "value" : "欄位詳細資料" } } } }, - "Comma-separated values. Compatible with Excel and most tools." : { + "Column name" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쉼표로 구분된 값입니다. Excel 및 대부분의 도구와 호환됩니다." + "value" : "열 이름" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Virgülle ayrılmış değerler. Excel ve çoğu araçla uyumlu." + "value" : "Sütun adı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giá trị phân cách bằng dấu phẩy. Tương thích với Excel và hầu hết các công cụ." + "value" : "Tên cột" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "逗号分隔值。兼容 Excel 和大多数工具。" + "value" : "列名" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "逗號分隔值。相容於 Excel 與大多數工具。" + "value" : "欄位名稱" } } } }, - "Command Line" : { + "Column Name" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "명령줄" + "value" : "열 이름" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Komut Satırı" + "value" : "Sütun Adı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dòng lệnh" + "value" : "Tên cột" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "命令行" + "value" : "列名" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "命令列" + "value" : "欄位名稱" } } } }, - "Command Preview" : { - "extractionState" : "stale", + "Column names in result order" : { + + }, + "Column names must be unique." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "명령 미리보기" + "value" : "열 이름은 고유해야 합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Komut Önizleme" + "value" : "Sütun adları benzersiz olmalıdır." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xem trước lệnh" + "value" : "Tên cột không được trùng nhau." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "命令预览" + "value" : "列名必须唯一。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "指令預覽" + "value" : "欄位名稱必須是唯一的。" } } } }, - "Command line tool failed: %@" : { + "Column names, matching each row's value order" : { + + }, + "Column order" : { + + }, + "Column order differs. No statement is generated for reordering columns." : { + + }, + "Column Reorder Failed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "명령줄 도구 실패: %@" + "value" : "열 순서 변경 실패" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Komut satırı aracı başarısız oldu: %@" + "value" : "Sütun Yeniden Sıralama Başarısız" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Công cụ dòng lệnh thất bại: %@" + "value" : "Sắp xếp lại cột thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "命令行工具失败:%@" + "value" : "列重排序失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "命令列工具失敗:%@" + "value" : "欄位重新排序失敗" } } } }, - "Comment" : { + "Column reorder failed: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "주석" + "value" : "열 순서 변경 실패: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yorum" + "value" : "Sütun yeniden sıralama başarısız: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ghi chú" + "value" : "Sắp xếp lại cột thất bại: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "注释" + "value" : "列重排序失败:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "註解" + "value" : "欄位重新排序失敗:%@" } } } }, - "Comments" : { + "Column reorder is not supported for this database type" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "주석" + "value" : "이 데이터베이스 유형에서는 열 순서 변경을 지원하지 않습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yorumlar" + "value" : "Bu veritabanı türü için sütun yeniden sıralama desteklenmiyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ghi chú" + "value" : "Sắp xếp lại cột không được hỗ trợ cho loại cơ sở dữ liệu này" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "注释" + "value" : "此数据库类型不支持列重排序" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "註解" + "value" : "此資料庫類型不支援欄位重新排序" } } } }, - "Compact" : { + "Column to filter on" : { + + }, + "Column to sort on" : { + + }, + "Column type, for a column match" : { + + }, + "Column-oriented OLAP for big data" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "컴팩트" + "value" : "빅데이터용 열 지향 OLAP" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kompakt" + "value" : "Büyük veri için sütun yönelimli OLAP" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thu gọn" + "value" : "OLAP dạng cột cho dữ liệu lớn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "紧凑" + "value" : "面向大数据的列式OLAP" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "緊湊" + "value" : "適用於大數據的欄式 OLAP" } } } }, - "Compact Mode" : { + "Column: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "컴팩트 모드" + "value" : "열: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kompakt Mod" + "value" : "Sütun: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chế độ thu gọn" + "value" : "Cột: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "紧凑模式" + "value" : "列:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "緊湊模式" + "value" : "欄位:%@" } } } }, - "Complete Sign In" : { + "Columns" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "로그인 완료" + "value" : "열" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Oturum Açmayı Tamamla" + "value" : "Sütunlar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hoàn tất đăng nhập" + "value" : "Cột" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "完成登录" + "value" : "列" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "完成登入" + "value" : "欄位" } } } }, - "Compress the file using Gzip" : { + "Columns (comma-separated)" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Gzip으로 파일 압축" + "value" : "열(쉼표로 구분)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dosyayı Gzip ile sıkıştır" + "value" : "Sütunlar (virgülle ayrılmış)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nén tệp bằng Gzip" + "value" : "Các cột (phân tách bằng dấu phẩy)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "使用 Gzip 压缩文件" + "value" : "列(逗号分隔)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "使用 Gzip 壓縮檔案" + "value" : "欄位(以逗號分隔)" } } } }, - "Compression failed with exit status %d" : { + "Columns in declaration order" : { + + }, + "Columns to select. Omit for all." : { + + }, + "Columns, indexes, foreign keys and an approximate row count for one table." : { + + }, + "Comfortable" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "압축 실패(종료 상태 %d)" + "value" : "여유롭게" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sıkıştırma %d çıkış koduyla başarısız oldu" + "value" : "Rahat" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nén thất bại với mã thoát %d" + "value" : "Thoải mái" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "压缩失败,退出状态 %d" + "value" : "舒适" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "壓縮失敗,結束狀態 %d" + "value" : "寬鬆" } } } }, - "Condition" : { + "Comma ," : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "조건" + "value" : "쉼표 ," } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Koşul" + "value" : "Virgül ," } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Điều kiện" + "value" : "Dấu phẩy ," } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "条件" + "value" : "逗号 ," } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "條件" + "value" : "逗號 ," } } } }, - "Config Host" : { + "Comma-separated tables to use. All loaded tables when omitted" : { + + }, + "Comma-separated values. Compatible with Excel and most tools." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "구성 호스트" + "value" : "쉼표로 구분된 값입니다. Excel 및 대부분의 도구와 호환됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yapılandırma Sunucusu" + "value" : "Virgülle ayrılmış değerler. Excel ve çoğu araçla uyumlu." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Máy chủ cấu hình" + "value" : "Giá trị phân cách bằng dấu phẩy. Tương thích với Excel và hầu hết các công cụ." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "配置主机" + "value" : "逗号分隔值。兼容 Excel 和大多数工具。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "設定主機" + "value" : "逗號分隔值。相容於 Excel 與大多數工具。" } } } }, - "Configure an AI provider in Settings to start chatting." : { + "Command Line" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "채팅을 시작하려면 설정에서 AI 제공업체를 구성하십시오." + "value" : "명령줄" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sohbet başlatmak için Ayarlar'dan bir yapay zeka sağlayıcısı yapılandırın." + "value" : "Komut Satırı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cấu hình nhà cung cấp AI trong Cài đặt để bắt đầu trò chuyện." + "value" : "Dòng lệnh" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在设置中配置 AI 提供商以开始对话。" + "value" : "命令行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在設定中設定 AI 供應商以開始對話。" + "value" : "命令列" } } } }, - "Configure an active provider to enable inline suggestions." : { + "Command line tool failed: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "인라인 제안을 사용하려면 활성 제공업체를 구성하십시오." + "value" : "명령줄 도구 실패: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satır içi önerileri etkinleştirmek için aktif bir sağlayıcı yapılandırın." + "value" : "Komut satırı aracı başarısız oldu: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cấu hình một nhà cung cấp đang hoạt động để bật gợi ý nội tuyến." + "value" : "Công cụ dòng lệnh thất bại: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "配置活动提供方以启用内联建议。" + "value" : "命令行工具失败:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "設定一個啟用中的供應商以開啟行內建議。" + "value" : "命令列工具失敗:%@" } } } }, - "Confirm" : { + "Command Preview" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "확인" + "value" : "명령 미리보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Onayla" + "value" : "Komut Önizleme" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xác nhận" + "value" : "Xem trước lệnh" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "确认" + "value" : "命令预览" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "確認" + "value" : "指令預覽" } } } }, - "Confirm Destructive Operation" : { + "Comment" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "파괴적 작업 확인" + "value" : "주석" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yıkıcı İşlemi Onayla" + "value" : "Yorum" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xác nhận thao tác phá hủy" + "value" : "Ghi chú" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "确认破坏性操作" + "value" : "注释" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "確認破壞性操作" - } - } - } - }, - "Confirm Writes" : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "쓰기 확인" + "value" : "註解" } } } }, - "Confirm passphrase" : { - "extractionState" : "stale", + "COMMENT" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "패스프레이즈 확인" + "value" : "COMMENT" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Parolayı onayla" + "value" : "COMMENT" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xác nhận cụm mật khẩu" + "value" : "COMMENT" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "确认密码短语" + "value" : "COMMENT" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "確認密碼短語" + "value" : "COMMENT" } } } }, - "Confirmation is required for this operation" : { + "Comments" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 작업은 확인이 필요합니다" + "value" : "주석" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu işlem için onay gerekiyor" + "value" : "Yorumlar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thao tác này yêu cầu xác nhận" + "value" : "Ghi chú" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此操作需要确认" + "value" : "注释" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此操作需要確認" + "value" : "註解" } } } }, - "Connect" : { + "Comments and owners" : { + + }, + "Compact" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결" + "value" : "컴팩트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlan" + "value" : "Kompakt" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối" + "value" : "Thu gọn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接" + "value" : "紧凑" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線" + "value" : "緊湊" } } } }, - "Connect %d Connections" : { + "Compact Mode" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%d개 연결에 접속" + "value" : "컴팩트 모드" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%d Bağlantıyı Bağla" + "value" : "Kompakt Mod" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối %d kết nối" + "value" : "Chế độ thu gọn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接%d个连接" + "value" : "紧凑模式" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線 %d 個連線" + "value" : "緊湊模式" } } } }, - "Connect %lld Connections" : { - "extractionState" : "stale", + "Compare" : { + + }, + "Compare & Sync" : { + + }, + "Compare & Sync Databases…" : { + + }, + "Compare & Sync requires a license" : { + + }, + "Compare %@ and write changes to %@." : { "localizations" : { "en" : { - "variations" : { - "plural" : { - "one" : { - "stringUnit" : { - "state" : "translated", - "value" : "Connect %lld Connection" - } - }, - "other" : { - "stringUnit" : { - "state" : "translated", - "value" : "Connect %lld Connections" - } - } - } - } - }, - "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "%lld개 연결에 접속" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "%lld Bağlantıyı Bağla" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "Kết nối %lld Kết nối" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "连接 %lld 个连接" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "連線 %lld 個連線" + "state" : "new", + "value" : "Compare %1$@ and write changes to %2$@." } } } }, - "Connect Anyway" : { + "Compare lists the tables both sides share. Choose the tables to compare, then press Compare." : { + + }, + "Compare Now" : { + + }, + "Compare structure or data" : { + + }, + "Compare structure or data between two connections and generate the sync script." : { + + }, + "Compare/Sync with…" : { + + }, + "Compared %@. %d differences. Nothing has been written." : { "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "그래도 연결" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "Yine de Bağlan" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "Vẫn kết nối" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "仍然连接" - } - }, - "zh-Hant" : { + "en" : { "stringUnit" : { - "state" : "translated", - "value" : "仍要連線" + "state" : "new", + "value" : "Compared %1$@. %2$d differences. Nothing has been written." } } } }, - "Connect a Client" : { + "Compared columns" : { + + }, + "Comparing only. Nothing has been written." : { + + }, + "Comparison cancelled." : { + + }, + "Comparison operator" : { + + }, + "Comparison Options…" : { + + }, + "Complete Sign In" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "클라이언트 연결" + "value" : "로그인 완료" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bir İstemci Bağla" + "value" : "Oturum Açmayı Tamamla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối client" + "value" : "Hoàn tất đăng nhập" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接客户端" + "value" : "完成登录" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線用戶端" + "value" : "完成登入" } } } }, - "Connect a Client…" : { + "Compress the file using Gzip" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "클라이언트 연결…" + "value" : "Gzip으로 파일 압축" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İstemci Bağla…" + "value" : "Dosyayı Gzip ile sıkıştır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối client…" + "value" : "Nén tệp bằng Gzip" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接客户端…" + "value" : "使用 Gzip 压缩文件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線用戶端…" + "value" : "使用 Gzip 壓縮檔案" } } } }, - "Connect over private IP" : { + "Compression failed with exit status %d" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "비공개 IP로 연결" + "value" : "압축 실패(종료 상태 %d)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Özel IP üzerinden bağlan" + "value" : "Sıkıştırma %d çıkış koduyla başarısız oldu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối qua IP riêng" + "value" : "Nén thất bại với mã thoát %d" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "通过专用 IP 连接" + "value" : "压缩失败,退出状态 %d" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "透過專用 IP 連線" + "value" : "壓縮失敗,結束狀態 %d" } } } }, - "Connect to a saved database" : { + "Condition" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "저장된 데이터베이스에 연결" + "value" : "조건" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kayıtlı bir veritabanına bağlan" + "value" : "Koşul" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối tới cơ sở dữ liệu đã lưu" + "value" : "Điều kiện" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接到已保存的数据库" + "value" : "条件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線到已儲存的資料庫" + "value" : "條件" } } } }, - "Connect to load the database list." : { + "Config Host" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 목록을 불러오려면 연결하십시오." + "value" : "구성 호스트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı listesini yüklemek için bağlanın." + "value" : "Yapılandırma Sunucusu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối để tải danh sách cơ sở dữ liệu." + "value" : "Máy chủ cấu hình" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接以加载数据库列表。" + "value" : "配置主机" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線以載入資料庫清單。" + "value" : "設定主機" } } } }, - "Connect to popular databases with full feature support" : { + "Configure an active provider to enable inline suggestions." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 기능을 지원하는 인기 데이터베이스에 연결" + "value" : "인라인 제안을 사용하려면 활성 제공업체를 구성하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tam özellik desteğiyle popüler veritabanlarına bağlanın" + "value" : "Satır içi önerileri etkinleştirmek için aktif bir sağlayıcı yapılandırın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối với các cơ sở dữ liệu phổ biến với đầy đủ tính năng" + "value" : "Cấu hình một nhà cung cấp đang hoạt động để bật gợi ý nội tuyến." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接主流数据库,功能全面" + "value" : "配置活动提供方以启用内联建议。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線主流資料庫,功能完整支援" + "value" : "設定一個啟用中的供應商以開啟行內建議。" } } } }, - "Connect to the database before starting this operation." : { + "Configure an AI provider in Settings to start chatting." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 작업을 시작하기 전에 데이터베이스에 연결하십시오." + "value" : "채팅을 시작하려면 설정에서 AI 제공업체를 구성하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu işlemi başlatmadan önce veritabanına bağlanın." + "value" : "Sohbet başlatmak için Ayarlar'dan bir yapay zeka sağlayıcısı yapılandırın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối tới cơ sở dữ liệu trước khi bắt đầu thao tác này." + "value" : "Cấu hình nhà cung cấp AI trong Cài đặt để bắt đầu trò chuyện." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "开始此操作前请先连接数据库。" + "value" : "在设置中配置 AI 提供商以开始对话。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開始此操作前請先連線資料庫。" + "value" : "在設定中設定 AI 供應商以開始對話。" } } } }, - "Connect to the internet to verify your license." : { + "Confirm" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Connect to the internet to verify your license." - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "라이선스를 확인하려면 인터넷에 연결하십시오." + "value" : "확인" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Lisansınızı doğrulamak için internete bağlanın." + "value" : "Onayla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối internet để xác minh giấy phép của bạn." + "value" : "Xác nhận" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "请连接互联网以验证您的许可证。" + "value" : "确认" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "請連線到網際網路以驗證你的授權。" + "value" : "確認" } } } }, - "Connected" : { + "Confirm Destructive Operation" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결됨" + "value" : "파괴적 작업 확인" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlı" + "value" : "Yıkıcı İşlemi Onayla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã kết nối" + "value" : "Xác nhận thao tác phá hủy" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已连接" + "value" : "确认破坏性操作" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已連線" + "value" : "確認破壞性操作" } } } }, - "Connected Clients" : { + "Confirm passphrase" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결된 클라이언트" + "value" : "패스프레이즈 확인" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlı İstemciler" + "value" : "Parolayı onayla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Client đã kết nối" + "value" : "Xác nhận cụm mật khẩu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已连接客户端" + "value" : "确认密码短语" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已連線的用戶端" + "value" : "確認密碼短語" } } } }, - "Connected Threads" : { + "Confirm Writes" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결된 스레드" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "Bağlı İş Parçacıkları" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "Luồng đã kết nối" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "已连接线程" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "已連線的執行緒" + "value" : "쓰기 확인" } } } }, - "Connecting" : { + "Confirmation is required for this operation" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 중" + "value" : "이 작업은 확인이 필요합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlanıyor" + "value" : "Bu işlem için onay gerekiyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang kết nối" + "value" : "Thao tác này yêu cầu xác nhận" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接中" + "value" : "此操作需要确认" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線中" + "value" : "此操作需要確認" } } } }, - "Connecting to %@" : { + "Connect" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@에 연결 중" + "value" : "연결" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ bağlantısı kuruluyor" + "value" : "Bağlan" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang kết nối tới %@" + "value" : "Kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在连接%@" + "value" : "连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在連線到 %@" + "value" : "連線" } } } }, - "Connecting to '%@' timed out." : { + "Connect %d Connections" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "'%@' 연결 시간이 초과되었습니다." + "value" : "%d개 연결에 접속" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "'%@' bağlantısı zaman aşımına uğradı." + "value" : "%d Bağlantıyı Bağla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối tới '%@' đã hết thời gian chờ." + "value" : "Kết nối %d kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接'%@'超时。" + "value" : "连接%d个连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線到 '%@' 已逾時。" + "value" : "連線 %d 個連線" } } } }, - "Connecting…" : { + "Connect %lld Connections" : { + "extractionState" : "stale", "localizations" : { + "en" : { + "variations" : { + "plural" : { + "one" : { + "stringUnit" : { + "state" : "translated", + "value" : "Connect %lld Connection" + } + }, + "other" : { + "stringUnit" : { + "state" : "translated", + "value" : "Connect %lld Connections" + } + } + } + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 중…" + "value" : "%lld개 연결에 접속" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlanıyor…" + "value" : "%lld Bağlantıyı Bağla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang kết nối…" + "value" : "Kết nối %lld Kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接中…" + "value" : "连接 %lld 个连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線中…" + "value" : "連線 %lld 個連線" } } } }, - "Connection" : { + "Connect a Client" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결" + "value" : "클라이언트 연결" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı" + "value" : "Bir İstemci Bağla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối" + "value" : "Kết nối client" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接" + "value" : "连接客户端" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線" + "value" : "連線用戶端" } } } }, - "Connection \"%@\" has a script that will run before connecting:\n\n%@" : { + "Connect a Client…" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Connection \"%1$@\" has a script that will run before connecting:\n\n%2$@" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 \"%1$@\"에는 연결 전에 실행될 스크립트가 있습니다:\n\n%2$@" + "value" : "클라이언트 연결…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "\"%@\" bağlantısının bağlanmadan önce çalışacak bir betiği var:\n\n%@" + "value" : "İstemci Bağla…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối \"%@\" có một script sẽ chạy trước khi kết nối:\n\n%@" + "value" : "Kết nối client…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接\"%@\"有一个将在连接前运行的脚本:\n\n%@" + "value" : "连接客户端…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線「%1$@」有一個將在連線前執行的指令碼:\n\n%2$@" + "value" : "連線用戶端…" } } } }, - "Connection Access" : { + "Connect Anyway" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 접근 권한" + "value" : "그래도 연결" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı Erişimi" + "value" : "Yine de Bağlan" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Quyền truy cập kết nối" + "value" : "Vẫn kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接访问权限" + "value" : "仍然连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線存取權限" + "value" : "仍要連線" } } } }, - "Connection Failed" : { + "Connect over private IP" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 실패" + "value" : "비공개 IP로 연결" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı Başarısız" + "value" : "Özel IP üzerinden bağlan" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối thất bại" + "value" : "Kết nối qua IP riêng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接失败" + "value" : "通过专用 IP 连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線失敗" + "value" : "透過專用 IP 連線" } } } }, - "Connection Mode" : { + "Connect to a saved database" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 모드" + "value" : "저장된 데이터베이스에 연결" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı Modu" + "value" : "Kayıtlı bir veritabanına bağlan" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chế độ kết nối" + "value" : "Kết nối tới cơ sở dữ liệu đã lưu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接模式" + "value" : "连接到已保存的数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線模式" + "value" : "連線到已儲存的資料庫" } } } }, - "Connection Not Found" : { - "extractionState" : "stale", + "Connect to load the database list." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결을 찾을 수 없음" + "value" : "데이터베이스 목록을 불러오려면 연결하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı Bulunamadı" + "value" : "Veritabanı listesini yüklemek için bağlanın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy kết nối" + "value" : "Kết nối để tải danh sách cơ sở dữ liệu." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未找到连接" + "value" : "连接以加载数据库列表。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "找不到連線" + "value" : "連線以載入資料庫清單。" } } } }, - "Connection Options" : { + "Connect to popular databases with full feature support" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 옵션" + "value" : "모든 기능을 지원하는 인기 데이터베이스에 연결" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı seçenekleri" + "value" : "Tam özellik desteğiyle popüler veritabanlarına bağlanın" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tùy chọn kết nối" + "value" : "Kết nối với các cơ sở dữ liệu phổ biến với đầy đủ tính năng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接选项" + "value" : "连接主流数据库,功能全面" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線選項" + "value" : "連線主流資料庫,功能完整支援" } } } }, - "Connection Status" : { - "extractionState" : "stale", + "Connect to the database before starting this operation." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 상태" + "value" : "이 작업을 시작하기 전에 데이터베이스에 연결하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı Durumu" + "value" : "Bu işlemi başlatmadan önce veritabanına bağlanın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trạng thái kết nối" + "value" : "Kết nối tới cơ sở dữ liệu trước khi bắt đầu thao tác này." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接状态" + "value" : "开始此操作前请先连接数据库。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線狀態" + "value" : "開始此操作前請先連線資料庫。" } } } }, - "Connection Switcher" : { - "extractionState" : "stale", + "Connect to the internet to verify your license." : { "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "연결 전환기" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "Bağlantı Değiştirici" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "Chuyển đổi kết nối" - } - }, - "zh-Hans" : { + "en" : { "stringUnit" : { "state" : "translated", - "value" : "切换连接" + "value" : "Connect to the internet to verify your license." } }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "切換連線" - } - } - } - }, - "Connection Test Failed" : { - "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 테스트 실패" + "value" : "라이선스를 확인하려면 인터넷에 연결하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı Testi Başarısız" + "value" : "Lisansınızı doğrulamak için internete bağlanın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kiểm tra kết nối thất bại" + "value" : "Kết nối internet để xác minh giấy phép của bạn." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接测试失败" + "value" : "请连接互联网以验证您的许可证。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線測試失敗" + "value" : "請連線到網際網路以驗證你的授權。" } } } }, - "Connection Type" : { + "connected" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 유형" + "value" : "연결됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı Türü" + "value" : "bağlı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Loại kết nối" + "value" : "đã kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接类型" + "value" : "已连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線類型" + "value" : "已連線" } } } }, - "Connection URL" : { + "Connected" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 URL" + "value" : "연결됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı URL'si" + "value" : "Bağlı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "URL kết nối" + "value" : "Đã kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接 URL" + "value" : "已连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線 URL" + "value" : "已連線" } } } }, - "Connection URL cannot be empty" : { + "Connected Clients" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 URL은 비워 둘 수 없습니다" + "value" : "연결된 클라이언트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı URL'si boş olamaz" + "value" : "Bağlı İstemciler" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "URL kết nối không được để trống" + "value" : "Client đã kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接 URL 不能为空" + "value" : "已连接客户端" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線 URL 不能為空" + "value" : "已連線的用戶端" } } } }, - "Connection URL must include a host" : { + "Connected Threads" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 URL에 호스트가 포함되어야 합니다" + "value" : "연결된 스레드" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı URL'si bir sunucu içermeli" + "value" : "Bağlı İş Parçacıkları" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "URL kết nối phải bao gồm host" + "value" : "Luồng đã kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接 URL 必须包含主机" + "value" : "已连接线程" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線 URL 必須包含主機" - } - } - } - }, - "Connection failed: %@" : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "연결 실패: %@" + "value" : "已連線的執行緒" } } } }, - "Connection is read only for external clients" : { + "connecting" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "외부 클라이언트에서 이 연결은 읽기 전용입니다" + "value" : "연결 중" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı dış istemciler için salt okunur" + "value" : "bağlanıyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối chỉ đọc với client bên ngoài" + "value" : "đang kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接对外部客户端为只读" + "value" : "正在连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線對外部用戶端為唯讀" + "value" : "正在連線" } } } }, - "Connection is read-only for external clients" : { + "Connecting" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "외부 클라이언트에서 이 연결은 읽기 전용입니다" + "value" : "연결 중" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı harici istemciler için salt okunurdur" + "value" : "Bağlanıyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối ở chế độ chỉ đọc với client bên ngoài" + "value" : "Đang kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "对外部客户端而言,该连接为只读" + "value" : "连接中" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此連線對外部用戶端為唯讀" + "value" : "連線中" } } } }, - "Connection is read-only. Destructive operations are not permitted." : { - "extractionState" : "stale", + "Connecting to '%@' timed out." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결이 읽기 전용입니다. 파괴적 작업은 허용되지 않습니다." + "value" : "'%@' 연결 시간이 초과되었습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı salt okunur. Yıkıcı işlemlere izin verilmez." + "value" : "'%@' bağlantısı zaman aşımına uğradı." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối chỉ đọc. Không cho phép các thao tác phá hủy." + "value" : "Kết nối tới '%@' đã hết thời gian chờ." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接为只读。不允许破坏性操作。" + "value" : "连接'%@'超时。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線為唯讀。不允許破壞性操作。" + "value" : "連線到 '%@' 已逾時。" } } } }, - "Connection is read-only. Set safe mode to Confirm Writes or higher to allow this tool." : { - "extractionState" : "stale", + "Connecting to %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결이 읽기 전용입니다. 이 도구를 사용하려면 안전 모드를 쓰기 확인 이상으로 설정하십시오." + "value" : "%@에 연결 중" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı salt okunur. Bu araca izin vermek için güvenli modu Yazmaları Onayla veya üstüne ayarlayın." + "value" : "%@ bağlantısı kuruluyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối chỉ đọc. Đặt chế độ an toàn thành Xác nhận ghi hoặc cao hơn để cho phép công cụ này." + "value" : "Đang kết nối tới %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接为只读。请将安全模式设为\"确认写入\"或更高级别以允许此工具。" + "value" : "正在连接%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線為唯讀。請將安全模式設為「確認寫入」或更高層級以允許此工具。" + "value" : "正在連線到 %@" } } } }, - "Connection limit" : { + "Connecting…" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 제한" + "value" : "연결 중…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı limiti" + "value" : "Bağlanıyor…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giới hạn kết nối" + "value" : "Đang kết nối…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接数限制" + "value" : "连接中…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線數上限" + "value" : "連線中…" } } } }, - "Connection lost" : { - "extractionState" : "stale", + "Connection" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 끊김" + "value" : "연결" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı kesildi" + "value" : "Bağlantı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mất kết nối" + "value" : "Kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接丢失" + "value" : "连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線中斷" + "value" : "連線" } } } }, - "Connection name" : { + "Connection \"%@\" has a script that will run before connecting:\n\n%@" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Connection \"%1$@\" has a script that will run before connecting:\n\n%2$@" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 이름" + "value" : "연결 \"%1$@\"에는 연결 전에 실행될 스크립트가 있습니다:\n\n%2$@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı adı" + "value" : "\"%@\" bağlantısının bağlanmadan önce çalışacak bir betiği var:\n\n%@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên kết nối" + "value" : "Kết nối \"%@\" có một script sẽ chạy trước khi kết nối:\n\n%@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接名称" + "value" : "连接\"%@\"有一个将在连接前运行的脚本:\n\n%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線名稱" + "value" : "連線「%1$@」有一個將在連線前執行的指令碼:\n\n%2$@" } } } }, - "Connection name is required" : { + "Connection Access" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 이름이 필요합니다" + "value" : "연결 접근 권한" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı adı gerekli" + "value" : "Bağlantı Erişimi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cần tên kết nối" + "value" : "Quyền truy cập kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接名称为必填项" + "value" : "连接访问权限" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線名稱為必填項目" + "value" : "連線存取權限" } } } }, - "Connection not found" : { + "Connection display name" : { + + }, + "connection failed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결을 찾을 수 없습니다" + "value" : "연결 실패" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı bulunamadı" + "value" : "bağlantı başarısız" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy kết nối" + "value" : "kết nối thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未找到连接" + "value" : "连接失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "找不到連線" + "value" : "連線失敗" } } } }, - "Connection policy" : { + "Connection Failed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 정책" + "value" : "연결 실패" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı politikası" + "value" : "Bağlantı Başarısız" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chính sách kết nối" + "value" : "Kết nối thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接策略" + "value" : "连接失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線原則" + "value" : "連線失敗" } } } }, - "Connection status" : { - "comment" : "Toolbar item tooltip for the status section of the toolbar.", - "isCommentAutoGenerated" : true, + "Connection failed: %@" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 상태" + "value" : "연결 실패: %@" + } + } + } + }, + "Connection is read only for external clients" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "외부 클라이언트에서 이 연결은 읽기 전용입니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı durumu" + "value" : "Bağlantı dış istemciler için salt okunur" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trạng thái kết nối" + "value" : "Kết nối chỉ đọc với client bên ngoài" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接状态" + "value" : "连接对外部客户端为只读" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線狀態" + "value" : "連線對外部用戶端為唯讀" } } } }, - "Connection succeeded" : { + "Connection is read-only for external clients" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 성공" + "value" : "외부 클라이언트에서 이 연결은 읽기 전용입니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı başarılı" + "value" : "Bağlantı harici istemciler için salt okunurdur" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối thành công" + "value" : "Kết nối ở chế độ chỉ đọc với client bên ngoài" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接成功" + "value" : "对外部客户端而言,该连接为只读" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線成功" + "value" : "此連線對外部用戶端為唯讀" } } } }, - "Connection successful" : { + "Connection is read-only. Destructive operations are not permitted." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 성공" + "value" : "연결이 읽기 전용입니다. 파괴적 작업은 허용되지 않습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı başarılı" + "value" : "Bağlantı salt okunur. Yıkıcı işlemlere izin verilmez." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối thành công" + "value" : "Kết nối chỉ đọc. Không cho phép các thao tác phá hủy." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接成功" + "value" : "连接为只读。不允许破坏性操作。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線成功" + "value" : "連線為唯讀。不允許破壞性操作。" } } } }, - "Connection test failed" : { + "Connection is read-only. Set safe mode to Confirm Writes or higher to allow this tool." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 테스트 실패" + "value" : "연결이 읽기 전용입니다. 이 도구를 사용하려면 안전 모드를 쓰기 확인 이상으로 설정하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı testi başarısız" + "value" : "Bağlantı salt okunur. Bu araca izin vermek için güvenli modu Yazmaları Onayla veya üstüne ayarlayın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kiểm tra kết nối thất bại" + "value" : "Kết nối chỉ đọc. Đặt chế độ an toàn thành Xác nhận ghi hoặc cao hơn để cho phép công cụ này." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接测试失败" + "value" : "连接为只读。请将安全模式设为\"确认写入\"或更高级别以允许此工具。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線測試失敗" + "value" : "連線為唯讀。請將安全模式設為「確認寫入」或更高層級以允許此工具。" } } } }, - "Connection: %@" : { + "Connection it ran on" : { + + }, + "Connection limit" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결: %@" + "value" : "연결 제한" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı: %@" + "value" : "Bağlantı limiti" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối: %@" + "value" : "Giới hạn kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接:%@" + "value" : "连接数限制" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線:%@" + "value" : "連線數上限" } } } }, - "Connection: %@, %@" : { + "Connection lost" : { + "extractionState" : "stale", "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Connection: %1$@, %2$@" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결: %1$@, %2$@" + "value" : "연결 끊김" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı: %1$@, %2$@" + "value" : "Bağlantı kesildi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối: %1$@, %2$@" + "value" : "Mất kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接:%1$@,%2$@" + "value" : "连接丢失" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線:%1$@, %2$@" + "value" : "連線中斷" } } } }, - "Connections" : { + "Connection Mode" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결" + "value" : "연결 모드" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantılar" + "value" : "Bağlantı Modu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối" + "value" : "Chế độ kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接" + "value" : "连接模式" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線" + "value" : "連線模式" } } } }, - "Connections found in %@" : { + "Connection name" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@에서 찾은 연결" + "value" : "연결 이름" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ içinde bulunan bağlantılar" + "value" : "Bağlantı adı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Các kết nối tìm thấy trong %@" + "value" : "Tên kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在 %@ 中找到的连接" + "value" : "连接名称" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在 %@ 中找到的連線" + "value" : "連線名稱" } } } }, - "Connections:" : { + "Connection name is required" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결:" + "value" : "연결 이름이 필요합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantılar:" + "value" : "Bağlantı adı gerekli" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối:" + "value" : "Cần tên kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接:" + "value" : "连接名称为必填项" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線:" + "value" : "連線名稱為必填項目" } } } }, - "Constraint name" : { - "extractionState" : "stale", + "Connection not found" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "제약 조건 이름" + "value" : "연결을 찾을 수 없습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kısıt adı" + "value" : "Bağlantı bulunamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên ràng buộc" + "value" : "Không tìm thấy kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "约束名称" + "value" : "未找到连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "約束名稱" + "value" : "找不到連線" } } } }, - "Container service name, may be unreachable" : { + "Connection Not Found" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "컨테이너 서비스 이름이므로 연결할 수 없을 수 있습니다" + "value" : "연결을 찾을 수 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Container servis adı, erişilemeyebilir" + "value" : "Bağlantı Bulunamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên dịch vụ container, có thể không truy cập được" + "value" : "Không tìm thấy kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "容器服务名称,可能无法访问" + "value" : "未找到连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "容器服務名稱,可能無法連線" + "value" : "找不到連線" } } } }, - "Context" : { + "Connection Options" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "컨텍스트" + "value" : "연결 옵션" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlam" + "value" : "Bağlantı seçenekleri" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ngữ cảnh" + "value" : "Tùy chọn kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "上下文" + "value" : "连接选项" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "內容脈絡" + "value" : "連線選項" } } } }, - "Continue" : { + "Connection policy" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "계속" + "value" : "연결 정책" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Devam" + "value" : "Bağlantı politikası" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tiếp tục" + "value" : "Chính sách kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "继续" + "value" : "连接策略" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "繼續" + "value" : "連線原則" } } } }, - "Control Background" : { + "Connection status" : { + "comment" : "Toolbar item tooltip for the status section of the toolbar.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "컨트롤 배경" + "value" : "연결 상태" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kontrol Arka Planı" + "value" : "Bağlantı durumu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nền điều khiển" + "value" : "Trạng thái kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "控件背景" + "value" : "连接状态" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "控制項背景" + "value" : "連線狀態" } } } }, - "Controls how external clients (Raycast, Cursor, Claude Desktop) access this connection. Tokens cannot exceed this level even with full-access scope." : { + "Connection Status" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "외부 클라이언트(Raycast, Cursor, Claude Desktop)가 이 연결에 접근하는 방식을 제어합니다. full-access 범위의 토큰도 이 수준을 초과할 수 없습니다." + "value" : "연결 상태" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Harici istemcilerin (Raycast, Cursor, Claude Desktop) bu bağlantıya nasıl erişeceğini kontrol eder. Token'lar tam erişim kapsamına sahip olsa bile bu düzeyi aşamaz." + "value" : "Bağlantı Durumu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kiểm soát cách các client bên ngoài (Raycast, Cursor, Claude Desktop) truy cập kết nối này. Token không thể vượt quá mức này kể cả khi có phạm vi truy cập đầy đủ." + "value" : "Trạng thái kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "控制外部客户端(Raycast、Cursor、Claude Desktop)如何访问该连接。即使具有完全访问权限,令牌也无法超出此级别。" + "value" : "连接状态" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "控制外部用戶端(Raycast、Cursor、Claude Desktop)如何存取此連線。即使具有完整存取範圍,權杖也無法超出此層級。" + "value" : "連線狀態" } } } }, - "Conversation History" : { - "extractionState" : "stale", + "Connection succeeded" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "대화 기록" + "value" : "연결 성공" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sohbet Geçmişi" + "value" : "Bağlantı başarılı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lịch sử hội thoại" + "value" : "Kết nối thành công" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "对话历史" + "value" : "连接成功" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "對話記錄" + "value" : "連線成功" } } } }, - "Conversation history" : { + "Connection successful" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "대화 기록" + "value" : "연결 성공" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Konuşma geçmişi" + "value" : "Bağlantı başarılı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lịch sử hội thoại" + "value" : "Kết nối thành công" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "对话历史" + "value" : "连接成功" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "對話記錄" + "value" : "連線成功" } } } }, - "Convert NULL to EMPTY" : { + "Connection Switcher" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "NULL을 EMPTY로 변환" + "value" : "연결 전환기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "NULL'u BOŞ yap" + "value" : "Bağlantı Değiştirici" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển NULL thành RỖNG" + "value" : "Chuyển đổi kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将 NULL 转换为空" + "value" : "切换连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將 NULL 轉換為空" + "value" : "切換連線" } } } }, - "Convert NULL to empty" : { - "extractionState" : "stale", + "Connection test failed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "NULL을 빈 값으로 변환" + "value" : "연결 테스트 실패" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "NULL'u boş yap" + "value" : "Bağlantı testi başarısız" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển NULL thành rỗng" + "value" : "Kiểm tra kết nối thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将 NULL 转换为空" + "value" : "连接测试失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將 NULL 轉換為空" + "value" : "連線測試失敗" } } } }, - "Convert line break to space" : { - "extractionState" : "stale", + "Connection Test Failed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "줄바꿈을 공백으로 변환" + "value" : "연결 테스트 실패" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satır sonunu boşluğa çevir" + "value" : "Bağlantı Testi Başarısız" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển xuống dòng thành dấu cách" + "value" : "Kiểm tra kết nối thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将换行转换为空格" + "value" : "连接测试失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將換行轉換為空格" + "value" : "連線測試失敗" } } } }, - "Coordination & Config" : { + "Connection the tab belongs to" : { + + }, + "Connection the transaction runs on" : { + + }, + "Connection the window shows" : { + + }, + "Connection Type" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "조정 및 구성" + "value" : "연결 유형" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Koordinasyon ve yapılandırma" + "value" : "Bağlantı Türü" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Điều phối & cấu hình" + "value" : "Loại kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "协调与配置" + "value" : "连接类型" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "協調與設定" + "value" : "連線類型" } } } }, - "Copied" : { + "Connection URL" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "복사됨" + "value" : "연결 URL" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kopyalandı" + "value" : "Bağlantı URL'si" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã sao chép" + "value" : "URL kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已复制" + "value" : "连接 URL" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已複製" + "value" : "連線 URL" } } } }, - "Copied to clipboard" : { + "Connection URL cannot be empty" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "클립보드에 복사됨" + "value" : "연결 URL은 비워 둘 수 없습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Panoya kopyalandı" + "value" : "Bağlantı URL'si boş olamaz" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã sao chép" + "value" : "URL kết nối không được để trống" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已复制到剪贴板" + "value" : "连接 URL 不能为空" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已複製到剪貼簿" + "value" : "連線 URL 不能為空" } } } }, - "Copied!" : { + "Connection URL must include a host" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "복사됨!" + "value" : "연결 URL에 호스트가 포함되어야 합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kopyalandı!" + "value" : "Bağlantı URL'si bir sunucu içermeli" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã sao chép!" + "value" : "URL kết nối phải bao gồm host" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已复制!" + "value" : "连接 URL 必须包含主机" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已複製!" + "value" : "連線 URL 必須包含主機" } } } }, - "Copilot language server binary not found" : { + "Connection UUID" : { + + }, + "Connection: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Copilot 언어 서버 바이너리를 찾을 수 없습니다" + "value" : "연결: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Copilot dil sunucusu ikili dosyası bulunamadı" + "value" : "Bağlantı: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy binary của Copilot language server" + "value" : "Kết nối: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未找到 Copilot 语言服务器可执行文件" + "value" : "连接:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "找不到 Copilot 語言伺服器執行檔" + "value" : "連線:%@" } } } }, - "Copilot server is not running" : { + "Connection: %@, %@" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Connection: %1$@, %2$@" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Copilot 서버가 실행 중이 아닙니다" + "value" : "연결: %1$@, %2$@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Copilot sunucusu çalışmıyor" + "value" : "Bağlantı: %1$@, %2$@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Copilot server không chạy" + "value" : "Kết nối: %1$@, %2$@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Copilot 服务器未运行" + "value" : "连接:%1$@,%2$@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Copilot 伺服器未執行" + "value" : "連線:%1$@, %2$@" } } } }, - "Copilot subscription inactive" : { + "Connections" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Copilot 구독이 비활성 상태입니다" + "value" : "연결" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Copilot aboneliği aktif değil" + "value" : "Bağlantılar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gói Copilot không hoạt động" + "value" : "Kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Copilot 订阅未激活" + "value" : "连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Copilot 訂閱未啟用" + "value" : "連線" } } } }, - "Copy" : { + "Connections found in %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "복사" + "value" : "%@에서 찾은 연결" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kopyala" + "value" : "%@ içinde bulunan bağlantılar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép" + "value" : "Các kết nối tìm thấy trong %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制" + "value" : "在 %@ 中找到的连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製" + "value" : "在 %@ 中找到的連線" } } } }, - "Copy %lld Names" : { - "comment" : "A button that copies the names of the selected containers to the clipboard.", - "isCommentAutoGenerated" : true, + "Connections the client may use, ordered by name" : { + + }, + "Connections:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이름 %lld개 복사" + "value" : "연결:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%lld Adı Kopyala" + "value" : "Bağlantılar:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép %lld tên" + "value" : "Kết nối:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制 %lld 个名称" + "value" : "连接:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製 %lld 個名稱" + "value" : "連線:" } } } }, - "Copy All" : { + "Constraint name" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모두 복사" + "value" : "제약 조건 이름" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tümünü Kopyala" + "value" : "Kısıt adı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép tất cả" + "value" : "Tên ràng buộc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "全部复制" + "value" : "约束名称" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "全部複製" + "value" : "約束名稱" } } } }, - "Copy As" : { + "Container service name, may be unreachable" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "형식으로 복사" + "value" : "컨테이너 서비스 이름이므로 연결할 수 없을 수 있습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Farklı Kopyala" + "value" : "Container servis adı, erişilemeyebilir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép dưới dạng" + "value" : "Tên dịch vụ container, có thể không truy cập được" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制为" + "value" : "容器服务名称,可能无法访问" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製為" + "value" : "容器服務名稱,可能無法連線" } } } }, - "Copy Column Name" : { + "contains" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열 이름 복사" + "value" : "포함" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sütun Adını Kopyala" + "value" : "içerir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép tên cột" + "value" : "chứa" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制列名" + "value" : "包含" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製欄位名稱" + "value" : "包含" } } } }, - "Copy Column Values" : { + "Context" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열 값 복사" + "value" : "컨텍스트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sütun Değerlerini Kopyala" + "value" : "Bağlam" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép giá trị cột" + "value" : "Ngữ cảnh" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制列值" + "value" : "上下文" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製欄位值" + "value" : "內容脈絡" } } } }, - "Copy Connection ID" : { + "Context id" : { + + }, + "Context label" : { + + }, + "Continue" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 ID 복사" + "value" : "계속" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı Kimliğini Kopyala" + "value" : "Devam" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép ID kết nối" + "value" : "Tiếp tục" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制连接ID" + "value" : "继续" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製連線 ID" + "value" : "繼續" } } } }, - "Copy Connection String" : { + "Control Background" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 문자열 복사" + "value" : "컨트롤 배경" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı Dizgisini Kopyala" + "value" : "Kontrol Arka Planı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép connection string" + "value" : "Nền điều khiển" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制连接字符串" + "value" : "控件背景" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製連線字串" + "value" : "控制項背景" } } } }, - "Copy Definition" : { + "Controls how external clients (Raycast, Cursor, Claude Desktop) access this connection. Tokens cannot exceed this level even with full-access scope." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "정의 복사" + "value" : "외부 클라이언트(Raycast, Cursor, Claude Desktop)가 이 연결에 접근하는 방식을 제어합니다. full-access 범위의 토큰도 이 수준을 초과할 수 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tanımı Kopyala" + "value" : "Harici istemcilerin (Raycast, Cursor, Claude Desktop) bu bağlantıya nasıl erişeceğini kontrol eder. Token'lar tam erişim kapsamına sahip olsa bile bu düzeyi aşamaz." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép định nghĩa" + "value" : "Kiểm soát cách các client bên ngoài (Raycast, Cursor, Claude Desktop) truy cập kết nối này. Token không thể vượt quá mức này kể cả khi có phạm vi truy cập đầy đủ." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制定义" + "value" : "控制外部客户端(Raycast、Cursor、Claude Desktop)如何访问该连接。即使具有完全访问权限,令牌也无法超出此级别。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製定義" + "value" : "控制外部用戶端(Raycast、Cursor、Claude Desktop)如何存取此連線。即使具有完整存取範圍,權杖也無法超出此層級。" } } } }, - "Copy Details" : { + "Conversation history" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "세부사항 복사" + "value" : "대화 기록" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ayrıntıları Kopyala" + "value" : "Konuşma geçmişi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép chi tiết" + "value" : "Lịch sử hội thoại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制详细信息" + "value" : "对话历史" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製詳細資訊" + "value" : "對話記錄" } } } }, - "Copy Diagnostic Info" : { + "Conversation History" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "진단 정보 복사" + "value" : "대화 기록" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tanılama Bilgilerini Kopyala" + "value" : "Sohbet Geçmişi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép thông tin chẩn đoán" + "value" : "Lịch sử hội thoại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制诊断信息" + "value" : "对话历史" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製診斷資訊" + "value" : "對話記錄" } } } }, - "Copy EXPLAIN output to clipboard" : { + "Convert line break to space" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "EXPLAIN 출력을 클립보드에 복사" + "value" : "줄바꿈을 공백으로 변환" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "EXPLAIN çıktısını panoya kopyala" + "value" : "Satır sonunu boşluğa çevir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép kết quả EXPLAIN vào clipboard" + "value" : "Chuyển xuống dòng thành dấu cách" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将 EXPLAIN 输出复制到剪贴板" + "value" : "将换行转换为空格" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將 EXPLAIN 輸出複製到剪貼簿" + "value" : "將換行轉換為空格" } } } }, - "Copy Errors to Clipboard" : { + "Convert NULL to empty" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "오류를 클립보드에 복사" + "value" : "NULL을 빈 값으로 변환" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Hataları Panoya Kopyala" + "value" : "NULL'u boş yap" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép lỗi vào clipboard" + "value" : "Chuyển NULL thành rỗng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制错误到剪贴板" + "value" : "将 NULL 转换为空" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將錯誤複製到剪貼簿" + "value" : "將 NULL 轉換為空" } } } }, - "Copy ID" : { + "Convert NULL to EMPTY" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "ID 복사" + "value" : "NULL을 EMPTY로 변환" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "ID Kopyala" + "value" : "NULL'u BOŞ yap" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép ID" + "value" : "Chuyển NULL thành RỖNG" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制 ID" + "value" : "将 NULL 转换为空" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製 ID" + "value" : "將 NULL 轉換為空" } } } }, - "Copy JSON" : { + "Coordination & Config" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "JSON 복사" + "value" : "조정 및 구성" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "JSON Kopyala" + "value" : "Koordinasyon ve yapılandırma" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép JSON" + "value" : "Điều phối & cấu hình" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制 JSON" + "value" : "协调与配置" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製 JSON" + "value" : "協調與設定" } } } }, - "Copy Key" : { + "Copied" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "키 복사" + "value" : "복사됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Anahtarı Kopyala" + "value" : "Kopyalandı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép khoá" + "value" : "Đã sao chép" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制键" + "value" : "已复制" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製鍵" + "value" : "已複製" } } } }, - "Copy Key Path" : { + "Copied to clipboard" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "키 경로 복사" + "value" : "클립보드에 복사됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Anahtar Yolunu Kopyala" + "value" : "Panoya kopyalandı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép đường dẫn khoá" + "value" : "Đã sao chép" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制键路径" + "value" : "已复制到剪贴板" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製鍵路徑" + "value" : "已複製到剪貼簿" } } } }, - "Copy Name" : { + "Copied!" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이름 복사" + "value" : "복사됨!" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Adı Kopyala" + "value" : "Kopyalandı!" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép tên" + "value" : "Đã sao chép!" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制名称" + "value" : "已复制!" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製名稱" + "value" : "已複製!" } } } }, - "Copy Namespace Prefix" : { - "comment" : "A button that copies the namespace prefix to the clipboard.", - "isCommentAutoGenerated" : true, + "Copilot language server binary not found" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "네임스페이스 접두사 복사" + "value" : "Copilot 언어 서버 바이너리를 찾을 수 없습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Namespace Önekini Kopyala" + "value" : "Copilot dil sunucusu ikili dosyası bulunamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép tiền tố namespace" + "value" : "Không tìm thấy binary của Copilot language server" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制命名空间前缀" + "value" : "未找到 Copilot 语言服务器可执行文件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製命名空間前綴" + "value" : "找不到 Copilot 語言伺服器執行檔" } } } }, - "Copy Node Details" : { - "comment" : "A tooltip that describes the action of copying the details of a query plan node to the clipboard.", - "isCommentAutoGenerated" : true, + "Copilot server is not running" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "노드 세부사항 복사" + "value" : "Copilot 서버가 실행 중이 아닙니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Düğüm Ayrıntılarını Kopyala" + "value" : "Copilot sunucusu çalışmıyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép chi tiết nút" + "value" : "Copilot server không chạy" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制节点详情" + "value" : "Copilot 服务器未运行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製節點詳細資訊" + "value" : "Copilot 伺服器未執行" } } } }, - "Copy Operation" : { - "comment" : "A button that copies the operation of a query plan node to the clipboard.", - "isCommentAutoGenerated" : true, + "Copilot subscription inactive" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연산 복사" + "value" : "Copilot 구독이 비활성 상태입니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İşlemi Kopyala" + "value" : "Copilot aboneliği aktif değil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép thao tác" + "value" : "Gói Copilot không hoạt động" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制操作" + "value" : "Copilot 订阅未激活" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製操作" + "value" : "Copilot 訂閱未啟用" } } } }, - "Copy Path" : { + "Copy" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "경로 복사" + "value" : "복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yolu Kopyala" + "value" : "Kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép đường dẫn" + "value" : "Sao chép" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制路径" + "value" : "复制" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製路徑" + "value" : "複製" } } } }, - "Copy Privileges" : { + "Copy %lld Names" : { + "comment" : "A button that copies the names of the selected containers to the clipboard.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "권한 복사" + "value" : "이름 %lld개 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yetkileri Kopyala" + "value" : "%lld Adı Kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép quyền" + "value" : "Sao chép %lld tên" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制权限" + "value" : "复制 %lld 个名称" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製權限" + "value" : "複製 %lld 個名稱" } } } }, - "Copy Privileges From…" : { + "Copy All" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다음에서 권한 복사…" + "value" : "모두 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yetkileri Şuradan Kopyala…" + "value" : "Tümünü Kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép quyền từ…" + "value" : "Sao chép tất cả" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "从以下项复制权限…" + "value" : "全部复制" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "從以下項目複製權限…" + "value" : "全部複製" } } } }, - "Copy Privileges from %@" : { + "Copy as" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@에서 권한 복사" + "value" : "다음 형식으로 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yetkileri %@ Kaynağından Kopyala" + "value" : "Şu şekilde kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép quyền từ %@" + "value" : "Sao chép dạng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "从 %@ 复制权限" + "value" : "复制为" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "從 %@ 複製權限" + "value" : "複製為" } } } }, - "Copy Query" : { + "Copy As" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 복사" + "value" : "형식으로 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorguyu Kopyala" + "value" : "Farklı Kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép truy vấn" + "value" : "Sao chép dưới dạng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制查询" + "value" : "复制为" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製查詢" + "value" : "複製為" } } } }, - "Copy Rows" : { + "Copy as Hex" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "행 복사" + "value" : "16진수로 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satırları Kopyala" + "value" : "Hex Olarak Kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép hàng" + "value" : "Sao chép dạng Hex" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制行" + "value" : "复制为十六进制" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製列" + "value" : "複製為十六進位" } } } }, - "Copy SQL" : { + "Copy as Import Link" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SQL 복사" + "value" : "가져오기 링크로 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SQL Kopyala" + "value" : "İçe Aktarma Bağlantısı Olarak Kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép SQL" + "value" : "Sao chép dạng Liên kết Nhập" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制 SQL" + "value" : "复制为导入链接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製 SQL" + "value" : "複製為匯入連結" } } } }, - "Copy Special" : { + "Copy as JSON" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "특수 복사" + "value" : "JSON으로 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Özel Kopyala" + "value" : "JSON Olarak Kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép đặc biệt" + "value" : "Sao chép dạng JSON" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "特殊复制" + "value" : "复制为 JSON" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "特殊複製" + "value" : "複製為 JSON" } } } }, - "Copy TablePro Link" : { + "Copy as URL" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro 링크 복사" + "value" : "URL로 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro Bağlantısını Kopyala" + "value" : "URL olarak kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép liên kết TablePro" + "value" : "Sao chép dạng URL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制 TablePro 链接" + "value" : "复制为 URL" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製 TablePro 連結" + "value" : "複製為 URL" } } } }, - "Copy Token" : { + "Copy Column Name" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "토큰 복사" + "value" : "열 이름 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Token Kopyala" + "value" : "Sütun Adını Kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép token" + "value" : "Sao chép tên cột" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制令牌" + "value" : "复制列名" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製權杖" + "value" : "複製欄位名稱" } } } }, - "Copy Value" : { + "Copy Column Values" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "값 복사" + "value" : "열 값 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Değeri Kopyala" + "value" : "Sütun Değerlerini Kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép giá trị" + "value" : "Sao chép giá trị cột" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制值" + "value" : "复制列值" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製值" + "value" : "複製欄位值" } } } }, - "Copy as" : { + "Copy Connection ID" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다음 형식으로 복사" + "value" : "연결 ID 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Şu şekilde kopyala" + "value" : "Bağlantı Kimliğini Kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép dạng" + "value" : "Sao chép ID kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制为" + "value" : "复制连接ID" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製為" + "value" : "複製連線 ID" } } } }, - "Copy as Hex" : { + "Copy Connection String" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "16진수로 복사" + "value" : "연결 문자열 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Hex Olarak Kopyala" + "value" : "Bağlantı Dizgisini Kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép dạng Hex" + "value" : "Sao chép connection string" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制为十六进制" + "value" : "复制连接字符串" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製為十六進位" + "value" : "複製連線字串" } } } }, - "Copy as Import Link" : { - "extractionState" : "stale", + "Copy Definition" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "가져오기 링크로 복사" + "value" : "정의 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İçe Aktarma Bağlantısı Olarak Kopyala" + "value" : "Tanımı Kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép dạng Liên kết Nhập" + "value" : "Sao chép định nghĩa" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制为导入链接" + "value" : "复制定义" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製為匯入連結" + "value" : "複製定義" } } } }, - "Copy as JSON" : { + "Copy Details" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "JSON으로 복사" + "value" : "세부사항 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "JSON Olarak Kopyala" + "value" : "Ayrıntıları Kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép dạng JSON" + "value" : "Sao chép chi tiết" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制为 JSON" + "value" : "复制详细信息" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製為 JSON" + "value" : "複製詳細資訊" } } } }, - "Copy as URL" : { - "extractionState" : "stale", + "Copy Diagnostic Info" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "URL로 복사" + "value" : "진단 정보 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "URL olarak kopyala" + "value" : "Tanılama Bilgilerini Kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép dạng URL" + "value" : "Sao chép thông tin chẩn đoán" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制为 URL" + "value" : "复制诊断信息" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製為 URL" + "value" : "複製診斷資訊" } } } + }, + "Copy Error" : { + }, "Copy error message" : { "localizations" : { @@ -30738,104368 +31493,106459 @@ } } }, - "Copy install command" : { + "Copy Errors to Clipboard" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "설치 명령 복사" + "value" : "오류를 클립보드에 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kurulum komutunu kopyala" + "value" : "Hataları Panoya Kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép lệnh cài đặt" + "value" : "Sao chép lỗi vào clipboard" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制安装命令" + "value" : "复制错误到剪贴板" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製安裝指令" + "value" : "將錯誤複製到剪貼簿" } } } }, - "Copy privileges to %@" : { + "Copy EXPLAIN output to clipboard" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@에 권한 복사" + "value" : "EXPLAIN 출력을 클립보드에 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yetkileri %@ hedefine kopyala" + "value" : "EXPLAIN çıktısını panoya kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép quyền sang %@" + "value" : "Sao chép kết quả EXPLAIN vào clipboard" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将权限复制到 %@" + "value" : "将 EXPLAIN 输出复制到剪贴板" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將權限複製到 %@" + "value" : "將 EXPLAIN 輸出複製到剪貼簿" } } } }, - "Copy the full error to the clipboard" : { + "Copy ID" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "전체 오류를 클립보드에 복사" + "value" : "ID 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Hatanın tamamını panoya kopyala" + "value" : "ID Kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép toàn bộ lỗi vào bộ nhớ tạm" + "value" : "Sao chép ID" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将完整错误复制到剪贴板" + "value" : "复制 ID" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將完整錯誤複製到剪貼簿" + "value" : "複製 ID" } } } }, - "Copy this statement to clipboard" : { - "extractionState" : "stale", + "Copy install command" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 명령문을 클립보드에 복사" + "value" : "설치 명령 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu ifadeyi panoya kopyala" + "value" : "Kurulum komutunu kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép câu lệnh này vào bộ nhớ tạm" + "value" : "Sao chép lệnh cài đặt" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将此语句复制到剪贴板" + "value" : "复制安装命令" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將此陳述式複製到剪貼簿" + "value" : "複製安裝指令" } } } }, - "Copy to clipboard" : { + "Copy JSON" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "클립보드에 복사" + "value" : "JSON 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Panoya kopyala" + "value" : "JSON Kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép vào clipboard" + "value" : "Sao chép JSON" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制到剪贴板" + "value" : "复制 JSON" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製到剪貼簿" + "value" : "複製 JSON" } } } }, - "Copy token" : { + "Copy Key" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "토큰 복사" + "value" : "키 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Token kopyala" + "value" : "Anahtarı Kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép token" + "value" : "Sao chép khoá" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制令牌" + "value" : "复制键" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製權杖" + "value" : "複製鍵" } } } }, - "Copy with Headers" : { + "Copy Key Path" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "헤더와 함께 복사" + "value" : "키 경로 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Başlıklarla Kopyala" + "value" : "Anahtar Yolunu Kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép kèm tiêu đề" + "value" : "Sao chép đường dẫn khoá" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制(含表头)" + "value" : "复制键路径" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製(含標題)" + "value" : "複製鍵路徑" } } } }, - "Copy with Signature" : { + "Copy Name" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "시그니처 포함 복사" + "value" : "이름 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İmzayla Kopyala" + "value" : "Adı Kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép kèm chữ ký" + "value" : "Sao chép tên" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "带签名复制" + "value" : "复制名称" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連同簽章一起複製" + "value" : "複製名稱" } } } }, - "Corner Radius" : { - "extractionState" : "stale", + "Copy Namespace Prefix" : { + "comment" : "A button that copies the namespace prefix to the clipboard.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모서리 반경" + "value" : "네임스페이스 접두사 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Köşe Yarıçapı" + "value" : "Namespace Önekini Kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bo góc" + "value" : "Sao chép tiền tố namespace" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "圆角半径" + "value" : "复制命名空间前缀" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "圓角半徑" + "value" : "複製命名空間前綴" } } } }, - "Cost" : { - "comment" : "Label for the cost column in the query plan.", + "Copy Node Details" : { + "comment" : "A tooltip that describes the action of copying the details of a query plan node to the clipboard.", "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "비용" + "value" : "노드 세부사항 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Maliyet" + "value" : "Düğüm Ayrıntılarını Kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chi phí" + "value" : "Sao chép chi tiết nút" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "成本" + "value" : "复制节点详情" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "成本" + "value" : "複製節點詳細資訊" } } } }, - "Could Not Open File" : { + "Copy Operation" : { + "comment" : "A button that copies the operation of a query plan node to the clipboard.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "파일을 열 수 없음" + "value" : "연산 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dosya Açılamadı" + "value" : "İşlemi Kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể mở tệp" + "value" : "Sao chép thao tác" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法打开文件" + "value" : "复制操作" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法開啟檔案" + "value" : "複製操作" } } } }, - "Could Not Open Query" : { + "Copy Path" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리를 열 수 없음" + "value" : "경로 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgu Açılamadı" + "value" : "Yolu Kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể mở truy vấn" + "value" : "Sao chép đường dẫn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法打开查询" + "value" : "复制路径" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法開啟查詢" + "value" : "複製路徑" } } } }, - "Could Not Open Sample" : { + "Copy Privileges" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "샘플을 열 수 없음" + "value" : "권한 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Örnek açılamadı" + "value" : "Yetkileri Kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể mở Mẫu" + "value" : "Sao chép quyền" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法打开示例" + "value" : "复制权限" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法開啟範例" + "value" : "複製權限" } } } }, - "Could Not Open Table" : { + "Copy Privileges from %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블을 열 수 없음" + "value" : "%@에서 권한 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tablo Açılamadı" + "value" : "Yetkileri %@ Kaynağından Kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể mở bảng" + "value" : "Sao chép quyền từ %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法打开表" + "value" : "从 %@ 复制权限" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法開啟資料表" + "value" : "從 %@ 複製權限" } } } }, - "Could Not Reset Sample" : { + "Copy Privileges From…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "샘플을 초기화할 수 없음" + "value" : "다음에서 권한 복사…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Örnek sıfırlanamadı" + "value" : "Yetkileri Şuradan Kopyala…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể đặt lại Mẫu" + "value" : "Sao chép quyền từ…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法重置示例" + "value" : "从以下项复制权限…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法重設範例" + "value" : "從以下項目複製權限…" } } } }, - "Could not build the CREATE TABLE statement" : { + "Copy privileges to %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "CREATE TABLE 문을 작성할 수 없습니다" + "value" : "%@에 권한 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "CREATE TABLE ifadesi oluşturulamadı" + "value" : "Yetkileri %@ hedefine kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể tạo câu lệnh CREATE TABLE" + "value" : "Sao chép quyền sang %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法生成CREATE TABLE语句" + "value" : "将权限复制到 %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法建立 CREATE TABLE 陳述式" - } - } - } - }, - "Could not complete Oracle native network encryption with this server. It may require an encryption or checksum algorithm the driver does not support." : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "이 서버와 Oracle 네이티브 네트워크 암호화를 완료할 수 없습니다. 서버에서 드라이버가 지원하지 않는 암호화 또는 체크섬 알고리즘을 요구할 수 있습니다." + "value" : "將權限複製到 %@" } } } }, - "Could not connect through the SOCKS proxy at %@:%@. %@" : { + "Copy Query" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Could not connect through the SOCKS proxy at %1$@:%2$@. %3$@" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@:%2$@의 SOCKS 프록시를 통해 연결할 수 없습니다. %3$@" + "value" : "쿼리 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@:%2$@ adresindeki SOCKS proxy üzerinden bağlanılamadı. %3$@" + "value" : "Sorguyu Kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể kết nối qua SOCKS proxy tại %1$@:%2$@. %3$@" + "value" : "Sao chép truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法通过 %1$@:%2$@ 的 SOCKS 代理连接。%3$@" + "value" : "复制查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法透過 %1$@:%2$@ 的 SOCKS 代理連線。%3$@" + "value" : "複製查詢" } } } }, - "Could not connect to %@" : { + "Copy Rows" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@에 연결할 수 없습니다" + "value" : "행 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ bağlantısı kurulamadı" + "value" : "Satırları Kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể kết nối tới %@" + "value" : "Sao chép hàng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法连接到 %@" + "value" : "复制行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法連線到 %@" + "value" : "複製列" } } } }, - "Could not create destination file" : { + "Copy Special" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "대상 파일을 생성할 수 없습니다" + "value" : "특수 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Hedef dosya oluşturulamadı" + "value" : "Özel Kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể tạo tệp đích" + "value" : "Sao chép đặc biệt" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法创建目标文件" + "value" : "特殊复制" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法建立目的檔案" + "value" : "特殊複製" } } } }, - "Could not decode image" : { + "Copy SQL" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이미지를 디코딩할 수 없습니다" + "value" : "SQL 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Görüntünün kodu çözülemedi" + "value" : "SQL Kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể giải mã hình ảnh" + "value" : "Sao chép SQL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法解码图像" + "value" : "复制 SQL" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法解碼影像" + "value" : "複製 SQL" } } } }, - "Could not encode image" : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "이미지를 인코딩할 수 없습니다" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "Görüntü kodlanamadı" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "Không thể mã hóa hình ảnh" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "无法编码图像" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "無法編碼影像" - } - } - } + "Copy Table Name" : { + }, - "Could not export activity log" : { + "Copy TablePro Link" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "활동 로그를 내보낼 수 없습니다" + "value" : "TablePro 링크 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Etkinlik günlüğü dışa aktarılamadı" + "value" : "TablePro Bağlantısını Kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể xuất nhật ký hoạt động" + "value" : "Sao chép liên kết TablePro" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法导出活动日志" + "value" : "复制 TablePro 链接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法匯出活動記錄" + "value" : "複製 TablePro 連結" } } } }, - "Could not export the diagram" : { - "comment" : "Title of an error sheet that appears when the user tries to export the ER diagram but the image could not be created.", - "isCommentAutoGenerated" : true, + "Copy the full error to the clipboard" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다이어그램을 내보낼 수 없습니다" + "value" : "전체 오류를 클립보드에 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Diyagram dışa aktarılamadı" + "value" : "Hatanın tamamını panoya kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể xuất sơ đồ" + "value" : "Sao chép toàn bộ lỗi vào bộ nhớ tạm" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法导出图表" + "value" : "将完整错误复制到剪贴板" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法匯出圖表" + "value" : "將完整錯誤複製到剪貼簿" } } } }, - "Could not export the schema" : { - "comment" : "Title of an alert that appears when an error occurs while exporting the schema.", - "isCommentAutoGenerated" : true, + "Copy this statement to clipboard" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "스키마를 내보낼 수 없습니다" + "value" : "이 명령문을 클립보드에 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Şema dışa aktarılamadı" + "value" : "Bu ifadeyi panoya kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể xuất schema" + "value" : "Sao chép câu lệnh này vào bộ nhớ tạm" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法导出 Schema" + "value" : "将此语句复制到剪贴板" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法匯出綱要" + "value" : "將此陳述式複製到剪貼簿" } } } }, - "Could not export the theme" : { - "comment" : "Title of an error sheet when exporting a theme fails.", - "isCommentAutoGenerated" : true, + "Copy to clipboard" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테마를 내보낼 수 없습니다" + "value" : "클립보드에 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tema dışa aktarılamadı" + "value" : "Panoya kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể xuất giao diện" + "value" : "Sao chép vào clipboard" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法导出主题" + "value" : "复制到剪贴板" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法匯出佈景主題" + "value" : "複製到剪貼簿" } } } }, - "Could not fetch plugin registry" : { - "extractionState" : "stale", + "Copy token" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플러그인 레지스트리를 가져올 수 없습니다" + "value" : "토큰 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklenti kaydı alınamadı" + "value" : "Token kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể tải danh sách plugin" + "value" : "Sao chép token" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法获取插件注册表" + "value" : "复制令牌" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法取得外掛註冊" + "value" : "複製權杖" } } } }, - "Could not find %@ data files" : { + "Copy Token" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 데이터 파일을 찾을 수 없습니다" + "value" : "토큰 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ veri dosyaları bulunamadı" + "value" : "Token Kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy tệp dữ liệu %@" + "value" : "Sao chép token" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "找不到 %@ 数据文件" + "value" : "复制令牌" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "找不到 %@ 資料檔案" + "value" : "複製權杖" } } } }, - "Could not generate SQL for changes." : { + "Copy Value" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "변경 사항에 대한 SQL을 생성할 수 없습니다." + "value" : "값 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Değişiklikler için SQL oluşturulamadı." + "value" : "Değeri Kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể tạo SQL cho các thay đổi." + "value" : "Sao chép giá trị" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法为更改生成 SQL。" + "value" : "复制值" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法為變更產生 SQL。" + "value" : "複製值" } } } }, - "Could not install the sample database: %@" : { + "Copy with Headers" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "샘플 데이터베이스를 설치할 수 없습니다: %@" + "value" : "헤더와 함께 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Örnek veritabanı yüklenemedi: %@" + "value" : "Başlıklarla Kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể cài đặt cơ sở dữ liệu mẫu: %@" + "value" : "Sao chép kèm tiêu đề" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法安装示例数据库:%@" + "value" : "复制(含表头)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法安裝範例資料庫:%@" + "value" : "複製(含標題)" } } } }, - "Could not open a local port for the SOCKS proxy: %@" : { + "Copy with Signature" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SOCKS 프록시용 로컬 포트를 열 수 없습니다: %@" + "value" : "시그니처 포함 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SOCKS proxy için yerel bir port açılamadı: %@" + "value" : "İmzayla Kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể mở cổng cục bộ cho SOCKS proxy: %@" + "value" : "Sao chép kèm chữ ký" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法为 SOCKS 代理打开本地端口:%@" + "value" : "带签名复制" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法為 SOCKS 代理開啟本機連接埠:%@" + "value" : "連同簽章一起複製" } } } }, - "Could not parse database URL: %@" : { + "Corner Radius" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 URL을 구문 분석할 수 없습니다: %@" + "value" : "모서리 반경" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı URL'si ayrıştırılamadı: %@" + "value" : "Köşe Yarıçapı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể phân tích URL cơ sở dữ liệu: %@" + "value" : "Bo góc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法解析数据库 URL:%@" + "value" : "圆角半径" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法解析資料庫 URL:%@" + "value" : "圓角半徑" } } } }, - "Could not reach the license server. Check your internet connection and try again." : { + "Cost" : { + "comment" : "Label for the cost column in the query plan.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "라이선스 서버에 연결할 수 없습니다. 인터넷 연결을 확인한 후 다시 시도하십시오." + "value" : "비용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Lisans sunucusuna ulaşılamadı. İnternet bağlantınızı kontrol edip tekrar deneyin." + "value" : "Maliyet" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể kết nối đến máy chủ giấy phép. Kiểm tra kết nối internet và thử lại." + "value" : "Chi phí" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法连接许可证服务器。请检查网络连接后重试。" + "value" : "成本" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法連線授權伺服器。請檢查網際網路連線後再試一次。" + "value" : "成本" } } } }, - "Could not read password file: %@" : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "암호 파일을 읽을 수 없습니다: %@" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "Parola dosyası okunamadı: %@" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "Không thể đọc tệp mật khẩu: %@" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "无法读取密码文件:%@" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "無法讀取密碼檔案:%@" - } - } - } + "Could not build an INSERT for %@" : { + }, - "Could not read the file. It may have been deleted or moved." : { + "Could not build an INSERT for the mapped columns" : { + + }, + "Could not build the CREATE TABLE statement" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "파일을 읽을 수 없습니다. 파일이 삭제되었거나 이동되었을 수 있습니다." + "value" : "CREATE TABLE 문을 작성할 수 없습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dosya okunamadı. Silinmiş veya taşınmış olabilir." + "value" : "CREATE TABLE ifadesi oluşturulamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể đọc tệp. Tệp có thể đã bị xóa hoặc di chuyển." + "value" : "Không thể tạo câu lệnh CREATE TABLE" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法读取文件。文件可能已被删除或移动。" + "value" : "无法生成CREATE TABLE语句" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法讀取檔案。檔案可能已被刪除或移動。" + "value" : "無法建立 CREATE TABLE 陳述式" } } } }, - "Could not read the server response. Try again in a moment." : { + "Could Not Compare" : { + + }, + "Could not complete Oracle native network encryption with this server. It may require an encryption or checksum algorithm the driver does not support." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "서버 응답을 읽을 수 없습니다. 잠시 후 다시 시도하십시오." - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "Sunucu yanıtı okunamadı. Biraz sonra tekrar deneyin." - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "Không thể đọc phản hồi từ máy chủ. Vui lòng thử lại sau." - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "无法读取服务器响应。请稍后重试。" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "無法讀取伺服器回應。請稍後再試一次。" + "value" : "이 서버와 Oracle 네이티브 네트워크 암호화를 완료할 수 없습니다. 서버에서 드라이버가 지원하지 않는 암호화 또는 체크섬 알고리즘을 요구할 수 있습니다." } } } }, - "Could not remove %@." : { + "Could not connect through the SOCKS proxy at %@:%@. %@" : { "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "%@을(를) 제거할 수 없습니다." - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "%@ kaldırılamadı." - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "Không thể gỡ %@." - } - }, - "zh-Hans" : { + "en" : { "stringUnit" : { - "state" : "translated", - "value" : "无法移除 %@。" + "state" : "new", + "value" : "Could not connect through the SOCKS proxy at %1$@:%2$@. %3$@" } }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "無法移除 %@。" - } - } - } - }, - "Could not save the connection. Check disk space and permissions, then try again." : { - "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결을 저장할 수 없습니다. 디스크 공간과 권한을 확인한 후 다시 시도하십시오." + "value" : "%1$@:%2$@의 SOCKS 프록시를 통해 연결할 수 없습니다. %3$@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı kaydedilemedi. Disk alanını ve izinleri denetleyin, sonra yeniden deneyin." + "value" : "%1$@:%2$@ adresindeki SOCKS proxy üzerinden bağlanılamadı. %3$@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể lưu kết nối. Kiểm tra dung lượng đĩa và quyền truy cập, rồi thử lại." + "value" : "Không thể kết nối qua SOCKS proxy tại %1$@:%2$@. %3$@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法保存连接。请检查磁盘空间和权限,然后重试。" + "value" : "无法通过 %1$@:%2$@ 的 SOCKS 代理连接。%3$@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法儲存連線。請檢查磁碟空間與權限,然後再試一次。" + "value" : "無法透過 %1$@:%2$@ 的 SOCKS 代理連線。%3$@" } } } }, - "Could not start a new TablePro instance. Quit and reopen manually." : { + "Could not connect to %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 TablePro 인스턴스를 시작할 수 없습니다. 앱을 종료한 후 직접 다시 여십시오." + "value" : "%@에 연결할 수 없습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni bir TablePro örneği başlatılamadı. Uygulamadan çıkıp elle yeniden açın." + "value" : "%@ bağlantısı kurulamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể khởi chạy phiên TablePro mới. Hãy thoát và mở lại thủ công." + "value" : "Không thể kết nối tới %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法启动新的TablePro实例。请手动退出并重新打开。" + "value" : "无法连接到 %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法啟動新的 TablePro 實例。請手動結束並重新開啟。" + "value" : "無法連線到 %@" } } } }, - "Could not start the sign-in listener. Please try again." : { + "Could not create destination file" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "로그인 리스너를 시작할 수 없습니다. 다시 시도하십시오." + "value" : "대상 파일을 생성할 수 없습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Oturum açma dinleyicisi başlatılamadı. Lütfen tekrar deneyin." + "value" : "Hedef dosya oluşturulamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể khởi động trình lắng nghe đăng nhập. Vui lòng thử lại." + "value" : "Không thể tạo tệp đích" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法启动登录监听器。请重试。" + "value" : "无法创建目标文件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法啟動登入監聽器。請再試一次。" + "value" : "無法建立目的檔案" } } } }, - "Could not switch to database %@ before applying schema changes: %@" : { - "extractionState" : "stale", + "Could not decode image" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Could not switch to database %1$@ before applying schema changes: %2$@" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "스키마 변경 사항을 적용하기 전에 데이터베이스 %1$@(으)로 전환할 수 없습니다: %2$@" + "value" : "이미지를 디코딩할 수 없습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Şema değişiklikleri uygulanmadan önce %1$@ veritabanına geçilemedi: %2$@" + "value" : "Görüntünün kodu çözülemedi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể chuyển sang cơ sở dữ liệu %1$@ trước khi áp dụng thay đổi schema: %2$@" + "value" : "Không thể giải mã hình ảnh" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "应用 Schema 更改前无法切换到数据库 %1$@:%2$@" + "value" : "无法解码图像" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "套用綱要變更前無法切換到資料庫 %1$@:%2$@" + "value" : "無法解碼影像" } } } }, - "Could not write %@." : { + "Could not encode image" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@을(를) 쓸 수 없습니다." + "value" : "이미지를 인코딩할 수 없습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ yazılamadı." + "value" : "Görüntü kodlanamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể ghi %@." + "value" : "Không thể mã hóa hình ảnh" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法写入 %@。" + "value" : "无法编码图像" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法寫入 %@。" + "value" : "無法編碼影像" } } } }, - "Could not write the Google Cloud service account key to a temporary file." : { + "Could not export activity log" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Google Cloud 서비스 계정 키를 임시 파일에 쓸 수 없습니다." + "value" : "활동 로그를 내보낼 수 없습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Google Cloud servis hesabı anahtarı geçici bir dosyaya yazılamadı." + "value" : "Etkinlik günlüğü dışa aktarılamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể ghi khóa tài khoản dịch vụ Google Cloud vào tệp tạm." + "value" : "Không thể xuất nhật ký hoạt động" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法将 Google Cloud 服务账号密钥写入临时文件。" + "value" : "无法导出活动日志" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法將 Google Cloud 服務帳號金鑰寫入暫存檔案。" + "value" : "無法匯出活動記錄" } } } }, - "Could not write to file. Check that the file is writable." : { + "Could not export the diagram" : { + "comment" : "Title of an error sheet that appears when the user tries to export the ER diagram but the image could not be created.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "파일에 쓸 수 없습니다. 파일에 쓰기 권한이 있는지 확인하십시오." + "value" : "다이어그램을 내보낼 수 없습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dosyaya yazılamadı. Dosyanın yazılabilir olduğunu denetleyin." + "value" : "Diyagram dışa aktarılamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể ghi vào tệp. Hãy kiểm tra xem tệp có cho phép ghi không." + "value" : "Không thể xuất sơ đồ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法写入文件。请检查文件是否可写。" + "value" : "无法导出图表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法寫入檔案。請檢查檔案是否可寫入。" + "value" : "無法匯出圖表" } } } }, - "Couldn't publish to the team catalog" : { + "Could not export the schema" : { + "comment" : "Title of an alert that appears when an error occurs while exporting the schema.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "팀 카탈로그에 게시할 수 없습니다" + "value" : "스키마를 내보낼 수 없습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Takım kataloğuna yayınlanamadı" + "value" : "Şema dışa aktarılamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể xuất bản lên danh mục nhóm" + "value" : "Không thể xuất schema" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法发布到团队目录" + "value" : "无法导出 Schema" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法發佈到團隊目錄" + "value" : "無法匯出綱要" } } } }, - "Couldn't publish to the team library" : { + "Could not export the theme" : { + "comment" : "Title of an error sheet when exporting a theme fails.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "팀 라이브러리에 게시할 수 없습니다" + "value" : "테마를 내보낼 수 없습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Takım kitaplığına yayınlanamadı" + "value" : "Tema dışa aktarılamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể xuất bản lên thư viện nhóm" + "value" : "Không thể xuất giao diện" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法发布到团队库" + "value" : "无法导出主题" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法發佈到團隊庫" + "value" : "無法匯出佈景主題" } } } }, - "Couldn't reach the plugin registry. Check your connection and try again." : { + "Could not fetch plugin registry" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플러그인 레지스트리에 연결할 수 없습니다. 연결을 확인한 후 다시 시도하십시오." + "value" : "플러그인 레지스트리를 가져올 수 없습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklenti deposuna ulaşılamadı. Bağlantınızı denetleyip tekrar deneyin." + "value" : "Eklenti kaydı alınamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể truy cập kho plugin. Kiểm tra kết nối và thử lại." + "value" : "Không thể tải danh sách plugin" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法访问插件注册表。请检查网络连接后重试。" + "value" : "无法获取插件注册表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法連上外掛註冊來源。請檢查連線後再試一次。" + "value" : "無法取得外掛註冊" } } } }, - "Count Exactly" : { + "Could not find %@ data files" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "정확히 계산" + "value" : "%@ 데이터 파일을 찾을 수 없습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tam say" + "value" : "%@ veri dosyaları bulunamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đếm chính xác" + "value" : "Không tìm thấy tệp dữ liệu %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "精确计数" + "value" : "找不到 %@ 数据文件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "精確計算" + "value" : "找不到 %@ 資料檔案" } } } }, - "Count all rows" : { + "Could not generate SQL for changes." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 행 수 계산" + "value" : "변경 사항에 대한 SQL을 생성할 수 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm satırları say" + "value" : "Değişiklikler için SQL oluşturulamadı." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đếm tất cả hàng" + "value" : "Không thể tạo SQL cho các thay đổi." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "统计全部行数" + "value" : "无法为更改生成 SQL。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "計算所有列數" + "value" : "無法為變更產生 SQL。" } } } }, - "Count exactly" : { + "Could not install the sample database: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "정확히 계산" + "value" : "샘플 데이터베이스를 설치할 수 없습니다: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tam say" + "value" : "Örnek veritabanı yüklenemedi: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đếm chính xác" + "value" : "Không thể cài đặt cơ sở dữ liệu mẫu: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "精确计数" + "value" : "无法安装示例数据库:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "精確計算" + "value" : "無法安裝範例資料庫:%@" } } } }, - "Count rows if estimate less than:" : { + "Could not open a local port for the SOCKS proxy: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "예상치가 다음보다 작으면 행 수 계산:" + "value" : "SOCKS 프록시용 로컬 포트를 열 수 없습니다: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tahmin şundan az ise satırları say:" + "value" : "SOCKS proxy için yerel bir port açılamadı: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đếm dòng nếu ước tính nhỏ hơn:" + "value" : "Không thể mở cổng cục bộ cho SOCKS proxy: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "估算值小于此值时计数行:" + "value" : "无法为 SOCKS 代理打开本地端口:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "估算值小於此值時計算列數:" + "value" : "無法為 SOCKS 代理開啟本機連接埠:%@" } } } }, - "Counting rows" : { + "Could Not Open File" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "행 수 계산 중" + "value" : "파일을 열 수 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satırlar sayılıyor" + "value" : "Dosya Açılamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang đếm dòng" + "value" : "Không thể mở tệp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在统计行数" + "value" : "无法打开文件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在計算列數" + "value" : "無法開啟檔案" } } } }, - "Counting…" : { + "Could Not Open Query" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "계산 중…" + "value" : "쿼리를 열 수 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sayılıyor…" + "value" : "Sorgu Açılamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang đếm…" + "value" : "Không thể mở truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "统计中…" + "value" : "无法打开查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "計算中…" + "value" : "無法開啟查詢" } } } }, - "Create" : { + "Could Not Open Sample" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "생성" + "value" : "샘플을 열 수 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Oluştur" + "value" : "Örnek açılamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tạo" + "value" : "Không thể mở Mẫu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "创建" + "value" : "无法打开示例" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "建立" + "value" : "無法開啟範例" } } } }, - "Create %@" : { + "Could Not Open Table" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 생성" + "value" : "테이블을 열 수 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ Oluştur" + "value" : "Tablo Açılamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tạo %@" + "value" : "Không thể mở bảng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "创建 %@" + "value" : "无法打开表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "建立 %@" + "value" : "無法開啟資料表" } } } }, - "Create Connection…" : { + "Could not parse database URL: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 생성…" + "value" : "데이터베이스 URL을 구문 분석할 수 없습니다: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı Oluştur…" + "value" : "Veritabanı URL'si ayrıştırılamadı: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tạo kết nối…" + "value" : "Không thể phân tích URL cơ sở dữ liệu: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "创建连接…" + "value" : "无法解析数据库 URL:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "建立連線…" + "value" : "無法解析資料庫 URL:%@" } } } }, - "Create Database" : { - "extractionState" : "stale", + "Could not reach the license server. Check your internet connection and try again." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 생성" + "value" : "라이선스 서버에 연결할 수 없습니다. 인터넷 연결을 확인한 후 다시 시도하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı Oluştur" + "value" : "Lisans sunucusuna ulaşılamadı. İnternet bağlantınızı kontrol edip tekrar deneyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tạo cơ sở dữ liệu" + "value" : "Không thể kết nối đến máy chủ giấy phép. Kiểm tra kết nối internet và thử lại." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "创建数据库" + "value" : "无法连接许可证服务器。请检查网络连接后重试。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "建立資料庫" + "value" : "無法連線授權伺服器。請檢查網際網路連線後再試一次。" } } } }, - "Create New Group" : { + "Could not read password file: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 그룹 생성" + "value" : "암호 파일을 읽을 수 없습니다: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni Grup Oluştur" + "value" : "Parola dosyası okunamadı: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tạo nhóm mới" + "value" : "Không thể đọc tệp mật khẩu: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "创建新分组" + "value" : "无法读取密码文件:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "建立新群組" + "value" : "無法讀取密碼檔案:%@" } } } }, - "Create New Group…" : { + "Could not read the file. It may have been deleted or moved." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 그룹 생성…" + "value" : "파일을 읽을 수 없습니다. 파일이 삭제되었거나 이동되었을 수 있습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni Grup Oluştur…" + "value" : "Dosya okunamadı. Silinmiş veya taşınmış olabilir." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tạo nhóm mới…" + "value" : "Không thể đọc tệp. Tệp có thể đã bị xóa hoặc di chuyển." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "创建新分组…" + "value" : "无法读取文件。文件可能已被删除或移动。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "建立新群組…" + "value" : "無法讀取檔案。檔案可能已被刪除或移動。" } } } }, - "Create New Profile…" : { + "Could not read the server response. Try again in a moment." : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Create New Profile…" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 프로필 생성…" + "value" : "서버 응답을 읽을 수 없습니다. 잠시 후 다시 시도하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni Profil Oluştur…" + "value" : "Sunucu yanıtı okunamadı. Biraz sonra tekrar deneyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tạo hồ sơ mới…" + "value" : "Không thể đọc phản hồi từ máy chủ. Vui lòng thử lại sau." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建配置…" + "value" : "无法读取服务器响应。请稍后重试。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "建立新設定檔…" + "value" : "無法讀取伺服器回應。請稍後再試一次。" } } } }, - "Create New Table..." : { - "extractionState" : "stale", + "Could not remove %@." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 테이블 생성..." + "value" : "%@을(를) 제거할 수 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni Tablo Oluştur..." + "value" : "%@ kaldırılamadı." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tạo bảng mới..." + "value" : "Không thể gỡ %@." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建表..." + "value" : "无法移除 %@。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "建立新資料表..." + "value" : "無法移除 %@。" } } } }, - "Create New Tag" : { + "Could Not Reset Sample" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 태그 생성" + "value" : "샘플을 초기화할 수 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni Etiket Oluştur" + "value" : "Örnek sıfırlanamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tạo thẻ mới" + "value" : "Không thể đặt lại Mẫu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "创建新标签" + "value" : "无法重置示例" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "建立新標籤" + "value" : "無法重設範例" } } } }, - "Create New Tag…" : { + "Could not save the connection. Check disk space and permissions, then try again." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 태그 생성…" + "value" : "연결을 저장할 수 없습니다. 디스크 공간과 권한을 확인한 후 다시 시도하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni Etiket Oluştur…" + "value" : "Bağlantı kaydedilemedi. Disk alanını ve izinleri denetleyin, sonra yeniden deneyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tạo thẻ mới…" + "value" : "Không thể lưu kết nối. Kiểm tra dung lượng đĩa và quyền truy cập, rồi thử lại." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "创建新标签…" + "value" : "无法保存连接。请检查磁盘空间和权限,然后重试。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "建立新標籤…" + "value" : "無法儲存連線。請檢查磁碟空間與權限,然後再試一次。" } } } }, - "Create New View..." : { - "extractionState" : "stale", + "Could not start a new TablePro instance. Quit and reopen manually." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 뷰 생성..." + "value" : "새 TablePro 인스턴스를 시작할 수 없습니다. 앱을 종료한 후 직접 다시 여십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni Görünüm Oluştur..." + "value" : "Yeni bir TablePro örneği başlatılamadı. Uygulamadan çıkıp elle yeniden açın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tạo view mới..." + "value" : "Không thể khởi chạy phiên TablePro mới. Hãy thoát và mở lại thủ công." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "创建新视图..." + "value" : "无法启动新的TablePro实例。请手动退出并重新打开。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "建立新檢視表..." + "value" : "無法啟動新的 TablePro 實例。請手動結束並重新開啟。" } } } }, - "Create New View…" : { + "Could not start the sign-in listener. Please try again." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 뷰 생성…" + "value" : "로그인 리스너를 시작할 수 없습니다. 다시 시도하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni Görünüm Oluştur…" + "value" : "Oturum açma dinleyicisi başlatılamadı. Lütfen tekrar deneyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tạo view mới…" + "value" : "Không thể khởi động trình lắng nghe đăng nhập. Vui lòng thử lại." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建视图…" + "value" : "无法启动登录监听器。请重试。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "建立新的檢視表…" + "value" : "無法啟動登入監聽器。請再試一次。" } } } }, - "Create Table" : { + "Could not switch to database %@ before applying schema changes: %@" : { + "extractionState" : "stale", "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Could not switch to database %1$@ before applying schema changes: %2$@" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 생성" + "value" : "스키마 변경 사항을 적용하기 전에 데이터베이스 %1$@(으)로 전환할 수 없습니다: %2$@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tablo Oluştur" + "value" : "Şema değişiklikleri uygulanmadan önce %1$@ veritabanına geçilemedi: %2$@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tạo bảng" + "value" : "Không thể chuyển sang cơ sở dữ liệu %1$@ trước khi áp dụng thay đổi schema: %2$@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "创建表" + "value" : "应用 Schema 更改前无法切换到数据库 %1$@:%2$@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "建立資料表" + "value" : "套用綱要變更前無法切換到資料庫 %1$@:%2$@" } } } }, - "Create Table Failed" : { + "Could not write %@." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 생성 실패" + "value" : "%@을(를) 쓸 수 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tablo Oluşturma Başarısız" + "value" : "%@ yazılamadı." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tạo bảng thất bại" + "value" : "Không thể ghi %@." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "创建表失败" + "value" : "无法写入 %@。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "建立資料表失敗" + "value" : "無法寫入 %@。" } } } }, - "Create Trigger" : { + "Could not write the Google Cloud service account key to a temporary file." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "트리거 생성" + "value" : "Google Cloud 서비스 계정 키를 임시 파일에 쓸 수 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tetikleyici Oluştur" + "value" : "Google Cloud servis hesabı anahtarı geçici bir dosyaya yazılamadı." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tạo trigger" + "value" : "Không thể ghi khóa tài khoản dịch vụ Google Cloud vào tệp tạm." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "创建触发器" + "value" : "无法将 Google Cloud 服务账号密钥写入临时文件。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "建立觸發器" + "value" : "無法將 Google Cloud 服務帳號金鑰寫入暫存檔案。" } } } }, - "Create a connection to get started" : { - "extractionState" : "stale", + "Could not write to file. Check that the file is writable." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "시작하려면 연결을 생성하십시오" + "value" : "파일에 쓸 수 없습니다. 파일에 쓰기 권한이 있는지 확인하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Başlamak için bir bağlantı oluşturun" + "value" : "Dosyaya yazılamadı. Dosyanın yazılabilir olduğunu denetleyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tạo kết nối để bắt đầu" + "value" : "Không thể ghi vào tệp. Hãy kiểm tra xem tệp có cho phép ghi không." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "创建连接以开始使用" + "value" : "无法写入文件。请检查文件是否可写。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "建立連線以開始使用" + "value" : "無法寫入檔案。請檢查檔案是否可寫入。" } } } }, - "Create a connection to get started with\nyour databases." : { + "Couldn't publish to the team catalog" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 사용을 시작하려면\n연결을 생성하십시오." + "value" : "팀 카탈로그에 게시할 수 없습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanlarınızla başlamak için\nbir bağlantı oluşturun." + "value" : "Takım kataloğuna yayınlanamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tạo kết nối để bắt đầu sử dụng\ncơ sở dữ liệu của bạn." + "value" : "Không thể xuất bản lên danh mục nhóm" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "创建连接以开始使用\n您的数据库。" + "value" : "无法发布到团队目录" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "建立連線以開始使用\n你的資料庫。" + "value" : "無法發佈到團隊目錄" } } } }, - "Create a new table or view" : { - "extractionState" : "stale", + "Couldn't publish to the team library" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 테이블 또는 뷰 생성" + "value" : "팀 라이브러리에 게시할 수 없습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni bir tablo veya görünüm oluştur" + "value" : "Takım kitaplığına yayınlanamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tạo bảng hoặc view mới" + "value" : "Không thể xuất bản lên thư viện nhóm" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建表或视图" + "value" : "无法发布到团队库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "建立新的資料表或檢視表" + "value" : "無法發佈到團隊庫" } } } }, - "Create all columns" : { + "Couldn't reach the plugin registry. Check your connection and try again." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 열 생성" + "value" : "플러그인 레지스트리에 연결할 수 없습니다. 연결을 확인한 후 다시 시도하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm sütunları oluştur" + "value" : "Eklenti deposuna ulaşılamadı. Bağlantınızı denetleyip tekrar deneyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tạo tất cả các cột" + "value" : "Không thể truy cập kho plugin. Kiểm tra kết nối và thử lại." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "创建所有列" + "value" : "无法访问插件注册表。请检查网络连接后重试。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "建立所有欄位" + "value" : "無法連上外掛註冊來源。請檢查連線後再試一次。" } } } }, - "Create connection..." : { - "extractionState" : "stale", + "Count all rows" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 생성..." + "value" : "모든 행 수 계산" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı oluştur..." + "value" : "Tüm satırları say" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tạo kết nối..." + "value" : "Đếm tất cả hàng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "创建连接..." + "value" : "统计全部行数" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "建立連線..." + "value" : "計算所有列數" } } } }, - "Create new database" : { + "Count every row rather than estimating" : { + + }, + "Count exactly" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 데이터베이스 생성" + "value" : "정확히 계산" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni veritabanı oluştur" + "value" : "Tam say" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tạo cơ sở dữ liệu mới" + "value" : "Đếm chính xác" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "创建新数据库" + "value" : "精确计数" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "建立新資料庫" + "value" : "精確計算" } } } }, - "Create your own slash commands. Use {{query}}, {{schema}}, {{database}}, or {{body}} in the template to insert chat context at runtime." : { + "Count Exactly" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "나만의 슬래시 명령을 만드십시오. 템플릿에서 {{query}}, {{schema}}, {{database}} 또는 {{body}}를 사용하면 실행 시 채팅 컨텍스트가 삽입됩니다." + "value" : "정확히 계산" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kendi eğik çizgi komutlarınızı oluşturun. Sohbet bağlamını çalışma zamanında eklemek için şablonda {{query}}, {{schema}}, {{database}} veya {{body}} kullanın." + "value" : "Tam say" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tạo lệnh slash của riêng bạn. Dùng {{query}}, {{schema}}, {{database}} hoặc {{body}} trong mẫu để chèn ngữ cảnh trò chuyện khi chạy." + "value" : "Đếm chính xác" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "创建您自己的斜杠命令。在模板中使用 {{query}}、{{schema}}、{{database}} 或 {{body}},即可在运行时插入聊天上下文。" + "value" : "精确计数" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "建立你自己的斜線指令。在範本中使用 {{query}}、{{schema}}、{{database}} 或 {{body}},即可在執行時插入聊天上下文。" + "value" : "精確計算" } } } }, - "Created" : { + "Count Rows" : { + + }, + "Count rows if estimate less than:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "생성일" + "value" : "예상치가 다음보다 작으면 행 수 계산:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Oluşturuldu" + "value" : "Tahmin şundan az ise satırları say:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã tạo" + "value" : "Đếm dòng nếu ước tính nhỏ hơn:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已创建" + "value" : "估算值小于此值时计数行:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已建立" + "value" : "估算值小於此值時計算列數:" } } } }, - "Created as GitHub issue #%d" : { - "extractionState" : "stale", + "Count rows in a table. Without filters it returns the engine's fast estimate unless 'exact' is set; with filters it always counts for real." : { + + }, + "Counting rows" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "GitHub 이슈 #%d(으)로 생성됨" + "value" : "행 수 계산 중" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "GitHub issue #%d olarak oluşturuldu" + "value" : "Satırlar sayılıyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã tạo thành GitHub issue #%d" + "value" : "Đang đếm dòng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已创建为 GitHub issue #%d" + "value" : "正在统计行数" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已建立為 GitHub issue #%d" + "value" : "正在計算列數" } } } }, - "Creating Backup Dump" : { - "comment" : "A title for a backup progress sheet.", - "isCommentAutoGenerated" : true, + "Counting…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "백업 덤프 생성 중" + "value" : "계산 중…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yedek Dökümü Oluşturuluyor" + "value" : "Sayılıyor…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang tạo bản dump sao lưu" + "value" : "Đang đếm…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在创建备份转储" + "value" : "统计中…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在建立資料庫備份" + "value" : "計算中…" } } } }, - "Creating…" : { + "Create" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "생성 중…" + "value" : "생성" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Oluşturuluyor…" + "value" : "Oluştur" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang tạo…" + "value" : "Tạo" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "创建中…" + "value" : "创建" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "建立中…" + "value" : "建立" } } } }, - "Credentials" : { + "Create %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "자격 증명" + "value" : "%@ 생성" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kimlik Bilgileri" + "value" : "%@ Oluştur" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thông tin đăng nhập" + "value" : "Tạo %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "凭据" + "value" : "创建 %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "認證資訊" + "value" : "建立 %@" } } } }, - "Critical" : { + "Create %1$@ %2$@" : { + + }, + "Create a connection to get started" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "심각" + "value" : "시작하려면 연결을 생성하십시오" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kritik" + "value" : "Başlamak için bir bağlantı oluşturun" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Quan trọng" + "value" : "Tạo kết nối để bắt đầu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "关键" + "value" : "创建连接以开始使用" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "關鍵" + "value" : "建立連線以開始使用" } } } }, - "Critical cost" : { - "comment" : "Accessibility label for the critical cost severity.", - "isCommentAutoGenerated" : true, + "Create a connection to get started with\nyour databases." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "심각한 비용" + "value" : "데이터베이스 사용을 시작하려면\n연결을 생성하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kritik maliyet" + "value" : "Veritabanlarınızla başlamak için\nbir bağlantı oluşturun." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chi phí nghiêm trọng" + "value" : "Tạo kết nối để bắt đầu sử dụng\ncơ sở dữ liệu của bạn." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "严重成本" + "value" : "创建连接以开始使用\n您的数据库。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "嚴重成本" + "value" : "建立連線以開始使用\n你的資料庫。" } } } }, - "Current %1$@: %2$@" : { + "Create a database using the engine's own form options. Call describe_create_database_options first to see which options this engine takes. Needs tools:write and the user's approval." : { + + }, + "Create a new table or view" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "현재 %1$@: %2$@" + "value" : "새 테이블 또는 뷰 생성" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geçerli %1$@: %2$@" + "value" : "Yeni bir tablo veya görünüm oluştur" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@ hiện tại: %2$@" + "value" : "Tạo bảng hoặc view mới" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "当前 %1$@:%2$@" + "value" : "新建表或视图" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "目前 %1$@:%2$@" + "value" : "建立新的資料表或檢視表" } } } }, - "Current %1$@: %2$@ (read only)" : { + "Create all columns" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "현재 %1$@: %2$@ (읽기 전용)" + "value" : "모든 열 생성" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geçerli %1$@: %2$@ (salt okunur)" + "value" : "Tüm sütunları oluştur" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@ hiện tại: %2$@ (chỉ đọc)" + "value" : "Tạo tất cả các cột" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "当前 %1$@:%2$@(只读)" + "value" : "创建所有列" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "目前 %1$@:%2$@(唯讀)" + "value" : "建立所有欄位" } } } }, - "Current %@" : { + "Create connection..." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "현재 %@" + "value" : "연결 생성..." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geçerli %@" + "value" : "Bağlantı oluştur..." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%@ hiện tại" + "value" : "Tạo kết nối..." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "当前%@" + "value" : "创建连接..." } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "目前的%@" + "value" : "建立連線..." } } } }, - "Current %@: %@ (read only, ⌘K to %@)" : { - "extractionState" : "stale", + "Create Connection…" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Current %1$@: %2$@ (read only, ⌘K to %3$@)" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "현재 %1$@: %2$@ (읽기 전용, ⌘K로 %3$@)" + "value" : "연결 생성…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geçerli %1$@: %2$@ (salt okunur, %3$@ için ⌘K)" + "value" : "Bağlantı Oluştur…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@ hiện tại: %2$@ (chỉ đọc, ⌘K để %3$@)" + "value" : "Tạo kết nối…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "当前%1$@:%2$@(只读,⌘K 可%3$@)" + "value" : "创建连接…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "目前的 %1$@:%2$@(唯讀,⌘K 可%3$@)" + "value" : "建立連線…" } } } }, - "Current %@: %@ (⌘K to %@)" : { - "extractionState" : "stale", + "Create Database" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Current %1$@: %2$@ (⌘K to %3$@)" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "현재 %1$@: %2$@ (⌘K로 %3$@)" + "value" : "데이터베이스 생성" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geçerli %1$@: %2$@ (%3$@ için ⌘K)" + "value" : "Veritabanı Oluştur" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@ hiện tại: %2$@ (⌘K để %3$@)" + "value" : "Tạo cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "当前%1$@:%2$@(⌘K 可%3$@)" + "value" : "创建数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "目前的 %1$@:%2$@(⌘K 可%3$@)" + "value" : "建立資料庫" } } } }, - "Current Line" : { + "Create new database" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "현재 줄" + "value" : "새 데이터베이스 생성" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Mevcut Satır" + "value" : "Yeni veritabanı oluştur" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dòng hiện tại" + "value" : "Tạo cơ sở dữ liệu mới" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "当前行" + "value" : "创建新数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "目前的列" + "value" : "建立新資料庫" } } } }, - "Current Query" : { + "Create New Group" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "현재 쿼리" + "value" : "새 그룹 생성" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geçerli Sorgu" + "value" : "Yeni Grup Oluştur" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Truy vấn hiện tại" + "value" : "Tạo nhóm mới" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "当前查询" + "value" : "创建新分组" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "目前查詢" + "value" : "建立新群組" } } } }, - "Current database" : { - "comment" : "A description of a database that is currently selected.", - "isCommentAutoGenerated" : true, + "Create New Group…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "현재 데이터베이스" + "value" : "새 그룹 생성…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geçerli veritabanı" + "value" : "Yeni Grup Oluştur…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cơ sở dữ liệu hiện tại" + "value" : "Tạo nhóm mới…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "当前数据库" + "value" : "创建新分组…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "目前的資料庫" + "value" : "建立新群組…" } } } }, - "Current database: %@ (read-only, ⌘K to switch)" : { - "extractionState" : "stale", + "Create New Profile…" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Create New Profile…" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "현재 데이터베이스: %@ (읽기 전용, 전환하려면 ⌘K)" + "value" : "새 프로필 생성…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Mevcut veritabanı: %@ (salt okunur, değiştirmek için ⌘K)" + "value" : "Yeni Profil Oluştur…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cơ sở dữ liệu hiện tại: %@ (chỉ đọc, ⌘K để chuyển)" + "value" : "Tạo hồ sơ mới…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "当前数据库:%@(只读,⌘K 切换)" + "value" : "新建配置…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "目前的資料庫:%@(唯讀,⌘K 切換)" + "value" : "建立新設定檔…" } } } }, - "Current database: %@ (⌘K to switch)" : { + "Create New Table..." : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "현재 데이터베이스: %@ (전환하려면 ⌘K)" + "value" : "새 테이블 생성..." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Mevcut veritabanı: %@ (değiştirmek için ⌘K)" + "value" : "Yeni Tablo Oluştur..." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cơ sở dữ liệu hiện tại: %@ (⌘K để chuyển)" + "value" : "Tạo bảng mới..." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "当前数据库:%@(⌘K 切换)" + "value" : "新建表..." } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "目前的資料庫:%@(⌘K 切換)" + "value" : "建立新資料表..." } } } }, - "Current schema" : { - "extractionState" : "stale", + "Create New Tag" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "현재 스키마" + "value" : "새 태그 생성" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geçerli şema" + "value" : "Yeni Etiket Oluştur" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Schema hiện tại" + "value" : "Tạo thẻ mới" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "当前 Schema" + "value" : "创建新标签" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "目前的綱要" + "value" : "建立新標籤" } } } }, - "Current schema: %@ (read-only, ⌘K to switch)" : { - "extractionState" : "stale", + "Create New Tag…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "현재 스키마: %@ (읽기 전용, 전환하려면 ⌘K)" + "value" : "새 태그 생성…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Mevcut şema: %@ (salt okunur, değiştirmek için ⌘K)" + "value" : "Yeni Etiket Oluştur…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Schema hiện tại: %@ (chỉ đọc, ⌘K để chuyển)" + "value" : "Tạo thẻ mới…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "当前 schema:%@(只读,⌘K 切换)" + "value" : "创建新标签…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "目前的綱要:%@(唯讀,⌘K 切換)" + "value" : "建立新標籤…" } } } }, - "Current schema: %@ (⌘K to switch)" : { + "Create New View..." : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "현재 스키마: %@ (전환하려면 ⌘K)" + "value" : "새 뷰 생성..." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Mevcut şema: %@ (değiştirmek için ⌘K)" + "value" : "Yeni Görünüm Oluştur..." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Schema hiện tại: %@ (⌘K để chuyển)" + "value" : "Tạo view mới..." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "当前 schema:%@(⌘K 切换)" + "value" : "创建新视图..." } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "目前的綱要:%@(⌘K 切換)" + "value" : "建立新檢視表..." } } } }, - "Cursor" : { + "Create New View…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Cursor" + "value" : "새 뷰 생성…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İmleç" + "value" : "Yeni Görünüm Oluştur…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Con trỏ" + "value" : "Tạo view mới…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "光标" + "value" : "新建视图…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "游標" + "value" : "建立新的檢視表…" } } } }, - "Cursor CLI failed: %@" : { + "CREATE statement" : { + + }, + "CREATE statement, when the engine can produce one" : { + + }, + "Create Table" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Cursor CLI 실패: %@" + "value" : "테이블 생성" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Cursor CLI başarısız oldu: %@" + "value" : "Tablo Oluştur" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cursor CLI thất bại: %@" + "value" : "Tạo bảng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Cursor CLI 失败:%@" + "value" : "创建表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Cursor CLI 失敗:%@" + "value" : "建立資料表" } } } }, - "Cursor blink" : { - "extractionState" : "stale", + "Create table %@" : { + + }, + "Create Table Failed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "커서 깜박임" + "value" : "테이블 생성 실패" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İmleç yanıp sönme" + "value" : "Tablo Oluşturma Başarısız" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhấp nháy con trỏ" + "value" : "Tạo bảng thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "光标闪烁" + "value" : "创建表失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "游標閃爍" + "value" : "建立資料表失敗" } } } }, - "Cursor position %d exceeds SQL length (%d)" : { + "Create Trigger" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Cursor position %1$d exceeds SQL length (%2$d)" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "커서 위치 %1$d이(가) SQL 길이(%2$d)를 초과합니다" + "value" : "트리거 생성" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İmleç konumu %d, SQL uzunluğunu (%d) aşıyor" + "value" : "Tetikleyici Oluştur" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Vị trí con trỏ %d vượt quá độ dài SQL (%d)" + "value" : "Tạo trigger" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "光标位置%d超出SQL长度(%d)" + "value" : "创建触发器" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "游標位置 %1$d 超出 SQL 長度(%2$d)" + "value" : "建立觸發器" } } } }, - "Cursor position %lld exceeds SQL length (%lld)" : { - "extractionState" : "stale", + "Create your own slash commands. Use {{query}}, {{schema}}, {{database}}, or {{body}} in the template to insert chat context at runtime." : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Cursor position %1$lld exceeds SQL length (%2$lld)" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "커서 위치 %1$lld이(가) SQL 길이(%2$lld)를 초과합니다" + "value" : "나만의 슬래시 명령을 만드십시오. 템플릿에서 {{query}}, {{schema}}, {{database}} 또는 {{body}}를 사용하면 실행 시 채팅 컨텍스트가 삽입됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İmleç konumu %lld, SQL uzunluğunu (%lld) aşıyor" + "value" : "Kendi eğik çizgi komutlarınızı oluşturun. Sohbet bağlamını çalışma zamanında eklemek için şablonda {{query}}, {{schema}}, {{database}} veya {{body}} kullanın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Vị trí con trỏ %1$lld vượt quá độ dài SQL (%2$lld)" + "value" : "Tạo lệnh slash của riêng bạn. Dùng {{query}}, {{schema}}, {{database}} hoặc {{body}} trong mẫu để chèn ngữ cảnh trò chuyện khi chạy." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "光标位置 %lld 超出 SQL 长度(%lld)" + "value" : "创建您自己的斜杠命令。在模板中使用 {{query}}、{{schema}}、{{database}} 或 {{body}},即可在运行时插入聊天上下文。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "游標位置 %1$lld 超出 SQL 長度(%2$lld)" + "value" : "建立你自己的斜線指令。在範本中使用 {{query}}、{{schema}}、{{database}} 或 {{body}},即可在執行時插入聊天上下文。" } } } }, - "Cursor sign-in failed." : { + "Created" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Cursor 로그인에 실패했습니다." + "value" : "생성일" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Cursor girişi başarısız oldu." + "value" : "Oluşturuldu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đăng nhập Cursor thất bại." + "value" : "Đã tạo" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Cursor 登录失败。" + "value" : "已创建" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Cursor 登入失敗。" + "value" : "已建立" } } } }, - "Cursor style:" : { + "Created as GitHub issue #%d" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "커서 스타일:" + "value" : "GitHub 이슈 #%d(으)로 생성됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İmleç stili:" + "value" : "GitHub issue #%d olarak oluşturuldu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kiểu con trỏ:" + "value" : "Đã tạo thành GitHub issue #%d" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "光标样式:" + "value" : "已创建为 GitHub issue #%d" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "游標樣式:" + "value" : "已建立為 GitHub issue #%d" } } } }, - "Custom" : { + "creating a database" : { + + }, + "Creating Backup Dump" : { + "comment" : "A title for a backup progress sheet.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사용자 지정" + "value" : "백업 덤프 생성 중" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Özel" + "value" : "Yedek Dökümü Oluşturuluyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tùy chỉnh" + "value" : "Đang tạo bản dump sao lưu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "自定义" + "value" : "正在创建备份转储" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "自訂" + "value" : "正在建立資料庫備份" } } } }, - "Custom Endpoint" : { + "Creating…" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Custom Endpoint" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사용자 지정 엔드포인트" + "value" : "생성 중…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Özel Uç Nokta" + "value" : "Oluşturuluyor…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Endpoint tùy chỉnh" + "value" : "Đang tạo…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "自定义端点" + "value" : "创建中…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "自訂端點" + "value" : "建立中…" } } } }, - "Custom Path" : { + "Credentials" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사용자 지정 경로" + "value" : "자격 증명" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Özel Yol" + "value" : "Kimlik Bilgileri" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đường dẫn tùy chỉnh" + "value" : "Thông tin đăng nhập" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "自定义路径" + "value" : "凭据" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "自訂路徑" + "value" : "認證資訊" } } } }, - "Custom Slash Commands" : { + "Critical" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사용자 지정 슬래시 명령" + "value" : "심각" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Özel Eğik Çizgi Komutları" + "value" : "Kritik" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lệnh slash tùy chỉnh" + "value" : "Quan trọng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "自定义斜杠命令" + "value" : "关键" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "自訂斜線指令" + "value" : "關鍵" } } } }, - "Custom guidance the AI sees on every chat turn for this connection. Use it for table conventions, naming, columns to avoid (PII, soft-deleted rows), join hints, or business rules the schema doesn't show." : { + "Critical cost" : { + "comment" : "Accessibility label for the critical cost severity.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 연결에서 채팅을 주고받을 때마다 AI에 제공되는 사용자 지정 지침입니다. 테이블 규칙, 명명 규칙, 피해야 할 열(PII, 소프트 삭제된 행), 조인 힌트 또는 스키마에 표시되지 않는 비즈니스 규칙을 입력하십시오." + "value" : "심각한 비용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu bağlantı için yapay zekanın her sohbet turunda gördüğü özel yönerge. Tablo kuralları, adlandırma, kaçınılması gereken sütunlar (PII, geçici silinmiş satırlar), join ipuçları veya şemanın göstermediği iş kuralları için kullanın." + "value" : "Kritik maliyet" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hướng dẫn tùy chỉnh mà AI thấy ở mỗi lượt trò chuyện cho kết nối này. Dùng cho quy ước bảng, cách đặt tên, các cột cần tránh (PII, hàng đã xóa mềm), gợi ý join, hoặc quy tắc nghiệp vụ mà schema không thể hiện." + "value" : "Chi phí nghiêm trọng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "AI 在此连接的每轮聊天中都会看到的自定义指引。可用于说明表约定、命名规范、应避免的列(PII、软删除行)、联结提示,或 Schema 中未体现的业务规则。" + "value" : "严重成本" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "AI 在此連線的每一輪聊天中都會看到的自訂指引。可用於說明資料表慣例、命名規則、應避免的欄位(PII、軟刪除的列)、JOIN 提示,或綱要未顯示的商業規則。" + "value" : "嚴重成本" } } } }, - "Customization" : { + "CRITICAL: Transaction rollback failed - database may be in inconsistent state: %@" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사용자화" + "value" : "심각: 트랜잭션 롤백 실패 - 데이터베이스가 일관되지 않은 상태일 수 있음: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Özelleştirme" + "value" : "CRITICAL: Transaction rollback failed - database may be giriş inconsistent state: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tùy chỉnh" + "value" : "NGHIÊM TRỌNG: Hoàn tác giao dịch thất bại - cơ sở dữ liệu có thể ở trạng thái không nhất quán: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "自定义" + "value" : "严重:事务回滚失败 - 数据库可能处于不一致状态:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "自訂" + "value" : "嚴重:交易還原失敗 - 資料庫可能處於不一致狀態:%@" } } } }, - "Customize Toolbar…" : { + "CSV" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "도구 막대 사용자화…" + "value" : "CSV" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Araç Çubuğunu Özelleştir…" + "value" : "CSV" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tuỳ chỉnh thanh công cụ…" + "value" : "CSV" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "自定工具栏…" + "value" : "CSV" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "自定工具列…" + "value" : "CSV" } } } }, - "Custom…" : { + "CSV Properties" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사용자 지정…" + "value" : "CSV 속성" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Özel…" + "value" : "CSV Özellikleri" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tùy chỉnh…" + "value" : "Thuộc tính CSV" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "自定义…" + "value" : "CSV 属性" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "自訂…" + "value" : "CSV 屬性" } } } }, - "Cut" : { + "CSV with Headers" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "오려두기" + "value" : "헤더 포함 CSV" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kes" + "value" : "Başlıklı CSV" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cắt" + "value" : "CSV kèm tiêu đề" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "剪切" + "value" : "带标题行的 CSV" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "剪下" + "value" : "含標題列的 CSV" } } } }, - "DEFAULT" : { + "CSV/JSON Editing" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "DEFAULT" + "value" : "CSV/JSON 편집" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "VARSAYILAN" + "value" : "CSV/JSON Düzenleme" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "MẶC ĐỊNH" + "value" : "Chỉnh sửa CSV/JSON" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "默认" + "value" : "CSV/JSON 编辑" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "預設" + "value" : "CSV/JSON 編輯" } } } }, - "Dark" : { + "CURDATE()" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다크" + "value" : "CURDATE()" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Koyu" + "value" : "CURDATE()" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tối" + "value" : "CURDATE()" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "深色" + "value" : "CURDATE()" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "深色" + "value" : "CURDATE()" } } } }, - "Dashboard" : { + "current" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "대시보드" + "value" : "현재" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Pano" + "value" : "current" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bảng điều khiển" + "value" : "hiện tại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "仪表盘" + "value" : "当前" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "儀表板" + "value" : "目前" } } } }, - "Dashboard Not Available" : { + "Current %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "대시보드를 사용할 수 없음" + "value" : "현재 %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Pano Kullanılamıyor" + "value" : "Geçerli %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bảng điều khiển không khả dụng" + "value" : "%@ hiện tại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "仪表盘不可用" + "value" : "当前%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "儀表板無法使用" + "value" : "目前的%@" } } } }, - "Data" : { + "Current %@: %@ (⌘K to %@)" : { + "extractionState" : "stale", "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Current %1$@: %2$@ (⌘K to %3$@)" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터" + "value" : "현재 %1$@: %2$@ (⌘K로 %3$@)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veri" + "value" : "Geçerli %1$@: %2$@ (%3$@ için ⌘K)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dữ liệu" + "value" : "%1$@ hiện tại: %2$@ (⌘K để %3$@)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "数据" + "value" : "当前%1$@:%2$@(⌘K 可%3$@)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料" + "value" : "目前的 %1$@:%2$@(⌘K 可%3$@)" } } } }, - "Data Grid" : { + "Current %@: %@ (read only, ⌘K to %@)" : { + "extractionState" : "stale", "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Current %1$@: %2$@ (read only, ⌘K to %3$@)" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터 그리드" + "value" : "현재 %1$@: %2$@ (읽기 전용, ⌘K로 %3$@)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veri Tablosu" + "value" : "Geçerli %1$@: %2$@ (salt okunur, %3$@ için ⌘K)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lưới dữ liệu" + "value" : "%1$@ hiện tại: %2$@ (chỉ đọc, ⌘K để %3$@)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "数据网格" + "value" : "当前%1$@:%2$@(只读,⌘K 可%3$@)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料格" + "value" : "目前的 %1$@:%2$@(唯讀,⌘K 可%3$@)" } } } }, - "Data Grid Font" : { + "Current %1$@: %2$@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터 그리드 글꼴" + "value" : "현재 %1$@: %2$@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veri Tablosu Yazı Tipi" + "value" : "Geçerli %1$@: %2$@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phông chữ bảng dữ liệu" + "value" : "%1$@ hiện tại: %2$@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "数据表格字体" + "value" : "当前 %1$@:%2$@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料格字型" + "value" : "目前 %1$@:%2$@" } } } }, - "Data Size" : { + "Current %1$@: %2$@ (read only)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터 크기" + "value" : "현재 %1$@: %2$@ (읽기 전용)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veri Boyutu" + "value" : "Geçerli %1$@: %2$@ (salt okunur)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kích thước dữ liệu" + "value" : "%1$@ hiện tại: %2$@ (chỉ đọc)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "数据大小" + "value" : "当前 %1$@:%2$@(只读)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料大小" + "value" : "目前 %1$@:%2$@(唯讀)" } } } }, - "Data Type:" : { - "extractionState" : "stale", + "Current database" : { + "comment" : "A description of a database that is currently selected.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터 유형:" + "value" : "현재 데이터베이스" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veri Türü:" + "value" : "Geçerli veritabanı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kiểu dữ liệu:" + "value" : "Cơ sở dữ liệu hiện tại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "数据类型:" + "value" : "当前数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料型別:" + "value" : "目前的資料庫" } } } }, - "Data grid" : { + "Current database: %@ (⌘K to switch)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터 그리드" + "value" : "현재 데이터베이스: %@ (전환하려면 ⌘K)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veri tablosu" + "value" : "Mevcut veritabanı: %@ (değiştirmek için ⌘K)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lưới dữ liệu" + "value" : "Cơ sở dữ liệu hiện tại: %@ (⌘K để chuyển)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "数据网格" + "value" : "当前数据库:%@(⌘K 切换)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料格" + "value" : "目前的資料庫:%@(⌘K 切換)" } } } }, - "Database" : { + "Current database: %@ (read-only, ⌘K to switch)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스" + "value" : "현재 데이터베이스: %@ (읽기 전용, 전환하려면 ⌘K)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı" + "value" : "Mevcut veritabanı: %@ (salt okunur, değiştirmek için ⌘K)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cơ sở dữ liệu" + "value" : "Cơ sở dữ liệu hiện tại: %@ (chỉ đọc, ⌘K để chuyển)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "数据库" + "value" : "当前数据库:%@(只读,⌘K 切换)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料庫" + "value" : "目前的資料庫:%@(唯讀,⌘K 切換)" } } } }, - "Database Alias" : { + "Current Line" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 별칭" + "value" : "현재 줄" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı Takma Adı" + "value" : "Mevcut Satır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bí danh cơ sở dữ liệu" + "value" : "Dòng hiện tại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "数据库别名" + "value" : "当前行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料庫別名" + "value" : "目前的列" } } } }, - "Database Driver" : { + "Current Query" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 드라이버" + "value" : "현재 쿼리" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı Sürücüsü" + "value" : "Geçerli Sorgu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trình điều khiển cơ sở dữ liệu" + "value" : "Truy vấn hiện tại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "数据库驱动" + "value" : "当前查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料庫驅動程式" + "value" : "目前查詢" } } } }, - "Database Drivers" : { + "Current schema" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 드라이버" + "value" : "현재 스키마" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı Sürücüleri" + "value" : "Geçerli şema" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trình điều khiển cơ sở dữ liệu" + "value" : "Schema hiện tại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "数据库驱动" + "value" : "当前 Schema" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料庫驅動程式" + "value" : "目前的綱要" } } } }, - "Database File" : { + "Current schema: %@ (⌘K to switch)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 파일" + "value" : "현재 스키마: %@ (전환하려면 ⌘K)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı Dosyası" + "value" : "Mevcut şema: %@ (değiştirmek için ⌘K)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tệp cơ sở dữ liệu" + "value" : "Schema hiện tại: %@ (⌘K để chuyển)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "数据库文件" + "value" : "当前 schema:%@(⌘K 切换)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料庫檔案" + "value" : "目前的綱要:%@(⌘K 切換)" } } } }, - "Database Index" : { + "Current schema: %@ (read-only, ⌘K to switch)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 인덱스" + "value" : "현재 스키마: %@ (읽기 전용, 전환하려면 ⌘K)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı İndeksi" + "value" : "Mevcut şema: %@ (salt okunur, değiştirmek için ⌘K)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chỉ mục cơ sở dữ liệu" + "value" : "Schema hiện tại: %@ (chỉ đọc, ⌘K để chuyển)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "数据库索引" + "value" : "当前 schema:%@(只读,⌘K 切换)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料庫索引" + "value" : "目前的綱要:%@(唯讀,⌘K 切換)" } } } }, - "Database Index: %lld" : { + "Current statement" : { + + }, + "Current value" : { + + }, + "CURRENT_TIMESTAMP()" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 인덱스: %lld" + "value" : "CURRENT_TIMESTAMP()" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı İndeksi: %lld" + "value" : "CURRENT_TIMESTAMP()" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chỉ mục cơ sở dữ liệu: %lld" + "value" : "CURRENT_TIMESTAMP()" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "数据库索引: %lld" + "value" : "CURRENT_TIMESTAMP()" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料庫索引:%lld" + "value" : "CURRENT_TIMESTAMP()" } } } }, - "Database Name" : { - "extractionState" : "stale", + "Cursor" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 이름" + "value" : "Cursor" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı Adı" + "value" : "İmleç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên cơ sở dữ liệu" + "value" : "Con trỏ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "数据库名称" + "value" : "光标" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料庫名稱" + "value" : "游標" } } } }, - "Database Schema" : { + "Cursor blink" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 스키마" + "value" : "커서 깜박임" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı Şeması" + "value" : "İmleç yanıp sönme" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Schema cơ sở dữ liệu" + "value" : "Nhấp nháy con trỏ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "数据库 Schema" + "value" : "光标闪烁" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料庫綱要" + "value" : "游標閃爍" } } } }, - "Database Size" : { + "Cursor CLI failed: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 크기" + "value" : "Cursor CLI 실패: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı Boyutu" + "value" : "Cursor CLI başarısız oldu: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kích thước cơ sở dữ liệu" + "value" : "Cursor CLI thất bại: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "数据库大小" + "value" : "Cursor CLI 失败:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料庫大小" + "value" : "Cursor CLI 失敗:%@" } } } }, - "Database Switch Failed" : { - "extractionState" : "stale", + "Cursor position %d exceeds SQL length (%d)" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Cursor position %1$d exceeds SQL length (%2$d)" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 전환 실패" + "value" : "커서 위치 %1$d이(가) SQL 길이(%2$d)를 초과합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı Değiştirme Başarısız" + "value" : "İmleç konumu %d, SQL uzunluğunu (%d) aşıyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển cơ sở dữ liệu thất bại" + "value" : "Vị trí con trỏ %d vượt quá độ dài SQL (%d)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "切换数据库失败" + "value" : "光标位置%d超出SQL长度(%d)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "切換資料庫失敗" + "value" : "游標位置 %1$d 超出 SQL 長度(%2$d)" } } } }, - "Database Switcher" : { + "Cursor position %lld exceeds SQL length (%lld)" : { "extractionState" : "stale", "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Cursor position %1$lld exceeds SQL length (%2$lld)" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 전환기" + "value" : "커서 위치 %1$lld이(가) SQL 길이(%2$lld)를 초과합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı Değiştirici" + "value" : "İmleç konumu %lld, SQL uzunluğunu (%lld) aşıyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển đổi cơ sở dữ liệu" + "value" : "Vị trí con trỏ %1$lld vượt quá độ dài SQL (%2$lld)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "数据库切换器" + "value" : "光标位置 %lld 超出 SQL 长度(%lld)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料庫切換器" + "value" : "游標位置 %1$lld 超出 SQL 長度(%2$lld)" } } } }, - "Database Type" : { + "Cursor sign-in failed." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 유형" + "value" : "Cursor 로그인에 실패했습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı Türü" + "value" : "Cursor girişi başarısız oldu." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Loại Database" + "value" : "Đăng nhập Cursor thất bại." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "数据库类型" + "value" : "Cursor 登录失败。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料庫類型" + "value" : "Cursor 登入失敗。" } } } }, - "Database Type:" : { + "Cursor style:" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 유형:" + "value" : "커서 스타일:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı Türü:" + "value" : "İmleç stili:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Loại cơ sở dữ liệu:" + "value" : "Kiểu con trỏ:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "数据库类型:" + "value" : "光标样式:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料庫類型:" + "value" : "游標樣式:" } } } }, - "Database URL" : { + "CURTIME()" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 URL" + "value" : "CURTIME()" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı URL" + "value" : "CURTIME()" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "URL cơ sở dữ liệu" + "value" : "CURTIME()" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "数据库 URL" + "value" : "CURTIME()" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料庫 URL" + "value" : "CURTIME()" } } } }, - "Database file not found: %@" : { + "Custom" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 파일을 찾을 수 없습니다: %@" + "value" : "사용자 지정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı dosyası bulunamadı: %@" + "value" : "Özel" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy tệp cơ sở dữ liệu: %@" + "value" : "Tùy chỉnh" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未找到数据库文件: %@" + "value" : "自定义" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "找不到資料庫檔案:%@" + "value" : "自訂" } } } }, - "Database file path is required" : { + "Custom Endpoint" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Custom Endpoint" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 파일 경로가 필요합니다" + "value" : "사용자 지정 엔드포인트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı dosya yolu gereklidir" + "value" : "Özel Uç Nokta" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cần đường dẫn tệp cơ sở dữ liệu" + "value" : "Endpoint tùy chỉnh" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "必须填写数据库文件路径" + "value" : "自定义端点" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "必須填寫資料庫檔案路徑" + "value" : "自訂端點" } } } }, - "Database name" : { - "extractionState" : "stale", + "Custom guidance the AI sees on every chat turn for this connection. Use it for table conventions, naming, columns to avoid (PII, soft-deleted rows), join hints, or business rules the schema doesn't show." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 이름" + "value" : "이 연결에서 채팅을 주고받을 때마다 AI에 제공되는 사용자 지정 지침입니다. 테이블 규칙, 명명 규칙, 피해야 할 열(PII, 소프트 삭제된 행), 조인 힌트 또는 스키마에 표시되지 않는 비즈니스 규칙을 입력하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı adı" + "value" : "Bu bağlantı için yapay zekanın her sohbet turunda gördüğü özel yönerge. Tablo kuralları, adlandırma, kaçınılması gereken sütunlar (PII, geçici silinmiş satırlar), join ipuçları veya şemanın göstermediği iş kuralları için kullanın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên cơ sở dữ liệu" + "value" : "Hướng dẫn tùy chỉnh mà AI thấy ở mỗi lượt trò chuyện cho kết nối này. Dùng cho quy ước bảng, cách đặt tên, các cột cần tránh (PII, hàng đã xóa mềm), gợi ý join, hoặc quy tắc nghiệp vụ mà schema không thể hiện." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "数据库名称" + "value" : "AI 在此连接的每轮聊天中都会看到的自定义指引。可用于说明表约定、命名规范、应避免的列(PII、软删除行)、联结提示,或 Schema 中未体现的业务规则。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料庫名稱" + "value" : "AI 在此連線的每一輪聊天中都會看到的自訂指引。可用於說明資料表慣例、命名規則、應避免的欄位(PII、軟刪除的列)、JOIN 提示,或綱要未顯示的商業規則。" } } } }, - "Database name (uses connection's current database if omitted)" : { + "Custom Path" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 이름(생략하면 연결의 현재 데이터베이스 사용)" + "value" : "사용자 지정 경로" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı adı (boş bırakılırsa bağlantının geçerli veritabanı kullanılır)" + "value" : "Özel Yol" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên cơ sở dữ liệu (nếu bỏ trống sẽ dùng cơ sở dữ liệu hiện tại của kết nối)" + "value" : "Đường dẫn tùy chỉnh" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "数据库名称(留空时使用连接的当前数据库)" + "value" : "自定义路径" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料庫名稱(留空時使用連線目前的資料庫)" + "value" : "自訂路徑" } } } }, - "Database name (uses current if omitted)" : { + "Custom Slash Commands" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 이름(생략하면 현재 데이터베이스 사용)" + "value" : "사용자 지정 슬래시 명령" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı adı (boş bırakılırsa geçerli olan kullanılır)" + "value" : "Özel Eğik Çizgi Komutları" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên cơ sở dữ liệu (nếu bỏ trống sẽ dùng cơ sở dữ liệu hiện tại)" + "value" : "Lệnh slash tùy chỉnh" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "数据库名称(留空时使用当前数据库)" + "value" : "自定义斜杠命令" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料庫名稱(留空時使用目前的資料庫)" + "value" : "自訂斜線指令" } } } }, - "Database name is required" : { + "Custom…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 이름이 필요합니다" + "value" : "사용자 지정…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı adı gereklidir" + "value" : "Özel…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cần tên cơ sở dữ liệu" + "value" : "Tùy chỉnh…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "必须填写数据库名称" + "value" : "自定义…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "必須填寫資料庫名稱" + "value" : "自訂…" } } } }, - "Database name to switch to" : { + "Customization" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "전환할 데이터베이스 이름" + "value" : "사용자화" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geçiş yapılacak veritabanı adı" + "value" : "Özelleştirme" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên cơ sở dữ liệu cần chuyển sang" + "value" : "Tùy chỉnh" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "要切换到的数据库名称" + "value" : "自定义" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "要切換到的資料庫名稱" + "value" : "自訂" } } } }, - "Database type \"%@\" is not installed" : { + "Customize Toolbar…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다음 데이터베이스 유형이 설치되어 있지 않습니다: \"%@\"" + "value" : "도구 막대 사용자화…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "\"%@\" veritabanı türü yüklü değil" + "value" : "Araç Çubuğunu Özelleştir…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Loại cơ sở dữ liệu \"%@\" chưa được cài đặt" + "value" : "Tuỳ chỉnh thanh công cụ…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "数据库类型 \"%@\" 未安装" + "value" : "自定工具栏…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料庫類型「%@」未安裝" + "value" : "自定工具列…" } } } }, - "Database type: %@" : { - "extractionState" : "stale", + "Cut" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 유형: %@" + "value" : "오려두기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı türü: %@" + "value" : "Kes" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Loại cơ sở dữ liệu: %@" + "value" : "Cắt" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "数据库类型: %@" + "value" : "剪切" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料庫類型:%@" + "value" : "剪下" } } } }, - "Database/Schema:" : { - "extractionState" : "stale", + "Dark" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스/스키마:" + "value" : "다크" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı/Şema:" + "value" : "Koyu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cơ sở dữ liệu/Schema:" + "value" : "Tối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "数据库/Schema:" + "value" : "深色" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料庫/綱要:" + "value" : "深色" } } } }, - "Database: %@" : { + "Dashboard" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스: %@" + "value" : "대시보드" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı: %@" + "value" : "Pano" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cơ sở dữ liệu: %@" + "value" : "Bảng điều khiển" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "数据库: %@" + "value" : "仪表盘" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料庫:%@" + "value" : "儀表板" } } } }, - "Databases" : { + "Dashboard Not Available" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스" + "value" : "대시보드를 사용할 수 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanları" + "value" : "Pano Kullanılamıyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cơ sở dữ liệu" + "value" : "Bảng điều khiển không khả dụng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "数据库" + "value" : "仪表盘不可用" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料庫" + "value" : "儀表板無法使用" } } } }, - "Date" : { + "Data" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "날짜" + "value" : "데이터" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tarih" + "value" : "Veri" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ngày" + "value" : "Dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "日期" + "value" : "数据" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "日期" + "value" : "資料" } } } }, - "Date Range" : { + "Data Comparison" : { + + }, + "Data grid" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "날짜 범위" + "value" : "데이터 그리드" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tarih Aralığı" + "value" : "Veri tablosu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khoảng thời gian" + "value" : "Lưới dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "日期范围" + "value" : "数据网格" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "日期範圍" + "value" : "資料格" } } } }, - "Date format:" : { + "Data Grid" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "날짜 형식:" + "value" : "데이터 그리드" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tarih biçimi:" + "value" : "Veri Tablosu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Định dạng ngày:" + "value" : "Lưới dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "日期格式:" + "value" : "数据网格" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "日期格式:" + "value" : "資料格" } } } }, - "Deactivate" : { + "Data Grid Font" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "비활성화" + "value" : "데이터 그리드 글꼴" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Devre Dışı Bırak" + "value" : "Veri Tablosu Yazı Tipi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hủy kích hoạt" + "value" : "Phông chữ bảng dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "停用" + "value" : "数据表格字体" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "停用" + "value" : "資料格字型" } } } }, - "Deactivate License?" : { + "Data loss" : { + + }, + "Data quality audit for %@ on %@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Data quality audit for %1$@ on %2$@" + } + } + } + }, + "Data Size" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "라이선스를 비활성화하시겠습니까?" + "value" : "데이터 크기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Lisans Devre Dışı Bırakılsın mı?" + "value" : "Veri Boyutu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hủy kích hoạt giấy phép?" + "value" : "Kích thước dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "停用许可证?" + "value" : "数据大小" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "停用授權?" + "value" : "資料大小" } } } }, - "Deactivated" : { + "Data Type:" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "비활성화됨" + "value" : "데이터 유형:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Devre Dışı" + "value" : "Veri Türü:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã hủy kích hoạt" + "value" : "Kiểu dữ liệu:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已停用" + "value" : "数据类型:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已停用" + "value" : "資料型別:" } } } }, - "Deactivate…" : { + "Database" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "비활성화…" + "value" : "데이터베이스" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Devre Dışı Bırak…" + "value" : "Veritabanı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hủy kích hoạt…" + "value" : "Cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "停用…" + "value" : "数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "停用…" + "value" : "資料庫" } } } }, - "Deactivation Failed" : { - "extractionState" : "stale", + "database %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "비활성화 실패" + "value" : "데이터베이스 %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Devre Dışı Bırakma Başarısız" + "value" : "veritabanı %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hủy kích hoạt thất bại" + "value" : "cơ sở dữ liệu %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "停用失败" + "value" : "数据库 %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "停用失敗" + "value" : "資料庫 %@" } } } }, - "Debounce: %d ms" : { + "Database Alias" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "디바운스: %d ms" + "value" : "데이터베이스 별칭" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bekleme: %d ms" + "value" : "Veritabanı Takma Adı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Debounce: %d ms" + "value" : "Bí danh cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "防抖:%d 毫秒" + "value" : "数据库别名" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "去抖動:%d 毫秒" + "value" : "資料庫別名" } } } }, - "Decimal" : { - "extractionState" : "stale", + "Database Driver" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "10진수" + "value" : "데이터베이스 드라이버" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ondalık" + "value" : "Veritabanı Sürücüsü" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thập phân" + "value" : "Trình điều khiển cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "十进制" + "value" : "数据库驱动" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "十進位" + "value" : "資料庫驅動程式" } } } }, - "Decompression failed with exit status %d" : { + "Database Drivers" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "종료 상태 %d(으)로 압축 해제에 실패했습니다" + "value" : "데이터베이스 드라이버" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Açma %d çıkış koduyla başarısız oldu" + "value" : "Veritabanı Sürücüleri" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giải nén thất bại với mã thoát %d" + "value" : "Trình điều khiển cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "解压失败,退出状态 %d" + "value" : "数据库驱动" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "解壓縮失敗,結束狀態 %d" + "value" : "資料庫驅動程式" } } } }, - "Decrease Text Size" : { + "Database engine" : { + + }, + "Database Favorites:" : { + + }, + "Database File" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "텍스트 크기 줄이기" + "value" : "데이터베이스 파일" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Metin Boyutunu Küçült" + "value" : "Veritabanı Dosyası" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giảm cỡ chữ" + "value" : "Tệp cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "减小文字大小" + "value" : "数据库文件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "縮小文字大小" + "value" : "資料庫檔案" } } } }, - "Decrease font size" : { + "Database file not found: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "글꼴 크기 줄이기" + "value" : "데이터베이스 파일을 찾을 수 없습니다: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yazı boyutunu küçült" + "value" : "Veritabanı dosyası bulunamadı: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giảm cỡ chữ" + "value" : "Không tìm thấy tệp cơ sở dữ liệu: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "减小字号" + "value" : "未找到数据库文件: %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "縮小字型大小" + "value" : "找不到資料庫檔案:%@" } } } }, - "Decrypt" : { + "Database file path is required" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "복호화" + "value" : "데이터베이스 파일 경로가 필요합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Şifre Çöz" + "value" : "Veritabanı dosya yolu gereklidir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giải mã" + "value" : "Cần đường dẫn tệp cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "解密" + "value" : "必须填写数据库文件路径" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "解密" + "value" : "必須填寫資料庫檔案路徑" } } } }, - "Decryption failed: %@" : { + "Database Index" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "복호화 실패: %@" + "value" : "데이터베이스 인덱스" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Şifre çözme başarısız: %@" + "value" : "Veritabanı İndeksi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giải mã thất bại: %@" + "value" : "Chỉ mục cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "解密失败:%@" + "value" : "数据库索引" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "解密失敗:%@" + "value" : "資料庫索引" } } } }, - "Default" : { + "Database Index: %lld" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기본값" + "value" : "데이터베이스 인덱스: %lld" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Varsayılan" + "value" : "Veritabanı İndeksi: %lld" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mặc định" + "value" : "Chỉ mục cơ sở dữ liệu: %lld" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "默认" + "value" : "数据库索引: %lld" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "預設" + "value" : "資料庫索引:%lld" } } } }, - "Default Column" : { + "Database it lives in" : { + + }, + "Database it ran against" : { + + }, + "Database it ran on" : { + + }, + "Database List" : { + + }, + "Database name" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기본 열" + "value" : "데이터베이스 이름" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Varsayılan Sütun" + "value" : "Veritabanı adı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cột mặc định" + "value" : "Tên cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "默认列" + "value" : "数据库名称" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "預設欄位" + "value" : "資料庫名稱" } } } }, - "Default Operator" : { + "Database Name" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기본 연산자" + "value" : "데이터베이스 이름" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Varsayılan Operatör" + "value" : "Veritabanı Adı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Toán tử mặc định" + "value" : "Tên cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "默认运算符" + "value" : "数据库名称" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "預設運算子" + "value" : "資料庫名稱" } } } }, - "Default Port" : { + "Database name (uses connection's current database if omitted)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기본 포트" + "value" : "데이터베이스 이름(생략하면 연결의 현재 데이터베이스 사용)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Varsayılan Port" + "value" : "Veritabanı adı (boş bırakılırsa bağlantının geçerli veritabanı kullanılır)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cổng mặc định" + "value" : "Tên cơ sở dữ liệu (nếu bỏ trống sẽ dùng cơ sở dữ liệu hiện tại của kết nối)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "默认端口" + "value" : "数据库名称(留空时使用连接的当前数据库)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "預設連接埠" + "value" : "資料庫名稱(留空時使用連線目前的資料庫)" } } } }, - "Default Port:" : { + "Database name (uses current if omitted)" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기본 포트:" + "value" : "데이터베이스 이름(생략하면 현재 데이터베이스 사용)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Varsayılan Port:" + "value" : "Veritabanı adı (boş bırakılırsa geçerli olan kullanılır)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cổng mặc định:" + "value" : "Tên cơ sở dữ liệu (nếu bỏ trống sẽ dùng cơ sở dữ liệu hiện tại)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "默认端口:" + "value" : "数据库名称(留空时使用当前数据库)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "預設連接埠:" + "value" : "資料庫名稱(留空時使用目前的資料庫)" } } } }, - "Default Value" : { - "extractionState" : "stale", + "Database name is required" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기본값" + "value" : "데이터베이스 이름이 필요합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Varsayılan Değer" + "value" : "Veritabanı adı gereklidir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giá trị mặc định" + "value" : "Cần tên cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "默认值" + "value" : "必须填写数据库名称" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "預設值" + "value" : "必須填寫資料庫名稱" } } } }, - "Default connection policy" : { - "extractionState" : "stale", + "Database name to switch to" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기본 연결 정책" + "value" : "전환할 데이터베이스 이름" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Varsayılan bağlantı ilkesi" + "value" : "Geçiş yapılacak veritabanı adı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chính sách kết nối mặc định" + "value" : "Tên cơ sở dữ liệu cần chuyển sang" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "默认连接策略" + "value" : "要切换到的数据库名称" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "預設連線原則" + "value" : "要切換到的資料庫名稱" } } } }, - "Default layout for new connections:" : { + "Database name. Uses the connection's current database when omitted." : { + + }, + "Database names a connection can reach." : { + + }, + "Database names this connection can reach" : { + + }, + "Database names, sorted" : { + + }, + "Database now selected" : { + + }, + "Database Schema" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 연결의 기본 레이아웃:" + "value" : "데이터베이스 스키마" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni bağlantılar için varsayılan düzen:" + "value" : "Veritabanı Şeması" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bố cục mặc định cho kết nối mới:" + "value" : "Schema cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新连接的默认布局:" + "value" : "数据库 Schema" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新連線的預設版面配置:" + "value" : "資料庫綱要" } } } }, - "Default page size:" : { + "Database Size" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기본 페이지 크기:" + "value" : "데이터베이스 크기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Varsayılan sayfa boyutu:" + "value" : "Veritabanı Boyutu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kích thước trang mặc định:" + "value" : "Kích thước cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "默认页面大小:" + "value" : "数据库大小" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "預設頁面大小:" + "value" : "資料庫大小" } } } }, - "Default row limit" : { + "Database Switch Failed" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기본 행 제한" + "value" : "데이터베이스 전환 실패" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Varsayılan satır limiti" + "value" : "Veritabanı Değiştirme Başarısız" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giới hạn dòng mặc định" + "value" : "Chuyển cơ sở dữ liệu thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "默认行数限制" + "value" : "切换数据库失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "預設列數上限" + "value" : "切換資料庫失敗" } } } }, - "Default row sort is applied when a table first opens. Click a column header to override it." : { + "Database Switcher" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블을 처음 열면 기본 행 정렬이 적용됩니다. 열 머리글을 클릭하면 재정의할 수 있습니다." + "value" : "데이터베이스 전환기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Varsayılan satır sıralaması, bir tablo ilk açıldığında uygulanır. Geçersiz kılmak için bir sütun başlığına tıklayın." + "value" : "Veritabanı Değiştirici" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sắp xếp dòng mặc định được áp dụng khi bảng mở lần đầu. Nhấp vào tiêu đề cột để ghi đè." + "value" : "Chuyển đổi cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "首次打开表时应用默认行排序。点击列标题可覆盖它。" + "value" : "数据库切换器" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "首次開啟資料表時套用預設列排序。點擊欄標題可覆寫它。" + "value" : "資料庫切換器" } } } }, - "Default row sort:" : { + "Database that was created" : { + + }, + "Database that was dropped" : { + + }, + "Database the listing covers" : { + + }, + "Database the schemas belong to" : { + + }, + "Database the session is on" : { + + }, + "Database the session opened on" : { + + }, + "Database the statement ran against" : { + + }, + "Database the tab is on" : { + + }, + "Database the table lives in" : { + + }, + "Database to read. Uses the connection's current database when omitted" : { + + }, + "Database to report on. Omit for all." : { + + }, + "Database Type" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기본 행 정렬:" + "value" : "데이터베이스 유형" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Varsayılan satır sıralaması:" + "value" : "Veritabanı Türü" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sắp xếp hàng mặc định:" + "value" : "Loại Database" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "默认行排序:" + "value" : "数据库类型" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "預設的列排序:" + "value" : "資料庫類型" } } } }, - "Default token" : { + "Database type \"%@\" is not installed" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기본 토큰" + "value" : "다음 데이터베이스 유형이 설치되어 있지 않습니다: \"%@\"" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Varsayılan token" + "value" : "\"%@\" veritabanı türü yüklü değil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Token mặc định" + "value" : "Loại cơ sở dữ liệu \"%@\" chưa được cài đặt" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "默认令牌" + "value" : "数据库类型 \"%@\" 未安装" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "預設權杖" + "value" : "資料庫類型「%@」未安裝" } } } }, - "Default value" : { + "Database Type:" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기본값" + "value" : "데이터베이스 유형:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Varsayılan değer" + "value" : "Veritabanı Türü:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giá trị mặc định" + "value" : "Loại cơ sở dữ liệu:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "默认值" + "value" : "数据库类型:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "預設值" + "value" : "資料庫類型:" } } } }, - "Default view:" : { + "Database type: %@" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기본 보기:" + "value" : "데이터베이스 유형: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Varsayılan görünüm:" + "value" : "Veritabanı türü: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chế độ xem mặc định:" + "value" : "Loại cơ sở dữ liệu: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "默认视图:" + "value" : "数据库类型: %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "預設檢視:" + "value" : "資料庫類型:%@" } } } }, - "Default:" : { - "extractionState" : "stale", + "Database URL" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기본값:" + "value" : "데이터베이스 URL" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Varsayılan:" + "value" : "Veritabanı URL" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mặc định:" + "value" : "URL cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "默认:" + "value" : "数据库 URL" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "預設:" + "value" : "資料庫 URL" } } } }, - "Delete" : { + "database_name" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "삭제" + "value" : "database_name" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sil" + "value" : "database_name" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa" + "value" : "database_name" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除" + "value" : "database_name" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除" + "value" : "database_name" } } } }, - "Delete \"%@\"" : { + "Database: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "\"%@\" 삭제" + "value" : "데이터베이스: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "\"%@\" Sil" + "value" : "Veritabanı: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa \"%@\"" + "value" : "Cơ sở dữ liệu: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除「%@」" + "value" : "数据库: %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除「%@」" + "value" : "資料庫:%@" } } } }, - "Delete %d Connections" : { + "Database/Schema:" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 %d개 삭제" + "value" : "데이터베이스/스키마:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%d Bağlantıyı Sil" + "value" : "Veritabanı/Şema:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xoá %d kết nối" + "value" : "Cơ sở dữ liệu/Schema:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除%d个连接" + "value" : "数据库/Schema:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除 %d 個連線" + "value" : "資料庫/綱要:" } } } }, - "Delete %lld Connections" : { - "extractionState" : "stale", + "Databases" : { "localizations" : { - "en" : { - "variations" : { - "plural" : { - "one" : { - "stringUnit" : { - "state" : "translated", - "value" : "Delete %lld Connection" - } - }, - "other" : { - "stringUnit" : { - "state" : "translated", - "value" : "Delete %lld Connections" - } - } - } - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 %lld개 삭제" + "value" : "데이터베이스" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%lld Bağlantıyı Sil" + "value" : "Veritabanları" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa %lld Kết nối" + "value" : "Cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除 %lld 个连接" + "value" : "数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除 %lld 個連線" + "value" : "資料庫" } } } }, - "Delete %lld columns?" : { + "Databases of %@" : { + + }, + "Databases, sorted by name" : { + + }, + "Date" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열 %lld개를 삭제하시겠습니까?" + "value" : "날짜" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%lld sütun silinsin mi?" + "value" : "Tarih" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa %lld cột?" + "value" : "Ngày" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除 %lld 列?" + "value" : "日期" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "要刪除 %lld 個欄位嗎?" + "value" : "日期" } } } }, - "Delete %lld rows?" : { + "Date format:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "행 %lld개를 삭제하시겠습니까?" + "value" : "날짜 형식:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%lld satır silinsin mi?" + "value" : "Tarih biçimi:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa %lld dòng?" + "value" : "Định dạng ngày:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除 %lld 行?" + "value" : "日期格式:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "要刪除 %lld 列嗎?" + "value" : "日期格式:" } } } }, - "Delete (⌫)" : { - "extractionState" : "stale", + "Date Range" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "삭제(⌫)" + "value" : "날짜 범위" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sil (⌫)" + "value" : "Tarih Aralığı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa (⌫)" + "value" : "Khoảng thời gian" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除 (⌫)" + "value" : "日期范围" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除 (⌫)" + "value" : "日期範圍" } } } }, - "Delete Check Constraint" : { - "extractionState" : "stale", + "db %d" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "CHECK 제약 조건 삭제" + "value" : "db %d" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kontrol Kısıtını Sil" + "value" : "db %d" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa ràng buộc kiểm tra" + "value" : "db %d" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除检查约束" + "value" : "db %d" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除檢查約束" + "value" : "db %d" } } } }, - "Delete Column" : { + "Deactivate" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열 삭제" + "value" : "비활성화" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sütunu Sil" + "value" : "Devre Dışı Bırak" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa cột" + "value" : "Hủy kích hoạt" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除列" + "value" : "停用" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除欄位" + "value" : "停用" } } } }, - "Delete Columns" : { + "Deactivate License?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열 삭제" + "value" : "라이선스를 비활성화하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sütunları Sil" + "value" : "Lisans Devre Dışı Bırakılsın mı?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa cột" + "value" : "Hủy kích hoạt giấy phép?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除列" + "value" : "停用许可证?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除欄位" + "value" : "停用授權?" } } } }, - "Delete Connection" : { + "Deactivate…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 삭제" + "value" : "비활성화…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantıyı Sil" + "value" : "Devre Dışı Bırak…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa kết nối" + "value" : "Hủy kích hoạt…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除连接" + "value" : "停用…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除連線" + "value" : "停用…" } } } }, - "Delete Favorite?" : { + "Deactivated" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "즐겨찾기를 삭제하시겠습니까?" + "value" : "비활성화됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Favoriyi Sil?" + "value" : "Devre Dışı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xoá mục yêu thích?" + "value" : "Đã hủy kích hoạt" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除收藏?" + "value" : "已停用" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除我的最愛?" + "value" : "已停用" } } } }, - "Delete Folder" : { + "Deactivation Failed" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "폴더 삭제" + "value" : "비활성화 실패" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Klasörü Sil" + "value" : "Devre Dışı Bırakma Başarısız" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xoá thư mục" + "value" : "Hủy kích hoạt thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除文件夹" + "value" : "停用失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除資料夾" + "value" : "停用失敗" } } } }, - "Delete Folder?" : { + "Debounce: %d ms" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "폴더를 삭제하시겠습니까?" + "value" : "디바운스: %d ms" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Klasör Silinsin mi?" + "value" : "Bekleme: %d ms" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xoá thư mục?" + "value" : "Debounce: %d ms" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除文件夹?" + "value" : "防抖:%d 毫秒" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除資料夾?" + "value" : "去抖動:%d 毫秒" } } } }, - "Delete Foreign Key" : { + "Decimal" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "외래 키 삭제" + "value" : "10진수" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yabancı Anahtarı Sil" + "value" : "Ondalık" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa khóa ngoại" + "value" : "Thập phân" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除外键" + "value" : "十进制" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除外鍵" + "value" : "十進位" } } } }, - "Delete Group" : { + "Declared column type" : { + + }, + "Decompression failed with exit status %d" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "그룹 삭제" + "value" : "종료 상태 %d(으)로 압축 해제에 실패했습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Grubu Sil" + "value" : "Açma %d çıkış koduyla başarısız oldu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa nhóm" + "value" : "Giải nén thất bại với mã thoát %d" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除分组" + "value" : "解压失败,退出状态 %d" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除群組" + "value" : "解壓縮失敗,結束狀態 %d" } } } }, - "Delete Index" : { + "Decrease font size" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "인덱스 삭제" + "value" : "글꼴 크기 줄이기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İndeksi Sil" + "value" : "Yazı boyutunu küçült" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa chỉ mục" + "value" : "Giảm cỡ chữ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除索引" + "value" : "减小字号" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除索引" + "value" : "縮小字型大小" } } } }, - "Delete Line" : { + "Decrease Text Size" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "줄 삭제" + "value" : "텍스트 크기 줄이기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satırı Sil" + "value" : "Metin Boyutunu Küçült" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa dòng" + "value" : "Giảm cỡ chữ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除行" + "value" : "减小文字大小" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除行" + "value" : "縮小文字大小" } } } }, - "Delete Preset" : { + "Decrypt" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "프리셋 삭제" + "value" : "복호화" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ön Ayarı Sil" + "value" : "Şifre Çöz" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa mẫu đặt trước" + "value" : "Giải mã" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除预设" + "value" : "解密" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除預設組合" + "value" : "解密" } } } }, - "Delete Profile" : { + "Decryption failed: %@" : { + "extractionState" : "stale", "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Delete Profile" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "프로필 삭제" + "value" : "복호화 실패: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Profili Sil" + "value" : "Şifre çözme başarısız: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xoá hồ sơ" + "value" : "Giải mã thất bại: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除配置" + "value" : "解密失败:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除設定檔" + "value" : "解密失敗:%@" } } } }, - "Delete Row" : { + "Default" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "행 삭제" + "value" : "기본값" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satırı Sil" + "value" : "Varsayılan" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xoá dòng" + "value" : "Mặc định" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除行" + "value" : "默认" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除列" + "value" : "預設" } } } }, - "Delete Rows" : { + "DEFAULT" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "행 삭제" + "value" : "DEFAULT" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satırları Sil" + "value" : "VARSAYILAN" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xoá dòng" + "value" : "MẶC ĐỊNH" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除行" + "value" : "默认" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除列" + "value" : "預設" } } } }, - "Delete SSH Profile?" : { + "Default collation" : { + + }, + "Default Column" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Delete SSH Profile?" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 프로필을 삭제하시겠습니까?" + "value" : "기본 열" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH Profili Silinsin mi?" + "value" : "Varsayılan Sütun" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xoá hồ sơ SSH?" + "value" : "Cột mặc định" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除 SSH 配置?" + "value" : "默认列" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除 SSH 設定檔?" + "value" : "預設欄位" } } } }, - "Delete Selected" : { + "Default connection policy" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "선택 항목 삭제" + "value" : "기본 연결 정책" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Seçileni Sil" + "value" : "Varsayılan bağlantı ilkesi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa mục đã chọn" + "value" : "Chính sách kết nối mặc định" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除所选" + "value" : "默认连接策略" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除所選" + "value" : "預設連線原則" } } } }, - "Delete Theme" : { + "Default layout for new connections:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테마 삭제" + "value" : "새 연결의 기본 레이아웃:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Temayı Sil" + "value" : "Yeni bağlantılar için varsayılan düzen:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xoá chủ đề" + "value" : "Bố cục mặc định cho kết nối mới:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除主题" + "value" : "新连接的默认布局:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除主題" + "value" : "新連線的預設版面配置:" } } } }, - "Delete Word Backward" : { + "Default Operator" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이전 단어 삭제" + "value" : "기본 연산자" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Önceki Kelimeyi Sil" + "value" : "Varsayılan Operatör" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xoá từ liền trước" + "value" : "Toán tử mặc định" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除前一个单词" + "value" : "默认运算符" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除前一個單字" + "value" : "預設運算子" } } } }, - "Delete Word Forward" : { + "Default page size:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다음 단어 삭제" + "value" : "기본 페이지 크기:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sonraki Kelimeyi Sil" + "value" : "Varsayılan sayfa boyutu:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xoá từ liền sau" + "value" : "Kích thước trang mặc định:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除后一个单词" + "value" : "默认页面大小:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除後一個單字" + "value" : "預設頁面大小:" } } } }, - "Delete this column?" : { + "Default Port" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 열을 삭제하시겠습니까?" + "value" : "기본 포트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu sütun silinsin mi?" + "value" : "Varsayılan Port" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa cột này?" + "value" : "Cổng mặc định" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除此列?" + "value" : "默认端口" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "要刪除這個欄位嗎?" + "value" : "預設連接埠" } } } }, - "Delete this row?" : { + "Default Port:" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 행을 삭제하시겠습니까?" + "value" : "기본 포트:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu satır silinsin mi?" + "value" : "Varsayılan Port:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa dòng này?" + "value" : "Cổng mặc định:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除此行?" + "value" : "默认端口:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "要刪除這一列嗎?" + "value" : "預設連接埠:" } } } }, - "Delete to Beginning of Line" : { + "Default row limit" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "줄 시작까지 삭제" + "value" : "기본 행 제한" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satır Başına Kadar Sil" + "value" : "Varsayılan satır limiti" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xoá đến đầu dòng" + "value" : "Giới hạn dòng mặc định" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除到行首" + "value" : "默认行数限制" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除到行首" + "value" : "預設列數上限" } } } }, - "Delete token?" : { + "Default row sort is applied when a table first opens. Click a column header to override it." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "토큰을 삭제하시겠습니까?" + "value" : "테이블을 처음 열면 기본 행 정렬이 적용됩니다. 열 머리글을 클릭하면 재정의할 수 있습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Token silinsin mi?" + "value" : "Varsayılan satır sıralaması, bir tablo ilk açıldığında uygulanır. Geçersiz kılmak için bir sütun başlığına tıklayın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa token?" + "value" : "Sắp xếp dòng mặc định được áp dụng khi bảng mở lần đầu. Nhấp vào tiêu đề cột để ghi đè." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除令牌?" + "value" : "首次打开表时应用默认行排序。点击列标题可覆盖它。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除權杖?" + "value" : "首次開啟資料表時套用預設列排序。點擊欄標題可覆寫它。" } } } }, - "Deleted" : { + "Default row sort:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "삭제됨" + "value" : "기본 행 정렬:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Silindi" + "value" : "Varsayılan satır sıralaması:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã xoá" + "value" : "Sắp xếp hàng mặc định:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已删除" + "value" : "默认行排序:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已刪除" + "value" : "預設的列排序:" } } } }, - "Deleted Text" : { + "Default token" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "삭제된 텍스트" + "value" : "기본 토큰" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Silinen Metin" + "value" : "Varsayılan token" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Văn bản đã xoá" + "value" : "Token mặc định" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已删除文本" + "value" : "默认令牌" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已刪除文字" + "value" : "預設權杖" } } } }, - "Deleted connection (%@)" : { + "Default value" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 삭제됨(%@)" + "value" : "기본값" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Silinen bağlantı (%@)" + "value" : "Varsayılan değer" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã xóa kết nối (%@)" + "value" : "Giá trị mặc định" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已删除的连接(%@)" + "value" : "默认值" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已刪除的連線 (%@)" + "value" : "預設值" } } } }, - "Delete…" : { + "Default Value" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "삭제…" + "value" : "기본값" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sil…" + "value" : "Varsayılan Değer" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa…" + "value" : "Giá trị mặc định" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除…" + "value" : "默认值" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除…" + "value" : "預設值" } } } }, - "Delimiter" : { + "Default view:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "구분자" + "value" : "기본 보기:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ayırıcı" + "value" : "Varsayılan görünüm:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dấu phân cách" + "value" : "Chế độ xem mặc định:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "分隔符" + "value" : "默认视图:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "分隔符號" + "value" : "預設檢視:" } } } }, - "Denied" : { + "Default:" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "거부됨" + "value" : "기본값:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Reddedildi" + "value" : "Varsayılan:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã từ chối" + "value" : "Mặc định:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已拒绝" + "value" : "默认:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已拒絕" + "value" : "預設:" } } } }, - "Deny" : { + "Definition" : { + + }, + "Definitions" : { + + }, + "Definitions Compare Structure" : { + + }, + "Delete" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "거부" + "value" : "삭제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Reddet" + "value" : "Sil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Từ chối" + "value" : "Xóa" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "拒绝" + "value" : "删除" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "拒絕" + "value" : "刪除" } } } }, - "Describe Table" : { + "Delete \"%@\"" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 설명" + "value" : "\"%@\" 삭제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tabloyu Açıkla" + "value" : "\"%@\" Sil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mô tả bảng" + "value" : "Xóa \"%@\"" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "描述表" + "value" : "删除「%@」" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "描述資料表" + "value" : "刪除「%@」" } } } }, - "Describe the columns of a table or view." : { + "Delete (⌫)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 또는 뷰의 열을 설명합니다." + "value" : "삭제(⌫)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bir tablonun veya görünümün sütunlarını açıklar." + "value" : "Sil (⌫)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mô tả các cột của một bảng hoặc view." + "value" : "Xóa (⌫)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "描述表或视图的列。" + "value" : "删除 (⌫)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "描述資料表或檢視表的欄位。" + "value" : "刪除 (⌫)" } } } }, - "Description" : { + "Delete %d Connections" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "설명" + "value" : "연결 %d개 삭제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Açıklama" + "value" : "%d Bağlantıyı Sil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mô tả" + "value" : "Xoá %d kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "描述" + "value" : "删除%d个连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "描述" + "value" : "刪除 %d 個連線" } } } }, - "Deselect All" : { + "Delete %lld columns?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "전체 선택 해제" + "value" : "열 %lld개를 삭제하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tümünü Bırak" + "value" : "%lld sütun silinsin mi?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bỏ chọn tất cả" + "value" : "Xóa %lld cột?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "取消全选" + "value" : "删除 %lld 列?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "取消全選" + "value" : "要刪除 %lld 個欄位嗎?" } } } }, - "Destination:" : { + "Delete %lld Connections" : { + "extractionState" : "stale", "localizations" : { + "en" : { + "variations" : { + "plural" : { + "one" : { + "stringUnit" : { + "state" : "translated", + "value" : "Delete %lld Connection" + } + }, + "other" : { + "stringUnit" : { + "state" : "translated", + "value" : "Delete %lld Connections" + } + } + } + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "대상:" + "value" : "연결 %lld개 삭제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Hedef:" + "value" : "%lld Bağlantıyı Sil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đích:" + "value" : "Xóa %lld Kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "目标:" + "value" : "删除 %lld 个连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "目的地:" + "value" : "刪除 %lld 個連線" } } } }, - "Destructive Changes" : { + "Delete %lld rows?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "파괴적 변경" + "value" : "행 %lld개를 삭제하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yıkıcı Değişiklikler" + "value" : "%lld satır silinsin mi?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thay đổi có thể mất dữ liệu" + "value" : "Xóa %lld dòng?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "破坏性更改" + "value" : "删除 %lld 行?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "破壞性變更" + "value" : "要刪除 %lld 列嗎?" } } } }, - "Destructive operations are not permitted for this client" : { + "Delete Check Constraint" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 클라이언트에서는 파괴적 작업이 허용되지 않습니다" + "value" : "CHECK 제약 조건 삭제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu istemci için yıkıcı işlemlere izin verilmiyor" + "value" : "Kontrol Kısıtını Sil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Client này không được phép thực hiện thao tác phá hủy" + "value" : "Xóa ràng buộc kiểm tra" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此客户端不允许执行破坏性操作" + "value" : "删除检查约束" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此用戶端不允許執行破壞性操作" + "value" : "刪除檢查約束" } } } }, - "Detach" : { + "Delete Column" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "분리" + "value" : "열 삭제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ayır" + "value" : "Sütunu Sil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tách rời" + "value" : "Xóa cột" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "分离" + "value" : "删除列" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "分離" + "value" : "刪除欄位" } } } }, - "Detach Partition" : { + "Delete Columns" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "파티션 분리" + "value" : "열 삭제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bölümü Ayır" + "value" : "Sütunları Sil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tách rời phân vùng" + "value" : "Xóa cột" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "分离分区" + "value" : "删除列" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "分離分割區" + "value" : "刪除欄位" } } } }, - "Detach Partition?" : { + "Delete Connection" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "파티션을 분리하시겠습니까?" + "value" : "연결 삭제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bölüm Ayrılsın mı?" + "value" : "Bağlantıyı Sil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tách rời phân vùng?" + "value" : "Xóa kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "分离分区?" + "value" : "删除连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "要分離分割區嗎?" + "value" : "刪除連線" } } } }, - "Detach selected partition" : { + "Delete Favorite?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "선택한 파티션 분리" + "value" : "즐겨찾기를 삭제하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Seçili bölümü ayır" + "value" : "Favoriyi Sil?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tách rời phân vùng đã chọn" + "value" : "Xoá mục yêu thích?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "分离选定的分区" + "value" : "删除收藏?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "分離選取的分割區" + "value" : "刪除我的最愛?" } } } }, - "Details" : { + "Delete Folder" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "세부사항" + "value" : "폴더 삭제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ayrıntılar" + "value" : "Klasörü Sil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chi tiết" + "value" : "Xoá thư mục" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "详情" + "value" : "删除文件夹" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "詳細資訊" + "value" : "刪除資料夾" } } } }, - "Details: %@" : { + "Delete Folder?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "세부사항: %@" + "value" : "폴더를 삭제하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ayrıntılar: %@" + "value" : "Klasör Silinsin mi?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chi tiết: %@" + "value" : "Xoá thư mục?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "详细信息:%@" + "value" : "删除文件夹?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "詳細資訊:%@" + "value" : "刪除資料夾?" } } } }, - "Detected" : { + "Delete Foreign Key" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "감지됨" + "value" : "외래 키 삭제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Algılandı" + "value" : "Yabancı Anahtarı Sil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã phát hiện" + "value" : "Xóa khóa ngoại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已检测到" + "value" : "删除外键" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已偵測到" + "value" : "刪除外鍵" } } } }, - "Development" : { + "Delete Group" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "개발" + "value" : "그룹 삭제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geliştirme" + "value" : "Grubu Sil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phát triển" + "value" : "Xóa nhóm" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "开发" + "value" : "删除分组" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開發" + "value" : "刪除群組" } } } }, - "Diagnostic Info" : { + "Delete Index" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "진단 정보" + "value" : "인덱스 삭제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tanılama Bilgileri" + "value" : "İndeksi Sil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thông tin chẩn đoán" + "value" : "Xóa chỉ mục" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "诊断信息" + "value" : "删除索引" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "診斷資訊" + "value" : "刪除索引" } } } }, - "Diagram" : { + "Delete is off by default, so a first run cannot remove a row from the target." : { + + }, + "Delete Line" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다이어그램" + "value" : "줄 삭제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Diyagram" + "value" : "Satırı Sil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sơ đồ" + "value" : "Xóa dòng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "图表" + "value" : "删除行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "圖表" + "value" : "刪除行" } } } }, - "Diff layout" : { + "Delete Preset" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "차이 비교 레이아웃" + "value" : "프리셋 삭제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Fark düzeni" + "value" : "Ön Ayarı Sil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bố cục so sánh" + "value" : "Xóa mẫu đặt trước" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "差异布局" + "value" : "删除预设" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "差異版面" + "value" : "刪除預設組合" } } } }, - "Digits" : { + "Delete Profile" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Delete Profile" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "자릿수" + "value" : "프로필 삭제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Rakamlar" + "value" : "Profili Sil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Số chữ số" + "value" : "Xoá hồ sơ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "位数" + "value" : "删除配置" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "位數" + "value" : "刪除設定檔" } } } }, - "Disable" : { + "Delete Row" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "비활성화" + "value" : "행 삭제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Devre Dışı Bırak" + "value" : "Satırı Sil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tắt" + "value" : "Xoá dòng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "禁用" + "value" : "删除行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "停用" + "value" : "刪除列" } } } }, - "Disable %@" : { + "Delete row %@ from %@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Delete row %1$@ from %2$@" + } + } + } + }, + "Delete Rows" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 비활성화" + "value" : "행 삭제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ Kapat" + "value" : "Satırları Sil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tắt %@" + "value" : "Xoá dòng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "关闭 %@" + "value" : "删除行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "關閉 %@" + "value" : "刪除列" } } } }, - "Disable SSH Tunnel" : { - "extractionState" : "stale", + "Delete rows the source does not have" : { + + }, + "Delete Selected" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 터널 비활성화" + "value" : "선택 항목 삭제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH Tünelini Devre Dışı Bırak" + "value" : "Seçileni Sil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tắt SSH Tunnel" + "value" : "Xóa mục đã chọn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "禁用 SSH 隧道" + "value" : "删除所选" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "停用 SSH 隧道" + "value" : "刪除所選" } } } }, - "Disable foreign key checks" : { - "extractionState" : "stale", + "Delete SSH Profile?" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Delete SSH Profile?" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "외래 키 검사 비활성화" + "value" : "SSH 프로필을 삭제하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yabancı anahtar kontrollerini kapat" + "value" : "SSH Profili Silinsin mi?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tắt kiểm tra khóa ngoại" + "value" : "Xoá hồ sơ SSH?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "禁用外键检查" + "value" : "删除 SSH 配置?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "停用外鍵檢查" + "value" : "刪除 SSH 設定檔?" } } } }, - "Disabled" : { + "Delete Theme" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "비활성화됨" + "value" : "테마 삭제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Devre Dışı" + "value" : "Temayı Sil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã tắt" + "value" : "Xoá chủ đề" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已禁用" + "value" : "删除主题" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已停用" + "value" : "刪除主題" } } } }, - "Discard" : { + "Delete this column?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "폐기" + "value" : "이 열을 삭제하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Vazgeç" + "value" : "Bu sütun silinsin mi?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hủy bỏ" + "value" : "Xóa cột này?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "丢弃" + "value" : "删除此列?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "捨棄" + "value" : "要刪除這個欄位嗎?" } } } }, - "Discard Changes?" : { + "Delete this row?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "변경 사항을 폐기하시겠습니까?" + "value" : "이 행을 삭제하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Değişiklikler Atılsın mı?" + "value" : "Bu satır silinsin mi?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hủy bỏ thay đổi?" + "value" : "Xóa dòng này?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "丢弃更改?" + "value" : "删除此行?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "要捨棄變更嗎?" + "value" : "要刪除這一列嗎?" } } } }, - "Discard Unsaved Changes?" : { + "Delete to Beginning of Line" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "저장하지 않은 변경 사항을 폐기하시겠습니까?" + "value" : "줄 시작까지 삭제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kaydedilmemiş Değişiklikler Atılsın mı?" + "value" : "Satır Başına Kadar Sil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hủy bỏ thay đổi chưa lưu?" + "value" : "Xoá đến đầu dòng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "丢弃未保存的更改?" + "value" : "删除到行首" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "要捨棄未儲存的變更嗎?" + "value" : "刪除到行首" } } } }, - "Disconnect" : { + "Delete token?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 해제" + "value" : "토큰을 삭제하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantıyı Kes" + "value" : "Token silinsin mi?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ngắt kết nối" + "value" : "Xóa token?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "断开连接" + "value" : "删除令牌?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "中斷連線" + "value" : "刪除權杖?" } } } }, - "Disconnect client?" : { + "Delete Word Backward" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "클라이언트 연결을 해제하시겠습니까?" + "value" : "이전 단어 삭제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İstemcinin bağlantısı kesilsin mi?" + "value" : "Önceki Kelimeyi Sil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ngắt kết nối client?" + "value" : "Xoá từ liền trước" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "断开客户端连接?" + "value" : "删除前一个单词" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "要中斷用戶端連線嗎?" + "value" : "刪除前一個單字" } } } }, - "Disconnect from a database" : { + "Delete Word Forward" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 연결 해제" + "value" : "다음 단어 삭제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bir veritabanı bağlantısını kes" + "value" : "Sonraki Kelimeyi Sil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ngắt kết nối khỏi cơ sở dữ liệu" + "value" : "Xoá từ liền sau" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "断开数据库连接" + "value" : "删除后一个单词" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "中斷與資料庫的連線" + "value" : "刪除後一個單字" } } } }, - "Disconnect from “%@”?" : { + "Delete…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "“%@” 연결을 해제하시겠습니까?" + "value" : "삭제…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "“%@” bağlantısı kesilsin mi?" + "value" : "Sil…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ngắt kết nối khỏi “%@”?" + "value" : "Xóa…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "要断开与“%@”的连接吗?" + "value" : "删除…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "要中斷與「%@」的連線嗎?" + "value" : "刪除…" } } } }, - "Disconnect the selected client" : { + "Deleted" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "선택한 클라이언트 연결 해제" + "value" : "삭제됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Seçili istemcinin bağlantısını kes" + "value" : "Silindi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ngắt kết nối client đã chọn" + "value" : "Đã xoá" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "断开所选客户端的连接" + "value" : "已删除" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "中斷所選用戶端的連線" + "value" : "已刪除" } } } }, - "Disconnected" : { + "Deleted connection (%@)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결이 해제되었습니다" + "value" : "연결 삭제됨(%@)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı Kesildi" + "value" : "Silinen bağlantı (%@)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã ngắt kết nối" + "value" : "Đã xóa kết nối (%@)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已断开连接" + "value" : "已删除的连接(%@)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已中斷連線" + "value" : "已刪除的連線 (%@)" } } } }, - "Disconnected from %@" : { + "Deleted Text" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 연결이 해제되었습니다" + "value" : "삭제된 텍스트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ bağlantısı kesildi" + "value" : "Silinen Metin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã ngắt kết nối khỏi %@" + "value" : "Văn bản đã xoá" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已断开与 %@ 的连接" + "value" : "已删除文本" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已中斷與 %@ 的連線" + "value" : "已刪除文字" } } } }, - "Disk Usage" : { + "Deleting row %@ from %@ permanently removes it." : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Deleting row %1$@ from %2$@ permanently removes it." + } + } + } + }, + "Delimiter" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "디스크 사용량" + "value" : "구분자" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Disk Kullanımı" + "value" : "Ayırıcı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sử dụng ổ đĩa" + "value" : "Dấu phân cách" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "磁盘使用量" + "value" : "分隔符" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "磁碟使用量" + "value" : "分隔符號" } } } }, - "Dismiss" : { + "Denied" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "닫기" + "value" : "거부됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kapat" + "value" : "Reddedildi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bỏ qua" + "value" : "Đã từ chối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "关闭" + "value" : "已拒绝" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "關閉" + "value" : "已拒絕" } } } }, - "Dismiss error" : { + "Deny" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "오류 닫기" + "value" : "거부" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Hatayı kapat" + "value" : "Reddet" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bỏ qua lỗi" + "value" : "Từ chối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "关闭错误" + "value" : "拒绝" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "關閉錯誤" + "value" : "拒絕" } } } }, - "Display" : { - "extractionState" : "stale", + "Describe Create Database Options" : { + + }, + "Describe one table: columns, indexes, foreign keys, DDL, and an approximate row count. Every part is read against the same database and schema." : { + + }, + "Describe Table" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "표시" + "value" : "테이블 설명" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Görüntüle" + "value" : "Tabloyu Açıkla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiển thị" + "value" : "Mô tả bảng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示" + "value" : "描述表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示" + "value" : "描述資料表" } } } }, - "Display As" : { + "Describe the columns of a table or view." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "표시 형식" + "value" : "테이블 또는 뷰의 열을 설명합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Farklı Görüntüle" + "value" : "Bir tablonun veya görünümün sütunlarını açıklar." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiển thị dạng" + "value" : "Mô tả các cột của một bảng hoặc view." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示为" + "value" : "描述表或视图的列。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示為" + "value" : "描述資料表或檢視表的欄位。" } } } }, - "Distributed SQL query engine for data lakes" : { + "Description" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터 레이크용 분산 SQL 쿼리 엔진" + "value" : "설명" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veri gölleri için dağıtık SQL sorgu motoru" + "value" : "Açıklama" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Công cụ truy vấn SQL phân tán cho data lake" + "value" : "Mô tả" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "面向数据湖的分布式 SQL 查询引擎" + "value" : "描述" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "適用於資料湖的分散式 SQL 查詢引擎" + "value" : "描述" } } } }, - "Distributed SQL, PostgreSQL-compatible" : { + "Deselect All" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "PostgreSQL 호환 분산 SQL" + "value" : "전체 선택 해제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dağıtık SQL, PostgreSQL uyumlu" + "value" : "Tümünü Bırak" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "SQL phân tán, tương thích PostgreSQL" + "value" : "Bỏ chọn tất cả" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "分布式 SQL,兼容 PostgreSQL" + "value" : "取消全选" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "分散式 SQL,相容 PostgreSQL" + "value" : "取消全選" } } } }, - "Distributed SQLite by Turso" : { + "Destination:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Turso의 분산형 SQLite" + "value" : "대상:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Turso'dan dağıtık SQLite" + "value" : "Hedef:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "SQLite phân tán của Turso" + "value" : "Đích:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Turso 出品的分布式 SQLite" + "value" : "目标:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Turso 推出的分散式 SQLite" + "value" : "目的地:" } } } }, - "Distributed key-value store for service discovery" : { + "Destructive Changes" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "서비스 검색용 분산 키-값 저장소" + "value" : "파괴적 변경" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Servis keşfi için dağıtık anahtar-değer deposu" + "value" : "Yıkıcı Değişiklikler" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kho key-value phân tán cho service discovery" + "value" : "Thay đổi có thể mất dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "用于服务发现的分布式键值存储" + "value" : "破坏性更改" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "用於服務探索的分散式鍵值儲存" + "value" : "破壞性變更" } } } }, - "Distributed wide-column store" : { + "Destructive operations are not permitted for this client" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "분산 와이드 컬럼 저장소" + "value" : "이 클라이언트에서는 파괴적 작업이 허용되지 않습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dağıtık geniş sütunlu depo" + "value" : "Bu istemci için yıkıcı işlemlere izin verilmiyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kho wide-column phân tán" + "value" : "Client này không được phép thực hiện thao tác phá hủy" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "分布式宽列存储" + "value" : "此客户端不允许执行破坏性操作" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "分散式寬欄儲存" + "value" : "此用戶端不允許執行破壞性操作" } } } }, - "Do Not Decode" : { + "Detach" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "디코딩 안 함" + "value" : "분리" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kodu Çözme" + "value" : "Ayır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không giải mã" + "value" : "Tách rời" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "不解码" + "value" : "分离" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "不解碼" + "value" : "分離" } } } }, - "Do not show this again" : { - "comment" : "Title of the checkbox that can be checked to suppress the warning dialog.", - "isCommentAutoGenerated" : true, + "Detach Partition" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다시 표시하지 않기" + "value" : "파티션 분리" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bunu bir daha gösterme" + "value" : "Bölümü Ayır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không hiện lại" + "value" : "Tách rời phân vùng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "不再显示" + "value" : "分离分区" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "不再顯示" + "value" : "分離分割區" } } } }, - "Do you want to save changes?" : { + "Detach Partition?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "변경 사항을 저장하시겠습니까?" + "value" : "파티션을 분리하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Değişiklikleri kaydetmek istiyor musunuz?" + "value" : "Bölüm Ayrılsın mı?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bạn có muốn lưu thay đổi?" + "value" : "Tách rời phân vùng?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "是否保存更改?" + "value" : "分离分区?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "是否要儲存變更?" + "value" : "要分離分割區嗎?" } } } }, - "Document" : { + "Detach selected partition" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "문서" + "value" : "선택한 파티션 분리" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Belge" + "value" : "Seçili bölümü ayır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Document" + "value" : "Tách rời phân vùng đã chọn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "文档" + "value" : "分离选定的分区" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "文件" + "value" : "分離選取的分割區" } } } }, - "Document Inspector" : { + "Detail" : { + + }, + "Details" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "문서 검사기" + "value" : "세부사항" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Belge Denetçisi" + "value" : "Ayrıntılar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trình kiểm tra document" + "value" : "Chi tiết" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "文档检查器" + "value" : "详情" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "文件檢閱器" + "value" : "詳細資訊" } } } }, - "Documentation" : { + "Details: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "도움말 문서" + "value" : "세부사항: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Belgeler" + "value" : "Ayrıntılar: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tài liệu" + "value" : "Chi tiết: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "文档" + "value" : "详细信息:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "文件" + "value" : "詳細資訊:%@" } } } }, - "Don't Allow" : { + "Detected" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "허용 안 함" + "value" : "감지됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İzin Verme" + "value" : "Algılandı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không cho phép" + "value" : "Đã phát hiện" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "不允许" + "value" : "已检测到" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "不允許" + "value" : "已偵測到" } } } }, - "Don't Save" : { + "Development" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "저장 안 함" + "value" : "개발" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kaydetme" + "value" : "Geliştirme" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không lưu" + "value" : "Phát triển" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "不保存" + "value" : "开发" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "不要儲存" + "value" : "開發" } } } }, - "Don't Sort" : { + "Diagnostic Info" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "정렬 안 함" + "value" : "진단 정보" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sıralama" + "value" : "Tanılama Bilgileri" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không sắp xếp" + "value" : "Thông tin chẩn đoán" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "不排序" + "value" : "诊断信息" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "不排序" + "value" : "診斷資訊" } } } }, - "Don't show this again" : { - "extractionState" : "stale", + "Diagram" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다시 표시하지 않기" + "value" : "다이어그램" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bunu bir daha gösterme" + "value" : "Diyagram" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không hiện lại" + "value" : "Sơ đồ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "不再显示" + "value" : "图表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "不再顯示" + "value" : "圖表" } } } }, - "Done" : { + "Diff layout" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "완료" + "value" : "차이 비교 레이아웃" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tamam" + "value" : "Fark düzeni" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xong" + "value" : "Bố cục so sánh" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "完成" + "value" : "差异布局" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "完成" + "value" : "差異版面" } } } }, - "Double Quote \"" : { + "Difference" : { + + }, + "Differs" : { + + }, + "Digits" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "큰따옴표 \"" + "value" : "자릿수" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Çift Tırnak \"" + "value" : "Rakamlar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dấu nháy kép \"" + "value" : "Số chữ số" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "双引号 \"" + "value" : "位数" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "雙引號 \"" + "value" : "位數" } } } }, - "Doubled Quote" : { + "Direct partitions" : { + + }, + "Disable" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "큰따옴표 이중 처리" + "value" : "비활성화" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Çiftlenmiş Tırnak" + "value" : "Devre Dışı Bırak" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nháy kép lặp lại" + "value" : "Tắt" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重复引号" + "value" : "禁用" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重複引號" + "value" : "停用" } } } }, - "Download cloud-sql-proxy…" : { + "Disable %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "cloud-sql-proxy 다운로드…" + "value" : "%@ 비활성화" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "cloud-sql-proxy indir…" + "value" : "%@ Kapat" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tải cloud-sql-proxy…" + "value" : "Tắt %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "下载 cloud-sql-proxy…" + "value" : "关闭 %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "下載 cloud-sql-proxy…" + "value" : "關閉 %@" } } } }, - "Downloading plugin" : { - "comment" : "A description of a progress bar that shows a download in progress.", - "isCommentAutoGenerated" : true, + "Disable foreign key checks" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플러그인 다운로드 중" + "value" : "외래 키 검사 비활성화" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklenti indiriliyor" + "value" : "Yabancı anahtar kontrollerini kapat" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang tải plugin" + "value" : "Tắt kiểm tra khóa ngoại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在下载插件" + "value" : "禁用外键检查" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在下載外掛" + "value" : "停用外鍵檢查" } } } }, - "Downloads" : { + "Disable SSH Tunnel" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다운로드" + "value" : "SSH 터널 비활성화" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İndirmeler" + "value" : "SSH Tünelini Devre Dışı Bırak" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lượt tải" + "value" : "Tắt SSH Tunnel" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "下载次数" + "value" : "禁用 SSH 隧道" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "下載次數" + "value" : "停用 SSH 隧道" } } } }, - "Drag to reorder this filter" : { + "disabled" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "드래그하여 이 필터의 순서 변경" + "value" : "비활성화됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu filtreyi yeniden sıralamak için sürükleyin" + "value" : "devre dışı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kéo để sắp xếp lại bộ lọc này" + "value" : "đã tắt" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "拖动以重新排列此筛选条件" + "value" : "已禁用" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "拖曳以重新排列這個篩選條件" + "value" : "已停用" } } } }, - "Driver Options" : { - "comment" : "A section for driver-specific options.", - "isCommentAutoGenerated" : true, + "Disabled" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "드라이버 옵션" + "value" : "비활성화됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sürücü Seçenekleri" + "value" : "Devre Dışı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tuỳ chọn driver" + "value" : "Đã tắt" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "驱动选项" + "value" : "已禁用" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "驅動程式選項" + "value" : "已停用" } } } }, - "Driver plugin not loaded. Open Settings to update." : { + "Discard" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "드라이버 플러그인을 불러오지 못했습니다. 설정을 열어 업데이트하십시오." + "value" : "폐기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sürücü eklentisi yüklenmedi. Güncellemek için Ayarlar'ı açın." + "value" : "Vazgeç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Plugin driver chưa được tải. Mở Cài đặt để cập nhật." + "value" : "Hủy bỏ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "驱动插件未加载。请打开设置进行更新。" + "value" : "丢弃" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "驅動程式外掛未載入。請開啟設定進行更新。" + "value" : "捨棄" } } } }, - "Drop" : { + "Discard Changes?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "삭제" + "value" : "변경 사항을 폐기하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bırak" + "value" : "Değişiklikler Atılsın mı?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa" + "value" : "Hủy bỏ thay đổi?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除" + "value" : "丢弃更改?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除" + "value" : "要捨棄變更嗎?" } } } }, - "Drop %1$@ “%2$@”?" : { + "Discard Unsaved Changes?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@ “%2$@”을(를) 삭제하시겠습니까?" + "value" : "저장하지 않은 변경 사항을 폐기하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@ “%2$@” bırakılsın mı?" + "value" : "Kaydedilmemiş Değişiklikler Atılsın mı?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa %1$@ “%2$@”?" + "value" : "Hủy bỏ thay đổi chưa lưu?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除%1$@“%2$@”?" + "value" : "丢弃未保存的更改?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除%1$@「%2$@」?" + "value" : "要捨棄未儲存的變更嗎?" } } } }, - "Drop %1$@ “%2$@”…" : { - "comment" : "The text of the menu item for dropping a single database. The argument is the name of the database.", - "isCommentAutoGenerated" : true, + "Disconnect" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@ “%2$@” 삭제…" + "value" : "연결 해제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@ “%2$@” Sil…" + "value" : "Bağlantıyı Kes" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xoá %1$@ “%2$@”…" + "value" : "Ngắt kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除%1$@“%2$@”…" + "value" : "断开连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除%1$@「%2$@」…" + "value" : "中斷連線" } } } }, - "Drop %1$lld %2$@" : { - "comment" : "The text of the button that confirms the user's intention to drop multiple objects. The first argument is the pluralized name of the object. The second argument is the number of objects to be dropped.", - "isCommentAutoGenerated" : true, + "Disconnect client?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$lld개의 %2$@ 삭제" + "value" : "클라이언트 연결을 해제하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%1$lld %2$@ Sil" + "value" : "İstemcinin bağlantısı kesilsin mi?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xoá %1$lld %2$@" + "value" : "Ngắt kết nối client?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除 %1$lld 个%2$@" + "value" : "断开客户端连接?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除 %1$lld 個%2$@" + "value" : "要中斷用戶端連線嗎?" } } } }, - "Drop %1$lld %2$@?" : { - "comment" : "The title of a confirmation alert when dropping multiple databases. The first argument is the number of databases being dropped. The second argument is the pluralized name of the database type.", - "isCommentAutoGenerated" : true, + "Disconnect from “%@”?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$lld개의 %2$@을(를) 삭제하시겠습니까?" + "value" : "“%@” 연결을 해제하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%1$lld %2$@ silinsin mi?" + "value" : "“%@” bağlantısı kesilsin mi?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xoá %1$lld %2$@?" + "value" : "Ngắt kết nối khỏi “%@”?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "要删除 %1$lld 个%2$@吗?" + "value" : "要断开与“%@”的连接吗?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "要刪除 %1$lld 個%2$@嗎?" + "value" : "要中斷與「%@」的連線嗎?" } } } }, - "Drop %1$lld %2$@…" : { - "comment" : "Text for the \"Drop\" menu item.", - "isCommentAutoGenerated" : true, + "Disconnect from a database" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$lld개의 %2$@ 삭제…" + "value" : "데이터베이스 연결 해제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%1$lld %2$@ Sil…" + "value" : "Bir veritabanı bağlantısını kes" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xoá %1$lld %2$@…" + "value" : "Ngắt kết nối khỏi cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除 %1$lld 个%2$@…" + "value" : "断开数据库连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除 %1$lld 個%2$@…" + "value" : "中斷與資料庫的連線" } } } }, - "Drop %@" : { + "Disconnect the selected client" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 삭제" + "value" : "선택한 클라이언트 연결 해제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ Bırak" + "value" : "Seçili istemcinin bağlantısını kes" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa %@" + "value" : "Ngắt kết nối client đã chọn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除 %@" + "value" : "断开所选客户端的连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除 %@" + "value" : "中斷所選用戶端的連線" } } } }, - "Drop %@…" : { - "extractionState" : "stale", + "disconnected" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 삭제…" + "value" : "연결 해제됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ Bırak…" + "value" : "bağlantı kesildi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa %@…" + "value" : "đã ngắt kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除 %@…" + "value" : "已断开连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除 %@…" + "value" : "已中斷連線" } } } }, - "Drop %d tables" : { + "Disconnected" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 %d개 삭제" + "value" : "연결이 해제되었습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%d tabloyu sil" + "value" : "Bağlantı Kesildi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xoá %d bảng" + "value" : "Đã ngắt kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除%d个表" + "value" : "已断开连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除 %d 個資料表" + "value" : "已中斷連線" } } } }, - "Drop %lld tables" : { - "extractionState" : "stale", + "Disconnected from %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 %lld개 삭제" + "value" : "%@ 연결이 해제되었습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Drop %lld tablo" + "value" : "%@ bağlantısı kesildi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa %lld bảng" + "value" : "Đã ngắt kết nối khỏi %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除 %lld 个表" + "value" : "已断开与 %@ 的连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除 %lld 個資料表" + "value" : "已中斷與 %@ 的連線" } } } }, - "Drop Database" : { - "extractionState" : "stale", + "Disk Usage" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 삭제" + "value" : "디스크 사용량" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanını Sil" + "value" : "Disk Kullanımı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xoá cơ sở dữ liệu" + "value" : "Sử dụng ổ đĩa" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除数据库" + "value" : "磁盘使用量" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除資料庫" + "value" : "磁碟使用量" } } } }, - "Drop Database..." : { - "extractionState" : "stale", + "Dismiss" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 삭제..." + "value" : "닫기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanını Sil..." + "value" : "Kapat" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xoá cơ sở dữ liệu..." + "value" : "Bỏ qua" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除数据库…" + "value" : "关闭" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除資料庫…" + "value" : "關閉" } } } }, - "Drop Database…" : { - "extractionState" : "stale", + "Dismiss error" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 삭제…" + "value" : "오류 닫기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanını Sil…" + "value" : "Hatayı kapat" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa cơ sở dữ liệu…" + "value" : "Bỏ qua lỗi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除数据库…" + "value" : "关闭错误" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "捨棄資料庫…" + "value" : "關閉錯誤" } } } }, - "Drop External Table" : { + "Display" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "외부 테이블 삭제" + "value" : "표시" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Harici Tabloyu Sil" + "value" : "Görüntüle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa External Table" + "value" : "Hiển thị" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除外部表" + "value" : "显示" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "捨棄外部資料表" + "value" : "顯示" } } } }, - "Drop Failed" : { + "Display As" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "삭제 실패" + "value" : "표시 형식" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Silme Başarısız" + "value" : "Farklı Görüntüle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa thất bại" + "value" : "Hiển thị dạng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除失败" + "value" : "显示为" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "捨棄失敗" + "value" : "顯示為" } } } }, - "Drop Foreign Table" : { + "Display name" : { + + }, + "Distributed key-value store for service discovery" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "외래 테이블 삭제" + "value" : "서비스 검색용 분산 키-값 저장소" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dış Tabloyu Sil" + "value" : "Servis keşfi için dağıtık anahtar-değer deposu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa Foreign Table" + "value" : "Kho key-value phân tán cho service discovery" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除外部表" + "value" : "用于服务发现的分布式键值存储" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "捨棄外部資料表" + "value" : "用於服務探索的分散式鍵值儲存" } } } }, - "Drop Materialized View" : { + "Distributed SQL query engine for data lakes" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "구체화된 뷰 삭제" + "value" : "데이터 레이크용 분산 SQL 쿼리 엔진" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Materyalize Görünümü Sil" + "value" : "Veri gölleri için dağıtık SQL sorgu motoru" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa Materialized View" + "value" : "Công cụ truy vấn SQL phân tán cho data lake" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除物化视图" + "value" : "面向数据湖的分布式 SQL 查询引擎" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "捨棄具體化檢視表" + "value" : "適用於資料湖的分散式 SQL 查詢引擎" } } } }, - "Drop Partition" : { + "Distributed SQL, PostgreSQL-compatible" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "파티션 삭제" + "value" : "PostgreSQL 호환 분산 SQL" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bölümü Sil" + "value" : "Dağıtık SQL, PostgreSQL uyumlu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xoá phân vùng" + "value" : "SQL phân tán, tương thích PostgreSQL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除分区" + "value" : "分布式 SQL,兼容 PostgreSQL" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除分割區" + "value" : "分散式 SQL,相容 PostgreSQL" } } } }, - "Drop Partition?" : { + "Distributed SQLite by Turso" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "파티션을 삭제하시겠습니까?" + "value" : "Turso의 분산형 SQLite" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bölüm Silinsin mi?" + "value" : "Turso'dan dağıtık SQLite" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xoá phân vùng?" + "value" : "SQLite phân tán của Turso" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除分区?" + "value" : "Turso 出品的分布式 SQLite" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "要刪除分割區嗎?" + "value" : "Turso 推出的分散式 SQLite" } } } }, - "Drop Role" : { + "Distributed wide-column store" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "역할 삭제" + "value" : "분산 와이드 컬럼 저장소" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Rolü Sil" + "value" : "Dağıtık geniş sütunlu depo" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xoá vai trò" + "value" : "Kho wide-column phân tán" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除角色" + "value" : "分布式宽列存储" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除角色" + "value" : "分散式寬欄儲存" } } } }, - "Drop Trigger" : { + "Do Not Decode" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "트리거 삭제" + "value" : "디코딩 안 함" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tetikleyiciyi Sil" + "value" : "Kodu Çözme" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xoá trigger" + "value" : "Không giải mã" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除触发器" + "value" : "不解码" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除觸發器" + "value" : "不解碼" } } } }, - "Drop View" : { + "Do not show this again" : { + "comment" : "Title of the checkbox that can be checked to suppress the warning dialog.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "뷰 삭제" + "value" : "다시 표시하지 않기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Görünümü Bırak" + "value" : "Bunu bir daha gösterme" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa view" + "value" : "Không hiện lại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除视图" + "value" : "不再显示" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除檢視表" + "value" : "不再顯示" } } } }, - "Drop all tables that depend on this table" : { + "Do you want to save changes?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 테이블에 종속된 모든 테이블 삭제" + "value" : "변경 사항을 저장하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu tabloya bağımlı tüm tabloları bırak" + "value" : "Değişiklikleri kaydetmek istiyor musunuz?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa tất cả bảng phụ thuộc vào bảng này" + "value" : "Bạn có muốn lưu thay đổi?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除所有依赖此表的表" + "value" : "是否保存更改?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除所有依賴此資料表的資料表" + "value" : "是否要儲存變更?" } } } }, - "Drop database '%@'?" : { - "extractionState" : "stale", + "Document" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 '%@'을(를) 삭제하시겠습니까?" + "value" : "문서" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "'%@' veritabanı silinsin mi?" + "value" : "Belge" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xoá cơ sở dữ liệu '%@'?" + "value" : "Document" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除数据库 '%@'?" + "value" : "文档" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "要刪除資料庫「%@」嗎?" + "value" : "文件" } } } }, - "Drop database “%@”?" : { - "extractionState" : "stale", + "Document Inspector" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 “%@”을(를) 삭제하시겠습니까?" + "value" : "문서 검사기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "“%@” veritabanı silinsin mi?" + "value" : "Belge Denetçisi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa cơ sở dữ liệu “%@”?" + "value" : "Trình kiểm tra document" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "要删除数据库“%@”吗?" + "value" : "文档检查器" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "要捨棄資料庫「%@」嗎?" + "value" : "文件檢閱器" } } } }, - "Drop owned objects" : { + "Documentation" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "소유한 객체 삭제" + "value" : "도움말 문서" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sahip olunan nesneleri sil" + "value" : "Belgeler" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xoá các đối tượng sở hữu" + "value" : "Tài liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除拥有的对象" + "value" : "文档" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除擁有的物件" + "value" : "文件" } } } }, - "Drop selected database" : { - "extractionState" : "stale", + "does not equal" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "선택한 데이터베이스 삭제" + "value" : "같지 않음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Seçili veritabanını sil" + "value" : "eşit değil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xoá cơ sở dữ liệu đã chọn" + "value" : "không bằng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除选定的数据库" + "value" : "不等于" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除選取的資料庫" + "value" : "不等於" } } } }, - "Drop selected partition" : { + "Don't Allow" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "선택한 파티션 삭제" + "value" : "허용 안 함" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Seçili bölümü sil" + "value" : "İzin Verme" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xoá phân vùng đã chọn" + "value" : "Không cho phép" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除选定的分区" + "value" : "不允许" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除選取的分割區" + "value" : "不允許" } } } }, - "Drop table '%@'" : { + "Don't Save" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 '%@' 삭제" + "value" : "저장 안 함" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Drop tablo '%@'" + "value" : "Kaydetme" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa bảng '%@'" + "value" : "Không lưu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除表 '%@'" + "value" : "不保存" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除資料表「%@」" + "value" : "不要儲存" } } } }, - "Drop trigger “%@”?" : { + "Don't show this again" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "트리거 “%@”을(를) 삭제하시겠습니까?" + "value" : "다시 표시하지 않기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "“%@” tetikleyicisi silinsin mi?" + "value" : "Bunu bir daha gösterme" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xoá trigger “%@”?" + "value" : "Không hiện lại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除触发器“%@”?" + "value" : "不再显示" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "要刪除觸發器「%@」嗎?" + "value" : "不再顯示" } } } }, - "Dropping..." : { - "extractionState" : "stale", + "Don't Sort" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "삭제 중..." + "value" : "정렬 안 함" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Siliniyor..." + "value" : "Sıralama" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang xoá..." + "value" : "Không sắp xếp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在删除…" + "value" : "不排序" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在刪除…" + "value" : "不排序" } } } }, - "Drop…" : { + "Done" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "삭제…" + "value" : "완료" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sil…" + "value" : "Tamam" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xoá…" + "value" : "Xong" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除…" + "value" : "完成" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除…" + "value" : "完成" } } } }, - "DuckLake Data Path" : { - "extractionState" : "stale", + "Dotted scope path, '*' for server" : { + + }, + "Double Quote \"" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "DuckLake 데이터 경로" + "value" : "큰따옴표 \"" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "DuckLake Veri Yolu" + "value" : "Çift Tırnak \"" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đường dẫn dữ liệu DuckLake" + "value" : "Dấu nháy kép \"" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "DuckLake 数据路径" + "value" : "双引号 \"" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "DuckLake 資料路徑" + "value" : "雙引號 \"" } } } }, - "Dump operations are only supported for PostgreSQL and Redshift connections." : { + "Doubled Quote" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "덤프 작업은 PostgreSQL 및 Redshift 연결에서만 지원됩니다." + "value" : "큰따옴표 이중 처리" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Döküm işlemleri yalnızca PostgreSQL ve Redshift bağlantıları için desteklenir." + "value" : "Çiftlenmiş Tırnak" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thao tác dump chỉ được hỗ trợ cho kết nối PostgreSQL và Redshift." + "value" : "Nháy kép lặp lại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "转储操作仅支持 PostgreSQL 和 Redshift 连接。" + "value" : "重复引号" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "備份/還原操作僅支援 PostgreSQL 和 Redshift 連線。" + "value" : "重複引號" } } } }, - "Duplicate" : { + "Download cloud-sql-proxy…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "복제" + "value" : "cloud-sql-proxy 다운로드…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Çoğalt" + "value" : "cloud-sql-proxy indir…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhân bản" + "value" : "Tải cloud-sql-proxy…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制" + "value" : "下载 cloud-sql-proxy…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "製作複本" + "value" : "下載 cloud-sql-proxy…" } } } }, - "Duplicate Existing Table" : { - "extractionState" : "stale", + "Downloading plugin" : { + "comment" : "A description of a progress bar that shows a download in progress.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기존 테이블 복제" + "value" : "플러그인 다운로드 중" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Mevcut Tabloyu Çoğalt" + "value" : "Eklenti indiriliyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhân bản bảng hiện có" + "value" : "Đang tải plugin" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制现有表" + "value" : "正在下载插件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製現有資料表" + "value" : "正在下載外掛" } } } }, - "Duplicate Filter" : { + "Downloads" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터 복제" + "value" : "다운로드" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtreyi Çoğalt" + "value" : "İndirmeler" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhân bản bộ lọc" + "value" : "Lượt tải" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制筛选条件" + "value" : "下载次数" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製篩選條件" + "value" : "下載次數" } } } }, - "Duplicate Line" : { + "Draft a data quality audit" : { + + }, + "Drag to reorder this filter" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "줄 복제" + "value" : "드래그하여 이 필터의 순서 변경" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satırı Çoğalt" + "value" : "Bu filtreyi yeniden sıralamak için sürükleyin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhân bản dòng" + "value" : "Kéo để sắp xếp lại bộ lọc này" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制行" + "value" : "拖动以重新排列此筛选条件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製一行" + "value" : "拖曳以重新排列這個篩選條件" } } } }, - "Duplicate Row" : { + "Driver Options" : { + "comment" : "A section for driver-specific options.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "행 복제" + "value" : "드라이버 옵션" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satırı Çoğalt" + "value" : "Sürücü Seçenekleri" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhân bản dòng" + "value" : "Tuỳ chọn driver" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制行" + "value" : "驱动选项" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製列" + "value" : "驅動程式選項" } } } }, - "Duplicate Table Structure" : { - "extractionState" : "stale", + "Driver plugin not loaded. Open Settings to update." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 구조 복제" + "value" : "드라이버 플러그인을 불러오지 못했습니다. 설정을 열어 업데이트하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tablo Yapısını Çoğalt" + "value" : "Sürücü eklentisi yüklenmedi. Güncellemek için Ayarlar'ı açın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhân bản cấu trúc bảng" + "value" : "Plugin driver chưa được tải. Mở Cài đặt để cập nhật." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制表结构" + "value" : "驱动插件未加载。请打开设置进行更新。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製資料表結構" + "value" : "驅動程式外掛未載入。請開啟設定進行更新。" } } } }, - "Duplicate Theme" : { + "Driver status message, when the engine sent one" : { + + }, + "Drop" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테마 복제" + "value" : "삭제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Temayı Çoğalt" + "value" : "Bırak" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhân bản chủ đề" + "value" : "Xóa" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制主题" + "value" : "删除" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製佈景主題" + "value" : "刪除" } } } }, - "Duplicate filter" : { - "extractionState" : "stale", + "Drop %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터 복제" + "value" : "%@ 삭제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtreyi çoğalt" + "value" : "%@ Bırak" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhân đôi bộ lọc" + "value" : "Xóa %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制筛选条件" + "value" : "删除 %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製篩選條件" + "value" : "刪除 %@" } } } }, - "Duplicate it to customize colors and layout." : { + "Drop %@…" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "복제본을 만들어 색상과 레이아웃을 사용자화하십시오." + "value" : "%@ 삭제…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Renk ve düzeni özelleştirmek için çoğaltın." + "value" : "%@ Bırak…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhân bản để tuỳ chỉnh màu sắc và bố cục." + "value" : "Xóa %@…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制后可自定义颜色和布局。" + "value" : "删除 %@…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "製作複本即可自訂顏色與版面配置。" + "value" : "刪除 %@…" } } } }, - "Duplicate it to customize colors." : { + "Drop %1$@ “%2$@”?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "복제본을 만들어 색상을 사용자화하십시오." + "value" : "%1$@ “%2$@”을(를) 삭제하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Renkleri özelleştirmek için çoğaltın." + "value" : "%1$@ “%2$@” bırakılsın mı?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhân bản để tuỳ chỉnh màu sắc." + "value" : "Xóa %1$@ “%2$@”?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制以自定义颜色。" + "value" : "删除%1$@“%2$@”?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "製作複本即可自訂顏色。" + "value" : "刪除%1$@「%2$@」?" } } } }, - "Duration" : { + "Drop %1$@ “%2$@”…" : { + "comment" : "The text of the menu item for dropping a single database. The argument is the name of the database.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "소요 시간" + "value" : "%1$@ “%2$@” 삭제…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Süre" + "value" : "%1$@ “%2$@” Sil…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thời lượng" + "value" : "Xoá %1$@ “%2$@”…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "持续时间" + "value" : "删除%1$@“%2$@”…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "持續時間" + "value" : "刪除%1$@「%2$@」…" } } } }, - "Dynamic" : { + "Drop %1$@ %2$@" : { + + }, + "Drop %1$lld %2$@" : { + "comment" : "The text of the button that confirms the user's intention to drop multiple objects. The first argument is the pluralized name of the object. The second argument is the number of objects to be dropped.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "동적" + "value" : "%1$lld개의 %2$@ 삭제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dinamik" + "value" : "%1$lld %2$@ Sil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Động" + "value" : "Xoá %1$lld %2$@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "动态" + "value" : "删除 %1$lld 个%2$@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "動態" + "value" : "刪除 %1$lld 個%2$@" } } } }, - "ER Diagram" : { + "Drop %1$lld %2$@?" : { + "comment" : "The title of a confirmation alert when dropping multiple databases. The first argument is the number of databases being dropped. The second argument is the pluralized name of the database type.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "ER 다이어그램" + "value" : "%1$lld개의 %2$@을(를) 삭제하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "ER Diyagramı" + "value" : "%1$lld %2$@ silinsin mi?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sơ đồ ER" + "value" : "Xoá %1$lld %2$@?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "ER 图" + "value" : "要删除 %1$lld 个%2$@吗?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "ER 圖" + "value" : "要刪除 %1$lld 個%2$@嗎?" } } } }, - "EU Long (31/12/2024 23:59:59)" : { + "Drop %1$lld %2$@…" : { + "comment" : "Text for the \"Drop\" menu item.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "EU 긴 형식(31/12/2024 23:59:59)" + "value" : "%1$lld개의 %2$@ 삭제…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "AB Uzun (31/12/2024 23:59:59)" + "value" : "%1$lld %2$@ Sil…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Châu Âu dài (31/12/2024 23:59:59)" + "value" : "Xoá %1$lld %2$@…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "欧洲长格式 (31/12/2024 23:59:59)" + "value" : "删除 %1$lld 个%2$@…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "歐洲長格式 (31/12/2024 23:59:59)" + "value" : "刪除 %1$lld 個%2$@…" } } } }, - "EU Short (31/12/2024)" : { + "Drop %d tables" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "EU 짧은 형식(31/12/2024)" + "value" : "테이블 %d개 삭제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "AB Kısa (31/12/2024)" + "value" : "%d tabloyu sil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Châu Âu ngắn (31/12/2024)" + "value" : "Xoá %d bảng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "欧洲短格式 (31/12/2024)" + "value" : "删除%d个表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "歐洲短格式 (31/12/2024)" + "value" : "刪除 %d 個資料表" } } } }, - "EXPLAIN is not supported for this database type." : { + "Drop %lld tables" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 데이터베이스 유형에서는 EXPLAIN을 지원하지 않습니다." + "value" : "테이블 %lld개 삭제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu veritabanı türü için EXPLAIN desteklenmiyor." + "value" : "Drop %lld tablo" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "EXPLAIN không được hỗ trợ cho loại cơ sở dữ liệu này." + "value" : "Xóa %lld bảng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此数据库类型不支持 EXPLAIN。" + "value" : "删除 %lld 个表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此資料庫類型不支援 EXPLAIN。" + "value" : "刪除 %lld 個資料表" } } } }, - "EXTENDED" : { + "Drop a whole database or a whole schema. This deletes everything inside it and cannot be undone, so the user approves it first. Needs tools:write on a connection left writable for external clients." : { + + }, + "Drop all tables that depend on this table" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "EXTENDED" + "value" : "이 테이블에 종속된 모든 테이블 삭제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "GENİŞLETİLMİŞ" + "value" : "Bu tabloya bağımlı tüm tabloları bırak" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "MỞ RỘNG" + "value" : "Xóa tất cả bảng phụ thuộc vào bảng này" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "扩展" + "value" : "删除所有依赖此表的表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "擴充" + "value" : "刪除所有依賴此資料表的資料表" } } } }, - "Each SQLite file is a separate database.\nTo open a different database, create a new connection." : { + "Drop Database" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "각 SQLite 파일은 별도의 데이터베이스입니다.\n다른 데이터베이스를 열려면 새 연결을 생성하십시오." + "value" : "데이터베이스 삭제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Her SQLite dosyası ayrı bir veritabanıdır.\nFarklı bir veritabanı açmak için yeni bağlantı oluşturun." + "value" : "Veritabanını Sil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mỗi tệp SQLite là một cơ sở dữ liệu riêng.\nĐể mở cơ sở dữ liệu khác, hãy tạo kết nối mới." + "value" : "Xoá cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "每个 SQLite 文件是一个独立的数据库。\n要打开其他数据库,请创建新连接。" + "value" : "删除数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "每個 SQLite 檔案都是獨立的資料庫。\n若要開啟其他資料庫,請建立新連線。" + "value" : "刪除資料庫" } } } }, - "Each column can be mapped from only one field." : { + "Drop database '%@'?" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "각 열에는 하나의 필드만 매핑할 수 있습니다." + "value" : "데이터베이스 '%@'을(를) 삭제하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Her sütun yalnızca bir alandan eşlenebilir." + "value" : "'%@' veritabanı silinsin mi?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mỗi cột chỉ có thể được ánh xạ từ một trường." + "value" : "Xoá cơ sở dữ liệu '%@'?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "每列只能映射自一个字段。" + "value" : "删除数据库 '%@'?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "每個欄位只能對應自一個欄位。" + "value" : "要刪除資料庫「%@」嗎?" } } } }, - "Earliest executed_at to include, Unix epoch seconds (inclusive, optional)" : { + "Drop database “%@”?" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "포함할 가장 이른 executed_at 값(Unix epoch 초, 경계 포함, 선택 사항)" + "value" : "데이터베이스 “%@”을(를) 삭제하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dahil edilecek en erken executed_at, Unix epoch saniyesi (dahil, isteğe bağlı)" + "value" : "“%@” veritabanı silinsin mi?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mốc executed_at sớm nhất được tính, giây Unix epoch (bao gồm mốc này, tùy chọn)" + "value" : "Xóa cơ sở dữ liệu “%@”?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "要包含的最早 executed_at,Unix 纪元秒(含,可选)" + "value" : "要删除数据库“%@”吗?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "要納入的最早 executed_at,Unix 紀元秒(含,選用)" + "value" : "要捨棄資料庫「%@」嗎?" } } } }, - "Edit" : { + "Drop Database or Schema" : { + + }, + "Drop Database..." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "편집" + "value" : "데이터베이스 삭제..." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Düzenle" + "value" : "Veritabanını Sil..." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sửa" + "value" : "Xoá cơ sở dữ liệu..." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "编辑" + "value" : "删除数据库…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "編輯" + "value" : "刪除資料庫…" } } } }, - "Edit %@ Connection" : { + "Drop Database…" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 연결 편집" + "value" : "데이터베이스 삭제…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ Bağlantısını Düzenle" + "value" : "Veritabanını Sil…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sửa kết nối %@" + "value" : "Xóa cơ sở dữ liệu…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "编辑 %@ 连接" + "value" : "删除数据库…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "編輯 %@ 連線" + "value" : "捨棄資料庫…" } } } }, - "Edit Cell" : { + "Drop External Table" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "셀 편집" + "value" : "외부 테이블 삭제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Hücreyi Düzenle" + "value" : "Harici Tabloyu Sil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sửa ô" + "value" : "Xóa External Table" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "编辑单元格" + "value" : "删除外部表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "編輯儲存格" + "value" : "捨棄外部資料表" } } } }, - "Edit Column" : { + "Drop Failed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열 편집" + "value" : "삭제 실패" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sütunu Düzenle" + "value" : "Silme Başarısız" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sửa cột" + "value" : "Xóa thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "编辑列" + "value" : "删除失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "編輯欄位" + "value" : "捨棄失敗" } } } }, - "Edit Connection" : { + "Drop Foreign Table" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 편집" + "value" : "외래 테이블 삭제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantıyı Düzenle" + "value" : "Dış Tabloyu Sil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sửa kết nối" + "value" : "Xóa Foreign Table" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "编辑连接" + "value" : "删除外部表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "編輯連線" + "value" : "捨棄外部資料表" } } } }, - "Edit Details (Double-click)" : { - "extractionState" : "stale", + "Drop Materialized View" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "세부사항 편집(이중 클릭)" + "value" : "구체화된 뷰 삭제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ayrıntıları Düzenle (Çift tıklayın)" + "value" : "Materyalize Görünümü Sil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sửa chi tiết (Nhấp đúp)" + "value" : "Xóa Materialized View" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "编辑详情(双击)" + "value" : "删除物化视图" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "編輯詳細資訊(按兩下)" + "value" : "捨棄具體化檢視表" } } } }, - "Edit Favorite" : { + "Drop owned objects" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "즐겨찾기 편집" + "value" : "소유한 객체 삭제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Favoriyi Düzenle" + "value" : "Sahip olunan nesneleri sil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sửa mục yêu thích" + "value" : "Xoá các đối tượng sở hữu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "编辑收藏" + "value" : "删除拥有的对象" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "編輯我的最愛" + "value" : "刪除擁有的物件" } } } }, - "Edit Foreign Key" : { + "Drop Partition" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "외래 키 편집" + "value" : "파티션 삭제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yabancı Anahtarı Düzenle" + "value" : "Bölümü Sil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sửa khoá ngoại" + "value" : "Xoá phân vùng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "编辑外键" + "value" : "删除分区" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "編輯外鍵" + "value" : "刪除分割區" } } } }, - "Edit Index" : { + "Drop Partition?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "인덱스 편집" + "value" : "파티션을 삭제하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dizini Düzenle" + "value" : "Bölüm Silinsin mi?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sửa chỉ mục" + "value" : "Xoá phân vùng?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "编辑索引" + "value" : "删除分区?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "編輯索引" + "value" : "要刪除分割區嗎?" } } } }, - "Edit Metadata" : { + "Drop Role" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "메타데이터 편집" + "value" : "역할 삭제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Meta Verileri Düzenle" + "value" : "Rolü Sil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sửa metadata" + "value" : "Xoá vai trò" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "编辑元数据" + "value" : "删除角色" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "編輯中繼資料" + "value" : "刪除角色" } } } }, - "Edit Metadata..." : { + "Drop selected database" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "메타데이터 편집..." + "value" : "선택한 데이터베이스 삭제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Meta Verileri Düzenle..." + "value" : "Seçili veritabanını sil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sửa metadata..." + "value" : "Xoá cơ sở dữ liệu đã chọn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "编辑元数据..." + "value" : "删除选定的数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "編輯中繼資料…" + "value" : "刪除選取的資料庫" } } } }, - "Edit Metadata…" : { - "comment" : "Text for a menu item that opens a screen to edit metadata for a linked favorite.", - "isCommentAutoGenerated" : true, + "Drop selected partition" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "메타데이터 편집…" + "value" : "선택한 파티션 삭제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Meta Verileri Düzenle…" + "value" : "Seçili bölümü sil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sửa siêu dữ liệu…" + "value" : "Xoá phân vùng đã chọn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "编辑元数据…" + "value" : "删除选定的分区" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "編輯中繼資料…" + "value" : "刪除選取的分割區" } } } }, - "Edit Profile…" : { + "Drop table '%@'" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Edit Profile…" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "프로필 편집…" + "value" : "테이블 '%@' 삭제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Profili Düzenle…" + "value" : "Drop tablo '%@'" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chỉnh sửa hồ sơ…" + "value" : "Xóa bảng '%@'" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "编辑配置…" + "value" : "删除表 '%@'" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "編輯設定檔…" + "value" : "刪除資料表「%@」" } } } }, - "Edit Provider" : { - "extractionState" : "stale", + "Drop table %@" : { + + }, + "Drop Trigger" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "제공자 편집" + "value" : "트리거 삭제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sağlayıcıyı Düzenle" + "value" : "Tetikleyiciyi Sil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sửa nhà cung cấp" + "value" : "Xoá trigger" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "编辑提供商" + "value" : "删除触发器" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "編輯供應商" + "value" : "刪除觸發器" } } } }, - "Edit Row" : { - "extractionState" : "stale", + "Drop trigger “%@”?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "행 편집" + "value" : "트리거 “%@”을(를) 삭제하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satırı Düzenle" + "value" : "“%@” tetikleyicisi silinsin mi?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sửa dòng" + "value" : "Xoá trigger “%@”?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "编辑行" + "value" : "删除触发器“%@”?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "編輯列" + "value" : "要刪除觸發器「%@」嗎?" } } } }, - "Edit Trigger" : { + "Drop View" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "트리거 편집" + "value" : "뷰 삭제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tetikleyiciyi Düzenle" + "value" : "Görünümü Bırak" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sửa trigger" + "value" : "Xóa view" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "编辑触发器" + "value" : "删除视图" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "編輯觸發器" + "value" : "刪除檢視表" } } } }, - "Edit Values…" : { + "Drop…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "값 편집…" + "value" : "삭제…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Değerleri Düzenle…" + "value" : "Sil…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chỉnh sửa giá trị…" + "value" : "Xoá…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "编辑值…" + "value" : "删除…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "編輯值…" + "value" : "刪除…" + } + } + } + }, + "dropping %@ '%@'" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "dropping %1$@ '%2$@'" } } } }, - "Edit View Definition" : { + "Dropping %1$@ %2$@ removes it from the target." : { + + }, + "Dropping column %@ permanently removes its data." : { + + }, + "Dropping index %@ can slow existing queries." : { + + }, + "Dropping materialized view %@ discards its stored rows, which have to be rebuilt." : { + + }, + "Dropping table %@ permanently removes the table and all of its rows." : { + + }, + "Dropping..." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "뷰 정의 편집" + "value" : "삭제 중..." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Görünüm Tanımını Düzenle" + "value" : "Siliniyor..." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sửa định nghĩa view" + "value" : "Đang xoá..." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "编辑视图定义" + "value" : "正在删除…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "編輯檢視表定義" + "value" : "正在刪除…" } } } }, - "Edit View Definition…" : { + "DuckLake Data Path" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "뷰 정의 편집…" + "value" : "DuckLake 데이터 경로" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Görünüm Tanımını Düzenle…" + "value" : "DuckLake Veri Yolu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sửa định nghĩa view…" + "value" : "Đường dẫn dữ liệu DuckLake" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "编辑视图定义…" + "value" : "DuckLake 数据路径" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "編輯檢視表定義…" + "value" : "DuckLake 資料路徑" } } } }, - "Edit as List" : { - "comment" : "A button that switches between editing a PostgreSQL array as a list and as text.", - "isCommentAutoGenerated" : true, + "Dump operations are only supported for PostgreSQL and Redshift connections." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "목록으로 편집" + "value" : "덤프 작업은 PostgreSQL 및 Redshift 연결에서만 지원됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Liste Olarak Düzenle" + "value" : "Döküm işlemleri yalnızca PostgreSQL ve Redshift bağlantıları için desteklenir." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sửa dạng danh sách" + "value" : "Thao tác dump chỉ được hỗ trợ cho kết nối PostgreSQL và Redshift." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "以列表方式编辑" + "value" : "转储操作仅支持 PostgreSQL 和 Redshift 连接。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "以列表方式編輯" + "value" : "備份/還原操作僅支援 PostgreSQL 和 Redshift 連線。" } } } }, - "Edit as Text" : { - "comment" : "A button that switches between editing an array as a list of values and as a single text field.", - "isCommentAutoGenerated" : true, + "duplicate" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "텍스트로 편집" + "value" : "복제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Metin Olarak Düzenle" + "value" : "kopya" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sửa dạng văn bản" + "value" : "bản sao" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "以文本方式编辑" + "value" : "副本" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "以文字方式編輯" + "value" : "副本" } } } }, - "Edit message" : { + "Duplicate" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "메시지 편집" + "value" : "복제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Mesajı düzenle" + "value" : "Çoğalt" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chỉnh sửa tin nhắn" + "value" : "Nhân bản" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "编辑消息" + "value" : "复制" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "編輯訊息" + "value" : "製作複本" } } } }, - "Edit provider" : { + "Duplicate Existing Table" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "제공자 편집" + "value" : "기존 테이블 복제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sağlayıcıyı düzenle" + "value" : "Mevcut Tabloyu Çoğalt" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chỉnh sửa nhà cung cấp" + "value" : "Nhân bản bảng hiện có" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "编辑提供商" + "value" : "复制现有表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "編輯供應商" + "value" : "複製現有資料表" } } } }, - "Edit..." : { + "Duplicate filter" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "편집..." + "value" : "필터 복제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Düzenle..." + "value" : "Filtreyi çoğalt" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chỉnh sửa..." + "value" : "Nhân đôi bộ lọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "编辑…" + "value" : "复制筛选条件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "編輯…" + "value" : "複製篩選條件" } } } }, - "Edit: read-only tools plus running queries. Destructive DDL stays blocked." : { + "Duplicate Filter" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "편집: 읽기 전용 도구와 쿼리 실행. 파괴적 DDL은 계속 차단됩니다." + "value" : "필터 복제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Düzenle: salt okunur araçlar ve sorgu çalıştırma. Yıkıcı DDL engellenmeye devam eder." + "value" : "Filtreyi Çoğalt" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sửa: các công cụ chỉ đọc cùng với chạy truy vấn. DDL phá hủy vẫn bị chặn." + "value" : "Nhân bản bộ lọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "编辑:只读工具加运行查询。破坏性 DDL 仍被阻止。" + "value" : "复制筛选条件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "編輯:唯讀工具加上執行查詢。破壞性 DDL 仍會被封鎖。" + "value" : "複製篩選條件" } } } }, - "Editable Hex" : { + "Duplicate it to customize colors and layout." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "편집 가능한 16진수" + "value" : "복제본을 만들어 색상과 레이아웃을 사용자화하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Düzenlenebilir Hex" + "value" : "Renk ve düzeni özelleştirmek için çoğaltın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hex có thể chỉnh sửa" + "value" : "Nhân bản để tuỳ chỉnh màu sắc và bố cục." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "可编辑十六进制" + "value" : "复制后可自定义颜色和布局。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "可編輯十六進位" + "value" : "製作複本即可自訂顏色與版面配置。" } } } }, - "Editing" : { + "Duplicate it to customize colors." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "편집 중" + "value" : "복제본을 만들어 색상을 사용자화하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Düzenleniyor" + "value" : "Renkleri özelleştirmek için çoğaltın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang sửa" + "value" : "Nhân bản để tuỳ chỉnh màu sắc." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "编辑中" + "value" : "复制以自定义颜色。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "編輯中" + "value" : "製作複本即可自訂顏色。" } } } }, - "Editor" : { + "Duplicate Line" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "편집기" + "value" : "줄 복제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Düzenleyici" + "value" : "Satırı Çoğalt" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trình soạn thảo" + "value" : "Nhân bản dòng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "编辑器" + "value" : "复制行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "編輯器" + "value" : "複製一行" } } } }, - "Editor & Query" : { + "Duplicate Row" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "편집기 및 쿼리" + "value" : "행 복제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Düzenleyici ve Sorgu" + "value" : "Satırı Çoğalt" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trình soạn thảo & Truy vấn" + "value" : "Nhân bản dòng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "编辑器与查询" + "value" : "复制行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "編輯器與查詢" + "value" : "複製列" } } } }, - "Editor Font" : { + "Duplicate Table Structure" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "편집기 글꼴" + "value" : "테이블 구조 복제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Düzenleyici Yazı Tipi" + "value" : "Tablo Yapısını Çoğalt" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phông chữ trình soạn thảo" + "value" : "Nhân bản cấu trúc bảng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "编辑器字体" + "value" : "复制表结构" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "編輯器字型" + "value" : "複製資料表結構" } } } }, - "Editor Tabs" : { - "comment" : "A label displayed above the tabs in the editor.", - "isCommentAutoGenerated" : true, + "Duplicate Theme" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "편집기 탭" + "value" : "테마 복제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Düzenleyici Sekmeleri" + "value" : "Temayı Çoğalt" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tab trình soạn thảo" + "value" : "Nhân bản chủ đề" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "编辑器标签页" + "value" : "复制主题" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "編輯器分頁" + "value" : "複製佈景主題" } } } }, - "Edit…" : { + "Duration" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "편집…" + "value" : "소요 시간" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Düzenle…" + "value" : "Süre" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sửa…" + "value" : "Thời lượng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "编辑…" + "value" : "持续时间" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "編輯…" + "value" : "持續時間" } } } }, - "Effective" : { + "Duration in milliseconds" : { + + }, + "Dynamic" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "적용됨" + "value" : "동적" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Etkin" + "value" : "Dinamik" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiệu lực" + "value" : "Động" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "实际生效" + "value" : "动态" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "實際生效" + "value" : "動態" } } } }, - "ElastiCache IAM authentication requires TLS. Enable SSL in the connection's SSL settings." : { + "e.g., Claude Code on VPS" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "ElastiCache IAM 인증에는 TLS가 필요합니다. 연결의 SSL 설정에서 SSL을 활성화하십시오." + "value" : "예: VPS의 Claude Code" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "ElastiCache IAM kimlik doğrulaması TLS gerektirir. Bağlantının SSL ayarlarından SSL'i etkinleştirin." + "value" : "örn. VPS üzerinde Claude Code" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xác thực IAM của ElastiCache yêu cầu TLS. Hãy bật SSL trong cài đặt SSL của kết nối." + "value" : "ví dụ: Claude Code trên VPS" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "ElastiCache IAM 认证需要 TLS。请在连接的 SSL 设置中启用 SSL。" + "value" : "例如,VPS 上的 Claude Code" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "ElastiCache IAM 驗證需要 TLS。請在連線的 SSL 設定中啟用 SSL。" + "value" : "例如:VPS 上的 Claude Code" } } } }, - "Email:" : { + "Each column can be mapped from only one field." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이메일:" + "value" : "각 열에는 하나의 필드만 매핑할 수 있습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "E-posta:" + "value" : "Her sütun yalnızca bir alandan eşlenebilir." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Email:" + "value" : "Mỗi cột chỉ có thể được ánh xạ từ một trường." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "邮箱:" + "value" : "每列只能映射自一个字段。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "電子郵件:" + "value" : "每個欄位只能對應自一個欄位。" } } } }, - "Embedded WASM Postgres over a socket server" : { + "Each SQLite file is a separate database.\nTo open a different database, create a new connection." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "소켓 서버를 통한 임베디드 WASM Postgres" + "value" : "각 SQLite 파일은 별도의 데이터베이스입니다.\n다른 데이터베이스를 열려면 새 연결을 생성하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Soket sunucusu üzerinden gömülü WASM Postgres" + "value" : "Her SQLite dosyası ayrı bir veritabanıdır.\nFarklı bir veritabanı açmak için yeni bağlantı oluşturun." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Postgres WASM nhúng chạy qua máy chủ socket" + "value" : "Mỗi tệp SQLite là một cơ sở dữ liệu riêng.\nĐể mở cơ sở dữ liệu khác, hãy tạo kết nối mới." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "通过 socket 服务运行的嵌入式 WASM Postgres" + "value" : "每个 SQLite 文件是一个独立的数据库。\n要打开其他数据库,请创建新连接。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "透過 socket 伺服器執行的嵌入式 WASM Postgres" + "value" : "每個 SQLite 檔案都是獨立的資料庫。\n若要開啟其他資料庫,請建立新連線。" } } } }, - "Embedded analytical SQL" : { + "Earliest executed_at to include, Unix epoch seconds (inclusive, optional)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "임베디드 분석 SQL" + "value" : "포함할 가장 이른 executed_at 값(Unix epoch 초, 경계 포함, 선택 사항)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Gömülü analitik SQL" + "value" : "Dahil edilecek en erken executed_at, Unix epoch saniyesi (dahil, isteğe bağlı)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "SQL phân tích nhúng" + "value" : "Mốc executed_at sớm nhất được tính, giây Unix epoch (bao gồm mốc này, tùy chọn)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "嵌入式分析型 SQL" + "value" : "要包含的最早 executed_at,Unix 纪元秒(含,可选)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "內嵌式分析型 SQL" + "value" : "要納入的最早 executed_at,Unix 紀元秒(含,選用)" } } } }, - "Embedded and remote analytical SQL" : { + "Earliest executed_at, Unix epoch seconds" : { + + }, + "Edit" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "임베디드 및 원격 분석 SQL" + "value" : "편집" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Gömülü ve uzak analitik SQL" + "value" : "Düzenle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "SQL phân tích nhúng và từ xa" + "value" : "Sửa" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "嵌入式与远程分析型 SQL" + "value" : "编辑" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "嵌入式與遠端分析型 SQL" + "value" : "編輯" } } } }, - "Embedded zero-config SQL database" : { + "Edit %@ Connection" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "별도 설정이 필요 없는 임베디드 SQL 데이터베이스" + "value" : "%@ 연결 편집" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Gömülü, yapılandırma gerektirmeyen SQL veritabanı" + "value" : "%@ Bağlantısını Düzenle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cơ sở dữ liệu SQL nhúng, không cần cấu hình" + "value" : "Sửa kết nối %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "嵌入式零配置 SQL 数据库" + "value" : "编辑 %@ 连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "內嵌式零設定 SQL 資料庫" + "value" : "編輯 %@ 連線" } } } }, - "Empty" : { + "Edit as List" : { + "comment" : "A button that switches between editing a PostgreSQL array as a list and as text.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "비어 있음" + "value" : "목록으로 편집" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Boş" + "value" : "Liste Olarak Düzenle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trống" + "value" : "Sửa dạng danh sách" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "空" + "value" : "以列表方式编辑" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "空白" + "value" : "以列表方式編輯" } } } }, - "Empty Redis command" : { - "extractionState" : "stale", + "Edit as Text" : { + "comment" : "A button that switches between editing an array as a list of values and as a single text field.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "빈 Redis 명령" + "value" : "텍스트로 편집" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Boş Redis komutu" + "value" : "Metin Olarak Düzenle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lệnh Redis trống" + "value" : "Sửa dạng văn bản" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Redis 命令为空" + "value" : "以文本方式编辑" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Redis 命令為空" + "value" : "以文字方式編輯" } } } }, - "Empty array" : { - "comment" : "A message displayed when a list is empty.", - "isCommentAutoGenerated" : true, + "Edit Cell" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "빈 배열" + "value" : "셀 편집" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Boş dizi" + "value" : "Hücreyi Düzenle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mảng rỗng" + "value" : "Sửa ô" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "空数组" + "value" : "编辑单元格" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "空陣列" + "value" : "編輯儲存格" } } } }, - "Enable" : { + "Edit Column" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "활성화" + "value" : "열 편집" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Etkinleştir" + "value" : "Sütunu Düzenle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bật" + "value" : "Sửa cột" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "启用" + "value" : "编辑列" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "啟用" + "value" : "編輯欄位" } } } }, - "Enable %@" : { + "Edit Connection" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 활성화" + "value" : "연결 편집" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ Etkinleştir" + "value" : "Bağlantıyı Düzenle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bật %@" + "value" : "Sửa kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "启用 %@" + "value" : "编辑连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "啟用 %@" + "value" : "編輯連線" } } } }, - "Enable AI Features" : { + "Edit Details (Double-click)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "AI 기능 활성화" + "value" : "세부사항 편집(이중 클릭)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "AI Özelliklerini Etkinleştir" + "value" : "Ayrıntıları Düzenle (Çift tıklayın)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bật tính năng AI" + "value" : "Sửa chi tiết (Nhấp đúp)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "启用 AI 功能" + "value" : "编辑详情(双击)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "啟用 AI 功能" + "value" : "編輯詳細資訊(按兩下)" } } } }, - "Enable Cloud SQL Auth Proxy" : { + "Edit Favorite" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Cloud SQL Auth Proxy 활성화" + "value" : "즐겨찾기 편집" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Cloud SQL Auth Proxy'yi Etkinleştir" + "value" : "Favoriyi Düzenle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bật Cloud SQL Auth Proxy" + "value" : "Sửa mục yêu thích" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "启用 Cloud SQL Auth Proxy" + "value" : "编辑收藏" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "啟用 Cloud SQL Auth Proxy" + "value" : "編輯我的最愛" } } } }, - "Enable Cloudflare Tunnel" : { + "Edit Foreign Key" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Cloudflare Tunnel 활성화" + "value" : "외래 키 편집" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Cloudflare Tunnel'ı Etkinleştir" + "value" : "Yabancı Anahtarı Düzenle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bật Cloudflare Tunnel" + "value" : "Sửa khoá ngoại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "启用 Cloudflare Tunnel" + "value" : "编辑外键" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "啟用 Cloudflare 隧道" + "value" : "編輯外鍵" } } } }, - "Enable MCP Server" : { + "Edit Index" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "MCP 서버 활성화" + "value" : "인덱스 편집" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "MCP Sunucusunu Etkinleştir" + "value" : "Dizini Düzenle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bật MCP Server" + "value" : "Sửa chỉ mục" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "启用 MCP 服务器" + "value" : "编辑索引" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "啟用 MCP 伺服器" + "value" : "編輯索引" } } } }, - "Enable SOCKS Proxy" : { + "Edit message" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SOCKS 프록시 활성화" + "value" : "메시지 편집" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SOCKS Proxy'yi Etkinleştir" + "value" : "Mesajı düzenle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bật SOCKS Proxy" + "value" : "Chỉnh sửa tin nhắn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "启用 SOCKS 代理" + "value" : "编辑消息" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "啟用 SOCKS 代理" + "value" : "編輯訊息" } } } }, - "Enable SSH Tunnel" : { + "Edit Metadata" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 터널 활성화" + "value" : "메타데이터 편집" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH Tünelini Etkinleştir" + "value" : "Meta Verileri Düzenle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bật đường hầm SSH" + "value" : "Sửa metadata" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "启用 SSH 隧道" + "value" : "编辑元数据" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "啟用 SSH 隧道" + "value" : "編輯中繼資料" } } } }, - "Enable filter" : { + "Edit Metadata..." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터 활성화" + "value" : "메타데이터 편집..." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtreyi etkinleştir" + "value" : "Meta Verileri Düzenle..." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bật bộ lọc" + "value" : "Sửa metadata..." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "启用筛选" + "value" : "编辑元数据..." } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "啟用篩選" + "value" : "編輯中繼資料…" } } } }, - "Enable inline suggestions" : { - "extractionState" : "stale", + "Edit Metadata…" : { + "comment" : "Text for a menu item that opens a screen to edit metadata for a linked favorite.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "인라인 제안 활성화" + "value" : "메타데이터 편집…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satır içi önerileri etkinleştir" + "value" : "Meta Verileri Düzenle…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bật gợi ý trực tiếp" + "value" : "Sửa siêu dữ liệu…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "启用行内建议" + "value" : "编辑元数据…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "啟用行內建議" + "value" : "編輯中繼資料…" } } } }, - "Enable inline suggestions while typing" : { + "Edit Profile…" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Edit Profile…" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "입력 중 인라인 제안 활성화" + "value" : "프로필 편집…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yazarken satır içi önerileri etkinleştir" + "value" : "Profili Düzenle…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bật gợi ý nội tuyến khi gõ" + "value" : "Chỉnh sửa hồ sơ…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在输入时启用内联建议" + "value" : "编辑配置…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "輸入時啟用行內建議" + "value" : "編輯設定檔…" } } } }, - "Enable or disable all filters" : { + "Edit provider" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 필터를 활성화 또는 비활성화" + "value" : "제공자 편집" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm filtreleri etkinleştir veya devre dışı bırak" + "value" : "Sağlayıcıyı düzenle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bật hoặc tắt tất cả bộ lọc" + "value" : "Chỉnh sửa nhà cung cấp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "启用或禁用所有筛选" + "value" : "编辑提供商" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "啟用或停用所有篩選" + "value" : "編輯供應商" } } } }, - "Enable preview tabs" : { + "Edit Provider" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "미리보기 탭 활성화" + "value" : "제공자 편집" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Önizleme sekmelerini etkinleştir" + "value" : "Sağlayıcıyı Düzenle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bật tab xem trước" + "value" : "Sửa nhà cung cấp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "启用预览标签页" + "value" : "编辑提供商" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "啟用預覽分頁" + "value" : "編輯供應商" } } } }, - "Enabled" : { + "Edit Row" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "활성화됨" + "value" : "행 편집" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Etkin" + "value" : "Satırı Düzenle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã bật" + "value" : "Sửa dòng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已启用" + "value" : "编辑行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已啟用" + "value" : "編輯列" } } } }, - "Encoding" : { + "Edit Trigger" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "인코딩" + "value" : "트리거 편집" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kodlama" + "value" : "Tetikleyiciyi Düzenle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mã hóa" + "value" : "Sửa trigger" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "编码" + "value" : "编辑触发器" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "編碼" + "value" : "編輯觸發器" } } } }, - "Encoding:" : { + "Edit Values…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "인코딩:" + "value" : "값 편집…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kodlama:" + "value" : "Değerleri Düzenle…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mã hóa:" + "value" : "Chỉnh sửa giá trị…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "编码:" + "value" : "编辑值…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "編碼:" + "value" : "編輯值…" } } } }, - "Encrypted Export" : { + "Edit View Definition" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "암호화된 내보내기" + "value" : "뷰 정의 편집" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Şifreli Dışa Aktarma" + "value" : "Görünüm Tanımını Düzenle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất Mã hóa" + "value" : "Sửa định nghĩa view" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "加密导出" + "value" : "编辑视图定义" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "加密匯出" + "value" : "編輯檢視表定義" } } } }, - "Endpoint" : { + "Edit View Definition…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "엔드포인트" + "value" : "뷰 정의 편집…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Uç Nokta" + "value" : "Görünüm Tanımını Düzenle…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Endpoint" + "value" : "Sửa định nghĩa view…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Endpoint" + "value" : "编辑视图定义…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Endpoint" + "value" : "編輯檢視表定義…" } } } }, - "Engine" : { + "Edit: read-only tools plus running queries. Destructive DDL stays blocked." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "엔진" + "value" : "편집: 읽기 전용 도구와 쿼리 실행. 파괴적 DDL은 계속 차단됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Motor" + "value" : "Düzenle: salt okunur araçlar ve sorgu çalıştırma. Yıkıcı DDL engellenmeye devam eder." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Engine" + "value" : "Sửa: các công cụ chỉ đọc cùng với chạy truy vấn. DDL phá hủy vẫn bị chặn." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Engine" + "value" : "编辑:只读工具加运行查询。破坏性 DDL 仍被阻止。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Engine" + "value" : "編輯:唯讀工具加上執行查詢。破壞性 DDL 仍會被封鎖。" } } } }, - "Engine (e.g., InnoDB)" : { + "Edit..." : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "엔진(예: InnoDB)" + "value" : "편집..." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Motor (örn. InnoDB)" + "value" : "Düzenle..." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Engine (vd: InnoDB)" + "value" : "Chỉnh sửa..." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Engine(如 InnoDB)" + "value" : "编辑…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Engine(例如 InnoDB)" + "value" : "編輯…" } } } }, - "Engine:" : { + "Edit…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "엔진:" + "value" : "편집…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Motor:" + "value" : "Düzenle…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Engine:" + "value" : "Sửa…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "引擎:" + "value" : "编辑…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "引擎:" + "value" : "編輯…" } } } }, - "Enter Full Screen" : { + "Editable Hex" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "전체 화면으로 전환" + "value" : "편집 가능한 16진수" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tam Ekrana Geç" + "value" : "Düzenlenebilir Hex" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Vào toàn màn hình" + "value" : "Hex có thể chỉnh sửa" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "进入全屏幕" + "value" : "可编辑十六进制" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "進入全螢幕" + "value" : "可編輯十六進位" } } } }, - "Enter a name for this filter preset" : { + "Editing" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 필터 프리셋의 이름을 입력하십시오" + "value" : "편집 중" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu filtre ön ayarı için bir ad girin" + "value" : "Düzenleniyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập tên cho mẫu bộ lọc này" + "value" : "Đang sửa" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "输入此筛选预设的名称" + "value" : "编辑中" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "輸入此篩選預設組合的名稱" + "value" : "編輯中" } } } }, - "Enter a new name for the group." : { + "Editor" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "그룹의 새 이름을 입력하십시오." + "value" : "편집기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Grup için yeni bir ad girin." + "value" : "Düzenleyici" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập tên mới cho nhóm." + "value" : "Trình soạn thảo" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "输入分组的新名称。" + "value" : "编辑器" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "輸入群組的新名稱。" + "value" : "編輯器" } } } }, - "Enter an absolute path, as it appears on the SSH server." : { + "Editor & Query" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 서버에 표시되는 절대 경로를 입력하십시오." + "value" : "편집기 및 쿼리" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH sunucusunda göründüğü şekliyle mutlak bir yol girin." + "value" : "Düzenleyici ve Sorgu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập đường dẫn tuyệt đối, đúng như trên máy chủ SSH." + "value" : "Trình soạn thảo & Truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "请输入绝对路径,与 SSH 服务器上的路径一致。" + "value" : "编辑器与查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "請輸入絕對路徑,與 SSH 伺服器上的路徑一致。" + "value" : "編輯器與查詢" } } } }, - "Enter database name" : { - "extractionState" : "stale", + "Editor Font" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 이름 입력" + "value" : "편집기 글꼴" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı adı girin" + "value" : "Düzenleyici Yazı Tipi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập tên cơ sở dữ liệu" + "value" : "Phông chữ trình soạn thảo" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "输入数据库名称" + "value" : "编辑器字体" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "輸入資料庫名稱" + "value" : "編輯器字型" } } } }, - "Enter table name" : { + "Editor Tabs" : { + "comment" : "A label displayed above the tabs in the editor.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 이름 입력" + "value" : "편집기 탭" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tablo adını girin" + "value" : "Düzenleyici Sekmeleri" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập tên bảng" + "value" : "Tab trình soạn thảo" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "输入表名" + "value" : "编辑器标签页" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "輸入資料表名稱" + "value" : "編輯器分頁" } } } }, - "Enter the %@ for \"%@\"" : { + "Effective" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Enter the %1$@ for \"%2$@\"" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다음 항목의 %1$@을(를) 입력하십시오: \"%2$@\"" + "value" : "적용됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "\"%@\" için %@ girin" + "value" : "Etkin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập %@ cho \"%@\"" + "value" : "Hiệu lực" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "输入\"%@\"的 %@" + "value" : "实际生效" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "輸入「%1$@」的 %2$@" + "value" : "實際生效" } } } }, - "Enter the ElastiCache cache name (replication group ID) to use IAM authentication." : { + "ElastiCache IAM authentication requires TLS. Enable SSL in the connection's SSL settings." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "IAM 인증에 사용할 ElastiCache 캐시 이름(복제 그룹 ID)을 입력하십시오." + "value" : "ElastiCache IAM 인증에는 TLS가 필요합니다. 연결의 SSL 설정에서 SSL을 활성화하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "IAM kimlik doğrulamasını kullanmak için ElastiCache önbellek adını (çoğaltma grubu kimliği) girin." + "value" : "ElastiCache IAM kimlik doğrulaması TLS gerektirir. Bağlantının SSL ayarlarından SSL'i etkinleştirin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập tên cache ElastiCache (replication group ID) để dùng xác thực IAM." + "value" : "Xác thực IAM của ElastiCache yêu cầu TLS. Hãy bật SSL trong cài đặt SSL của kết nối." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "输入 ElastiCache 缓存名称(复制组 ID)以使用 IAM 认证。" + "value" : "ElastiCache IAM 认证需要 TLS。请在连接的 SSL 设置中启用 SSL。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "輸入 ElastiCache 快取名稱(複寫群組 ID)以使用 IAM 驗證。" + "value" : "ElastiCache IAM 驗證需要 TLS。請在連線的 SSL 設定中啟用 SSL。" } } } }, - "Enter the TOTP verification code for SSH authentication." : { - "extractionState" : "stale", + "Email:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 인증용 TOTP 확인 코드를 입력하십시오." + "value" : "이메일:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH kimlik doğrulaması için TOTP doğrulama kodunu girin." + "value" : "E-posta:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập mã xác minh TOTP để xác thực SSH." + "value" : "Email:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "输入 TOTP 验证码以进行 SSH 身份验证。" + "value" : "邮箱:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "輸入 TOTP 驗證碼以進行 SSH 驗證。" + "value" : "電子郵件:" } } } }, - "Enter the code %@ in the browser to finish signing in to Microsoft Entra ID. The code is on your clipboard." : { + "Embedded analytical SQL" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "코드 %@을(를) 브라우저에 입력하여 Microsoft Entra ID 로그인을 완료하십시오. 코드는 클립보드에 복사되어 있습니다." + "value" : "임베디드 분석 SQL" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Microsoft Entra ID oturumunu tamamlamak için tarayıcıya %@ kodunu girin. Kod panonuzda." + "value" : "Gömülü analitik SQL" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập mã %@ trong trình duyệt để hoàn tất đăng nhập Microsoft Entra ID. Mã đã được sao chép vào bộ nhớ tạm." + "value" : "SQL phân tích nhúng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在浏览器中输入代码 %@ 以完成 Microsoft Entra ID 登录。该代码已复制到剪贴板。" + "value" : "嵌入式分析型 SQL" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在瀏覽器中輸入代碼 %@ 以完成 Microsoft Entra ID 登入。該代碼已複製到剪貼簿。" + "value" : "內嵌式分析型 SQL" } } } }, - "Enter the passphrase for SSH key \"%@\":" : { + "Embedded and remote analytical SQL" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 키 \"%@\"의 암호를 입력하십시오:" + "value" : "임베디드 및 원격 분석 SQL" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH anahtarı \"%@\" için parolayı girin:" + "value" : "Gömülü ve uzak analitik SQL" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập cụm mật khẩu cho khoá SSH \"%@\":" + "value" : "SQL phân tích nhúng và từ xa" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "请输入 SSH 密钥 \"%@\" 的密码:" + "value" : "嵌入式与远程分析型 SQL" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "請輸入 SSH 金鑰「%@」的密碼短語:" + "value" : "嵌入式與遠端分析型 SQL" } } } }, - "Enter the passphrase to decrypt and import connections." : { + "Embedded WASM Postgres over a socket server" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결을 복호화하고 가져올 암호를 입력하십시오." + "value" : "소켓 서버를 통한 임베디드 WASM Postgres" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantıları şifresini çözmek ve içe aktarmak için parolayı girin." + "value" : "Soket sunucusu üzerinden gömülü WASM Postgres" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập cụm mật khẩu để giải mã và nhập kết nối." + "value" : "Postgres WASM nhúng chạy qua máy chủ socket" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "输入密码短语以解密并导入连接。" + "value" : "通过 socket 服务运行的嵌入式 WASM Postgres" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "輸入密碼短語以解密並匯入連線。" + "value" : "透過 socket 伺服器執行的嵌入式 WASM Postgres" } } } }, - "Enter this code on GitHub:" : { + "Embedded zero-config SQL database" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "GitHub에 다음 코드를 입력하십시오:" + "value" : "별도 설정이 필요 없는 임베디드 SQL 데이터베이스" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu kodu GitHub'a girin:" + "value" : "Gömülü, yapılandırma gerektirmeyen SQL veritabanı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập mã này trên GitHub:" + "value" : "Cơ sở dữ liệu SQL nhúng, không cần cấu hình" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在 GitHub 上输入此代码:" + "value" : "嵌入式零配置 SQL 数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在 GitHub 上輸入此代碼:" + "value" : "內嵌式零設定 SQL 資料庫" } } } }, - "Enter your license key to unlock Pro features." : { - "extractionState" : "stale", + "Empty" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Pro 기능을 잠금 해제하려면 라이선스 키를 입력하십시오." + "value" : "비어 있음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Pro özelliklerin kilidini açmak için lisans anahtarınızı girin." + "value" : "Boş" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập mã giấy phép để mở khoá các tính năng Pro." + "value" : "Trống" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "输入许可证密钥以解锁 Pro 功能。" + "value" : "空" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "輸入授權金鑰以解鎖 Pro 功能。" + "value" : "空白" } } } }, - "Enter your license key, or a team invite code to join a team." : { + "Empty array" : { + "comment" : "A message displayed when a list is empty.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "라이선스 키 또는 팀 참여용 초대 코드를 입력하십시오." + "value" : "빈 배열" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Lisans anahtarınızı girin veya bir takıma katılmak için takım davet kodunu girin." + "value" : "Boş dizi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập mã giấy phép của bạn, hoặc mã mời nhóm để tham gia một nhóm." + "value" : "Mảng rỗng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "输入你的许可证密钥,或输入团队邀请码以加入团队。" + "value" : "空数组" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "輸入你的授權金鑰,或輸入團隊邀請碼以加入團隊。" + "value" : "空陣列" } } } }, - "Enterprise SQL with PL/SQL" : { + "Empty Redis command" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "PL/SQL을 지원하는 엔터프라이즈 SQL" + "value" : "빈 Redis 명령" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "PL/SQL ile kurumsal SQL" + "value" : "Boş Redis komutu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "SQL doanh nghiệp với PL/SQL" + "value" : "Lệnh Redis trống" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "支持 PL/SQL 的企业级 SQL" + "value" : "Redis 命令为空" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "支援 PL/SQL 的企業級 SQL" + "value" : "Redis 命令為空" } } } }, - "Enterprise relational database for DM8 deployments" : { + "Enable" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "DM8 배포용 엔터프라이즈 관계형 데이터베이스" + "value" : "활성화" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "DM8 dağıtımları için kurumsal ilişkisel veritabanı" + "value" : "Etkinleştir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cơ sở dữ liệu quan hệ doanh nghiệp cho triển khai DM8" + "value" : "Bật" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "面向 DM8 部署的企业级关系型数据库" + "value" : "启用" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "適用於 DM8 部署的企業級關聯式資料庫" + "value" : "啟用" } } } }, - "Environment" : { + "Enable %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "환경" + "value" : "%@ 활성화" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ortam" + "value" : "%@ Etkinleştir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Môi trường" + "value" : "Bật %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "环境" + "value" : "启用 %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "環境" + "value" : "啟用 %@" } } } }, - "Environment Variables" : { + "Enable AI Features" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "환경 변수" + "value" : "AI 기능 활성화" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ortam Değişkenleri" + "value" : "AI Özelliklerini Etkinleştir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Biến Môi trường" + "value" : "Bật tính năng AI" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "环境变量" + "value" : "启用 AI 功能" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "環境變數" + "value" : "啟用 AI 功能" } } } }, - "Environment variable %@ is not set in TablePro's environment. Apps launched from the Dock do not inherit shell exports. Launch TablePro from a terminal, or set the variable with launchctl setenv." : { + "Enable Cloud SQL Auth Proxy" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "환경 변수 %@이(가) TablePro 환경에 설정되어 있지 않습니다. Dock에서 실행한 앱은 셸에서 export한 환경 변수를 상속하지 않습니다. 터미널에서 TablePro를 실행하거나 launchctl setenv로 변수를 설정하십시오." + "value" : "Cloud SQL Auth Proxy 활성화" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ ortam değişkeni TablePro'nun ortamında ayarlı değil. Dock'tan başlatılan uygulamalar kabuk dışa aktarmalarını devralmaz. TablePro'yu bir terminalden başlatın veya değişkeni launchctl setenv ile ayarlayın." + "value" : "Cloud SQL Auth Proxy'yi Etkinleştir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Biến môi trường %@ chưa được đặt trong môi trường của TablePro. Ứng dụng khởi chạy từ Dock không kế thừa các export của shell. Hãy khởi chạy TablePro từ terminal, hoặc đặt biến bằng launchctl setenv." + "value" : "Bật Cloud SQL Auth Proxy" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "环境变量 %@ 未在 TablePro 的环境中设置。从 Dock 启动的应用不会继承 shell 导出的变量。请从终端启动 TablePro,或使用 launchctl setenv 设置该变量。" + "value" : "启用 Cloud SQL Auth Proxy" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "環境變數 %@ 未在 TablePro 的環境中設定。從 Dock 啟動的應用程式不會繼承 shell 匯出的變數。請從終端機啟動 TablePro,或使用 launchctl setenv 設定該變數。" + "value" : "啟用 Cloud SQL Auth Proxy" } } } }, - "Error" : { + "Enable Cloudflare Tunnel" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "오류" + "value" : "Cloudflare Tunnel 활성화" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Hata" + "value" : "Cloudflare Tunnel'ı Etkinleştir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lỗi" + "value" : "Bật Cloudflare Tunnel" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "错误" + "value" : "启用 Cloudflare Tunnel" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "錯誤" + "value" : "啟用 Cloudflare 隧道" } } } }, - "Error Applying Changes" : { + "Enable filter" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "변경 사항 적용 오류" + "value" : "필터 활성화" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Değişiklikler Uygulanırken Hata" + "value" : "Filtreyi etkinleştir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lỗi áp dụng thay đổi" + "value" : "Bật bộ lọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "应用更改时出错" + "value" : "启用筛选" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "套用變更時發生錯誤" + "value" : "啟用篩選" } } } }, - "Error:" : { + "Enable inline suggestions" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "오류:" + "value" : "인라인 제안 활성화" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Hata:" + "value" : "Satır içi önerileri etkinleştir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lỗi:" + "value" : "Bật gợi ý trực tiếp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "错误:" + "value" : "启用行内建议" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "錯誤:" + "value" : "啟用行內建議" } } } }, - "Error: %@" : { + "Enable inline suggestions while typing" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "오류: %@" + "value" : "입력 중 인라인 제안 활성화" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Hata: %@" + "value" : "Yazarken satır içi önerileri etkinleştir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lỗi: %@" + "value" : "Bật gợi ý nội tuyến khi gõ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "错误: %@" + "value" : "在输入时启用内联建议" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "錯誤:%@" + "value" : "輸入時啟用行內建議" } } } }, - "Error: Selected path is not a regular file" : { + "Enable MCP Server" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "오류: 선택한 경로가 일반 파일이 아닙니다" + "value" : "MCP 서버 활성화" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Hata: Seçilen yol normal bir dosya değil" + "value" : "MCP Sunucusunu Etkinleştir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lỗi: Đường dẫn đã chọn không phải tệp thông thường" + "value" : "Bật MCP Server" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "错误: 所选路径不是常规文件" + "value" : "启用 MCP 服务器" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "錯誤:所選路徑不是一般檔案" + "value" : "啟用 MCP 伺服器" } } } }, - "Escape character" : { + "Enable or disable all filters" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이스케이프 문자" + "value" : "모든 필터를 활성화 또는 비활성화" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kaçış karakteri" + "value" : "Tüm filtreleri etkinleştir veya devre dışı bırak" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ký tự thoát" + "value" : "Bật hoặc tắt tất cả bộ lọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "转义字符" + "value" : "启用或禁用所有筛选" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "跳脫字元" + "value" : "啟用或停用所有篩選" } } } }, - "Escape clears the search text" : { + "Enable preview tabs" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Escape 키를 누르면 검색 텍스트가 지워집니다" + "value" : "미리보기 탭 활성화" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Escape arama metnini temizler" + "value" : "Önizleme sekmelerini etkinleştir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Escape xoá nội dung tìm kiếm" + "value" : "Bật tab xem trước" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Escape 清除搜索文本" + "value" : "启用预览标签页" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Escape 清除搜尋文字" + "value" : "啟用預覽分頁" } } } }, - "Escape closes Open Quickly" : { + "Enable SOCKS Proxy" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Escape 키를 누르면 빠르게 열기가 닫힙니다" + "value" : "SOCKS 프록시 활성화" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Escape, Hızlı Aç'ı kapatır" + "value" : "SOCKS Proxy'yi Etkinleştir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Escape đóng Mở nhanh" + "value" : "Bật SOCKS Proxy" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Escape 关闭“快速打开”" + "value" : "启用 SOCKS 代理" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Escape 關閉「快速打開」" + "value" : "啟用 SOCKS 代理" } } } }, - "Event" : { + "Enable SSH Tunnel" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이벤트" + "value" : "SSH 터널 활성화" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Olay" + "value" : "SSH Tünelini Etkinleştir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sự kiện" + "value" : "Bật đường hầm SSH" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "事件" + "value" : "启用 SSH 隧道" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "事件" + "value" : "啟用 SSH 隧道" } } } }, - "Every included column needs a name." : { + "Enabled" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "포함된 모든 열에 이름이 필요합니다." + "value" : "활성화됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dahil edilen her sütunun bir adı olmalıdır." + "value" : "Etkin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mỗi cột được bao gồm cần có tên." + "value" : "Đã bật" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "每个包含的列都需要名称。" + "value" : "已启用" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "每個納入的欄位都需要名稱。" + "value" : "已啟用" } } } }, - "Every table needs at least one column. Click + to get started" : { + "Encoding" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 테이블에는 열이 하나 이상 있어야 합니다. +를 클릭하여 시작하십시오" + "value" : "인코딩" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Her tablonun en az bir sütuna ihtiyacı vardır. Başlamak için + tıklayın" + "value" : "Kodlama" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mỗi bảng cần ít nhất một cột. Nhấn + để bắt đầu" + "value" : "Mã hóa" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "每个表至少需要一列。点击 + 开始添加" + "value" : "编码" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "每個資料表至少需要一個欄位。點按 + 開始新增" + "value" : "編碼" } } } }, - "Everything" : { + "Encoding:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모두" + "value" : "인코딩:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Her Şey" + "value" : "Kodlama:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tất cả" + "value" : "Mã hóa:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "全部" + "value" : "编码:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "全部" + "value" : "編碼:" } } } }, - "Examples" : { + "encoding: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "예시" + "value" : "인코딩: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Örnekler" + "value" : "kodlama: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ví dụ" + "value" : "bảng mã: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "示例" + "value" : "编码:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "範例" + "value" : "編碼:%@" } } } }, - "Excel spreadsheet with formatting support." : { + "Encrypted Export" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "서식을 지원하는 Excel 스프레드시트입니다." + "value" : "암호화된 내보내기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Biçimlendirme destekli Excel elektronik tablosu." + "value" : "Şifreli Dışa Aktarma" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bảng tính Excel có hỗ trợ định dạng." + "value" : "Xuất Mã hóa" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "支持格式化的 Excel 电子表格。" + "value" : "加密导出" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "支援格式設定的 Excel 試算表。" + "value" : "加密匯出" } } } }, - "Exclude from iCloud Sync" : { + "Endpoint" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud 동기화에서 제외" + "value" : "엔드포인트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud Eşitlemesinden Hariç Tut" + "value" : "Uç Nokta" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Loại khỏi đồng bộ iCloud" + "value" : "Endpoint" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "排除 iCloud 同步" + "value" : "Endpoint" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "排除於 iCloud 同步" + "value" : "Endpoint" } } } }, - "Execute" : { + "ends with" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "실행" + "value" : "다음으로 끝남" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Çalıştır" + "value" : "bununla biter" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thực thi" + "value" : "kết thúc bằng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "执行" + "value" : "以...结尾" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "執行" + "value" : "結尾為" } } } }, - "Execute All" : { - "extractionState" : "stale", + "Engine" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모두 실행" + "value" : "엔진" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tümünü Çalıştır" + "value" : "Motor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thực thi tất cả" + "value" : "Engine" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "全部执行" + "value" : "Engine" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "全部執行" + "value" : "Engine" } } } }, - "Execute All Statements" : { + "Engine (e.g., InnoDB)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 문 실행" + "value" : "엔진(예: InnoDB)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm İfadeleri Çalıştır" + "value" : "Motor (örn. InnoDB)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thực thi tất cả câu lệnh" + "value" : "Engine (vd: InnoDB)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "执行所有语句" + "value" : "Engine(如 InnoDB)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "執行所有陳述式" + "value" : "Engine(例如 InnoDB)" } } } }, - "Execute Query" : { + "Engine-specific attribute flags" : { + + }, + "Engine-specific column attributes" : { + + }, + "Engine:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 실행" + "value" : "엔진:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorguyu Çalıştır" + "value" : "Motor:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thực thi truy vấn" + "value" : "Engine:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "执行查询" + "value" : "引擎:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "執行查詢" + "value" : "引擎:" } } } }, - "Execute Query Without Limit" : { + "Enter a name for this filter preset" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "제한 없이 쿼리 실행" + "value" : "이 필터 프리셋의 이름을 입력하십시오" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorguyu Limitsiz Çalıştır" + "value" : "Bu filtre ön ayarı için bir ad girin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chạy truy vấn không giới hạn" + "value" : "Nhập tên cho mẫu bộ lọc này" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "不限行数执行查询" + "value" : "输入此筛选预设的名称" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "不限列數執行查詢" + "value" : "輸入此篩選預設組合的名稱" } } } }, - "Execute Without Limit" : { + "Enter a new name for the group." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "제한 없이 실행" + "value" : "그룹의 새 이름을 입력하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Limitsiz Çalıştır" + "value" : "Grup için yeni bir ad girin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chạy không giới hạn" + "value" : "Nhập tên mới cho nhóm." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "不限行数执行" + "value" : "输入分组的新名称。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "不限列數執行" + "value" : "輸入群組的新名稱。" } } } }, - "Execute a SQL query against a connection. The connection's safe mode policy applies. Multi-statement queries are rejected. Destructive operations (DROP, TRUNCATE, ALTER...DROP) are blocked here; use confirm_destructive_operation instead." : { + "Enter an absolute path, as it appears on the SSH server." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결에서 SQL 쿼리를 실행합니다. 연결의 안전 모드 정책이 적용됩니다. 여러 문으로 구성된 쿼리는 거부됩니다. 파괴적 작업(DROP, TRUNCATE, ALTER...DROP)은 여기에서 차단되며, 대신 confirm_destructive_operation을 사용하십시오." + "value" : "SSH 서버에 표시되는 절대 경로를 입력하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bir bağlantıda SQL sorgusu çalıştırır. Bağlantının güvenli mod politikası uygulanır. Çok deyimli sorgular reddedilir. Yıkıcı işlemler (DROP, TRUNCATE, ALTER...DROP) burada engellenir; bunun yerine confirm_destructive_operation kullanın." + "value" : "SSH sunucusunda göründüğü şekliyle mutlak bir yol girin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thực thi truy vấn SQL trên một kết nối. Chính sách chế độ an toàn của kết nối được áp dụng. Truy vấn nhiều câu lệnh sẽ bị từ chối. Các thao tác phá hủy (DROP, TRUNCATE, ALTER...DROP) bị chặn ở đây; hãy dùng confirm_destructive_operation thay thế." + "value" : "Nhập đường dẫn tuyệt đối, đúng như trên máy chủ SSH." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "对连接执行 SQL 查询。受连接的安全模式策略约束。多语句查询会被拒绝。破坏性操作(DROP、TRUNCATE、ALTER...DROP)在此被阻止;请改用 confirm_destructive_operation。" + "value" : "请输入绝对路径,与 SSH 服务器上的路径一致。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "對連線執行 SQL 查詢。會套用連線的安全模式原則。多陳述式查詢會被拒絕。破壞性操作(DROP、TRUNCATE、ALTER...DROP)在此會被封鎖;請改用 confirm_destructive_operation。" + "value" : "請輸入絕對路徑,與 SSH 伺服器上的路徑一致。" } } } }, - "Execute a SQL query. All queries are subject to the connection's safe mode policy. DROP/TRUNCATE/ALTER...DROP must use the confirm_destructive_operation tool." : { + "Enter database name" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SQL 쿼리를 실행합니다. 모든 쿼리에는 연결의 안전 모드 정책이 적용됩니다. DROP/TRUNCATE/ALTER...DROP에는 confirm_destructive_operation 도구를 사용해야 합니다." + "value" : "데이터베이스 이름 입력" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SQL sorgusu çalıştırır. Tüm sorgular bağlantının güvenli mod politikasına tabidir. DROP/TRUNCATE/ALTER...DROP için confirm_destructive_operation aracı kullanılmalıdır." + "value" : "Veritabanı adı girin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thực thi truy vấn SQL. Mọi truy vấn đều tuân theo chính sách chế độ an toàn của kết nối. DROP/TRUNCATE/ALTER...DROP phải dùng công cụ confirm_destructive_operation." + "value" : "Nhập tên cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "执行 SQL 查询。所有查询都受连接的安全模式策略约束。DROP/TRUNCATE/ALTER...DROP 必须使用 confirm_destructive_operation 工具。" + "value" : "输入数据库名称" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "執行 SQL 查詢。所有查詢都受連線的安全模式原則約束。DROP/TRUNCATE/ALTER...DROP 必須使用 confirm_destructive_operation 工具。" + "value" : "輸入資料庫名稱" } } } }, - "Execute a destructive DDL query (DROP, TRUNCATE, ALTER...DROP) after explicit confirmation." : { + "Enter Full Screen" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "명시적으로 확인한 후 파괴적 DDL 쿼리(DROP, TRUNCATE, ALTER...DROP)를 실행합니다." + "value" : "전체 화면으로 전환" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Açık onaydan sonra yıkıcı bir DDL sorgusu (DROP, TRUNCATE, ALTER...DROP) çalıştırır." + "value" : "Tam Ekrana Geç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thực thi truy vấn DDL phá hủy (DROP, TRUNCATE, ALTER...DROP) sau khi xác nhận rõ ràng." + "value" : "Vào toàn màn hình" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在明确确认后执行破坏性 DDL 查询(DROP、TRUNCATE、ALTER...DROP)。" + "value" : "进入全屏幕" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在明確確認後執行破壞性 DDL 查詢(DROP、TRUNCATE、ALTER...DROP)。" + "value" : "進入全螢幕" } } } }, - "Execute a destructive DDL query (DROP, TRUNCATE, ALTER...DROP) after explicit confirmation. Pass confirmation_phrase exactly as: I understand this is irreversible" : { + "Enter table name" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "명시적으로 확인한 후 파괴적 DDL 쿼리(DROP, TRUNCATE, ALTER...DROP)를 실행합니다. confirmation_phrase를 다음과 정확히 일치하게 전달하십시오: I understand this is irreversible" + "value" : "테이블 이름 입력" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Açık onaydan sonra yıkıcı bir DDL sorgusu (DROP, TRUNCATE, ALTER...DROP) çalıştırır. confirmation_phrase değerini tam olarak şu şekilde iletin: I understand this is irreversible" + "value" : "Tablo adını girin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thực thi truy vấn DDL phá hủy (DROP, TRUNCATE, ALTER...DROP) sau khi xác nhận rõ ràng. Truyền confirmation_phrase chính xác là: I understand this is irreversible" + "value" : "Nhập tên bảng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在明确确认后执行破坏性 DDL 查询(DROP、TRUNCATE、ALTER...DROP)。confirmation_phrase 必须严格传入:I understand this is irreversible" + "value" : "输入表名" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在明確確認後執行破壞性 DDL 查詢(DROP、TRUNCATE、ALTER...DROP)。confirmation_phrase 必須完全照這樣傳入:I understand this is irreversible" + "value" : "輸入資料表名稱" } } } }, - "Execute a query to chart its loaded rows." : { + "Enter the %@ for \"%@\"" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Enter the %1$@ for \"%2$@\"" + } + }, "ko" : { "stringUnit" : { - "value" : "쿼리를 실행하면 불러온 행을 차트로 그립니다.", - "state" : "translated" + "state" : "translated", + "value" : "다음 항목의 %1$@을(를) 입력하십시오: \"%2$@\"" } }, "tr" : { "stringUnit" : { - "value" : "Yüklenen satırları grafikte göstermek için bir sorgu çalıştırın.", - "state" : "translated" + "state" : "translated", + "value" : "\"%@\" için %@ girin" } }, "vi" : { "stringUnit" : { - "value" : "Chạy truy vấn để vẽ biểu đồ từ các hàng đã tải.", - "state" : "translated" + "state" : "translated", + "value" : "Nhập %@ cho \"%@\"" } }, "zh-Hans" : { "stringUnit" : { - "value" : "执行查询以绘制已加载行的图表。", - "state" : "translated" + "state" : "translated", + "value" : "输入\"%@\"的 %@" } }, "zh-Hant" : { "stringUnit" : { - "value" : "執行查詢以繪製已載入列的圖表。", - "state" : "translated" + "state" : "translated", + "value" : "輸入「%1$@」的 %2$@" } } } }, - "Execute a query to view results as JSON" : { + "Enter the code %@ in the browser to finish signing in to Microsoft Entra ID. The code is on your clipboard." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리를 실행하고 결과를 JSON으로 표시합니다" + "value" : "코드 %@을(를) 브라우저에 입력하여 Microsoft Entra ID 로그인을 완료하십시오. 코드는 클립보드에 복사되어 있습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sonuçları JSON olarak görmek için bir sorgu çalıştırın" + "value" : "Microsoft Entra ID oturumunu tamamlamak için tarayıcıya %@ kodunu girin. Kod panonuzda." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chạy truy vấn để xem kết quả dưới dạng JSON" + "value" : "Nhập mã %@ trong trình duyệt để hoàn tất đăng nhập Microsoft Entra ID. Mã đã được sao chép vào bộ nhớ tạm." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "执行查询以 JSON 形式查看结果" + "value" : "在浏览器中输入代码 %@ 以完成 Microsoft Entra ID 登录。该代码已复制到剪贴板。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "執行查詢以 JSON 形式檢視結果" + "value" : "在瀏覽器中輸入代碼 %@ 以完成 Microsoft Entra ID 登入。該代碼已複製到剪貼簿。" } } } }, - "Execute all statements in a single transaction. If any statement fails, all changes are rolled back." : { - "extractionState" : "stale", + "Enter the ElastiCache cache name (replication group ID) to use IAM authentication." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 문을 단일 트랜잭션에서 실행합니다. 문 하나라도 실패하면 모든 변경 사항이 롤백됩니다." + "value" : "IAM 인증에 사용할 ElastiCache 캐시 이름(복제 그룹 ID)을 입력하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm ifadeleri tek bir işlemde çalıştır. Herhangi bir ifade başarısız olursa tüm değişiklikler geri alınır." + "value" : "IAM kimlik doğrulamasını kullanmak için ElastiCache önbellek adını (çoğaltma grubu kimliği) girin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thực thi tất cả câu lệnh trong một giao dịch. Nếu bất kỳ câu lệnh nào thất bại, tất cả thay đổi sẽ được hoàn tác." + "value" : "Nhập tên cache ElastiCache (replication group ID) để dùng xác thực IAM." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在单个事务中执行所有语句。如果任一语句失败,所有更改将回滚。" + "value" : "输入 ElastiCache 缓存名称(复制组 ID)以使用 IAM 认证。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在單一交易中執行所有陳述式。若任一陳述式失敗,所有變更都會回復。" + "value" : "輸入 ElastiCache 快取名稱(複寫群組 ID)以使用 IAM 驗證。" } } } }, - "Executed %lld statements" : { + "Enter the passphrase for SSH key \"%@\":" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "문 %lld개 실행됨" + "value" : "SSH 키 \"%@\"의 암호를 입력하십시오:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "çalıştırıldı %lld ifade" + "value" : "SSH anahtarı \"%@\" için parolayı girin:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã thực thi %lld câu lệnh" + "value" : "Nhập cụm mật khẩu cho khoá SSH \"%@\":" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已执行 %lld 条语句" + "value" : "请输入 SSH 密钥 \"%@\" 的密码:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已執行 %lld 條陳述式" + "value" : "請輸入 SSH 金鑰「%@」的密碼短語:" } } } }, - "Executed: %@" : { - "extractionState" : "stale", + "Enter the passphrase to decrypt and import connections." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "실행됨: %@" + "value" : "연결을 복호화하고 가져올 암호를 입력하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Çalıştırıldı: %@" + "value" : "Bağlantıları şifresini çözmek ve içe aktarmak için parolayı girin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã thực thi: %@" + "value" : "Nhập cụm mật khẩu để giải mã và nhập kết nối." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已执行:%@" + "value" : "输入密码短语以解密并导入连接。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已執行:%@" + "value" : "輸入密碼短語以解密並匯入連線。" } } } }, - "Executing" : { + "Enter the TOTP verification code for SSH authentication." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "실행 중" + "value" : "SSH 인증용 TOTP 확인 코드를 입력하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Çalıştırılıyor" + "value" : "SSH kimlik doğrulaması için TOTP doğrulama kodunu girin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang thực thi" + "value" : "Nhập mã xác minh TOTP để xác thực SSH." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "执行中" + "value" : "输入 TOTP 验证码以进行 SSH 身份验证。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "執行中" + "value" : "輸入 TOTP 驗證碼以進行 SSH 驗證。" } } } }, - "Executing…" : { + "Enter this code on GitHub:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "실행 중…" + "value" : "GitHub에 다음 코드를 입력하십시오:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Çalıştırılıyor…" + "value" : "Bu kodu GitHub'a girin:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang thực thi…" + "value" : "Nhập mã này trên GitHub:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在执行…" + "value" : "在 GitHub 上输入此代码:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在執行…" + "value" : "在 GitHub 上輸入此代碼:" } } } }, - "Execution: %.3fms" : { + "Enter your license key to unlock Pro features." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "실행 시간: %.3fms" + "value" : "Pro 기능을 잠금 해제하려면 라이선스 키를 입력하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Çalıştırma: %.3fms" + "value" : "Pro özelliklerin kilidini açmak için lisans anahtarınızı girin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thực thi: %.3fms" + "value" : "Nhập mã giấy phép để mở khoá các tính năng Pro." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "执行: %.3fms" + "value" : "输入许可证密钥以解锁 Pro 功能。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "執行:%.3fms" + "value" : "輸入授權金鑰以解鎖 Pro 功能。" } } } }, - "Existing table" : { + "Enter your license key, or a team invite code to join a team." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기존 테이블" + "value" : "라이선스 키 또는 팀 참여용 초대 코드를 입력하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Mevcut tablo" + "value" : "Lisans anahtarınızı girin veya bir takıma katılmak için takım davet kodunu girin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bảng hiện có" + "value" : "Nhập mã giấy phép của bạn, hoặc mã mời nhóm để tham gia một nhóm." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "现有表" + "value" : "输入你的许可证密钥,或输入团队邀请码以加入团队。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "現有資料表" + "value" : "輸入你的授權金鑰,或輸入團隊邀請碼以加入團隊。" } } } }, - "Expand All" : { + "Enterprise relational database for DM8 deployments" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모두 펼치기" + "value" : "DM8 배포용 엔터프라이즈 관계형 데이터베이스" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tümünü Genişlet" + "value" : "DM8 dağıtımları için kurumsal ilişkisel veritabanı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở rộng tất cả" + "value" : "Cơ sở dữ liệu quan hệ doanh nghiệp cho triển khai DM8" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "全部展开" + "value" : "面向 DM8 部署的企业级关系型数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "全部展開" + "value" : "適用於 DM8 部署的企業級關聯式資料庫" } } } }, - "Expand in Sidebar" : { + "Enterprise SQL with PL/SQL" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사이드바에서 펼치기" + "value" : "PL/SQL을 지원하는 엔터프라이즈 SQL" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kenar Çubuğunda Genişlet" + "value" : "PL/SQL ile kurumsal SQL" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở rộng trong sidebar" + "value" : "SQL doanh nghiệp với PL/SQL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在侧边栏中展开" + "value" : "支持 PL/SQL 的企业级 SQL" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在側邊欄中展開" + "value" : "支援 PL/SQL 的企業級 SQL" } } } }, - "Expected Behavior" : { - "extractionState" : "stale", + "Entry id" : { + + }, + "Enumerated values the column accepts" : { + + }, + "Environment" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "예상 동작" + "value" : "환경" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Beklenen Davranış" + "value" : "Ortam" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hành vi mong đợi" + "value" : "Môi trường" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "预期行为" + "value" : "环境" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "預期行為" + "value" : "環境" } } } }, - "Expiration" : { + "Environment variable %@ is not set in TablePro's environment. Apps launched from the Dock do not inherit shell exports. Launch TablePro from a terminal, or set the variable with launchctl setenv." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "만료" + "value" : "환경 변수 %@이(가) TablePro 환경에 설정되어 있지 않습니다. Dock에서 실행한 앱은 셸에서 export한 환경 변수를 상속하지 않습니다. 터미널에서 TablePro를 실행하거나 launchctl setenv로 변수를 설정하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Son Kullanma" + "value" : "%@ ortam değişkeni TablePro'nun ortamında ayarlı değil. Dock'tan başlatılan uygulamalar kabuk dışa aktarmalarını devralmaz. TablePro'yu bir terminalden başlatın veya değişkeni launchctl setenv ile ayarlayın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hết hạn" + "value" : "Biến môi trường %@ chưa được đặt trong môi trường của TablePro. Ứng dụng khởi chạy từ Dock không kế thừa các export của shell. Hãy khởi chạy TablePro từ terminal, hoặc đặt biến bằng launchctl setenv." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "过期时间" + "value" : "环境变量 %@ 未在 TablePro 的环境中设置。从 Dock 启动的应用不会继承 shell 导出的变量。请从终端启动 TablePro,或使用 launchctl setenv 设置该变量。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "到期時間" + "value" : "環境變數 %@ 未在 TablePro 的環境中設定。從 Dock 啟動的應用程式不會繼承 shell 匯出的變數。請從終端機啟動 TablePro,或使用 launchctl setenv 設定該變數。" } } } }, - "Expiration date" : { + "Environment Variables" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "만료일" + "value" : "환경 변수" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Son kullanma tarihi" + "value" : "Ortam Değişkenleri" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ngày hết hạn" + "value" : "Biến Môi trường" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "过期日期" + "value" : "环境变量" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "到期日期" + "value" : "環境變數" } } } }, - "Expired" : { + "equals" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "만료됨" + "value" : "같음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Süresi Doldu" + "value" : "eşittir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hết hạn" + "value" : "bằng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已过期" + "value" : "等于" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已過期" + "value" : "等於" } } } }, - "Expires" : { + "ER Diagram" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "만료" + "value" : "ER 다이어그램" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sona Erer" + "value" : "ER Diyagramı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hết hạn" + "value" : "Sơ đồ ER" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "过期时间" + "value" : "ER 图" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "到期時間" + "value" : "ER 圖" } } } }, - "Expires:" : { + "Error" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Expires:" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "만료:" + "value" : "오류" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bitiş Tarihi:" + "value" : "Hata" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hết hạn:" + "value" : "Lỗi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "到期时间:" + "value" : "错误" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "到期時間:" + "value" : "錯誤" } } } }, - "Explain" : { + "Error %d" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "설명" + "value" : "오류 %d" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Açıkla" + "value" : "Hata %d" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giải thích" + "value" : "Lỗi %d" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "解释" + "value" : "错误 %d" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "解釋" + "value" : "錯誤 %d" } } } }, - "Explain Query" : { + "Error Applying Changes" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 설명" + "value" : "변경 사항 적용 오류" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorguyu Açıkla" + "value" : "Değişiklikler Uygulanırken Hata" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giải thích truy vấn" + "value" : "Lỗi áp dụng thay đổi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "解释查询" + "value" : "应用更改时出错" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "解釋查詢" + "value" : "套用變更時發生錯誤" } } } }, - "Explain the current query" : { + "Error:" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "현재 쿼리 설명" + "value" : "오류:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geçerli sorguyu açıkla" + "value" : "Hata:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giải thích truy vấn hiện tại" + "value" : "Lỗi:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "解释当前查询" + "value" : "错误:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "解釋目前的查詢" + "value" : "錯誤:" } } } }, - "Explain this SQL query:\n\n```sql\n%@\n```" : { + "Error: %@" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 SQL 쿼리를 설명하십시오:\n\n```sql\n%@\n```" + "value" : "오류: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu SQL sorgusunu açıkla:\n\n```sql\n%@\n```" + "value" : "Hata: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giải thích chi tiết câu truy vấn SQL sau:\n\n```sql\n%@\n```" + "value" : "Lỗi: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "请解释以下 SQL 查询:\n\n```sql\n%@\n```" + "value" : "错误: %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "請解釋以下 SQL 查詢:\n\n```sql\n%@\n```" + "value" : "錯誤:%@" } } } }, - "Explain with AI" : { + "Error: Selected path is not a regular file" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "AI로 설명" + "value" : "오류: 선택한 경로가 일반 파일이 아닙니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yapay Zeka ile Açıkla" + "value" : "Hata: Seçilen yol normal bir dosya değil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giải thích với AI" + "value" : "Lỗi: Đường dẫn đã chọn không phải tệp thông thường" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "AI 解释" + "value" : "错误: 所选路径不是常规文件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "以 AI 解釋" + "value" : "錯誤:所選路徑不是一般檔案" } } } }, - "Export" : { + "Escape character" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "내보내기" + "value" : "이스케이프 문자" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dışa Aktar" + "value" : "Kaçış karakteri" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất" + "value" : "Ký tự thoát" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导出" + "value" : "转义字符" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯出" + "value" : "跳脫字元" } } } }, - "Export %d Connections to File…" : { + "Escape clears the search text" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 %d개를 파일로 내보내기…" + "value" : "Escape 키를 누르면 검색 텍스트가 지워집니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%d Bağlantıyı Dosyaya Aktar…" + "value" : "Escape arama metnini temizler" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất %d kết nối ra tệp…" + "value" : "Escape xoá nội dung tìm kiếm" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导出 %d 个连接到文件…" + "value" : "Escape 清除搜索文本" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯出 %d 個連線至檔案…" + "value" : "Escape 清除搜尋文字" } } } }, - "Export %d Connections..." : { - "extractionState" : "stale", + "Escape closes Open Quickly" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 %d개 내보내기..." + "value" : "Escape 키를 누르면 빠르게 열기가 닫힙니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%d Bağlantıyı Dışa Aktar..." + "value" : "Escape, Hızlı Aç'ı kapatır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất %d kết nối..." + "value" : "Escape đóng Mở nhanh" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导出%d个连接..." + "value" : "Escape 关闭“快速打开”" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯出 %d 個連線…" + "value" : "Escape 關閉「快速打開」" } } } }, - "Export %d row(s) to %@" : { + "Escaped literals, in the order supplied" : { + + }, + "Estimated row count" : { + + }, + "EU Long (31/12/2024 23:59:59)" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Export %1$d row(s) to %2$@" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$d개 행을 %2$@(으)로 내보내기" + "value" : "EU 긴 형식(31/12/2024 23:59:59)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%d satırı %@ olarak dışa aktar" + "value" : "AB Uzun (31/12/2024 23:59:59)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất %d dòng sang %@" + "value" : "Châu Âu dài (31/12/2024 23:59:59)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导出%d行到%@" + "value" : "欧洲长格式 (31/12/2024 23:59:59)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯出 %1$d 列至 %2$@" + "value" : "歐洲長格式 (31/12/2024 23:59:59)" } } } }, - "Export %d table(s) to %@" : { + "EU Short (31/12/2024)" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Export %1$d table(s) to %2$@" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$d개 테이블을 %2$@(으)로 내보내기" + "value" : "EU 짧은 형식(31/12/2024)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%d tabloyu %@ olarak dışa aktar" + "value" : "AB Kısa (31/12/2024)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất %d bảng sang %@" + "value" : "Châu Âu ngắn (31/12/2024)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导出%d个表到%@" + "value" : "欧洲短格式 (31/12/2024)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯出 %1$d 個資料表至 %2$@" + "value" : "歐洲短格式 (31/12/2024)" } } } }, - "Export %lld Connections..." : { - "extractionState" : "stale", + "Event" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 %lld개 내보내기..." + "value" : "이벤트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%lld Bağlantıyı Dışa Aktar..." + "value" : "Olay" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất %lld Kết nối..." + "value" : "Sự kiện" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导出 %lld 个连接…" + "value" : "事件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯出 %lld 個連線…" + "value" : "事件" } } } }, - "Export %lld row(s) to %@" : { - "extractionState" : "stale", + "Every included column needs a name." : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Export %1$lld row(s) to %2$@" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$lld개 행을 %2$@(으)로 내보내기" + "value" : "포함된 모든 열에 이름이 필요합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%lld satırı %@ olarak dışa aktar" + "value" : "Dahil edilen her sütunun bir adı olmalıdır." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Export %lld hàng sang %@" + "value" : "Mỗi cột được bao gồm cần có tên." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导出 %lld 行到 %@" + "value" : "每个包含的列都需要名称。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯出 %1$lld 列至 %2$@" + "value" : "每個納入的欄位都需要名稱。" } } } }, - "Export %lld table(s) to %@" : { - "extractionState" : "stale", + "Every object that was compared matches." : { + + }, + "Every row must be an array with one value per column." : { + + }, + "Every saved connection this client may use, with its live session state" : { + + }, + "Every shared column is generated, so there is nothing to write." : { + + }, + "Every table needs at least one column. Click + to get started" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Export %1$lld table(s) to %2$@" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$lld개 테이블을 %2$@(으)로 내보내기" + "value" : "모든 테이블에는 열이 하나 이상 있어야 합니다. +를 클릭하여 시작하십시오" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%lld tabloyu %@ olarak dışa aktar" + "value" : "Her tablonun en az bir sütuna ihtiyacı vardır. Başlamak için + tıklayın" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Export %lld bảng sang %@" + "value" : "Mỗi bảng cần ít nhất một cột. Nhấn + để bắt đầu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导出 %lld 张表到 %@" + "value" : "每个表至少需要一列。点击 + 开始添加" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯出 %1$lld 個資料表至 %2$@" + "value" : "每個資料表至少需要一個欄位。點按 + 開始新增" } } } }, - "Export & Import" : { + "Everything" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "내보내기 및 가져오기" + "value" : "모두" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dışa ve İçe Aktar" + "value" : "Her Şey" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất & Nhập" + "value" : "Tất cả" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导出与导入" + "value" : "全部" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯出與匯入" + "value" : "全部" } } } }, - "Export Activity Log" : { + "Exact value" : { + + }, + "Examples" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "활동 로그 내보내기" + "value" : "예시" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Etkinlik Günlüğünü Dışa Aktar" + "value" : "Örnekler" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất nhật ký hoạt động" + "value" : "Ví dụ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导出活动日志" + "value" : "示例" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯出活動記錄" + "value" : "範例" } } } }, - "Export Connections…" : { + "Excel spreadsheet with formatting support." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 내보내기…" + "value" : "서식을 지원하는 Excel 스프레드시트입니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantıları Dışa Aktar…" + "value" : "Biçimlendirme destekli Excel elektronik tablosu." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất Kết nối…" + "value" : "Bảng tính Excel có hỗ trợ định dạng." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导出连接…" + "value" : "支持格式化的 Excel 电子表格。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯出連線…" + "value" : "支援格式設定的 Excel 試算表。" } } } }, - "Export Data" : { + "Exclude" : { + + }, + "Exclude Every Table" : { + + }, + "Exclude from iCloud Sync" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터 내보내기" + "value" : "iCloud 동기화에서 제외" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veriyi Dışa Aktar" + "value" : "iCloud Eşitlemesinden Hariç Tut" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất dữ liệu" + "value" : "Loại khỏi đồng bộ iCloud" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导出数据" + "value" : "排除 iCloud 同步" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯出資料" + "value" : "排除於 iCloud 同步" } } } }, - "Export Data (⌘⇧E)" : { - "extractionState" : "stale", + "Execute" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터 내보내기(⌘⇧E)" + "value" : "실행" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veriyi Dışa Aktar (⌘⇧E)" + "value" : "Çalıştır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất dữ liệu (⌘⇧E)" + "value" : "Thực thi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导出数据 (⌘⇧E)" + "value" : "执行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯出資料 (⌘⇧E)" + "value" : "執行" } } } }, - "Export ER Diagram" : { + "Execute a destructive DDL query (DROP, TRUNCATE, ALTER...DROP) after explicit confirmation." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "ER 다이어그램 내보내기" + "value" : "명시적으로 확인한 후 파괴적 DDL 쿼리(DROP, TRUNCATE, ALTER...DROP)를 실행합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "ER Diyagramını Dışa Aktar" + "value" : "Açık onaydan sonra yıkıcı bir DDL sorgusu (DROP, TRUNCATE, ALTER...DROP) çalıştırır." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất sơ đồ ER" + "value" : "Thực thi truy vấn DDL phá hủy (DROP, TRUNCATE, ALTER...DROP) sau khi xác nhận rõ ràng." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导出 ER 图" + "value" : "在明确确认后执行破坏性 DDL 查询(DROP、TRUNCATE、ALTER...DROP)。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯出 ER 圖" + "value" : "在明確確認後執行破壞性 DDL 查詢(DROP、TRUNCATE、ALTER...DROP)。" } } } }, - "Export Error" : { + "Execute a destructive DDL query (DROP, TRUNCATE, ALTER...DROP) after explicit confirmation. Pass confirmation_phrase exactly as: I understand this is irreversible" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "내보내기 오류" + "value" : "명시적으로 확인한 후 파괴적 DDL 쿼리(DROP, TRUNCATE, ALTER...DROP)를 실행합니다. confirmation_phrase를 다음과 정확히 일치하게 전달하십시오: I understand this is irreversible" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dışa Aktarma Hatası" + "value" : "Açık onaydan sonra yıkıcı bir DDL sorgusu (DROP, TRUNCATE, ALTER...DROP) çalıştırır. confirmation_phrase değerini tam olarak şu şekilde iletin: I understand this is irreversible" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lỗi xuất dữ liệu" + "value" : "Thực thi truy vấn DDL phá hủy (DROP, TRUNCATE, ALTER...DROP) sau khi xác nhận rõ ràng. Truyền confirmation_phrase chính xác là: I understand this is irreversible" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导出错误" + "value" : "在明确确认后执行破坏性 DDL 查询(DROP、TRUNCATE、ALTER...DROP)。confirmation_phrase 必须严格传入:I understand this is irreversible" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯出錯誤" + "value" : "在明確確認後執行破壞性 DDL 查詢(DROP、TRUNCATE、ALTER...DROP)。confirmation_phrase 必須完全照這樣傳入:I understand this is irreversible" } } } }, - "Export Failed" : { + "Execute a query to chart its loaded rows." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "내보내기 실패" + "value" : "쿼리를 실행하면 불러온 행을 차트로 그립니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dışa Aktarma Başarısız" + "value" : "Yüklenen satırları grafikte göstermek için bir sorgu çalıştırın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất Thất bại" + "value" : "Chạy truy vấn để vẽ biểu đồ từ các hàng đã tải." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导出失败" + "value" : "执行查询以绘制已加载行的图表。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯出失敗" + "value" : "執行查詢以繪製已載入列的圖表。" } } } }, - "Export Format" : { + "Execute a query to view results as JSON" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "내보내기 형식" + "value" : "쿼리를 실행하고 결과를 JSON으로 표시합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dışa Aktarma Biçimi" + "value" : "Sonuçları JSON olarak görmek için bir sorgu çalıştırın" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Định dạng xuất" + "value" : "Chạy truy vấn để xem kết quả dưới dạng JSON" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导出格式" + "value" : "执行查询以 JSON 形式查看结果" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯出格式" + "value" : "執行查詢以 JSON 形式檢視結果" } } } }, - "Export Formats" : { + "Execute a SQL query against a connection. The connection's safe mode policy applies. Multi-statement queries are rejected. Destructive operations (DROP, TRUNCATE, ALTER...DROP) are blocked here; use confirm_destructive_operation instead." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "내보내기 형식" + "value" : "연결에서 SQL 쿼리를 실행합니다. 연결의 안전 모드 정책이 적용됩니다. 여러 문으로 구성된 쿼리는 거부됩니다. 파괴적 작업(DROP, TRUNCATE, ALTER...DROP)은 여기에서 차단되며, 대신 confirm_destructive_operation을 사용하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dışa Aktarma Biçimleri" + "value" : "Bir bağlantıda SQL sorgusu çalıştırır. Bağlantının güvenli mod politikası uygulanır. Çok deyimli sorgular reddedilir. Yıkıcı işlemler (DROP, TRUNCATE, ALTER...DROP) burada engellenir; bunun yerine confirm_destructive_operation kullanın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Định dạng xuất" + "value" : "Thực thi truy vấn SQL trên một kết nối. Chính sách chế độ an toàn của kết nối được áp dụng. Truy vấn nhiều câu lệnh sẽ bị từ chối. Các thao tác phá hủy (DROP, TRUNCATE, ALTER...DROP) bị chặn ở đây; hãy dùng confirm_destructive_operation thay thế." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导出格式" + "value" : "对连接执行 SQL 查询。受连接的安全模式策略约束。多语句查询会被拒绝。破坏性操作(DROP、TRUNCATE、ALTER...DROP)在此被阻止;请改用 confirm_destructive_operation。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯出格式" + "value" : "對連線執行 SQL 查詢。會套用連線的安全模式原則。多陳述式查詢會被拒絕。破壞性操作(DROP、TRUNCATE、ALTER...DROP)在此會被封鎖;請改用 confirm_destructive_operation。" } } } }, - "Export Options" : { + "Execute a SQL query. All queries are subject to the connection's safe mode policy. DROP/TRUNCATE/ALTER...DROP must use the confirm_destructive_operation tool." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "내보내기 옵션" + "value" : "SQL 쿼리를 실행합니다. 모든 쿼리에는 연결의 안전 모드 정책이 적용됩니다. DROP/TRUNCATE/ALTER...DROP에는 confirm_destructive_operation 도구를 사용해야 합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dışa Aktarma Seçenekleri" + "value" : "SQL sorgusu çalıştırır. Tüm sorgular bağlantının güvenli mod politikasına tabidir. DROP/TRUNCATE/ALTER...DROP için confirm_destructive_operation aracı kullanılmalıdır." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tùy chọn Xuất" + "value" : "Thực thi truy vấn SQL. Mọi truy vấn đều tuân theo chính sách chế độ an toàn của kết nối. DROP/TRUNCATE/ALTER...DROP phải dùng công cụ confirm_destructive_operation." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导出选项" + "value" : "执行 SQL 查询。所有查询都受连接的安全模式策略约束。DROP/TRUNCATE/ALTER...DROP 必须使用 confirm_destructive_operation 工具。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯出選項" + "value" : "執行 SQL 查詢。所有查詢都受連線的安全模式原則約束。DROP/TRUNCATE/ALTER...DROP 必須使用 confirm_destructive_operation 工具。" } } } }, - "Export Plan as Image" : { - "comment" : "A button that exports the diagram as an image.", - "isCommentAutoGenerated" : true, + "Execute All" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "실행 계획을 이미지로 내보내기" + "value" : "모두 실행" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Planı Görüntü Olarak Dışa Aktar" + "value" : "Tümünü Çalıştır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất kế hoạch thành ảnh" + "value" : "Thực thi tất cả" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将执行计划导出为图片" + "value" : "全部执行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將執行計畫匯出為圖片" + "value" : "全部執行" } } } }, - "Export Query Plan" : { - "comment" : "Button title to export the diagram as an image.", - "isCommentAutoGenerated" : true, + "Execute All Statements" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 계획 내보내기" + "value" : "모든 문 실행" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgu Planını Dışa Aktar" + "value" : "Tüm İfadeleri Çalıştır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất kế hoạch truy vấn" + "value" : "Thực thi tất cả câu lệnh" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导出查询计划" + "value" : "执行所有语句" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯出查詢計畫" + "value" : "執行所有陳述式" } } } }, - "Export Results…" : { + "Execute all statements in a single transaction. If any statement fails, all changes are rolled back." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "결과 내보내기…" + "value" : "모든 문을 단일 트랜잭션에서 실행합니다. 문 하나라도 실패하면 모든 변경 사항이 롤백됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sonuçları Dışa Aktar…" + "value" : "Tüm ifadeleri tek bir işlemde çalıştır. Herhangi bir ifade başarısız olursa tüm değişiklikler geri alınır." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Export Kết Quả…" + "value" : "Thực thi tất cả câu lệnh trong một giao dịch. Nếu bất kỳ câu lệnh nào thất bại, tất cả thay đổi sẽ được hoàn tác." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导出结果…" + "value" : "在单个事务中执行所有语句。如果任一语句失败,所有更改将回滚。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯出結果…" + "value" : "在單一交易中執行所有陳述式。若任一陳述式失敗,所有變更都會回復。" } } } }, - "Export Tables…" : { + "Execute Query" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 내보내기…" + "value" : "쿼리 실행" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tabloları Dışa Aktar…" + "value" : "Sorguyu Çalıştır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất bảng…" + "value" : "Thực thi truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导出表…" + "value" : "执行查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯出資料表…" + "value" : "執行查詢" } } } }, - "Export activity to CSV" : { - "extractionState" : "stale", + "Execute Query Without Limit" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "활동을 CSV로 내보내기" + "value" : "제한 없이 쿼리 실행" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Etkinliği CSV olarak dışa aktar" + "value" : "Sorguyu Limitsiz Çalıştır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất hoạt động ra CSV" + "value" : "Chạy truy vấn không giới hạn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将活动导出为 CSV" + "value" : "不限行数执行查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將活動匯出為 CSV" + "value" : "不限列數執行查詢" } } } }, - "Export as PNG" : { + "Execute Without Limit" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "PNG로 내보내기" + "value" : "제한 없이 실행" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "PNG olarak dışa aktar" + "value" : "Limitsiz Çalıştır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất dưới dạng PNG" + "value" : "Chạy không giới hạn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导出为 PNG" + "value" : "不限行数执行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯出為 PNG" + "value" : "不限列數執行" } } } }, - "Export as SQL" : { + "Executed %lld statements" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SQL로 내보내기" + "value" : "문 %lld개 실행됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SQL Olarak Dışa Aktar" + "value" : "çalıştırıldı %lld ifade" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất dạng SQL" + "value" : "Đã thực thi %lld câu lệnh" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导出为 SQL" + "value" : "已执行 %lld 条语句" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯出為 SQL" + "value" : "已執行 %lld 條陳述式" } } } }, - "Export completed" : { + "Executed: %@" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "내보내기 완료" + "value" : "실행됨: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dışa aktarma tamamlandı" + "value" : "Çalıştırıldı: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã xuất xong" + "value" : "Đã thực thi: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导出完成" + "value" : "已执行:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯出完成" + "value" : "已執行:%@" } } } }, - "Export completed successfully" : { + "Executing" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "내보내기를 완료했습니다" + "value" : "실행 중" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dışa aktarma başarıyla tamamlandı" + "value" : "Çalıştırılıyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất dữ liệu thành công" + "value" : "Đang thực thi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导出成功" + "value" : "执行中" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯出成功完成" + "value" : "執行中" } } } }, - "Export connections with encrypted credentials." : { + "Executing…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "암호화된 자격 증명과 함께 연결을 내보냅니다." + "value" : "실행 중…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantıları şifrelenmiş kimlik bilgileriyle dışa aktar." + "value" : "Çalıştırılıyor…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất kết nối với thông tin đăng nhập được mã hóa." + "value" : "Đang thực thi…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导出连接并加密凭据。" + "value" : "正在执行…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯出連線並加密憑證。" + "value" : "正在執行…" } } } }, - "Export data" : { - "extractionState" : "stale", + "Execution" : { + + }, + "Execution time" : { + + }, + "Execution: %.3fms" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터 내보내기" + "value" : "실행 시간: %.3fms" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veriyi dışa aktar" + "value" : "Çalıştırma: %.3fms" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất dữ liệu" + "value" : "Thực thi: %.3fms" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导出数据" + "value" : "执行: %.3fms" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯出資料" + "value" : "執行:%.3fms" } } } }, - "Export failed: %@" : { + "Existing table" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "내보내기 실패: %@" + "value" : "기존 테이블" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dışa aktarma başarısız: %@" + "value" : "Mevcut tablo" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất thất bại: %@" + "value" : "Bảng hiện có" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导出失败: %@" + "value" : "现有表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯出失敗:%@" + "value" : "現有資料表" } } } }, - "Export format '%@' not found" : { + "expand" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "내보내기 형식 '%@'을(를) 찾을 수 없습니다" + "value" : "펼치기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dışa aktarma biçimi '%@' bulunamadı" + "value" : "genişlet" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy định dạng xuất '%@'" + "value" : "mở rộng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未找到导出格式 '%@'" + "value" : "展开" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "找不到匯出格式「%@」" + "value" : "展開" } } } }, - "Export format: csv, json, or sql" : { + "Expand All" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "내보내기 형식: csv, json 또는 sql" + "value" : "모두 펼치기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dışa aktarma biçimi: csv, json veya sql" + "value" : "Tümünü Genişlet" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Định dạng xuất: csv, json hoặc sql" + "value" : "Mở rộng tất cả" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导出格式:csv、json 或 sql" + "value" : "全部展开" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯出格式:csv、json 或 sql" + "value" : "全部展開" } } } }, - "Export multiple tables" : { + "Expand in Sidebar" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "여러 테이블 내보내기" + "value" : "사이드바에서 펼치기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Birden fazla tabloyu dışa aktar" + "value" : "Kenar Çubuğunda Genişlet" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất nhiều bảng" + "value" : "Mở rộng trong sidebar" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导出多个表" + "value" : "在侧边栏中展开" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯出多個資料表" + "value" : "在側邊欄中展開" } } } }, - "Export query results and tables to Excel format." : { + "Expected Behavior" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 결과와 테이블을 Excel 형식으로 내보냅니다." + "value" : "예상 동작" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgu sonuçlarını ve tabloları Excel biçiminde dışa aktarın." + "value" : "Beklenen Davranış" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất kết quả truy vấn và bảng sang định dạng Excel." + "value" : "Hành vi mong đợi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将查询结果和表导出为 Excel 格式。" + "value" : "预期行为" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將查詢結果與資料表匯出為 Excel 格式。" + "value" : "預期行為" } } } }, - "Export query results or table data to CSV, JSON, or SQL" : { + "Expiration" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 결과 또는 테이블 데이터를 CSV, JSON 또는 SQL로 내보냅니다" + "value" : "만료" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgu sonuçlarını veya tablo verilerini CSV, JSON veya SQL olarak dışa aktar" + "value" : "Son Kullanma" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất kết quả truy vấn hoặc dữ liệu bảng ra CSV, JSON hoặc SQL" + "value" : "Hết hạn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将查询结果或表数据导出为 CSV、JSON 或 SQL" + "value" : "过期时间" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將查詢結果或資料表資料匯出為 CSV、JSON 或 SQL" + "value" : "到期時間" } } } }, - "Export query results to %@" : { + "Expiration date" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 결과를 %@(으)로 내보내기" + "value" : "만료일" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgu sonuçlarını %@ olarak dışa aktar" + "value" : "Son kullanma tarihi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất kết quả truy vấn sang %@" + "value" : "Ngày hết hạn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将查询结果导出为 %@" + "value" : "过期日期" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將查詢結果匯出為 %@" + "value" : "到期日期" } } } }, - "Export table" : { + "Expired" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 내보내기" + "value" : "만료됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tabloyu dışa aktar" + "value" : "Süresi Doldu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất bảng" + "value" : "Hết hạn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导出表" + "value" : "已过期" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯出資料表" + "value" : "已過期" } } } }, - "Export the filtered activity log to CSV" : { + "Expires" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터링된 활동 로그를 CSV로 내보내기" + "value" : "만료" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtrelenmiş etkinlik günlüğünü CSV olarak dışa aktar" + "value" : "Sona Erer" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất nhật ký hoạt động đã lọc ra CSV" + "value" : "Hết hạn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将筛选后的活动日志导出为 CSV" + "value" : "过期时间" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將篩選後的活動記錄匯出為 CSV" + "value" : "到期時間" } } } }, - "Export to File…" : { + "Expires:" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Expires:" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "파일로 내보내기…" + "value" : "만료:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dosyaya Aktar…" + "value" : "Bitiş Tarihi:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất ra tệp…" + "value" : "Hết hạn:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导出到文件…" + "value" : "到期时间:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯出至檔案…" + "value" : "到期時間:" } } } }, - "Exports data as mongosh-compatible scripts. Drop, Indexes, and Data options are configured per collection in the collection list." : { - "extractionState" : "stale", + "Explain" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터를 mongosh 호환 스크립트로 내보냅니다. Drop, Indexes 및 Data 옵션은 컬렉션 목록의 각 컬렉션에서 설정합니다." + "value" : "설명" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veriyi mongosh uyumlu betikler olarak dışa aktarır. Bırak, İndeksler ve Veri seçenekleri koleksiyon listesinde koleksiyon başına yapılandırılır." + "value" : "Açıkla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất dữ liệu dưới dạng script tương thích mongosh. Tùy chọn Drop, Indexes và Data được cấu hình cho từng collection trong danh sách collection." + "value" : "Giải thích" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将数据导出为 mongosh 兼容的脚本。Drop、Indexes 和 Data 选项可在集合列表中按集合配置。" + "value" : "解释" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將資料匯出為 mongosh 相容的指令碼。Drop、Indexes 與 Data 選項可在集合清單中依集合個別設定。" + "value" : "解釋" } } } }, - "Export…" : { + "Explain a schema" : { + + }, + "Explain a table" : { + + }, + "EXPLAIN is not supported for this database type." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "내보내기…" + "value" : "이 데이터베이스 유형에서는 EXPLAIN을 지원하지 않습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dışa Aktar…" + "value" : "Bu veritabanı türü için EXPLAIN desteklenmiyor." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất…" + "value" : "EXPLAIN không được hỗ trợ cho loại cơ sở dữ liệu này." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导出…" + "value" : "此数据库类型不支持 EXPLAIN。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯出…" + "value" : "此資料庫類型不支援 EXPLAIN。" } } } }, - "Expose to local network" : { + "Explain one table's columns, keys, indexes, and DDL to someone who has never used it" : { + + }, + "Explain plan" : { + + }, + "Explain Query" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "로컬 네트워크에 공개" + "value" : "쿼리 설명" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yerel ağa aç" + "value" : "Sorguyu Açıkla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cho phép truy cập từ mạng cục bộ" + "value" : "Giải thích truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "开放给本地网络" + "value" : "解释查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開放給本機網路" + "value" : "解釋查詢" } } } }, - "Expression (e.g., age >= 0)" : { - "extractionState" : "stale", + "Explain the current query" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "표현식(예: age >= 0)" + "value" : "현재 쿼리 설명" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İfade (örn. age >= 0)" + "value" : "Geçerli sorguyu açıkla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Biểu thức (vd: age >= 0)" + "value" : "Giải thích truy vấn hiện tại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "表达式(如 age >= 0)" + "value" : "解释当前查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "運算式(例如 age >= 0)" + "value" : "解釋目前的查詢" } } } }, - "Extend Selection to Next Statement" : { + "Explain this SQL query:\n\n```sql\n%@\n```" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다음 문까지 선택 확장" + "value" : "이 SQL 쿼리를 설명하십시오:\n\n```sql\n%@\n```" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Seçimi Sonraki İfadeye Genişlet" + "value" : "Bu SQL sorgusunu açıkla:\n\n```sql\n%@\n```" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở rộng vùng chọn đến câu lệnh tiếp theo" + "value" : "Giải thích chi tiết câu truy vấn SQL sau:\n\n```sql\n%@\n```" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将所选内容扩展到下一条语句" + "value" : "请解释以下 SQL 查询:\n\n```sql\n%@\n```" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將所選範圍延伸至下一個陳述式" + "value" : "請解釋以下 SQL 查詢:\n\n```sql\n%@\n```" } } } }, - "Extend Selection to Previous Statement" : { + "Explain variant id for this engine. Call with no variant to see the list." : { + + }, + "Explain variants this engine declares" : { + + }, + "Explain with AI" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이전 문까지 선택 확장" + "value" : "AI로 설명" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Seçimi Önceki İfadeye Genişlet" + "value" : "Yapay Zeka ile Açıkla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở rộng vùng chọn đến câu lệnh trước" + "value" : "Giải thích với AI" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将所选内容扩展到上一条语句" + "value" : "AI 解释" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將所選範圍延伸至上一個陳述式" + "value" : "以 AI 解釋" } } } }, - "External" : { + "Explanation of %@ on %@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Explanation of %1$@ on %2$@" + } + } + } + }, + "export" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "외부" + "value" : "내보내기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Harici" + "value" : "dışa aktar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bên ngoài" + "value" : "xuất" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "外部" + "value" : "导出" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "外部" + "value" : "匯出" } } } }, - "External Access" : { + "Export" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "외부 접근" + "value" : "내보내기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Harici Erişim" + "value" : "Dışa Aktar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Truy cập bên ngoài" + "value" : "Xuất" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "外部访问" + "value" : "导出" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "外部存取" + "value" : "匯出" } } } }, - "External Clients" : { + "Export & Import" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "외부 클라이언트" + "value" : "내보내기 및 가져오기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Harici İstemciler" + "value" : "Dışa ve İçe Aktar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Client bên ngoài" + "value" : "Xuất & Nhập" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "外部客户端" + "value" : "导出与导入" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "外部用戶端" + "value" : "匯出與匯入" } } } }, - "External Table" : { + "Export %d Connections to File…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "외부 테이블" + "value" : "연결 %d개를 파일로 내보내기…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Harici Tablo" + "value" : "%d Bağlantıyı Dosyaya Aktar…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "External Table" + "value" : "Xuất %d kết nối ra tệp…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "外部表" + "value" : "导出 %d 个连接到文件…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "外部資料表" + "value" : "匯出 %d 個連線至檔案…" } } } }, - "External access is disabled for this connection" : { + "Export %d Connections..." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 연결에서는 외부 접근이 비활성화되어 있습니다" + "value" : "연결 %d개 내보내기..." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu bağlantı için harici erişim devre dışı" + "value" : "%d Bağlantıyı Dışa Aktar..." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Truy cập bên ngoài đã bị tắt cho kết nối này" + "value" : "Xuất %d kết nối..." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "该连接已禁用外部访问" + "value" : "导出%d个连接..." } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此連線已停用外部存取" + "value" : "匯出 %d 個連線…" } } } }, - "External integrations and MCP client requests will appear here." : { + "Export %d row(s) to %@" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Export %1$d row(s) to %2$@" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "외부 통합 및 MCP 클라이언트 요청이 여기에 표시됩니다." + "value" : "%1$d개 행을 %2$@(으)로 내보내기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Harici entegrasyonlar ve MCP istemci istekleri burada görünür." + "value" : "%d satırı %@ olarak dışa aktar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Các tích hợp bên ngoài và yêu cầu từ MCP client sẽ xuất hiện ở đây." + "value" : "Xuất %d dòng sang %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "外部集成和 MCP 客户端请求将显示在此处。" + "value" : "导出%d行到%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "外部整合與 MCP 用戶端要求將顯示於此處。" + "value" : "匯出 %1$d 列至 %2$@" } } } }, - "Extra High" : { + "Export %d table(s) to %@" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Export %1$d table(s) to %2$@" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "매우 높음" + "value" : "%1$d개 테이블을 %2$@(으)로 내보내기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Çok Yüksek" + "value" : "%d tabloyu %@ olarak dışa aktar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cực cao" + "value" : "Xuất %d bảng sang %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "超高" + "value" : "导出%d个表到%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "超高" + "value" : "匯出 %1$d 個資料表至 %2$@" } } } }, - "Extra Large" : { + "Export %lld Connections..." : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "특대" + "value" : "연결 %lld개 내보내기..." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Çok Büyük" + "value" : "%lld Bağlantıyı Dışa Aktar..." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Rất lớn" + "value" : "Xuất %lld Kết nối..." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "特大" + "value" : "导出 %lld 个连接…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "特大" + "value" : "匯出 %lld 個連線…" } } } }, - "FALSE" : { + "Export %lld row(s) to %@" : { "extractionState" : "stale", "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Export %1$lld row(s) to %2$@" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "FALSE" + "value" : "%1$lld개 행을 %2$@(으)로 내보내기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "FALSE" + "value" : "%lld satırı %@ olarak dışa aktar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "FALSE" + "value" : "Export %lld hàng sang %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "FALSE" + "value" : "导出 %lld 行到 %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "FALSE" + "value" : "匯出 %1$lld 列至 %2$@" } } } }, - "FAST" : { + "Export %lld table(s) to %@" : { + "extractionState" : "stale", "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Export %1$lld table(s) to %2$@" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "FAST" + "value" : "%1$lld개 테이블을 %2$@(으)로 내보내기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "HIZLI" + "value" : "%lld tabloyu %@ olarak dışa aktar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "NHANH" + "value" : "Export %lld bảng sang %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "快速" + "value" : "导出 %lld 张表到 %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "快速" + "value" : "匯出 %1$lld 個資料表至 %2$@" } } } }, - "FIELDS" : { - "extractionState" : "stale", + "Export Activity Log" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "FIELDS" + "value" : "활동 로그 내보내기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "ALANLAR" + "value" : "Etkinlik Günlüğünü Dışa Aktar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "TRƯỜNG" + "value" : "Xuất nhật ký hoạt động" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "字段" + "value" : "导出活动日志" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "欄位" + "value" : "匯出活動記錄" } } } }, - "FIELDS (%lld)" : { + "Export activity to CSV" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "FIELDS (%lld)" + "value" : "활동을 CSV로 내보내기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "ALANLAR (%lld)" + "value" : "Etkinliği CSV olarak dışa aktar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "CÁC TRƯỜNG (%lld)" + "value" : "Xuất hoạt động ra CSV" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "字段 (%lld)" + "value" : "将活动导出为 CSV" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "欄位 (%lld)" + "value" : "將活動匯出為 CSV" } } } }, - "FULL (rewrites entire table, blocks access)" : { + "Export as PNG" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "FULL(전체 테이블을 다시 쓰며 접근을 차단함)" + "value" : "PNG로 내보내기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "FULL (tüm tabloyu yeniden yazar, erişimi engeller)" + "value" : "PNG olarak dışa aktar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "FULL (ghi lại toàn bộ bảng, chặn truy cập)" + "value" : "Xuất dưới dạng PNG" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "FULL(重写整个表,阻止访问)" + "value" : "导出为 PNG" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "FULL(重寫整個資料表,封鎖存取)" + "value" : "匯出為 PNG" } } } }, - "Failed" : { + "Export as SQL" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "실패" + "value" : "SQL로 내보내기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Başarısız" + "value" : "SQL Olarak Dışa Aktar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thất bại" + "value" : "Xuất dạng SQL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "失败" + "value" : "导出为 SQL" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "失敗" + "value" : "匯出為 SQL" } } } }, - "Failed at line %lld" : { - "extractionState" : "stale", + "Export completed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "줄 %lld에서 실패했습니다" + "value" : "내보내기 완료" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satır %lld'de başarısız" + "value" : "Dışa aktarma tamamlandı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thất bại tại dòng %lld" + "value" : "Đã xuất xong" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在第 %lld 行失败" + "value" : "导出完成" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在第 %lld 行失敗" + "value" : "匯出完成" } } } }, - "Failed at line %lld. %@" : { - "comment" : "Error message displayed in an alert when a plugin import fails. The first argument is the line number of the failed statement. The second argument is the error message from the underlying error.", - "isCommentAutoGenerated" : true, + "Export completed successfully" : { + "extractionState" : "stale", "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Failed at line %1$lld. %2$@" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "줄 %1$lld에서 실패했습니다. %2$@" + "value" : "내보내기를 완료했습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%lld. satırda başarısız oldu. %@" + "value" : "Dışa aktarma başarıyla tamamlandı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lỗi ở dòng %lld. %@" + "value" : "Xuất dữ liệu thành công" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "第 %lld 行失败。%@" + "value" : "导出成功" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "第 %lld 行失敗。%@" + "value" : "匯出成功完成" } } } }, - "Failed to Fetch DDL" : { + "Export connections with encrypted credentials." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "DDL을 가져오지 못했습니다" + "value" : "암호화된 자격 증명과 함께 연결을 내보냅니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "DDL Alınamadı" + "value" : "Bağlantıları şifrelenmiş kimlik bilgileriyle dışa aktar." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể lấy DDL" + "value" : "Xuất kết nối với thông tin đăng nhập được mã hóa." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "获取 DDL 失败" + "value" : "导出连接并加密凭据。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "擷取 DDL 失敗" + "value" : "匯出連線並加密憑證。" } } } }, - "Failed to Load" : { + "Export Connections…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "불러오지 못했습니다" + "value" : "연결 내보내기…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yükleme Başarısız" + "value" : "Bağlantıları Dışa Aktar…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tải thất bại" + "value" : "Xuất Kết nối…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "加载失败" + "value" : "导出连接…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "載入失敗" + "value" : "匯出連線…" } } } }, - "Failed to Save Changes" : { + "Export data" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "변경 사항을 저장하지 못했습니다" + "value" : "데이터 내보내기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Değişiklikler Kaydedilemedi" + "value" : "Veriyi dışa aktar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lưu thay đổi thất bại" + "value" : "Xuất dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "保存更改失败" + "value" : "导出数据" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "儲存變更失敗" + "value" : "匯出資料" } } } }, - "Failed to compress data" : { + "Export Data" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터를 압축하지 못했습니다" + "value" : "데이터 내보내기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veri sıkıştırılamadı" + "value" : "Veriyi Dışa Aktar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể nén dữ liệu" + "value" : "Xuất dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "压缩数据失败" + "value" : "导出数据" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "壓縮資料失敗" + "value" : "匯出資料" } } } }, - "Failed to create terminal process (errno: %d)" : { + "Export Data (⌘⇧E)" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "터미널 프로세스를 생성하지 못했습니다 (errno: %d)" + "value" : "데이터 내보내기(⌘⇧E)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Terminal işlemi oluşturulamadı (errno: %d)" + "value" : "Veriyi Dışa Aktar (⌘⇧E)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể tạo tiến trình terminal (errno: %d)" + "value" : "Xuất dữ liệu (⌘⇧E)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "创建终端进程失败 (errno: %d)" + "value" : "导出数据 (⌘⇧E)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "建立終端機處理程序失敗 (errno: %d)" + "value" : "匯出資料 (⌘⇧E)" } } } }, - "Failed to decompress .gz file" : { + "Export ER Diagram" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : ".gz 파일의 압축을 해제하지 못했습니다" + "value" : "ER 다이어그램 내보내기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : ".gz dosyası açılamadı" + "value" : "ER Diyagramını Dışa Aktar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giải nén tệp .gz thất bại" + "value" : "Xuất sơ đồ ER" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "解压 .gz 文件失败" + "value" : "导出 ER 图" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "解壓縮 .gz 檔案失敗" + "value" : "匯出 ER 圖" } } } }, - "Failed to decompress file: %@" : { + "Export Error" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "파일의 압축을 해제하지 못했습니다: %@" + "value" : "내보내기 오류" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dosya açılamadı: %@" + "value" : "Dışa Aktarma Hatası" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giải nén tệp thất bại: %@" + "value" : "Lỗi xuất dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "解压文件失败: %@" + "value" : "导出错误" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "解壓縮檔案失敗:%@" + "value" : "匯出錯誤" } } } }, - "Failed to delete template: %@" : { - "extractionState" : "stale", + "Export Failed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "템플릿을 삭제하지 못했습니다: %@" + "value" : "내보내기 실패" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Şablon silinemedi: %@" + "value" : "Dışa Aktarma Başarısız" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa mẫu thất bại: %@" + "value" : "Xuất Thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除模板失败: %@" + "value" : "导出失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除範本失敗:%@" + "value" : "匯出失敗" } } } }, - "Failed to encode connection data" : { + "Export failed: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 데이터를 인코딩하지 못했습니다" + "value" : "내보내기 실패: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı verileri kodlanamadı" + "value" : "Dışa aktarma başarısız: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể mã hóa dữ liệu kết nối" + "value" : "Xuất thất bại: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法编码连接数据" + "value" : "导出失败: %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法編碼連線資料" + "value" : "匯出失敗:%@" } } } }, - "Failed to encode content as UTF-8" : { + "Export finished" : { + + }, + "Export Format" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "콘텐츠를 UTF-8로 인코딩하지 못했습니다" + "value" : "내보내기 형식" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İçerik UTF-8 olarak kodlanamadı" + "value" : "Dışa Aktarma Biçimi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể mã hóa nội dung thành UTF-8" + "value" : "Định dạng xuất" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法将内容编码为 UTF-8" + "value" : "导出格式" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法將內容編碼為 UTF-8" + "value" : "匯出格式" } } } }, - "Failed to encode sync data: %@" : { + "Export format '%@' not found" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "동기화 데이터를 인코딩하지 못했습니다: %@" + "value" : "내보내기 형식 '%@'을(를) 찾을 수 없습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eşitleme verisi kodlanamadı: %@" + "value" : "Dışa aktarma biçimi '%@' bulunamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể mã hoá dữ liệu đồng bộ: %@" + "value" : "Không tìm thấy định dạng xuất '%@'" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "同步数据编码失败:%@" + "value" : "未找到导出格式 '%@'" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "同步資料編碼失敗:%@" - } - } - } - }, - "Failed to establish connection" : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "연결을 설정하지 못했습니다" + "value" : "找不到匯出格式「%@」" } } } }, - "Failed to fetch models from %@" : { + "Export format: csv, json, or sql" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@에서 모델을 가져오지 못했습니다" + "value" : "내보내기 형식: csv, json 또는 sql" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Şuradan modeller alınamadı: %@" + "value" : "Dışa aktarma biçimi: csv, json veya sql" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể lấy danh sách model từ %@" + "value" : "Định dạng xuất: csv, json hoặc sql" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法从 %@ 获取模型" + "value" : "导出格式:csv、json 或 sql" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法從 %@ 擷取模型" + "value" : "匯出格式:csv、json 或 sql" } } } }, - "Failed to fetch models from %@ (HTTP %d)" : { + "Export Formats" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Failed to fetch models from %1$@ (HTTP %2$d)" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@에서 모델을 가져오지 못했습니다 (HTTP %2$d)" + "value" : "내보내기 형식" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ adresinden modeller alınamadı (HTTP %d)" + "value" : "Dışa Aktarma Biçimleri" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể tải danh sách mô hình từ %@ (HTTP %d)" + "value" : "Định dạng xuất" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "从 %@ 获取模型失败 (HTTP %d)" + "value" : "导出格式" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "從 %1$@ 取得模型失敗 (HTTP %2$d)" + "value" : "匯出格式" } } } }, - "Failed to fetch table structure: %@" : { - "extractionState" : "stale", + "Export multiple tables" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 구조를 가져오지 못했습니다: %@" + "value" : "여러 테이블 내보내기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Failed to fetch tablo structure: %@" + "value" : "Birden fazla tabloyu dışa aktar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lấy cấu trúc bảng thất bại: %@" + "value" : "Xuất nhiều bảng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "获取表结构失败: %@" + "value" : "导出多个表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "取得資料表結構失敗:%@" + "value" : "匯出多個資料表" } } } }, - "Failed to generate SQL for column reorder" : { + "Export Options" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열 순서 변경용 SQL을 생성하지 못했습니다" + "value" : "내보내기 옵션" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sütun yeniden sıralama için SQL oluşturulamadı" + "value" : "Dışa Aktarma Seçenekleri" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể tạo SQL để sắp xếp lại cột" + "value" : "Tùy chọn Xuất" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法生成列重排序的 SQL" + "value" : "导出选项" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法產生欄位重新排序的 SQL" + "value" : "匯出選項" } } } }, - "Failed to generate TLS certificate" : { + "Export Plan as Image" : { + "comment" : "A button that exports the diagram as an image.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "TLS 인증서를 생성하지 못했습니다" + "value" : "실행 계획을 이미지로 내보내기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "TLS sertifikası oluşturulamadı" + "value" : "Planı Görüntü Olarak Dışa Aktar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tạo được chứng chỉ TLS" + "value" : "Xuất kế hoạch thành ảnh" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "生成 TLS 证书失败" + "value" : "将执行计划导出为图片" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "產生 TLS 憑證失敗" + "value" : "將執行計畫匯出為圖片" } } } }, - "Failed to generate TLS private key" : { + "Export Query Plan" : { + "comment" : "Button title to export the diagram as an image.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "TLS 개인 키를 생성하지 못했습니다" + "value" : "쿼리 계획 내보내기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "TLS özel anahtarı oluşturulamadı" + "value" : "Sorgu Planını Dışa Aktar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tạo được TLS private key" + "value" : "Xuất kế hoạch truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "生成 TLS 私钥失败" + "value" : "导出查询计划" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "產生 TLS 私密金鑰失敗" + "value" : "匯出查詢計畫" } } } }, - "Failed to import DDL: %@" : { + "Export query results and tables to Excel format." : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "DDL을 가져오지 못했습니다: %@" + "value" : "쿼리 결과와 테이블을 Excel 형식으로 내보냅니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "DDL içe aktarılamadı: %@" + "value" : "Sorgu sonuçlarını ve tabloları Excel biçiminde dışa aktarın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập DDL thất bại: %@" + "value" : "Xuất kết quả truy vấn và bảng sang định dạng Excel." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导入 DDL 失败: %@" + "value" : "将查询结果和表导出为 Excel 格式。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯入 DDL 失敗:%@" + "value" : "將查詢結果與資料表匯出為 Excel 格式。" } } } }, - "Failed to import TLS identity into Keychain (error %d)" : { + "Export query results or table data to CSV, JSON, or SQL" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "TLS ID를 키체인으로 가져오지 못했습니다 (오류 %d)" + "value" : "쿼리 결과 또는 테이블 데이터를 CSV, JSON 또는 SQL로 내보냅니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "TLS kimliği Keychain'e aktarılamadı (hata %d)" + "value" : "Sorgu sonuçlarını veya tablo verilerini CSV, JSON veya SQL olarak dışa aktar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể nhập TLS identity vào Keychain (lỗi %d)" + "value" : "Xuất kết quả truy vấn hoặc dữ liệu bảng ra CSV, JSON hoặc SQL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将 TLS 身份导入钥匙串失败(错误 %d)" + "value" : "将查询结果或表数据导出为 CSV、JSON 或 SQL" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將 TLS 身分匯入鑰匙圈失敗(錯誤 %d)" + "value" : "將查詢結果或資料表資料匯出為 CSV、JSON 或 SQL" } } } }, - "Failed to load" : { + "Export query results to %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "불러오지 못했습니다" + "value" : "쿼리 결과를 %@(으)로 내보내기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yüklenemedi" + "value" : "Sorgu sonuçlarını %@ olarak dışa aktar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tải thất bại" + "value" : "Xuất kết quả truy vấn sang %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "加载失败" + "value" : "将查询结果导出为 %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "載入失敗" + "value" : "將查詢結果匯出為 %@" } } } }, - "Failed to load %@" : { + "Export Results…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@을(를) 불러오지 못했습니다" + "value" : "결과 내보내기…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ yüklenemedi" + "value" : "Sonuçları Dışa Aktar…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể tải %@" + "value" : "Export Kết Quả…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "加载 %@ 失败" + "value" : "导出结果…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "載入 %@ 失敗" + "value" : "匯出結果…" } } } }, - "Failed to load databases" : { + "Export table" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스를 불러오지 못했습니다" + "value" : "테이블 내보내기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanları yüklenemedi" + "value" : "Tabloyu dışa aktar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tải danh sách cơ sở dữ liệu thất bại" + "value" : "Xuất bảng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "加载数据库列表失败" + "value" : "导出表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "載入資料庫清單失敗" + "value" : "匯出資料表" } } } }, - "Failed to load databases: %@" : { + "Export Tables…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스를 불러오지 못했습니다: %@" + "value" : "테이블 내보내기…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanları yüklenemedi: %@" + "value" : "Tabloları Dışa Aktar…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tải danh sách cơ sở dữ liệu thất bại: %@" + "value" : "Xuất bảng…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "加载数据库列表失败: %@" + "value" : "导出表…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "載入資料庫清單失敗:%@" + "value" : "匯出資料表…" } } } }, - "Failed to load full value" : { - "extractionState" : "stale", + "Export the filtered activity log to CSV" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "전체 값을 불러오지 못했습니다" + "value" : "필터링된 활동 로그를 CSV로 내보내기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tam değer yüklenemedi" + "value" : "Filtrelenmiş etkinlik günlüğünü CSV olarak dışa aktar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể tải toàn bộ giá trị" + "value" : "Xuất nhật ký hoạt động đã lọc ra CSV" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法加载完整值" + "value" : "将筛选后的活动日志导出为 CSV" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法載入完整值" + "value" : "將篩選後的活動記錄匯出為 CSV" } } } }, - "Failed to load options" : { + "Export the result of a query, or whole tables, as CSV, JSON, or SQL INSERT statements. With output_path the file is written inside the user's Downloads folder and never overwrites an existing file; without it the text comes back inline. SQL output uses the connection's own quoting and literal rules, so exporting a query needs 'sql_table' to name the target table." : { + + }, + "Export to File…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "옵션을 불러오지 못했습니다" + "value" : "파일로 내보내기…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Seçenekler yüklenemedi" + "value" : "Dosyaya Aktar…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tải được tùy chọn" + "value" : "Xuất ra tệp…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "加载选项失败" + "value" : "导出到文件…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "載入選項失敗" + "value" : "匯出至檔案…" } } } }, - "Failed to load plugin registry" : { - "extractionState" : "stale", + "Export…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플러그인 레지스트리를 불러오지 못했습니다" + "value" : "내보내기…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklenti kaydı yüklenemedi" + "value" : "Dışa Aktar…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể tải danh sách plugin" + "value" : "Xuất…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法加载插件注册表" + "value" : "导出…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法載入外掛註冊" + "value" : "匯出…" } } } }, - "Failed to load preview using encoding: %@. Try selecting a different text encoding from the encoding picker and reload the preview." : { + "Exported text. Omitted when the export was written to a file." : { + + }, + "Exported to %@" : { + + }, + "Exports" : { + + }, + "Exports data as mongosh-compatible scripts. Drop, Indexes, and Data options are configured per collection in the collection list." : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "인코딩(%@)으로 미리보기를 불러오지 못했습니다. 인코딩 선택기에서 다른 텍스트 인코딩을 선택한 후 미리보기를 다시 불러오십시오." + "value" : "데이터를 mongosh 호환 스크립트로 내보냅니다. Drop, Indexes 및 Data 옵션은 컬렉션 목록의 각 컬렉션에서 설정합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Failed to load Önizleme using encoding: %@. Try selecting a different text encoding from the encoding picker and reload the Önizleme." + "value" : "Veriyi mongosh uyumlu betikler olarak dışa aktarır. Bırak, İndeksler ve Veri seçenekleri koleksiyon listesinde koleksiyon başına yapılandırılır." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tải bản xem trước thất bại với mã hóa: %@. Hãy thử chọn mã hóa văn bản khác và tải lại bản xem trước." + "value" : "Xuất dữ liệu dưới dạng script tương thích mongosh. Tùy chọn Drop, Indexes và Data được cấu hình cho từng collection trong danh sách collection." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "使用编码 %@ 加载预览失败。请尝试从编码选择器中选择其他文本编码并重新加载预览。" + "value" : "将数据导出为 mongosh 兼容的脚本。Drop、Indexes 和 Data 选项可在集合列表中按集合配置。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "使用編碼 %@ 載入預覽失敗。請嘗試從編碼選擇器中選擇其他文字編碼,並重新載入預覽。" + "value" : "將資料匯出為 mongosh 相容的指令碼。Drop、Indexes 與 Data 選項可在集合清單中依集合個別設定。" } } } }, - "Failed to load preview using encoding: %@. Try selecting a different text encoding." : { + "Expose to local network" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "인코딩(%@)으로 미리보기를 불러오지 못했습니다. 다른 텍스트 인코딩을 선택해 보십시오." + "value" : "로컬 네트워크에 공개" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Failed to load Önizleme using encoding: %@. Try selecting a different text encoding." + "value" : "Yerel ağa aç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể tải xem trước với mã hóa: %@. Hãy thử chọn mã hóa văn bản khác." + "value" : "Cho phép truy cập từ mạng cục bộ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法使用编码 %@ 加载预览。请尝试选择其他文本编码。" + "value" : "开放给本地网络" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "使用編碼 %@ 載入預覽失敗。請嘗試選擇其他文字編碼。" + "value" : "開放給本機網路" } } } }, - "Failed to load preview: %@" : { + "Expression (e.g., age >= 0)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "미리보기를 불러오지 못했습니다: %@" + "value" : "표현식(예: age >= 0)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Failed to load Önizleme: %@" + "value" : "İfade (örn. age >= 0)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tải bản xem trước thất bại: %@" + "value" : "Biểu thức (vd: age >= 0)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "加载预览失败: %@" + "value" : "表达式(如 age >= 0)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "載入預覽失敗:%@" + "value" : "運算式(例如 age >= 0)" } } } }, - "Failed to load referenced row" : { + "Extend Selection to Next Statement" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "참조된 행을 불러오지 못했습니다" + "value" : "다음 문까지 선택 확장" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Referans satır yüklenemedi" + "value" : "Seçimi Sonraki İfadeye Genişlet" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể tải dòng tham chiếu" + "value" : "Mở rộng vùng chọn đến câu lệnh tiếp theo" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法加载引用行" + "value" : "将所选内容扩展到下一条语句" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法載入參照的列" + "value" : "將所選範圍延伸至下一個陳述式" } } } }, - "Failed to load schemas" : { - "extractionState" : "stale", + "Extend Selection to Previous Statement" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "스키마를 불러오지 못했습니다" + "value" : "이전 문까지 선택 확장" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Şemalar yüklenemedi" + "value" : "Seçimi Önceki İfadeye Genişlet" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể tải danh sách schema" + "value" : "Mở rộng vùng chọn đến câu lệnh trước" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法加载 Schema 列表" + "value" : "将所选内容扩展到上一条语句" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法載入綱要清單" + "value" : "將所選範圍延伸至上一個陳述式" } } } }, - "Failed to load tables: %@" : { - "extractionState" : "stale", + "EXTENDED" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블을 불러오지 못했습니다: %@" + "value" : "EXTENDED" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Failed to load tablo: %@" + "value" : "GENİŞLETİLMİŞ" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tải danh sách bảng thất bại: %@" + "value" : "MỞ RỘNG" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "加载表列表失败: %@" + "value" : "扩展" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "載入資料表清單失敗:%@" + "value" : "擴充" } } } }, - "Failed to load template: %@" : { - "extractionState" : "stale", + "External" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "템플릿을 불러오지 못했습니다: %@" + "value" : "외부" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Şablon yüklenemedi: %@" + "value" : "Harici" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tải mẫu thất bại: %@" + "value" : "Bên ngoài" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "加载模板失败: %@" + "value" : "外部" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "載入範本失敗:%@" + "value" : "外部" } } } }, - "Failed to open SSH channel for port forwarding" : { + "External Access" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "포트 포워딩용 SSH 채널을 열지 못했습니다" + "value" : "외부 접근" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Port yönlendirme için SSH kanalı açılamadı" + "value" : "Harici Erişim" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể mở kênh SSH để chuyển tiếp cổng" + "value" : "Truy cập bên ngoài" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法打开 SSH 通道进行端口转发" + "value" : "外部访问" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法開啟 SSH 隧道以進行連接埠轉送" + "value" : "外部存取" } } } }, - "Failed to parse any columns from table '%@'. Check console for debug info." : { - "extractionState" : "stale", + "External access is disabled for this connection" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 '%@'에서 열을 하나도 구문 분석하지 못했습니다. 디버그 정보는 콘솔에서 확인하십시오." + "value" : "이 연결에서는 외부 접근이 비활성화되어 있습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Failed to parse any columns from tablo '%@'. Check console for debug info." + "value" : "Bu bağlantı için harici erişim devre dışı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể phân tích cột từ bảng '%@'. Kiểm tra console để xem thông tin gỡ lỗi." + "value" : "Truy cập bên ngoài đã bị tắt cho kết nối này" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法从表 '%@' 解析任何列。请检查控制台获取调试信息。" + "value" : "该连接已禁用外部访问" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法從資料表「%@」解析任何欄位。請檢查主控台以取得偵錯資訊。" + "value" : "此連線已停用外部存取" } } } }, - "Failed to parse connection file: %@" : { + "External client access level" : { + + }, + "External Clients" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 파일을 해석하지 못했습니다: %@" + "value" : "외부 클라이언트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı dosyası ayrıştırılamadı: %@" + "value" : "Harici İstemciler" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể phân tích tệp kết nối: %@" + "value" : "Client bên ngoài" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法解析连接文件:%@" + "value" : "外部客户端" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法解析連線檔案:%@" + "value" : "外部用戶端" } } } }, - "Failed to parse connections: %@" : { + "External integrations and MCP client requests will appear here." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결을 구문 분석하지 못했습니다: %@" + "value" : "외부 통합 및 MCP 클라이언트 요청이 여기에 표시됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantılar ayrıştırılamadı: %@" + "value" : "Harici entegrasyonlar ve MCP istemci istekleri burada görünür." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể phân tích kết nối: %@" + "value" : "Các tích hợp bên ngoài và yêu cầu từ MCP client sẽ xuất hiện ở đây." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "解析连接失败:%@" + "value" : "外部集成和 MCP 客户端请求将显示在此处。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "解析連線失敗:%@" + "value" : "外部整合與 MCP 用戶端要求將顯示於此處。" } } } }, - "Failed to parse plugin registry" : { + "External Table" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플러그인 레지스트리를 구문 분석하지 못했습니다" + "value" : "외부 테이블" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklenti kaydı ayrıştırılamadı" + "value" : "Harici Tablo" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể phân tích danh sách plugin" + "value" : "External Table" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法解析插件注册表" + "value" : "外部表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法解析外掛註冊" + "value" : "外部資料表" } } } }, - "Failed to parse server response: %@" : { + "Extra High" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "서버 응답을 구문 분석하지 못했습니다: %@" + "value" : "매우 높음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sunucu yanıtı ayrıştırılamadı: %@" + "value" : "Çok Yüksek" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể phân tích phản hồi máy chủ: %@" + "value" : "Cực cao" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "服务器响应解析失败:%@" + "value" : "超高" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "解析伺服器回應失敗:%@" + "value" : "超高" } } } }, - "Failed to parse statement at line %lld: %@" : { + "Extra Large" : { "extractionState" : "stale", "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Failed to parse statement at line %1$lld: %2$@" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "줄 %1$lld의 문을 구문 분석하지 못했습니다: %2$@" + "value" : "특대" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Failed to parse ifade at line %lld: %@" + "value" : "Çok Büyük" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phân tích câu lệnh thất bại tại dòng %1$lld: %2$@" + "value" : "Rất lớn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在第 %lld 行解析语句失败: %@" + "value" : "特大" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在第 %1$lld 行解析陳述式失敗:%2$@" + "value" : "特大" } } } }, - "Failed to read file: %@" : { + "Failed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "파일을 읽지 못했습니다: %@" + "value" : "실패" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dosya okunamadı: %@" + "value" : "Başarısız" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đọc tệp thất bại: %@" + "value" : "Thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "读取文件失败: %@" + "value" : "失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "讀取檔案失敗:%@" + "value" : "失敗" } } } }, - "Failed to render the diagram image." : { + "Failed after %@" : { + + }, + "Failed after %1$@: %2$@" : { + + }, + "Failed at line %lld" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다이어그램 이미지를 렌더링하지 못했습니다." + "value" : "줄 %lld에서 실패했습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Diyagram görüntüsü oluşturulamadı." + "value" : "Satır %lld'de başarısız" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể tạo hình ảnh sơ đồ." + "value" : "Thất bại tại dòng %lld" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法渲染图表图像。" + "value" : "在第 %lld 行失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法繪製圖表影像。" + "value" : "在第 %lld 行失敗" } } } }, - "Failed to save template: %@" : { - "extractionState" : "stale", + "Failed at line %lld. %@" : { + "comment" : "Error message displayed in an alert when a plugin import fails. The first argument is the line number of the failed statement. The second argument is the error message from the underlying error.", + "isCommentAutoGenerated" : true, "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Failed at line %1$lld. %2$@" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "템플릿을 저장하지 못했습니다: %@" + "value" : "줄 %1$lld에서 실패했습니다. %2$@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Şablon kaydedilemedi: %@" + "value" : "%lld. satırda başarısız oldu. %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lưu mẫu thất bại: %@" + "value" : "Lỗi ở dòng %lld. %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "保存模板失败: %@" + "value" : "第 %lld 行失败。%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "儲存範本失敗:%@" + "value" : "第 %lld 行失敗。%@" } } } }, - "Failed to write file: %@" : { + "Failed to compress data" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "파일을 쓰지 못했습니다: %@" + "value" : "데이터를 압축하지 못했습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dosyaya yazılamadı: %@" + "value" : "Veri sıkıştırılamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể ghi tệp: %@" + "value" : "Không thể nén dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "写入文件失败: %@" + "value" : "压缩数据失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "寫入檔案失敗:%@" + "value" : "壓縮資料失敗" } } } }, - "Failed: %@" : { + "Failed to create terminal process (errno: %d)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "실패: %@" + "value" : "터미널 프로세스를 생성하지 못했습니다 (errno: %d)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Başarısız: %@" + "value" : "Terminal işlemi oluşturulamadı (errno: %d)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thất bại: %@" + "value" : "Không thể tạo tiến trình terminal (errno: %d)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "失败:%@" + "value" : "创建终端进程失败 (errno: %d)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "失敗:%@" + "value" : "建立終端機處理程序失敗 (errno: %d)" } } } }, - "Failures" : { + "Failed to decompress .gz file" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "실패한 쿼리" + "value" : ".gz 파일의 압축을 해제하지 못했습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Başarısız Sorgular" + "value" : ".gz dosyası açılamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Truy vấn lỗi" + "value" : "Giải nén tệp .gz thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "失败查询" + "value" : "解压 .gz 文件失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "失敗查詢" + "value" : "解壓縮 .gz 檔案失敗" } } } }, - "Family" : { + "Failed to decompress file: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "서체" + "value" : "파일의 압축을 해제하지 못했습니다: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Aile" + "value" : "Dosya açılamadı: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Họ phông" + "value" : "Giải nén tệp thất bại: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "字体族" + "value" : "解压文件失败: %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "字型家族" + "value" : "解壓縮檔案失敗:%@" } } } }, - "Fast" : { + "Failed to delete template: %@" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "빠름" + "value" : "템플릿을 삭제하지 못했습니다: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Hızlı" + "value" : "Şablon silinemedi: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhanh" + "value" : "Xóa mẫu thất bại: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "快速" + "value" : "删除模板失败: %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "快速" + "value" : "刪除範本失敗:%@" } } } }, - "Favorite" : { + "Failed to encode connection data" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "즐겨찾기" + "value" : "연결 데이터를 인코딩하지 못했습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sık Kullanılan" + "value" : "Bağlantı verileri kodlanamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Yêu thích" + "value" : "Không thể mã hóa dữ liệu kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "收藏" + "value" : "无法编码连接数据" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "我的最愛" + "value" : "無法編碼連線資料" } } } }, - "Favorite Database" : { + "Failed to encode content as UTF-8" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "즐겨찾는 데이터베이스" + "value" : "콘텐츠를 UTF-8로 인코딩하지 못했습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sık Kullanılan Veritabanı" + "value" : "İçerik UTF-8 olarak kodlanamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cơ sở dữ liệu Yêu thích" + "value" : "Không thể mã hóa nội dung thành UTF-8" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "收藏数据库" + "value" : "无法将内容编码为 UTF-8" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "收藏資料庫" + "value" : "無法將內容編碼為 UTF-8" } } } }, - "Favorited" : { + "Failed to encode sync data: %@" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "즐겨찾기에 추가됨" + "value" : "동기화 데이터를 인코딩하지 못했습니다: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sık kullanılanlara eklendi" + "value" : "Eşitleme verisi kodlanamadı: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã yêu thích" + "value" : "Không thể mã hoá dữ liệu đồng bộ: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已收藏" + "value" : "同步数据编码失败:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已加入我的最愛" + "value" : "同步資料編碼失敗:%@" } } } }, - "Favorites" : { + "Failed to establish connection" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "즐겨찾기" + "value" : "연결을 설정하지 못했습니다" + } + } + } + }, + "Failed to Fetch DDL" : { + "extractionState" : "stale", + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "DDL을 가져오지 못했습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sık Kullanılanlar" + "value" : "DDL Alınamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Yêu thích" + "value" : "Không thể lấy DDL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "收藏" + "value" : "获取 DDL 失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "我的最愛" + "value" : "擷取 DDL 失敗" } } } }, - "Feature Routing" : { - "extractionState" : "stale", + "Failed to fetch models from %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기능 라우팅" + "value" : "%@에서 모델을 가져오지 못했습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Özellik Yönlendirme" + "value" : "Şuradan modeller alınamadı: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Định tuyến tính năng" + "value" : "Không thể lấy danh sách model từ %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "功能路由" + "value" : "无法从 %@ 获取模型" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "功能路由" + "value" : "無法從 %@ 擷取模型" } } } }, - "Feedback submitted!" : { - "extractionState" : "stale", + "Failed to fetch models from %@ (HTTP %d)" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Failed to fetch models from %1$@ (HTTP %2$d)" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "피드백을 제출했습니다!" + "value" : "%1$@에서 모델을 가져오지 못했습니다 (HTTP %2$d)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geri bildirim gönderildi!" + "value" : "%@ adresinden modeller alınamadı (HTTP %d)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã gửi phản hồi!" + "value" : "Không thể tải danh sách mô hình từ %@ (HTTP %d)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "反馈已提交!" + "value" : "从 %@ 获取模型失败 (HTTP %d)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "意見回饋已送出!" + "value" : "從 %1$@ 取得模型失敗 (HTTP %2$d)" } } } }, - "Fetch All" : { + "Failed to fetch table structure: %@" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모두 가져오기" + "value" : "테이블 구조를 가져오지 못했습니다: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tümünü Getir" + "value" : "Failed to fetch tablo structure: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tải tất cả" + "value" : "Lấy cấu trúc bảng thất bại: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "获取全部" + "value" : "获取表结构失败: %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "取得全部" + "value" : "取得資料表結構失敗:%@" } } } }, - "Fetch All Rows" : { + "Failed to generate SQL for column reorder" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 행 가져오기" + "value" : "열 순서 변경용 SQL을 생성하지 못했습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm Satırları Getir" + "value" : "Sütun yeniden sıralama için SQL oluşturulamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tải tất cả dòng" + "value" : "Không thể tạo SQL để sắp xếp lại cột" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "获取所有行" + "value" : "无法生成列重排序的 SQL" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "取得所有列" + "value" : "無法產生欄位重新排序的 SQL" } } } }, - "Fetching models…" : { + "Failed to generate TLS certificate" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모델 가져오는 중…" + "value" : "TLS 인증서를 생성하지 못했습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Modeller alınıyor…" + "value" : "TLS sertifikası oluşturulamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang lấy danh sách model…" + "value" : "Không tạo được chứng chỉ TLS" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在获取模型…" + "value" : "生成 TLS 证书失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在擷取模型…" + "value" : "產生 TLS 憑證失敗" } } } }, - "Field" : { + "Failed to generate TLS private key" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필드" + "value" : "TLS 개인 키를 생성하지 못했습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Alan" + "value" : "TLS özel anahtarı oluşturulamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trường" + "value" : "Không tạo được TLS private key" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "字段" + "value" : "生成 TLS 私钥失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "欄位" + "value" : "產生 TLS 私密金鑰失敗" } } } }, - "Fields" : { + "Failed to import DDL: %@" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필드" + "value" : "DDL을 가져오지 못했습니다: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Alanlar" + "value" : "DDL içe aktarılamadı: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trường" + "value" : "Nhập DDL thất bại: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "字段" + "value" : "导入 DDL 失败: %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "欄位" + "value" : "匯入 DDL 失敗:%@" } } } }, - "File" : { + "Failed to import TLS identity into Keychain (error %d)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "파일" + "value" : "TLS ID를 키체인으로 가져오지 못했습니다 (오류 %d)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dosya" + "value" : "TLS kimliği Keychain'e aktarılamadı (hata %d)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tệp" + "value" : "Không thể nhập TLS identity vào Keychain (lỗi %d)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "文件" + "value" : "将 TLS 身份导入钥匙串失败(错误 %d)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "檔案" + "value" : "將 TLS 身分匯入鑰匙圈失敗(錯誤 %d)" } } } }, - "File Modified Externally" : { + "Failed to load" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "외부에서 파일이 수정됨" + "value" : "불러오지 못했습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dosya Dışarıdan Değiştirildi" + "value" : "Yüklenemedi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tệp bị sửa đổi bên ngoài" + "value" : "Tải thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "文件已在外部被修改" + "value" : "加载失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "檔案已在外部被修改" + "value" : "載入失敗" } } } }, - "File Path" : { + "Failed to Load" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "파일 경로" + "value" : "불러오지 못했습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dosya Yolu" + "value" : "Yükleme Başarısız" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đường dẫn tệp" + "value" : "Tải thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "文件路径" + "value" : "加载失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "檔案路徑" + "value" : "載入失敗" } } } }, - "File encoding (%@) cannot represent these characters. Convert the file to UTF-8 to save." : { + "Failed to load %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "파일 인코딩(%@)으로는 이 문자를 표현할 수 없습니다. 저장하려면 파일을 UTF-8로 변환하십시오." + "value" : "%@을(를) 불러오지 못했습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dosya kodlaması (%@) bu karakterleri temsil edemiyor. Kaydetmek için dosyayı UTF-8'e dönüştürün." + "value" : "%@ yüklenemedi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bảng mã của tệp (%@) không thể biểu diễn các ký tự này. Hãy chuyển tệp sang UTF-8 để lưu." + "value" : "Không thể tải %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "文件编码(%@)无法表示这些字符。请将文件转换为 UTF-8 后再保存。" + "value" : "加载 %@ 失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "檔案編碼(%@)無法表示這些字。請將檔案轉換為 UTF-8 後再儲存。" + "value" : "載入 %@ 失敗" } } } }, - "File name" : { - "extractionState" : "stale", + "Failed to load databases" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "파일 이름" + "value" : "데이터베이스를 불러오지 못했습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dosya adı" + "value" : "Veritabanları yüklenemedi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên tệp" + "value" : "Tải danh sách cơ sở dữ liệu thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "文件名" + "value" : "加载数据库列表失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "檔案名稱" + "value" : "載入資料庫清單失敗" } } } }, - "File not found" : { - "extractionState" : "stale", + "Failed to load databases: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "파일을 찾을 수 없음" + "value" : "데이터베이스를 불러오지 못했습니다: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dosya bulunamadı" + "value" : "Veritabanları yüklenemedi: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy tệp" + "value" : "Tải danh sách cơ sở dữ liệu thất bại: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未找到文件" + "value" : "加载数据库列表失败: %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "找不到檔案" + "value" : "載入資料庫清單失敗:%@" } } } }, - "File path inside the user's Downloads directory (returns inline data if omitted). Paths outside Downloads are rejected." : { + "Failed to load full value" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사용자의 다운로드 폴더 내 파일 경로입니다 (생략하면 인라인 데이터를 반환). 다운로드 폴더 외부의 경로는 거부됩니다." + "value" : "전체 값을 불러오지 못했습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kullanıcının İndirilenler klasörü içindeki dosya yolu (boş bırakılırsa veriler satır içi döndürülür). İndirilenler dışındaki yollar reddedilir." + "value" : "Tam değer yüklenemedi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đường dẫn tệp trong thư mục Downloads của người dùng (nếu bỏ trống sẽ trả về dữ liệu inline). Đường dẫn ngoài Downloads sẽ bị từ chối." + "value" : "Không thể tải toàn bộ giá trị" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "用户“下载”目录内的文件路径(留空则返回内联数据)。“下载”目录之外的路径会被拒绝。" + "value" : "无法加载完整值" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "使用者「下載」資料夾內的檔案路徑(留空則回傳內嵌資料)。「下載」資料夾之外的路徑會被拒絕。" + "value" : "無法載入完整值" } } } }, - "Filename cannot be '.' or '..' or contain path traversal" : { - "extractionState" : "stale", + "Failed to load options" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "파일 이름은 '.' 또는 '..'일 수 없으며 경로 순회 요소를 포함할 수 없습니다" + "value" : "옵션을 불러오지 못했습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dosya adı '.' veya '..' olamaz veya yol geçişi içeremez" + "value" : "Seçenekler yüklenemedi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên tệp không được là '.' hoặc '..' hoặc chứa đường dẫn đi lên" + "value" : "Không tải được tùy chọn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "文件名不能是 '.' 或 '..',且不能包含路径遍历" + "value" : "加载选项失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "檔案名稱不能是「.」或「..」,且不能包含路徑遍歷" + "value" : "載入選項失敗" } } } }, - "Filename cannot be empty" : { + "Failed to load plugin registry" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "파일 이름은 비워 둘 수 없습니다" + "value" : "플러그인 레지스트리를 불러오지 못했습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dosya adı boş olamaz" + "value" : "Eklenti kaydı yüklenemedi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên tệp không được để trống" + "value" : "Không thể tải danh sách plugin" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "文件名不能为空" + "value" : "无法加载插件注册表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "檔案名稱不能為空" + "value" : "無法載入外掛註冊" } } } }, - "Filename contains invalid characters: / \\ : * ? \" < > |" : { + "Failed to load preview using encoding: %@. Try selecting a different text encoding from the encoding picker and reload the preview." : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "파일 이름에 잘못된 문자가 포함되어 있습니다: / \\ : * ? \" < > |" + "value" : "인코딩(%@)으로 미리보기를 불러오지 못했습니다. 인코딩 선택기에서 다른 텍스트 인코딩을 선택한 후 미리보기를 다시 불러오십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dosya adı geçersiz karakterler içeriyor: / \\ : * ? \" < > |" + "value" : "Failed to load Önizleme using encoding: %@. Try selecting a different text encoding from the encoding picker and reload the Önizleme." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên tệp chứa ký tự không hợp lệ: / \\ : * ? \" < > |" + "value" : "Tải bản xem trước thất bại với mã hóa: %@. Hãy thử chọn mã hóa văn bản khác và tải lại bản xem trước." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "文件名包含无效字符:/ \\ : * ? \" < > |" + "value" : "使用编码 %@ 加载预览失败。请尝试从编码选择器中选择其他文本编码并重新加载预览。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "檔案名稱包含無效字:/ \\ : * ? \" < > |" + "value" : "使用編碼 %@ 載入預覽失敗。請嘗試從編碼選擇器中選擇其他文字編碼,並重新載入預覽。" } } } }, - "Filename is too long (max 255 bytes)" : { - "extractionState" : "stale", + "Failed to load preview using encoding: %@. Try selecting a different text encoding." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "파일 이름이 너무 깁니다 (최대 255바이트)" + "value" : "인코딩(%@)으로 미리보기를 불러오지 못했습니다. 다른 텍스트 인코딩을 선택해 보십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dosya adı çok uzun (maks. 255 bayt)" + "value" : "Failed to load Önizleme using encoding: %@. Try selecting a different text encoding." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên tệp quá dài (tối đa 255 byte)" + "value" : "Không thể tải xem trước với mã hóa: %@. Hãy thử chọn mã hóa văn bản khác." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "文件名过长(最大 255 字节)" + "value" : "无法使用编码 %@ 加载预览。请尝试选择其他文本编码。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "檔案名稱過長(最多 255 位元組)" + "value" : "使用編碼 %@ 載入預覽失敗。請嘗試選擇其他文字編碼。" } } } }, - "Fill" : { + "Failed to load preview: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "채우기" + "value" : "미리보기를 불러오지 못했습니다: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Doldur" + "value" : "Failed to load Önizleme: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Điền" + "value" : "Tải bản xem trước thất bại: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "填充" + "value" : "加载预览失败: %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "填入" + "value" : "載入預覽失敗:%@" } } } }, - "Fill Column" : { + "Failed to load referenced row" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열 채우기" + "value" : "참조된 행을 불러오지 못했습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sütunu Doldur" + "value" : "Referans satır yüklenemedi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Điền cột" + "value" : "Không thể tải dòng tham chiếu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "填充列" + "value" : "无法加载引用行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "填入欄位" + "value" : "無法載入參照的列" } } } }, - "Fill Column…" : { + "Failed to load schemas" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열 채우기…" + "value" : "스키마를 불러오지 못했습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sütunu Doldur…" + "value" : "Şemalar yüklenemedi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Điền cột…" + "value" : "Không thể tải danh sách schema" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "填充列…" + "value" : "无法加载 Schema 列表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "填入欄位…" + "value" : "無法載入綱要清單" } } } }, - "Fill column \"%@\"" : { + "Failed to load tables: %@" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "\"%@\" 열 채우기" + "value" : "테이블을 불러오지 못했습니다: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "\"%@\" sütununu doldur" + "value" : "Failed to load tablo: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Điền cột \"%@\"" + "value" : "Tải danh sách bảng thất bại: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "填充列 \"%@\"" + "value" : "加载表列表失败: %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "填入欄位「%@」" + "value" : "載入資料表清單失敗:%@" } } } }, - "Filter" : { + "Failed to load template: %@" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터" + "value" : "템플릿을 불러오지 못했습니다: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtre" + "value" : "Şablon yüklenemedi: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bộ lọc" + "value" : "Tải mẫu thất bại: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "筛选" + "value" : "加载模板失败: %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "篩選" + "value" : "載入範本失敗:%@" } } } }, - "Filter Databases…" : { + "Failed to open SSH channel for port forwarding" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 필터링…" + "value" : "포트 포워딩용 SSH 채널을 열지 못했습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanlarını Filtrele…" + "value" : "Port yönlendirme için SSH kanalı açılamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lọc cơ sở dữ liệu…" + "value" : "Không thể mở kênh SSH để chuyển tiếp cổng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "筛选数据库…" + "value" : "无法打开 SSH 通道进行端口转发" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "篩選資料庫…" + "value" : "無法開啟 SSH 隧道以進行連接埠轉送" } } } }, - "Filter Settings" : { + "Failed to parse any columns from table '%@'. Check console for debug info." : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터 설정" + "value" : "테이블 '%@'에서 열을 하나도 구문 분석하지 못했습니다. 디버그 정보는 콘솔에서 확인하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtre Ayarları" + "value" : "Failed to parse any columns from tablo '%@'. Check console for debug info." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cài đặt bộ lọc" + "value" : "Không thể phân tích cột từ bảng '%@'. Kiểm tra console để xem thông tin gỡ lỗi." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "筛选设置" + "value" : "无法从表 '%@' 解析任何列。请检查控制台获取调试信息。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "篩選設定" + "value" : "無法從資料表「%@」解析任何欄位。請檢查主控台以取得偵錯資訊。" } } } }, - "Filter Settings…" : { + "Failed to parse connection file: %@" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터 설정…" + "value" : "연결 파일을 해석하지 못했습니다: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtre Ayarları…" + "value" : "Bağlantı dosyası ayrıştırılamadı: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cài đặt bộ lọc…" + "value" : "Không thể phân tích tệp kết nối: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "筛选设置…" + "value" : "无法解析连接文件:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "篩選設定…" + "value" : "無法解析連線檔案:%@" } } } }, - "Filter Values…" : { + "Failed to parse connections: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "값 필터링…" + "value" : "연결을 구문 분석하지 못했습니다: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Değerleri Filtrele…" + "value" : "Bağlantılar ayrıştırılamadı: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lọc giá trị…" + "value" : "Không thể phân tích kết nối: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "筛选值…" + "value" : "解析连接失败:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "篩選值…" + "value" : "解析連線失敗:%@" } } } }, - "Filter activity" : { + "Failed to parse plugin registry" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "활동 필터링" + "value" : "플러그인 레지스트리를 구문 분석하지 못했습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Etkinliği filtrele" + "value" : "Eklenti kaydı ayrıştırılamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lọc hoạt động" + "value" : "Không thể phân tích danh sách plugin" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "筛选活动" + "value" : "无法解析插件注册表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "篩選活動" + "value" : "無法解析外掛註冊" } } } }, - "Filter by only this row" : { - "extractionState" : "stale", + "Failed to parse server response: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 행만 기준으로 필터링" + "value" : "서버 응답을 구문 분석하지 못했습니다: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yalnızca bu satıra göre filtrele" + "value" : "Sunucu yanıtı ayrıştırılamadı: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chỉ lọc theo hàng này" + "value" : "Không thể phân tích phản hồi máy chủ: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "仅按此行筛选" + "value" : "服务器响应解析失败:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "僅依此列篩選" + "value" : "解析伺服器回應失敗:%@" } } } }, - "Filter column" : { + "Failed to parse statement at line %lld: %@" : { + "extractionState" : "stale", "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Failed to parse statement at line %1$lld: %2$@" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열 필터링" + "value" : "줄 %1$lld의 문을 구문 분석하지 못했습니다: %2$@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtre sütunu" + "value" : "Failed to parse ifade at line %lld: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cột lọc" + "value" : "Phân tích câu lệnh thất bại tại dòng %1$lld: %2$@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "筛选列" + "value" : "在第 %lld 行解析语句失败: %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "篩選欄位" + "value" : "在第 %1$lld 行解析陳述式失敗:%2$@" } } } }, - "Filter column: %@" : { - "extractionState" : "stale", + "Failed to read file: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열 필터링: %@" + "value" : "파일을 읽지 못했습니다: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtre sütunu: %@" + "value" : "Dosya okunamadı: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cột lọc: %@" + "value" : "Đọc tệp thất bại: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "筛选列: %@" + "value" : "读取文件失败: %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "篩選欄位:%@" + "value" : "讀取檔案失敗:%@" } } } }, - "Filter databases" : { - "extractionState" : "stale", + "Failed to render the diagram image." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 필터링" + "value" : "다이어그램 이미지를 렌더링하지 못했습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanlarını filtrele" + "value" : "Diyagram görüntüsü oluşturulamadı." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lọc cơ sở dữ liệu" + "value" : "Không thể tạo hình ảnh sơ đồ." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "筛选数据库" + "value" : "无法渲染图表图像。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "篩選資料庫" + "value" : "無法繪製圖表影像。" } } } }, - "Filter favorites" : { + "Failed to Save Changes" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "즐겨찾기 필터링" + "value" : "변경 사항을 저장하지 못했습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtre sık kullanılanları" + "value" : "Değişiklikler Kaydedilemedi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lọc yêu thích" + "value" : "Lưu thay đổi thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "筛选收藏" + "value" : "保存更改失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "篩選我的最愛" + "value" : "儲存變更失敗" } } } }, - "Filter keys or values…" : { + "Failed to save template: %@" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "키 또는 값 필터링…" + "value" : "템플릿을 저장하지 못했습니다: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Anahtar veya değerleri filtrele…" + "value" : "Şablon kaydedilemedi: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lọc khoá hoặc giá trị…" + "value" : "Lưu mẫu thất bại: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "筛选键或值…" + "value" : "保存模板失败: %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "篩選鍵或值…" + "value" : "儲存範本失敗:%@" } } } }, - "Filter logic mode" : { + "Failed to write file: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터 논리 모드" + "value" : "파일을 쓰지 못했습니다: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtre mantık modu" + "value" : "Dosyaya yazılamadı: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chế độ logic bộ lọc" + "value" : "Không thể ghi tệp: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "筛选逻辑模式" + "value" : "写入文件失败: %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "篩選邏輯模式" + "value" : "寫入檔案失敗:%@" } } } }, - "Filter objects" : { + "Failed: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "객체 필터링" + "value" : "실패: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Nesneleri filtrele" + "value" : "Başarısız: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lọc đối tượng" + "value" : "Thất bại: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "筛选对象" + "value" : "失败:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "篩選物件" + "value" : "失敗:%@" } } } }, - "Filter operator" : { + "Failures" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터 연산자" + "value" : "실패한 쿼리" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtre operatörü" + "value" : "Başarısız Sorgular" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Toán tử lọc" + "value" : "Truy vấn lỗi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "筛选运算符" + "value" : "失败查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "篩選運算子" + "value" : "失敗查詢" } } } }, - "Filter operator: %@" : { - "extractionState" : "stale", + "false" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터 연산자: %@" + "value" : "false" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtre operatörü: %@" + "value" : "false" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Toán tử lọc: %@" + "value" : "false" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "筛选运算符: %@" + "value" : "false" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "篩選運算子:%@" + "value" : "false" } } } }, - "Filter options" : { + "FALSE" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터 옵션" + "value" : "FALSE" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtre seçenekleri" + "value" : "FALSE" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tùy chọn bộ lọc" + "value" : "FALSE" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "筛选选项" + "value" : "FALSE" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "篩選選項" + "value" : "FALSE" } } } }, - "Filter presets" : { - "extractionState" : "stale", + "Family" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터 프리셋" + "value" : "서체" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtre ön ayarları" + "value" : "Aile" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cài đặt sẵn bộ lọc" + "value" : "Họ phông" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "筛选预设" + "value" : "字体族" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "篩選預設組" + "value" : "字型家族" } } } }, - "Filter privileges" : { + "Fast" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "권한 필터링" + "value" : "빠름" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yetkileri filtrele" + "value" : "Hızlı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lọc quyền" + "value" : "Nhanh" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "筛选权限" + "value" : "快速" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "篩選權限" + "value" : "快速" } } } }, - "Filter roles" : { + "FAST" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "역할 필터링" + "value" : "FAST" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Rolleri filtrele" + "value" : "HIZLI" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lọc vai trò" + "value" : "NHANH" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "筛选角色" + "value" : "快速" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "篩選角色" + "value" : "快速" } } } }, - "Filter settings" : { - "extractionState" : "stale", + "favorite" : { + "comment" : "A label indicating that a table is marked as a favorite.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터 설정" + "value" : "즐겨찾기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtre ayarları" + "value" : "sık kullanılan" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cài đặt bộ lọc" + "value" : "yêu thích" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "筛选设置" + "value" : "收藏" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "篩選設定" + "value" : "我的最愛" } } } }, - "Filter value" : { + "Favorite" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터 값" + "value" : "즐겨찾기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtre değeri" + "value" : "Sık Kullanılan" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giá trị lọc" + "value" : "Yêu thích" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "筛选值" + "value" : "收藏" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "篩選值" + "value" : "我的最愛" } } } }, - "Filter with column" : { + "Favorite Database" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열로 필터링" + "value" : "즐겨찾는 데이터베이스" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sütunla filtrele" + "value" : "Sık Kullanılan Veritabanı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lọc theo cột" + "value" : "Cơ sở dữ liệu Yêu thích" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "按列筛选" + "value" : "收藏数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "依欄位篩選" + "value" : "收藏資料庫" } } } }, - "Filtered" : { + "Favorited" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터링됨" + "value" : "즐겨찾기에 추가됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtrelendi" + "value" : "Sık kullanılanlara eklendi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã lọc" + "value" : "Đã yêu thích" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已筛选" + "value" : "已收藏" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已篩選" + "value" : "已加入我的最愛" } } } }, - "Filtered to %lld of %lld ^[rows](inflect: true)" : { + "Favorites" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%lld / %lld개 행으로 필터됨" + "value" : "즐겨찾기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%lld / %lld satır filtrelendi" + "value" : "Sık Kullanılanlar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã lọc còn %lld trên %lld hàng" + "value" : "Yêu thích" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已筛选 %lld / %lld 行" + "value" : "收藏" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已篩選 %lld / %lld 列" + "value" : "我的最愛" } } } }, - "Filtering by only this row" : { + "Feature Routing" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 행만 기준으로 필터링 중" + "value" : "기능 라우팅" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yalnızca bu satıra göre filtreleniyor" + "value" : "Özellik Yönlendirme" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang chỉ lọc theo hàng này" + "value" : "Định tuyến tính năng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在仅按此行筛选" + "value" : "功能路由" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在僅依此列篩選" + "value" : "功能路由" } } } }, - "Filters" : { + "Feedback submitted!" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터" + "value" : "피드백을 제출했습니다!" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtreler" + "value" : "Geri bildirim gönderildi!" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bộ lọc" + "value" : "Đã gửi phản hồi!" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "筛选条件" + "value" : "反馈已提交!" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "篩選條件" + "value" : "意見回饋已送出!" } } } }, - "Filter…" : { + "Fetch All" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터링…" + "value" : "모두 가져오기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtre…" + "value" : "Tümünü Getir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lọc…" + "value" : "Tải tất cả" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "筛选…" + "value" : "获取全部" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "篩選…" + "value" : "取得全部" } } } }, - "Find" : { + "Fetch all rows" : { + + }, + "Fetch All Rows" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "찾기" + "value" : "모든 행 가져오기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bul" + "value" : "Tüm Satırları Getir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tìm" + "value" : "Tải tất cả dòng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "查找" + "value" : "获取所有行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "尋找" + "value" : "取得所有列" } } } }, - "Find Next" : { + "Fetch an approximate row count per table (default false)" : { + + }, + "Fetching models…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다음 찾기" + "value" : "모델 가져오는 중…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sonrakini Bul" + "value" : "Modeller alınıyor…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tìm tiếp theo" + "value" : "Đang lấy danh sách model…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "查找下一个" + "value" : "正在获取模型…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "尋找下一個" + "value" : "正在擷取模型…" } } } }, - "Find Previous" : { + "Field" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이전 찾기" + "value" : "필드" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Öncekini Bul" + "value" : "Alan" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tìm trước đó" + "value" : "Trường" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "查找上一个" + "value" : "字段" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "尋找上一個" - } - } - } - }, - "Find in loaded rows" : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "불러온 행에서 찾기" + "value" : "欄位" } } } }, - "Find this on the instance's overview page in the Google Cloud console." : { + "Fields" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Google Cloud 콘솔에서 인스턴스의 개요 페이지를 열어 확인하십시오." + "value" : "필드" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bunu Google Cloud konsolunda örneğin genel bakış sayfasında bulabilirsiniz." + "value" : "Alanlar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bạn tìm thấy giá trị này ở trang tổng quan của instance trong Google Cloud console." + "value" : "Trường" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "可在 Google Cloud 控制台中该实例的概览页面找到。" + "value" : "字段" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "可在 Google Cloud 主控台中該執行個體的總覽頁面找到。" + "value" : "欄位" } } } }, - "Find…" : { + "FIELDS" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "찾기…" + "value" : "FIELDS" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bul…" + "value" : "ALANLAR" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tìm…" + "value" : "TRƯỜNG" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "查找…" + "value" : "字段" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "尋找…" + "value" : "欄位" } } } }, - "Finish Signing In" : { + "FIELDS (%lld)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "로그인 마치기" + "value" : "FIELDS (%lld)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Oturum Açmayı Tamamla" + "value" : "ALANLAR (%lld)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hoàn tất đăng nhập" + "value" : "CÁC TRƯỜNG (%lld)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "完成登录" + "value" : "字段 (%lld)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "完成登入" + "value" : "欄位 (%lld)" } } } }, - "First Page" : { + "File" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "첫 페이지" + "value" : "파일" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İlk Sayfa" + "value" : "Dosya" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trang đầu" + "value" : "Tệp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "第一页" + "value" : "文件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "第一頁" + "value" : "檔案" } } } }, - "First column" : { + "File encoding (%@) cannot represent these characters. Convert the file to UTF-8 to save." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "첫 번째 열" + "value" : "파일 인코딩(%@)으로는 이 문자를 표현할 수 없습니다. 저장하려면 파일을 UTF-8로 변환하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İlk sütun" + "value" : "Dosya kodlaması (%@) bu karakterleri temsil edemiyor. Kaydetmek için dosyayı UTF-8'e dönüştürün." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cột đầu tiên" + "value" : "Bảng mã của tệp (%@) không thể biểu diễn các ký tự này. Hãy chuyển tệp sang UTF-8 để lưu." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "第一列" + "value" : "文件编码(%@)无法表示这些字符。请将文件转换为 UTF-8 后再保存。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "第一欄" + "value" : "檔案編碼(%@)無法表示這些字。請將檔案轉換為 UTF-8 後再儲存。" } } } }, - "First page" : { + "File Modified Externally" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "첫 페이지" + "value" : "외부에서 파일이 수정됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İlk sayfa" + "value" : "Dosya Dışarıdan Değiştirildi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trang đầu" + "value" : "Tệp bị sửa đổi bên ngoài" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "第一页" + "value" : "文件已在外部被修改" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "第一頁" + "value" : "檔案已在外部被修改" } } } }, - "Fit to Window" : { + "File name" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "윈도우에 맞추기" + "value" : "파일 이름" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Pencereye Sığdır" + "value" : "Dosya adı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Vừa cửa sổ" + "value" : "Tên tệp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "适合窗口" + "value" : "文件名" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "符合視窗" + "value" : "檔案名稱" } } } }, - "Fix Error" : { + "File name or path inside Downloads. Omit to get the text inline." : { + + }, + "File not found" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "오류 수정" + "value" : "파일을 찾을 수 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Hatayı Düzelt" + "value" : "Dosya bulunamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sửa lỗi" + "value" : "Không tìm thấy tệp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "修复错误" + "value" : "未找到文件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "修正錯誤" + "value" : "找不到檔案" } } } }, - "Fix the last error on the current query" : { + "File Path" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "현재 쿼리의 마지막 오류 수정" + "value" : "파일 경로" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geçerli sorgudaki son hatayı düzelt" + "value" : "Dosya Yolu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sửa lỗi gần nhất của truy vấn hiện tại" + "value" : "Đường dẫn tệp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "修复当前查询的最后一个错误" + "value" : "文件路径" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "修正目前查詢的最後一個錯誤" + "value" : "檔案路徑" } } } }, - "Fix with AI" : { + "File path inside the user's Downloads directory (returns inline data if omitted). Paths outside Downloads are rejected." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "AI로 수정" + "value" : "사용자의 다운로드 폴더 내 파일 경로입니다 (생략하면 인라인 데이터를 반환). 다운로드 폴더 외부의 경로는 거부됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yapay Zeka ile Düzelt" + "value" : "Kullanıcının İndirilenler klasörü içindeki dosya yolu (boş bırakılırsa veriler satır içi döndürülür). İndirilenler dışındaki yollar reddedilir." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sửa bằng AI" + "value" : "Đường dẫn tệp trong thư mục Downloads của người dùng (nếu bỏ trống sẽ trả về dữ liệu inline). Đường dẫn ngoài Downloads sẽ bị từ chối." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "用 AI 修复" + "value" : "用户“下载”目录内的文件路径(留空则返回内联数据)。“下载”目录之外的路径会被拒绝。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "用 AI 修正" + "value" : "使用者「下載」資料夾內的檔案路徑(留空則回傳內嵌資料)。「下載」資料夾之外的路徑會被拒絕。" } } } }, - "Focus Border" : { + "File that was written, when output_path was given" : { + + }, + "Filename cannot be '.' or '..' or contain path traversal" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "포커스 테두리" + "value" : "파일 이름은 '.' 또는 '..'일 수 없으며 경로 순회 요소를 포함할 수 없습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Odak Kenarlığı" + "value" : "Dosya adı '.' veya '..' olamaz veya yol geçişi içeremez" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Viền khi chọn" + "value" : "Tên tệp không được là '.' hoặc '..' hoặc chứa đường dẫn đi lên" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "焦点边框" + "value" : "文件名不能是 '.' 或 '..',且不能包含路径遍历" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "焦點邊框" + "value" : "檔案名稱不能是「.」或「..」,且不能包含路徑遍歷" } } } }, - "Focus Query Tab" : { + "Filename cannot be empty" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 탭에 포커스" + "value" : "파일 이름은 비워 둘 수 없습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgu Sekmesine Odaklan" + "value" : "Dosya adı boş olamaz" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển đến tab truy vấn" + "value" : "Tên tệp không được để trống" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "聚焦查询标签页" + "value" : "文件名不能为空" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "聚焦查詢分頁" + "value" : "檔案名稱不能為空" } } } }, - "Focus Sidebar Filter" : { + "Filename contains invalid characters: / \\ : * ? \" < > |" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사이드바 필터에 포커스" + "value" : "파일 이름에 잘못된 문자가 포함되어 있습니다: / \\ : * ? \" < > |" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sidebar Filtresine Odaklan" + "value" : "Dosya adı geçersiz karakterler içeriyor: / \\ : * ? \" < > |" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển đến bộ lọc thanh bên" + "value" : "Tên tệp chứa ký tự không hợp lệ: / \\ : * ? \" < > |" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "聚焦侧边栏筛选" + "value" : "文件名包含无效字符:/ \\ : * ? \" < > |" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "聚焦側邊欄篩選" + "value" : "檔案名稱包含無效字:/ \\ : * ? \" < > |" } } } }, - "Focus an already-open tab by id (returned from list_recent_tabs)." : { + "Filename is too long (max 255 bytes)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이미 열려 있는 탭에 ID로 포커스를 맞춥니다(list_recent_tabs에서 반환)." + "value" : "파일 이름이 너무 깁니다 (최대 255바이트)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Zaten açık bir sekmeye id ile odaklanır (list_recent_tabs tarafından döndürülür)." + "value" : "Dosya adı çok uzun (maks. 255 bayt)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển đến một tab đang mở theo id (trả về từ list_recent_tabs)." + "value" : "Tên tệp quá dài (tối đa 255 byte)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "按 id 聚焦已打开的标签页(id 由 list_recent_tabs 返回)。" + "value" : "文件名过长(最大 255 字节)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "依 id 聚焦已開啟的分頁(id 由 list_recent_tabs 回傳)。" + "value" : "檔案名稱過長(最多 255 位元組)" } } } }, - "Focus the query editor to insert" : { - "extractionState" : "stale", + "Fill" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "삽입할 쿼리 편집기에 포커스" + "value" : "채우기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklemek için sorgu düzenleyicisine odaklanın" + "value" : "Doldur" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển đến trình soạn thảo truy vấn để chèn" + "value" : "Điền" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "聚焦查询编辑器以插入" + "value" : "填充" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "聚焦查詢編輯器以插入" + "value" : "填入" } } } }, - "Folder" : { + "Fill Column" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "폴더" + "value" : "열 채우기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Klasör" + "value" : "Sütunu Doldur" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thư mục" + "value" : "Điền cột" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "文件夹" + "value" : "填充列" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料夾" + "value" : "填入欄位" } } } }, - "Folder name" : { - "extractionState" : "stale", + "Fill column \"%@\"" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "폴더 이름" + "value" : "\"%@\" 열 채우기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Klasör adı" + "value" : "\"%@\" sütununu doldur" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên thư mục" + "value" : "Điền cột \"%@\"" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "文件夹名称" + "value" : "填充列 \"%@\"" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料夾名稱" + "value" : "填入欄位「%@」" } } } }, - "Follow-up on step %d \"%@\" (%@): %@" : { + "Fill Column…" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Follow-up on step %1$d \"%2$@\" (%3$@): %4$@" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "단계 %1$d \"%2$@\"(%3$@)에 대한 후속 조치: %4$@" + "value" : "열 채우기…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%1$d. adım için ek soru \"%2$@\" (%3$@): %4$@" + "value" : "Sütunu Doldur…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hỏi thêm về bước %1$d \"%2$@\" (%3$@): %4$@" + "value" : "Điền cột…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "关于第 %1$d 步的追问 \"%2$@\"(%3$@):%4$@" + "value" : "填充列…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "關於第 %1$d 步的追問「%2$@」(%3$@):%4$@" + "value" : "填入欄位…" } } } }, - "Font" : { - "extractionState" : "stale", + "Filter" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "글꼴" + "value" : "필터" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yazı Tipi" + "value" : "Filtre" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phông chữ" + "value" : "Bộ lọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "字体" + "value" : "筛选" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "字型" + "value" : "篩選" } } } }, - "Font size:" : { - "extractionState" : "stale", + "Filter activity" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "글꼴 크기:" + "value" : "활동 필터링" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yazı tipi boyutu:" + "value" : "Etkinliği filtrele" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cỡ chữ:" + "value" : "Lọc hoạt động" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "字体大小:" + "value" : "筛选活动" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "字型大小:" + "value" : "篩選活動" } } } }, - "Font:" : { + "Filter by only this row" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "글꼴:" + "value" : "이 행만 기준으로 필터링" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yazı Tipi:" + "value" : "Yalnızca bu satıra göre filtrele" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phông chữ:" + "value" : "Chỉ lọc theo hàng này" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "字体:" + "value" : "仅按此行筛选" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "字型:" + "value" : "僅依此列篩選" } } } }, - "Fonts" : { + "Filter column" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "글꼴" + "value" : "열 필터링" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yazı Tipleri" + "value" : "Filtre sütunu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phông chữ" + "value" : "Cột lọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "字体" + "value" : "筛选列" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "字型" + "value" : "篩選欄位" } } } }, - "For a metered path on Anthropic's commercial terms, add the Claude provider with an API key instead." : { + "Filter column: %@" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Anthropic의 상용 약관에 따른 종량제 방식을 이용하려면 대신 API 키를 사용해 Claude 제공자를 추가하십시오." + "value" : "열 필터링: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Anthropic'in ticari koşullarıyla kullanım başına ödemeli bir yol için bunun yerine Claude sağlayıcısını bir API anahtarıyla ekleyin." + "value" : "Filtre sütunu: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nếu muốn cách tính phí theo mức dùng theo điều khoản thương mại của Anthropic, hãy thêm nhà cung cấp Claude bằng khóa API." + "value" : "Cột lọc: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "若想走 Anthropic 商业条款下的按量计费路径,请改为添加带 API 密钥的 Claude 提供方。" + "value" : "筛选列: %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "若想走 Anthropic 商業條款下的按量計費路徑,請改為新增帶 API 金鑰的 Claude 供應商。" + "value" : "篩選欄位:%@" } } } }, - "Foreign Keys" : { + "Filter databases" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "외래 키" + "value" : "데이터베이스 필터링" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yabancı Anahtarlar" + "value" : "Veritabanlarını filtrele" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khóa ngoại" + "value" : "Lọc cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "外键" + "value" : "筛选数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "外鍵" + "value" : "篩選資料庫" } } } }, - "Foreign Table" : { + "Filter Databases…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "외부 테이블" + "value" : "데이터베이스 필터링…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dış Tablo" + "value" : "Veritabanlarını Filtrele…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Foreign Table" + "value" : "Lọc cơ sở dữ liệu…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "外部表" + "value" : "筛选数据库…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "外部資料表" + "value" : "篩選資料庫…" } } } }, - "Foreign Tables" : { + "Filter favorites" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "외부 테이블" + "value" : "즐겨찾기 필터링" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dış Tablolar" + "value" : "Filtre sık kullanılanları" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Foreign Tables" + "value" : "Lọc yêu thích" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "外部表" + "value" : "筛选收藏" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "外部資料表" + "value" : "篩選我的最愛" } } } }, - "Forever" : { + "Filter keys or values…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "무기한" + "value" : "키 또는 값 필터링…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Süresiz" + "value" : "Anahtar veya değerleri filtrele…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mãi mãi" + "value" : "Lọc khoá hoặc giá trị…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "永久" + "value" : "筛选键或值…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "永久" + "value" : "篩選鍵或值…" } } } }, - "Forget" : { + "Filter logic mode" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "신뢰 해제" + "value" : "필터 논리 모드" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Unut" + "value" : "Filtre mantık modu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Quên" + "value" : "Chế độ logic bộ lọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "忘记" + "value" : "筛选逻辑模式" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "忘記" + "value" : "篩選邏輯模式" } } } }, - "Forget All" : { + "Filter objects" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모두 신뢰 해제" + "value" : "객체 필터링" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tümünü Unut" + "value" : "Nesneleri filtrele" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Quên tất cả" + "value" : "Lọc đối tượng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "全部忘记" + "value" : "筛选对象" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "全部忘記" + "value" : "篩選物件" } } } }, - "Format JSON" : { - "extractionState" : "stale", + "Filter on a nested field path" : { + + }, + "Filter operator" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "JSON 서식 지정" + "value" : "필터 연산자" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "JSON Biçimlendir" + "value" : "Filtre operatörü" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Định dạng JSON" + "value" : "Toán tử lọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "格式化 JSON" + "value" : "筛选运算符" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "格式化 JSON" + "value" : "篩選運算子" } } } }, - "Forward" : { + "Filter operator: %@" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "앞으로" + "value" : "필터 연산자: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İleri" + "value" : "Filtre operatörü: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tiến tới" + "value" : "Toán tử lọc: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "前进" + "value" : "筛选运算符: %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "前進" + "value" : "篩選運算子:%@" } } } }, - "Format Query" : { + "Filter options" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 서식 지정" + "value" : "필터 옵션" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorguyu Biçimlendir" + "value" : "Filtre seçenekleri" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Định dạng truy vấn" + "value" : "Tùy chọn bộ lọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "格式化查询" + "value" : "筛选选项" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "格式化查詢" + "value" : "篩選選項" } } } }, - "Format Query (⇧⌘L)" : { + "Filter presets" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 서식 지정 (⇧⌘L)" + "value" : "필터 프리셋" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorguyu Biçimlendir (⇧⌘L)" + "value" : "Filtre ön ayarları" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Định dạng truy vấn (⇧⌘L)" + "value" : "Cài đặt sẵn bộ lọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "格式化查询 (⇧⌘L)" + "value" : "筛选预设" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "格式化查詢 (⇧⌘L)" + "value" : "篩選預設組" } } } }, - "Format Query (⌥⌘F)" : { - "extractionState" : "stale", + "Filter privileges" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 서식 지정 (⌥⌘F)" + "value" : "권한 필터링" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorguyu Biçimlendir (⌥⌘F)" + "value" : "Yetkileri filtrele" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Định dạng truy vấn (⌥⌘F)" + "value" : "Lọc quyền" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "格式化查询 (⌥⌘F)" + "value" : "筛选权限" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "格式化查詢 (⌥⌘F)" + "value" : "篩選權限" } } } }, - "Format SQL" : { + "Filter results by name" : { + + }, + "Filter roles" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SQL 서식 지정" + "value" : "역할 필터링" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SQL Biçimlendir" + "value" : "Rolleri filtrele" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Định dạng SQL" + "value" : "Lọc vai trò" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "格式化 SQL" + "value" : "筛选角色" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "格式化 SQL" + "value" : "篩選角色" } } } }, - "Format:" : { + "Filter settings" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "형식:" + "value" : "필터 설정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Biçim:" + "value" : "Filtre ayarları" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Định dạng:" + "value" : "Cài đặt bộ lọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "格式:" + "value" : "筛选设置" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "格式:" + "value" : "篩選設定" } } } }, - "Formatter error: %@" : { + "Filter Settings" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "포맷터 오류: %@" + "value" : "필터 설정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Biçimlendirici hatası: %@" + "value" : "Filtre Ayarları" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lỗi định dạng: %@" + "value" : "Cài đặt bộ lọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "格式化错误: %@" + "value" : "筛选设置" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "格式化錯誤:%@" + "value" : "篩選設定" } } } }, - "Formatting not supported for %@" : { + "Filter Settings…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@의 서식 지정은 지원되지 않습니다" + "value" : "필터 설정…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ için biçimlendirme desteklenmiyor" + "value" : "Filtre Ayarları…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không hỗ trợ định dạng cho %@" + "value" : "Cài đặt bộ lọc…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "不支持 %@ 的格式化" + "value" : "筛选设置…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "不支援 %@ 的格式化" + "value" : "篩選設定…" } } } }, - "From %@…" : { + "Filter value" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@에서…" + "value" : "필터 값" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ Kaynağından…" + "value" : "Filtre değeri" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Từ %@…" + "value" : "Giá trị lọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "从 %@…" + "value" : "筛选值" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "從 %@…" + "value" : "篩選值" } } } }, - "Full Access" : { + "Filter Values…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "전체 접근 권한" + "value" : "값 필터링…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tam Erişim" + "value" : "Değerleri Filtrele…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Toàn quyền" + "value" : "Lọc giá trị…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "完全访问" + "value" : "筛选值…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "完整存取" + "value" : "篩選值…" } } } }, - "Full access including destructive DDL after explicit confirmation." : { + "Filter with column" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "명시적으로 확인한 후 파괴적인 DDL까지 허용하는 전체 접근 권한입니다." + "value" : "열로 필터링" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Açık onay sonrası yıkıcı DDL dahil tam erişim." + "value" : "Sütunla filtrele" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Toàn quyền bao gồm DDL phá hủy sau khi xác nhận rõ ràng." + "value" : "Lọc theo cột" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "完全访问,包含需要明确确认的破坏性 DDL。" + "value" : "按列筛选" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "完整存取,包含需明確確認的破壞性 DDL。" + "value" : "依欄位篩選" } } } }, - "Function" : { + "Filter…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "함수" + "value" : "필터링…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Fonksiyon" + "value" : "Filtre…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hàm" + "value" : "Lọc…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "函数" + "value" : "筛选…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "函式" + "value" : "篩選…" } } } }, - "Function: %@" : { + "Filtered" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "함수: %@" + "value" : "필터링됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İşlev: %@" + "value" : "Filtrelendi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hàm: %@" + "value" : "Đã lọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "函数:%@" + "value" : "已筛选" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "函式:%@" + "value" : "已篩選" } } } }, - "Functions" : { + "Filtered to %lld of %lld ^[rows](inflect: true)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "함수" + "value" : "%lld / %lld개 행으로 필터됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İşlevler" + "value" : "%lld / %lld satır filtrelendi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hàm" + "value" : "Đã lọc còn %lld trên %lld hàng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "函数" + "value" : "已筛选 %lld / %lld 行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "函式" + "value" : "已篩選 %lld / %lld 列" } } } }, - "General" : { + "Filtering by only this row" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "일반" + "value" : "이 행만 기준으로 필터링 중" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Genel" + "value" : "Yalnızca bu satıra göre filtreleniyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tổng quát" + "value" : "Đang chỉ lọc theo hàng này" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "通用" + "value" : "正在仅按此行筛选" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "一般" + "value" : "正在僅依此列篩選" } } } }, - "Generate" : { + "Filters" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "생성" + "value" : "필터" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Oluştur" + "value" : "Filtreler" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tạo" + "value" : "Bộ lọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "生成" + "value" : "筛选条件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "產生" + "value" : "篩選條件" } } } }, - "Generate Token" : { + "Filters combined with 'logic'" : { + + }, + "Find" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "토큰 생성" + "value" : "찾기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Token Oluştur" + "value" : "Bul" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tạo token" + "value" : "Tìm" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "生成令牌" + "value" : "查找" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "產生權杖" + "value" : "尋找" } } } }, - "Generate a token so external clients can connect with their own credentials." : { + "Find in loaded rows" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "외부 클라이언트가 자체 자격 증명으로 연결할 수 있도록 토큰을 생성합니다." + "value" : "불러온 행에서 찾기" + } + } + } + }, + "Find Next" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "다음 찾기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Harici istemcilerin kendi kimlik bilgileriyle bağlanabilmesi için bir token oluşturun." + "value" : "Sonrakini Bul" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tạo token để client bên ngoài có thể kết nối bằng thông tin xác thực của riêng họ." + "value" : "Tìm tiếp theo" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "生成令牌,让外部客户端使用自己的凭据进行连接。" + "value" : "查找下一个" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "產生權杖,讓外部用戶端可使用自己的憑證連線。" + "value" : "尋找下一個" } } } }, - "Generate token" : { + "Find Previous" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "토큰 생성" + "value" : "이전 찾기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Token oluştur" + "value" : "Öncekini Bul" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tạo token" + "value" : "Tìm trước đó" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "生成令牌" + "value" : "查找上一个" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "產生權杖" + "value" : "尋找上一個" } } } }, - "Generated WHERE Clause" : { + "Find tables and columns whose name contains a substring, so a column can be located without describing every table." : { + + }, + "Find this on the instance's overview page in the Google Cloud console." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "생성된 WHERE 절" + "value" : "Google Cloud 콘솔에서 인스턴스의 개요 페이지를 열어 확인하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Oluşturulan WHERE Koşulu" + "value" : "Bunu Google Cloud konsolunda örneğin genel bakış sayfasında bulabilirsiniz." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mệnh đề WHERE đã tạo" + "value" : "Bạn tìm thấy giá trị này ở trang tổng quan của instance trong Google Cloud console." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "生成的 WHERE 子句" + "value" : "可在 Google Cloud 控制台中该实例的概览页面找到。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "產生的 WHERE 子句" + "value" : "可在 Google Cloud 主控台中該執行個體的總覽頁面找到。" } } } }, - "Generation failed." : { + "Find…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "생성하지 못했습니다." + "value" : "찾기…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Oluşturma başarısız." + "value" : "Bul…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tạo phản hồi thất bại." + "value" : "Tìm…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "生成失败。" + "value" : "查找…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "產生失敗。" + "value" : "尋找…" } } } }, - "Get Connection Status" : { + "Finish Signing In" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 상태 확인" + "value" : "로그인 마치기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı Durumunu Al" + "value" : "Oturum Açmayı Tamamla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lấy trạng thái kết nối" + "value" : "Hoàn tất đăng nhập" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "获取连接状态" + "value" : "完成登录" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "取得連線狀態" + "value" : "完成登入" } } } }, - "Get Started" : { + "Finished" : { + + }, + "First column" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "시작하기" + "value" : "첫 번째 열" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Başlayın" + "value" : "İlk sütun" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bắt đầu" + "value" : "Cột đầu tiên" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "开始使用" + "value" : "第一列" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開始使用" + "value" : "第一欄" } } } }, - "Get Table DDL" : { + "First page" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 DDL 가져오기" + "value" : "첫 페이지" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tablo DDL'sini Al" + "value" : "İlk sayfa" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lấy DDL của bảng" + "value" : "Trang đầu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "获取表 DDL" + "value" : "第一页" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "取得資料表 DDL" + "value" : "第一頁" } } } }, - "Get detailed status for a specific database connection." : { + "First Page" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "특정 데이터베이스 연결의 상세 상태를 가져옵니다." + "value" : "첫 페이지" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Belirli bir veritabanı bağlantısının ayrıntılı durumunu alır." + "value" : "İlk Sayfa" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lấy trạng thái chi tiết của một kết nối cơ sở dữ liệu cụ thể." + "value" : "Trang đầu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "获取特定数据库连接的详细状态。" + "value" : "第一页" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "取得特定資料庫連線的詳細狀態。" + "value" : "第一頁" } } } }, - "Get detailed status of a database connection" : { + "Fit to Window" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 연결의 상세 상태 가져오기" + "value" : "윈도우에 맞추기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bir veritabanı bağlantısının ayrıntılı durumunu al" + "value" : "Pencereye Sığdır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lấy trạng thái chi tiết của một kết nối cơ sở dữ liệu" + "value" : "Vừa cửa sổ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "获取数据库连接的详细状态" + "value" : "适合窗口" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "取得資料庫連線的詳細狀態" + "value" : "符合視窗" } } } }, - "Get detailed table structure: columns, indexes, foreign keys, and DDL" : { + "Fix Error" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열, 인덱스, 외래 키 및 DDL을 포함한 상세 테이블 구조 가져오기" + "value" : "오류 수정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ayrıntılı tablo yapısını al: sütunlar, indeksler, yabancı anahtarlar ve DDL" + "value" : "Hatayı Düzelt" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lấy cấu trúc bảng chi tiết: cột, index, khóa ngoại và DDL" + "value" : "Sửa lỗi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "获取详细的表结构:列、索引、外键和 DDL" + "value" : "修复错误" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "取得詳細的資料表結構:欄位、索引、外鍵和 DDL" + "value" : "修正錯誤" } } } }, - "Get help writing queries, explaining schemas, or fixing errors." : { - "extractionState" : "stale", + "Fix the last error on the current query" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 작성, 스키마 설명 또는 오류 수정에 관한 도움을 받습니다." + "value" : "현재 쿼리의 마지막 오류 수정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgu yazma, şema açıklama veya hata düzeltme konusunda yardım alın." + "value" : "Geçerli sorgudaki son hatayı düzelt" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhận trợ giúp viết truy vấn, giải thích schema hoặc sửa lỗi." + "value" : "Sửa lỗi gần nhất của truy vấn hiện tại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "获取编写查询、解释 Schema 或修复错误方面的帮助。" + "value" : "修复当前查询的最后一个错误" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "取得撰寫查詢、解釋綱要或修正錯誤的協助。" + "value" : "修正目前查詢的最後一個錯誤" } } } }, - "Get intelligent SQL suggestions and query assistance" : { + "Fix with AI" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "지능형 SQL 제안 및 쿼리 지원 받기" + "value" : "AI로 수정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Akıllı SQL önerileri ve sorgu yardımı alın" + "value" : "Yapay Zeka ile Düzelt" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhận gợi ý SQL thông minh và hỗ trợ truy vấn" + "value" : "Sửa bằng AI" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "获取智能 SQL 建议和查询辅助" + "value" : "用 AI 修复" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "取得智慧 SQL 建議與查詢輔助" + "value" : "用 AI 修正" } } } }, - "Get the CREATE TABLE DDL statement for a table" : { + "Flattened plan text" : { + + }, + "Focus an already-open tab by id (returned from list_recent_tabs)." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블의 CREATE TABLE DDL 문 가져오기" + "value" : "이미 열려 있는 탭에 ID로 포커스를 맞춥니다(list_recent_tabs에서 반환)." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bir tablonun CREATE TABLE DDL deyimini al" + "value" : "Zaten açık bir sekmeye id ile odaklanır (list_recent_tabs tarafından döndürülür)." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lấy câu lệnh DDL CREATE TABLE của một bảng" + "value" : "Chuyển đến một tab đang mở theo id (trả về từ list_recent_tabs)." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "获取表的 CREATE TABLE DDL 语句" + "value" : "按 id 聚焦已打开的标签页(id 由 list_recent_tabs 返回)。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "取得資料表的 CREATE TABLE DDL 陳述式" + "value" : "依 id 聚焦已開啟的分頁(id 由 list_recent_tabs 回傳)。" } } } }, - "Get the DDL (CREATE statement) for a table." : { + "Focus Border" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블의 DDL(CREATE 문)을 가져옵니다." + "value" : "포커스 테두리" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bir tablonun DDL'sini (CREATE deyimi) alır." + "value" : "Odak Kenarlığı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lấy DDL (câu lệnh CREATE) của một bảng." + "value" : "Viền khi chọn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "获取表的 DDL(CREATE 语句)。" + "value" : "焦点边框" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "取得資料表的 DDL(CREATE 陳述式)。" + "value" : "焦點邊框" } } } }, - "GitHub Repository" : { + "Focus Query Tab" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "GitHub 저장소" + "value" : "쿼리 탭에 포커스" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "GitHub Deposu" + "value" : "Sorgu Sekmesine Odaklan" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kho GitHub" + "value" : "Chuyển đến tab truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "GitHub 仓库" + "value" : "聚焦查询标签页" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "GitHub 儲存庫" + "value" : "聚焦查詢分頁" } } } }, - "Global" : { + "Focus Sidebar Filter" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "전역" + "value" : "사이드바 필터에 포커스" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Genel" + "value" : "Sidebar Filtresine Odaklan" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Toàn cục" + "value" : "Chuyển đến bộ lọc thanh bên" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "全局" + "value" : "聚焦侧边栏筛选" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "全域" + "value" : "聚焦側邊欄篩選" } } } }, - "Global:" : { + "Focus Tab" : { + + }, + "Focus the query editor to insert" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "전역:" + "value" : "삽입할 쿼리 편집기에 포커스" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Genel:" + "value" : "Eklemek için sorgu düzenleyicisine odaklanın" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chung:" + "value" : "Chuyển đến trình soạn thảo truy vấn để chèn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "全局:" + "value" : "聚焦查询编辑器以插入" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "全域:" + "value" : "聚焦查詢編輯器以插入" } } } }, - "Go" : { + "Fold" : { + + }, + "Fold All" : { + + }, + "Folder" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이동" + "value" : "폴더" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Go" + "value" : "Klasör" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đi" + "value" : "Thư mục" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "前往" + "value" : "文件夹" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "前往" + "value" : "資料夾" } } } }, - "Go to Settings…" : { + "Folder name" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "설정으로 이동…" + "value" : "폴더 이름" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ayarlar'a git…" + "value" : "Klasör adı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đi đến Cài đặt…" + "value" : "Tên thư mục" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "前往设置…" + "value" : "文件夹名称" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "前往設定…" + "value" : "資料夾名稱" } } } }, - "Go to page" : { + "Follow-up on step %d \"%@\" (%@): %@" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Follow-up on step %1$d \"%2$@\" (%3$@): %4$@" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "페이지로 이동" + "value" : "단계 %1$d \"%2$@\"(%3$@)에 대한 후속 조치: %4$@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sayfaya git" + "value" : "%1$d. adım için ek soru \"%2$@\" (%3$@): %4$@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đi đến trang" + "value" : "Hỏi thêm về bước %1$d \"%2$@\" (%3$@): %4$@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "跳转到指定页" + "value" : "关于第 %1$d 步的追问 \"%2$@\"(%3$@):%4$@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "跳至指定頁" + "value" : "關於第 %1$d 步的追問「%2$@」(%3$@):%4$@" } } } }, - "Google Cloud serverless data warehouse" : { + "Font" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Google Cloud 서버리스 데이터 웨어하우스" + "value" : "글꼴" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Google Cloud sunucusuz veri ambarı" + "value" : "Yazı Tipi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kho dữ liệu serverless của Google Cloud" + "value" : "Phông chữ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Google Cloud 无服务器数据仓库" + "value" : "字体" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Google Cloud 無伺服器資料倉儲" + "value" : "字型" } } } }, - "Got Slower" : { + "Font size:" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "느려진 쿼리" + "value" : "글꼴 크기:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yavaşladı" + "value" : "Yazı tipi boyutu:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chậm đi" + "value" : "Cỡ chữ:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "变慢了" + "value" : "字体大小:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "變慢了" + "value" : "字型大小:" } } } }, - "Grant %1$@ on %2$@" : { + "Font:" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@ 권한을 %2$@에 부여" + "value" : "글꼴:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%2$@ üzerinde %1$@ ver" + "value" : "Yazı Tipi:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cấp %1$@ trên %2$@" + "value" : "Phông chữ:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在 %2$@ 上授予 %1$@" + "value" : "字体:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在 %2$@ 上授予 %1$@" + "value" : "字型:" } } } }, - "Grant All" : { + "Fonts" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 권한 부여" + "value" : "글꼴" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tümünü Ver" + "value" : "Yazı Tipleri" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cấp tất cả" + "value" : "Phông chữ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "全部授予" + "value" : "字体" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "全部授予" + "value" : "字型" } } } }, - "Grant privileges to %@" : { + "For a metered path on Anthropic's commercial terms, add the Claude provider with an API key instead." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@에 권한 부여" + "value" : "Anthropic의 상용 약관에 따른 종량제 방식을 이용하려면 대신 API 키를 사용해 Claude 제공자를 추가하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ hesabına yetki ver" + "value" : "Anthropic'in ticari koşullarıyla kullanım başına ödemeli bir yol için bunun yerine Claude sağlayıcısını bir API anahtarıyla ekleyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cấp quyền cho %@" + "value" : "Nếu muốn cách tính phí theo mức dùng theo điều khoản thương mại của Anthropic, hãy thêm nhà cung cấp Claude bằng khóa API." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "向 %@ 授予权限" + "value" : "若想走 Anthropic 商业条款下的按量计费路径,请改为添加带 API 密钥的 Claude 提供方。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "向 %@ 授予權限" + "value" : "若想走 Anthropic 商業條款下的按量計費路徑,請改為新增帶 API 金鑰的 Claude 供應商。" } } } }, - "Granted" : { + "Foreign key %@ matches %@ on the target but the names differ." : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Foreign key %1$@ matches %2$@ on the target but the names differ." + } + } + } + }, + "Foreign Keys" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "부여됨" + "value" : "외래 키" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Verildi" + "value" : "Yabancı Anahtarlar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã cấp" + "value" : "Khóa ngoại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已授予" + "value" : "外键" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已授予" + "value" : "外鍵" } } } }, - "Granted on %@" : { + "Foreign keys the table declares" : { + + }, + "Foreign Table" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@에 부여됨" + "value" : "외부 테이블" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ üzerinde verildi" + "value" : "Dış Tablo" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã cấp trên %@" + "value" : "Foreign Table" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已在 %@ 上授予" + "value" : "外部表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已在 %@ 上授予" + "value" : "外部資料表" } } } }, - "Graphite" : { - "extractionState" : "stale", + "Foreign Tables" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "그래파이트" + "value" : "외부 테이블" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Graphite" + "value" : "Dış Tablolar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Than chì" + "value" : "Foreign Tables" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "石墨" + "value" : "外部表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "石墨" + "value" : "外部資料表" } } } }, - "Gray" : { + "Forever" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "회색" + "value" : "무기한" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Gri" + "value" : "Süresiz" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xám" + "value" : "Mãi mãi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "灰色" + "value" : "永久" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "灰色" + "value" : "永久" } } } }, - "Green" : { + "Forget" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "녹색" + "value" : "신뢰 해제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeşil" + "value" : "Unut" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xanh lá" + "value" : "Quên" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "绿色" + "value" : "忘记" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "綠色" + "value" : "忘記" } } } }, - "Group" : { + "Forget All" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "그룹" + "value" : "모두 신뢰 해제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Grup" + "value" : "Tümünü Unut" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhóm" + "value" : "Quên tất cả" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "分组" + "value" : "全部忘记" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "群組" + "value" : "全部忘記" } } } }, - "Group name" : { + "Format JSON" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "그룹 이름" + "value" : "JSON 서식 지정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Grup adı" + "value" : "JSON Biçimlendir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên nhóm" + "value" : "Định dạng JSON" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "分组名称" + "value" : "格式化 JSON" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "群組名稱" + "value" : "格式化 JSON" } } } }, - "Group: %@" : { + "Format Query" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "그룹: %@" + "value" : "쿼리 서식 지정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Grup: %@" + "value" : "Sorguyu Biçimlendir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhóm: %@" + "value" : "Định dạng truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "分组:%@" + "value" : "格式化查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "群組:%@" + "value" : "格式化查詢" } } } }, - "Groups & Tags:" : { + "Format Query (⇧⌘L)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "그룹 및 태그:" + "value" : "쿼리 서식 지정 (⇧⌘L)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Gruplar ve Etiketler:" + "value" : "Sorguyu Biçimlendir (⇧⌘L)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhóm & thẻ:" + "value" : "Định dạng truy vấn (⇧⌘L)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "分组与标签:" + "value" : "格式化查询 (⇧⌘L)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "群組與標籤:" + "value" : "格式化查詢 (⇧⌘L)" } } } }, - "Has unsaved changes" : { + "Format Query (⌥⌘F)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "저장하지 않은 변경 사항 있음" + "value" : "쿼리 서식 지정 (⌥⌘F)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kaydedilmemiş değişiklikler var" + "value" : "Sorguyu Biçimlendir (⌥⌘F)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Có thay đổi chưa lưu" + "value" : "Định dạng truy vấn (⌥⌘F)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "有未保存的更改" + "value" : "格式化查询 (⌥⌘F)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "有未儲存的變更" + "value" : "格式化查詢 (⌥⌘F)" } } } }, - "Help" : { + "Format SQL" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "도움말" + "value" : "SQL 서식 지정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yardım" + "value" : "SQL Biçimlendir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trợ giúp" + "value" : "Định dạng SQL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "帮助" + "value" : "格式化 SQL" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "輔助說明" + "value" : "格式化 SQL" } } } }, - "Help improve TablePro by sharing anonymous usage statistics (no personal data or queries)." : { + "Format that was produced" : { + + }, + "Format:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "개인 데이터나 쿼리는 제외하고 익명의 사용 통계를 공유하여 TablePro 개선에 도움을 주십시오." + "value" : "형식:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Anonim kullanım istatistiklerini paylaşarak TablePro'nun gelişmesine yardımcı olun (kişisel veri veya sorgu yok)." + "value" : "Biçim:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giúp cải thiện TablePro bằng cách chia sẻ thống kê sử dụng ẩn danh (không có dữ liệu cá nhân hay truy vấn nào)." + "value" : "Định dạng:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "通过分享匿名使用统计数据帮助改进 TablePro(不包含个人数据或查询内容)。" + "value" : "格式:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "分享匿名使用統計協助改善 TablePro(不含個人資料或查詢內容)。" + "value" : "格式:" } } } }, - "Hex bytes" : { + "Formatted duration" : { + + }, + "Formatter error: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "16진수 바이트" + "value" : "포맷터 오류: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Hex bayt" + "value" : "Biçimlendirici hatası: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Byte dạng Hex" + "value" : "Lỗi định dạng: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "十六进制字节" + "value" : "格式化错误: %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "十六進位位元組" + "value" : "格式化錯誤:%@" } } } }, - "Hide All" : { + "Formatting not supported for %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모두 가리기" + "value" : "%@의 서식 지정은 지원되지 않습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tümünü Gizle" + "value" : "%@ için biçimlendirme desteklenmiyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ẩn tất cả" + "value" : "Không hỗ trợ định dạng cho %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "隐藏全部" + "value" : "不支持 %@ 的格式化" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "全部隱藏" + "value" : "不支援 %@ 的格式化" } } } }, - "Hide Column" : { + "Forward" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열 가리기" + "value" : "앞으로" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sütunu Gizle" + "value" : "İleri" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ẩn cột" + "value" : "Tiến tới" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "隐藏列" + "value" : "前进" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "隱藏欄位" + "value" : "前進" } } } }, - "Hide Connections" : { - "comment" : "Title of the menu item that hides the sidebar rail.", - "isCommentAutoGenerated" : true, + "From %@…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 가리기" + "value" : "%@에서…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantıları Gizle" + "value" : "%@ Kaynağından…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ẩn kết nối" + "value" : "Từ %@…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "隐藏连接" + "value" : "从 %@…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "隱藏連線" + "value" : "從 %@…" } } } }, - "Hide Filter Bar" : { + "FULL (rewrites entire table, blocks access)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터 막대 가리기" + "value" : "FULL(전체 테이블을 다시 쓰며 접근을 차단함)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtre Çubuğunu Gizle" + "value" : "FULL (tüm tabloyu yeniden yazar, erişimi engeller)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ẩn thanh bộ lọc" + "value" : "FULL (ghi lại toàn bộ bảng, chặn truy cập)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "隐藏筛选栏" + "value" : "FULL(重写整个表,阻止访问)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "隱藏篩選列" + "value" : "FULL(重寫整個資料表,封鎖存取)" } } } }, - "Hide Inspector" : { + "Full Access" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "인스펙터 가리기" + "value" : "전체 접근 권한" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Denetçiyi Gizle" + "value" : "Tam Erişim" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ẩn thanh kiểm tra" + "value" : "Toàn quyền" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "隐藏检查器" + "value" : "完全访问" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "隱藏檢閱器" + "value" : "完整存取" } } } }, - "Hide Others" : { + "Full access including destructive DDL after explicit confirmation." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기타 가리기" + "value" : "명시적으로 확인한 후 파괴적인 DDL까지 허용하는 전체 접근 권한입니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Diğerlerini Gizle" + "value" : "Açık onay sonrası yıkıcı DDL dahil tam erişim." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ẩn các mục khác" + "value" : "Toàn quyền bao gồm DDL phá hủy sau khi xác nhận rõ ràng." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "隐藏其他" + "value" : "完全访问,包含需要明确确认的破坏性 DDL。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "隱藏其他" + "value" : "完整存取,包含需明確確認的破壞性 DDL。" } } } }, - "Hide Query History" : { + "Full CREATE TRIGGER statement" : { + + }, + "Function" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 기록 가리기" + "value" : "함수" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgu Geçmişini Gizle" + "value" : "Fonksiyon" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ẩn lịch sử truy vấn" + "value" : "Hàm" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "隐藏查询历史" + "value" : "函数" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "隱藏查詢歷史" + "value" : "函式" } } } }, - "Hide Results" : { + "Function: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "결과 가리기" + "value" : "함수: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sonuçları Gizle" + "value" : "İşlev: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ẩn kết quả" + "value" : "Hàm: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "隐藏结果" + "value" : "函数:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "隱藏結果" + "value" : "函式:%@" } } } }, - "Hide Sidebar" : { + "Functions" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사이드바 가리기" + "value" : "함수" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kenar Çubuğunu Gizle" + "value" : "İşlevler" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ẩn thanh bên" + "value" : "Hàm" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "隐藏侧边栏" + "value" : "函数" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "隱藏側邊欄" + "value" : "函式" } } } }, - "Hide TablePro" : { + "General" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro 가리기" + "value" : "일반" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro'yu Gizle" + "value" : "Genel" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ẩn TablePro" + "value" : "Tổng quát" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "隐藏 TablePro" + "value" : "通用" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "隱藏 TablePro" + "value" : "一般" } } } }, - "Hide Workspace Rail" : { - "extractionState" : "stale", + "Generate" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "워크스페이스 레일 가리기" + "value" : "생성" } }, "tr" : { "stringUnit" : { - "state" : "needs_review", - "value" : "Çalışma Alanı Şeridini Gizle" + "state" : "translated", + "value" : "Oluştur" } }, "vi" : { "stringUnit" : { - "state" : "needs_review", - "value" : "Ẩn thanh không gian làm việc" + "state" : "translated", + "value" : "Tạo" } }, "zh-Hans" : { "stringUnit" : { - "state" : "needs_review", - "value" : "隐藏工作区栏" + "state" : "translated", + "value" : "生成" } }, "zh-Hant" : { "stringUnit" : { - "state" : "needs_review", - "value" : "隱藏工作區列" + "state" : "translated", + "value" : "產生" } } } }, - "Hide token" : { + "Generate a token so external clients can connect with their own credentials." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "토큰 가리기" + "value" : "외부 클라이언트가 자체 자격 증명으로 연결할 수 있도록 토큰을 생성합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Token gizle" + "value" : "Harici istemcilerin kendi kimlik bilgileriyle bağlanabilmesi için bir token oluşturun." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ẩn token" + "value" : "Tạo token để client bên ngoài có thể kết nối bằng thông tin xác thực của riêng họ." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "隐藏令牌" + "value" : "生成令牌,让外部客户端使用自己的凭据进行连接。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "隱藏權杖" + "value" : "產生權杖,讓外部用戶端可使用自己的憑證連線。" } } } }, - "High" : { + "Generate Script" : { + + }, + "Generate the script to see exactly what would run." : { + + }, + "Generate token" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "높음" + "value" : "토큰 생성" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yüksek" + "value" : "Token oluştur" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cao" + "value" : "Tạo token" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "高" + "value" : "生成令牌" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "高" + "value" : "產生權杖" } } } }, - "High cost" : { - "comment" : "Accessibility label for a query plan severity of high cost.", - "isCommentAutoGenerated" : true, + "Generate Token" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "높은 비용" + "value" : "토큰 생성" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yüksek maliyet" + "value" : "Token Oluştur" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chi phí cao" + "value" : "Tạo token" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "高成本" + "value" : "生成令牌" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "高成本" + "value" : "產生權杖" } } } }, - "Higher values create fewer INSERT statements, resulting in smaller files and faster imports" : { - "extractionState" : "stale", + "Generated WHERE Clause" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "값이 클수록 INSERT 문 수가 줄어들어 파일이 작아지고 가져오기가 빨라집니다" + "value" : "생성된 WHERE 절" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Daha yüksek değerler daha az INSERT ifadesi oluşturur, daha küçük dosyalar ve daha hızlı içe aktarma sağlar" + "value" : "Oluşturulan WHERE Koşulu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giá trị cao hơn tạo ít câu lệnh INSERT hơn, giúp tệp nhỏ hơn và nhập nhanh hơn" + "value" : "Mệnh đề WHERE đã tạo" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "值越大,生成的 INSERT 语句越少,文件更小,导入更快" + "value" : "生成的 WHERE 子句" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "值越大,產生的 INSERT 陳述式越少,檔案更小且匯入更快" + "value" : "產生的 WHERE 子句" } } } }, - "Highlight current line" : { + "Generation failed." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "현재 줄 강조" + "value" : "생성하지 못했습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Mevcut satırı vurgula" + "value" : "Oluşturma başarısız." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đánh dấu dòng hiện tại" + "value" : "Tạo phản hồi thất bại." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "高亮当前行" + "value" : "生成失败。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "標示目前行" + "value" : "產生失敗。" } } } }, - "Highlight current statement" : { + "Get Connection Status" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "현재 문 강조" + "value" : "연결 상태 확인" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Mevcut ifadeyi vurgula" + "value" : "Bağlantı Durumunu Al" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đánh dấu câu lệnh hiện tại" + "value" : "Lấy trạng thái kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "高亮当前语句" + "value" : "获取连接状态" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "標示目前陳述式" + "value" : "取得連線狀態" } } } }, - "History" : { + "Get Database Statistics" : { + + }, + "Get detailed status for a specific database connection." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기록" + "value" : "특정 데이터베이스 연결의 상세 상태를 가져옵니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geçmiş" + "value" : "Belirli bir veritabanı bağlantısının ayrıntılı durumunu alır." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lịch sử" + "value" : "Lấy trạng thái chi tiết của một kết nối cơ sở dữ liệu cụ thể." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "历史记录" + "value" : "获取特定数据库连接的详细状态。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "歷程記錄" + "value" : "取得特定資料庫連線的詳細狀態。" } } } }, - "History Limit:" : { + "Get detailed status of a database connection" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기록 제한:" + "value" : "데이터베이스 연결의 상세 상태 가져오기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geçmiş Limiti:" + "value" : "Bir veritabanı bağlantısının ayrıntılı durumunu al" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giới hạn lịch sử:" + "value" : "Lấy trạng thái chi tiết của một kết nối cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "历史记录上限:" + "value" : "获取数据库连接的详细状态" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "歷程記錄上限:" + "value" : "取得資料庫連線的詳細狀態" } } } }, - "History Unavailable" : { + "Get detailed table structure: columns, indexes, foreign keys, and DDL" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기록을 사용할 수 없음" + "value" : "열, 인덱스, 외래 키 및 DDL을 포함한 상세 테이블 구조 가져오기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geçmiş Kullanılamıyor" + "value" : "Ayrıntılı tablo yapısını al: sütunlar, indeksler, yabancı anahtarlar ve DDL" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có lịch sử" + "value" : "Lấy cấu trúc bảng chi tiết: cột, index, khóa ngoại và DDL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "历史不可用" + "value" : "获取详细的表结构:列、索引、外键和 DDL" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "記錄無法使用" + "value" : "取得詳細的資料表結構:欄位、索引、外鍵和 DDL" } } } }, - "Homepage" : { + "Get help writing queries, explaining schemas, or fixing errors." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "홈페이지" + "value" : "쿼리 작성, 스키마 설명 또는 오류 수정에 관한 도움을 받습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ana Sayfa" + "value" : "Sorgu yazma, şema açıklama veya hata düzeltme konusunda yardım alın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trang chủ" + "value" : "Nhận trợ giúp viết truy vấn, giải thích schema hoặc sửa lỗi." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "主页" + "value" : "获取编写查询、解释 Schema 或修复错误方面的帮助。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "首頁" + "value" : "取得撰寫查詢、解釋綱要或修正錯誤的協助。" } } } }, - "Host" : { + "Get intelligent SQL suggestions and query assistance" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "호스트" + "value" : "지능형 SQL 제안 및 쿼리 지원 받기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sunucu" + "value" : "Akıllı SQL önerileri ve sorgu yardımı alın" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Máy chủ" + "value" : "Nhận gợi ý SQL thông minh và hỗ trợ truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "主机" + "value" : "获取智能 SQL 建议和查询辅助" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "主機" + "value" : "取得智慧 SQL 建議與查詢輔助" } } } }, - "Host and port assumed" : { + "Get Server Dashboard" : { + + }, + "Get Started" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "호스트와 포트로 간주됨" + "value" : "시작하기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sunucu ve port varsayıldı" + "value" : "Başlayın" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Máy chủ và cổng được suy đoán" + "value" : "Bắt đầu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "主机和端口为推测值" + "value" : "开始使用" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "主機與連接埠為推測值" + "value" : "開始使用" } } } }, - "Host looks like a socket path" : { + "Get Table DDL" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "호스트가 소켓 경로인 것 같습니다" + "value" : "테이블 DDL 가져오기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sunucu adı soket yoluna benziyor" + "value" : "Tablo DDL'sini Al" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Máy chủ trông giống đường dẫn socket" + "value" : "Lấy DDL của bảng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "主机看起来像 socket 路径" + "value" : "获取表 DDL" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "主機看起來像 socket 路徑" + "value" : "取得資料表 DDL" } } } }, - "Host:" : { + "Get Table Statistics" : { + + }, + "Get the CREATE TABLE DDL statement for a table" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "호스트:" + "value" : "테이블의 CREATE TABLE DDL 문 가져오기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sunucu:" + "value" : "Bir tablonun CREATE TABLE DDL deyimini al" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Máy chủ:" + "value" : "Lấy câu lệnh DDL CREATE TABLE của một bảng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "主机:" + "value" : "获取表的 CREATE TABLE DDL 语句" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "主機:" + "value" : "取得資料表的 CREATE TABLE DDL 陳述式" } } } }, - "Host: %@" : { + "Get the DDL (CREATE statement) for a table." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "호스트: %@" + "value" : "테이블의 DDL(CREATE 문)을 가져옵니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sunucu: %@" + "value" : "Bir tablonun DDL'sini (CREATE deyimi) alır." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Máy chủ: %@" + "value" : "Lấy DDL (câu lệnh CREATE) của một bảng." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "主机:%@" + "value" : "获取表的 DDL(CREATE 语句)。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "主機:%@" + "value" : "取得資料表的 DDL(CREATE 陳述式)。" } } } }, - "Hostname" : { + "Get View Definition" : { + + }, + "GitHub Repository" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "호스트 이름" + "value" : "GitHub 저장소" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sunucu adı" + "value" : "GitHub Deposu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên máy chủ" + "value" : "Kho GitHub" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "主机名" + "value" : "GitHub 仓库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "主機名稱" + "value" : "GitHub 儲存庫" } } } }, - "Hosts" : { + "global" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "호스트" + "value" : "전역" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sunucular" + "value" : "genel" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Host" + "value" : "toàn cục" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "主机" + "value" : "全局" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "主機" + "value" : "全域" } } } }, - "Hover" : { + "Global" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "호버" + "value" : "전역" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Üzerine Gelme" + "value" : "Genel" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Di chuột" + "value" : "Toàn cục" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "悬停" + "value" : "全局" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "停留" + "value" : "全域" } } } }, - "Huge" : { + "Global:" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "아주 큼" + "value" : "전역:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Çok Büyük" + "value" : "Genel:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Rất lớn" + "value" : "Chung:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "超大" + "value" : "全局:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "超大" + "value" : "全域:" } } } }, - "IN Clause" : { + "Go" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "IN 절" + "value" : "이동" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "IN İfadesi" + "value" : "Go" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mệnh đề IN" + "value" : "Đi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "IN 子句" + "value" : "前往" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "IN 子句" + "value" : "前往" } } } }, - "INDEX" : { - "extractionState" : "stale", + "Go to page" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "INDEX" + "value" : "페이지로 이동" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İNDEKS" + "value" : "Sayfaya git" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "CHỈ MỤC" + "value" : "Đi đến trang" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "索引" + "value" : "跳转到指定页" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "索引" + "value" : "跳至指定頁" } } } }, - "INSERT Statement(s)" : { + "Go to Settings…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "INSERT 문" + "value" : "설정으로 이동…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "INSERT İfade(si)" + "value" : "Ayarlar'a git…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Câu lệnh INSERT" + "value" : "Đi đến Cài đặt…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "INSERT 语句" + "value" : "前往设置…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "INSERT 陳述式" + "value" : "前往設定…" } } } }, - "ISO 8601 (2024-12-31 23:59:59)" : { + "Google Cloud serverless data warehouse" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "ISO 8601 (2024-12-31 23:59:59)" + "value" : "Google Cloud 서버리스 데이터 웨어하우스" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "ISO 8601 (2024-12-31 23:59:59)" + "value" : "Google Cloud sunucusuz veri ambarı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "ISO 8601 (2024-12-31 23:59:59)" + "value" : "Kho dữ liệu serverless của Google Cloud" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "ISO 8601 (2024-12-31 23:59:59)" + "value" : "Google Cloud 无服务器数据仓库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "ISO 8601 (2024-12-31 23:59:59)" + "value" : "Google Cloud 無伺服器資料倉儲" } } } }, - "ISO Date (2024-12-31)" : { + "Got Slower" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "ISO 날짜 (2024-12-31)" + "value" : "느려진 쿼리" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "ISO Tarih (2024-12-31)" + "value" : "Yavaşladı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "ISO ngày (2024-12-31)" + "value" : "Chậm đi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "ISO 日期 (2024-12-31)" + "value" : "变慢了" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "ISO 日期 (2024-12-31)" + "value" : "變慢了" } } } }, - "Icon Sizes" : { - "extractionState" : "stale", + "Grant %1$@ on %2$@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "아이콘 크기" + "value" : "%1$@ 권한을 %2$@에 부여" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Simge Boyutları" + "value" : "%2$@ üzerinde %1$@ ver" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kích thước biểu tượng" + "value" : "Cấp %1$@ trên %2$@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "图标大小" + "value" : "在 %2$@ 上授予 %1$@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "圖示大小" + "value" : "在 %2$@ 上授予 %1$@" } } } }, - "Icons" : { + "Grant All" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "아이콘" + "value" : "모든 권한 부여" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Simgeler" + "value" : "Tümünü Ver" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Biểu tượng" + "value" : "Cấp tất cả" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "图标" + "value" : "全部授予" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "圖像" + "value" : "全部授予" } } } }, - "Identity" : { + "Grant privileges to %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "식별 정보" + "value" : "%@에 권한 부여" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kimlik" + "value" : "%@ hesabına yetki ver" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Danh tính" + "value" : "Cấp quyền cho %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "身份" + "value" : "向 %@ 授予权限" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "身分" + "value" : "向 %@ 授予權限" } } } }, - "If macOS asks for your login password, click Always Allow on each prompt." : { + "Granted" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "macOS가 로그인 암호를 요청하면 각 메시지에서 '항상 허용'을 클릭하십시오." + "value" : "부여됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "macOS oturum açma parolanızı sorarsa her istemde Her Zaman İzin Ver'e tıklayın." + "value" : "Verildi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nếu macOS hỏi mật khẩu đăng nhập của bạn, hãy bấm Luôn cho phép ở mỗi lời nhắc." + "value" : "Đã cấp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "如果 macOS 要求输入登录密码,请在每个提示中点按“始终允许”。" + "value" : "已授予" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "如果 macOS 要求輸入登入密碼,請在每個提示中點按「總是允許」。" + "value" : "已授予" } } } }, - "If the SSH server asks for a verification code, TablePro prompts you for it when you connect." : { + "Granted on %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 서버에서 확인 코드를 요청하면 연결할 때 TablePro가 코드 입력을 요청합니다." + "value" : "%@에 부여됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH sunucusu bir doğrulama kodu isterse, TablePro bağlanırken bunu size sorar." + "value" : "%@ üzerinde verildi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nếu máy chủ SSH yêu cầu mã xác minh, TablePro sẽ hỏi bạn khi kết nối." + "value" : "Đã cấp trên %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "如果 SSH 服务器要求验证码,TablePro 会在连接时提示你输入。" + "value" : "已在 %@ 上授予" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "如果 SSH 伺服器要求驗證碼,TablePro 會在連線時提示你輸入。" + "value" : "已在 %@ 上授予" } } } }, - "Ignore Case" : { + "Grants, sorted by privilege then scope" : { + + }, + "Graphite" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "대소문자 무시" + "value" : "그래파이트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Büyük/Küçük Harf Duyarsız" + "value" : "Graphite" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bỏ qua hoa thường" + "value" : "Than chì" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "忽略大小写" + "value" : "石墨" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "忽略大小寫" + "value" : "石墨" } } } }, - "Ignore foreign key checks" : { + "Gray" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "외래 키 검사 무시" + "value" : "회색" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yabancı anahtar kontrollerini yoksay" + "value" : "Gri" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bỏ qua kiểm tra khóa ngoại" + "value" : "Xám" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "忽略外键检查" + "value" : "灰色" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "忽略外鍵檢查" + "value" : "灰色" } } } }, - "Import" : { + "greater or equal" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "가져오기" + "value" : "크거나 같음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İçe Aktar" + "value" : "büyük veya eşit" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập" + "value" : "lớn hơn hoặc bằng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导入" + "value" : "大于或等于" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯入" + "value" : "大於或等於" } } } }, - "Import %@…" : { + "greater than" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 가져오기…" + "value" : "보다 큼" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ İçe Aktar…" + "value" : "büyüktür" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập %@…" + "value" : "lớn hơn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导入 %@…" + "value" : "大于" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯入 %@…" + "value" : "大於" } } } }, - "Import Complete" : { + "Green" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "가져오기 완료" + "value" : "녹색" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İçe Aktarma Tamamlandı" + "value" : "Yeşil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập Hoàn tất" + "value" : "Xanh lá" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导入完成" + "value" : "绿色" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯入完成" + "value" : "綠色" } } } }, - "Import Completed with Errors" : { - "extractionState" : "stale", + "Group" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "오류가 발생했지만 가져오기 완료" + "value" : "그룹" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İçe Aktarma Hatalarla Tamamlandı" + "value" : "Grup" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập hoàn tất với lỗi" + "value" : "Nhóm" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导入完成但有错误" + "value" : "分组" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯入完成但有錯誤" + "value" : "群組" } } } }, - "Import Connection from Link" : { - "extractionState" : "stale", + "Group By" : { + + }, + "Group name" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "링크에서 연결 가져오기" + "value" : "그룹 이름" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantıyı Linkten İçe Aktar" + "value" : "Grup adı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập kết nối từ liên kết" + "value" : "Tên nhóm" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "从链接导入连接" + "value" : "分组名称" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "從連結匯入連線" + "value" : "群組名稱" } } } }, - "Import Connections" : { + "Group results by difference or object type" : { + + }, + "Group: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 가져오기" + "value" : "그룹: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantıları İçe Aktar" + "value" : "Grup: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập Kết nối" + "value" : "Nhóm: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导入连接" + "value" : "分组:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯入連線" + "value" : "群組:%@" } } } }, - "Import Connections…" : { + "Groups & Tags:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 가져오기…" + "value" : "그룹 및 태그:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantıları İçe Aktar…" + "value" : "Gruplar ve Etiketler:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập Kết nối…" + "value" : "Nhóm & thẻ:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导入连接…" + "value" : "分组与标签:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯入連線…" + "value" : "群組與標籤:" } } } }, - "Import Data" : { + "gzip executable not found" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터 가져오기" + "value" : "gzip 실행 파일을 찾을 수 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veriyi İçe Aktar" + "value" : "gzip çalıştırılabilir dosyası bulunamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập dữ liệu" + "value" : "Không tìm thấy chương trình gzip" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导入数据" + "value" : "未找到 gzip 可执行文件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯入資料" + "value" : "找不到 gzip 執行檔" } } } }, - "Import Data (⌘⇧I)" : { - "extractionState" : "stale", + "Has unsaved changes" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터 가져오기 (⌘⇧I)" + "value" : "저장하지 않은 변경 사항 있음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veriyi İçe Aktar (⌘⇧I)" + "value" : "Kaydedilmemiş değişiklikler var" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập dữ liệu (⌘⇧I)" + "value" : "Có thay đổi chưa lưu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导入数据 (⌘⇧I)" + "value" : "有未保存的更改" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯入資料 (⌘⇧I)" + "value" : "有未儲存的變更" } } } }, - "Import Data…" : { + "Held back" : { + + }, + "Held Back" : { + + }, + "Help" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터 가져오기…" + "value" : "도움말" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veri İçe Aktar…" + "value" : "Yardım" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập dữ liệu…" + "value" : "Trợ giúp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导入数据…" + "value" : "帮助" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯入資料…" + "value" : "輔助說明" } } } }, - "Import Failed" : { - "extractionState" : "stale", + "Help improve TablePro by sharing anonymous usage statistics (no personal data or queries)." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "가져오기 실패" + "value" : "개인 데이터나 쿼리는 제외하고 익명의 사용 통계를 공유하여 TablePro 개선에 도움을 주십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İçe Aktarma Başarısız" + "value" : "Anonim kullanım istatistiklerini paylaşarak TablePro'nun gelişmesine yardımcı olun (kişisel veri veya sorgu yok)." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập thất bại" + "value" : "Giúp cải thiện TablePro bằng cách chia sẻ thống kê sử dụng ẩn danh (không có dữ liệu cá nhân hay truy vấn nào)." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导入失败" + "value" : "通过分享匿名使用统计数据帮助改进 TablePro(不包含个人数据或查询内容)。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯入失敗" + "value" : "分享匿名使用統計協助改善 TablePro(不含個人資料或查詢內容)。" } } } }, - "Import Format" : { + "Hex bytes" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "가져오기 형식" + "value" : "16진수 바이트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İçe Aktarma Biçimi" + "value" : "Hex bayt" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Định dạng nhập" + "value" : "Byte dạng Hex" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导入格式" + "value" : "十六进制字节" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯入格式" + "value" : "十六進位位元組" } } } }, - "Import Formats" : { + "Hide All" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "가져오기 형식" + "value" : "모두 가리기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İçe Aktarma Biçimleri" + "value" : "Tümünü Gizle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Định dạng nhập" + "value" : "Ẩn tất cả" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导入格式" + "value" : "隐藏全部" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯入格式" + "value" : "全部隱藏" } } } }, - "Import Not Supported" : { + "Hide Column" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "가져오기가 지원되지 않음" + "value" : "열 가리기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İçe Aktarma Desteklenmiyor" + "value" : "Sütunu Gizle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không hỗ trợ nhập" + "value" : "Ẩn cột" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "不支持导入" + "value" : "隐藏列" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "不支援匯入" + "value" : "隱藏欄位" } } } }, - "Import SQL" : { - "extractionState" : "stale", + "Hide Connections" : { + "comment" : "Title of the menu item that hides the sidebar rail.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SQL 가져오기" + "value" : "연결 가리기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SQL İçe Aktar" + "value" : "Bağlantıları Gizle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập SQL" + "value" : "Ẩn kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导入 SQL" + "value" : "隐藏连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯入 SQL" + "value" : "隱藏連線" } } } }, - "Import Successful" : { - "extractionState" : "stale", + "Hide Filter Bar" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "가져오기 성공" + "value" : "필터 막대 가리기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İçe Aktarma Başarılı" + "value" : "Filtre Çubuğunu Gizle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập thành công" + "value" : "Ẩn thanh bộ lọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导入成功" + "value" : "隐藏筛选栏" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯入成功" + "value" : "隱藏篩選列" } } } }, - "Import all fields" : { + "Hide Inspector" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 필드 가져오기" + "value" : "인스펙터 가리기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm alanları içe aktar" + "value" : "Denetçiyi Gizle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập tất cả các trường" + "value" : "Ẩn thanh kiểm tra" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导入所有字段" + "value" : "隐藏检查器" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯入所有欄位" + "value" : "隱藏檢閱器" } } } }, - "Import cancelled by user" : { - "extractionState" : "stale", + "Hide Others" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사용자가 가져오기를 취소했습니다" + "value" : "기타 가리기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İçe aktarma kullanıcı tarafından iptal edildi" + "value" : "Diğerlerini Gizle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Người dùng đã hủy nhập" + "value" : "Ẩn các mục khác" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "用户已取消导入" + "value" : "隐藏其他" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "使用者已取消匯入" + "value" : "隱藏其他" } } } }, - "Import completed" : { + "Hide Query History" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "가져오기 완료" + "value" : "쿼리 기록 가리기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İçe aktarma tamamlandı" + "value" : "Sorgu Geçmişini Gizle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã nhập xong" + "value" : "Ẩn lịch sử truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导入完成" + "value" : "隐藏查询历史" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯入完成" + "value" : "隱藏查詢歷史" } } } }, - "Import completed with errors" : { - "comment" : "Text displayed in an alert when an import has failed with errors.", - "isCommentAutoGenerated" : true, + "Hide Results" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "오류가 발생했지만 가져오기 완료" + "value" : "결과 가리기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İçe aktarma hatalarla tamamlandı" + "value" : "Sonuçları Gizle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập xong nhưng có lỗi" + "value" : "Ẩn kết quả" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导入完成,但有错误" + "value" : "隐藏结果" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯入完成,但有錯誤" + "value" : "隱藏結果" } } } }, - "Import data" : { - "extractionState" : "stale", + "Hide Sidebar" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터 가져오기" + "value" : "사이드바 가리기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Import data" + "value" : "Kenar Çubuğunu Gizle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập dữ liệu" + "value" : "Ẩn thanh bên" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导入数据" + "value" : "隐藏侧边栏" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯入資料" + "value" : "隱藏側邊欄" } } } }, - "Import failed" : { - "comment" : "Title of the alert when an import fails.", - "isCommentAutoGenerated" : true, + "Hide TablePro" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "가져오기 실패" + "value" : "TablePro 가리기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İçe aktarma başarısız" + "value" : "TablePro'yu Gizle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập thất bại" + "value" : "Ẩn TablePro" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导入失败" + "value" : "隐藏 TablePro" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯入失敗" + "value" : "隱藏 TablePro" } } } }, - "Import failed at line %lld: %@" : { - "extractionState" : "stale", + "Hide token" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Import failed at line %1$lld: %2$@" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "줄 %1$lld에서 가져오기에 실패했습니다: %2$@" + "value" : "토큰 가리기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satır %lld'de içe aktarma başarısız: %@" + "value" : "Token gizle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập thất bại tại dòng %1$lld: %2$@" + "value" : "Ẩn token" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在第 %lld 行导入失败: %@" + "value" : "隐藏令牌" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在第 %1$lld 行匯入失敗:%2$@" + "value" : "隱藏權杖" } } } }, - "Import from %@" : { + "Hide Workspace Rail" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@에서 가져오기" + "value" : "워크스페이스 레일 가리기" } }, "tr" : { "stringUnit" : { - "state" : "translated", - "value" : "%@ uygulamasından içe aktar" + "state" : "needs_review", + "value" : "Çalışma Alanı Şeridini Gizle" } }, "vi" : { "stringUnit" : { - "state" : "translated", - "value" : "Nhập từ %@" + "state" : "needs_review", + "value" : "Ẩn thanh không gian làm việc" } }, "zh-Hans" : { "stringUnit" : { - "state" : "translated", - "value" : "从 %@ 导入" + "state" : "needs_review", + "value" : "隐藏工作区栏" } }, "zh-Hant" : { "stringUnit" : { - "state" : "translated", - "value" : "從 %@ 匯入" + "state" : "needs_review", + "value" : "隱藏工作區列" } } } }, - "Import from Codex CLI" : { + "High" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Codex CLI에서 가져오기" + "value" : "높음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Codex CLI'den İçe Aktar" + "value" : "Yüksek" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập từ Codex CLI" + "value" : "Cao" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "从 Codex CLI 导入" + "value" : "高" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "從 Codex CLI 匯入" + "value" : "高" } } } }, - "Import from DDL" : { - "extractionState" : "stale", + "High cost" : { + "comment" : "Accessibility label for a query plan severity of high cost.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "DDL에서 가져오기" + "value" : "높은 비용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "DDL'den İçe Aktar" + "value" : "Yüksek maliyet" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập từ DDL" + "value" : "Chi phí cao" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "从 DDL 导入" + "value" : "高成本" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "從 DDL 匯入" + "value" : "高成本" } } } }, - "Import from Other App" : { + "Higher values create fewer INSERT statements, resulting in smaller files and faster imports" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다른 앱에서 가져오기" + "value" : "값이 클수록 INSERT 문 수가 줄어들어 파일이 작아지고 가져오기가 빨라집니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Diğer Uygulamadan İçe Aktar" + "value" : "Daha yüksek değerler daha az INSERT ifadesi oluşturur, daha küçük dosyalar ve daha hızlı içe aktarma sağlar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập từ ứng dụng khác" + "value" : "Giá trị cao hơn tạo ít câu lệnh INSERT hơn, giúp tệp nhỏ hơn và nhập nhanh hơn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "从其他应用导入" + "value" : "值越大,生成的 INSERT 语句越少,文件更小,导入更快" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "從其他 App 匯入" + "value" : "值越大,產生的 INSERT 陳述式越少,檔案更小且匯入更快" } } } }, - "Import from Other App…" : { + "Highlight current line" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다른 앱에서 가져오기…" + "value" : "현재 줄 강조" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Diğer Uygulamadan İçe Aktar…" + "value" : "Mevcut satırı vurgula" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập từ ứng dụng khác…" + "value" : "Đánh dấu dòng hiện tại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "从其他应用导入…" + "value" : "高亮当前行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "從其他 App 匯入…" + "value" : "標示目前行" } } } }, - "Import from URL" : { + "Highlight current statement" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "URL에서 가져오기" + "value" : "현재 문 강조" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "URL'den İçe Aktar" + "value" : "Mevcut ifadeyi vurgula" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập từ URL" + "value" : "Đánh dấu câu lệnh hiện tại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "从 URL 导入" + "value" : "高亮当前语句" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "從 URL 匯入" + "value" : "標示目前陳述式" } } } }, - "Import from URL…" : { + "History" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "URL에서 가져오기…" + "value" : "기록" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "URL'den İçe Aktar…" + "value" : "Geçmiş" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập từ URL…" + "value" : "Lịch sử" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "从 URL 导入…" + "value" : "历史记录" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "從 URL 匯入…" + "value" : "歷程記錄" } } } }, - "Import into:" : { + "history entries" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "가져올 위치:" + "value" : "기록 항목" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Şuraya içe aktar:" + "value" : "history entries" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập vào:" + "value" : "mục lịch sử" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导入到:" + "value" : "条历史记录" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯入到:" + "value" : "筆歷程記錄" } } } }, - "Import is not supported for %@ connections." : { + "history entry" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 연결에서는 가져오기가 지원되지 않습니다." + "value" : "기록 항목" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ bağlantıları için içe aktarma desteklenmiyor." + "value" : "history entry" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không hỗ trợ nhập cho kết nối %@." + "value" : "mục lịch sử" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 连接不支持导入。" + "value" : "条历史记录" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 連線不支援匯入。" + "value" : "筆歷程記錄" } } } }, - "Import rows into a table" : { + "History Limit:" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블로 행 가져오기" + "value" : "기록 제한:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bir tabloya satır içe aktar" + "value" : "Geçmiş Limiti:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập hàng vào bảng" + "value" : "Giới hạn lịch sử:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将行导入表" + "value" : "历史记录上限:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將列匯入資料表" + "value" : "歷程記錄上限:" } } } }, - "Importance" : { + "History Unavailable" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "중요도" + "value" : "기록을 사용할 수 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Önem" + "value" : "Geçmiş Kullanılamıyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mức quan trọng" + "value" : "Không có lịch sử" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重要程度" + "value" : "历史不可用" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重要程度" + "value" : "記錄無法使用" } } } }, - "Importing passwords from %1$@ reads up to %2$d keychain items. macOS prompts for your login password once per item because each is owned by %1$@. Click Always Allow on each prompt to grant TablePro permanent access. Cancel any prompt to skip the rest." : { + "Homepage" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@에서 암호를 가져오면 최대 %2$d개의 키체인 항목을 읽습니다. 각 항목의 소유 앱은 %1$@입니다. 따라서 macOS는 항목마다 로그인 암호를 묻습니다. 각 메시지에서 '항상 허용'을 클릭하면 TablePro에 영구 접근 권한을 부여합니다. 나머지 항목을 건너뛰려면 아무 메시지에서나 취소를 클릭하십시오." + "value" : "홈페이지" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@ uygulamasından parola içe aktarma en fazla %2$d anahtar zinciri öğesi okur. Her öğe %1$@ uygulamasına ait olduğu için macOS her öğe için bir kez oturum açma parolanızı sorar. TablePro'ya kalıcı erişim vermek için her istemde Her Zaman İzin Ver'e tıklayın. Kalanları atlamak için herhangi bir istemi iptal edin." + "value" : "Ana Sayfa" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập mật khẩu từ %1$@ sẽ đọc tối đa %2$d mục trong keychain. macOS hỏi mật khẩu đăng nhập của bạn một lần cho mỗi mục vì mỗi mục thuộc sở hữu của %1$@. Bấm Luôn cho phép ở mỗi lời nhắc để cấp cho TablePro quyền truy cập vĩnh viễn. Hủy bất kỳ lời nhắc nào để bỏ qua phần còn lại." + "value" : "Trang chủ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "从 %1$@ 导入密码最多会读取 %2$d 个钥匙串项。由于每一项都归 %1$@ 所有,macOS 会针对每一项要求输入一次登录密码。请在每个提示中点按“始终允许”以授予 TablePro 永久访问权限。取消任一提示将跳过其余项。" + "value" : "主页" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "從 %1$@ 匯入密碼最多會讀取 %2$d 個鑰匙圈項目。由於每一項都歸 %1$@ 所有,macOS 會針對每一項要求輸入一次登入密碼。請在每個提示中點按「總是允許」以授予 TablePro 永久存取權限。取消任一提示將略過其餘項目。" + "value" : "首頁" } } } }, - "Importing…" : { + "Host" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "가져오는 중…" + "value" : "호스트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İçe aktarılıyor…" + "value" : "Sunucu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang nhập…" + "value" : "Máy chủ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导入中…" + "value" : "主机" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯入中…" + "value" : "主機" } } } }, - "Imports" : { + "Host and port assumed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터 가져오기" + "value" : "호스트와 포트로 간주됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İçe Aktarmalar" + "value" : "Sunucu ve port varsayıldı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập dữ liệu" + "value" : "Máy chủ và cổng được suy đoán" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导入" + "value" : "主机和端口为推测值" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯入" + "value" : "主機與連接埠為推測值" } } } }, - "Import…" : { + "Host looks like a socket path" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "가져오기…" + "value" : "호스트가 소켓 경로인 것 같습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İçe Aktar…" + "value" : "Sunucu adı soket yoluna benziyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập…" + "value" : "Máy chủ trông giống đường dẫn socket" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导入…" + "value" : "主机看起来像 socket 路径" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯入…" + "value" : "主機看起來像 socket 路徑" } } } }, - "In-memory data store and cache" : { + "Host scope, for engines that use one" : { + + }, + "Host scope, where the engine has one" : { + + }, + "Host:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "인메모리 데이터 저장소 및 캐시" + "value" : "호스트:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bellek içi veri deposu ve önbellek" + "value" : "Sunucu:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kho dữ liệu và cache trong bộ nhớ" + "value" : "Máy chủ:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "内存数据存储与缓存" + "value" : "主机:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "記憶體內資料儲存與快取" + "value" : "主機:" } } } }, - "Inactive" : { + "Host: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "비활성" + "value" : "호스트: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Etkin Değil" + "value" : "Sunucu: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không hoạt động" + "value" : "Máy chủ: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "非活跃" + "value" : "主机:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "非作用中" + "value" : "主機:%@" } } } }, - "Include Credentials" : { + "Hostname" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "자격 증명 포함" + "value" : "호스트 이름" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kimlik Bilgilerini Dahil Et" + "value" : "Sunucu adı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bao gồm Thông tin Đăng nhập" + "value" : "Tên máy chủ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "包含凭据" + "value" : "主机名" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "包含認證資訊" + "value" : "主機名稱" } } } }, - "Include NULL values" : { + "hostname:%lld" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "NULL 값 포함" + "value" : "hostname:%lld" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "NULL değerleri dahil et" + "value" : "hostname:%lld" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bao gồm giá trị NULL" + "value" : "hostname:%lld" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "包含 NULL 值" + "value" : "hostname:%lld" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "包含 NULL 值" + "value" : "hostname:%lld" } } } }, - "Include approximate row counts (default false)" : { + "Hosts" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "대략적인 행 수 포함(기본값: false)" + "value" : "호스트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yaklaşık satır sayılarını dahil et (varsayılan false)" + "value" : "Sunucular" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bao gồm số hàng ước tính (mặc định false)" + "value" : "Host" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "包含近似行数(默认 false)" + "value" : "主机" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "包含近似列數(預設為 false)" + "value" : "主機" } } } }, - "Include column headers" : { - "extractionState" : "stale", + "Hover" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열 머리글 포함" + "value" : "호버" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sütun başlıklarını dahil et" + "value" : "Üzerine Gelme" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bao gồm tiêu đề cột" + "value" : "Di chuột" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "包含列标题" + "value" : "悬停" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "包含欄位標題" + "value" : "停留" } } } }, - "Include current query" : { + "How filters combine (default and)" : { + + }, + "How long it has run" : { + + }, + "How many filters were applied" : { + + }, + "How many statements to include, 1 to 500. Defaults to 50" : { + + }, + "Huge" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "현재 쿼리 포함" + "value" : "아주 큼" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Mevcut sorguyu dahil et" + "value" : "Çok Büyük" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bao gồm truy vấn hiện tại" + "value" : "Rất lớn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "包含当前查询" + "value" : "超大" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "包含目前查詢" + "value" : "超大" } } } }, - "Include database schema" : { + "Human label" : { + + }, + "iCloud account is not available. Sign in to iCloud in System Settings." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 스키마 포함" + "value" : "iCloud 계정을 사용할 수 없습니다. 시스템 설정에서 iCloud에 로그인하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı şemasını dahil et" + "value" : "iCloud hesabı kullanılamıyor. Sistem Ayarları'ndan iCloud'a giriş yapın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bao gồm schema cơ sở dữ liệu" + "value" : "Tài khoản iCloud không khả dụng. Đăng nhập iCloud trong Cài đặt hệ thống." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "包含数据库 Schema" + "value" : "iCloud 账户不可用。请在系统设置中登录 iCloud。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "包含資料庫綱要" + "value" : "iCloud 帳號無法使用。請在「系統設定」中登入 iCloud。" } } } }, - "Include diagnostics" : { - "extractionState" : "stale", + "iCloud Connected" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "진단 정보 포함" + "value" : "iCloud 연결됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tanılamaları dahil et" + "value" : "iCloud Bağlı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đính kèm thông tin chẩn đoán" + "value" : "Đã kết nối iCloud" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "包含诊断信息" + "value" : "iCloud 已连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "包含診斷資訊" + "value" : "iCloud 已連線" } } } }, - "Include in iCloud Sync" : { + "iCloud rejected %d change(s). They stay on this device and will retry: %@" : { + "extractionState" : "stale", "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "iCloud rejected %1$d change(s). They stay on this device and will retry: %2$@" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud 동기화에 포함" + "value" : "iCloud에서 변경 사항 %d개를 거부했습니다. 변경 사항은 이 기기에 유지되며 다시 시도됩니다: %@" + } + } + } + }, + "iCloud server error: %@" : { + "extractionState" : "stale", + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "iCloud 서버 오류: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud Eşitlemesine Dahil Et" + "value" : "iCloud sunucu hatası: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đưa vào đồng bộ iCloud" + "value" : "Lỗi máy chủ iCloud: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "包含在 iCloud 同步中" + "value" : "iCloud 服务器错误:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "納入 iCloud 同步" + "value" : "iCloud 伺服器錯誤:%@" } } } }, - "Include passwords" : { + "iCloud storage is full. Free up space in iCloud and try again." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "암호 포함" + "value" : "iCloud 저장 공간이 가득 찼습니다. iCloud에서 공간을 확보한 후 다시 시도하십시오." + } + } + } + }, + "iCloud storage is full. Free up space or reduce the history sync limit." : { + "extractionState" : "stale", + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "iCloud 저장 공간이 가득 찼습니다. 공간을 확보하거나 기록 동기화 제한을 줄이십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Parolaları dahil et" + "value" : "iCloud storage is full. Free up space or reduce the history sync limit." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bao gồm mật khẩu" + "value" : "Bộ nhớ iCloud đã đầy. Giải phóng dung lượng hoặc giảm giới hạn đồng bộ lịch sử." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "包含密码" + "value" : "iCloud 储存空间已满。请释放空间或减少历史记录同步上限。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "包含密碼" + "value" : "iCloud 儲存空間已滿。請釋出空間或降低歷程記錄同步上限。" } } } }, - "Include query results" : { + "iCloud Sync" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 결과 포함" + "value" : "iCloud 동기화" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgu sonuçlarını dahil et" + "value" : "iCloud Eşitlemesi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bao gồm kết quả truy vấn" + "value" : "Đồng bộ iCloud" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "包含查询结果" + "value" : "iCloud 同步" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "包含查詢結果" + "value" : "iCloud 同步" } } } }, - "Include this filter when applying" : { + "iCloud Sync is active" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "적용 시 이 필터 포함" + "value" : "iCloud 동기화가 활성화됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Uygularken bu filtreyi dahil et" + "value" : "iCloud Eşitlemesi etkin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bao gồm bộ lọc này khi áp dụng" + "value" : "Đồng bộ iCloud đang hoạt động" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "应用时包含此筛选" + "value" : "iCloud 同步已启用" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "套用時包含這個篩選條件" + "value" : "iCloud 同步已啟用" } } } }, - "Incompatible plugin version" : { - "extractionState" : "stale", + "iCloud Sync:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "호환되지 않는 플러그인 버전" + "value" : "iCloud 동기화:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Uyumsuz eklenti sürümü" + "value" : "iCloud Eşitlemesi:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phiên bản plugin không tương thích" + "value" : "Đồng bộ iCloud:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "插件版本不兼容" + "value" : "iCloud 同步:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "外掛版本不相容" + "value" : "iCloud 同步:" } } } }, - "Incorrect passphrase" : { + "Icon Sizes" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "암호가 올바르지 않습니다" + "value" : "아이콘 크기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yanlış parola" + "value" : "Simge Boyutları" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cụm mật khẩu không đúng" + "value" : "Kích thước biểu tượng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "密码短语不正确" + "value" : "图标大小" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "密碼短語不正確" + "value" : "圖示大小" } } } }, - "Increase Text Size" : { + "Icons" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "텍스트 크기 늘리기" + "value" : "아이콘" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Metin Boyutunu Büyüt" + "value" : "Simgeler" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tăng cỡ chữ" + "value" : "Biểu tượng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "增大文字大小" + "value" : "图标" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "增大文字大小" + "value" : "圖像" } } } }, - "Increase font size" : { + "Identical" : { + + }, + "Identifier case" : { + + }, + "Identity" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "글꼴 크기 늘리기" + "value" : "식별 정보" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yazı boyutunu büyüt" + "value" : "Kimlik" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tăng cỡ chữ" + "value" : "Danh tính" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "增大字号" + "value" : "身份" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "增大字型大小" + "value" : "身分" } } } }, - "Indent" : { + "If macOS asks for your login password, click Always Allow on each prompt." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "들여쓰기" + "value" : "macOS가 로그인 암호를 요청하면 각 메시지에서 '항상 허용'을 클릭하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Girintile" + "value" : "macOS oturum açma parolanızı sorarsa her istemde Her Zaman İzin Ver'e tıklayın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thụt lề" + "value" : "Nếu macOS hỏi mật khẩu đăng nhập của bạn, hãy bấm Luôn cho phép ở mỗi lời nhắc." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "缩进" + "value" : "如果 macOS 要求输入登录密码,请在每个提示中点按“始终允许”。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "縮排" + "value" : "如果 macOS 要求輸入登入密碼,請在每個提示中點按「總是允許」。" } } } }, - "Index Size" : { + "If the SSH server asks for a verification code, TablePro prompts you for it when you connect." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "인덱스 크기" + "value" : "SSH 서버에서 확인 코드를 요청하면 연결할 때 TablePro가 코드 입력을 요청합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İndeks Boyutu" + "value" : "SSH sunucusu bir doğrulama kodu isterse, TablePro bağlanırken bunu size sorar." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kích thước chỉ mục" + "value" : "Nếu máy chủ SSH yêu cầu mã xác minh, TablePro sẽ hỏi bạn khi kết nối." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "索引大小" + "value" : "如果 SSH 服务器要求验证码,TablePro 会在连接时提示你输入。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "索引大小" + "value" : "如果 SSH 伺服器要求驗證碼,TablePro 會在連線時提示你輸入。" } } } }, - "Index name" : { - "extractionState" : "stale", + "Ignore Case" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "인덱스 이름" + "value" : "대소문자 무시" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İndeks adı" + "value" : "Büyük/Küçük Harf Duyarsız" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên chỉ mục" + "value" : "Bỏ qua hoa thường" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "索引名称" + "value" : "忽略大小写" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "索引名稱" + "value" : "忽略大小寫" } } } }, - "Indexes" : { + "Ignore foreign key checks" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "인덱스" + "value" : "외래 키 검사 무시" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İndeksler" + "value" : "Yabancı anahtar kontrollerini yoksay" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chỉ mục" + "value" : "Bỏ qua kiểm tra khóa ngoại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "索引" + "value" : "忽略外键检查" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "索引" + "value" : "忽略外鍵檢查" } } } }, - "Info" : { + "Import" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "정보" + "value" : "가져오기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bilgi" + "value" : "İçe Aktar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thông tin" + "value" : "Nhập" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "信息" + "value" : "导入" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資訊" + "value" : "匯入" } } } }, - "Inherited automatically." : { + "Import %@…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "자동으로 상속됨." + "value" : "%@ 가져오기…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Otomatik olarak devralındı." + "value" : "%@ İçe Aktar…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Được kế thừa tự động." + "value" : "Nhập %@…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "自动继承。" + "value" : "导入 %@…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "自動繼承。" + "value" : "匯入 %@…" } } } }, - "Inherited from %@" : { + "Import all fields" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@에서 상속됨" + "value" : "모든 필드 가져오기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ kaynağından devralındı" + "value" : "Tüm alanları içe aktar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kế thừa từ %@" + "value" : "Nhập tất cả các trường" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "继承自 %@" + "value" : "导入所有字段" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "繼承自 %@" + "value" : "匯入所有欄位" } } } }, - "Inline Configuration" : { + "Import cancelled by user" : { + "extractionState" : "stale", "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Inline Configuration" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "인라인 구성" + "value" : "사용자가 가져오기를 취소했습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satır İçi Yapılandırma" + "value" : "İçe aktarma kullanıcı tarafından iptal edildi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cấu hình nội tuyến" + "value" : "Người dùng đã hủy nhập" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "内联配置" + "value" : "用户已取消导入" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "行內設定" + "value" : "使用者已取消匯入" } } } }, - "Inline SQL suggestions appear as you type. Press Tab to accept, Escape to dismiss." : { + "Import Complete" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "입력하는 동안 인라인 SQL 제안이 표시됩니다. Tab 키를 누르면 수락하고 Escape 키를 누르면 닫습니다." + "value" : "가져오기 완료" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satır içi SQL önerileri yazarken görünür. Kabul etmek için Tab, kapatmak için Escape tuşuna basın." + "value" : "İçe Aktarma Tamamlandı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gợi ý SQL nội tuyến hiện ra khi bạn gõ. Nhấn Tab để chấp nhận, Esc để bỏ qua." + "value" : "Nhập Hoàn tất" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "内联 SQL 建议会在输入时出现。按 Tab 接受,按 Esc 取消。" + "value" : "导入完成" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "行內 SQL 建議會在輸入時出現。按 Tab 接受,按 Esc 關閉。" + "value" : "匯入完成" } } } }, - "Inline Suggestions" : { + "Import completed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "인라인 제안" + "value" : "가져오기 완료" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satır İçi Öneriler" + "value" : "İçe aktarma tamamlandı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gợi ý nội tuyến" + "value" : "Đã nhập xong" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "行内建议" + "value" : "导入完成" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "行內建議" + "value" : "匯入完成" } } } }, - "Insert" : { + "Import completed with errors" : { + "comment" : "Text displayed in an alert when an import has failed with errors.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "삽입" + "value" : "오류가 발생했지만 가져오기 완료" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ekle" + "value" : "İçe aktarma hatalarla tamamlandı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chèn" + "value" : "Nhập xong nhưng có lỗi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "插入" + "value" : "导入完成,但有错误" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "插入" + "value" : "匯入完成,但有錯誤" } } } }, - "Insert Column" : { + "Import Completed with Errors" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열 삽입" + "value" : "오류가 발생했지만 가져오기 완료" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sütun Ekle" + "value" : "İçe Aktarma Hatalarla Tamamlandı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chèn cột" + "value" : "Nhập hoàn tất với lỗi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "插入列" + "value" : "导入完成但有错误" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "插入欄位" + "value" : "匯入完成但有錯誤" } } } }, - "Insert Column After" : { + "Import Connection from Link" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "뒤에 열 삽입" + "value" : "링크에서 연결 가져오기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sonrasına Sütun Ekle" + "value" : "Bağlantıyı Linkten İçe Aktar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chèn cột sau" + "value" : "Nhập kết nối từ liên kết" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在后面插入列" + "value" : "从链接导入连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在後方插入欄位" + "value" : "從連結匯入連線" } } } }, - "Insert Column Before" : { - "extractionState" : "stale", + "Import Connections" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "앞에 열 삽입" + "value" : "연결 가져오기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Öncesine Sütun Ekle" + "value" : "Bağlantıları İçe Aktar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chèn cột trước" + "value" : "Nhập Kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在前面插入列" + "value" : "导入连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在前方插入欄位" + "value" : "匯入連線" } } } }, - "Insert Column Left" : { + "Import Connections…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "왼쪽에 열 삽입" + "value" : "연결 가져오기…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sola Sütun Ekle" + "value" : "Bağlantıları İçe Aktar…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chèn cột bên trái" + "value" : "Nhập Kết nối…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在左侧插入列" + "value" : "导入连接…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在左方插入欄位" + "value" : "匯入連線…" } } } }, - "Insert Column Right" : { + "Import data" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "오른쪽에 열 삽입" + "value" : "데이터 가져오기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sağa Sütun Ekle" + "value" : "Import data" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chèn cột bên phải" + "value" : "Nhập dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在右侧插入列" + "value" : "导入数据" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在右方插入欄位" + "value" : "匯入資料" } } } }, - "Insert Row" : { + "Import Data" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "행 삽입" + "value" : "데이터 가져오기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satır Ekle" + "value" : "Veriyi İçe Aktar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thêm dòng" + "value" : "Nhập dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "插入行" + "value" : "导入数据" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "插入列" + "value" : "匯入資料" } } } }, - "Insert Row Above" : { + "Import Data (⌘⇧I)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "위에 행 삽입" + "value" : "데이터 가져오기 (⌘⇧I)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Üste Satır Ekle" + "value" : "Veriyi İçe Aktar (⌘⇧I)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chèn dòng phía trên" + "value" : "Nhập dữ liệu (⌘⇧I)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在上方插入行" + "value" : "导入数据 (⌘⇧I)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在上方插入列" + "value" : "匯入資料 (⌘⇧I)" } } } }, - "Insert Row Below" : { + "Import Data…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "아래에 행 삽입" + "value" : "데이터 가져오기…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Alta Satır Ekle" + "value" : "Veri İçe Aktar…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chèn dòng phía dưới" + "value" : "Nhập dữ liệu…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在下方插入行" + "value" : "导入数据…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在下方插入列" + "value" : "匯入資料…" } } } }, - "Insert Rows" : { + "Import failed" : { + "comment" : "Title of the alert when an import fails.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "행 삽입" + "value" : "가져오기 실패" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satır Ekle" + "value" : "İçe aktarma başarısız" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thêm dòng" + "value" : "Nhập thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "插入行" + "value" : "导入失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "插入列" + "value" : "匯入失敗" } } } }, - "Insert in Editor" : { + "Import Failed" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "편집기에 삽입" + "value" : "가져오기 실패" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Düzenleyiciye Ekle" + "value" : "İçe Aktarma Başarısız" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chèn vào trình soạn thảo" + "value" : "Nhập thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "插入到编辑器" + "value" : "导入失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "插入到編輯器" + "value" : "匯入失敗" } } } }, - "Insert into editor" : { + "Import failed at line %lld: %@" : { + "extractionState" : "stale", "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Import failed at line %1$lld: %2$@" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "편집기에 삽입" + "value" : "줄 %1$lld에서 가져오기에 실패했습니다: %2$@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Düzenleyiciye ekle" + "value" : "Satır %lld'de içe aktarma başarısız: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chèn vào trình soạn thảo" + "value" : "Nhập thất bại tại dòng %1$lld: %2$@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "插入到编辑器" + "value" : "在第 %lld 行导入失败: %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "插入到編輯器" + "value" : "在第 %1$lld 行匯入失敗:%2$@" } } } }, - "Inserted" : { + "Import finished" : { + + }, + "Import Format" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "삽입됨" + "value" : "가져오기 형식" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklendi" + "value" : "İçe Aktarma Biçimi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã chèn" + "value" : "Định dạng nhập" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已插入" + "value" : "导入格式" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已插入" + "value" : "匯入格式" } } } }, - "Inspector" : { + "Import Formats" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "인스펙터" + "value" : "가져오기 형식" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Denetçi" + "value" : "İçe Aktarma Biçimleri" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thanh kiểm tra" + "value" : "Định dạng nhập" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "检查器" + "value" : "导入格式" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "檢閱器" + "value" : "匯入格式" } } } }, - "Install" : { + "Import from %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "설치" + "value" : "%@에서 가져오기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yükle" + "value" : "%@ uygulamasından içe aktar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cài đặt" + "value" : "Nhập từ %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "安装" + "value" : "从 %@ 导入" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "安裝" + "value" : "從 %@ 匯入" } } } }, - "Install Plugin" : { + "Import from Codex CLI" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플러그인 설치" + "value" : "Codex CLI에서 가져오기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklentiyi Yükle" + "value" : "Codex CLI'den İçe Aktar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cài đặt Plugin" + "value" : "Nhập từ Codex CLI" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "安装插件" + "value" : "从 Codex CLI 导入" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "安裝外掛" + "value" : "從 Codex CLI 匯入" } } } }, - "Install Plugin…" : { + "Import from DDL" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플러그인 설치…" + "value" : "DDL에서 가져오기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklenti Yükle…" + "value" : "DDL'den İçe Aktar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cài plugin…" + "value" : "Nhập từ DDL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "安装插件…" + "value" : "从 DDL 导入" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "安裝外掛…" + "value" : "從 DDL 匯入" } } } }, - "Install Theme" : { + "Import from Other App" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테마 설치" + "value" : "다른 앱에서 가져오기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Temayı Yükle" + "value" : "Diğer Uygulamadan İçe Aktar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cài đặt chủ đề" + "value" : "Nhập từ ứng dụng khác" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "安装主题" + "value" : "从其他应用导入" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "安裝主題" + "value" : "從其他 App 匯入" } } } }, - "Install from File..." : { - "extractionState" : "stale", + "Import from Other App…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "파일에서 설치..." + "value" : "다른 앱에서 가져오기…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dosyadan Yükle..." + "value" : "Diğer Uygulamadan İçe Aktar…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cài đặt từ tập tin..." + "value" : "Nhập từ ứng dụng khác…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "从文件安装..." + "value" : "从其他应用导入…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "從檔案安裝…" + "value" : "從其他 App 匯入…" } } } }, - "Install plugin from file" : { + "Import from URL" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "파일에서 플러그인 설치" + "value" : "URL에서 가져오기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklentiyi dosyadan yükle" + "value" : "URL'den İçe Aktar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cài đặt plugin từ tệp" + "value" : "Nhập từ URL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "从文件安装插件" + "value" : "从 URL 导入" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "從檔案安裝外掛" + "value" : "從 URL 匯入" } } } }, - "Install the CLI client for %@" : { - "extractionState" : "stale", + "Import from URL…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@용 CLI 클라이언트 설치" + "value" : "URL에서 가져오기…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ için CLI istemcisini yükleyin" + "value" : "URL'den İçe Aktar…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cài đặt CLI client cho %@" + "value" : "Nhập từ URL…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "安装 %@ 的 CLI 客户端" + "value" : "从 URL 导入…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "安裝 %@ 的 CLI 用戶端" + "value" : "從 URL 匯入…" } } } }, - "Installation Failed" : { + "Import into:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "설치 실패" + "value" : "가져올 위치:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yükleme Başarısız" + "value" : "Şuraya içe aktar:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cài đặt thất bại" + "value" : "Nhập vào:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "安装失败" + "value" : "导入到:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "安裝失敗" + "value" : "匯入到:" } } } }, - "Installed" : { + "Import is not supported for %@ connections." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "설치됨" + "value" : "%@ 연결에서는 가져오기가 지원되지 않습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yüklendi" + "value" : "%@ bağlantıları için içe aktarma desteklenmiyor." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã cài đặt" + "value" : "Không hỗ trợ nhập cho kết nối %@." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已安装" + "value" : "%@ 连接不支持导入。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已安裝" + "value" : "%@ 連線不支援匯入。" } } } }, - "Installed Plugins" : { - "extractionState" : "stale", + "Import Not Supported" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "설치된 플러그인" + "value" : "가져오기가 지원되지 않음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yüklü Eklentiler" + "value" : "İçe Aktarma Desteklenmiyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Plugin đã cài đặt" + "value" : "Không hỗ trợ nhập" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已安装的插件" + "value" : "不支持导入" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已安裝的外掛" + "value" : "不支援匯入" } } } }, - "Installing…" : { - "extractionState" : "stale", + "Import rows into a table" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "설치 중…" + "value" : "테이블로 행 가져오기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yükleniyor…" + "value" : "Bir tabloya satır içe aktar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang cài đặt…" + "value" : "Nhập hàng vào bảng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在安装…" + "value" : "将行导入表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "安裝中…" + "value" : "將列匯入資料表" } } } }, - "Instance connection name" : { + "Import SQL" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "인스턴스 연결 이름" + "value" : "SQL 가져오기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Örnek bağlantı adı" + "value" : "SQL İçe Aktar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên kết nối instance" + "value" : "Nhập SQL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "实例连接名称" + "value" : "导入 SQL" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "執行個體連線名稱" + "value" : "匯入 SQL" } } } }, - "Instance connection name must be project:region:instance" : { + "Import Successful" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "인스턴스 연결 이름은 project:region:instance 형식이어야 합니다" + "value" : "가져오기 성공" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Örnek bağlantı adı project:region:instance biçiminde olmalı" + "value" : "İçe Aktarma Başarılı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên kết nối instance phải theo dạng project:region:instance" + "value" : "Nhập thành công" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "实例连接名称必须为 project:region:instance" + "value" : "导入成功" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "執行個體連線名稱必須為 project:region:instance" + "value" : "匯入成功" } } } }, - "Integer" : { + "Import…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "정수" + "value" : "가져오기…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tamsayı" + "value" : "İçe Aktar…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Số nguyên" + "value" : "Nhập…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "整数" + "value" : "导入…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "整數" + "value" : "匯入…" } } } }, - "Integrations" : { + "Importance" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "통합" + "value" : "중요도" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Entegrasyonlar" + "value" : "Önem" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tích hợp" + "value" : "Mức quan trọng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "集成" + "value" : "重要程度" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "整合" + "value" : "重要程度" } } } }, - "Integrations Activity" : { + "Importing passwords from %1$@ reads up to %2$d keychain items. macOS prompts for your login password once per item because each is owned by %1$@. Click Always Allow on each prompt to grant TablePro permanent access. Cancel any prompt to skip the rest." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "통합 활동" + "value" : "%1$@에서 암호를 가져오면 최대 %2$d개의 키체인 항목을 읽습니다. 각 항목의 소유 앱은 %1$@입니다. 따라서 macOS는 항목마다 로그인 암호를 묻습니다. 각 메시지에서 '항상 허용'을 클릭하면 TablePro에 영구 접근 권한을 부여합니다. 나머지 항목을 건너뛰려면 아무 메시지에서나 취소를 클릭하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Entegrasyon Etkinliği" + "value" : "%1$@ uygulamasından parola içe aktarma en fazla %2$d anahtar zinciri öğesi okur. Her öğe %1$@ uygulamasına ait olduğu için macOS her öğe için bir kez oturum açma parolanızı sorar. TablePro'ya kalıcı erişim vermek için her istemde Her Zaman İzin Ver'e tıklayın. Kalanları atlamak için herhangi bir istemi iptal edin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hoạt động tích hợp" + "value" : "Nhập mật khẩu từ %1$@ sẽ đọc tối đa %2$d mục trong keychain. macOS hỏi mật khẩu đăng nhập của bạn một lần cho mỗi mục vì mỗi mục thuộc sở hữu của %1$@. Bấm Luôn cho phép ở mỗi lời nhắc để cấp cho TablePro quyền truy cập vĩnh viễn. Hủy bất kỳ lời nhắc nào để bỏ qua phần còn lại." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "集成活动" + "value" : "从 %1$@ 导入密码最多会读取 %2$d 个钥匙串项。由于每一项都归 %1$@ 所有,macOS 会针对每一项要求输入一次登录密码。请在每个提示中点按“始终允许”以授予 TablePro 永久访问权限。取消任一提示将跳过其余项。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "整合活動" + "value" : "從 %1$@ 匯入密碼最多會讀取 %2$d 個鑰匙圈項目。由於每一項都歸 %1$@ 所有,macOS 會針對每一項要求輸入一次登入密碼。請在每個提示中點按「總是允許」以授予 TablePro 永久存取權限。取消任一提示將略過其餘項目。" } } } }, - "Integrations: Failed" : { - "extractionState" : "stale", + "Importing…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "통합: 실패" + "value" : "가져오는 중…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Entegrasyonlar: Başarısız" + "value" : "İçe aktarılıyor…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tích hợp: Thất bại" + "value" : "Đang nhập…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "集成:失败" + "value" : "导入中…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "整合:失敗" + "value" : "匯入中…" } } } }, - "Integrations: Running" : { - "extractionState" : "stale", + "Imports" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "통합: 실행 중" + "value" : "데이터 가져오기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Entegrasyonlar: Çalışıyor" + "value" : "İçe Aktarmalar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tích hợp: Đang chạy" + "value" : "Nhập dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "集成:运行中" + "value" : "导入" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "整合:執行中" + "value" : "匯入" } } } }, - "Integrations: Running (%d clients)" : { - "extractionState" : "stale", + "IN Clause" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "통합: 실행 중(클라이언트 %d개)" + "value" : "IN 절" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Entegrasyonlar: Çalışıyor (%d istemci)" + "value" : "IN İfadesi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tích hợp: Đang chạy (%d client)" + "value" : "Mệnh đề IN" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "集成:运行中(%d 个客户端)" + "value" : "IN 子句" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "整合:執行中(%d 個用戶端)" + "value" : "IN 子句" } } } }, - "Integrations: Starting..." : { - "extractionState" : "stale", + "in list" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "통합: 시작 중..." + "value" : "목록에 있음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Entegrasyonlar: Başlatılıyor..." + "value" : "listede" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tích hợp: Đang khởi động..." + "value" : "trong danh sách" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "集成:启动中…" + "value" : "在列表中" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "整合:啟動中…" + "value" : "在清單中" } } } }, - "Integrations: Stopped" : { - "extractionState" : "stale", + "In-memory data store and cache" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "통합: 중지됨" + "value" : "인메모리 데이터 저장소 및 캐시" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Entegrasyonlar: Durduruldu" + "value" : "Bellek içi veri deposu ve önbellek" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tích hợp: Đã dừng" + "value" : "Kho dữ liệu và cache trong bộ nhớ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "集成:已停止" + "value" : "内存数据存储与缓存" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "整合:已停止" + "value" : "記憶體內資料儲存與快取" } } } }, - "Integrations…" : { + "Inactive" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "통합…" + "value" : "비활성" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Entegrasyonlar…" + "value" : "Etkin Değil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tích hợp…" + "value" : "Không hoạt động" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "集成…" + "value" : "非活跃" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "整合…" + "value" : "非作用中" } } } }, - "Interactive Data Grid" : { + "Include" : { + + }, + "Include approximate row counts (default false)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "대화형 데이터 그리드" + "value" : "대략적인 행 수 포함(기본값: false)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Etkileşimli Veri Tablosu" + "value" : "Yaklaşık satır sayılarını dahil et (varsayılan false)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lưới dữ liệu tương tác" + "value" : "Bao gồm số hàng ước tính (mặc định false)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "交互式数据网格" + "value" : "包含近似行数(默认 false)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "互動式資料格線" + "value" : "包含近似列數(預設為 false)" } } } }, - "Interface" : { + "Include at least one object, then generate the script." : { + + }, + "Include column headers" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "인터페이스" + "value" : "열 머리글 포함" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Arayüz" + "value" : "Sütun başlıklarını dahil et" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giao diện" + "value" : "Bao gồm tiêu đề cột" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "界面" + "value" : "包含列标题" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "介面" + "value" : "包含欄位標題" } } } }, - "Invalid JSON" : { + "Include Credentials" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "잘못된 JSON" + "value" : "자격 증명 포함" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geçersiz JSON" + "value" : "Kimlik Bilgilerini Dahil Et" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "JSON không hợp lệ" + "value" : "Bao gồm Thông tin Đăng nhập" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无效的 JSON" + "value" : "包含凭据" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "JSON 無效" + "value" : "包含認證資訊" } } } }, - "Invalid JSON: %@" : { - "extractionState" : "stale", + "Include current query" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "잘못된 JSON: %@" + "value" : "현재 쿼리 포함" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geçersiz JSON: %@" + "value" : "Mevcut sorguyu dahil et" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "JSON không hợp lệ: %@" + "value" : "Bao gồm truy vấn hiện tại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无效的 JSON: %@" + "value" : "包含当前查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "JSON 無效:%@" + "value" : "包含目前查詢" } } } }, - "Invalid LSP response" : { + "Include database schema" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "잘못된 LSP 응답" + "value" : "데이터베이스 스키마 포함" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geçersiz LSP yanıtı" + "value" : "Veritabanı şemasını dahil et" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phản hồi LSP không hợp lệ" + "value" : "Bao gồm schema cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无效的 LSP 响应" + "value" : "包含数据库 Schema" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "LSP 回應無效" + "value" : "包含資料庫綱要" } } } }, - "Invalid MongoDB syntax: %@" : { + "Include diagnostics" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "잘못된 MongoDB 구문: %@" + "value" : "진단 정보 포함" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geçersiz MongoDB sözdizimi: %@" + "value" : "Tanılamaları dahil et" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cú pháp MongoDB không hợp lệ: %@" + "value" : "Đính kèm thông tin chẩn đoán" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无效的 MongoDB 语法: %@" + "value" : "包含诊断信息" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "MongoDB 語法無效:%@" + "value" : "包含診斷資訊" } } } }, - "Invalid PHP Serialized Value" : { + "Include every object in this group" : { + + }, + "Include Every Table" : { + + }, + "Include in iCloud Sync" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "잘못된 PHP 직렬화 값" + "value" : "iCloud 동기화에 포함" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geçersiz PHP Serileştirilmiş Değer" + "value" : "iCloud Eşitlemesine Dahil Et" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giá trị PHP serialized không hợp lệ" + "value" : "Đưa vào đồng bộ iCloud" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无效的 PHP 序列化值" + "value" : "包含在 iCloud 同步中" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無效的 PHP 序列化值" + "value" : "納入 iCloud 同步" } } } }, - "Invalid UUID: %@" : { + "Include NULL values" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "잘못된 UUID: %@" + "value" : "NULL 값 포함" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geçersiz UUID: %@" + "value" : "NULL değerleri dahil et" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "UUID không hợp lệ: %@" + "value" : "Bao gồm giá trị NULL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无效的 UUID:%@" + "value" : "包含 NULL 值" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "UUID 無效:%@" + "value" : "包含 NULL 值" } } } }, - "Invalid argument: %@" : { - "extractionState" : "stale", + "Include passwords" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "잘못된 인수: %@" + "value" : "암호 포함" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geçersiz bağımsız değişken: %@" + "value" : "Parolaları dahil et" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đối số không hợp lệ: %@" + "value" : "Bao gồm mật khẩu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无效的参数: %@" + "value" : "包含密码" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無效的引數:%@" + "value" : "包含密碼" } } } }, - "Invalid column indices for reorder operation" : { + "Include query results" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "재정렬 작업의 열 인덱스가 올바르지 않습니다" + "value" : "쿼리 결과 포함" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeniden sıralama işlemi için geçersiz sütun dizinleri" + "value" : "Sorgu sonuçlarını dahil et" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chỉ số cột không hợp lệ cho thao tác sắp xếp lại" + "value" : "Bao gồm kết quả truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重排序操作的列索引无效" + "value" : "包含查询结果" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重新排序操作的欄位索引無效" + "value" : "包含查詢結果" } } } }, - "Invalid connection URL format" : { + "Include this filter when applying" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "잘못된 연결 URL 형식" + "value" : "적용 시 이 필터 포함" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geçersiz bağlantı URL biçimi" + "value" : "Uygularken bu filtreyi dahil et" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Định dạng URL kết nối không hợp lệ" + "value" : "Bao gồm bộ lọc này khi áp dụng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接 URL 格式无效" + "value" : "应用时包含此筛选" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線 URL 格式無效" + "value" : "套用時包含這個篩選條件" } } } }, - "Invalid data format: %@" : { + "Include this object" : { + + }, + "Include this row" : { + + }, + "Include this table and compare again to see its rows." : { + + }, + "Include this table in the comparison" : { + + }, + "Incompatible plugin version" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "잘못된 데이터 형식: %@" + "value" : "호환되지 않는 플러그인 버전" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geçersiz veri biçimi: %@" + "value" : "Uyumsuz eklenti sürümü" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Định dạng dữ liệu không hợp lệ: %@" + "value" : "Phiên bản plugin không tương thích" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "数据格式无效: %@" + "value" : "插件版本不兼容" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料格式無效:%@" + "value" : "外掛版本不相容" } } } }, - "Invalid endpoint: %@" : { + "Incorrect passphrase" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "잘못된 엔드포인트: %@" + "value" : "암호가 올바르지 않습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geçersiz uç nokta: %@" + "value" : "Yanlış parola" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Endpoint không hợp lệ: %@" + "value" : "Cụm mật khẩu không đúng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无效的 Endpoint: %@" + "value" : "密码短语不正确" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無效的 Endpoint:%@" + "value" : "密碼短語不正確" } } } }, - "Invalid file encoding. Try a different encoding option." : { - "extractionState" : "stale", + "Increase font size" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "파일 인코딩이 올바르지 않습니다. 다른 인코딩 옵션을 사용해 보십시오." + "value" : "글꼴 크기 늘리기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geçersiz dosya kodlaması. Farklı bir kodlama seçeneği deneyin." + "value" : "Yazı boyutunu büyüt" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mã hóa tệp không hợp lệ. Hãy thử tùy chọn mã hóa khác." + "value" : "Tăng cỡ chữ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "文件编码无效。请尝试其他编码选项。" + "value" : "增大字号" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "檔案編碼無效。請嘗試其他編碼選項。" + "value" : "增大字型大小" } } } }, - "Invalid hex" : { + "Increase Text Size" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "잘못된 16진수" + "value" : "텍스트 크기 늘리기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geçersiz hex" + "value" : "Metin Boyutunu Büyüt" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hex không hợp lệ" + "value" : "Tăng cỡ chữ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无效的十六进制" + "value" : "增大文字大小" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "十六進位無效" + "value" : "增大文字大小" } } } }, - "Invalid license key format. Check for typos and try again." : { + "Indent" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "라이선스 키 형식이 올바르지 않습니다. 오타를 확인한 후 다시 시도하십시오." + "value" : "들여쓰기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geçersiz lisans anahtarı biçimi. Yazım hatalarını kontrol edip tekrar deneyin." + "value" : "Girintile" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Định dạng mã giấy phép không hợp lệ. Kiểm tra lỗi chính tả và thử lại." + "value" : "Thụt lề" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "许可证密钥格式无效。请检查是否有拼写错误后重试。" + "value" : "缩进" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "授權金鑰格式無效。請檢查是否有拼字錯誤後再試一次。" + "value" : "縮排" } } } }, - "Invalid pattern" : { + "INDEX" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "잘못된 패턴" + "value" : "INDEX" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geçersiz desen" + "value" : "İNDEKS" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mẫu không hợp lệ" + "value" : "CHỈ MỤC" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "模式无效" + "value" : "索引" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "模式無效" + "value" : "索引" } } } }, - "Invalid plugin bundle: %@" : { + "Index %@ matches %@ on the target but the names differ." : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Index %1$@ matches %2$@ on the target but the names differ." + } + } + } + }, + "Index name" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "잘못된 플러그인 번들: %@" + "value" : "인덱스 이름" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geçersiz eklenti paketi: %@" + "value" : "İndeks adı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Plugin bundle không hợp lệ: %@" + "value" : "Tên chỉ mục" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无效的插件包: %@" + "value" : "索引名称" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "外掛套件無效:%@" + "value" : "索引名稱" } } } }, - "Invalid username or password" : { + "Index proposal on %@" : { + + }, + "Index size" : { + + }, + "Index Size" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사용자 이름 또는 암호가 올바르지 않습니다" + "value" : "인덱스 크기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geçersiz kullanıcı adı veya parola" + "value" : "İndeks Boyutu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên đăng nhập hoặc mật khẩu không hợp lệ" + "value" : "Kích thước chỉ mục" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "用户名或密码无效" + "value" : "索引大小" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "使用者名稱或密碼無效" + "value" : "索引大小" } } } }, - "Invisibles" : { + "Index type reported by the engine" : { + + }, + "Indexed columns in order" : { + + }, + "Indexes" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "보이지 않는 문자" + "value" : "인덱스" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Görünmezler" + "value" : "İndeksler" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ký tự ẩn" + "value" : "Chỉ mục" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "不可见字符" + "value" : "索引" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "不可見字" + "value" : "索引" } } } }, - "Items" : { + "Indexes on the table" : { + + }, + "Info" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "항목" + "value" : "정보" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Öğeler" + "value" : "Bilgi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mục" + "value" : "Thông tin" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "项目" + "value" : "信息" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "項目" + "value" : "資訊" } } } }, - "JSON" : { + "Inherited automatically." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "JSON" + "value" : "자동으로 상속됨." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "JSON" + "value" : "Otomatik olarak devralındı." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "JSON" + "value" : "Được kế thừa tự động." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "JSON" + "value" : "自动继承。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "JSON" + "value" : "自動繼承。" } } } }, - "JSON Too Large" : { + "Inherited from %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "JSON이 너무 큼" + "value" : "%@에서 상속됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "JSON Çok Büyük" + "value" : "%@ kaynağından devralındı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "JSON quá lớn" + "value" : "Kế thừa từ %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "JSON 过大" + "value" : "继承自 %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "JSON 過大" + "value" : "繼承自 %@" } } } }, - "JSON Viewer" : { + "Inline Configuration" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Inline Configuration" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "JSON 뷰어" + "value" : "인라인 구성" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "JSON Görüntüleyici" + "value" : "Satır İçi Yapılandırma" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trình xem JSON" + "value" : "Cấu hình nội tuyến" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "JSON 查看器" + "value" : "内联配置" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "JSON 檢視器" + "value" : "行內設定" } } } }, - "JSON-style document database" : { + "Inline SQL suggestions appear as you type. Press Tab to accept, Escape to dismiss." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "JSON 형식의 문서 데이터베이스" + "value" : "입력하는 동안 인라인 SQL 제안이 표시됩니다. Tab 키를 누르면 수락하고 Escape 키를 누르면 닫습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "JSON tarzı belge veritabanı" + "value" : "Satır içi SQL önerileri yazarken görünür. Kabul etmek için Tab, kapatmak için Escape tuşuna basın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cơ sở dữ liệu document kiểu JSON" + "value" : "Gợi ý SQL nội tuyến hiện ra khi bạn gõ. Nhấn Tab để chấp nhận, Esc để bỏ qua." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "JSON 风格的文档数据库" + "value" : "内联 SQL 建议会在输入时出现。按 Tab 接受,按 Esc 取消。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "JSON 風格的文件資料庫" + "value" : "行內 SQL 建議會在輸入時出現。按 Tab 接受,按 Esc 關閉。" } } } }, - "JSON: %@" : { + "Inline Suggestions" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "JSON: %@" + "value" : "인라인 제안" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "JSON: %@" + "value" : "Satır İçi Öneriler" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "JSON: %@" + "value" : "Gợi ý nội tuyến" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "JSON:%@" + "value" : "行内建议" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "JSON:%@" + "value" : "行內建議" } } } }, - "Join the two columns into one, placing this text between the values." : { + "Insert" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "두 열을 하나로 결합하고 값 사이에 이 텍스트를 넣습니다." + "value" : "삽입" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İki sütunu tek sütunda birleştirir ve değerlerin arasına bu metni koyar." + "value" : "Ekle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gộp hai cột thành một, đặt đoạn văn bản này giữa các giá trị." + "value" : "Chèn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将两列合并为一列,并在两个值之间插入这段文本。" + "value" : "插入" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將兩個欄位合併為一個,並在兩個值之間插入這段文字。" + "value" : "插入" } } } }, - "Journal Mode" : { + "Insert at most %d rows per call." : { + + }, + "Insert Column" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "저널 모드" + "value" : "열 삽입" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Günlük Modu" + "value" : "Sütun Ekle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chế độ journal" + "value" : "Chèn cột" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "日志模式" + "value" : "插入列" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "日誌模式" + "value" : "插入欄位" } } } }, - "Jump Hosts" : { + "Insert Column After" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "점프 호스트" + "value" : "뒤에 열 삽입" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Atlama Sunucuları" + "value" : "Sonrasına Sütun Ekle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Jump Host" + "value" : "Chèn cột sau" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Jump Host" + "value" : "在后面插入列" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "跳板主機" + "value" : "在後方插入欄位" } } } }, - "Jump host configuration is invalid" : { + "Insert Column Before" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "점프 호스트 구성이 올바르지 않습니다" + "value" : "앞에 열 삽입" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Atlama sunucusu yapılandırması geçersiz" + "value" : "Öncesine Sütun Ekle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cấu hình jump host không hợp lệ" + "value" : "Chèn cột trước" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "跳板主机配置无效" + "value" : "在前面插入列" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "跳板主機設定無效" + "value" : "在前方插入欄位" } } } }, - "Jump host key not found: %@" : { + "Insert Column Left" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "점프 호스트 키를 찾을 수 없습니다: %@" + "value" : "왼쪽에 열 삽입" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Atlama sunucusu anahtarı bulunamadı: %@" + "value" : "Sola Sütun Ekle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy khóa của jump host: %@" + "value" : "Chèn cột bên trái" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未找到跳板主机密钥:%@" + "value" : "在左侧插入列" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "找不到跳板主機金鑰:%@" + "value" : "在左方插入欄位" } } } }, - "Jump hosts are connected in order before reaching the SSH server above. Only key and agent auth are supported for jumps." : { + "Insert Column Right" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "점프 호스트에 순서대로 연결한 후 위의 SSH 서버에 연결합니다. 점프 연결에는 키 및 에이전트 인증만 지원됩니다." + "value" : "오른쪽에 열 삽입" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Atlama sunucuları yukarıdaki SSH sunucusuna ulaşmadan önce sırayla bağlanır. Atlamalar için yalnızca anahtar ve aracı kimlik doğrulaması desteklenir." + "value" : "Sağa Sütun Ekle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Jump host được kết nối theo thứ tự trước khi đến SSH server phía trên. Chỉ hỗ trợ xác thực bằng khoá và agent cho các jump." + "value" : "Chèn cột bên phải" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Jump Host 按顺序连接后再连接到上方的 SSH 服务器。跳转仅支持密钥和 Agent 认证。" + "value" : "在右侧插入列" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "跳板主機會依序連線,之後才連到上方的 SSH 伺服器。跳板僅支援金鑰與 Agent 認證。" + "value" : "在右方插入欄位" } } } }, - "Jump to lines" : { + "Insert in Editor" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "줄로 이동" + "value" : "편집기에 삽입" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satırlara git" + "value" : "Düzenleyiciye Ekle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhảy tới dòng" + "value" : "Chèn vào trình soạn thảo" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "跳转到相应行" + "value" : "插入到编辑器" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "跳至相應的行" + "value" : "插入到編輯器" } } } }, - "Keep Backing Up" : { + "Insert into editor" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "백업 계속" + "value" : "편집기에 삽입" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yedeklemeye Devam Et" + "value" : "Düzenleyiciye ekle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tiếp tục sao lưu" + "value" : "Chèn vào trình soạn thảo" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "继续备份" + "value" : "插入到编辑器" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "繼續備份" + "value" : "插入到編輯器" } } } }, - "Keep My Changes" : { + "Insert Row" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "내 변경 사항 유지" + "value" : "행 삽입" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Değişikliklerimi Koru" + "value" : "Satır Ekle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giữ thay đổi của tôi" + "value" : "Thêm dòng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "保留我的更改" + "value" : "插入行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "保留我的變更" + "value" : "插入列" } } } }, - "Keep Other Version" : { - "extractionState" : "stale", + "Insert row %@ into %@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Insert row %1$@ into %2$@" + } + } + } + }, + "Insert Row Above" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다른 버전 유지" + "value" : "위에 행 삽입" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Keep Other Version" + "value" : "Üste Satır Ekle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giữ phiên bản khác" + "value" : "Chèn dòng phía trên" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "保留其他版本" + "value" : "在上方插入行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "保留其他版本" + "value" : "在上方插入列" } } } }, - "Keep Restoring" : { + "Insert Row Below" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "복원 계속" + "value" : "아래에 행 삽입" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geri Yüklemeye Devam Et" + "value" : "Alta Satır Ekle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tiếp tục khôi phục" + "value" : "Chèn dòng phía dưới" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "继续恢复" + "value" : "在下方插入行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "繼續還原" + "value" : "在下方插入列" } } } }, - "Keep Running" : { + "Insert Rows" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "계속 실행" + "value" : "행 삽입" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Çalışmaya Devam Et" + "value" : "Satır Ekle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tiếp tục chạy" + "value" : "Thêm dòng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "继续运行" + "value" : "插入行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "繼續執行" + "value" : "插入列" } } } }, - "Keep This Mac's Version" : { - "extractionState" : "stale", + "Insert rows into a table using bound parameters, so values are never spliced into SQL text. Needs tools:write and goes through the connection's Safe Mode approval." : { + + }, + "Insert rows the target is missing" : { + + }, + "INSERT Statement(s)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 Mac의 버전 유지" + "value" : "INSERT 문" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Keep This Mac's Version" + "value" : "INSERT İfade(si)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giữ phiên bản máy Mac này" + "value" : "Câu lệnh INSERT" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "保留此 Mac 的版本" + "value" : "INSERT 语句" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "保留此 Mac 的版本" + "value" : "INSERT 陳述式" } } } }, - "Keep entries for:" : { + "INSERT, UPDATE, or DELETE" : { + + }, + "Inserted" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "항목 보관 기간:" + "value" : "삽입됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kayıtları saklama süresi:" + "value" : "Eklendi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giữ mục trong:" + "value" : "Đã chèn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "保留记录:" + "value" : "已插入" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "保留記錄:" + "value" : "已插入" } } } }, - "Keep leading zeros in ZIP codes, phone numbers, and IDs by outputting all values as strings" : { + "inserting %d row(s)" : { + + }, + "Inside an array" : { + + }, + "Inspector" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "우편번호, 전화번호 및 ID의 앞자리 0을 유지하려면 모든 값을 문자열로 출력합니다" + "value" : "인스펙터" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Keep leading zeros in ZIP codes, phone numbers, and IDs by outputting all values as strings" + "value" : "Denetçi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giữ số 0 đầu trong mã bưu chính, số điện thoại và ID bằng cách xuất tất cả giá trị dưới dạng chuỗi" + "value" : "Thanh kiểm tra" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "通过将所有值输出为字符串来保留邮编、电话号码和 ID 中的前导零" + "value" : "检查器" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將所有值輸出為字串,以保留郵遞區號、電話號碼和 ID 中的前導零" + "value" : "檢閱器" } } } }, - "Kerberos Principal" : { + "Install" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Kerberos 보안 주체" + "value" : "설치" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kerberos Principal" + "value" : "Yükle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kerberos Principal" + "value" : "Cài đặt" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Kerberos Principal" + "value" : "安装" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Kerberos Principal" - } - } - } - }, - "Kerberos authentication failed: %@" : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "Kerberos 인증 실패: %@" + "value" : "安裝" } } } }, - "Key" : { + "Install from File..." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "키" + "value" : "파일에서 설치..." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Anahtar" + "value" : "Dosyadan Yükle..." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khóa" + "value" : "Cài đặt từ tập tin..." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "键" + "value" : "从文件安装..." } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "鍵" + "value" : "從檔案安裝…" } } } }, - "Key %@ was not found in the secret JSON." : { + "Install Plugin" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "비밀 JSON에서 %@ 키를 찾을 수 없습니다." + "value" : "플러그인 설치" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ anahtarı secret JSON içinde bulunamadı." + "value" : "Eklentiyi Yükle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy khóa %@ trong JSON secret." + "value" : "Cài đặt Plugin" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在 secret JSON 中未找到键 %@。" + "value" : "安装插件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在 secret JSON 中找不到鍵 %@。" + "value" : "安裝外掛" } } } }, - "Key File" : { + "Install plugin from file" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "키 파일" + "value" : "파일에서 플러그인 설치" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Anahtar Dosyası" + "value" : "Eklentiyi dosyadan yükle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tệp khóa" + "value" : "Cài đặt plugin từ tệp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "密钥文件" + "value" : "从文件安装插件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "金鑰檔案" + "value" : "從檔案安裝外掛" } } } }, - "Key Passphrase" : { + "Install Plugin…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "키 암호" + "value" : "플러그인 설치…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Anahtar Parolası" + "value" : "Eklenti Yükle…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cụm mật khẩu của khóa" + "value" : "Cài plugin…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "密钥口令" + "value" : "安装插件…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "金鑰密碼短語" + "value" : "安裝外掛…" } } } }, - "Key Prefix Root" : { + "Install the CLI client for %@" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "키 접두사 루트" + "value" : "%@용 CLI 클라이언트 설치" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Anahtar Önek Kökü" + "value" : "%@ için CLI istemcisini yükleyin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tiền tố gốc" + "value" : "Cài đặt CLI client cho %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "键前缀根" + "value" : "安装 %@ 的 CLI 客户端" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "索引鍵前綴根目錄" + "value" : "安裝 %@ 的 CLI 用戶端" } } } }, - "Key pattern" : { + "Install Theme" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "키 패턴" + "value" : "테마 설치" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Anahtar deseni" + "value" : "Temayı Yükle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mẫu khóa" + "value" : "Cài đặt chủ đề" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "键模式" + "value" : "安装主题" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "鍵模式" + "value" : "安裝主題" } } } }, - "Key pattern, e.g. user:*" : { + "Installation Failed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "키 패턴(예: user:*)" + "value" : "설치 실패" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Anahtar deseni, örn. user:*" + "value" : "Yükleme Başarısız" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mẫu khóa, ví dụ user:*" + "value" : "Cài đặt thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "键模式,例如 user:*" + "value" : "安装失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "鍵模式,例如 user:*" + "value" : "安裝失敗" } } } }, - "Key-Value" : { + "Installed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "키-값" + "value" : "설치됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Anahtar-Değer" + "value" : "Yüklendi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Key-Value" + "value" : "Đã cài đặt" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "键值" + "value" : "已安装" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "鍵值" + "value" : "已安裝" } } } }, - "Keyboard" : { + "Installed Plugins" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "키보드" + "value" : "설치된 플러그인" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Klavye" + "value" : "Yüklü Eklentiler" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bàn phím" + "value" : "Plugin đã cài đặt" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "键盘" + "value" : "已安装的插件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "鍵盤" + "value" : "已安裝的外掛" } } } }, - "Keyboard Interactive" : { + "Installing…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "키보드 대화형" + "value" : "설치 중…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Klavye Etkileşimli" + "value" : "Yükleniyor…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Keyboard Interactive" + "value" : "Đang cài đặt…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Keyboard Interactive" + "value" : "正在安装…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Keyboard Interactive" + "value" : "安裝中…" } } } }, - "Keys" : { + "Instance connection name" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "키" + "value" : "인스턴스 연결 이름" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Anahtarlar" + "value" : "Örnek bağlantı adı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khóa" + "value" : "Tên kết nối instance" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "键" + "value" : "实例连接名称" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "鍵" + "value" : "執行個體連線名稱" } } } }, - "Keys are provided by the SSH agent (e.g. 1Password, ssh-agent)." : { + "Instance connection name must be project:region:instance" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "키는 SSH 에이전트(예: 1Password, ssh-agent)에서 제공됩니다." + "value" : "인스턴스 연결 이름은 project:region:instance 형식이어야 합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Anahtarlar SSH aracı tarafından sağlanır (örn. 1Password, ssh-agent)." + "value" : "Örnek bağlantı adı project:region:instance biçiminde olmalı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khóa được cung cấp bởi SSH agent (ví dụ: 1Password, ssh-agent)." + "value" : "Tên kết nối instance phải theo dạng project:region:instance" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "密钥由 SSH Agent 提供(如 1Password、ssh-agent)。" + "value" : "实例连接名称必须为 project:region:instance" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "金鑰由 SSH Agent 提供(如 1Password、ssh-agent)。" + "value" : "執行個體連線名稱必須為 project:region:instance" } } } }, - "Keyword" : { + "Integer" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "키워드" + "value" : "정수" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Anahtar Kelime" + "value" : "Tamsayı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Từ khoá" + "value" : "Số nguyên" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "关键字" + "value" : "整数" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "關鍵字" + "value" : "整數" } } } }, - "Keyword cannot contain spaces" : { + "Integrations" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "키워드에는 공백을 포함할 수 없습니다" + "value" : "통합" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Anahtar kelime boşluk içeremez" + "value" : "Entegrasyonlar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Từ khoá không được chứa khoảng trắng" + "value" : "Tích hợp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "关键字不能包含空格" + "value" : "集成" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "關鍵字不能包含空格" + "value" : "整合" } } } }, - "Keyword:" : { - "extractionState" : "stale", + "Integrations Activity" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "키워드:" + "value" : "통합 활동" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Anahtar Kelime:" + "value" : "Entegrasyon Etkinliği" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Từ khoá:" + "value" : "Hoạt động tích hợp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "关键字:" + "value" : "集成活动" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "關鍵字:" + "value" : "整合活動" } } } }, - "Kind" : { + "Integrations: Failed" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "종류" + "value" : "통합: 실패" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tür" + "value" : "Entegrasyonlar: Başarısız" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Loại" + "value" : "Tích hợp: Thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "类型" + "value" : "集成:失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "類型" + "value" : "整合:失敗" } } } }, - "Kind:" : { + "Integrations: Running" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "종류:" + "value" : "통합: 실행 중" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tür:" + "value" : "Entegrasyonlar: Çalışıyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Loại:" + "value" : "Tích hợp: Đang chạy" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "类型:" + "value" : "集成:运行中" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "類型:" + "value" : "整合:執行中" } } } }, - "LSP process exited with code %d" : { + "Integrations: Running (%d clients)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "LSP 프로세스가 종료되었습니다(코드: %d)" + "value" : "통합: 실행 중(클라이언트 %d개)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "LSP süreci %d koduyla sonlandı" + "value" : "Entegrasyonlar: Çalışıyor (%d istemci)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tiến trình LSP đã thoát với mã %d" + "value" : "Tích hợp: Đang chạy (%d client)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "LSP 进程已退出,代码为 %d" + "value" : "集成:运行中(%d 个客户端)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "LSP 處理程序已結束,結束代碼為 %d" + "value" : "整合:執行中(%d 個用戶端)" } } } }, - "LSP process is not running" : { + "Integrations: Starting..." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "LSP 프로세스가 실행 중이 아닙니다" + "value" : "통합: 시작 중..." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "LSP süreci çalışmıyor" + "value" : "Entegrasyonlar: Başlatılıyor..." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tiến trình LSP không chạy" + "value" : "Tích hợp: Đang khởi động..." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "LSP 进程未运行" + "value" : "集成:启动中…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "LSP 處理程序未在執行" + "value" : "整合:啟動中…" } } } }, - "LSP request was cancelled" : { + "Integrations: Stopped" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "LSP 요청이 취소되었습니다" + "value" : "통합: 중지됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "LSP isteği iptal edildi" + "value" : "Entegrasyonlar: Durduruldu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Yêu cầu LSP đã bị hủy" + "value" : "Tích hợp: Đã dừng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "LSP 请求已取消" + "value" : "集成:已停止" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "LSP 要求已取消" + "value" : "整合:已停止" } } } }, - "LSP server error (%d): %@" : { + "Integrations…" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "LSP server error (%1$d): %2$@" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "LSP 서버 오류(%1$d): %2$@" + "value" : "통합…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "LSP sunucu hatası (%d): %@" + "value" : "Entegrasyonlar…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lỗi LSP server (%d): %@" + "value" : "Tích hợp…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "LSP 服务器错误(%d):%@" + "value" : "集成…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "LSP 伺服器錯誤(%1$d):%2$@" + "value" : "整合…" } } } }, - "Language:" : { + "Interactive Data Grid" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "언어:" + "value" : "대화형 데이터 그리드" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dil:" + "value" : "Etkileşimli Veri Tablosu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ngôn ngữ:" + "value" : "Lưới dữ liệu tương tác" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "语言:" + "value" : "交互式数据网格" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "語言:" + "value" : "互動式資料格線" } } } }, - "Large" : { + "Interface" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "큼" + "value" : "인터페이스" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Büyük" + "value" : "Arayüz" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lớn" + "value" : "Giao diện" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "大" + "value" : "界面" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "大" + "value" : "介面" } } } }, - "Last 24 hours" : { + "Invalid argument: %@" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "최근 24시간" + "value" : "잘못된 인수: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Son 24 saat" + "value" : "Geçersiz bağımsız değişken: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "24 giờ qua" + "value" : "Đối số không hợp lệ: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "过去 24 小时" + "value" : "无效的参数: %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "過去 24 小時" + "value" : "無效的引數:%@" } } } }, - "Last 30 days" : { + "Invalid column indices for reorder operation" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "최근 30일" + "value" : "재정렬 작업의 열 인덱스가 올바르지 않습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Son 30 gün" + "value" : "Yeniden sıralama işlemi için geçersiz sütun dizinleri" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "30 ngày qua" + "value" : "Chỉ số cột không hợp lệ cho thao tác sắp xếp lại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "过去 30 天" + "value" : "重排序操作的列索引无效" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "過去 30 天" + "value" : "重新排序操作的欄位索引無效" } } } }, - "Last 4 Weeks" : { + "Invalid connection URL format" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "최근 4주" + "value" : "잘못된 연결 URL 형식" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Son 4 Hafta" + "value" : "Geçersiz bağlantı URL biçimi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "4 tuần qua" + "value" : "Định dạng URL kết nối không hợp lệ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "最近 4 周" + "value" : "连接 URL 格式无效" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "最近 4 週" + "value" : "連線 URL 格式無效" } } } }, - "Last 7 Days" : { + "Invalid data format: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "최근 7일" + "value" : "잘못된 데이터 형식: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Son 7 Gün" + "value" : "Geçersiz veri biçimi: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "7 ngày qua" + "value" : "Định dạng dữ liệu không hợp lệ: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "最近 7 天" + "value" : "数据格式无效: %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "最近 7 天" + "value" : "資料格式無效:%@" } } } }, - "Last 7 days" : { + "Invalid endpoint: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "최근 7일" + "value" : "잘못된 엔드포인트: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Son 7 gün" + "value" : "Geçersiz uç nokta: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "7 ngày qua" + "value" : "Endpoint không hợp lệ: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "过去 7 天" + "value" : "无效的 Endpoint: %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "過去 7 天" + "value" : "無效的 Endpoint:%@" } } } }, - "Last Activity" : { + "Invalid file encoding. Try a different encoding option." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "마지막 활동" + "value" : "파일 인코딩이 올바르지 않습니다. 다른 인코딩 옵션을 사용해 보십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Son Etkinlik" + "value" : "Geçersiz dosya kodlaması. Farklı bir kodlama seçeneği deneyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hoạt động gần nhất" + "value" : "Mã hóa tệp không hợp lệ. Hãy thử tùy chọn mã hóa khác." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "最近活动" + "value" : "文件编码无效。请尝试其他编码选项。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "最近活動" + "value" : "檔案編碼無效。請嘗試其他編碼選項。" } } } }, - "Last Hour" : { + "Invalid hex" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "최근 1시간" + "value" : "잘못된 16진수" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Son Bir Saat" + "value" : "Geçersiz hex" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "1 giờ qua" + "value" : "Hex không hợp lệ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "最近 1 小时" + "value" : "无效的十六进制" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "最近 1 小時" + "value" : "十六進位無效" } } } }, - "Last Page" : { + "Invalid JSON" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "마지막 페이지" + "value" : "잘못된 JSON" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Son Sayfa" + "value" : "Geçersiz JSON" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trang cuối" + "value" : "JSON không hợp lệ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "最后一页" + "value" : "无效的 JSON" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "最後一頁" + "value" : "JSON 無效" } } } }, - "Last Synced:" : { + "Invalid JSON: %@" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "마지막 동기화:" + "value" : "잘못된 JSON: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Son Eşitlendi:" + "value" : "Geçersiz JSON: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đồng bộ lần cuối:" + "value" : "JSON không hợp lệ: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "上次同步:" + "value" : "无效的 JSON: %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "上次同步:" + "value" : "JSON 無效:%@" } } } }, - "Last page" : { + "Invalid license key format. Check for typos and try again." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "마지막 페이지" + "value" : "라이선스 키 형식이 올바르지 않습니다. 오타를 확인한 후 다시 시도하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Son sayfa" + "value" : "Geçersiz lisans anahtarı biçimi. Yazım hatalarını kontrol edip tekrar deneyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trang cuối" + "value" : "Định dạng mã giấy phép không hợp lệ. Kiểm tra lỗi chính tả và thử lại." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "最后一页" + "value" : "许可证密钥格式无效。请检查是否有拼写错误后重试。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "最後一頁" + "value" : "授權金鑰格式無效。請檢查是否有拼字錯誤後再試一次。" } } } }, - "Last query execution summary" : { + "Invalid LSP response" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "마지막 쿼리 실행 요약" + "value" : "잘못된 LSP 응답" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Son sorgu çalıştırma özeti" + "value" : "Geçersiz LSP yanıtı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tổng kết thực thi truy vấn gần nhất" + "value" : "Phản hồi LSP không hợp lệ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "上次查询执行摘要" + "value" : "无效的 LSP 响应" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "上次查詢執行摘要" + "value" : "LSP 回應無效" } } } }, - "Last query execution time" : { + "Invalid MongoDB syntax: %@" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "마지막 쿼리 실행 시간" + "value" : "잘못된 MongoDB 구문: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Son sorgu çalıştırma süresi" + "value" : "Geçersiz MongoDB sözdizimi: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thời gian thực thi truy vấn gần nhất" + "value" : "Cú pháp MongoDB không hợp lệ: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "上次查询执行时间" + "value" : "无效的 MongoDB 语法: %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "上次查詢執行時間" + "value" : "MongoDB 語法無效:%@" } } } }, - "Last query took %@" : { + "Invalid pattern" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "마지막 쿼리 소요 시간: %@" + "value" : "잘못된 패턴" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Son sorgu %@ sürdü" + "value" : "Geçersiz desen" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Truy vấn trước mất %@" + "value" : "Mẫu không hợp lệ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "上次查询耗时 %@" + "value" : "模式无效" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "上次查詢耗時 %@" + "value" : "模式無效" } } } }, - "Last query: %@" : { + "Invalid PHP Serialized Value" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "마지막 쿼리: %@" + "value" : "잘못된 PHP 직렬화 값" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Son sorgu: %@" + "value" : "Geçersiz PHP Serileştirilmiş Değer" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Truy vấn gần nhất: %@" + "value" : "Giá trị PHP serialized không hợp lệ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "上次查询: %@" + "value" : "无效的 PHP 序列化值" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "上次查詢:%@" + "value" : "無效的 PHP 序列化值" } } } }, - "Last synced %@" : { + "Invalid plugin bundle: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "마지막 동기화: %@" + "value" : "잘못된 플러그인 번들: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Son eşitleme %@" + "value" : "Geçersiz eklenti paketi: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đồng bộ lần cuối %@" + "value" : "Plugin bundle không hợp lệ: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "上次同步 %@" + "value" : "无效的插件包: %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "上次同步 %@" + "value" : "外掛套件無效:%@" } } } }, - "Last updated" : { + "Invalid username or password" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "마지막 업데이트" + "value" : "사용자 이름 또는 암호가 올바르지 않습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Son güncelleme" + "value" : "Geçersiz kullanıcı adı veya parola" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cập nhật lần cuối" + "value" : "Tên đăng nhập hoặc mật khẩu không hợp lệ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "最后更新" + "value" : "用户名或密码无效" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "最後更新" + "value" : "使用者名稱或密碼無效" } } } }, - "Latency: %dms" : { + "Invalid UUID: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "지연 시간: %dms" + "value" : "잘못된 UUID: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Gecikme: %dms" + "value" : "Geçersiz UUID: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Độ trễ: %dms" + "value" : "UUID không hợp lệ: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "延迟:%dms" + "value" : "无效的 UUID:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "延遲:%dms" + "value" : "UUID 無效:%@" } } } }, - "Latency: %lldms" : { - "extractionState" : "stale", + "Invisibles" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "지연 시간: %lldms" + "value" : "보이지 않는 문자" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Gecikme: %lldms" + "value" : "Görünmezler" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Độ trễ: %lldms" + "value" : "Ký tự ẩn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "延迟: %lldms" + "value" : "不可见字符" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "延遲:%lldms" + "value" : "不可見字" } } } }, - "Latest executed_at to include, Unix epoch seconds (inclusive, optional)" : { + "is empty" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "포함할 가장 최근 executed_at 값(Unix 에포크 초, 경계값 포함, 선택 사항)" + "value" : "비어 있음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dahil edilecek en geç executed_at, Unix epoch saniyesi (dahil, isteğe bağlı)" + "value" : "boş" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mốc executed_at muộn nhất được tính, giây Unix epoch (bao gồm mốc này, tùy chọn)" + "value" : "trống" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "要包含的最晚 executed_at,Unix 纪元秒(含,可选)" + "value" : "为空" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "要包含的最晚 executed_at,Unix 紀元秒(含此值,選填)" + "value" : "為空" } } } }, - "Layout" : { - "extractionState" : "stale", + "is not empty" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "레이아웃" + "value" : "비어 있지 않음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Düzen" + "value" : "boş değil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bố cục" + "value" : "không trống" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "布局" + "value" : "不为空" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "版面配置" + "value" : "不為空" } } } }, - "Layout for new connections on servers that support a database tree. Switch the current connection from the View menu." : { + "is not NULL" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 트리를 지원하는 서버의 새 연결에 사용할 레이아웃입니다. 보기 메뉴에서 현재 연결의 레이아웃을 전환할 수 있습니다." + "value" : "NULL이 아님" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı ağacını destekleyen sunucularda yeni bağlantılar için düzen. Geçerli bağlantıyı Görünüm menüsünden değiştirin." + "value" : "is not NULL" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bố cục cho kết nối mới trên máy chủ hỗ trợ cây cơ sở dữ liệu. Chuyển đổi cho kết nối hiện tại từ menu Xem." + "value" : "không phải NULL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "支持数据库树的服务器上新建连接所用的布局。可在“视图”菜单中切换当前连接的布局。" + "value" : "不为 NULL" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "支援資料庫樹狀結構的伺服器上,新連線所用的版面配置。可從「檢視」選單切換目前連線的版面配置。" + "value" : "不為 NULL" } } } }, - "Leave blank to connect without authentication. The password is stored in the macOS Keychain." : { + "is NULL" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "인증 없이 연결하려면 비워 두십시오. 암호는 macOS 키체인에 저장됩니다." + "value" : "NULL임" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kimlik doğrulamasız bağlanmak için boş bırakın. Parola macOS Keychain'de saklanır." + "value" : "is NULL" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Để trống để kết nối không cần xác thực. Mật khẩu được lưu trong macOS Keychain." + "value" : "là NULL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "留空即可在不认证的情况下连接。密码保存在 macOS 钥匙串中。" + "value" : "为 NULL" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "留空即可在不驗證的情況下連線。密碼儲存在 macOS 鑰匙圈中。" + "value" : "為 NULL" } } } }, - "Leave the principal and password blank to use your existing Kerberos ticket. Run kinit user@REALM.COM in Terminal first if you don't have one." : { + "ISO 8601 (2024-12-31 23:59:59)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기존 Kerberos 티켓을 사용하려면 보안 주체와 암호를 비워 두십시오. 티켓이 없으면 먼저 터미널에서 kinit user@REALM.COM을 실행하십시오." + "value" : "ISO 8601 (2024-12-31 23:59:59)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Mevcut Kerberos biletinizi kullanmak için principal ve parolayı boş bırakın. Biletiniz yoksa önce Terminal'de kinit user@REALM.COM çalıştırın." + "value" : "ISO 8601 (2024-12-31 23:59:59)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Để trống principal và mật khẩu để dùng vé Kerberos hiện có. Nếu chưa có, hãy chạy kinit user@REALM.COM trong Terminal trước." + "value" : "ISO 8601 (2024-12-31 23:59:59)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "留空 principal 和密码即可使用现有的 Kerberos 票据。如果没有,请先在终端运行 kinit user@REALM.COM。" + "value" : "ISO 8601 (2024-12-31 23:59:59)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "留空 principal 和密碼即可使用現有的 Kerberos 票證。如果沒有,請先在終端機執行 kinit user@REALM.COM。" + "value" : "ISO 8601 (2024-12-31 23:59:59)" } } } }, - "Legacy UUID Encoding" : { + "ISO 8601 connect time" : { + + }, + "ISO 8601 creation time" : { + + }, + "ISO 8601 last activity time" : { + + }, + "ISO 8601 last change time" : { + + }, + "ISO Date (2024-12-31)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "레거시 UUID 인코딩" + "value" : "ISO 날짜 (2024-12-31)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eski UUID Kodlaması" + "value" : "ISO Tarih (2024-12-31)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mã hoá UUID cũ" + "value" : "ISO ngày (2024-12-31)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "旧版 UUID 编码" + "value" : "ISO 日期 (2024-12-31)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "舊版 UUID 編碼" + "value" : "ISO 日期 (2024-12-31)" } } } }, - "Length" : { - "extractionState" : "stale", + "Items" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "길이" + "value" : "항목" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Uzunluk" + "value" : "Öğeler" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Độ dài" + "value" : "Mục" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "长度" + "value" : "项目" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "長度" + "value" : "項目" } } } }, - "Length:" : { - "extractionState" : "stale", + "Join the two columns into one, placing this text between the values." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "길이:" + "value" : "두 열을 하나로 결합하고 값 사이에 이 텍스트를 넣습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Uzunluk:" + "value" : "İki sütunu tek sütunda birleştirir ve değerlerin arasına bu metni koyar." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Độ dài:" + "value" : "Gộp hai cột thành một, đặt đoạn văn bản này giữa các giá trị." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "长度:" + "value" : "将两列合并为一列,并在两个值之间插入这段文本。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "長度:" + "value" : "將兩個欄位合併為一個,並在兩個值之間插入這段文字。" } } } }, - "License" : { + "Journal Mode" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "라이선스" + "value" : "저널 모드" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Lisans" + "value" : "Günlük Modu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giấy phép" + "value" : "Chế độ journal" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "许可证" + "value" : "日志模式" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "授權" + "value" : "日誌模式" } } } }, - "License Key:" : { + "JSON" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "라이선스 키:" + "value" : "JSON" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Lisans Anahtarı:" + "value" : "JSON" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mã giấy phép:" + "value" : "JSON" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "许可证密钥:" + "value" : "JSON" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "授權金鑰:" + "value" : "JSON" } } } }, - "License Removed" : { + "JSON Too Large" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "라이선스 제거됨" + "value" : "JSON이 너무 큼" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Lisans Kaldırıldı" + "value" : "JSON Çok Büyük" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giấy phép đã xoá" + "value" : "JSON quá lớn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "许可证已移除" + "value" : "JSON 过大" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "授權已移除" + "value" : "JSON 過大" } } } }, - "License expired — sync paused" : { - "extractionState" : "stale", + "JSON Viewer" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "라이선스 만료 — 동기화 일시 정지" + "value" : "JSON 뷰어" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Lisans süresi doldu — eşitleme duraklatıldı" + "value" : "JSON Görüntüleyici" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giấy phép hết hạn — tạm dừng đồng bộ" + "value" : "Trình xem JSON" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "许可证已过期 - 同步已暂停" + "value" : "JSON 查看器" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "授權已過期,同步已暫停" + "value" : "JSON 檢視器" } } } }, - "License expired, sync paused" : { + "JSON-style document database" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "라이선스 만료, 동기화 일시 정지" + "value" : "JSON 형식의 문서 데이터베이스" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Lisansın süresi doldu, eşitleme duraklatıldı" + "value" : "JSON tarzı belge veritabanı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giấy phép đã hết hạn, đồng bộ tạm dừng" + "value" : "Cơ sở dữ liệu document kiểu JSON" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "许可证已过期,同步已暂停" + "value" : "JSON 风格的文档数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "授權已過期,同步已暫停" + "value" : "JSON 風格的文件資料庫" } } } }, - "License expires in %lld day(s)" : { + "JSON: %@" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "License expires in %lld day(s)" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "라이선스가 %lld일 후 만료됩니다" + "value" : "JSON: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Lisans %lld gün içinde sona eriyor" + "value" : "JSON: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giấy phép hết hạn sau %lld ngày" + "value" : "JSON: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "许可证将在 %lld 天后过期" + "value" : "JSON:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "授權將在 %lld 天後過期" + "value" : "JSON:%@" } } } }, - "License public key is invalid." : { + "Jump host configuration is invalid" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "라이선스 공개 키가 올바르지 않습니다." + "value" : "점프 호스트 구성이 올바르지 않습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Lisans açık anahtarı geçersiz." + "value" : "Atlama sunucusu yapılandırması geçersiz" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khoá công khai giấy phép không hợp lệ." + "value" : "Cấu hình jump host không hợp lệ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "许可证公钥无效。" + "value" : "跳板主机配置无效" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "授權公開金鑰無效。" + "value" : "跳板主機設定無效" } } } }, - "License public key not found in app bundle." : { + "Jump host key not found: %@" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "앱 번들에서 라이선스 공개 키를 찾을 수 없습니다." + "value" : "점프 호스트 키를 찾을 수 없습니다: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Uygulama paketinde lisans açık anahtarı bulunamadı." + "value" : "Atlama sunucusu anahtarı bulunamadı: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy khoá công khai giấy phép trong gói ứng dụng." + "value" : "Không tìm thấy khóa của jump host: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "应用包中未找到许可证公钥。" + "value" : "未找到跳板主机密钥:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在應用程式套件中找不到授權公開金鑰。" + "value" : "找不到跳板主機金鑰:%@" } } } }, - "License removed from this Mac, but the server could not be reached. The activation slot may not be freed until it expires." : { + "Jump Hosts" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 Mac에서 라이선스가 제거되었지만 서버에 연결할 수 없습니다. 만료될 때까지 활성화 슬롯이 해제되지 않을 수 있습니다." + "value" : "점프 호스트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Lisans bu Mac'ten kaldırıldı, ancak sunucuya ulaşılamadı. Etkinleştirme yuvası süresi dolana kadar serbest bırakılmayabilir." + "value" : "Atlama Sunucuları" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giấy phép đã xoá khỏi máy Mac này, nhưng không thể liên hệ máy chủ. Vị trí kích hoạt có thể không được giải phóng cho đến khi hết hạn." + "value" : "Jump Host" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "许可证已从此 Mac 移除,但无法连接服务器。激活位可能需要到期后才能释放。" + "value" : "Jump Host" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "授權已從此 Mac 移除,但無法連線到伺服器。啟用名額可能要到期後才會釋出。" + "value" : "跳板主機" } } } }, - "License signature verification failed." : { + "Jump hosts are connected in order before reaching the SSH server above. Only key and agent auth are supported for jumps." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "라이선스 서명 확인에 실패했습니다." + "value" : "점프 호스트에 순서대로 연결한 후 위의 SSH 서버에 연결합니다. 점프 연결에는 키 및 에이전트 인증만 지원됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Lisans imza doğrulaması başarısız oldu." + "value" : "Atlama sunucuları yukarıdaki SSH sunucusuna ulaşmadan önce sırayla bağlanır. Atlamalar için yalnızca anahtar ve aracı kimlik doğrulaması desteklenir." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xác minh chữ ký giấy phép thất bại." + "value" : "Jump host được kết nối theo thứ tự trước khi đến SSH server phía trên. Chỉ hỗ trợ xác thực bằng khoá và agent cho các jump." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "许可证签名验证失败。" + "value" : "Jump Host 按顺序连接后再连接到上方的 SSH 服务器。跳转仅支持密钥和 Agent 认证。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "授權簽章驗證失敗。" + "value" : "跳板主機會依序連線,之後才連到上方的 SSH 伺服器。跳板僅支援金鑰與 Agent 認證。" } } } }, - "License validation failed" : { + "Jump to lines" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "License validation failed" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "라이선스 유효성 검사 실패" + "value" : "줄로 이동" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Lisans doğrulaması başarısız oldu" + "value" : "Satırlara git" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xác thực giấy phép thất bại" + "value" : "Nhảy tới dòng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "许可证验证失败" + "value" : "跳转到相应行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "授權驗證失敗" + "value" : "跳至相應的行" } } } }, - "License verification failed. Try updating the app to the latest version." : { + "Keep Backing Up" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "라이선스를 확인하지 못했습니다. 앱을 최신 버전으로 업데이트해 보십시오." + "value" : "백업 계속" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Lisans doğrulaması başarısız oldu. Uygulamayı en son sürüme güncellemeyi deneyin." + "value" : "Yedeklemeye Devam Et" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xác minh giấy phép thất bại. Hãy thử cập nhật ứng dụng lên phiên bản mới nhất." + "value" : "Tiếp tục sao lưu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "许可证验证失败。请尝试更新到最新版本。" + "value" : "继续备份" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "授權驗證失敗。請嘗試將應用程式更新到最新版本。" + "value" : "繼續備份" } } } }, - "Lifetime" : { + "Keep entries for:" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Lifetime" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "영구" + "value" : "항목 보관 기간:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ömür Boyu" + "value" : "Kayıtları saklama süresi:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trọn đời" + "value" : "Giữ mục trong:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "终身" + "value" : "保留记录:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "終身" + "value" : "保留記錄:" } } } }, - "Light" : { + "Keep leading zeros in ZIP codes, phone numbers, and IDs by outputting all values as strings" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "라이트" + "value" : "우편번호, 전화번호 및 ID의 앞자리 0을 유지하려면 모든 값을 문자열로 출력합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Açık" + "value" : "Keep leading zeros in ZIP codes, phone numbers, and IDs by outputting all values as strings" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sáng" + "value" : "Giữ số 0 đầu trong mã bưu chính, số điện thoại và ID bằng cách xuất tất cả giá trị dưới dạng chuỗi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "浅色" + "value" : "通过将所有值输出为字符串来保留邮编、电话号码和 ID 中的前导零" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "淺色" + "value" : "將所有值輸出為字串,以保留郵遞區號、電話號碼和 ID 中的前導零" } } } }, - "Limit" : { - "extractionState" : "stale", + "Keep My Changes" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "제한" + "value" : "내 변경 사항 유지" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Limit" + "value" : "Değişikliklerimi Koru" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giới hạn" + "value" : "Giữ thay đổi của tôi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "限制" + "value" : "保留我的更改" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "限制" + "value" : "保留我的變更" } } } }, - "Limit tool calls per reply" : { + "Keep Other Version" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "답변당 도구 호출 제한" + "value" : "다른 버전 유지" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yanıt başına araç çağrılarını sınırla" + "value" : "Keep Other Version" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giới hạn số lần gọi công cụ mỗi câu trả lời" + "value" : "Giữ phiên bản khác" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "限制每条回复的工具调用次数" + "value" : "保留其他版本" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "限制每則回覆的工具呼叫次數" + "value" : "保留其他版本" } } } }, - "Limits" : { + "Keep Restoring" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "제한" + "value" : "복원 계속" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Limitler" + "value" : "Geri Yüklemeye Devam Et" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giới hạn" + "value" : "Tiếp tục khôi phục" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "限制" + "value" : "继续恢复" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "限制" + "value" : "繼續還原" } } } }, - "Line" : { + "Keep Running" : { "localizations" : { "ko" : { "stringUnit" : { - "value" : "선", - "state" : "translated" + "state" : "translated", + "value" : "계속 실행" } }, "tr" : { "stringUnit" : { - "value" : "Çizgi", - "state" : "translated" + "state" : "translated", + "value" : "Çalışmaya Devam Et" } }, "vi" : { "stringUnit" : { - "value" : "Đường", - "state" : "translated" + "state" : "translated", + "value" : "Tiếp tục chạy" } }, "zh-Hans" : { "stringUnit" : { - "value" : "折线", - "state" : "translated" + "state" : "translated", + "value" : "继续运行" } }, "zh-Hant" : { "stringUnit" : { - "value" : "折線", - "state" : "translated" + "state" : "translated", + "value" : "繼續執行" } } } }, - "Line %1$lld: %2$@" : { - "comment" : "A line in the import error log. The first argument is the line number. The second argument is the error message.", - "isCommentAutoGenerated" : true, + "Keep This Mac's Version" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$lld행: %2$@" + "value" : "이 Mac의 버전 유지" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satır %1$lld: %2$@" + "value" : "Keep This Mac's Version" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dòng %1$lld: %2$@" + "value" : "Giữ phiên bản máy Mac này" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "第 %1$lld 行:%2$@" + "value" : "保留此 Mac 的版本" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "第 %1$lld 行:%2$@" + "value" : "保留此 Mac 的版本" } } } }, - "Line %lld: %@" : { + "Kerberos authentication failed: %@" : { "extractionState" : "stale", "localizations" : { - "en" : { + "ko" : { "stringUnit" : { - "state" : "new", - "value" : "Line %1$lld: %2$@" + "state" : "translated", + "value" : "Kerberos 인증 실패: %@" } - }, + } + } + }, + "Kerberos Principal" : { + "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$lld행: %2$@" + "value" : "Kerberos 보안 주체" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satır %lld: %@" + "value" : "Kerberos Principal" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dòng %lld: %@" + "value" : "Kerberos Principal" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "第 %lld 行:%@" + "value" : "Kerberos Principal" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "第 %1$lld 行:%2$@" + "value" : "Kerberos Principal" } } } }, - "Line Number" : { + "Key" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "줄 번호" + "value" : "키" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satır Numarası" + "value" : "Anahtar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Số dòng" + "value" : "Khóa" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "行号" + "value" : "键" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "行號" + "value" : "鍵" } } } }, - "Line break" : { - "extractionState" : "stale", + "Key %@ was not found in the secret JSON." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "줄바꿈" + "value" : "비밀 JSON에서 %@ 키를 찾을 수 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satır sonu" + "value" : "%@ anahtarı secret JSON içinde bulunamadı." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuống dòng" + "value" : "Không tìm thấy khóa %@ trong JSON secret." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "换行" + "value" : "在 secret JSON 中未找到键 %@。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "換行" + "value" : "在 secret JSON 中找不到鍵 %@。" } } } }, - "Line ending" : { + "Key column %@ is not present on both sides. Choose a different key." : { + + }, + "Key columns" : { + + }, + "Key File" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "줄 끝" + "value" : "키 파일" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satır sonu" + "value" : "Anahtar Dosyası" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ký tự xuống dòng" + "value" : "Tệp khóa" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "换行符" + "value" : "密钥文件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "換行字元" + "value" : "金鑰檔案" } } } }, - "Link a Folder…" : { + "Key Passphrase" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "폴더 연결…" + "value" : "키 암호" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Klasör Bağla…" + "value" : "Anahtar Parolası" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Liên kết thư mục…" + "value" : "Cụm mật khẩu của khóa" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "链接文件夹…" + "value" : "密钥口令" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連結資料夾…" + "value" : "金鑰密碼短語" } } } }, - "Linked" : { + "Key pattern" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결됨" + "value" : "키 패턴" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantılı" + "value" : "Anahtar deseni" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã liên kết" + "value" : "Mẫu khóa" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已链接" + "value" : "键模式" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已連結" + "value" : "鍵模式" } } } }, - "Linked Folders" : { + "Key pattern, e.g. user:*" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결된 폴더" + "value" : "키 패턴(예: user:*)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantılı Klasörler" + "value" : "Anahtar deseni, örn. user:*" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thư mục Liên kết" + "value" : "Mẫu khóa, ví dụ user:*" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "链接文件夹" + "value" : "键模式,例如 user:*" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已連結資料夾" + "value" : "鍵模式,例如 user:*" } } } }, - "Links you chose to always allow. TablePro connects without asking. Only connections on this machine can be trusted." : { + "Key Prefix Root" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "항상 허용하도록 선택한 링크입니다. TablePro가 묻지 않고 연결합니다. 이 컴퓨터의 연결만 신뢰할 수 있습니다." + "value" : "키 접두사 루트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Her zaman izin vermeyi seçtiğiniz bağlantılar. TablePro sormadan bağlanır. Yalnızca bu makinedeki bağlantılara güvenilebilir." + "value" : "Anahtar Önek Kökü" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Các liên kết bạn đã chọn luôn cho phép. TablePro kết nối mà không hỏi lại. Chỉ các kết nối trên máy này mới có thể được tin cậy." + "value" : "Tiền tố gốc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "你选择始终允许的链接。TablePro 会直接连接,不再询问。只有本机上的连接才能被信任。" + "value" : "键前缀根" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "你選擇一律允許的連結。TablePro 會直接連線,不再詢問。只有本機上的連線才能被信任。" + "value" : "索引鍵前綴根目錄" } } } }, - "List" : { + "Key Separator" : { + + }, + "Key-Value" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "목록" + "value" : "키-값" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Liste" + "value" : "Anahtar-Değer" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "List" + "value" : "Key-Value" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "列表" + "value" : "键值" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "清單" + "value" : "鍵值" } } } }, - "List Connections" : { + "Keyboard" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 목록" + "value" : "키보드" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantıları Listele" + "value" : "Klavye" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Liệt kê kết nối" + "value" : "Bàn phím" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "列出连接" + "value" : "键盘" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "列出連線" + "value" : "鍵盤" } } } }, - "List Databases" : { + "Keyboard Interactive" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 목록" + "value" : "키보드 대화형" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanlarını Listele" + "value" : "Klavye Etkileşimli" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Liệt kê cơ sở dữ liệu" + "value" : "Keyboard Interactive" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "列出数据库" + "value" : "Keyboard Interactive" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "列出資料庫" + "value" : "Keyboard Interactive" } } } }, - "List Recent Tabs" : { + "Keys" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "최근 탭 목록" + "value" : "키" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Son Sekmeleri Listele" + "value" : "Anahtarlar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Liệt kê tab gần đây" + "value" : "Khóa" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "列出最近标签页" + "value" : "键" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "列出最近的分頁" + "value" : "鍵" } } } }, - "List Schemas" : { + "Keys are provided by the SSH agent (e.g. 1Password, ssh-agent)." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "스키마 목록" + "value" : "키는 SSH 에이전트(예: 1Password, ssh-agent)에서 제공됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Şemaları Listele" + "value" : "Anahtarlar SSH aracı tarafından sağlanır (örn. 1Password, ssh-agent)." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Liệt kê schema" + "value" : "Khóa được cung cấp bởi SSH agent (ví dụ: 1Password, ssh-agent)." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "列出 Schema" + "value" : "密钥由 SSH Agent 提供(如 1Password、ssh-agent)。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "列出綱要" + "value" : "金鑰由 SSH Agent 提供(如 1Password、ssh-agent)。" } } } }, - "List Tables" : { + "Keyword" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 목록" + "value" : "키워드" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tabloları Listele" + "value" : "Anahtar Kelime" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Liệt kê bảng" + "value" : "Từ khoá" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "列出表" + "value" : "关键字" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "列出資料表" + "value" : "關鍵字" } } } }, - "List all databases on the server" : { + "Keyword cannot contain spaces" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "서버의 모든 데이터베이스 나열" + "value" : "키워드에는 공백을 포함할 수 없습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sunucudaki tüm veritabanlarını listele" + "value" : "Anahtar kelime boşluk içeremez" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Liệt kê tất cả cơ sở dữ liệu trên máy chủ" + "value" : "Từ khoá không được chứa khoảng trắng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "列出服务器上的所有数据库" + "value" : "关键字不能包含空格" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "列出伺服器上的所有資料庫" + "value" : "關鍵字不能包含空格" } } } }, - "List all saved database connections with their current status." : { + "Keyword:" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "저장된 모든 데이터베이스 연결과 현재 상태를 나열합니다." + "value" : "키워드:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kayıtlı tüm veritabanı bağlantılarını geçerli durumlarıyla listeler." + "value" : "Anahtar Kelime:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Liệt kê tất cả kết nối cơ sở dữ liệu đã lưu cùng trạng thái hiện tại." + "value" : "Từ khoá:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "列出所有已保存的数据库连接及其当前状态。" + "value" : "关键字:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "列出所有已儲存的資料庫連線及其目前狀態。" + "value" : "關鍵字:" } } } }, - "List all saved database connections with their status" : { + "keyword: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "저장된 모든 데이터베이스 연결과 상태 나열" + "value" : "키워드: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kayıtlı tüm veritabanı bağlantılarını durumlarıyla listele" + "value" : "anahtar sözcük: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Liệt kê tất cả kết nối cơ sở dữ liệu đã lưu cùng trạng thái" + "value" : "từ khoá: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "列出所有已保存的数据库连接及其状态" + "value" : "关键字:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "列出所有已儲存的資料庫連線及其狀態" + "value" : "關鍵字:%@" } } } }, - "List available commands" : { + "killing a server session" : { + + }, + "Kind" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사용 가능한 명령어 나열" + "value" : "종류" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kullanılabilir komutları listele" + "value" : "Tür" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Liệt kê các lệnh khả dụng" + "value" : "Loại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "列出可用命令" + "value" : "类型" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "列出可用的指令" + "value" : "類型" } } } }, - "List currently open tabs across all TablePro windows. Returns connection, tab type, table name, and titles for each tab." : { + "Kind of tab" : { + + }, + "Kind:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열려 있는 모든 TablePro 창의 탭을 나열합니다. 각 탭의 연결, 탭 유형, 테이블 이름 및 제목을 반환합니다." + "value" : "종류:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm TablePro pencerelerinde şu anda açık olan sekmeleri listeler. Her sekme için bağlantı, sekme türü, tablo adı ve başlıkları döndürür." + "value" : "Tür:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Liệt kê các tab đang mở trên tất cả cửa sổ TablePro. Trả về kết nối, loại tab, tên bảng và tiêu đề của mỗi tab." + "value" : "Loại:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "列出所有 TablePro 窗口中当前打开的标签页。返回每个标签页的连接、标签页类型、表名和标题。" + "value" : "类型:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "列出所有 TablePro 視窗中目前開啟的分頁。會回傳每個分頁的連線、分頁類型、資料表名稱與標題。" + "value" : "類型:" } } } }, - "List databases available on a connection." : { + "Language %@" : { + + }, + "Language the routine is written in" : { + + }, + "Language:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결에서 사용할 수 있는 데이터베이스를 나열합니다." + "value" : "언어:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bir bağlantıda kullanılabilir veritabanlarını listeler." + "value" : "Dil:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Liệt kê các cơ sở dữ liệu khả dụng trên một kết nối." + "value" : "Ngôn ngữ:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "列出连接上可用的数据库。" + "value" : "语言:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "列出連線上可用的資料庫。" + "value" : "語言:" } } } }, - "List of all saved database connections with metadata" : { + "Large" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "메타데이터가 포함된 저장된 모든 데이터베이스 연결 목록" + "value" : "큼" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Meta verileriyle birlikte kayıtlı tüm veritabanı bağlantılarının listesi" + "value" : "Büyük" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Danh sách tất cả kết nối cơ sở dữ liệu đã lưu kèm metadata" + "value" : "Lớn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "所有已保存数据库连接及其元数据的列表" + "value" : "大" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "所有已儲存的資料庫連線及其中繼資料的清單" + "value" : "大" } } } }, - "List schemas available in the active database of a connection." : { + "Last 4 Weeks" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결의 활성 데이터베이스에서 사용할 수 있는 스키마를 나열합니다." + "value" : "최근 4주" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bir bağlantının etkin veritabanındaki şemaları listeler." + "value" : "Son 4 Hafta" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Liệt kê các schema có trong cơ sở dữ liệu đang hoạt động của một kết nối." + "value" : "4 tuần qua" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "列出连接当前数据库中可用的 Schema。" + "value" : "最近 4 周" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "列出連線目前資料庫中可用的綱要。" + "value" : "最近 4 週" } } } }, - "List schemas in a database" : { + "Last 7 days" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스의 스키마 나열" + "value" : "최근 7일" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bir veritabanındaki şemaları listele" + "value" : "Son 7 gün" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Liệt kê schema trong một cơ sở dữ liệu" + "value" : "7 ngày qua" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "列出数据库中的 Schema" + "value" : "过去 7 天" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "列出資料庫中的綱要" + "value" : "過去 7 天" } } } }, - "List tables and views in a database" : { + "Last 7 Days" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스의 테이블 및 뷰 나열" + "value" : "최근 7일" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bir veritabanındaki tabloları ve görünümleri listele" + "value" : "Son 7 Gün" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Liệt kê bảng và view trong một cơ sở dữ liệu" + "value" : "7 ngày qua" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "列出数据库中的表和视图" + "value" : "最近 7 天" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "列出資料庫中的資料表與檢視表" + "value" : "最近 7 天" } } } }, - "List tables and views in the active database of a connection." : { + "Last 24 hours" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결의 활성 데이터베이스에 있는 테이블과 뷰를 나열합니다." + "value" : "최근 24시간" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bir bağlantının etkin veritabanındaki tabloları ve görünümleri listeler." + "value" : "Son 24 saat" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Liệt kê bảng và view trong cơ sở dữ liệu đang hoạt động của một kết nối." + "value" : "24 giờ qua" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "列出连接当前数据库中的表和视图。" + "value" : "过去 24 小时" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "列出連線目前資料庫中的資料表與檢視表。" + "value" : "過去 24 小時" } } } }, - "Listens on all interfaces (0.0.0.0), reachable from your local network." : { + "Last 30 days" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 인터페이스(0.0.0.0)에서 수신 대기하므로 로컬 네트워크에서 접근할 수 있습니다." + "value" : "최근 30일" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm arabirimleri (0.0.0.0) dinler, yerel ağınızdan erişilebilir." + "value" : "Son 30 gün" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lắng nghe trên mọi giao diện mạng (0.0.0.0), có thể truy cập từ mạng cục bộ của bạn." + "value" : "30 ngày qua" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "监听所有网络接口(0.0.0.0),可从本地网络访问。" + "value" : "过去 30 天" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "監聽所有網路介面(0.0.0.0),可從你的區域網路存取。" + "value" : "過去 30 天" } } } }, - "Listens only on 127.0.0.1." : { + "Last Activity" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "127.0.0.1에서만 수신 대기합니다." + "value" : "마지막 활동" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yalnızca 127.0.0.1 üzerinde dinler." + "value" : "Son Etkinlik" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chỉ lắng nghe trên 127.0.0.1." + "value" : "Hoạt động gần nhất" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "仅监听 127.0.0.1。" + "value" : "最近活动" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "只監聽 127.0.0.1。" + "value" : "最近活動" } } } }, - "Load" : { - "extractionState" : "stale", + "Last Hour" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "불러오기" + "value" : "최근 1시간" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yükle" + "value" : "Son Bir Saat" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tải" + "value" : "1 giờ qua" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "加载" + "value" : "最近 1 小时" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "載入" + "value" : "最近 1 小時" } } } }, - "Load Models" : { - "extractionState" : "stale", + "Last page" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모델 불러오기" + "value" : "마지막 페이지" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Modelleri Yükle" + "value" : "Son sayfa" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tải mô hình" + "value" : "Trang cuối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "加载模型" + "value" : "最后一页" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "載入模型" + "value" : "最後一頁" } } } }, - "Load More" : { + "Last Page" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "더 불러오기" + "value" : "마지막 페이지" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Daha Fazla Yükle" + "value" : "Son Sayfa" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tải thêm" + "value" : "Trang cuối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "加载更多" + "value" : "最后一页" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "載入更多" + "value" : "最後一頁" } } } }, - "Load Query" : { + "Last query execution summary" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 불러오기" + "value" : "마지막 쿼리 실행 요약" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorguyu Yükle" + "value" : "Son sorgu çalıştırma özeti" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tải truy vấn" + "value" : "Tổng kết thực thi truy vấn gần nhất" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "加载查询" + "value" : "上次查询执行摘要" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "載入查詢" + "value" : "上次查詢執行摘要" } } } }, - "Load Table Template" : { - "extractionState" : "stale", + "Last query execution time" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 템플릿 불러오기" + "value" : "마지막 쿼리 실행 시간" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tablo Şablonu Yükle" + "value" : "Son sorgu çalıştırma süresi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tải mẫu bảng" + "value" : "Thời gian thực thi truy vấn gần nhất" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "加载表模板" + "value" : "上次查询执行时间" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "載入資料表範本" + "value" : "上次查詢執行時間" } } } }, - "Load Template" : { - "extractionState" : "stale", + "Last query took %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "템플릿 불러오기" + "value" : "마지막 쿼리 소요 시간: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Şablon Yükle" + "value" : "Son sorgu %@ sürdü" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tải mẫu" + "value" : "Truy vấn trước mất %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "加载模板" + "value" : "上次查询耗时 %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "載入範本" + "value" : "上次查詢耗時 %@" } } } }, - "Load in Editor" : { + "Last query: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "편집기에서 불러오기" + "value" : "마지막 쿼리: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Düzenleyiciye Yükle" + "value" : "Son sorgu: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tải vào trình soạn thảo" + "value" : "Truy vấn gần nhất: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在编辑器中加载" + "value" : "上次查询: %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在編輯器中載入" + "value" : "上次查詢:%@" } } } }, - "Load the rows the row cap left behind." : { + "Last synced %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "행 제한으로 남겨진 행을 불러옵니다." + "value" : "마지막 동기화: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satır sınırının dışında kalan satırları yükleyin." + "value" : "Son eşitleme %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tải những hàng còn lại sau giới hạn hàng." + "value" : "Đồng bộ lần cuối %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "加载行数上限之外剩余的行。" + "value" : "上次同步 %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "載入列數上限之外剩餘的列。" + "value" : "上次同步 %@" } } } }, - "Loading %@…" : { + "Last Synced:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 불러오는 중…" + "value" : "마지막 동기화:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ yükleniyor…" + "value" : "Son Eşitlendi:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang tải %@…" + "value" : "Đồng bộ lần cuối:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在加载 %@…" + "value" : "上次同步:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在載入 %@…" + "value" : "上次同步:" } } } }, - "Loading dashboard…" : { + "Last updated" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "대시보드 불러오는 중…" + "value" : "마지막 업데이트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Pano yükleniyor…" + "value" : "Son güncelleme" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang tải bảng điều khiển…" + "value" : "Cập nhật lần cuối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在加载仪表盘…" + "value" : "最后更新" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在載入儀表板…" + "value" : "最後更新" } } } }, - "Loading databases…" : { + "Latency: %dms" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 불러오는 중…" + "value" : "지연 시간: %dms" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanları yükleniyor…" + "value" : "Gecikme: %dms" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang tải cơ sở dữ liệu…" + "value" : "Độ trễ: %dms" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在载入数据库…" + "value" : "延迟:%dms" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在載入資料庫…" + "value" : "延遲:%dms" } } } }, - "Loading insights…" : { + "Latency: %lldms" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "인사이트 불러오는 중…" + "value" : "지연 시간: %lldms" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Analizler yükleniyor…" + "value" : "Gecikme: %lldms" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang tải phân tích…" + "value" : "Độ trễ: %lldms" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在加载分析…" + "value" : "延迟: %lldms" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在載入分析…" + "value" : "延遲:%lldms" } } } }, - "Loading keys…" : { + "Latest executed_at to include, Unix epoch seconds (inclusive, optional)" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "키 불러오는 중…" + "value" : "포함할 가장 최근 executed_at 값(Unix 에포크 초, 경계값 포함, 선택 사항)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Anahtarlar yükleniyor…" + "value" : "Dahil edilecek en geç executed_at, Unix epoch saniyesi (dahil, isteğe bağlı)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang tải khóa…" + "value" : "Mốc executed_at muộn nhất được tính, giây Unix epoch (bao gồm mốc này, tùy chọn)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在加载键…" + "value" : "要包含的最晚 executed_at,Unix 纪元秒(含,可选)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在載入鍵…" + "value" : "要包含的最晚 executed_at,Unix 紀元秒(含此值,選填)" } } } }, - "Loading more rows" : { + "Latest executed_at, Unix epoch seconds" : { + + }, + "Layout" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "행을 더 불러오는 중" + "value" : "레이아웃" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Daha fazla satır yükleniyor" + "value" : "Düzen" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang tải thêm hàng" + "value" : "Bố cục" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在载入更多行" + "value" : "布局" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在載入更多列" + "value" : "版面配置" } } } }, - "Loading options..." : { - "extractionState" : "stale", + "Layout for new connections on servers that support a database tree. Switch the current connection from the View menu." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "옵션 불러오는 중..." + "value" : "데이터베이스 트리를 지원하는 서버의 새 연결에 사용할 레이아웃입니다. 보기 메뉴에서 현재 연결의 레이아웃을 전환할 수 있습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Seçenekler yükleniyor..." + "value" : "Veritabanı ağacını destekleyen sunucularda yeni bağlantılar için düzen. Geçerli bağlantıyı Görünüm menüsünden değiştirin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang tải tùy chọn..." + "value" : "Bố cục cho kết nối mới trên máy chủ hỗ trợ cây cơ sở dữ liệu. Chuyển đổi cho kết nối hiện tại từ menu Xem." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在加载选项…" + "value" : "支持数据库树的服务器上新建连接所用的布局。可在“视图”菜单中切换当前连接的布局。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在載入選項…" + "value" : "支援資料庫樹狀結構的伺服器上,新連線所用的版面配置。可從「檢視」選單切換目前連線的版面配置。" } } } }, - "Loading options…" : { + "Leading keyword class" : { + + }, + "Leave blank to connect without authentication. The password is stored in the macOS Keychain." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "옵션 불러오는 중…" + "value" : "인증 없이 연결하려면 비워 두십시오. 암호는 macOS 키체인에 저장됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Seçenekler yükleniyor…" + "value" : "Kimlik doğrulamasız bağlanmak için boş bırakın. Parola macOS Keychain'de saklanır." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang tải tùy chọn…" + "value" : "Để trống để kết nối không cần xác thực. Mật khẩu được lưu trong macOS Keychain." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在载入选项…" + "value" : "留空即可在不认证的情况下连接。密码保存在 macOS 钥匙串中。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在載入選項…" + "value" : "留空即可在不驗證的情況下連線。密碼儲存在 macOS 鑰匙圈中。" } } } }, - "Loading page" : { + "Leave the principal and password blank to use your existing Kerberos ticket. Run kinit user@REALM.COM in Terminal first if you don't have one." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "페이지 불러오는 중" + "value" : "기존 Kerberos 티켓을 사용하려면 보안 주체와 암호를 비워 두십시오. 티켓이 없으면 먼저 터미널에서 kinit user@REALM.COM을 실행하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sayfa yükleniyor" + "value" : "Mevcut Kerberos biletinizi kullanmak için principal ve parolayı boş bırakın. Biletiniz yoksa önce Terminal'de kinit user@REALM.COM çalıştırın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang tải trang" + "value" : "Để trống principal và mật khẩu để dùng vé Kerberos hiện có. Nếu chưa có, hãy chạy kinit user@REALM.COM trong Terminal trước." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在载入页面" + "value" : "留空 principal 和密码即可使用现有的 Kerberos 票据。如果没有,请先在终端运行 kinit user@REALM.COM。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在載入頁面" + "value" : "留空 principal 和密碼即可使用現有的 Kerberos 票證。如果沒有,請先在終端機執行 kinit user@REALM.COM。" } } } }, - "Loading plugins..." : { - "extractionState" : "stale", + "Legacy UUID Encoding" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플러그인 불러오는 중..." + "value" : "레거시 UUID 인코딩" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklentiler yükleniyor..." + "value" : "Eski UUID Kodlaması" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang tải plugin..." + "value" : "Mã hoá UUID cũ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在加载插件..." + "value" : "旧版 UUID 编码" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在載入外掛…" + "value" : "舊版 UUID 編碼" } } } }, - "Loading schemas..." : { + "Length" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "스키마 불러오는 중..." + "value" : "길이" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Şemalar yükleniyor..." + "value" : "Uzunluk" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang tải schema..." + "value" : "Độ dài" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在加载 Schema..." + "value" : "长度" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在載入綱要…" + "value" : "長度" } } } }, - "Loading schemas…" : { + "Length:" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "스키마 불러오는 중…" + "value" : "길이:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Şemalar yükleniyor…" + "value" : "Uzunluk:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang tải schema…" + "value" : "Độ dài:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在载入 Schema…" + "value" : "长度:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在載入綱要…" + "value" : "長度:" } } } }, - "Loading schema…" : { + "less or equal" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "스키마 불러오는 중…" + "value" : "작거나 같음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Şema yükleniyor…" + "value" : "küçük veya eşit" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang tải schema…" + "value" : "nhỏ hơn hoặc bằng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在加载架构…" + "value" : "小于或等于" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在載入綱要…" + "value" : "小於或等於" } } } }, - "Loading tables..." : { - "extractionState" : "stale", + "less than" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 불러오는 중..." + "value" : "보다 작음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tablolar yükleniyor..." + "value" : "küçüktür" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang tải danh sách bảng..." + "value" : "nhỏ hơn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在加载表..." + "value" : "小于" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在載入資料表…" + "value" : "小於" } } } }, - "Loading tables…" : { - "extractionState" : "stale", + "License" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 불러오는 중…" + "value" : "라이선스" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tablolar yükleniyor…" + "value" : "Lisans" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang tải bảng…" + "value" : "Giấy phép" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在载入表…" + "value" : "许可证" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在載入資料表…" + "value" : "授權" } } } }, - "Loading users and roles…" : { + "License expired — sync paused" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사용자 및 역할 불러오는 중…" + "value" : "라이선스 만료 — 동기화 일시 정지" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kullanıcılar ve roller yükleniyor…" + "value" : "Lisans süresi doldu — eşitleme duraklatıldı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang tải người dùng và vai trò…" + "value" : "Giấy phép hết hạn — tạm dừng đồng bộ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在加载用户和角色…" + "value" : "许可证已过期 - 同步已暂停" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在載入使用者與角色…" + "value" : "授權已過期,同步已暫停" } } } }, - "Loading…" : { + "License expired, sync paused" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "불러오는 중…" + "value" : "라이선스 만료, 동기화 일시 정지" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yükleniyor…" + "value" : "Lisansın süresi doldu, eşitleme duraklatıldı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang tải…" + "value" : "Giấy phép đã hết hạn, đồng bộ tạm dừng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在加载…" + "value" : "许可证已过期,同步已暂停" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在載入…" + "value" : "授權已過期,同步已暫停" } } } }, - "Local" : { + "License expires in %lld day(s)" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "License expires in %lld day(s)" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "로컬" + "value" : "라이선스가 %lld일 후 만료됩니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yerel" + "value" : "Lisans %lld gün içinde sona eriyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cục bộ" + "value" : "Giấy phép hết hạn sau %lld ngày" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "本地" + "value" : "许可证将在 %lld 天后过期" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "本機" + "value" : "授權將在 %lld 天後過期" } } } }, - "Local File" : { + "License Key:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "로컬 파일" + "value" : "라이선스 키:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yerel Dosya" + "value" : "Lisans Anahtarı:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tệp cục bộ" + "value" : "Mã giấy phép:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "本地文件" + "value" : "许可证密钥:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "本機檔案" + "value" : "授權金鑰:" } } } }, - "Local Listener" : { + "License Not Yet Confirmed" : { + + }, + "License public key is invalid." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "로컬 리스너" + "value" : "라이선스 공개 키가 올바르지 않습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yerel Dinleyici" + "value" : "Lisans açık anahtarı geçersiz." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trình lắng nghe cục bộ" + "value" : "Khoá công khai giấy phép không hợp lệ." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "本地监听器" + "value" : "许可证公钥无效。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "本機監聽器" + "value" : "授權公開金鑰無效。" } } } }, - "Local only" : { + "License public key not found in app bundle." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "로컬 전용" + "value" : "앱 번들에서 라이선스 공개 키를 찾을 수 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sadece yerel" + "value" : "Uygulama paketinde lisans açık anahtarı bulunamadı." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chỉ cục bộ" + "value" : "Không tìm thấy khoá công khai giấy phép trong gói ứng dụng." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "仅本地" + "value" : "应用包中未找到许可证公钥。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "僅限本機" + "value" : "在應用程式套件中找不到授權公開金鑰。" } } } }, - "Local only - not synced to iCloud" : { - "extractionState" : "stale", + "License Removed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "로컬 전용 - iCloud에 동기화되지 않음" + "value" : "라이선스 제거됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sadece yerel - iCloud ile eşitlenmiyor" + "value" : "Lisans Kaldırıldı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chỉ cục bộ - không đồng bộ lên iCloud" + "value" : "Giấy phép đã xoá" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "仅本地 - 不同步到 iCloud" + "value" : "许可证已移除" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "僅限本機,不同步至 iCloud" + "value" : "授權已移除" } } } }, - "Local only, not synced to iCloud" : { + "License removed from this Mac, but the server could not be reached. The activation slot may not be freed until it expires." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "로컬 전용, iCloud에 동기화되지 않음" + "value" : "이 Mac에서 라이선스가 제거되었지만 서버에 연결할 수 없습니다. 만료될 때까지 활성화 슬롯이 해제되지 않을 수 있습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yalnızca yerel, iCloud ile eşzamanlanmaz" + "value" : "Lisans bu Mac'ten kaldırıldı, ancak sunucuya ulaşılamadı. Etkinleştirme yuvası süresi dolana kadar serbest bırakılmayabilir." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chỉ lưu cục bộ, không đồng bộ với iCloud" + "value" : "Giấy phép đã xoá khỏi máy Mac này, nhưng không thể liên hệ máy chủ. Vị trí kích hoạt có thể không được giải phóng cho đến khi hết hạn." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "仅本地存储,不同步到 iCloud" + "value" : "许可证已从此 Mac 移除,但无法连接服务器。激活位可能需要到期后才能释放。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "僅儲存於本機,不會同步到 iCloud" + "value" : "授權已從此 Mac 移除,但無法連線到伺服器。啟用名額可能要到期後才會釋出。" } } } }, - "Local port" : { + "License signature verification failed." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "로컬 포트" + "value" : "라이선스 서명 확인에 실패했습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yerel port" + "value" : "Lisans imza doğrulaması başarısız oldu." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cổng cục bộ" + "value" : "Xác minh chữ ký giấy phép thất bại." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "本地端口" + "value" : "许可证签名验证失败。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "本機連接埠" + "value" : "授權簽章驗證失敗。" } } } }, - "Local port must be between 1 and 65535" : { + "License validation failed" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "License validation failed" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "로컬 포트는 1에서 65535 사이여야 합니다" + "value" : "라이선스 유효성 검사 실패" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yerel port 1 ile 65535 arasında olmalıdır" + "value" : "Lisans doğrulaması başarısız oldu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cổng cục bộ phải nằm trong khoảng 1 đến 65535" + "value" : "Xác thực giấy phép thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "本地端口必须介于 1 到 65535 之间" + "value" : "许可证验证失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "本機連接埠必須介於 1 到 65535 之間" + "value" : "授權驗證失敗" } } } }, - "Location" : { + "License verification failed. Try updating the app to the latest version." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "위치" + "value" : "라이선스를 확인하지 못했습니다. 앱을 최신 버전으로 업데이트해 보십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Konum" + "value" : "Lisans doğrulaması başarısız oldu. Uygulamayı en son sürüme güncellemeyi deneyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Vị trí" + "value" : "Xác minh giấy phép thất bại. Hãy thử cập nhật ứng dụng lên phiên bản mới nhất." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "位置" + "value" : "许可证验证失败。请尝试更新到最新版本。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "位置" + "value" : "授權驗證失敗。請嘗試將應用程式更新到最新版本。" } } } }, - "Log MCP queries in history" : { + "Lifetime" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Lifetime" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기록에 MCP 쿼리 로그 남기기" + "value" : "영구" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "MCP sorgularını geçmişe kaydet" + "value" : "Ömür Boyu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ghi truy vấn MCP vào lịch sử" + "value" : "Trọn đời" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在历史记录中记录 MCP 查询" + "value" : "终身" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在歷史紀錄中記錄 MCP 查詢" + "value" : "終身" } } } }, - "Looking for database settings…" : { + "Light" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 설정을 찾는 중…" + "value" : "라이트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı ayarları aranıyor…" + "value" : "Açık" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang tìm cài đặt cơ sở dữ liệu…" + "value" : "Sáng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在查找数据库设置…" + "value" : "浅色" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在尋找資料庫設定…" + "value" : "淺色" } } } }, - "Looks like a placeholder value" : { + "Limit" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "자리표시자 값인 것 같습니다" + "value" : "제한" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yer tutucu bir değere benziyor" + "value" : "Limit" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trông giống giá trị mẫu" + "value" : "Giới hạn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "看起来是占位值" + "value" : "限制" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "看起來是預留位置值" + "value" : "限制" } } } }, - "Loops" : { - "comment" : "Label for the number of loops in a query plan.", - "isCommentAutoGenerated" : true, + "Limit tool calls per reply" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "반복 횟수" + "value" : "답변당 도구 호출 제한" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Döngü" + "value" : "Yanıt başına araç çağrılarını sınırla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Số vòng lặp" + "value" : "Giới hạn số lần gọi công cụ mỗi câu trả lời" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "循环次数" + "value" : "限制每条回复的工具调用次数" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "迴圈次數" + "value" : "限制每則回覆的工具呼叫次數" } } } }, - "Low" : { + "Limits" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "낮음" + "value" : "제한" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Düşük" + "value" : "Limitler" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thấp" + "value" : "Giới hạn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "低" + "value" : "限制" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "低" + "value" : "限制" } } } }, - "Low cost" : { - "comment" : "Accessibility label for a low cost severity.", - "isCommentAutoGenerated" : true, + "Line" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "낮은 비용" + "value" : "선" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Düşük maliyet" + "value" : "Çizgi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chi phí thấp" + "value" : "Đường" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "低成本" + "value" : "折线" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "低成本" + "value" : "折線" } } } }, - "MCP Access Request" : { + "Line %1$lld: %2$@" : { + "comment" : "A line in the import error log. The first argument is the line number. The second argument is the error message.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "MCP 접근 요청" + "value" : "%1$lld행: %2$@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "MCP Erişim İsteği" + "value" : "Satır %1$lld: %2$@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Yêu cầu truy cập MCP" + "value" : "Dòng %1$lld: %2$@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "MCP 访问请求" + "value" : "第 %1$lld 行:%2$@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "MCP 存取要求" + "value" : "第 %1$lld 行:%2$@" } } } }, - "MCP Configuration" : { + "Line %lld: %@" : { "extractionState" : "stale", "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Line %1$lld: %2$@" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "MCP 구성" + "value" : "%1$lld행: %2$@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "MCP Yapılandırması" + "value" : "Satır %lld: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cấu hình MCP" + "value" : "Dòng %lld: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "MCP 配置" + "value" : "第 %lld 行:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "MCP 設定" + "value" : "第 %1$lld 行:%2$@" } } } }, - "MCP Server" : { + "Line break" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "MCP 서버" + "value" : "줄바꿈" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "MCP Sunucusu" + "value" : "Satır sonu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "MCP Server" + "value" : "Xuống dòng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "MCP 服务器" + "value" : "换行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "MCP 伺服器" + "value" : "換行" } } } }, - "MCP Server: Failed" : { - "extractionState" : "stale", + "Line ending" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "MCP 서버: 실패" + "value" : "줄 끝" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "MCP Sunucusu: Başarısız" + "value" : "Satır sonu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "MCP Server: Thất bại" + "value" : "Ký tự xuống dòng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "MCP 服务器:失败" + "value" : "换行符" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "MCP 伺服器:失敗" + "value" : "換行字元" } } } }, - "MCP Server: Running" : { - "extractionState" : "stale", + "Line Number" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "MCP 서버: 실행 중" + "value" : "줄 번호" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "MCP Sunucusu: Çalışıyor" + "value" : "Satır Numarası" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "MCP Server: Đang chạy" + "value" : "Số dòng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "MCP 服务器:运行中" + "value" : "行号" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "MCP 伺服器:執行中" + "value" : "行號" } } } }, - "MCP Server: Running (%d clients)" : { - "extractionState" : "stale", + "Link a Folder…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "MCP 서버: 실행 중(클라이언트 %d개)" + "value" : "폴더 연결…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "MCP Sunucusu: Çalışıyor (%d istemci)" + "value" : "Klasör Bağla…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "MCP Server: Đang chạy (%d client)" + "value" : "Liên kết thư mục…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "MCP 服务器:运行中(%d 个客户端)" + "value" : "链接文件夹…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "MCP 伺服器:執行中(%d 個用戶端)" + "value" : "連結資料夾…" } } } }, - "MCP Server: Starting..." : { - "extractionState" : "stale", + "Linked" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "MCP 서버: 시작 중..." + "value" : "연결됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "MCP Sunucusu: Başlatılıyor..." + "value" : "Bağlantılı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "MCP Server: Đang khởi động..." + "value" : "Đã liên kết" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "MCP 服务器:正在启动…" + "value" : "已链接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "MCP 伺服器:正在啟動…" + "value" : "已連結" } } } }, - "MCP Server: Stopped" : { - "extractionState" : "stale", + "linked file" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "MCP 서버: 중지됨" + "value" : "연결된 파일" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "MCP Sunucusu: Durduruldu" + "value" : "bağlı dosya" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "MCP Server: Đã dừng" + "value" : "tệp liên kết" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "MCP 服务器:已停止" + "value" : "链接的文件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "MCP 伺服器:已停止" + "value" : "已連結的檔案" } } } }, - "MCP Setup" : { - "extractionState" : "stale", + "Linked Folders" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "MCP 설정" + "value" : "연결된 폴더" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "MCP Kurulumu" + "value" : "Bağlantılı Klasörler" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thiết lập MCP" + "value" : "Thư mục Liên kết" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "MCP 设置" + "value" : "链接文件夹" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "MCP 設定" + "value" : "已連結資料夾" } } } }, - "MCP query execution" : { + "Links you chose to always allow. TablePro connects without asking. Only connections on this machine can be trusted." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "MCP 쿼리 실행" + "value" : "항상 허용하도록 선택한 링크입니다. TablePro가 묻지 않고 연결합니다. 이 컴퓨터의 연결만 신뢰할 수 있습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "MCP sorgu çalıştırma" + "value" : "Her zaman izin vermeyi seçtiğiniz bağlantılar. TablePro sormadan bağlanır. Yalnızca bu makinedeki bağlantılara güvenilebilir." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thực thi truy vấn MCP" + "value" : "Các liên kết bạn đã chọn luôn cho phép. TablePro kết nối mà không hỏi lại. Chỉ các kết nối trên máy này mới có thể được tin cậy." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "MCP 查询执行" + "value" : "你选择始终允许的链接。TablePro 会直接连接,不再询问。只有本机上的连接才能被信任。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "MCP 查詢執行" + "value" : "你選擇一律允許的連結。TablePro 會直接連線,不再詢問。只有本機上的連線才能被信任。" } } } }, - "MEDIUM" : { + "List" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "중간" + "value" : "목록" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "ORTA" + "value" : "Liste" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "TRUNG BÌNH" + "value" : "List" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "中等" + "value" : "列表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "中等" + "value" : "清單" } } } }, - "METADATA" : { + "List all databases on the server" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "메타데이터" + "value" : "서버의 모든 데이터베이스 나열" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "META VERİ" + "value" : "Sunucudaki tüm veritabanlarını listele" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "SIÊU DỮ LIỆU" + "value" : "Liệt kê tất cả cơ sở dữ liệu trên máy chủ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "元数据" + "value" : "列出服务器上的所有数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "中繼資料" + "value" : "列出伺服器上的所有資料庫" } } } }, - "MFA Passcode (TOTP)" : { + "List all saved database connections with their current status." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "MFA 인증 코드(TOTP)" + "value" : "저장된 모든 데이터베이스 연결과 현재 상태를 나열합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "MFA Parola Kodu (TOTP)" + "value" : "Kayıtlı tüm veritabanı bağlantılarını geçerli durumlarıyla listeler." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mã MFA (TOTP)" + "value" : "Liệt kê tất cả kết nối cơ sở dữ liệu đã lưu cùng trạng thái hiện tại." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "MFA 验证码(TOTP)" + "value" : "列出所有已保存的数据库连接及其当前状态。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "MFA 驗證碼(TOTP)" + "value" : "列出所有已儲存的資料庫連線及其目前狀態。" } } } }, - "MQL" : { + "List all saved database connections with their status" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "MQL" + "value" : "저장된 모든 데이터베이스 연결과 상태 나열" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "MQL" + "value" : "Kayıtlı tüm veritabanı bağlantılarını durumlarıyla listele" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "MQL" + "value" : "Liệt kê tất cả kết nối cơ sở dữ liệu đã lưu cùng trạng thái" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "MQL" + "value" : "列出所有已保存的数据库连接及其状态" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "MQL" + "value" : "列出所有已儲存的資料庫連線及其狀態" } } } }, - "MQL Preview" : { - "extractionState" : "stale", + "List available commands" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "MQL 미리보기" + "value" : "사용 가능한 명령어 나열" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "MQL Önizleme" + "value" : "Kullanılabilir komutları listele" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xem trước MQL" + "value" : "Liệt kê các lệnh khả dụng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "MQL 预览" + "value" : "列出可用命令" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "MQL 預覽" + "value" : "列出可用的指令" } } } }, - "Maintenance" : { + "List Connections" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "유지 관리" + "value" : "연결 목록" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bakım" + "value" : "Bağlantıları Listele" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bảo trì" + "value" : "Liệt kê kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "维护" + "value" : "列出连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "維護" + "value" : "列出連線" } } } }, - "Majority" : { + "List currently open tabs across all TablePro windows. Returns connection, tab type, table name, and titles for each tab." : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "과반수" + "value" : "열려 있는 모든 TablePro 창의 탭을 나열합니다. 각 탭의 연결, 탭 유형, 테이블 이름 및 제목을 반환합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Çoğunluk" + "value" : "Tüm TablePro pencerelerinde şu anda açık olan sekmeleri listeler. Her sekme için bağlantı, sekme türü, tablo adı ve başlıkları döndürür." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Majority" + "value" : "Liệt kê các tab đang mở trên tất cả cửa sổ TablePro. Trả về kết nối, loại tab, tên bảng và tiêu đề của mỗi tab." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Majority" + "value" : "列出所有 TablePro 窗口中当前打开的标签页。返回每个标签页的连接、标签页类型、表名和标题。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Majority" + "value" : "列出所有 TablePro 視窗中目前開啟的分頁。會回傳每個分頁的連線、分頁類型、資料表名稱與標題。" } } } }, - "Malformed deep link path: %@" : { + "List Databases" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "잘못된 딥 링크 경로: %@" + "value" : "데이터베이스 목록" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Hatalı biçimlendirilmiş deep link yolu: %@" + "value" : "Veritabanlarını Listele" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đường dẫn deep link không hợp lệ: %@" + "value" : "Liệt kê cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "深层链接路径格式错误:%@" + "value" : "列出数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "深層連結路徑格式錯誤:%@" + "value" : "列出資料庫" } } } }, - "Manage Connections" : { + "List databases available on a connection." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 관리" + "value" : "연결에서 사용할 수 있는 데이터베이스를 나열합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantıları Yönet" + "value" : "Bir bağlantıda kullanılabilir veritabanlarını listeler." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Quản lý kết nối" + "value" : "Liệt kê các cơ sở dữ liệu khả dụng trên một kết nối." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "管理连接" + "value" : "列出连接上可用的数据库。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "管理連線" + "value" : "列出連線上可用的資料庫。" } } } }, - "Manage Connections…" : { + "List Favorite Tables" : { + + }, + "List Foreign Keys" : { + + }, + "List foreign keys for one table, or for the whole schema when 'table' is omitted, so joins can be written from the real relationships rather than guessed from column names." : { + + }, + "List Grants" : { + + }, + "List Indexes" : { + + }, + "List indexes for one table, or for every table in the schema when 'table' is omitted. Use it to see what a query can actually use before proposing one." : { + + }, + "List Maintenance Operations" : { + + }, + "List of all saved database connections with metadata" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 관리…" + "value" : "메타데이터가 포함된 저장된 모든 데이터베이스 연결 목록" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantıları Yönet…" + "value" : "Meta verileriyle birlikte kayıtlı tüm veritabanı bağlantılarının listesi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Quản lý kết nối…" + "value" : "Danh sách tất cả kết nối cơ sở dữ liệu đã lưu kèm metadata" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "管理连接…" + "value" : "所有已保存数据库连接及其元数据的列表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "管理連線…" + "value" : "所有已儲存的資料庫連線及其中繼資料的清單" } } } }, - "Manage Tags" : { + "List Open Tabs" : { + + }, + "List Partitions" : { + + }, + "List Recent Tables" : { + + }, + "List Recent Tabs" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "태그 관리" + "value" : "최근 탭 목록" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Etiketleri Yönet" + "value" : "Son Sekmeleri Listele" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Quản lý thẻ" + "value" : "Liệt kê tab gần đây" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "管理标签" + "value" : "列出最近标签页" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "管理標籤" + "value" : "列出最近的分頁" } } } }, - "Manual" : { + "List Routines" : { + + }, + "List Schemas" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "수동" + "value" : "스키마 목록" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Manuel" + "value" : "Şemaları Listele" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thủ công" + "value" : "Liệt kê schema" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "手动" + "value" : "列出 Schema" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "手動" + "value" : "列出綱要" } } } }, - "Markdown" : { + "List schemas available in the active database of a connection." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Markdown" + "value" : "연결의 활성 데이터베이스에서 사용할 수 있는 스키마를 나열합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Markdown" + "value" : "Bir bağlantının etkin veritabanındaki şemaları listeler." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Markdown" + "value" : "Liệt kê các schema có trong cơ sở dữ liệu đang hoạt động của một kết nối." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Markdown" + "value" : "列出连接当前数据库中可用的 Schema。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Markdown" + "value" : "列出連線目前資料庫中可用的綱要。" } } } }, - "Massive" : { + "List schemas in a database" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "매우 큼" + "value" : "데이터베이스의 스키마 나열" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Çok Büyük" + "value" : "Bir veritabanındaki şemaları listele" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cực lớn" + "value" : "Liệt kê schema trong một cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "巨大" + "value" : "列出数据库中的 Schema" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "巨大" + "value" : "列出資料庫中的綱要" } } } }, - "Match ALL filters (AND) or ANY filter (OR)" : { - "extractionState" : "stale", + "List Session Contexts" : { + + }, + "List stored procedures and user-defined functions in a schema." : { + + }, + "List Tables" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 필터(AND) 또는 하나 이상의 필터(OR)와 일치" + "value" : "테이블 목록" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "TÜM filtrelerle eşleş (VE) veya HERHANGİ bir filtreyle (VEYA)" + "value" : "Tabloları Listele" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khớp TẤT CẢ bộ lọc (AND) hoặc BẤT KỲ bộ lọc (OR)" + "value" : "Liệt kê bảng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "匹配所有筛选条件 (AND) 或任意筛选条件 (OR)" + "value" : "列出表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "符合所有篩選條件 (AND) 或任一篩選條件 (OR)" + "value" : "列出資料表" } } } }, - "Match All" : { + "List tables and views in a database" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모두 일치" + "value" : "데이터베이스의 테이블 및 뷰 나열" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tümü Eşleşsin" + "value" : "Bir veritabanındaki tabloları ve görünümleri listele" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khớp tất cả" + "value" : "Liệt kê bảng và view trong một cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "匹配全部" + "value" : "列出数据库中的表和视图" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "符合全部" + "value" : "列出資料庫中的資料表與檢視表" } } } }, - "Match Any" : { + "List tables and views in the active database of a connection." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "하나라도 일치" + "value" : "연결의 활성 데이터베이스에 있는 테이블과 뷰를 나열합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Herhangi Biri Eşleşsin" + "value" : "Bir bağlantının etkin veritabanındaki tabloları ve görünümleri listeler." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khớp bất kỳ" + "value" : "Liệt kê bảng và view trong cơ sở dữ liệu đang hoạt động của một kết nối." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "匹配任一" + "value" : "列出连接当前数据库中的表和视图。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "符合任一" + "value" : "列出連線目前資料庫中的資料表與檢視表。" } } } }, - "Match Case" : { + "List the databases on the server, sorted by name." : { + + }, + "List the direct partitions of a partitioned table. Empty for engines without partitioning." : { + + }, + "List the maintenance operations this engine supports, such as VACUUM, ANALYZE, or OPTIMIZE." : { + + }, + "List the options create_database accepts on this engine, with their allowed values." : { + + }, + "List the privileges granted to one user or role, with the scope each applies to." : { + + }, + "List the saved database connections this client may use, with their live status. Connections the token cannot reach, or that the user blocked for external clients, are omitted." : { + + }, + "List the schemas inside one database, sorted by name." : { + + }, + "List the session-level contexts this engine exposes, such as a warehouse or a role, with the value the session currently holds." : { + + }, + "List the tables and views in one database and schema, sorted by schema then name. Row counts are approximate and are fetched per table, so they are skipped when the schema holds more than 200 objects." : { + + }, + "List the tables the user opened most recently on a connection, newest first." : { + + }, + "List the tables the user starred on a connection. A good hint at what matters in this database." : { + + }, + "List the tabs open in TablePro for connections this client may reach. Each entry carries the tab id that focus_query_tab takes and the window id that open_table_tab returns." : { + + }, + "List the triggers attached to one table, with their timing, event, and body." : { + + }, + "List the users and roles defined on the server, with their attributes and role memberships." : { + + }, + "List Triggers" : { + + }, + "List Users and Roles" : { + + }, + "Listens on all interfaces (0.0.0.0), reachable from your local network." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "대/소문자 구분" + "value" : "모든 인터페이스(0.0.0.0)에서 수신 대기하므로 로컬 네트워크에서 접근할 수 있습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Büyük/Küçük Harf Eşleştir" + "value" : "Tüm arabirimleri (0.0.0.0) dinler, yerel ağınızdan erişilebilir." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phân biệt hoa thường" + "value" : "Lắng nghe trên mọi giao diện mạng (0.0.0.0), có thể truy cập từ mạng cục bộ của bạn." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "区分大小写" + "value" : "监听所有网络接口(0.0.0.0),可从本地网络访问。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "區分大小寫" + "value" : "監聽所有網路介面(0.0.0.0),可從你的區域網路存取。" } } } }, - "Match System" : { - "comment" : "Text for a sidebar row size preference that matches the system's sidebar row size.", - "isCommentAutoGenerated" : true, + "Listens only on 127.0.0.1." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "시스템 설정 따르기" + "value" : "127.0.0.1에서만 수신 대기합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sistemle Aynı" + "value" : "Yalnızca 127.0.0.1 üzerinde dinler." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Theo hệ thống" + "value" : "Chỉ lắng nghe trên 127.0.0.1." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "跟随系统" + "value" : "仅监听 127.0.0.1。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "跟隨系統" + "value" : "只監聽 127.0.0.1。" } } } }, - "Match System follows Sidebar icon size in System Settings > Appearance. Choose a size to fit more objects on screen than the rest of the system shows." : { - "comment" : "Match System", - "isCommentAutoGenerated" : true, + "Load" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "시스템 설정 따르기는 시스템 설정 > 모양의 사이드바 아이콘 크기를 사용합니다. 화면에 시스템의 다른 부분보다 더 많은 개체를 표시하려면 크기를 선택하십시오." + "value" : "불러오기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sistemle Aynı, Sistem Ayarları > Görünüm bölümündeki Kenar Çubuğu simge boyutunu izler. Sistemin geri kalanından daha fazla nesneyi ekrana sığdırmak için bir boyut seçin." + "value" : "Yükle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Theo hệ thống sẽ dùng cỡ biểu tượng Thanh bên trong Cài đặt hệ thống > Giao diện. Chọn một cỡ để hiển thị nhiều đối tượng hơn so với phần còn lại của hệ thống." + "value" : "Tải" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "“跟随系统”会采用“系统设置 > 外观”中的侧边栏图标大小。选择一个大小可以在屏幕上显示比系统其余部分更多的对象。" + "value" : "加载" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "「跟隨系統」會採用「系統設定 > 外觀」中的側邊欄圖像大小。選擇一個大小可以在螢幕上顯示比系統其餘部分更多的物件。" + "value" : "載入" } } } }, - "Match all" : { + "Load in Editor" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모두 일치" + "value" : "편집기에서 불러오기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tümüyle eşleştir" + "value" : "Düzenleyiciye Yükle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khớp tất cả" + "value" : "Tải vào trình soạn thảo" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "匹配全部" + "value" : "在编辑器中加载" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "全部符合" + "value" : "在編輯器中載入" } } } }, - "Match all filters or any filter" : { + "Load Models" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 필터 또는 하나 이상의 필터와 일치" + "value" : "모델 불러오기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm filtreleri veya herhangi bir filtreyi eşleştir" + "value" : "Modelleri Yükle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khớp tất cả bộ lọc hoặc bất kỳ bộ lọc nào" + "value" : "Tải mô hình" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "匹配全部筛选条件或任一筛选条件" + "value" : "加载模型" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "符合所有篩選條件或任一篩選條件" + "value" : "載入模型" } } } }, - "Match any" : { + "Load More" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "하나라도 일치" + "value" : "더 불러오기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Herhangi biriyle eşleştir" + "value" : "Daha Fazla Yükle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khớp bất kỳ" + "value" : "Tải thêm" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "匹配任一" + "value" : "加载更多" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "符合任一" + "value" : "載入更多" } } } }, - "Matching ignores case" : { + "Load Query" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "일치 시 대/소문자 무시" + "value" : "쿼리 불러오기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eşleştirme büyük/küçük harfe duyarsız" + "value" : "Sorguyu Yükle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "So khớp không phân biệt hoa thường" + "value" : "Tải truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "匹配时忽略大小写" + "value" : "加载查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "比對時忽略大小寫" + "value" : "載入查詢" } } } }, - "Matching is case-sensitive" : { + "Load Table Template" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "일치 시 대/소문자 구분" + "value" : "테이블 템플릿 불러오기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eşleştirme büyük/küçük harfe duyarlı" + "value" : "Tablo Şablonu Yükle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "So khớp phân biệt hoa thường" + "value" : "Tải mẫu bảng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "匹配时区分大小写" + "value" : "加载表模板" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "比對時區分大小寫" + "value" : "載入資料表範本" } } } }, - "Materialized View" : { + "Load Template" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "구체화된 뷰" + "value" : "템플릿 불러오기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Materyalize Görünüm" + "value" : "Şablon Yükle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Materialized View" + "value" : "Tải mẫu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "物化视图" + "value" : "加载模板" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "具體化檢視表" + "value" : "載入範本" } } } }, - "Materialized Views" : { + "Load the rows the row cap left behind." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "구체화된 뷰" + "value" : "행 제한으로 남겨진 행을 불러옵니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Materyalize Görünümler" + "value" : "Satır sınırının dışında kalan satırları yükleyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Materialized Views" + "value" : "Tải những hàng còn lại sau giới hạn hàng." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "物化视图" + "value" : "加载行数上限之外剩余的行。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "具體化檢視表" + "value" : "載入列數上限之外剩餘的列。" } } } }, - "Max %lld characters" : { + "Loading %@…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "최대 %lld자" + "value" : "%@ 불러오는 중…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Max %lld karakter" + "value" : "%@ yükleniyor…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tối đa %lld ký tự" + "value" : "Đang tải %@…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "最多 %lld 个字符" + "value" : "正在加载 %@…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "最多 %lld 個字" + "value" : "正在載入 %@…" } } } }, - "Max Bytes Billed" : { + "Loading dashboard…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "최대 청구 바이트" + "value" : "대시보드 불러오는 중…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Faturalanacak Maks Bayt" + "value" : "Pano yükleniyor…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Số byte tính phí tối đa" + "value" : "Đang tải bảng điều khiển…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "最大计费字节数" + "value" : "正在加载仪表盘…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "最大計費位元組數" + "value" : "正在載入儀表板…" } } } }, - "Max Connections" : { + "Loading databases…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "최대 연결 수" + "value" : "데이터베이스 불러오는 중…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Maks. Bağlantı" + "value" : "Veritabanları yükleniyor…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối tối đa" + "value" : "Đang tải cơ sở dữ liệu…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "最大连接数" + "value" : "正在载入数据库…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "最大連線數" + "value" : "正在載入資料庫…" } } } }, - "Max output tokens" : { + "Loading insights…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "최대 출력 토큰 수" + "value" : "인사이트 불러오는 중…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Maksimum çıktı token'ları" + "value" : "Analizler yükleniyor…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Số token đầu ra tối đa" + "value" : "Đang tải phân tích…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "最大输出令牌数" + "value" : "正在加载分析…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "最大輸出權杖數" + "value" : "正在載入分析…" } } } }, - "Max schema tables: %d" : { + "Loading keys…" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "최대 스키마 테이블 수: %d" + "value" : "키 불러오는 중…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Maksimum şema tablosu: %d" + "value" : "Anahtarlar yükleniyor…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Số bảng tối đa: %d" + "value" : "Đang tải khóa…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "最大架构表数:%d" + "value" : "正在加载键…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "綱要資料表上限:%d" + "value" : "正在載入鍵…" } } } }, - "Max schema tables: %lld" : { + "Loading more rows" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "최대 스키마 테이블 수: %lld" + "value" : "행을 더 불러오는 중" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Max schema tablo: %lld" + "value" : "Daha fazla satır yükleniyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Số bảng tối đa: %lld" + "value" : "Đang tải thêm hàng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Schema 最大表数:%lld" + "value" : "正在载入更多行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "綱要資料表上限:%lld" + "value" : "正在載入更多列" } } } }, - "Maximum days cannot be negative" : { + "Loading options..." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "최대 일수는 음수일 수 없습니다" + "value" : "옵션 불러오는 중..." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Maksimum gün negatif olamaz" + "value" : "Seçenekler yükleniyor..." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Số ngày tối đa không được là số âm" + "value" : "Đang tải tùy chọn..." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "最大天数不能为负数" + "value" : "正在加载选项…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "最大天數不能為負數" + "value" : "正在載入選項…" } } } }, - "Maximum depth reached" : { + "Loading options…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "최대 깊이에 도달했습니다" + "value" : "옵션 불러오는 중…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Maksimum derinliğe ulaşıldı" + "value" : "Seçenekler yükleniyor…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã đạt độ sâu tối đa" + "value" : "Đang tải tùy chọn…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已达到最大深度" + "value" : "正在载入选项…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已達到最大深度" + "value" : "正在載入選項…" } } } }, - "Maximum entries cannot be negative" : { + "Loading page" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "최대 항목 수는 음수일 수 없습니다" + "value" : "페이지 불러오는 중" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Maksimum kayıt negatif olamaz" + "value" : "Sayfa yükleniyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Số mục tối đa không được là số âm" + "value" : "Đang tải trang" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "最大条目数不能为负数" + "value" : "正在载入页面" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "最大項目數不能為負數" + "value" : "正在載入頁面" } } } }, - "Maximum entries:" : { + "Loading plugins..." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "최대 항목 수:" + "value" : "플러그인 불러오는 중..." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Maksimum kayıt:" + "value" : "Eklentiler yükleniyor..." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Số mục tối đa:" + "value" : "Đang tải plugin..." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "最大条目数:" + "value" : "正在加载插件..." } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "最大項目數:" + "value" : "正在載入外掛…" } } } }, - "Maximum number of activations reached." : { + "Loading schema…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "최대 활성화 수에 도달했습니다." + "value" : "스키마 불러오는 중…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Maksimum etkinleştirme sayısına ulaşıldı." + "value" : "Şema yükleniyor…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã đạt số lượng kích hoạt tối đa." + "value" : "Đang tải schema…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已达到最大激活数。" + "value" : "正在加载架构…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已達到最大啟用次數。" + "value" : "正在載入綱要…" } } } }, - "Maximum number of entries to return (default 50, max 500)" : { + "Loading schemas..." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "반환할 최대 항목 수(기본값 50, 최대 500)" + "value" : "스키마 불러오는 중..." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Döndürülecek maksimum kayıt sayısı (varsayılan 50, en çok 500)" + "value" : "Şemalar yükleniyor..." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Số mục tối đa trả về (mặc định 50, tối đa 500)" + "value" : "Đang tải schema..." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "返回条目的最大数量(默认 50,最大 500)" + "value" : "正在加载 Schema..." } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "回傳項目的最大數量(預設 50,最大 500)" + "value" : "正在載入綱要…" } } } }, - "Maximum row limit" : { + "Loading schemas…" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "최대 행 제한" + "value" : "스키마 불러오는 중…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Maksimum satır limiti" + "value" : "Şemalar yükleniyor…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giới hạn dòng tối đa" + "value" : "Đang tải schema…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "最大行数限制" + "value" : "正在载入 Schema…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "最大列數限制" + "value" : "正在載入綱要…" } } } }, - "Maximum rows to export (default 50000)" : { + "Loading tables..." : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "내보낼 최대 행 수(기본값 50000)" + "value" : "테이블 불러오는 중..." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dışa aktarılacak maksimum satır sayısı (varsayılan 50000)" + "value" : "Tablolar yükleniyor..." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Số hàng tối đa để xuất (mặc định 50000)" + "value" : "Đang tải danh sách bảng..." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导出行数上限(默认 50000)" + "value" : "正在加载表..." } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯出列數上限(預設 50000)" + "value" : "正在載入資料表…" } } } }, - "Maximum rows to export. Defaults to the server's configured default row limit and is capped at its maximum row limit." : { + "Loading tables…" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "내보낼 최대 행 수입니다. 기본값은 서버에 설정된 기본 행 제한이며 최대 행 제한을 초과할 수 없습니다." + "value" : "테이블 불러오는 중…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dışa aktarılacak en fazla satır sayısı. Varsayılan olarak sunucunun ayarlı varsayılan satır limitidir ve maksimum satır limitiyle sınırlanır." + "value" : "Tablolar yükleniyor…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Số dòng tối đa được xuất. Mặc định là giới hạn dòng mặc định của máy chủ và bị chặn ở giới hạn dòng tối đa." + "value" : "Đang tải bảng…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导出的最大行数。默认使用服务器配置的默认行数限制,并受其最大行数限制约束。" + "value" : "正在载入表…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯出的最大列數。預設使用伺服器設定的預設列數上限,並受其最大列數上限限制。" + "value" : "正在載入資料表…" } } } }, - "Maximum rows to return (default 500, max 10000)" : { - "extractionState" : "stale", + "Loading users and roles…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "반환할 최대 행 수(기본값 500, 최대 10000)" + "value" : "사용자 및 역할 불러오는 중…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Döndürülecek maksimum satır sayısı (varsayılan 500, en çok 10000)" + "value" : "Kullanıcılar ve roller yükleniyor…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Số hàng tối đa trả về (mặc định 500, tối đa 10000)" + "value" : "Đang tải người dùng và vai trò…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "返回行数上限(默认 500,最大 10000)" + "value" : "正在加载用户和角色…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "回傳列數上限(預設 500,最大 10000)" + "value" : "正在載入使用者與角色…" } } } }, - "Maximum rows to return. Defaults to the server's configured default row limit and is capped at its maximum row limit." : { + "Loading…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "반환할 최대 행 수입니다. 기본값은 서버에 설정된 기본 행 제한이며 최대 행 제한을 초과할 수 없습니다." + "value" : "불러오는 중…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Döndürülecek en fazla satır sayısı. Varsayılan olarak sunucunun ayarlı varsayılan satır limitidir ve maksimum satır limitiyle sınırlanır." + "value" : "Yükleniyor…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Số dòng tối đa được trả về. Mặc định là giới hạn dòng mặc định của máy chủ và bị chặn ở giới hạn dòng tối đa." + "value" : "Đang tải…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "返回的最大行数。默认使用服务器配置的默认行数限制,并受其最大行数限制约束。" + "value" : "正在加载…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "回傳的最大列數。預設使用伺服器設定的預設列數上限,並受其最大列數上限限制。" + "value" : "正在載入…" } } } }, - "Maximum time to wait for a query to complete. Set to 0 for no limit. Applied to new connections." : { + "Local" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 완료를 기다리는 최대 시간입니다. 제한하지 않으려면 0으로 설정하십시오. 새 연결에 적용됩니다." + "value" : "로컬" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgunun tamamlanması için beklenecek maksimum süre. Sınır olmaması için 0 yapın. Yeni bağlantılara uygulanır." + "value" : "Yerel" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thời gian chờ tối đa để truy vấn hoàn thành. Đặt 0 để không giới hạn. Áp dụng cho kết nối mới." + "value" : "Cục bộ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "等待查询完成的最长时间。设为 0 表示不限制。应用于新连接。" + "value" : "本地" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "等待查詢完成的最長時間。設為 0 表示不限制。套用至新連線。" + "value" : "本機" } } } }, - "Medium" : { + "Local File" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "중간" + "value" : "로컬 파일" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Orta" + "value" : "Yerel Dosya" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trung bình" + "value" : "Tệp cục bộ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "中等" + "value" : "本地文件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "中等" + "value" : "本機檔案" } } } }, - "Member Of" : { + "Local Listener" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "소속" + "value" : "로컬 리스너" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Üyesi Olduğu" + "value" : "Yerel Dinleyici" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thành viên của" + "value" : "Trình lắng nghe cục bộ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "隶属于" + "value" : "本地监听器" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "隸屬於" + "value" : "本機監聽器" } } } }, - "Member of" : { + "Local only" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "소속" + "value" : "로컬 전용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Üyesi olduğu" + "value" : "Sadece yerel" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thành viên của" + "value" : "Chỉ cục bộ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "隶属于" + "value" : "仅本地" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "隸屬於" + "value" : "僅限本機" } } } }, - "Membership" : { + "Local only - not synced to iCloud" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "멤버십" + "value" : "로컬 전용 - iCloud에 동기화되지 않음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Üyelik" + "value" : "Sadece yerel - iCloud ile eşitlenmiyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tư cách thành viên" + "value" : "Chỉ cục bộ - không đồng bộ lên iCloud" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "成员关系" + "value" : "仅本地 - 不同步到 iCloud" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "成員關係" + "value" : "僅限本機,不同步至 iCloud" } } } }, - "Memory Limit" : { + "Local only, not synced to iCloud" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "메모리 제한" + "value" : "로컬 전용, iCloud에 동기화되지 않음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bellek Sınırı" + "value" : "Yalnızca yerel, iCloud ile eşzamanlanmaz" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giới hạn bộ nhớ" + "value" : "Chỉ lưu cục bộ, không đồng bộ với iCloud" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "内存限制" + "value" : "仅本地存储,不同步到 iCloud" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "記憶體限制" + "value" : "僅儲存於本機,不會同步到 iCloud" } } } }, - "Merge" : { + "Local port" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "병합" + "value" : "로컬 포트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Birleştir" + "value" : "Yerel port" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gộp" + "value" : "Cổng cục bộ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "合并" + "value" : "本地端口" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "合併" + "value" : "本機連接埠" } } } }, - "Merge All Windows" : { + "Local port must be between 1 and 65535" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 윈도우 통합" + "value" : "로컬 포트는 1에서 65535 사이여야 합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm Pencereleri Birleştir" + "value" : "Yerel port 1 ile 65535 arasında olmalıdır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hợp nhất tất cả cửa sổ" + "value" : "Cổng cục bộ phải nằm trong khoảng 1 đến 65535" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "合并所有窗口" + "value" : "本地端口必须介于 1 到 65535 之间" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "合併所有視窗" + "value" : "本機連接埠必須介於 1 到 65535 之間" } } } }, - "Merge Columns…" : { + "localhost" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열 병합…" + "value" : "localhost" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sütunları Birleştir…" + "value" : "localhost" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gộp cột…" + "value" : "localhost" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "合并列…" + "value" : "localhost" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "合併欄位…" + "value" : "localhost" } } } }, - "Merge “%@” with “%@”" : { + "Location" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Merge “%1$@” with “%2$@”" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "“%1$@” 및 “%2$@” 병합" + "value" : "위치" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "“%1$@” ile “%2$@” birleştirilsin" + "value" : "Konum" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gộp “%1$@” với “%2$@”" + "value" : "Vị trí" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将“%1$@”与“%2$@”合并" + "value" : "位置" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將「%1$@」與「%2$@」合併" + "value" : "位置" } } } }, - "Message too large. Try disabling 'Include schema' or 'Include query results' in AI settings." : { + "Log MCP queries in history" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "메시지가 너무 큽니다. AI 설정에서 '스키마 포함' 또는 '쿼리 결과 포함'을 끄십시오." + "value" : "기록에 MCP 쿼리 로그 남기기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Mesaj çok büyük. AI ayarlarında 'Şemayı dahil et' veya 'Sorgu sonuçlarını dahil et' seçeneklerini devre dışı bırakmayı deneyin." + "value" : "MCP sorgularını geçmişe kaydet" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tin nhắn quá lớn. Thử tắt 'Bao gồm schema' hoặc 'Bao gồm kết quả truy vấn' trong cài đặt AI." + "value" : "Ghi truy vấn MCP vào lịch sử" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "消息过大。请尝试在 AI 设置中禁用“包含 schema”或“包含查询结果”。" + "value" : "在历史记录中记录 MCP 查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "訊息過大。請嘗試在 AI 設定中停用「包含綱要」或「包含查詢結果」。" + "value" : "在歷史紀錄中記錄 MCP 查詢" } } } }, - "Method" : { + "Looking for database settings…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "메서드" + "value" : "데이터베이스 설정을 찾는 중…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yöntem" + "value" : "Veritabanı ayarları aranıyor…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phương thức" + "value" : "Đang tìm cài đặt cơ sở dữ liệu…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "方法" + "value" : "正在查找数据库设置…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "方法" + "value" : "正在尋找資料庫設定…" } } } }, - "Microsoft Entra ID" : { + "Looks like a placeholder value" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Microsoft Entra ID" + "value" : "자리표시자 값인 것 같습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Microsoft Entra ID" + "value" : "Yer tutucu bir değere benziyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Microsoft Entra ID" + "value" : "Trông giống giá trị mẫu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Microsoft Entra ID" + "value" : "看起来是占位值" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Microsoft Entra ID" + "value" : "看起來是預留位置值" } } } }, - "Microsoft Entra ID Sign-In Failed" : { + "Loops" : { + "comment" : "Label for the number of loops in a query plan.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Microsoft Entra ID 로그인 실패" + "value" : "반복 횟수" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Microsoft Entra ID oturumu açılamadı" + "value" : "Döngü" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đăng nhập Microsoft Entra ID thất bại" + "value" : "Số vòng lặp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Microsoft Entra ID 登录失败" + "value" : "循环次数" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Microsoft Entra ID 登入失敗" + "value" : "迴圈次數" } } } }, - "Microsoft Entra ID Sign-In Required" : { + "Lossy type change" : { + + }, + "Low" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Microsoft Entra ID 로그인 필요" + "value" : "낮음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Microsoft Entra ID ile oturum açma gerekli" + "value" : "Düşük" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Yêu cầu đăng nhập Microsoft Entra ID" + "value" : "Thấp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "需要 Microsoft Entra ID 登录" + "value" : "低" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "需要 Microsoft Entra ID 登入" + "value" : "低" } } } }, - "Microsoft Entra ID sign-in finished. Test the connection again." : { + "Low cost" : { + "comment" : "Accessibility label for a low cost severity.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Microsoft Entra ID 로그인이 완료되었습니다. 연결을 다시 테스트하십시오." + "value" : "낮은 비용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Microsoft Entra ID oturum açma tamamlandı. Bağlantıyı yeniden test edin." + "value" : "Düşük maliyet" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã hoàn tất đăng nhập Microsoft Entra ID. Hãy kiểm tra lại kết nối." + "value" : "Chi phí thấp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Microsoft Entra ID 登录已完成。请再次测试连接。" + "value" : "低成本" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Microsoft Entra ID 登入已完成。請再次測試連線。" + "value" : "低成本" } } } }, - "Microsoft's enterprise SQL database" : { + "LSP process exited with code %d" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Microsoft의 엔터프라이즈 SQL 데이터베이스" + "value" : "LSP 프로세스가 종료되었습니다(코드: %d)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Microsoft'un kurumsal SQL veritabanı" + "value" : "LSP süreci %d koduyla sonlandı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cơ sở dữ liệu SQL doanh nghiệp của Microsoft" + "value" : "Tiến trình LSP đã thoát với mã %d" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Microsoft 的企业级 SQL 数据库" + "value" : "LSP 进程已退出,代码为 %d" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Microsoft 的企業級 SQL 資料庫" + "value" : "LSP 處理程序已結束,結束代碼為 %d" } } } }, - "Minimal" : { + "LSP process is not running" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "최소" + "value" : "LSP 프로세스가 실행 중이 아닙니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Minimal" + "value" : "LSP süreci çalışmıyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tối giản" + "value" : "Tiến trình LSP không chạy" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "极简" + "value" : "LSP 进程未运行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "極簡" + "value" : "LSP 處理程序未在執行" } } } }, - "Minimize" : { + "LSP request was cancelled" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "최소화" + "value" : "LSP 요청이 취소되었습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Küçült" + "value" : "LSP isteği iptal edildi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thu nhỏ" + "value" : "Yêu cầu LSP đã bị hủy" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "最小化" + "value" : "LSP 请求已取消" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "縮到最小" + "value" : "LSP 要求已取消" } } } }, - "Missing argument: %@" : { - "extractionState" : "stale", + "LSP server error (%d): %@" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "LSP server error (%1$d): %2$@" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "누락된 인수: %@" + "value" : "LSP 서버 오류(%1$d): %2$@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eksik bağımsız değişken: %@" + "value" : "LSP sunucu hatası (%d): %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thiếu đối số: %@" + "value" : "Lỗi LSP server (%d): %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "缺少参数:%@" + "value" : "LSP 服务器错误(%d):%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "缺少引數:%@" + "value" : "LSP 伺服器錯誤(%1$d):%2$@" } } } }, - "Missing required parameter: %@" : { + "macOS will ask for your login password" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필수 매개변수 누락: %@" + "value" : "macOS에서 로그인 암호를 요청합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Gerekli parametre eksik: %@" + "value" : "macOS giriş parolanızı isteyecek" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thiếu tham số bắt buộc: %@" + "value" : "macOS sẽ hỏi mật khẩu đăng nhập của bạn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "缺少必需参数:%@" + "value" : "macOS 将要求输入您的登录密码" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "缺少必要參數:%@" + "value" : "macOS 會要求你輸入登入密碼" } } } }, - "Missing value for parameter: %@" : { + "Maintenance" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "매개변수 값 누락: %@" + "value" : "유지 관리" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Parametre için değer eksik: %@" + "value" : "Bakım" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thiếu giá trị cho tham số: %@" + "value" : "Bảo trì" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "参数缺少值:%@" + "value" : "维护" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "參數缺少值:%@" + "value" : "維護" } } } }, - "Mixed Selection" : { + "maintenance operation %@" : { + + }, + "Majority" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "혼합 선택" + "value" : "과반수" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Karışık Seçim" + "value" : "Çoğunluk" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lựa chọn hỗn hợp" + "value" : "Majority" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "混合选择" + "value" : "Majority" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "混合選取" + "value" : "Majority" } } } }, - "Mode" : { + "Making %@ NOT NULL fails if any existing row holds NULL." : { + + }, + "Malformed deep link path: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모드" + "value" : "잘못된 딥 링크 경로: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Mod" + "value" : "Hatalı biçimlendirilmiş deep link yolu: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chế độ" + "value" : "Đường dẫn deep link không hợp lệ: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "模式" + "value" : "深层链接路径格式错误:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "模式" + "value" : "深層連結路徑格式錯誤:%@" } } } }, - "Model" : { + "Manage Connections" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모델" + "value" : "연결 관리" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Model" + "value" : "Bağlantıları Yönet" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Model" + "value" : "Quản lý kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Model" + "value" : "管理连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Model" + "value" : "管理連線" } } } }, - "Model ID" : { + "Manage Connections…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모델 ID" + "value" : "연결 관리…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Model Kimliği" + "value" : "Bağlantıları Yönet…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "ID mô hình" + "value" : "Quản lý kết nối…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "模型 ID" + "value" : "管理连接…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "模型 ID" + "value" : "管理連線…" } } } }, - "Model name" : { - "extractionState" : "stale", + "Manage Tags" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모델 이름" + "value" : "태그 관리" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Model adı" + "value" : "Etiketleri Yönet" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên model" + "value" : "Quản lý thẻ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "模型名称" + "value" : "管理标签" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "模型名稱" + "value" : "管理標籤" } } } }, - "Model not found: %@" : { + "Manual" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모델을 찾을 수 없음: %@" + "value" : "수동" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Model bulunamadı: %@" + "value" : "Manuel" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy model: %@" + "value" : "Thủ công" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未找到模型:%@" + "value" : "手动" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "找不到模型:%@" + "value" : "手動" } } } }, - "Moderate cost" : { - "comment" : "Accessibility label for a moderate cost.", - "isCommentAutoGenerated" : true, + "Markdown" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "중간 비용" + "value" : "Markdown" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Orta maliyet" + "value" : "Markdown" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chi phí trung bình" + "value" : "Markdown" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "中等成本" + "value" : "Markdown" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "中等成本" + "value" : "Markdown" } } } }, - "Modified" : { + "Massive" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "수정됨" + "value" : "매우 큼" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Değiştirildi" + "value" : "Çok Büyük" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã sửa đổi" + "value" : "Cực lớn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已修改" + "value" : "巨大" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已修改" + "value" : "巨大" } } } }, - "Modified:" : { - "extractionState" : "stale", + "Match all" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "수정됨:" + "value" : "모두 일치" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Değiştirildi:" + "value" : "Tümüyle eşleştir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã sửa đổi:" + "value" : "Khớp tất cả" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "修改时间:" + "value" : "匹配全部" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "修改時間:" + "value" : "全部符合" } } } }, - "Modifier Key Required" : { + "Match All" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "보조 키 필요" + "value" : "모두 일치" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Değiştirici Tuş Gerekli" + "value" : "Tümü Eşleşsin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cần phím bổ trợ" + "value" : "Khớp tất cả" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "需要修饰键" + "value" : "匹配全部" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "需要修飾鍵" + "value" : "符合全部" } } } }, - "MongoDB" : { + "Match ALL filters (AND) or ANY filter (OR)" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "MongoDB" + "value" : "모든 필터(AND) 또는 하나 이상의 필터(OR)와 일치" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "MongoDB" + "value" : "TÜM filtrelerle eşleş (VE) veya HERHANGİ bir filtreyle (VEYA)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "MongoDB" + "value" : "Khớp TẤT CẢ bộ lọc (AND) hoặc BẤT KỲ bộ lọc (OR)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "MongoDB" + "value" : "匹配所有筛选条件 (AND) 或任意筛选条件 (OR)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "MongoDB" + "value" : "符合所有篩選條件 (AND) 或任一篩選條件 (OR)" } } } }, - "MongoDB driver has no TLS fallback. Preferred and Required both force TLS. Use Required for MongoDB Atlas and other hosted instances." : { + "Match all filters or any filter" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "MongoDB 드라이버에는 TLS 폴백이 없습니다. Preferred와 Required 모두 TLS를 강제합니다. MongoDB Atlas 및 기타 호스팅 인스턴스에는 Required를 사용하십시오." + "value" : "모든 필터 또는 하나 이상의 필터와 일치" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "MongoDB sürücüsünde TLS geri dönüşü yoktur. Tercih Edilen ve Zorunlu'nun ikisi de TLS'yi zorunlu kılar. MongoDB Atlas ve diğer barındırılan sunucular için Zorunlu kullanın." + "value" : "Tüm filtreleri veya herhangi bir filtreyi eşleştir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Driver MongoDB không có cơ chế dự phòng TLS. Preferred và Required đều buộc dùng TLS. Dùng Required cho MongoDB Atlas và các instance được lưu trữ khác." + "value" : "Khớp tất cả bộ lọc hoặc bất kỳ bộ lọc nào" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "MongoDB 驱动没有 TLS 回退。“首选”和“必需”都会强制使用 TLS。连接 MongoDB Atlas 和其他托管实例时请使用“必需”。" + "value" : "匹配全部筛选条件或任一筛选条件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "MongoDB 驅動程式沒有 TLS 後備機制。「偏好」和「必要」都會強制使用 TLS。連接 MongoDB Atlas 與其他託管執行個體時請使用「必要」。" + "value" : "符合所有篩選條件或任一篩選條件" } } } }, - "MongoDB query language. Use to import into MongoDB." : { + "Match any" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "MongoDB 쿼리 언어입니다. MongoDB로 가져올 때 사용합니다." + "value" : "하나라도 일치" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "MongoDB sorgu dili. MongoDB'ye içe aktarmak için kullanın." + "value" : "Herhangi biriyle eşleştir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ngôn ngữ truy vấn MongoDB. Dùng để nhập vào MongoDB." + "value" : "Khớp bất kỳ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "MongoDB 查询语言。用于导入到 MongoDB。" + "value" : "匹配任一" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "MongoDB 查詢語言。用於匯入 MongoDB。" + "value" : "符合任一" } } } }, - "Most Run" : { + "Match Any" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "최다 실행" + "value" : "하나라도 일치" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "En Çok Çalıştırılan" + "value" : "Herhangi Biri Eşleşsin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chạy nhiều nhất" + "value" : "Khớp bất kỳ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "运行最多" + "value" : "匹配任一" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "執行最多" + "value" : "符合任一" } } } }, - "Most popular open-source SQL database" : { + "Match Case" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "가장 인기 있는 오픈 소스 SQL 데이터베이스" + "value" : "대/소문자 구분" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "En popüler açık kaynaklı SQL veritabanı" + "value" : "Büyük/Küçük Harf Eşleştir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cơ sở dữ liệu SQL mã nguồn mở phổ biến nhất" + "value" : "Phân biệt hoa thường" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "最流行的开源 SQL 数据库" + "value" : "区分大小写" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "最熱門的開放原始碼 SQL 資料庫" + "value" : "區分大小寫" } } } }, - "Move Down" : { + "Match case exactly" : { + + }, + "Match System" : { + "comment" : "Text for a sidebar row size preference that matches the system's sidebar row size.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "아래로 이동" + "value" : "시스템 설정 따르기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Aşağı Taşı" + "value" : "Sistemle Aynı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Di chuyển xuống" + "value" : "Theo hệ thống" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "下移" + "value" : "跟随系统" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "下移" + "value" : "跟隨系統" } } } }, - "Move Down (⌘↓)" : { - "extractionState" : "stale", + "Match System follows Sidebar icon size in System Settings > Appearance. Choose a size to fit more objects on screen than the rest of the system shows." : { + "comment" : "Match System", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "아래로 이동 (⌘↓)" + "value" : "시스템 설정 따르기는 시스템 설정 > 모양의 사이드바 아이콘 크기를 사용합니다. 화면에 시스템의 다른 부분보다 더 많은 개체를 표시하려면 크기를 선택하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Aşağı Taşı (⌘↓)" + "value" : "Sistemle Aynı, Sistem Ayarları > Görünüm bölümündeki Kenar Çubuğu simge boyutunu izler. Sistemin geri kalanından daha fazla nesneyi ekrana sığdırmak için bir boyut seçin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Di chuyển xuống (⌘↓)" + "value" : "Theo hệ thống sẽ dùng cỡ biểu tượng Thanh bên trong Cài đặt hệ thống > Giao diện. Chọn một cỡ để hiển thị nhiều đối tượng hơn so với phần còn lại của hệ thống." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "下移 (⌘↓)" + "value" : "“跟随系统”会采用“系统设置 > 外观”中的侧边栏图标大小。选择一个大小可以在屏幕上显示比系统其余部分更多的对象。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "下移 (⌘↓)" + "value" : "「跟隨系統」會採用「系統設定 > 外觀」中的側邊欄圖像大小。選擇一個大小可以在螢幕上顯示比系統其餘部分更多的物件。" } } } }, - "Move File to Trash" : { + "Matched name" : { + + }, + "matches regex" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "파일을 휴지통으로 이동" + "value" : "정규식과 일치" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dosyayı Çöp Sepetine Taşı" + "value" : "regex ile eşleşir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển tệp vào Thùng rác" + "value" : "khớp regex" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将文件移到废纸篓" + "value" : "匹配正则" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將檔案移到垃圾桶" + "value" : "符合正規表示式" } } } }, - "Move File to Trash?" : { + "Matching history entries, newest first" : { + + }, + "Matching ignores case" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "파일을 휴지통으로 이동하시겠습니까?" + "value" : "일치 시 대/소문자 무시" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dosya Çöp Sepetine Taşınsın mı?" + "value" : "Eşleştirme büyük/küçük harfe duyarsız" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển tệp vào Thùng rác?" + "value" : "So khớp không phân biệt hoa thường" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "要将文件移到废纸篓吗?" + "value" : "匹配时忽略大小写" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "要將檔案移到垃圾桶嗎?" + "value" : "比對時忽略大小寫" } } } }, - "Move Filter Down" : { + "Matching is case-sensitive" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터를 아래로 이동" + "value" : "일치 시 대/소문자 구분" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtreyi Aşağı Taşı" + "value" : "Eşleştirme büyük/küçük harfe duyarlı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển bộ lọc xuống" + "value" : "So khớp phân biệt hoa thường" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "下移筛选条件" + "value" : "匹配时区分大小写" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將篩選條件下移" + "value" : "比對時區分大小寫" } } } }, - "Move Filter Up" : { + "Matching tables first, then matching columns" : { + + }, + "Materialized View" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터를 위로 이동" + "value" : "구체화된 뷰" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtreyi Yukarı Taşı" + "value" : "Materyalize Görünüm" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển bộ lọc lên" + "value" : "Materialized View" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "上移筛选条件" + "value" : "物化视图" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將篩選條件上移" + "value" : "具體化檢視表" } } } }, - "Move Group to…" : { + "Materialized Views" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "그룹 이동…" + "value" : "구체화된 뷰" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Grubu Taşı…" + "value" : "Materyalize Görünümler" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Di chuyển nhóm đến…" + "value" : "Materialized Views" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "移动分组到…" + "value" : "物化视图" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "移動群組至…" + "value" : "具體化檢視表" } } } }, - "Move Line Down" : { + "max %@" : { + "comment" : "Longest single run, %@ is a duration", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "줄을 아래로 이동" + "value" : "최댓값 %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satırı Aşağı Taşı" + "value" : "maks. %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển dòng xuống" + "value" : "tối đa %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "下移一行" + "value" : "最长 %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將該行下移" + "value" : "最長 %@" } } } }, - "Move Line Up" : { + "Max %lld characters" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "줄을 위로 이동" + "value" : "최대 %lld자" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satırı Yukarı Taşı" + "value" : "Max %lld karakter" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển dòng lên" + "value" : "Tối đa %lld ký tự" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "上移一行" + "value" : "最多 %lld 个字符" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將該行上移" + "value" : "最多 %lld 個字" } } } }, - "Move Tab to New Window" : { + "Max Bytes Billed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "탭을 새 윈도우로 이동" + "value" : "최대 청구 바이트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sekmeyi Yeni Pencereye Taşı" + "value" : "Faturalanacak Maks Bayt" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển tab sang cửa sổ mới" + "value" : "Số byte tính phí tối đa" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将标签页移到新窗口" + "value" : "最大计费字节数" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將標籤頁移至新視窗" + "value" : "最大計費位元組數" } } } }, - "Move Up" : { + "Max Connections" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "위로 이동" + "value" : "최대 연결 수" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yukarı Taşı" + "value" : "Maks. Bağlantı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Di chuyển lên" + "value" : "Kết nối tối đa" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "上移" + "value" : "最大连接数" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "上移" + "value" : "最大連線數" } } } }, - "Move Up (⌘↑)" : { - "extractionState" : "stale", + "Max output tokens" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "위로 이동 (⌘↑)" + "value" : "최대 출력 토큰 수" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yukarı Taşı (⌘↑)" + "value" : "Maksimum çıktı token'ları" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Di chuyển lên (⌘↑)" + "value" : "Số token đầu ra tối đa" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "上移 (⌘↑)" + "value" : "最大输出令牌数" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "上移 (⌘↑)" + "value" : "最大輸出權杖數" } } } }, - "Move Word Left" : { + "Max schema tables: %d" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "단어 단위로 왼쪽 이동" + "value" : "최대 스키마 테이블 수: %d" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bir Kelime Sola Git" + "value" : "Maksimum şema tablosu: %d" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sang trái một từ" + "value" : "Số bảng tối đa: %d" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "向左移动一个单词" + "value" : "最大架构表数:%d" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "向左移動一個單字" + "value" : "綱要資料表上限:%d" } } } }, - "Move Word Right" : { + "Max schema tables: %lld" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "단어 단위로 오른쪽 이동" + "value" : "최대 스키마 테이블 수: %lld" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bir Kelime Sağa Git" + "value" : "Max schema tablo: %lld" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sang phải một từ" + "value" : "Số bảng tối đa: %lld" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "向右移动一个单词" + "value" : "Schema 最大表数:%lld" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "向右移動一個單字" + "value" : "綱要資料表上限:%lld" } } } }, - "Move to" : { + "Maximum days cannot be negative" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다음으로 이동" + "value" : "최대 일수는 음수일 수 없습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Taşı" + "value" : "Maksimum gün negatif olamaz" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Di chuyển đến" + "value" : "Số ngày tối đa không được là số âm" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "移动到" + "value" : "最大天数不能为负数" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "移動至" + "value" : "最大天數不能為負數" } } } }, - "Move to Beginning of Document" : { + "Maximum depth reached" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "문서 시작 부분으로 이동" + "value" : "최대 깊이에 도달했습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Belgenin Başına Git" + "value" : "Maksimum derinliğe ulaşıldı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đến đầu tài liệu" + "value" : "Đã đạt độ sâu tối đa" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "移到文稿开头" + "value" : "已达到最大深度" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "移到文件開頭" + "value" : "已達到最大深度" } } } }, - "Move to Beginning of Line" : { + "Maximum entries cannot be negative" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "줄 시작 부분으로 이동" + "value" : "최대 항목 수는 음수일 수 없습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satırın Başına Git" + "value" : "Maksimum kayıt negatif olamaz" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đến đầu dòng" + "value" : "Số mục tối đa không được là số âm" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "移到行首" + "value" : "最大条目数不能为负数" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "移到行首" + "value" : "最大項目數不能為負數" } } } }, - "Move to End of Document" : { + "Maximum entries to return (1-500, default 50)" : { + + }, + "Maximum entries:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "문서 끝으로 이동" + "value" : "최대 항목 수:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Belgenin Sonuna Git" + "value" : "Maksimum kayıt:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đến cuối tài liệu" + "value" : "Số mục tối đa:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "移到文稿末尾" + "value" : "最大条目数:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "移到文件結尾" + "value" : "最大項目數:" } } } }, - "Move to End of Line" : { + "Maximum matches to return (1-500, default 50)" : { + + }, + "Maximum number of activations reached." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "줄 끝으로 이동" + "value" : "최대 활성화 수에 도달했습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satırın Sonuna Git" + "value" : "Maksimum etkinleştirme sayısına ulaşıldı." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đến cuối dòng" + "value" : "Đã đạt số lượng kích hoạt tối đa." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "移到行尾" + "value" : "已达到最大激活数。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "移到行尾" + "value" : "已達到最大啟用次數。" } } } }, - "Move to Group" : { + "Maximum number of entries to return (default 50, max 500)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "그룹으로 이동" + "value" : "반환할 최대 항목 수(기본값 50, 최대 500)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Gruba Taşı" + "value" : "Döndürülecek maksimum kayıt sayısı (varsayılan 50, en çok 500)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Di chuyển vào Nhóm" + "value" : "Số mục tối đa trả về (mặc định 50, tối đa 500)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "移动到分组" + "value" : "返回条目的最大数量(默认 50,最大 500)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "移動至群組" + "value" : "回傳項目的最大數量(預設 50,最大 500)" } } } }, - "Move to Trash" : { + "Maximum row limit" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "휴지통으로 이동" + "value" : "최대 행 제한" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Çöp Sepetine Taşı" + "value" : "Maksimum satır limiti" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển vào Thùng rác" + "value" : "Giới hạn dòng tối đa" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "移到废纸篓" + "value" : "最大行数限制" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "移到垃圾桶" + "value" : "最大列數限制" } } } }, - "Multi-model database with SurrealQL" : { + "Maximum rows per export. Defaults to the server's configured row limit." : { + + }, + "Maximum rows to export (default 50000)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SurrealQL을 사용하는 멀티 모델 데이터베이스" + "value" : "내보낼 최대 행 수(기본값 50000)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SurrealQL ile çok modelli veritabanı" + "value" : "Dışa aktarılacak maksimum satır sayısı (varsayılan 50000)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cơ sở dữ liệu đa mô hình với SurrealQL" + "value" : "Số hàng tối đa để xuất (mặc định 50000)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "使用 SurrealQL 的多模型数据库" + "value" : "导出行数上限(默认 50000)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "使用 SurrealQL 的多模型資料庫" + "value" : "匯出列數上限(預設 50000)" } } } }, - "Multiple statements are not permitted for this client" : { + "Maximum rows to export. Defaults to the server's configured default row limit and is capped at its maximum row limit." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 클라이언트에서는 여러 쿼리문을 사용할 수 없습니다" + "value" : "내보낼 최대 행 수입니다. 기본값은 서버에 설정된 기본 행 제한이며 최대 행 제한을 초과할 수 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu istemci için birden çok deyime izin verilmiyor" + "value" : "Dışa aktarılacak en fazla satır sayısı. Varsayılan olarak sunucunun ayarlı varsayılan satır limitidir ve maksimum satır limitiyle sınırlanır." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Client này không được phép chạy nhiều câu lệnh" + "value" : "Số dòng tối đa được xuất. Mặc định là giới hạn dòng mặc định của máy chủ và bị chặn ở giới hạn dòng tối đa." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此客户端不允许执行多条语句" + "value" : "导出的最大行数。默认使用服务器配置的默认行数限制,并受其最大行数限制约束。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此用戶端不允許執行多條語句" + "value" : "匯出的最大列數。預設使用伺服器設定的預設列數上限,並受其最大列數上限限制。" } } } }, - "Multiple values" : { + "Maximum rows to return (default 500, max 10000)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "여러 값" + "value" : "반환할 최대 행 수(기본값 500, 최대 10000)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Birden fazla değer" + "value" : "Döndürülecek maksimum satır sayısı (varsayılan 500, en çok 10000)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhiều giá trị" + "value" : "Số hàng tối đa trả về (mặc định 500, tối đa 10000)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "多个值" + "value" : "返回行数上限(默认 500,最大 10000)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "多個值" + "value" : "回傳列數上限(預設 500,最大 10000)" } } } }, - "Must be exactly: I understand this is irreversible" : { + "Maximum rows to return. Defaults to the server's configured default row limit and is capped at its maximum row limit." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다음과 정확히 일치해야 합니다: I understand this is irreversible" + "value" : "반환할 최대 행 수입니다. 기본값은 서버에 설정된 기본 행 제한이며 최대 행 제한을 초과할 수 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tam olarak şöyle olmalı: I understand this is irreversible" + "value" : "Döndürülecek en fazla satır sayısı. Varsayılan olarak sunucunun ayarlı varsayılan satır limitidir ve maksimum satır limitiyle sınırlanır." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phải nhập chính xác: I understand this is irreversible" + "value" : "Số dòng tối đa được trả về. Mặc định là giới hạn dòng mặc định của máy chủ và bị chặn ở giới hạn dòng tối đa." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "必须完全输入:I understand this is irreversible" + "value" : "返回的最大行数。默认使用服务器配置的默认行数限制,并受其最大行数限制约束。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "必須完全輸入:I understand this is irreversible" + "value" : "回傳的最大列數。預設使用伺服器設定的預設列數上限,並受其最大列數上限限制。" } } } }, - "My Queries" : { + "Maximum rows to return. Defaults to the server's configured row limit." : { + + }, + "Maximum tabs to return (1-500, default 20)" : { + + }, + "Maximum time to wait for a query to complete. Set to 0 for no limit. Applied to new connections." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "내 쿼리" + "value" : "쿼리 완료를 기다리는 최대 시간입니다. 제한하지 않으려면 0으로 설정하십시오. 새 연결에 적용됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgularım" + "value" : "Sorgunun tamamlanması için beklenecek maksimum süre. Sınır olmaması için 0 yapın. Yeni bağlantılara uygulanır." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Truy vấn của tôi" + "value" : "Thời gian chờ tối đa để truy vấn hoàn thành. Đặt 0 để không giới hạn. Áp dụng cho kết nối mới." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "我的查询" + "value" : "等待查询完成的最长时间。设为 0 表示不限制。应用于新连接。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "我的查詢" + "value" : "等待查詢完成的最長時間。設為 0 表示不限制。套用至新連線。" } } } }, - "My Queries Only" : { + "MCP Access Request" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "내 쿼리만" + "value" : "MCP 접근 요청" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yalnızca Sorgularım" + "value" : "MCP Erişim İsteği" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chỉ truy vấn của tôi" + "value" : "Yêu cầu truy cập MCP" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "仅我的查询" + "value" : "MCP 访问请求" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "僅我的查詢" + "value" : "MCP 存取要求" } } } }, - "My Server" : { + "MCP Configuration" : { + "extractionState" : "stale", "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "My Server" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "내 서버" + "value" : "MCP 구성" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sunucum" + "value" : "MCP Yapılandırması" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Máy chủ của tôi" + "value" : "Cấu hình MCP" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "我的服务器" + "value" : "MCP 配置" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "我的伺服器" + "value" : "MCP 設定" } } } }, - "MySQL, PostgreSQL & SQLite" : { + "MCP query execution" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "MySQL, PostgreSQL & SQLite" + "value" : "MCP 쿼리 실행" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "MySQL, PostgreSQL & SQLite" + "value" : "MCP sorgu çalıştırma" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "MySQL, PostgreSQL & SQLite" + "value" : "Thực thi truy vấn MCP" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "MySQL、PostgreSQL 和 SQLite" + "value" : "MCP 查询执行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "MySQL、PostgreSQL 和 SQLite" + "value" : "MCP 查詢執行" } } } }, - "NOT NULL" : { + "MCP Server" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "NOT NULL" + "value" : "MCP 서버" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "NOT NULL" + "value" : "MCP Sunucusu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "NOT NULL" + "value" : "MCP Server" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "NOT NULL" + "value" : "MCP 服务器" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "NOT NULL" + "value" : "MCP 伺服器" } } } }, - "NOW()" : { + "MCP Server: Failed" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "NOW()" + "value" : "MCP 서버: 실패" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "NOW()" + "value" : "MCP Sunucusu: Başarısız" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "NOW()" + "value" : "MCP Server: Thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "NOW()" + "value" : "MCP 服务器:失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "NOW()" + "value" : "MCP 伺服器:失敗" } } } }, - "NULL" : { + "MCP Server: Running" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "NULL" + "value" : "MCP 서버: 실행 중" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "NULL" + "value" : "MCP Sunucusu: Çalışıyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "NULL" + "value" : "MCP Server: Đang chạy" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "NULL" + "value" : "MCP 服务器:运行中" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "NULL" + "value" : "MCP 伺服器:執行中" } } } }, - "NULL Value" : { + "MCP Server: Running (%d clients)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "NULL 값" + "value" : "MCP 서버: 실행 중(클라이언트 %d개)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "NULL Değer" + "value" : "MCP Sunucusu: Çalışıyor (%d istemci)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giá trị NULL" + "value" : "MCP Server: Đang chạy (%d client)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "NULL 值" + "value" : "MCP 服务器:运行中(%d 个客户端)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "NULL 值" + "value" : "MCP 伺服器:執行中(%d 個用戶端)" } } } }, - "NULL display cannot be empty" : { + "MCP Server: Starting..." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "NULL 표시 값은 비워 둘 수 없습니다" + "value" : "MCP 서버: 시작 중..." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "NULL görünümü boş olamaz" + "value" : "MCP Sunucusu: Başlatılıyor..." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiển thị NULL không được để trống" + "value" : "MCP Server: Đang khởi động..." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "NULL 显示不能为空" + "value" : "MCP 服务器:正在启动…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "NULL 顯示不能為空" + "value" : "MCP 伺服器:正在啟動…" } } } }, - "NULL display contains invalid characters (newlines/tabs)" : { + "MCP Server: Stopped" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "NULL 표시 값에 잘못된 문자(줄바꿈/탭)가 포함되어 있습니다" + "value" : "MCP 서버: 중지됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "NULL görünümü geçersiz karakterler içeriyor (satır sonları/sekmeler)" + "value" : "MCP Sunucusu: Durduruldu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiển thị NULL chứa ký tự không hợp lệ (xuống dòng/tab)" + "value" : "MCP Server: Đã dừng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "NULL 显示包含无效字符(换行符/制表符)" + "value" : "MCP 服务器:已停止" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "NULL 顯示包含無效字(換行符/定位字)" + "value" : "MCP 伺服器:已停止" } } } }, - "NULL display must be %d characters or less" : { + "MCP Setup" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "NULL 표시 값은 %d자 이하여야 합니다" + "value" : "MCP 설정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "NULL gösterimi en fazla %d karakter olmalıdır" + "value" : "MCP Kurulumu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiển thị NULL phải có %d ký tự trở xuống" + "value" : "Thiết lập MCP" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "NULL显示不能超过%d个字符" + "value" : "MCP 设置" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "NULL 顯示不能超過 %d 個字" + "value" : "MCP 設定" } } } }, - "NULL display must be %lld characters or less" : { - "extractionState" : "stale", + "Medium" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "NULL 표시 값은 %lld자 이하여야 합니다" + "value" : "중간" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "NULL görünümü en fazla %lld karakter olmalı" + "value" : "Orta" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiển thị NULL phải có %lld ký tự trở xuống" + "value" : "Trung bình" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "NULL 显示不能超过 %lld 个字符" + "value" : "中等" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "NULL 顯示不能超過 %lld 個字" + "value" : "中等" } } } }, - "NULL display:" : { + "MEDIUM" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "NULL 표시:" + "value" : "중간" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "NULL görünümü:" + "value" : "ORTA" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiển thị NULL:" + "value" : "TRUNG BÌNH" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "NULL 显示:" + "value" : "中等" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "NULL 顯示:" + "value" : "中等" } } } }, - "NULL — no referenced row" : { - "extractionState" : "stale", + "Member of" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "NULL — 참조된 행 없음" + "value" : "소속" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "NULL — referans satır yok" + "value" : "Üyesi olduğu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "NULL — không có dòng tham chiếu" + "value" : "Thành viên của" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "NULL — 无引用行" + "value" : "隶属于" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "NULL,沒有參照的列" + "value" : "隸屬於" } } } }, - "NULL, no referenced row" : { + "Member Of" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "NULL, 참조된 행 없음" + "value" : "소속" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "NULL, başvurulan satır yok" + "value" : "Üyesi Olduğu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "NULL, không có hàng được tham chiếu" + "value" : "Thành viên của" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "NULL,没有被引用的行" + "value" : "隶属于" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "NULL,沒有被參照的列" + "value" : "隸屬於" } } } }, - "Name" : { + "Membership" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이름" + "value" : "멤버십" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ad" + "value" : "Üyelik" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên" + "value" : "Tư cách thành viên" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "名称" + "value" : "成员关系" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "名稱" + "value" : "成員關係" } } } }, - "Name:" : { + "Memory Limit" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이름:" + "value" : "메모리 제한" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ad:" + "value" : "Bellek Sınırı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên:" + "value" : "Giới hạn bộ nhớ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "名称:" + "value" : "内存限制" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "名稱:" + "value" : "記憶體限制" } } } }, - "Namespace" : { + "Merge" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "네임스페이스" + "value" : "병합" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Namespace" + "value" : "Birleştir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Namespace" + "value" : "Gộp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "命名空间" + "value" : "合并" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "命名空間" + "value" : "合併" } } } }, - "Navigate to referenced row" : { - "extractionState" : "stale", + "Merge “%@” with “%@”" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Merge “%1$@” with “%2$@”" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "참조된 행으로 이동" + "value" : "“%1$@” 및 “%2$@” 병합" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Referans verilen satıra git" + "value" : "“%1$@” ile “%2$@” birleştirilsin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đi đến dòng được tham chiếu" + "value" : "Gộp “%1$@” với “%2$@”" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "跳转到引用行" + "value" : "将“%1$@”与“%2$@”合并" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "前往參照的列" + "value" : "將「%1$@」與「%2$@」合併" } } } }, - "Navigating pages will reload data and discard all unsaved changes." : { - "extractionState" : "stale", + "Merge All Windows" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "페이지를 이동하면 데이터가 다시 로드되고 저장하지 않은 모든 변경 사항이 폐기됩니다." + "value" : "모든 윈도우 통합" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sayfa değiştirmek veriyi yeniden yükler ve tüm kaydedilmemiş değişiklikleri siler." + "value" : "Tüm Pencereleri Birleştir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển trang sẽ tải lại dữ liệu và hủy tất cả thay đổi chưa lưu." + "value" : "Hợp nhất tất cả cửa sổ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "翻页将重新加载数据并丢弃所有未保存的更改。" + "value" : "合并所有窗口" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "翻頁將重新載入資料並捨棄所有未儲存的變更。" + "value" : "合併所有視窗" } } } }, - "Navigating to another page will discard all unsaved changes." : { + "Merge Columns…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다른 페이지로 이동하면 저장하지 않은 모든 변경 사항이 폐기됩니다." + "value" : "열 병합…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Başka bir sayfaya gitmek kaydedilmemiş değişiklikleri siler." + "value" : "Sütunları Birleştir…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển sang trang khác sẽ huỷ tất cả thay đổi chưa lưu." + "value" : "Gộp cột…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导航到其他页面将丢弃所有未保存的更改。" + "value" : "合并列…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "前往其他頁面將捨棄所有未儲存的變更。" + "value" : "合併欄位…" } } } }, - "Navigation" : { + "Message too large. Try disabling 'Include schema' or 'Include query results' in AI settings." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "탐색" + "value" : "메시지가 너무 큽니다. AI 설정에서 '스키마 포함' 또는 '쿼리 결과 포함'을 끄십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Gezinme" + "value" : "Mesaj çok büyük. AI ayarlarında 'Şemayı dahil et' veya 'Sorgu sonuçlarını dahil et' seçeneklerini devre dışı bırakmayı deneyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Điều hướng" + "value" : "Tin nhắn quá lớn. Thử tắt 'Bao gồm schema' hoặc 'Bao gồm kết quả truy vấn' trong cài đặt AI." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导航" + "value" : "消息过大。请尝试在 AI 设置中禁用“包含 schema”或“包含查询结果”。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "導覽" + "value" : "訊息過大。請嘗試在 AI 設定中停用「包含綱要」或「包含查詢結果」。" } } } }, - "Nearest" : { - "extractionState" : "stale", + "METADATA" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "가장 가까움" + "value" : "메타데이터" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "En Yakın" + "value" : "META VERİ" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nearest" + "value" : "SIÊU DỮ LIỆU" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Nearest" + "value" : "元数据" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Nearest" + "value" : "中繼資料" } } } }, - "Negotiating encryption" : { + "Method" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "암호화 협상 중" + "value" : "메서드" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Şifreleme görüşülüyor" + "value" : "Yöntem" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang thương lượng mã hoá" + "value" : "Phương thức" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在协商加密" + "value" : "方法" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在協商加密" + "value" : "方法" } } } }, - "Network" : { + "Metric id" : { + + }, + "Metric label" : { + + }, + "Metric unit" : { + + }, + "Metric value" : { + + }, + "MFA Passcode (TOTP)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "네트워크" + "value" : "MFA 인증 코드(TOTP)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ağ" + "value" : "MFA Parola Kodu (TOTP)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mạng" + "value" : "Mã MFA (TOTP)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "网络" + "value" : "MFA 验证码(TOTP)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "網路" + "value" : "MFA 驗證碼(TOTP)" } } } }, - "Network error: %@" : { + "Microsoft Entra ID" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "네트워크 오류: %@" + "value" : "Microsoft Entra ID" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ağ hatası: %@" + "value" : "Microsoft Entra ID" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lỗi mạng: %@" + "value" : "Microsoft Entra ID" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "网络错误:%@" + "value" : "Microsoft Entra ID" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "網路錯誤:%@" + "value" : "Microsoft Entra ID" } } } }, - "Network is unavailable. Changes will sync when connectivity is restored." : { + "Microsoft Entra ID Sign-In Failed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "네트워크를 사용할 수 없습니다. 연결이 복원되면 변경 사항이 동기화됩니다." + "value" : "Microsoft Entra ID 로그인 실패" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ağ kullanılamıyor. Bağlantı sağlandığında değişiklikler eşitlenecek." + "value" : "Microsoft Entra ID oturumu açılamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mạng không khả dụng. Các thay đổi sẽ được đồng bộ khi có kết nối trở lại." + "value" : "Đăng nhập Microsoft Entra ID thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "网络不可用。恢复连接后将自动同步更改。" + "value" : "Microsoft Entra ID 登录失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "網路無法使用。連線恢復後將自動同步變更。" + "value" : "Microsoft Entra ID 登入失敗" } } } }, - "Never" : { + "Microsoft Entra ID sign-in finished. Test the connection again." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "안 함" + "value" : "Microsoft Entra ID 로그인이 완료되었습니다. 연결을 다시 테스트하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Asla" + "value" : "Microsoft Entra ID oturum açma tamamlandı. Bağlantıyı yeniden test edin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không bao giờ" + "value" : "Đã hoàn tất đăng nhập Microsoft Entra ID. Hãy kiểm tra lại kết nối." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "从不" + "value" : "Microsoft Entra ID 登录已完成。请再次测试连接。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "永不" + "value" : "Microsoft Entra ID 登入已完成。請再次測試連線。" } } } }, - "Never executed" : { - "comment" : "Description of the execution status when a query was never executed.", - "isCommentAutoGenerated" : true, + "Microsoft Entra ID Sign-In Required" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "실행한 적 없음" + "value" : "Microsoft Entra ID 로그인 필요" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Hiç çalıştırılmadı" + "value" : "Microsoft Entra ID ile oturum açma gerekli" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa từng chạy" + "value" : "Yêu cầu đăng nhập Microsoft Entra ID" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "从未执行" + "value" : "需要 Microsoft Entra ID 登录" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "從未執行" + "value" : "需要 Microsoft Entra ID 登入" } } } }, - "Never used" : { + "Microsoft's enterprise SQL database" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사용한 적 없음" + "value" : "Microsoft의 엔터프라이즈 SQL 데이터베이스" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Hiç kullanılmadı" + "value" : "Microsoft'un kurumsal SQL veritabanı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa dùng bao giờ" + "value" : "Cơ sở dữ liệu SQL doanh nghiệp của Microsoft" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "从未使用" + "value" : "Microsoft 的企业级 SQL 数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "從未使用" + "value" : "Microsoft 的企業級 SQL 資料庫" } } } }, - "New" : { - "extractionState" : "stale", + "Migration plan for %@" : { + + }, + "Minimal" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새로 만들기" + "value" : "최소" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni" + "value" : "Minimal" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mới" + "value" : "Tối giản" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建" + "value" : "极简" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增" + "value" : "極簡" } } } }, - "New %@" : { + "Minimize" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 %@" + "value" : "최소화" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni %@" + "value" : "Küçült" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%@ mới" + "value" : "Thu nhỏ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建 %@" + "value" : "最小化" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增 %@" + "value" : "縮到最小" } } } }, - "New %@ (⌘N)" : { + "Missing argument: %@" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 %@ (⌘N)" + "value" : "누락된 인수: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni %@ (⌘N)" + "value" : "Eksik bağımsız değişken: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%@ mới (⌘N)" + "value" : "Thiếu đối số: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建 %@ (⌘N)" + "value" : "缺少参数:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增 %@ (⌘N)" + "value" : "缺少引數:%@" } } } }, - "New %@ Connection" : { + "Missing required parameter: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 %@ 연결" + "value" : "필수 매개변수 누락: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni %@ Bağlantısı" + "value" : "Gerekli parametre eksik: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối %@ mới" + "value" : "Thiếu tham số bắt buộc: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建%@连接" + "value" : "缺少必需参数:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增 %@ 連線" + "value" : "缺少必要參數:%@" } } } }, - "New %@…" : { + "Missing value for parameter: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 %@…" + "value" : "매개변수 값 누락: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni %@…" + "value" : "Parametre için değer eksik: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%@ mới…" + "value" : "Thiếu giá trị cho tham số: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建 %@…" + "value" : "参数缺少值:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增 %@…" + "value" : "參數缺少值:%@" } } } }, - "New Chat" : { - "extractionState" : "stale", + "Mixed Selection" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 채팅" + "value" : "혼합 선택" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni Sohbet" + "value" : "Karışık Seçim" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cuộc trò chuyện mới" + "value" : "Lựa chọn hỗn hợp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建对话" + "value" : "混合选择" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增對話" + "value" : "混合選取" } } } }, - "New Connection" : { + "Mode" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 연결" + "value" : "모드" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni Bağlantı" + "value" : "Mod" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối mới" + "value" : "Chế độ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建连接" + "value" : "模式" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增連線" + "value" : "模式" } } } }, - "New Connection (%@)" : { + "Model" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 연결 (%@)" + "value" : "모델" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni Bağlantı (%@)" + "value" : "Model" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối mới (%@)" + "value" : "Model" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建连接(%@)" + "value" : "Model" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增連線(%@)" + "value" : "Model" } } } }, - "New Connection (⌘N)" : { - "extractionState" : "stale", + "Model ID" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 연결 (⌘N)" + "value" : "모델 ID" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni Bağlantı (⌘N)" + "value" : "Model Kimliği" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối mới (⌘N)" + "value" : "ID mô hình" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建连接 (⌘N)" + "value" : "模型 ID" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增連線 (⌘N)" + "value" : "模型 ID" } } } }, - "New Connection…" : { + "Model name" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 연결…" + "value" : "모델 이름" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni Bağlantı…" + "value" : "Model adı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối mới…" + "value" : "Tên model" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建连接…" + "value" : "模型名称" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增連線…" + "value" : "模型名稱" } } } }, - "New Conversation" : { + "Model not found: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 대화" + "value" : "모델을 찾을 수 없음: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni Konuşma" + "value" : "Model bulunamadı: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hội thoại mới" + "value" : "Không tìm thấy model: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建会话" + "value" : "未找到模型:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增對話" + "value" : "找不到模型:%@" } } } }, - "New Database" : { - "extractionState" : "stale", + "Moderate cost" : { + "comment" : "Accessibility label for a moderate cost.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 데이터베이스" + "value" : "중간 비용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni Veritabanı" + "value" : "Orta maliyet" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cơ sở dữ liệu mới" + "value" : "Chi phí trung bình" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建数据库" + "value" : "中等成本" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增資料庫" + "value" : "中等成本" } } } }, - "New Database (⌘N)" : { - "extractionState" : "stale", + "Modified" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 데이터베이스 (⌘N)" + "value" : "수정됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni Veritabanı (⌘N)" + "value" : "Değiştirildi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cơ sở dữ liệu mới (⌘N)" + "value" : "Đã sửa đổi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建数据库 (⌘N)" + "value" : "已修改" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增資料庫(⌘N)" + "value" : "已修改" } } } }, - "New Database…" : { + "Modified:" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 데이터베이스…" + "value" : "수정됨:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni Veritabanı…" + "value" : "Değiştirildi:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cơ sở dữ liệu mới…" + "value" : "Đã sửa đổi:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建数据库…" + "value" : "修改时间:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增資料庫…" + "value" : "修改時間:" } } } }, - "New Favorite" : { + "Modifier Key Required" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 즐겨찾기" + "value" : "보조 키 필요" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni Sık Kullanılan" + "value" : "Değiştirici Tuş Gerekli" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mục yêu thích mới" + "value" : "Cần phím bổ trợ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建收藏" + "value" : "需要修饰键" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增我的最愛" + "value" : "需要修飾鍵" } } } }, - "New Favorite…" : { - "comment" : "Text for a menu item that opens a dialog to rename a folder.", - "isCommentAutoGenerated" : true, + "MongoDB" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 즐겨찾기…" + "value" : "MongoDB" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni Sık Kullanılan…" + "value" : "MongoDB" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mục yêu thích mới…" + "value" : "MongoDB" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建收藏…" + "value" : "MongoDB" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增我的最愛…" + "value" : "MongoDB" } } } }, - "New Folder" : { + "MongoDB driver has no TLS fallback. Preferred and Required both force TLS. Use Required for MongoDB Atlas and other hosted instances." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 폴더" + "value" : "MongoDB 드라이버에는 TLS 폴백이 없습니다. Preferred와 Required 모두 TLS를 강제합니다. MongoDB Atlas 및 기타 호스팅 인스턴스에는 Required를 사용하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni Klasör" + "value" : "MongoDB sürücüsünde TLS geri dönüşü yoktur. Tercih Edilen ve Zorunlu'nun ikisi de TLS'yi zorunlu kılar. MongoDB Atlas ve diğer barındırılan sunucular için Zorunlu kullanın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thư mục mới" + "value" : "Driver MongoDB không có cơ chế dự phòng TLS. Preferred và Required đều buộc dùng TLS. Dùng Required cho MongoDB Atlas và các instance được lưu trữ khác." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建文件夹" + "value" : "MongoDB 驱动没有 TLS 回退。“首选”和“必需”都会强制使用 TLS。连接 MongoDB Atlas 和其他托管实例时请使用“必需”。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增資料夾" + "value" : "MongoDB 驅動程式沒有 TLS 後備機制。「偏好」和「必要」都會強制使用 TLS。連接 MongoDB Atlas 與其他託管執行個體時請使用「必要」。" } } } }, - "New Group" : { + "MongoDB query language. Use to import into MongoDB." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 그룹" + "value" : "MongoDB 쿼리 언어입니다. MongoDB로 가져올 때 사용합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni Grup" + "value" : "MongoDB sorgu dili. MongoDB'ye içe aktarmak için kullanın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhóm mới" + "value" : "Ngôn ngữ truy vấn MongoDB. Dùng để nhập vào MongoDB." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建分组" + "value" : "MongoDB 查询语言。用于导入到 MongoDB。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增群組" + "value" : "MongoDB 查詢語言。用於匯入 MongoDB。" } } } }, - "New Group…" : { + "Most popular open-source SQL database" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 그룹…" + "value" : "가장 인기 있는 오픈 소스 SQL 데이터베이스" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni Grup…" + "value" : "En popüler açık kaynaklı SQL veritabanı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhóm Mới…" + "value" : "Cơ sở dữ liệu SQL mã nguồn mở phổ biến nhất" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建分组…" + "value" : "最流行的开源 SQL 数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增群組…" + "value" : "最熱門的開放原始碼 SQL 資料庫" } } } }, - "New Jump Host" : { + "Most Run" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 점프 호스트" + "value" : "최다 실행" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni Atlama Sunucusu" + "value" : "En Çok Çalıştırılan" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Jump Host mới" + "value" : "Chạy nhiều nhất" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建 Jump Host" + "value" : "运行最多" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增 Jump Host" + "value" : "執行最多" } } } }, - "New Query" : { + "Move Down" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 쿼리" + "value" : "아래로 이동" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni Sorgu" + "value" : "Aşağı Taşı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Truy vấn mới" + "value" : "Di chuyển xuống" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建查询" + "value" : "下移" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增查詢" + "value" : "下移" } } } }, - "New Query Tab" : { + "Move Down (⌘↓)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 쿼리 탭" + "value" : "아래로 이동 (⌘↓)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni Sorgu Sekmesi" + "value" : "Aşağı Taşı (⌘↓)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tab truy vấn mới" + "value" : "Di chuyển xuống (⌘↓)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建查询标签页" + "value" : "下移 (⌘↓)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增查詢分頁" + "value" : "下移 (⌘↓)" } } } }, - "New Query Tab (⌘T)" : { - "extractionState" : "stale", + "Move File to Trash" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 쿼리 탭 (⌘T)" + "value" : "파일을 휴지통으로 이동" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni Sorgu Sekmesi (⌘T)" + "value" : "Dosyayı Çöp Sepetine Taşı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tab truy vấn mới (⌘T)" + "value" : "Chuyển tệp vào Thùng rác" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建查询标签页 (⌘T)" + "value" : "将文件移到废纸篓" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增查詢分頁 (⌘T)" + "value" : "將檔案移到垃圾桶" } } } }, - "New Query, favorite, or folder" : { - "extractionState" : "stale", + "Move File to Trash?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 쿼리, 즐겨찾기 또는 폴더" + "value" : "파일을 휴지통으로 이동하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni sorgu, sık kullanılan veya klasör" + "value" : "Dosya Çöp Sepetine Taşınsın mı?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Truy vấn mới, mục yêu thích hoặc thư mục" + "value" : "Chuyển tệp vào Thùng rác?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建查询、收藏或文件夹" + "value" : "要将文件移到废纸篓吗?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增查詢、我的最愛或資料夾" + "value" : "要將檔案移到垃圾桶嗎?" } } } }, - "New Subfolder" : { + "Move Filter Down" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 하위 폴더" + "value" : "필터를 아래로 이동" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni Alt Klasör" + "value" : "Filtreyi Aşağı Taşı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thư mục con mới" + "value" : "Chuyển bộ lọc xuống" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建子文件夹" + "value" : "下移筛选条件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增子資料夾" + "value" : "將篩選條件下移" } } } }, - "New Subgroup" : { + "Move Filter Up" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 하위 그룹" + "value" : "필터를 위로 이동" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni Alt Grup" + "value" : "Filtreyi Yukarı Taşı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhóm con mới" + "value" : "Chuyển bộ lọc lên" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建子分组" + "value" : "上移筛选条件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增子群組" + "value" : "將篩選條件上移" } } } }, - "New Tab" : { + "Move Group to…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 탭" + "value" : "그룹 이동…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni Sekme" + "value" : "Grubu Taşı…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tab mới" + "value" : "Di chuyển nhóm đến…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建标签页" + "value" : "移动分组到…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增分頁" + "value" : "移動群組至…" } } } }, - "New Table" : { - "extractionState" : "stale", + "Move Line Down" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 테이블" + "value" : "줄을 아래로 이동" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni Tablo" + "value" : "Satırı Aşağı Taşı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bảng mới" + "value" : "Chuyển dòng xuống" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建表" + "value" : "下移一行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增資料表" + "value" : "將該行下移" } } } }, - "New Table…" : { + "Move Line Up" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 테이블…" + "value" : "줄을 위로 이동" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni Tablo…" + "value" : "Satırı Yukarı Taşı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bảng mới…" + "value" : "Chuyển dòng lên" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建表…" + "value" : "上移一行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增資料表…" + "value" : "將該行上移" } } } }, - "New Theme" : { + "Move Tab Left" : { + + }, + "Move Tab Right" : { + + }, + "Move Tab to New Window" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 테마" + "value" : "탭을 새 윈도우로 이동" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni Tema" + "value" : "Sekmeyi Yeni Pencereye Taşı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chủ đề mới" + "value" : "Chuyển tab sang cửa sổ mới" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建主题" + "value" : "将标签页移到新窗口" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增主題" + "value" : "將標籤頁移至新視窗" } } } }, - "New Trigger" : { + "Move the connection's browse cursor to another database. This changes what the user sees in TablePro. To run one statement elsewhere, pass 'database' to that tool instead." : { + + }, + "Move the connection's browse cursor to another schema. This changes what the user sees." : { + + }, + "Move to" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 트리거" + "value" : "다음으로 이동" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni Tetikleyici" + "value" : "Taşı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trigger mới" + "value" : "Di chuyển đến" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建触发器" + "value" : "移动到" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增觸發器" + "value" : "移動至" } } } }, - "New User or Role" : { + "Move to Beginning of Document" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 사용자 또는 역할" + "value" : "문서 시작 부분으로 이동" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni Kullanıcı veya Rol" + "value" : "Belgenin Başına Git" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Người dùng hoặc vai trò mới" + "value" : "Đến đầu tài liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建用户或角色" + "value" : "移到文稿开头" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增使用者或角色" + "value" : "移到文件開頭" } } } }, - "New View" : { - "extractionState" : "stale", + "Move to Beginning of Line" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 뷰" + "value" : "줄 시작 부분으로 이동" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni Görünüm" + "value" : "Satırın Başına Git" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "View mới" + "value" : "Đến đầu dòng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建视图" + "value" : "移到行首" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增檢視表" + "value" : "移到行首" } } } }, - "New View…" : { + "Move to End of Document" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 뷰…" + "value" : "문서 끝으로 이동" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni Görünüm…" + "value" : "Belgenin Sonuna Git" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "View mới…" + "value" : "Đến cuối tài liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建视图…" + "value" : "移到文稿末尾" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增檢視表…" + "value" : "移到文件結尾" } } } }, - "New password:" : { + "Move to End of Line" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 암호:" + "value" : "줄 끝으로 이동" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni parola:" + "value" : "Satırın Sonuna Git" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mật khẩu mới:" + "value" : "Đến cuối dòng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新密码:" + "value" : "移到行尾" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新密碼:" + "value" : "移到行尾" } } } }, - "New query tab" : { - "extractionState" : "stale", + "Move to Group" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 쿼리 탭" + "value" : "그룹으로 이동" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni sorgu sekmesi" + "value" : "Gruba Taşı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tab truy vấn mới" + "value" : "Di chuyển vào Nhóm" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建查询标签页" + "value" : "移动到分组" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增查詢分頁" + "value" : "移動至群組" } } } }, - "New table" : { + "Move to Trash" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 테이블" + "value" : "휴지통으로 이동" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni tablo" + "value" : "Çöp Sepetine Taşı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bảng mới" + "value" : "Chuyển vào Thùng rác" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建表" + "value" : "移到废纸篓" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增資料表" + "value" : "移到垃圾桶" } } } }, - "New table:" : { + "Move Up" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 테이블:" + "value" : "위로 이동" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni tablo:" + "value" : "Yukarı Taşı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bảng mới:" + "value" : "Di chuyển lên" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建表:" + "value" : "上移" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增資料表:" + "value" : "上移" } } } }, - "Next Page" : { + "Move Up (⌘↑)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다음 페이지" + "value" : "위로 이동 (⌘↑)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sonraki Sayfa" + "value" : "Yukarı Taşı (⌘↑)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trang sau" + "value" : "Di chuyển lên (⌘↑)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "下一页" + "value" : "上移 (⌘↑)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "下一頁" + "value" : "上移 (⌘↑)" } } } }, - "Next Page (⌘])" : { - "extractionState" : "stale", + "Move Word Left" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다음 페이지 (⌘])" + "value" : "단어 단위로 왼쪽 이동" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Next Page (⌘])" + "value" : "Bir Kelime Sola Git" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trang sau (⌘])" + "value" : "Sang trái một từ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "下一页 (⌘])" + "value" : "向左移动一个单词" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "下一頁 (⌘])" + "value" : "向左移動一個單字" } } } }, - "Next Result" : { + "Move Word Right" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다음 결과" + "value" : "단어 단위로 오른쪽 이동" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sonraki Sonuç" + "value" : "Bir Kelime Sağa Git" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết quả tiếp" + "value" : "Sang phải một từ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "下一个结果" + "value" : "向右移动一个单词" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "下一個結果" + "value" : "向右移動一個單字" } } } }, - "Next Statement" : { + "Moves the editor cursor to the statement that produced this result" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다음 문" + "value" : "이 결과를 생성한 문으로 편집기 커서를 이동합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sonraki İfade" + "value" : "Düzenleyici imlecini bu sonucu üreten ifadeye taşır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Câu lệnh tiếp theo" + "value" : "Di chuyển con trỏ trình soạn thảo tới câu lệnh đã tạo ra kết quả này" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "下一条语句" + "value" : "将编辑器光标移到生成此结果的语句" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "下一個陳述式" + "value" : "將編輯器游標移到產生此結果的陳述式" } } } }, - "Next Tab" : { + "MQL" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다음 탭" + "value" : "MQL" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Next Tab" + "value" : "MQL" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tab tiếp" + "value" : "MQL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "下一个标签页" + "value" : "MQL" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "下一個分頁" + "value" : "MQL" } } } }, - "Next Tab (Alt)" : { + "MQL Preview" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다음 탭 (Alt)" + "value" : "MQL 미리보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Next Tab (Alt)" + "value" : "MQL Önizleme" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tab tiếp theo (Alt)" + "value" : "Xem trước MQL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "下一个标签页 (Alt)" + "value" : "MQL 预览" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "下一個分頁 (Alt)" - } - } - } - }, - "Next match" : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "다음 일치 항목" + "value" : "MQL 預覽" } } } }, - "Next page" : { + "Multi-model database with SurrealQL" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다음 페이지" + "value" : "SurrealQL을 사용하는 멀티 모델 데이터베이스" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sonraki sayfa" + "value" : "SurrealQL ile çok modelli veritabanı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trang sau" + "value" : "Cơ sở dữ liệu đa mô hình với SurrealQL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "下一页" + "value" : "使用 SurrealQL 的多模型数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "下一頁" + "value" : "使用 SurrealQL 的多模型資料庫" } } } }, - "No %1$@ match “%2$@”" : { + "Multiple statements are not permitted for this client" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@ 중 “%2$@”과 일치하는 항목 없음" + "value" : "이 클라이언트에서는 여러 쿼리문을 사용할 수 없습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "“%2$@” ile eşleşen %1$@ yok" + "value" : "Bu istemci için birden çok deyime izin verilmiyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có %1$@ nào khớp “%2$@”" + "value" : "Client này không được phép chạy nhiều câu lệnh" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有与“%2$@”匹配的%1$@" + "value" : "此客户端不允许执行多条语句" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有與「%2$@」相符的%1$@" + "value" : "此用戶端不允許執行多條語句" } } } }, - "No %@" : { + "Multiple values" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 없음" + "value" : "여러 값" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ Yok" + "value" : "Birden fazla değer" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có %@" + "value" : "Nhiều giá trị" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有%@" + "value" : "多个值" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有 %@" + "value" : "多個值" } } } }, - "No AI provider configured. Go to Settings > AI to add one." : { + "Must be exactly: I understand this is irreversible" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "구성된 AI 제공업체가 없습니다. 설정 > AI로 이동하여 추가하십시오." + "value" : "다음과 정확히 일치해야 합니다: I understand this is irreversible" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yapılandırılmış AI sağlayıcısı yok. Eklemek için Ayarlar > AI bölümüne gidin." + "value" : "Tam olarak şöyle olmalı: I understand this is irreversible" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa cấu hình nhà cung cấp AI. Vào Cài đặt > AI để thêm." + "value" : "Phải nhập chính xác: I understand this is irreversible" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "尚未配置 AI 提供商。前往设置 > AI 添加。" + "value" : "必须完全输入:I understand this is irreversible" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "尚未設定 AI 供應商。請前往「設定 > AI」新增。" + "value" : "必須完全輸入:I understand this is irreversible" } } } }, - "No Chartable Rows" : { + "My Queries" : { "localizations" : { "ko" : { "stringUnit" : { - "value" : "차트로 그릴 행 없음", - "state" : "translated" + "state" : "translated", + "value" : "내 쿼리" } }, "tr" : { "stringUnit" : { - "value" : "Grafiğe Uygun Satır Yok", - "state" : "translated" + "state" : "translated", + "value" : "Sorgularım" } }, "vi" : { "stringUnit" : { - "value" : "Không có hàng để vẽ biểu đồ", - "state" : "translated" + "state" : "translated", + "value" : "Truy vấn của tôi" } }, "zh-Hans" : { "stringUnit" : { - "value" : "没有可绘制的行", - "state" : "translated" + "state" : "translated", + "value" : "我的查询" } }, "zh-Hant" : { "stringUnit" : { - "value" : "沒有可繪製的列", - "state" : "translated" + "state" : "translated", + "value" : "我的查詢" } } } }, - "No Check Constraints" : { + "My Queries Only" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "CHECK 제약 조건 없음" + "value" : "내 쿼리만" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kontrol Kısıtlaması Yok" + "value" : "Yalnızca Sorgularım" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có ràng buộc kiểm tra" + "value" : "Chỉ truy vấn của tôi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无检查约束" + "value" : "仅我的查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無檢查約束" + "value" : "僅我的查詢" } } } }, - "No Codex CLI login found. Run codex login first, then try again." : { + "My Server" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "My Server" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Codex CLI 로그인 정보를 찾을 수 없습니다. 먼저 codex login을 실행한 후 다시 시도하십시오." + "value" : "내 서버" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Codex CLI girişi bulunamadı. Önce codex login çalıştırın, sonra tekrar deneyin." + "value" : "Sunucum" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy đăng nhập Codex CLI. Hãy chạy codex login trước, rồi thử lại." + "value" : "Máy chủ của tôi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未找到 Codex CLI 登录。请先运行 codex login,然后重试。" + "value" : "我的服务器" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "找不到 Codex CLI 登入。請先執行 codex login,然後再試一次。" + "value" : "我的伺服器" } } } }, - "No Columns Defined" : { + "MySQL, PostgreSQL & SQLite" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "정의된 열 없음" + "value" : "MySQL, PostgreSQL & SQLite" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tanımlı Sütun Yok" + "value" : "MySQL, PostgreSQL & SQLite" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa có cột nào" + "value" : "MySQL, PostgreSQL & SQLite" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "尚未定义列" + "value" : "MySQL、PostgreSQL 和 SQLite" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "尚未定義欄位" + "value" : "MySQL、PostgreSQL 和 SQLite" } } } }, - "No Connections" : { + "name" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 없음" + "value" : "이름" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı Yok" + "value" : "ad" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa có kết nối" + "value" : "tên" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无连接" + "value" : "名称" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無連線" + "value" : "名稱" } } } }, - "No Connections Imported" : { + "Name" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "가져온 연결 없음" + "value" : "이름" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Hiçbir Bağlantı İçe Aktarılmadı" + "value" : "Ad" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có Kết nối nào được Nhập" + "value" : "Tên" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未导入任何连接" + "value" : "名称" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "未匯入任何連線" + "value" : "名稱" } } } }, - "No DDL available" : { + "Name as supplied" : { + + }, + "Name for the new database" : { + + }, + "Name of the database or schema" : { + + }, + "Name or UUID of a TablePro connection" : { + + }, + "Name quoted for this engine" : { + + }, + "Name:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사용 가능한 DDL 없음" + "value" : "이름:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "DDL mevcut değil" + "value" : "Ad:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có DDL" + "value" : "Tên:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无可用 DDL" + "value" : "名称:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無可用的 DDL" + "value" : "名稱:" } } } }, - "No Data" : { + "Namespace" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터 없음" + "value" : "네임스페이스" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veri Yok" + "value" : "Namespace" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có dữ liệu" + "value" : "Namespace" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无数据" + "value" : "命名空间" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無資料" + "value" : "命名空間" } } } }, - "No Database Selected" : { + "Navigate to referenced row" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "선택된 데이터베이스 없음" + "value" : "참조된 행으로 이동" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı Seçilmedi" + "value" : "Referans verilen satıra git" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa chọn cơ sở dữ liệu" + "value" : "Đi đến dòng được tham chiếu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未选择数据库" + "value" : "跳转到引用行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "未選擇資料庫" + "value" : "前往參照的列" } } } }, - "No Databases" : { + "Navigating pages will reload data and discard all unsaved changes." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 없음" + "value" : "페이지를 이동하면 데이터가 다시 로드되고 저장하지 않은 모든 변경 사항이 폐기됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı Yok" + "value" : "Sayfa değiştirmek veriyi yeniden yükler ve tüm kaydedilmemiş değişiklikleri siler." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có cơ sở dữ liệu" + "value" : "Chuyển trang sẽ tải lại dữ liệu và hủy tất cả thay đổi chưa lưu." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有数据库" + "value" : "翻页将重新加载数据并丢弃所有未保存的更改。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有資料庫" + "value" : "翻頁將重新載入資料並捨棄所有未儲存的變更。" } } } }, - "No Databases Shown" : { + "Navigating to another page will discard all unsaved changes." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "표시된 데이터베이스 없음" + "value" : "다른 페이지로 이동하면 저장하지 않은 모든 변경 사항이 폐기됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Gösterilen Veritabanı Yok" + "value" : "Başka bir sayfaya gitmek kaydedilmemiş değişiklikleri siler." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có cơ sở dữ liệu nào được hiển thị" + "value" : "Chuyển sang trang khác sẽ huỷ tất cả thay đổi chưa lưu." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未显示数据库" + "value" : "导航到其他页面将丢弃所有未保存的更改。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "未顯示資料庫" + "value" : "前往其他頁面將捨棄所有未儲存的變更。" } } } }, - "No Datasets" : { + "Navigation" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터세트 없음" + "value" : "탐색" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veri Kümesi Yok" + "value" : "Gezinme" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có dataset" + "value" : "Điều hướng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有数据集" + "value" : "导航" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有資料集" + "value" : "導覽" } } } }, - "No Favorites" : { + "Nearest" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "즐겨찾기 없음" + "value" : "가장 가까움" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Favori Yok" + "value" : "En Yakın" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có mục yêu thích" + "value" : "Nearest" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无收藏" + "value" : "Nearest" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無我的最愛" + "value" : "Nearest" } } } }, - "No Foreign Keys Yet" : { + "Negotiating encryption" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "아직 외래 키 없음" + "value" : "암호화 협상 중" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Henüz Yabancı Anahtar Yok" + "value" : "Şifreleme görüşülüyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa có khóa ngoại" + "value" : "Đang thương lượng mã hoá" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "尚无外键" + "value" : "正在协商加密" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "尚無外鍵" + "value" : "正在協商加密" } } } }, - "No Indexes Defined" : { + "Nested field path" : { + + }, + "Network" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "정의된 인덱스 없음" + "value" : "네트워크" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tanımlı Dizin Yok" + "value" : "Ağ" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa có chỉ mục" + "value" : "Mạng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "尚未定义索引" + "value" : "网络" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "尚未定義索引" + "value" : "網路" } } } }, - "No Matching Connections" : { + "Network error: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "일치하는 연결 없음" + "value" : "네트워크 오류: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eşleşen Bağlantı Yok" + "value" : "Ağ hatası: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có kết nối phù hợp" + "value" : "Lỗi mạng: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无匹配连接" + "value" : "网络错误:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無符合的連線" + "value" : "網路錯誤:%@" } } } }, - "No Matching Favorites" : { + "Network is unavailable. Changes will sync when connectivity is restored." : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "일치하는 즐겨찾기 없음" + "value" : "네트워크를 사용할 수 없습니다. 연결이 복원되면 변경 사항이 동기화됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "No Matching Favorites" + "value" : "Ağ kullanılamıyor. Bağlantı sağlandığında değişiklikler eşitlenecek." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có mục yêu thích phù hợp" + "value" : "Mạng không khả dụng. Các thay đổi sẽ được đồng bộ khi có kết nối trở lại." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无匹配的收藏" + "value" : "网络不可用。恢复连接后将自动同步更改。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無符合的我的最愛" + "value" : "網路無法使用。連線恢復後將自動同步變更。" } } } }, - "No Matching Queries" : { + "Never" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "일치하는 쿼리 없음" + "value" : "안 함" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eşleşen Sorgu Yok" + "value" : "Asla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có truy vấn phù hợp" + "value" : "Không bao giờ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无匹配查询" + "value" : "从不" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無符合的查詢" - } - } - } - }, - "No Microsoft Entra ID access token was supplied." : { - "localizations" : { - "ko" : { - "stringUnit" : { - "value" : "Microsoft Entra ID 액세스 토큰이 제공되지 않았습니다.", - "state" : "translated" + "value" : "永不" } } } }, - "No Node Selected" : { - "comment" : "A label displayed when no query plan node is selected.", + "Never executed" : { + "comment" : "Description of the execution status when a query was never executed.", "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "선택된 노드 없음" + "value" : "실행한 적 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Düğüm Seçilmedi" + "value" : "Hiç çalıştırılmadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa chọn nút" + "value" : "Chưa từng chạy" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未选择节点" + "value" : "从未执行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "未選擇節點" + "value" : "從未執行" } } } }, - "No Numeric Column" : { + "Never used" : { "localizations" : { "ko" : { "stringUnit" : { - "value" : "숫자 열 없음", - "state" : "translated" + "state" : "translated", + "value" : "사용한 적 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sayısal Sütun Yok" + "value" : "Hiç kullanılmadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có cột số" + "value" : "Chưa dùng bao giờ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有数值列" + "value" : "从未使用" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有數值欄" + "value" : "從未使用" } } } }, - "No Object Selected" : { + "New" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "선택된 객체 없음" + "value" : "새로 만들기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Nesne Seçilmedi" + "value" : "Yeni" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa chọn đối tượng" + "value" : "Mới" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未选择对象" + "value" : "新建" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "未選取物件" + "value" : "新增" } } } }, - "No Operations Available" : { + "New %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사용 가능한 작업 없음" + "value" : "새 %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kullanılabilir İşlem Yok" + "value" : "Yeni %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có thao tác nào" + "value" : "%@ mới" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有可用操作" + "value" : "新建 %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有可用的操作" + "value" : "新增 %@" } } } }, - "No Plan Available" : { - "comment" : "Title of a view that shows when a query plan is not available.", - "isCommentAutoGenerated" : true, + "New %@ (⌘N)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사용 가능한 쿼리 계획 없음" + "value" : "새 %@ (⌘N)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Plan Yok" + "value" : "Yeni %@ (⌘N)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có kế hoạch" + "value" : "%@ mới (⌘N)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有可用的执行计划" + "value" : "新建 %@ (⌘N)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有可用的執行計畫" + "value" : "新增 %@ (⌘N)" } } } }, - "No Privileges" : { + "New %@ Connection" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "권한 없음" + "value" : "새 %@ 연결" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yetki Yok" + "value" : "Yeni %@ Bağlantısı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có quyền" + "value" : "Kết nối %@ mới" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无权限" + "value" : "新建%@连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有權限" + "value" : "新增 %@ 連線" } } } }, - "No Queries Match" : { + "New %@…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "일치하는 쿼리 없음" + "value" : "새 %@…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eşleşen Sorgu Yok" + "value" : "Yeni %@…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có truy vấn khớp" + "value" : "%@ mới…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有匹配的查询" + "value" : "新建 %@…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有相符的查詢" + "value" : "新增 %@…" } } } }, - "No Queries Yet" : { + "New Chat" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "아직 쿼리 없음" + "value" : "새 채팅" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Henüz Sorgu Yok" + "value" : "Yeni Sohbet" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa có truy vấn" + "value" : "Cuộc trò chuyện mới" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "还没有查询" + "value" : "新建对话" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "還沒有查詢" + "value" : "新增對話" } } } }, - "No Query History" : { + "New Connection" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 기록 없음" + "value" : "새 연결" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgu Geçmişi Yok" + "value" : "Yeni Bağlantı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có lịch sử truy vấn" + "value" : "Kết nối mới" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有查询历史" + "value" : "新建连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有查詢歷史" + "value" : "新增連線" } } } }, - "No Query History Yet" : { - "extractionState" : "stale", + "New Connection (%@)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "아직 쿼리 기록 없음" + "value" : "새 연결 (%@)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "No Query History Yet" + "value" : "Yeni Bağlantı (%@)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa có lịch sử truy vấn" + "value" : "Kết nối mới (%@)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "暂无查询历史" + "value" : "新建连接(%@)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "尚無查詢記錄" + "value" : "新增連線(%@)" } } } }, - "No Query Selected" : { + "New Connection (⌘N)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "선택된 쿼리 없음" + "value" : "새 연결 (⌘N)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgu Seçilmedi" + "value" : "Yeni Bağlantı (⌘N)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa chọn truy vấn" + "value" : "Kết nối mới (⌘N)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未选择查询" + "value" : "新建连接 (⌘N)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "未選擇查詢" - } - } - } - }, - "No Results" : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "결과 없음" + "value" : "新增連線 (⌘N)" } } } }, - "No SSL encryption" : { + "New Connection…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSL 암호화 없음" + "value" : "새 연결…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSL şifrelemesi yok" + "value" : "Yeni Bağlantı…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không mã hóa SSL" + "value" : "Kết nối mới…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无 SSL 加密" + "value" : "新建连接…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無 SSL 加密" + "value" : "新增連線…" } } } }, - "No Schemas Available" : { - "comment" : "Placeholder text displayed in the schemas menu when the user has no schemas available.", - "isCommentAutoGenerated" : true, + "New Conversation" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사용 가능한 스키마 없음" + "value" : "새 대화" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kullanılabilir Şema Yok" + "value" : "Yeni Konuşma" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có schema nào" + "value" : "Hội thoại mới" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有可用的 Schema" + "value" : "新建会话" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有可用的綱要" + "value" : "新增對話" } } } }, - "No Selection" : { + "New Database" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "선택 항목 없음" + "value" : "새 데이터베이스" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Seçim Yok" + "value" : "Yeni Veritabanı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa chọn" + "value" : "Cơ sở dữ liệu mới" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未选择" + "value" : "新建数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "未選取" + "value" : "新增資料庫" } } } }, - "No Tables" : { + "New Database (⌘N)" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 없음" + "value" : "새 데이터베이스 (⌘N)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "No Tables" + "value" : "Yeni Veritabanı (⌘N)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có bảng" + "value" : "Cơ sở dữ liệu mới (⌘N)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无表" + "value" : "新建数据库 (⌘N)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有資料表" + "value" : "新增資料庫(⌘N)" } } } }, - "No Triggers" : { + "New Database…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "트리거 없음" + "value" : "새 데이터베이스…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tetikleyici Yok" + "value" : "Yeni Veritabanı…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có trigger" + "value" : "Cơ sở dữ liệu mới…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无触发器" + "value" : "新建数据库…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無觸發器" + "value" : "新增資料庫…" } } } }, - "No Users or Roles" : { + "New Favorite" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사용자 또는 역할 없음" + "value" : "새 즐겨찾기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kullanıcı veya Rol Yok" + "value" : "Yeni Sık Kullanılan" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có người dùng hoặc vai trò" + "value" : "Mục yêu thích mới" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有用户或角色" + "value" : "新建收藏" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有使用者或角色" + "value" : "新增我的最愛" } } } }, - "No activations found" : { + "New Favorite…" : { + "comment" : "Text for a menu item that opens a dialog to rename a folder.", + "isCommentAutoGenerated" : true, "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "No activations found" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "활성화를 찾을 수 없음" + "value" : "새 즐겨찾기…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Etkinleştirme bulunamadı" + "value" : "Yeni Sık Kullanılan…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy kích hoạt nào" + "value" : "Mục yêu thích mới…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未找到激活记录" + "value" : "新建收藏…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "找不到啟用記錄" + "value" : "新增我的最愛…" } } } }, - "No active connection" : { + "New Folder" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "활성 연결 없음" + "value" : "새 폴더" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Etkin bağlantı yok" + "value" : "Yeni Klasör" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có kết nối đang hoạt động" + "value" : "Thư mục mới" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无活动连接" + "value" : "新建文件夹" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無使用中的連線" + "value" : "新增資料夾" } } } }, - "No active database connection" : { + "New Group" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "활성 데이터베이스 연결 없음" + "value" : "새 그룹" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Aktif veritabanı bağlantısı yok" + "value" : "Yeni Grup" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có kết nối cơ sở dữ liệu" + "value" : "Nhóm mới" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有活动的数据库连接" + "value" : "新建分组" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有使用中的資料庫連線" + "value" : "新增群組" } } } }, - "No activity matches the current filters." : { + "New Group…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "현재 필터와 일치하는 활동이 없습니다." + "value" : "새 그룹…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geçerli filtrelerle eşleşen etkinlik yok." + "value" : "Yeni Grup…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có hoạt động nào khớp với bộ lọc hiện tại." + "value" : "Nhóm Mới…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有与当前筛选条件匹配的活动。" + "value" : "新建分组…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有符合目前篩選條件的活動。" + "value" : "新增群組…" } } } }, - "No activity yet" : { + "New Jump Host" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "아직 활동 없음" + "value" : "새 점프 호스트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Henüz etkinlik yok" + "value" : "Yeni Atlama Sunucusu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa có hoạt động" + "value" : "Jump Host mới" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "暂无活动" + "value" : "新建 Jump Host" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "尚無活動" + "value" : "新增 Jump Host" } } } }, - "No available local port for SSH tunnel" : { + "New password:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 터널에 사용할 수 있는 로컬 포트가 없습니다" + "value" : "새 암호:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH tüneli için kullanılabilir yerel port yok" + "value" : "Yeni parola:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có cổng nội bộ khả dụng cho đường hầm SSH" + "value" : "Mật khẩu mới:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有可用的本地端口用于 SSH 隧道" + "value" : "新密码:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有可用的本機連接埠供 SSH 隧道使用" + "value" : "新密碼:" } } } }, - "No available local port for the Cloud SQL Auth Proxy." : { + "New Query" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Cloud SQL Auth Proxy에 사용할 수 있는 로컬 포트가 없습니다." + "value" : "새 쿼리" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Cloud SQL Auth Proxy için uygun bir yerel port yok." + "value" : "Yeni Sorgu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không còn cổng cục bộ trống cho Cloud SQL Auth Proxy." + "value" : "Truy vấn mới" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有可用于 Cloud SQL Auth Proxy 的本地端口。" + "value" : "新建查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有可供 Cloud SQL Auth Proxy 使用的本機連接埠。" + "value" : "新增查詢" } } } }, - "No available local port for the Cloudflare tunnel." : { + "New query tab" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Cloudflare 터널에 사용할 수 있는 로컬 포트가 없습니다." + "value" : "새 쿼리 탭" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Cloudflare tüneli için kullanılabilir yerel port yok." + "value" : "Yeni sorgu sekmesi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có cổng cục bộ khả dụng cho tunnel Cloudflare." + "value" : "Tab truy vấn mới" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有可用于 Cloudflare 隧道的本地端口。" + "value" : "新建查询标签页" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有可用於 Cloudflare 隧道的本機連接埠。" + "value" : "新增查詢分頁" } } } }, - "No changes to preview" : { - "extractionState" : "stale", + "New Query Tab" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "미리 볼 변경 사항 없음" + "value" : "새 쿼리 탭" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "No changes to preview" + "value" : "Yeni Sorgu Sekmesi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có thay đổi để xem trước" + "value" : "Tab truy vấn mới" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无可预览的更改" + "value" : "新建查询标签页" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有可預覽的變更" + "value" : "新增查詢分頁" } } } }, - "No clients connected" : { + "New Query Tab (⌘T)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결된 클라이언트 없음" + "value" : "새 쿼리 탭 (⌘T)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlı istemci yok" + "value" : "Yeni Sorgu Sekmesi (⌘T)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có client nào kết nối" + "value" : "Tab truy vấn mới (⌘T)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有已连接的客户端" + "value" : "新建查询标签页 (⌘T)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有已連線的用戶端" + "value" : "新增查詢分頁 (⌘T)" } } } }, - "No compatible build is available yet. This plugin will update automatically once one is published." : { + "New Query, favorite, or folder" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "호환되는 빌드를 아직 사용할 수 없습니다. 빌드가 게시되면 이 플러그인이 자동으로 업데이트됩니다." + "value" : "새 쿼리, 즐겨찾기 또는 폴더" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Henüz uyumlu bir derleme yok. Yayımlandığında bu eklenti otomatik olarak güncellenecek." + "value" : "Yeni sorgu, sık kullanılan veya klasör" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa có bản dựng tương thích. Plugin này sẽ tự động cập nhật khi có bản mới được phát hành." + "value" : "Truy vấn mới, mục yêu thích hoặc thư mục" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "目前还没有兼容的构建版本。发布后此插件将自动更新。" + "value" : "新建查询、收藏或文件夹" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "目前還沒有相容的建置版本。發布後此外掛將自動更新。" + "value" : "新增查詢、我的最愛或資料夾" } } } }, - "No connections" : { + "New Subfolder" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 없음" + "value" : "새 하위 폴더" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı yok" + "value" : "Yeni Alt Klasör" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có kết nối" + "value" : "Thư mục con mới" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有连接" + "value" : "新建子文件夹" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有連線" + "value" : "新增子資料夾" } } } }, - "No connections found to import" : { + "New Subgroup" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "가져올 연결을 찾을 수 없음" + "value" : "새 하위 그룹" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İçe aktarılacak bağlantı bulunamadı" + "value" : "Yeni Alt Grup" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy kết nối nào để nhập" + "value" : "Nhóm con mới" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有找到可导入的连接" + "value" : "新建子分组" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "找不到可匯入的連線" + "value" : "新增子群組" } } } }, - "No connections match “%@”" : { + "New Tab" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "“%@”과 일치하는 연결 없음" + "value" : "새 탭" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "“%@” ile eşleşen bağlantı yok" + "value" : "Yeni Sekme" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có kết nối nào khớp với “%@”" + "value" : "Tab mới" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有与“%@”匹配的连接" + "value" : "新建标签页" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有符合「%@」的連線" + "value" : "新增分頁" } } } }, - "No connections yet" : { - "extractionState" : "stale", + "New table" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "아직 연결 없음" + "value" : "새 테이블" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "No connections yet" + "value" : "Yeni tablo" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa có kết nối nào" + "value" : "Bảng mới" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "暂无连接" + "value" : "新建表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "尚無連線" + "value" : "新增資料表" } } } }, - "No credentials are sent. Use this when the server handles authentication itself, such as a Tailscale SSH host." : { + "New Table" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "자격 증명이 전송되지 않습니다. Tailscale SSH 호스트처럼 서버가 인증을 직접 처리할 때 사용하십시오." + "value" : "새 테이블" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Hiçbir kimlik bilgisi gönderilmez. Sunucunun kimlik doğrulamayı kendi yaptığı durumlarda, örneğin Tailscale SSH sunucusunda kullanın." + "value" : "Yeni Tablo" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không gửi thông tin đăng nhập nào. Dùng khi máy chủ tự xử lý xác thực, ví dụ máy chủ SSH của Tailscale." + "value" : "Bảng mới" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "不会发送任何凭据。当服务器自行处理认证时使用,例如 Tailscale 的 SSH 主机。" + "value" : "新建表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "不會傳送任何認證資訊。當伺服器自行處理驗證時使用,例如 Tailscale 的 SSH 主機。" + "value" : "新增資料表" } } } }, - "No custom commands yet." : { + "New table:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "아직 사용자 지정 명령이 없습니다." + "value" : "새 테이블:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Henüz özel komut yok." + "value" : "Yeni tablo:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa có lệnh tùy chỉnh nào." + "value" : "Bảng mới:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "还没有自定义命令。" + "value" : "新建表:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "還沒有自訂指令。" + "value" : "新增資料表:" } } } }, - "No database connection" : { + "New Table…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 연결 없음" + "value" : "새 테이블…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı bağlantısı yok" + "value" : "Yeni Tablo…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa kết nối cơ sở dữ liệu" + "value" : "Bảng mới…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未连接数据库" + "value" : "新建表…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "未連線資料庫" + "value" : "新增資料表…" } } } }, - "No database settings found in this folder." : { + "New Theme" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 폴더에서 데이터베이스 설정을 찾을 수 없습니다." + "value" : "새 테마" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu klasörde veritabanı ayarı bulunamadı." + "value" : "Yeni Tema" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy cài đặt cơ sở dữ liệu trong thư mục này." + "value" : "Chủ đề mới" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在此文件夹中未找到数据库设置。" + "value" : "新建主题" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在此資料夾中找不到資料庫設定。" + "value" : "新增主題" } } } }, - "No databases" : { + "New Trigger" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 없음" + "value" : "새 트리거" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı yok" + "value" : "Yeni Tetikleyici" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có cơ sở dữ liệu" + "value" : "Trigger mới" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有数据库" + "value" : "新建触发器" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有資料庫" + "value" : "新增觸發器" } } } }, - "No databases found" : { - "extractionState" : "stale", + "New User or Role" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스를 찾을 수 없음" + "value" : "새 사용자 또는 역할" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "No databases found" + "value" : "Yeni Kullanıcı veya Rol" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy cơ sở dữ liệu" + "value" : "Người dùng hoặc vai trò mới" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未找到数据库" + "value" : "新建用户或角色" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "找不到資料庫" + "value" : "新增使用者或角色" } } } }, - "No databases match \"%@\"" : { + "New View" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "\"%@\"과 일치하는 데이터베이스 없음" + "value" : "새 뷰" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "No databases match \"%@\"" + "value" : "Yeni Görünüm" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có cơ sở dữ liệu nào khớp \"%@\"" + "value" : "View mới" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有匹配 \"%@\" 的数据库" + "value" : "新建视图" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有符合「%@」的資料庫" + "value" : "新增檢視表" } } } }, - "No databases match “%@”" : { + "New View…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "“%@”과 일치하는 데이터베이스 없음" + "value" : "새 뷰…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "“%@” ile eşleşen veritabanı yok" + "value" : "Yeni Görünüm…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có cơ sở dữ liệu nào khớp với “%@”" + "value" : "View mới…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有与“%@”匹配的数据库" + "value" : "新建视图…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有符合「%@」的資料庫" + "value" : "新增檢視表…" } } } }, - "No export formats available. Enable export plugins in Settings > Plugins." : { + "Next match" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사용 가능한 내보내기 형식이 없습니다. 설정 > 플러그인에서 내보내기 플러그인을 활성화하십시오." + "value" : "다음 일치 항목" + } + } + } + }, + "Next page" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "다음 페이지" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kullanılabilir dışa aktarma biçimi yok. Ayarlar > Eklentiler bölümünden dışa aktarma eklentilerini etkinleştirin." + "value" : "Sonraki sayfa" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có định dạng xuất khả dụng. Bật plugin xuất trong Cài đặt > Plugin." + "value" : "Trang sau" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无可用的导出格式。请在设置 > 插件中启用导出插件。" + "value" : "下一页" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有可用的匯出格式。請在「設定 > 外掛」中啟用匯出外掛。" + "value" : "下一頁" } } } }, - "No favorites match the selected environment." : { + "Next Page" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "선택한 환경과 일치하는 즐겨찾기가 없습니다." + "value" : "다음 페이지" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Seçilen ortamla eşleşen sık kullanılan yok." + "value" : "Sonraki Sayfa" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có mục yêu thích nào khớp với môi trường đã chọn." + "value" : "Trang sau" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有收藏项与所选环境匹配。" + "value" : "下一页" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有收藏項目符合所選環境。" + "value" : "下一頁" } } } }, - "No filters applied" : { + "Next Page (⌘])" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "적용된 필터 없음" + "value" : "다음 페이지 (⌘])" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Uygulanmış filtre yok" + "value" : "Next Page (⌘])" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa áp dụng bộ lọc" + "value" : "Trang sau (⌘])" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未应用筛选条件" + "value" : "下一页 (⌘])" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "未套用篩選條件" + "value" : "下一頁 (⌘])" } } } }, - "No free port in range %d-%d" : { + "Next Result" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "No free port in range %1$d-%2$d" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "범위 %1$d-%2$d에 사용 가능한 포트가 없습니다" + "value" : "다음 결과" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%d-%d aralığında boş port yok" + "value" : "Sonraki Sonuç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có port trống trong khoảng %d-%d" + "value" : "Kết quả tiếp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在 %d-%d 范围内没有可用端口" + "value" : "下一个结果" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在 %1$d-%2$d 範圍內沒有可用的連接埠" + "value" : "下一個結果" } } } }, - "No iCloud" : { + "Next Statement" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud 없음" + "value" : "다음 문" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud Yok" + "value" : "Sonraki İfade" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có iCloud" + "value" : "Câu lệnh tiếp theo" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无 iCloud" + "value" : "下一条语句" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無 iCloud" + "value" : "下一個陳述式" } } } }, - "No items" : { + "Next Tab" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "항목 없음" + "value" : "다음 탭" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Öğe yok" + "value" : "Next Tab" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có mục nào" + "value" : "Tab tiếp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有项目" + "value" : "下一个标签页" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有項目" + "value" : "下一個分頁" } } } }, - "No keys" : { + "Next Tab (Alt)" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "키 없음" + "value" : "다음 탭 (Alt)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Anahtar yok" + "value" : "Next Tab (Alt)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có khóa" + "value" : "Tab tiếp theo (Alt)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有键" + "value" : "下一个标签页 (Alt)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有鍵" + "value" : "下一個分頁 (Alt)" } } } }, - "No limit" : { + "No %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "제한 없음" + "value" : "%@ 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sınır yok" + "value" : "%@ Yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không giới hạn" + "value" : "Không có %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "不限制" + "value" : "没有%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "不限制" + "value" : "沒有 %@" } } } }, - "No linked folders. Add a folder to watch for shared connection files." : { + "No %1$@ match “%2$@”" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결된 폴더가 없습니다. 공유 연결 파일을 감시할 폴더를 추가하십시오." + "value" : "%1$@ 중 “%2$@”과 일치하는 항목 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantılı klasör yok. Paylaşılan bağlantı dosyalarını izlemek için bir klasör ekleyin." + "value" : "“%2$@” ile eşleşen %1$@ yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có thư mục liên kết. Thêm thư mục để theo dõi tệp kết nối chia sẻ." + "value" : "Không có %1$@ nào khớp “%2$@”" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有链接文件夹。添加文件夹以监视共享连接文件。" + "value" : "没有与“%2$@”匹配的%1$@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有已連結的資料夾。新增資料夾以監看共用的連線檔案。" + "value" : "沒有與「%2$@」相符的%1$@" } } } }, - "No links are trusted yet." : { + "No activations found" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "No activations found" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "아직 신뢰된 링크가 없습니다." + "value" : "활성화를 찾을 수 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Henüz güvenilen bağlantı yok." + "value" : "Etkinleştirme bulunamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa có liên kết nào được tin cậy." + "value" : "Không tìm thấy kích hoạt nào" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "尚未信任任何链接。" + "value" : "未找到激活记录" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "尚未信任任何連結。" - } - } - } - }, - "No matches" : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "일치 항목 없음" + "value" : "找不到啟用記錄" } } } }, - "No matching %@" : { - "extractionState" : "stale", + "No active connection" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "일치하는 %@ 없음" + "value" : "활성 연결 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "No matching %@" + "value" : "Etkin bağlantı yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy %@ phù hợp" + "value" : "Không có kết nối đang hoạt động" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有匹配的%@" + "value" : "无活动连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有符合的 %@" + "value" : "無使用中的連線" } } } }, - "No matching activity" : { + "No active database connection" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "일치하는 활동 없음" + "value" : "활성 데이터베이스 연결 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eşleşen etkinlik yok" + "value" : "Aktif veritabanı bağlantısı yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có hoạt động khớp" + "value" : "Không có kết nối cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有匹配的活动" + "value" : "没有活动的数据库连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有符合的活動" + "value" : "沒有使用中的資料庫連線" } } } }, - "No matching connections" : { - "extractionState" : "stale", + "No activity matches the current filters." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "일치하는 연결 없음" + "value" : "현재 필터와 일치하는 활동이 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "No matching connections" + "value" : "Geçerli filtrelerle eşleşen etkinlik yok." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có kết nối nào khớp" + "value" : "Không có hoạt động nào khớp với bộ lọc hiện tại." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无匹配连接" + "value" : "没有与当前筛选条件匹配的活动。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無符合的連線" + "value" : "沒有符合目前篩選條件的活動。" } } } }, - "No matching databases" : { - "extractionState" : "stale", + "No activity yet" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "일치하는 데이터베이스 없음" + "value" : "아직 활동 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "No matching databases" + "value" : "Henüz etkinlik yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có cơ sở dữ liệu nào khớp" + "value" : "Chưa có hoạt động" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无匹配数据库" + "value" : "暂无活动" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無符合的資料庫" + "value" : "尚無活動" } } } }, - "No matching fields" : { + "No AI provider configured. Go to Settings > AI to add one." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "일치하는 필드 없음" + "value" : "구성된 AI 제공업체가 없습니다. 설정 > AI로 이동하여 추가하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eşleşen alan yok" + "value" : "Yapılandırılmış AI sağlayıcısı yok. Eklemek için Ayarlar > AI bölümüne gidin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có trường khớp" + "value" : "Chưa cấu hình nhà cung cấp AI. Vào Cài đặt > AI để thêm." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无匹配字段" + "value" : "尚未配置 AI 提供商。前往设置 > AI 添加。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無符合的欄位" + "value" : "尚未設定 AI 供應商。請前往「設定 > AI」新增。" } } } }, - "No matching objects" : { - "extractionState" : "stale", + "No available local port for SSH tunnel" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "일치하는 객체 없음" + "value" : "SSH 터널에 사용할 수 있는 로컬 포트가 없습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "No matching objects" + "value" : "SSH tüneli için kullanılabilir yerel port yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy đối tượng phù hợp" + "value" : "Không có cổng nội bộ khả dụng cho đường hầm SSH" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有匹配的对象" + "value" : "没有可用的本地端口用于 SSH 隧道" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有符合的物件" + "value" : "沒有可用的本機連接埠供 SSH 隧道使用" } } } }, - "No matching opening bracket" : { + "No available local port for the Cloud SQL Auth Proxy." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "짝이 맞는 여는 괄호 없음" + "value" : "Cloud SQL Auth Proxy에 사용할 수 있는 로컬 포트가 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eşleşen açılış parantezi yok" + "value" : "Cloud SQL Auth Proxy için uygun bir yerel port yok." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có dấu mở ngoặc tương ứng" + "value" : "Không còn cổng cục bộ trống cho Cloud SQL Auth Proxy." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有匹配的左括号" + "value" : "没有可用于 Cloud SQL Auth Proxy 的本地端口。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有相符的左括號" + "value" : "沒有可供 Cloud SQL Auth Proxy 使用的本機連接埠。" } } } }, - "No matching rows" : { + "No available local port for the Cloudflare tunnel." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "일치하는 행 없음" + "value" : "Cloudflare 터널에 사용할 수 있는 로컬 포트가 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eşleşen satır yok" + "value" : "Cloudflare tüneli için kullanılabilir yerel port yok." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có hàng khớp" + "value" : "Không có cổng cục bộ khả dụng cho tunnel Cloudflare." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有匹配的行" + "value" : "没有可用于 Cloudflare 隧道的本地端口。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有符合的列" + "value" : "沒有可用於 Cloudflare 隧道的本機連接埠。" } } } }, - "No matching schemas" : { + "No changes to preview" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "일치하는 스키마 없음" + "value" : "미리 볼 변경 사항 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "No matching schemas" + "value" : "No changes to preview" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có schema khớp" + "value" : "Không có thay đổi để xem trước" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无匹配 Schema" + "value" : "无可预览的更改" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無符合的綱要" + "value" : "沒有可預覽的變更" } } } }, - "No matching tables" : { - "extractionState" : "stale", + "No Chartable Rows" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "일치하는 테이블 없음" + "value" : "차트로 그릴 행 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "No matching tables" + "value" : "Grafiğe Uygun Satır Yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có bảng nào khớp" + "value" : "Không có hàng để vẽ biểu đồ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无匹配表" + "value" : "没有可绘制的行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無符合的資料表" + "value" : "沒有可繪製的列" } } } }, - "No model selected" : { - "extractionState" : "stale", + "No Check Constraints" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "선택된 모델 없음" + "value" : "CHECK 제약 조건 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "No model selected" + "value" : "Kontrol Kısıtlaması Yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa chọn model" + "value" : "Không có ràng buộc kiểm tra" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未选择模型" + "value" : "无检查约束" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "未選擇模型" + "value" : "無檢查約束" } } } }, - "No models loaded" : { - "extractionState" : "stale", + "No clients connected" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "불러온 모델 없음" + "value" : "연결된 클라이언트 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "No models loaded" + "value" : "Bağlı istemci yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa tải mô hình nào" + "value" : "Không có client nào kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未加载模型" + "value" : "没有已连接的客户端" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "未載入模型" + "value" : "沒有已連線的用戶端" } } } }, - "No objects found" : { - "extractionState" : "stale", + "No Codex CLI login found. Run codex login first, then try again." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "객체를 찾을 수 없음" + "value" : "Codex CLI 로그인 정보를 찾을 수 없습니다. 먼저 codex login을 실행한 후 다시 시도하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "No objects found" + "value" : "Codex CLI girişi bulunamadı. Önce codex login çalıştırın, sonra tekrar deneyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy đối tượng" + "value" : "Không tìm thấy đăng nhập Codex CLI. Hãy chạy codex login trước, rồi thử lại." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未找到对象" + "value" : "未找到 Codex CLI 登录。请先运行 codex login,然后重试。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "找不到物件" + "value" : "找不到 Codex CLI 登入。請先執行 codex login,然後再試一次。" } } } }, - "No objects match \"%@\"" : { - "extractionState" : "stale", + "No Columns Defined" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "\"%@\"과 일치하는 객체 없음" + "value" : "정의된 열 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "No objects match \"%@\"" + "value" : "Tanımlı Sütun Yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có đối tượng phù hợp với \"%@\"" + "value" : "Chưa có cột nào" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有匹配\"%@\"的对象" + "value" : "尚未定义列" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有符合「%@」的物件" + "value" : "尚未定義欄位" } } } }, - "No parts found" : { + "No columns in common." : { + + }, + "No Comparison Yet" : { + + }, + "No compatible build is available yet. This plugin will update automatically once one is published." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "파트를 찾을 수 없음" + "value" : "호환되는 빌드를 아직 사용할 수 없습니다. 빌드가 게시되면 이 플러그인이 자동으로 업데이트됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Parça bulunamadı" + "value" : "Henüz uyumlu bir derleme yok. Yayımlandığında bu eklenti otomatik olarak güncellenecek." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy phân vùng" + "value" : "Chưa có bản dựng tương thích. Plugin này sẽ tự động cập nhật khi có bản mới được phát hành." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未找到分区" + "value" : "目前还没有兼容的构建版本。发布后此插件将自动更新。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "找不到分割區" + "value" : "目前還沒有相容的建置版本。發布後此外掛將自動更新。" } } } }, - "No pending changes" : { + "No connections" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "대기 중인 변경 사항 없음" + "value" : "연결 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bekleyen değişiklik yok" + "value" : "Bağlantı yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có thay đổi nào" + "value" : "Không có kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无待处理的更改" + "value" : "没有连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無待處理的變更" - } - } - } - }, - "No plugin developers trusted yet." : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "아직 신뢰하는 플러그인 개발자가 없습니다." + "value" : "沒有連線" } } } }, - "No plugins found" : { - "extractionState" : "stale", + "No Connections" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플러그인을 찾을 수 없음" + "value" : "연결 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "No plugins found" + "value" : "Bağlantı Yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy plugin" + "value" : "Chưa có kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未找到插件" + "value" : "无连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "找不到外掛" + "value" : "無連線" } } } }, - "No primary key selected (not recommended)" : { - "extractionState" : "stale", + "No connections found to import" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "선택된 기본 키 없음(권장하지 않음)" + "value" : "가져올 연결을 찾을 수 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "No primary key selected (not recommended)" + "value" : "İçe aktarılacak bağlantı bulunamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa chọn khóa chính (không khuyến nghị)" + "value" : "Không tìm thấy kết nối nào để nhập" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未选择主键(不推荐)" + "value" : "没有找到可导入的连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "未選擇主鍵(不建議)" + "value" : "找不到可匯入的連線" } } } }, - "No privileges" : { + "No Connections Imported" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "권한 없음" + "value" : "가져온 연결 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yetki yok" + "value" : "Hiçbir Bağlantı İçe Aktarılmadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có quyền" + "value" : "Không có Kết nối nào được Nhập" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无权限" + "value" : "未导入任何连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有權限" + "value" : "未匯入任何連線" } } } }, - "No privileges can be granted at this level." : { + "No connections match “%@”" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 수준에서는 부여할 수 있는 권한이 없습니다." + "value" : "“%@”과 일치하는 연결 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu düzeyde yetki verilemez." + "value" : "“%@” ile eşleşen bağlantı yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể cấp quyền ở cấp này." + "value" : "Không có kết nối nào khớp với “%@”" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此级别无法授予任何权限。" + "value" : "没有与“%@”匹配的连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此層級無法授予任何權限。" + "value" : "沒有符合「%@」的連線" } } } }, - "No providers configured" : { + "No connections yet" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "구성된 제공업체 없음" + "value" : "아직 연결 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yapılandırılmış sağlayıcı yok" + "value" : "No connections yet" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa cấu hình nhà cung cấp" + "value" : "Chưa có kết nối nào" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未配置提供商" + "value" : "暂无连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "未設定供應商" + "value" : "尚無連線" } } } }, - "No published port, may be unreachable" : { + "No credentials are sent. Use this when the server handles authentication itself, such as a Tailscale SSH host." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "게시된 포트가 없어 접근하지 못할 수 있음" + "value" : "자격 증명이 전송되지 않습니다. Tailscale SSH 호스트처럼 서버가 인증을 직접 처리할 때 사용하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yayınlanmış port yok, erişilemeyebilir" + "value" : "Hiçbir kimlik bilgisi gönderilmez. Sunucunun kimlik doğrulamayı kendi yaptığı durumlarda, örneğin Tailscale SSH sunucusunda kullanın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có cổng được công bố, có thể không truy cập được" + "value" : "Không gửi thông tin đăng nhập nào. Dùng khi máy chủ tự xử lý xác thực, ví dụ máy chủ SSH của Tailscale." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未发布端口,可能无法访问" + "value" : "不会发送任何凭据。当服务器自行处理认证时使用,例如 Tailscale 的 SSH 主机。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "未發佈連接埠,可能無法連線" + "value" : "不會傳送任何認證資訊。當伺服器自行處理驗證時使用,例如 Tailscale 的 SSH 主機。" } } } }, - "No queries in this range." : { + "No custom commands yet." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 범위에 쿼리가 없습니다." + "value" : "아직 사용자 지정 명령이 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu aralıkta sorgu yok." + "value" : "Henüz özel komut yok." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có truy vấn nào trong khoảng này." + "value" : "Chưa có lệnh tùy chỉnh nào." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此范围内没有查询。" + "value" : "还没有自定义命令。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此範圍內沒有查詢。" + "value" : "還沒有自訂指令。" } } } }, - "No queries ran in this range, from the sources you selected." : { + "No Data" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "선택한 소스에서 이 범위에 실행된 쿼리가 없습니다." + "value" : "데이터 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Seçtiğiniz kaynaklardan bu aralıkta hiçbir sorgu çalışmadı." + "value" : "Veri Yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có truy vấn nào chạy trong khoảng này, từ các nguồn bạn đã chọn." + "value" : "Không có dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在你选择的来源中,此范围内没有查询运行。" + "value" : "无数据" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在你選擇的來源中,此範圍內沒有查詢執行。" + "value" : "無資料" } } } }, - "No query executed yet" : { + "No database connection" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "아직 실행된 쿼리 없음" + "value" : "데이터베이스 연결 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Henüz sorgu çalıştırılmadı" + "value" : "Veritabanı bağlantısı yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa thực hiện truy vấn nào" + "value" : "Chưa kết nối cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "尚未执行查询" + "value" : "未连接数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "尚未執行查詢" + "value" : "未連線資料庫" } } } }, - "No query failed in this range." : { + "No Database Selected" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 범위에서 실패한 쿼리가 없습니다." + "value" : "선택된 데이터베이스 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu aralıkta hiçbir sorgu başarısız olmadı." + "value" : "Veritabanı Seçilmedi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có truy vấn nào lỗi trong khoảng này." + "value" : "Chưa chọn cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此范围内没有查询失败。" + "value" : "未选择数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此範圍內沒有查詢失敗。" + "value" : "未選擇資料庫" } } } }, - "No query matches the current search and filters." : { + "No database settings found in this folder." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "현재 검색 및 필터와 일치하는 쿼리가 없습니다." + "value" : "이 폴더에서 데이터베이스 설정을 찾을 수 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geçerli arama ve filtrelerle eşleşen sorgu yok." + "value" : "Bu klasörde veritabanı ayarı bulunamadı." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có truy vấn nào khớp với tìm kiếm và bộ lọc hiện tại." + "value" : "Không tìm thấy cài đặt cơ sở dữ liệu trong thư mục này." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有查询匹配当前的搜索和筛选条件。" + "value" : "在此文件夹中未找到数据库设置。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有查詢符合目前的搜尋和篩選條件。" + "value" : "在此資料夾中找不到資料庫設定。" } } } }, - "No query ran at least %lld times, which is the minimum for an average to mean anything." : { - "comment" : "Empty state for the average-time ranking, %lld is a run count", + "No database to run against. Pass a database name." : { + + }, + "No databases" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "평균을 내는 데 필요한 최소 실행 횟수인 %lld회 이상 실행된 쿼리가 없습니다." + "value" : "데이터베이스 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Hiçbir sorgu en az %lld kez çalışmadı; ortalamanın anlamlı olması için gereken en az sayı bu." + "value" : "Veritabanı yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có truy vấn nào chạy ít nhất %lld lần, đây là mức tối thiểu để giá trị trung bình có ý nghĩa." + "value" : "Không có cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有查询至少运行 %lld 次,而这是平均值有意义所需的最少次数。" + "value" : "没有数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有查詢至少執行 %lld 次,而這是平均值有意義所需的最少次數。" + "value" : "沒有資料庫" } } } }, - "No results for \"%@\"" : { + "No Databases" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "\"%@\"에 대한 결과 없음" + "value" : "데이터베이스 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "\"%@\" için sonuç yok" + "value" : "Veritabanı Yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có kết quả cho \"%@\"" + "value" : "Không có cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有“%@”的结果" + "value" : "没有数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有「%@」的結果" + "value" : "沒有資料庫" } } } }, - "No rows" : { + "No databases found" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "행 없음" + "value" : "데이터베이스를 찾을 수 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satır yok" + "value" : "No databases found" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có dòng" + "value" : "Không tìm thấy cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无行" + "value" : "未找到数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有資料列" + "value" : "找不到資料庫" } } } }, - "No rows returned" : { + "No databases match \"%@\"" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "반환된 행 없음" + "value" : "\"%@\"과 일치하는 데이터베이스 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satır döndürülmedi" + "value" : "No databases match \"%@\"" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có dòng nào được trả về" + "value" : "Không có cơ sở dữ liệu nào khớp \"%@\"" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未返回任何行" + "value" : "没有匹配 \"%@\" 的数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "未傳回任何列" + "value" : "沒有符合「%@」的資料庫" } } } }, - "No saved connection named \"%@\"." : { - "extractionState" : "stale", + "No databases match “%@”" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이름이 \"%@\"인 저장된 연결이 없습니다." + "value" : "“%@”과 일치하는 데이터베이스 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "No saved connection named \"%@\"." + "value" : "“%@” ile eşleşen veritabanı yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có kết nối đã lưu tên \"%@\"." + "value" : "Không có cơ sở dữ liệu nào khớp với “%@”" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有名为 \"%@\" 的已保存连接。" + "value" : "没有与“%@”匹配的数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有名為「%@」的已儲存連線。" + "value" : "沒有符合「%@」的資料庫" } } } }, - "No saved connection with ID \"%@\"." : { + "No Databases Shown" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "ID가 \"%@\"인 저장된 연결이 없습니다." + "value" : "표시된 데이터베이스 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "\"%@\" ID'li kayıtlı bağlantı yok." + "value" : "Gösterilen Veritabanı Yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có kết nối đã lưu với ID \"%@\"." + "value" : "Không có cơ sở dữ liệu nào được hiển thị" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未找到 ID 为 \"%@\" 的已保存连接。" + "value" : "未显示数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "找不到 ID 為「%@」的已儲存連線。" + "value" : "未顯示資料庫" } } } }, - "No saved connections" : { + "No Datasets" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "저장된 연결 없음" + "value" : "데이터세트 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kayıtlı bağlantı yok" + "value" : "Veri Kümesi Yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có kết nối đã lưu" + "value" : "Không có dataset" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有已保存的连接" + "value" : "没有数据集" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有已儲存的連線" + "value" : "沒有資料集" } } } }, - "No saved customizations yet. Column widths, order, visibility, and per-table filters you set appear here so you can review and reset them." : { - "extractionState" : "stale", + "No DDL available" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "아직 저장된 사용자화가 없습니다. 여기에는 설정한 열 너비, 순서, 표시 여부 및 테이블별 필터가 표시되므로 검토하거나 재설정할 수 있습니다." + "value" : "사용 가능한 DDL 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Henüz kaydedilmiş özelleştirme yok. Ayarladığınız sütun genişlikleri, sırası, görünürlüğü ve tablo başına filtreler burada görünür; buradan gözden geçirip sıfırlayabilirsiniz." + "value" : "DDL mevcut değil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa có tùy chỉnh nào được lưu. Độ rộng cột, thứ tự, khả năng hiển thị và bộ lọc theo từng bảng bạn đặt sẽ xuất hiện ở đây để xem lại và đặt lại." + "value" : "Không có DDL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "尚未保存任何自定义。你设置的列宽、顺序、显示状态以及各表的筛选条件会显示在这里,便于查看和重置。" + "value" : "无可用 DDL" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "尚未儲存任何自訂設定。你設定的欄寬、順序、顯示狀態以及各資料表的篩選條件會顯示在這裡,方便你檢視與重設。" + "value" : "無可用的 DDL" } } } }, - "No saved templates" : { - "extractionState" : "stale", + "No Differences" : { + + }, + "No export formats available. Enable export plugins in Settings > Plugins." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "저장된 템플릿 없음" + "value" : "사용 가능한 내보내기 형식이 없습니다. 설정 > 플러그인에서 내보내기 플러그인을 활성화하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "No saved templates" + "value" : "Kullanılabilir dışa aktarma biçimi yok. Ayarlar > Eklentiler bölümünden dışa aktarma eklentilerini etkinleştirin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có mẫu đã lưu" + "value" : "Không có định dạng xuất khả dụng. Bật plugin xuất trong Cài đặt > Plugin." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无已保存的模板" + "value" : "无可用的导出格式。请在设置 > 插件中启用导出插件。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無已儲存的範本" + "value" : "沒有可用的匯出格式。請在「設定 > 外掛」中啟用匯出外掛。" } } } }, - "No schemas" : { - "extractionState" : "stale", + "No Favorites" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "스키마 없음" + "value" : "즐겨찾기 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Şema yok" + "value" : "Favori Yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có schema" + "value" : "Không có mục yêu thích" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有 Schema" + "value" : "无收藏" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有綱要" + "value" : "無我的最愛" } } } }, - "No schemas found" : { - "extractionState" : "stale", + "No favorites match the selected environment." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "스키마를 찾을 수 없음" + "value" : "선택한 환경과 일치하는 즐겨찾기가 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "No schemas found" + "value" : "Seçilen ortamla eşleşen sık kullanılan yok." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy schema" + "value" : "Không có mục yêu thích nào khớp với môi trường đã chọn." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未找到 Schema" + "value" : "没有收藏项与所选环境匹配。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "找不到綱要" + "value" : "沒有收藏項目符合所選環境。" } } } }, - "No schemas match \"%@\"" : { - "extractionState" : "stale", + "No filters applied" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "\"%@\"과 일치하는 스키마 없음" + "value" : "적용된 필터 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "No schemas match \"%@\"" + "value" : "Uygulanmış filtre yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có schema khớp \"%@\"" + "value" : "Chưa áp dụng bộ lọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有匹配 \"%@\" 的 Schema" + "value" : "未应用筛选条件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有符合「%@」的綱要" + "value" : "未套用篩選條件" } } } }, - "No selection" : { + "No Foreign Keys Yet" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "선택 항목 없음" + "value" : "아직 외래 키 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Seçim yok" + "value" : "Henüz Yabancı Anahtar Yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa chọn" + "value" : "Chưa có khóa ngoại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未选择" + "value" : "尚无外键" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "未選取" + "value" : "尚無外鍵" } } } }, - "No slow queries" : { + "No foreign tables" : { + + }, + "No free port in range %d-%d" : { + "extractionState" : "stale", "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "No free port in range %1$d-%2$d" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "느린 쿼리 없음" + "value" : "범위 %1$d-%2$d에 사용 가능한 포트가 없습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yavaş sorgu yok" + "value" : "%d-%d aralığında boş port yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có truy vấn chậm" + "value" : "Không có port trống trong khoảng %d-%d" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有慢查询" + "value" : "在 %d-%d 范围内没有可用端口" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有慢查詢" + "value" : "在 %1$d-%2$d 範圍內沒有可用的連接埠" } } } }, - "No sorting (engine order)" : { + "No functions" : { + + }, + "No iCloud" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "정렬 안 함(엔진 순서)" + "value" : "iCloud 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sıralama yok (motor sırası)" + "value" : "iCloud Yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không sắp xếp (theo thứ tự engine)" + "value" : "Không có iCloud" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "不排序(引擎顺序)" + "value" : "无 iCloud" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "不排序(引擎順序)" + "value" : "無 iCloud" } } } }, - "No tables" : { - "extractionState" : "stale", + "No Indexes Defined" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 없음" + "value" : "정의된 인덱스 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tablo yok" + "value" : "Tanımlı Dizin Yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có bảng" + "value" : "Chưa có chỉ mục" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有表" + "value" : "尚未定义索引" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有資料表" + "value" : "尚未定義索引" } } } }, - "No tables found" : { + "No items" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블을 찾을 수 없음" + "value" : "항목 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tablo bulunamadı" + "value" : "Öğe yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy bảng" + "value" : "Không có mục nào" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未找到表" + "value" : "没有项目" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "找不到資料表" + "value" : "沒有項目" } } } }, - "No tables selected for export" : { + "No keys" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "내보낼 테이블이 선택되지 않음" + "value" : "키 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dışa aktarma için tablo seçilmedi" + "value" : "Anahtar yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có bảng nào được chọn để xuất" + "value" : "Không có khóa" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未选择要导出的表" + "value" : "没有键" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "未選取要匯出的資料表" + "value" : "沒有鍵" } } } }, - "No tabs open" : { + "No License Information" : { + + }, + "No limit" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열려 있는 탭 없음" + "value" : "제한 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Açık sekme yok" + "value" : "Sınır yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có tab nào mở" + "value" : "Không giới hạn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有打开的标签页" + "value" : "不限制" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有開啟的分頁" + "value" : "不限制" } } } }, - "No tokens created" : { + "No linked folders. Add a folder to watch for shared connection files." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "생성된 토큰 없음" + "value" : "연결된 폴더가 없습니다. 공유 연결 파일을 감시할 폴더를 추가하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Oluşturulmuş token yok" + "value" : "Bağlantılı klasör yok. Paylaşılan bağlantı dosyalarını izlemek için bir klasör ekleyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa tạo token nào" + "value" : "Không có thư mục liên kết. Thêm thư mục để theo dõi tệp kết nối chia sẻ." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未创建令牌" + "value" : "没有链接文件夹。添加文件夹以监视共享连接文件。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "尚未建立權杖" + "value" : "沒有已連結的資料夾。新增資料夾以監看共用的連線檔案。" } } } }, - "No valid rows found in clipboard data." : { + "No links are trusted yet." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "클립보드 데이터에서 유효한 행을 찾을 수 없습니다." + "value" : "아직 신뢰된 링크가 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Pano verisinde geçerli satır bulunamadı." + "value" : "Henüz güvenilen bağlantı yok." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy dòng hợp lệ trong dữ liệu bộ nhớ tạm." + "value" : "Chưa có liên kết nào được tin cậy." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "剪贴板数据中未找到有效行。" + "value" : "尚未信任任何链接。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在剪貼簿資料中找不到有效的列。" + "value" : "尚未信任任何連結。" } } } }, - "No value" : { + "No matches" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "일치 항목 없음" + } + } + } + }, + "No matching %@" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { - "value" : "값 없음", - "state" : "translated" + "state" : "translated", + "value" : "일치하는 %@ 없음" } }, "tr" : { "stringUnit" : { - "value" : "Değer yok", - "state" : "translated" + "state" : "translated", + "value" : "No matching %@" } }, "vi" : { "stringUnit" : { - "value" : "Không có giá trị", - "state" : "translated" + "state" : "translated", + "value" : "Không tìm thấy %@ phù hợp" } }, "zh-Hans" : { "stringUnit" : { - "value" : "无值", - "state" : "translated" + "state" : "translated", + "value" : "没有匹配的%@" } }, "zh-Hant" : { "stringUnit" : { - "value" : "無值", - "state" : "translated" + "state" : "translated", + "value" : "沒有符合的 %@" } } } }, - "No values found" : { - "extractionState" : "stale", + "No matching activity" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "값을 찾을 수 없음" + "value" : "일치하는 활동 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "No values found" + "value" : "Eşleşen etkinlik yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy giá trị" + "value" : "Không có hoạt động khớp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未找到值" + "value" : "没有匹配的活动" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "找不到值" + "value" : "沒有符合的活動" } } } }, - "Non-UTF-8 file (%@). Saving may change the encoding." : { + "No matching connections" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "UTF-8이 아닌 파일(%@)입니다. 저장하면 인코딩이 변경될 수 있습니다." + "value" : "일치하는 연결 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "UTF-8 olmayan dosya (%@). Kaydetmek kodlamayı değiştirebilir." + "value" : "No matching connections" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tệp không phải UTF-8 (%@). Lưu có thể làm thay đổi bảng mã." + "value" : "Không có kết nối nào khớp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "非 UTF-8 文件(%@)。保存可能会改变编码。" + "value" : "无匹配连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "非 UTF-8 檔案(%@)。儲存可能會改變編碼。" + "value" : "無符合的連線" } } } }, - "None" : { + "No Matching Connections" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "없음" + "value" : "일치하는 연결 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "None" + "value" : "Eşleşen Bağlantı Yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không" + "value" : "Không có kết nối phù hợp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无" + "value" : "无匹配连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無" + "value" : "無符合的連線" } } } }, - "None (Top Level)" : { + "No matching databases" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "없음(최상위)" + "value" : "일치하는 데이터베이스 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yok (Üst Düzey)" + "value" : "No matching databases" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không (Cấp cao nhất)" + "value" : "Không có cơ sở dữ liệu nào khớp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无(顶级)" + "value" : "无匹配数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無(最上層)" + "value" : "無符合的資料庫" } } } }, - "Normal" : { + "No Matching Favorites" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "일반" + "value" : "일치하는 즐겨찾기 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Normal" + "value" : "No Matching Favorites" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bình thường" + "value" : "Không có mục yêu thích phù hợp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正常" + "value" : "无匹配的收藏" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "一般" + "value" : "無符合的我的最愛" } } } }, - "Not Available" : { + "No matching field path" : { + + }, + "No matching fields" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사용할 수 없음" + "value" : "일치하는 필드 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kullanılamıyor" + "value" : "Eşleşen alan yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không khả dụng" + "value" : "Không có trường khớp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "不可用" + "value" : "无匹配字段" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法使用" + "value" : "無符合的欄位" } } } }, - "Not Installed" : { + "No matching objects" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "설치되지 않음" + "value" : "일치하는 객체 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yüklü Değil" + "value" : "No matching objects" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa cài đặt" + "value" : "Không tìm thấy đối tượng phù hợp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未安装" + "value" : "没有匹配的对象" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "未安裝" + "value" : "沒有符合的物件" } } } }, - "Not browsable on this connection" : { + "No matching opening bracket" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 연결에서는 탐색할 수 없음" + "value" : "짝이 맞는 여는 괄호 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu bağlantıda göz atılamaz" + "value" : "Eşleşen açılış parantezi yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không duyệt được trên kết nối này" + "value" : "Không có dấu mở ngoặc tương ứng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在此连接上无法浏览" + "value" : "没有匹配的左括号" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在此連線上無法瀏覽" + "value" : "沒有相符的左括號" } } } }, - "Not configured" : { + "No Matching Queries" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "구성되지 않음" + "value" : "일치하는 쿼리 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yapılandırılmamış" + "value" : "Eşleşen Sorgu Yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa cấu hình" + "value" : "Không có truy vấn phù hợp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未配置" + "value" : "无匹配查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "未設定" + "value" : "無符合的查詢" } } } }, - "Not connected" : { - "extractionState" : "stale", + "No matching rows" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결되지 않음" + "value" : "일치하는 행 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Not connected" + "value" : "Eşleşen satır yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa kết nối" + "value" : "Không có hàng khớp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未连接" + "value" : "没有匹配的行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "未連線" + "value" : "沒有符合的列" } } } }, - "Not connected to %@" : { + "No matching schemas" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@에 연결되지 않음" + "value" : "일치하는 스키마 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ bağlantısı yok" + "value" : "No matching schemas" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa kết nối tới %@" + "value" : "Không có schema khớp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未连接到 %@" + "value" : "无匹配 Schema" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "未連線到 %@" + "value" : "無符合的綱要" } } } }, - "Not connected to ClickHouse" : { + "No matching tables" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "ClickHouse에 연결되지 않음" + "value" : "일치하는 테이블 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "ClickHouse'a bağlı değil" + "value" : "No matching tables" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa kết nối đến ClickHouse" + "value" : "Không có bảng nào khớp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未连接到 ClickHouse" + "value" : "无匹配表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "未連線到 ClickHouse" + "value" : "無符合的資料表" } } } }, - "Not connected to SQL Server" : { + "No materialized views" : { + + }, + "No Microsoft Entra ID access token was supplied." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SQL Server에 연결되지 않았습니다" + "value" : "Microsoft Entra ID 액세스 토큰이 제공되지 않았습니다." } } } }, - "Not connected to database" : { + "No model selected" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스에 연결되지 않았습니다" + "value" : "선택된 모델 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanına bağlı değil" + "value" : "No model selected" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa kết nối cơ sở dữ liệu" + "value" : "Chưa chọn model" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未连接到数据库" + "value" : "未选择模型" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "未連線到資料庫" + "value" : "未選擇模型" } } } }, - "Not granted" : { + "No models loaded" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "권한이 부여되지 않음" + "value" : "불러온 모델 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Verilmedi" + "value" : "No models loaded" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa cấp" + "value" : "Chưa tải mô hình nào" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未授予" + "value" : "未加载模型" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "未授予" + "value" : "未載入模型" } } } }, - "Not installed" : { + "No Node Selected" : { + "comment" : "A label displayed when no query plan node is selected.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "설치되지 않음" + "value" : "선택된 노드 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yüklü değil" + "value" : "Düğüm Seçilmedi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa cài đặt" + "value" : "Chưa chọn nút" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未安装" + "value" : "未选择节点" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "未安裝" + "value" : "未選擇節點" } } } }, - "Not on this page" : { + "No Numeric Column" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 페이지에 없음" + "value" : "숫자 열 없음" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sayısal Sütun Yok" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "Không có cột số" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "没有数值列" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "沒有數值欄" } } } }, - "Not recording new queries on this Mac." : { + "No Object" : { + + }, + "No Object Selected" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 Mac에서 새 쿼리를 기록하지 않습니다." + "value" : "선택된 객체 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu Mac'te yeni sorgular kaydedilmiyor." + "value" : "Nesne Seçilmedi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không ghi lại truy vấn mới trên máy Mac này." + "value" : "Chưa chọn đối tượng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "不在这台 Mac 上记录新查询。" + "value" : "未选择对象" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "不在這台 Mac 上記錄新查詢。" + "value" : "未選取物件" } } } }, - "Not signed in" : { + "No objects found" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "로그인되지 않음" + "value" : "객체를 찾을 수 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Oturum açılmamış" + "value" : "No objects found" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa đăng nhập" + "value" : "Không tìm thấy đối tượng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未登录" + "value" : "未找到对象" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "未登入" + "value" : "找不到物件" } } } }, - "Not signed in to ChatGPT." : { + "No objects match \"%@\"" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "ChatGPT에 로그인되지 않았습니다." + "value" : "\"%@\"과 일치하는 객체 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "ChatGPT'ye giriş yapılmadı." + "value" : "No objects match \"%@\"" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa đăng nhập ChatGPT." + "value" : "Không có đối tượng phù hợp với \"%@\"" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未登录 ChatGPT。" + "value" : "没有匹配\"%@\"的对象" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "尚未登入 ChatGPT。" + "value" : "沒有符合「%@」的物件" } } } }, - "Not signed in to Claude. Run \"claude /login\" in Terminal, then try again." : { + "No open tab this client may reach has that id." : { + + }, + "No Operations Available" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Claude에 로그인되지 않았습니다. 터미널에서 \"claude /login\"을 실행한 다음 다시 시도하십시오." + "value" : "사용 가능한 작업 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Claude'da oturum açılmamış. Terminal'de \"claude /login\" çalıştırıp tekrar deneyin." + "value" : "Kullanılabilir İşlem Yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa đăng nhập Claude. Chạy \"claude /login\" trong Terminal rồi thử lại." + "value" : "Không có thao tác nào" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "尚未登录 Claude。请在终端运行 \"claude /login\" 后重试。" + "value" : "没有可用操作" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "尚未登入 Claude。請在終端機執行 \"claude /login\" 後再試一次。" + "value" : "沒有可用的操作" } } } }, - "Not signed in to Cursor. Sign in first." : { + "No parts found" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Cursor에 로그인되지 않았습니다. 먼저 로그인하십시오." + "value" : "파트를 찾을 수 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Cursor'a giriş yapılmadı. Önce giriş yapın." + "value" : "Parça bulunamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa đăng nhập Cursor. Hãy đăng nhập trước." + "value" : "Không tìm thấy phân vùng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未登录 Cursor。请先登录。" + "value" : "未找到分区" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "尚未登入 Cursor。請先登入。" + "value" : "找不到分割區" } } } }, - "Not signed in to GitHub Copilot" : { + "No pending changes" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "GitHub Copilot에 로그인되지 않음" + "value" : "대기 중인 변경 사항 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "GitHub Copilot'a oturum açılmamış" + "value" : "Bekleyen değişiklik yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa đăng nhập GitHub Copilot" + "value" : "Không có thay đổi nào" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未登录 GitHub Copilot" + "value" : "无待处理的更改" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "未登入 GitHub Copilot" + "value" : "無待處理的變更" } } } }, - "Not signed in to xAI." : { + "No Plan Available" : { + "comment" : "Title of a view that shows when a query plan is not available.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "xAI에 로그인되지 않았습니다." + "value" : "사용 가능한 쿼리 계획 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "xAI'da oturum açılmamış." + "value" : "Plan Yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa đăng nhập xAI." + "value" : "Không có kế hoạch" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "尚未登录 xAI。" + "value" : "没有可用的执行计划" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "尚未登入 xAI。" + "value" : "沒有可用的執行計畫" + } + } + } + }, + "No plugin developers trusted yet." : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "아직 신뢰하는 플러그인 개발자가 없습니다." } } } }, - "Not supported by this database" : { + "No plugins found" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 데이터베이스에서는 지원되지 않음" + "value" : "플러그인을 찾을 수 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu veritabanı desteklemiyor" + "value" : "No plugins found" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cơ sở dữ liệu này không hỗ trợ" + "value" : "Không tìm thấy plugin" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此数据库不支持" + "value" : "未找到插件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此資料庫不支援" + "value" : "找不到外掛" } } } }, - "Not supported for TRUNCATE with this database" : { + "No primary key selected (not recommended)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 데이터베이스의 TRUNCATE에서는 지원되지 않음" + "value" : "선택된 기본 키 없음(권장하지 않음)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu veritabanında TRUNCATE için desteklenmiyor" + "value" : "No primary key selected (not recommended)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không hỗ trợ TRUNCATE với cơ sở dữ liệu này" + "value" : "Chưa chọn khóa chính (không khuyến nghị)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此数据库不支持 TRUNCATE" + "value" : "未选择主键(不推荐)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此資料庫不支援 TRUNCATE" + "value" : "未選擇主鍵(不建議)" } } } }, - "Not supported for this database." : { + "No primary key. Choose key columns to compare this table." : { + + }, + "No privileges" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 데이터베이스에서는 지원되지 않습니다." + "value" : "권한 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu veritabanında desteklenmiyor." + "value" : "Yetki yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không hỗ trợ cho cơ sở dữ liệu này." + "value" : "Không có quyền" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此数据库不支持。" + "value" : "无权限" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此資料庫不支援。" + "value" : "沒有權限" } } } }, - "Not supported for this database. Use CASCADE instead." : { + "No Privileges" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 데이터베이스에서는 지원되지 않습니다. 대신 CASCADE를 사용하십시오." + "value" : "권한 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu veritabanında desteklenmiyor. Bunun yerine CASCADE kullanın." + "value" : "Yetki Yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không hỗ trợ cho cơ sở dữ liệu này. Hãy dùng CASCADE thay thế." + "value" : "Không có quyền" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此数据库不支持。请使用 CASCADE 代替。" + "value" : "无权限" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此資料庫不支援。請改用 CASCADE。" + "value" : "沒有權限" } } } }, - "Not visible" : { + "No privileges can be granted at this level." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "표시되지 않음" + "value" : "이 수준에서는 부여할 수 있는 권한이 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Görünmüyor" + "value" : "Bu düzeyde yetki verilemez." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không hiển thị" + "value" : "Không thể cấp quyền ở cấp này." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "不可见" + "value" : "此级别无法授予任何权限。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "不可見" + "value" : "此層級無法授予任何權限。" } } } }, - "Nothing got at least %1$lld%% slower than the period before. A query needs %2$lld runs in both periods, and has to have grown by at least %3$@." : { - "comment" : "Empty state for regressions: %1$lld is a percentage, %2$lld a run count, %3$@ a duration", + "No procedures" : { + + }, + "No providers configured" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이전 기간보다 %1$lld%% 이상 느려진 항목이 없습니다. 쿼리는 두 기간 모두에서 %2$lld회 실행되어야 하며, 최소 %3$@만큼 증가해야 합니다." + "value" : "구성된 제공업체 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Hiçbir şey önceki döneme göre en az %1$lld%% yavaşlamadı. Bir sorgunun her iki dönemde de %2$lld çalışması ve en az %3$@ artmış olması gerekir." + "value" : "Yapılandırılmış sağlayıcı yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có gì chậm đi ít nhất %1$lld%% so với kỳ trước. Một truy vấn cần %2$lld lần chạy ở cả hai kỳ và phải tăng thêm ít nhất %3$@." + "value" : "Chưa cấu hình nhà cung cấp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有任何查询比上一时段慢了至少 %1$lld%%。一个查询需要在两个时段各运行 %2$lld 次,并且至少增加了 %3$@。" + "value" : "未配置提供商" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有任何查詢比上一時段慢了至少 %1$lld%%。一個查詢需要在兩個時段各執行 %2$lld 次,並且至少增加了 %3$@。" + "value" : "未設定供應商" } } } }, - "Null" : { + "No published port, may be unreachable" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "NULL" + "value" : "게시된 포트가 없어 접근하지 못할 수 있음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Null" + "value" : "Yayınlanmış port yok, erişilemeyebilir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Null" + "value" : "Không có cổng được công bố, có thể không truy cập được" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Null" + "value" : "未发布端口,可能无法访问" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Null" + "value" : "未發佈連接埠,可能無法連線" } } } }, - "Nullable" : { - "extractionState" : "stale", + "No queries in this range." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "NULL 허용" + "value" : "이 범위에 쿼리가 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Nullable" + "value" : "Bu aralıkta sorgu yok." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cho phép NULL" + "value" : "Không có truy vấn nào trong khoảng này." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "允许 NULL" + "value" : "此范围内没有查询。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "允許 NULL" + "value" : "此範圍內沒有查詢。" } } } }, - "Number" : { + "No Queries Match" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "숫자" + "value" : "일치하는 쿼리 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sayı" + "value" : "Eşleşen Sorgu Yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Số" + "value" : "Không có truy vấn khớp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "数字" + "value" : "没有匹配的查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "數字" + "value" : "沒有相符的查詢" } } } }, - "Number of documents per insertMany statement. Higher values create fewer statements." : { - "extractionState" : "stale", + "No queries ran in this range, from the sources you selected." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "insertMany 명령문당 문서 수입니다. 값이 클수록 생성되는 명령문 수가 줄어듭니다." + "value" : "선택한 소스에서 이 범위에 실행된 쿼리가 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Number of documents per insertMany statement. Higher values create fewer statements." + "value" : "Seçtiğiniz kaynaklardan bu aralıkta hiçbir sorgu çalışmadı." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Số lượng document cho mỗi câu lệnh insertMany. Giá trị cao hơn tạo ít câu lệnh hơn." + "value" : "Không có truy vấn nào chạy trong khoảng này, từ các nguồn bạn đã chọn." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "每个 insertMany 语句的文档数量。值越大生成的语句越少。" + "value" : "在你选择的来源中,此范围内没有查询运行。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "每個 insertMany 陳述式的文件數量。值越大產生的陳述式越少。" + "value" : "在你選擇的來源中,此範圍內沒有查詢執行。" } } } }, - "OAuth Client ID" : { + "No Queries Yet" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "OAuth 클라이언트 ID" + "value" : "아직 쿼리 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "OAuth Client ID" + "value" : "Henüz Sorgu Yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "OAuth Client ID" + "value" : "Chưa có truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "OAuth Client ID" + "value" : "还没有查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "OAuth Client ID" + "value" : "還沒有查詢" } } } }, - "OAuth Client Secret" : { + "No query executed yet" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "OAuth 클라이언트 시크릿" + "value" : "아직 실행된 쿼리 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "OAuth Client Secret" + "value" : "Henüz sorgu çalıştırılmadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "OAuth Client Secret" + "value" : "Chưa thực hiện truy vấn nào" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "OAuth Client Secret" + "value" : "尚未执行查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "OAuth Client Secret" + "value" : "尚未執行查詢" } } } }, - "OAuth Token" : { + "No query failed in this range." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "OAuth 토큰" + "value" : "이 범위에서 실패한 쿼리가 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "OAuth Belirteci" + "value" : "Bu aralıkta hiçbir sorgu başarısız olmadı." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Token OAuth" + "value" : "Không có truy vấn nào lỗi trong khoảng này." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "OAuth 令牌" + "value" : "此范围内没有查询失败。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "OAuth 權杖" + "value" : "此範圍內沒有查詢失敗。" } } } }, - "OK" : { + "No Query History" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "확인" + "value" : "쿼리 기록 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tamam" + "value" : "Sorgu Geçmişi Yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "OK" + "value" : "Không có lịch sử truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "OK" + "value" : "没有查询历史" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "好" + "value" : "沒有查詢歷史" } } } }, - "OR" : { + "No Query History Yet" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "OR" + "value" : "아직 쿼리 기록 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "OR" + "value" : "No Query History Yet" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "OR" + "value" : "Chưa có lịch sử truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "OR" + "value" : "暂无查询历史" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "OR" + "value" : "尚無查詢記錄" } } } }, - "Object" : { + "No query matches the current search and filters." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "객체" + "value" : "현재 검색 및 필터와 일치하는 쿼리가 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Nesne" + "value" : "Geçerli arama ve filtrelerle eşleşen sorgu yok." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đối tượng" + "value" : "Không có truy vấn nào khớp với tìm kiếm và bộ lọc hiện tại." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "对象" + "value" : "没有查询匹配当前的搜索和筛选条件。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "物件" + "value" : "沒有查詢符合目前的搜尋和篩選條件。" } } } }, - "Objects that depend on them will be dropped too." : { - "comment" : "Message in a confirmation alert when the user has selected to drop all objects that depend on the dropped objects.", - "isCommentAutoGenerated" : true, + "No query ran at least %lld times, which is the minimum for an average to mean anything." : { + "comment" : "Empty state for the average-time ranking, %lld is a run count", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "종속된 객체도 함께 삭제됩니다." + "value" : "평균을 내는 데 필요한 최소 실행 횟수인 %lld회 이상 실행된 쿼리가 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Onlara bağımlı nesneler de silinecek." + "value" : "Hiçbir sorgu en az %lld kez çalışmadı; ortalamanın anlamlı olması için gereken en az sayı bu." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Các đối tượng phụ thuộc vào chúng cũng sẽ bị xoá." + "value" : "Không có truy vấn nào chạy ít nhất %lld lần, đây là mức tối thiểu để giá trị trung bình có ý nghĩa." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "依赖它们的对象也会被删除。" + "value" : "没有查询至少运行 %lld 次,而这是平均值有意义所需的最少次数。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "依賴它們的物件也會被刪除。" + "value" : "沒有查詢至少執行 %lld 次,而這是平均值有意義所需的最少次數。" } } } }, - "Off" : { + "No Query Selected" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "끔" + "value" : "선택된 쿼리 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kapalı" + "value" : "Sorgu Seçilmedi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tắt" + "value" : "Chưa chọn truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "关" + "value" : "未选择查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "關閉" + "value" : "未選擇查詢" } } } }, - "Off by default. Turn it on to encrypt saved passwords with a passphrase." : { + "No Results" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기본적으로 꺼져 있습니다. 암호 구문으로 저장된 암호를 암호화하려면 켜십시오." + "value" : "결과 없음" + } + } + } + }, + "No results for \"%@\"" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "\"%@\"에 대한 결과 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Varsayılan olarak kapalı. Kaydedilen parolaları bir parola cümlesiyle şifrelemek için açın." + "value" : "\"%@\" için sonuç yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mặc định tắt. Bật lên để mã hóa các mật khẩu đã lưu bằng một cụm mật khẩu." + "value" : "Không có kết quả cho \"%@\"" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "默认关闭。开启后会用一个口令加密已保存的密码。" + "value" : "没有“%@”的结果" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "預設關閉。開啟後會用一組通關密語加密已儲存的密碼。" + "value" : "沒有「%@」的結果" } } } }, - "Offset" : { - "extractionState" : "stale", + "No rows" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "오프셋" + "value" : "행 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Offset" + "value" : "Satır yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Vị trí bắt đầu" + "value" : "Không có dòng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "偏移量" + "value" : "无行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "偏移量" + "value" : "沒有資料列" } } } }, - "Ollama is running but has no models. Run \"ollama pull \" to download one." : { + "No Rows Match" : { + + }, + "No rows returned" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Ollama가 실행 중이지만 모델이 없습니다. 모델을 다운로드하려면 \"ollama pull \"을 실행하십시오." + "value" : "반환된 행 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ollama çalışıyor ancak modeli yok. Bir model indirmek için \"ollama pull \" komutunu çalıştırın." + "value" : "Satır döndürülmedi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ollama đang chạy nhưng không có mô hình nào. Chạy \"ollama pull \" để tải về." + "value" : "Không có dòng nào được trả về" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Ollama 正在运行但没有模型。运行 \"ollama pull \" 下载一个。" + "value" : "未返回任何行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Ollama 正在執行但沒有模型。請執行 \"ollama pull \" 下載一個。" + "value" : "未傳回任何列" } } } }, - "On Delete" : { + "No saved connection has that id." : { + + }, + "No saved connection named \"%@\"." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "삭제 시" + "value" : "이름이 \"%@\"인 저장된 연결이 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Silindiğinde" + "value" : "No saved connection named \"%@\"." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khi xóa" + "value" : "Không có kết nối đã lưu tên \"%@\"." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除时" + "value" : "没有名为 \"%@\" 的已保存连接。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除時" + "value" : "沒有名為「%@」的已儲存連線。" } } } }, - "On Disk" : { + "No saved connection with ID \"%@\"." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "디스크 버전" + "value" : "ID가 \"%@\"인 저장된 연결이 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Diskte" + "value" : "\"%@\" ID'li kayıtlı bağlantı yok." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trên đĩa" + "value" : "Không có kết nối đã lưu với ID \"%@\"." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "磁盘上" + "value" : "未找到 ID 为 \"%@\" 的已保存连接。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在磁碟上" + "value" : "找不到 ID 為「%@」的已儲存連線。" } } } }, - "On Quit" : { + "No saved connections" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "종료 시" + "value" : "저장된 연결 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Çıkışta" + "value" : "Kayıtlı bağlantı yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khi thoát" + "value" : "Không có kết nối đã lưu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "退出时" + "value" : "没有已保存的连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "結束時" + "value" : "沒有已儲存的連線" } } } }, - "On Update" : { + "No saved customizations yet. Column widths, order, visibility, and per-table filters you set appear here so you can review and reset them." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "업데이트 시" + "value" : "아직 저장된 사용자화가 없습니다. 여기에는 설정한 열 너비, 순서, 표시 여부 및 테이블별 필터가 표시되므로 검토하거나 재설정할 수 있습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Güncellendiğinde" + "value" : "Henüz kaydedilmiş özelleştirme yok. Ayarladığınız sütun genişlikleri, sırası, görünürlüğü ve tablo başına filtreler burada görünür; buradan gözden geçirip sıfırlayabilirsiniz." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khi cập nhật" + "value" : "Chưa có tùy chỉnh nào được lưu. Độ rộng cột, thứ tự, khả năng hiển thị và bộ lọc theo từng bảng bạn đặt sẽ xuất hiện ở đây để xem lại và đặt lại." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "更新时" + "value" : "尚未保存任何自定义。你设置的列宽、顺序、显示状态以及各表的筛选条件会显示在这里,便于查看和重置。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "更新時" + "value" : "尚未儲存任何自訂設定。你設定的欄寬、順序、顯示狀態以及各資料表的篩選條件會顯示在這裡,方便你檢視與重設。" } } } }, - "Only affects new saves. Re-save a password to update its sync." : { + "No saved setups for this source and target." : { + + }, + "No saved templates" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새로 저장하는 항목에만 적용됩니다. 동기화 설정을 업데이트하려면 암호를 다시 저장하십시오." + "value" : "저장된 템플릿 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yalnızca yeni kayıtları etkiler. Bir parolanın eşzamanlamasını güncellemek için parolayı yeniden kaydedin." + "value" : "No saved templates" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chỉ áp dụng cho lần lưu mới. Lưu lại mật khẩu để cập nhật đồng bộ." + "value" : "Không có mẫu đã lưu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "仅影响新保存的内容。重新保存密码以更新其同步状态。" + "value" : "无已保存的模板" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "僅影響新儲存的內容。重新儲存密碼以更新其同步狀態。" - } - } - } - }, - "Only the first %1$lld nodes were loaded, so this value was not searched in full. Switch to %2$@ to search all of it." : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "처음 %1$lld개의 노드만 불러와 이 값을 전부 검색하지 못했습니다. 모든 내용을 검색하려면 %2$@ 옵션으로 전환하십시오." - } - } - } - }, - "Only the first %1$lld nodes were loaded. Switch to %2$@ to see the whole value." : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "처음 %1$lld개의 노드만 불러왔습니다. 전체 값을 보려면 %2$@ 옵션으로 전환하십시오." + "value" : "無已儲存的範本" } } } }, - "Open" : { + "No schemas" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열기" + "value" : "스키마 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Open" + "value" : "Şema yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở" + "value" : "Không có schema" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "打开" + "value" : "没有 Schema" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開啟" + "value" : "沒有綱要" } } } }, - "Open %@" : { + "No Schemas Available" : { + "comment" : "Placeholder text displayed in the schemas menu when the user has no schemas available.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 열기" + "value" : "사용 가능한 스키마 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ Aç" + "value" : "Kullanılabilir Şema Yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở %@" + "value" : "Không có schema nào" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "打开 %@" + "value" : "没有可用的 Schema" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開啟 %@" + "value" : "沒有可用的綱要" } } } }, - "Open %@ Editor" : { + "No schemas found" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 편집기 열기" + "value" : "스키마를 찾을 수 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ Düzenleyicisini Aç" + "value" : "No schemas found" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở trình chỉnh sửa %@" + "value" : "Không tìm thấy schema" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "打开 %@ 编辑器" + "value" : "未找到 Schema" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開啟 %@ 編輯器" + "value" : "找不到綱要" } } } }, - "Open %@ in New Tab" : { + "No schemas match \"%@\"" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 탭에서 %@ 열기" + "value" : "\"%@\"과 일치하는 스키마 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ Öğesini Yeni Sekmede Aç" + "value" : "No schemas match \"%@\"" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở %@ trong tab mới" + "value" : "Không có schema khớp \"%@\"" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在新标签页中打开%@" + "value" : "没有匹配 \"%@\" 的 Schema" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在新分頁中開啟 %@" + "value" : "沒有符合「%@」的綱要" } } } }, - "Open %@..." : { - "extractionState" : "stale", + "No Script Yet" : { + + }, + "No selection" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 열기..." + "value" : "선택 항목 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ Aç..." + "value" : "Seçim yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở %@..." + "value" : "Chưa chọn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "打开 %@..." + "value" : "未选择" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開啟 %@..." + "value" : "未選取" } } } }, - "Open AI settings to change the tool call limit." : { + "No Selection" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "도구 호출 한도를 변경하려면 AI 설정을 여십시오." + "value" : "선택 항목 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Araç çağrısı limitini değiştirmek için AI ayarlarını açın." + "value" : "Seçim Yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở cài đặt AI để thay đổi giới hạn gọi công cụ." + "value" : "Chưa chọn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "打开 AI 设置以更改工具调用上限。" + "value" : "未选择" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開啟 AI 設定以變更工具呼叫上限。" + "value" : "未選取" } } } }, - "Open Claude Desktop, go to Settings > Developer" : { + "No slow queries" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Claude Desktop을 열고 설정 > 개발자로 이동하십시오" + "value" : "느린 쿼리 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Claude Desktop'ı açın, Settings > Developer'a gidin" + "value" : "Yavaş sorgu yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở Claude Desktop, vào Settings > Developer" + "value" : "Không có truy vấn chậm" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "打开 Claude Desktop,进入 Settings > Developer" + "value" : "没有慢查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開啟 Claude Desktop,前往 Settings > Developer" + "value" : "沒有慢查詢" } } } }, - "Open Connection" : { + "No sorting (engine order)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 열기" + "value" : "정렬 안 함(엔진 순서)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantıyı Aç" + "value" : "Sıralama yok (motor sırası)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở kết nối" + "value" : "Không sắp xếp (theo thứ tự engine)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "打开连接" + "value" : "不排序(引擎顺序)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開啟連線" + "value" : "不排序(引擎順序)" } } } }, - "Open Connection Window" : { + "No SSL encryption" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 윈도우 열기" + "value" : "SSL 암호화 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı Penceresini Aç" + "value" : "SSL şifrelemesi yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở cửa sổ kết nối" + "value" : "Không mã hóa SSL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "打开连接窗口" + "value" : "无 SSL 加密" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開啟連線視窗" + "value" : "無 SSL 加密" } } } }, - "Open Connections" : { - "comment" : "Accessibility label for the open connections list.", - "isCommentAutoGenerated" : true, + "No Table Selected" : { + + }, + "No tables" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 목록 열기" + "value" : "테이블 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Açık Bağlantılar" + "value" : "Tablo yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối đang mở" + "value" : "Không có bảng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已打开的连接" + "value" : "没有表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已開啟的連線" + "value" : "沒有資料表" } } } }, - "Open Cursor, go to Settings > MCP" : { + "No Tables" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Cursor를 열고 설정 > MCP로 이동하십시오" + "value" : "테이블 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Cursor'ı açın, Settings > MCP'ye gidin" + "value" : "No Tables" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở Cursor, vào Settings > MCP" + "value" : "Không có bảng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "打开 Cursor,进入 Settings > MCP" + "value" : "无表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開啟 Cursor,前往 Settings > MCP" + "value" : "沒有資料表" } } } }, - "Open Database" : { + "No tables found" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 열기" + "value" : "테이블을 찾을 수 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı Aç" + "value" : "Tablo bulunamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở cơ sở dữ liệu" + "value" : "Không tìm thấy bảng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "打开数据库" + "value" : "未找到表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開啟資料庫" + "value" : "找不到資料表" } } } }, - "Open Database (⌘K)" : { - "extractionState" : "stale", + "No tables selected for export" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 열기(⌘K)" + "value" : "내보낼 테이블이 선택되지 않음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Open Database (⌘K)" + "value" : "Dışa aktarma için tablo seçilmedi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở cơ sở dữ liệu (⌘K)" + "value" : "Không có bảng nào được chọn để xuất" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "打开数据库 (⌘K)" + "value" : "未选择要导出的表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開啟資料庫 (⌘K)" + "value" : "未選取要匯出的資料表" } } } }, - "Open Database…" : { + "No Tables Yet" : { + + }, + "No tabs open" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 열기…" + "value" : "열려 있는 탭 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı Aç…" + "value" : "Açık sekme yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở cơ sở dữ liệu…" + "value" : "Không có tab nào mở" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "打开数据库…" + "value" : "没有打开的标签页" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開啟資料庫…" + "value" : "沒有開啟的分頁" } } } }, - "Open External Database Connection?" : { + "No tokens created" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "외부 데이터베이스 연결을 여시겠습니까?" + "value" : "생성된 토큰 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Harici Veritabanı Bağlantısı Açılsın mı?" + "value" : "Oluşturulmuş token yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở kết nối cơ sở dữ liệu bên ngoài?" + "value" : "Chưa tạo token nào" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "打开外部数据库连接?" + "value" : "未创建令牌" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開啟外部資料庫連線?" + "value" : "尚未建立權杖" } } } }, - "Open File" : { + "No triggers" : { + + }, + "No Triggers" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "파일 열기" + "value" : "트리거 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dosya Aç" + "value" : "Tetikleyici Yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở tệp" + "value" : "Không có trigger" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "打开文件" + "value" : "无触发器" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開啟檔案" + "value" : "無觸發器" } } } }, - "Open File…" : { + "No Users or Roles" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "파일 열기…" + "value" : "사용자 또는 역할 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dosya Aç…" + "value" : "Kullanıcı veya Rol Yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở tệp…" + "value" : "Không có người dùng hoặc vai trò" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "打开文件…" + "value" : "没有用户或角色" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開啟檔案…" + "value" : "沒有使用者或角色" } } } }, - "Open Issue Tracker" : { + "No valid rows found in clipboard data." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이슈 트래커 열기" + "value" : "클립보드 데이터에서 유효한 행을 찾을 수 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorun İzleyiciyi Aç" + "value" : "Pano verisinde geçerli satır bulunamadı." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở Issue Tracker" + "value" : "Không tìm thấy dòng hợp lệ trong dữ liệu bộ nhớ tạm." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "打开问题跟踪器" + "value" : "剪贴板数据中未找到有效行。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開啟問題追蹤器" + "value" : "在剪貼簿資料中找不到有效的列。" } } } }, - "Open JSON Viewer" : { - "extractionState" : "stale", + "No value" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "JSON 뷰어 열기" + "value" : "값 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "JSON Görüntüleyiciyi Aç" + "value" : "Değer yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở trình xem JSON" + "value" : "Không có giá trị" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "打开 JSON 查看器" + "value" : "无值" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開啟 JSON 檢視器" + "value" : "無值" } } } }, - "Open MQL Editor" : { + "No values found" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "MQL 편집기 열기" + "value" : "값을 찾을 수 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Open MQL Editor" + "value" : "No values found" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở trình soạn MQL" + "value" : "Không tìm thấy giá trị" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "打开 MQL 编辑器" + "value" : "未找到值" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開啟 MQL 編輯器" + "value" : "找不到值" } } } }, - "Open Plugin Settings" : { + "No values in this row matched the column mapping" : { + + }, + "No views" : { + + }, + "No Warnings" : { + + }, + "Non-UTF-8 file (%@). Saving may change the encoding." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플러그인 설정 열기" + "value" : "UTF-8이 아닌 파일(%@)입니다. 저장하면 인코딩이 변경될 수 있습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklenti Ayarlarını Aç" + "value" : "UTF-8 olmayan dosya (%@). Kaydetmek kodlamayı değiştirebilir." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở cài đặt plugin" + "value" : "Tệp không phải UTF-8 (%@). Lưu có thể làm thay đổi bảng mã." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "打开插件设置" + "value" : "非 UTF-8 文件(%@)。保存可能会改变编码。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開啟外掛設定" + "value" : "非 UTF-8 檔案(%@)。儲存可能會改變編碼。" } } } }, - "Open Project Folder" : { + "None" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "프로젝트 폴더 열기" + "value" : "없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Proje Klasörünü Aç" + "value" : "None" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở thư mục dự án" + "value" : "Không" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "打开项目文件夹" + "value" : "无" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開啟專案資料夾" + "value" : "無" } } } }, - "Open Project Folder…" : { + "None (Top Level)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "프로젝트 폴더 열기…" + "value" : "없음(최상위)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Proje Klasörünü Aç…" + "value" : "Yok (Üst Düzey)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở thư mục dự án…" + "value" : "Không (Cấp cao nhất)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "打开项目文件夹…" + "value" : "无(顶级)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開啟專案資料夾…" + "value" : "無(最上層)" } } } }, - "Open Query" : { + "None chosen" : { + + }, + "Normal" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 열기" + "value" : "일반" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgu Aç" + "value" : "Normal" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở truy vấn" + "value" : "Bình thường" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "打开查询" + "value" : "正常" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開啟查詢" + "value" : "一般" } } } }, - "Open Query from Link" : { + "Not Available" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "링크에서 쿼리 열기" + "value" : "사용할 수 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Linkten Sorgu Aç" + "value" : "Kullanılamıyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở truy vấn từ liên kết" + "value" : "Không khả dụng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "从链接打开查询" + "value" : "不可用" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "從連結開啟查詢" + "value" : "無法使用" } } } }, - "Open Quickly" : { + "Not browsable on this connection" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "빠르게 열기" + "value" : "이 연결에서는 탐색할 수 없음" } }, "tr" : { "stringUnit" : { - "state" : "needs_review", - "value" : "Hızlı Aç" + "state" : "translated", + "value" : "Bu bağlantıda göz atılamaz" } }, "vi" : { "stringUnit" : { - "state" : "needs_review", - "value" : "Mở nhanh" + "state" : "translated", + "value" : "Không duyệt được trên kết nối này" } }, "zh-Hans" : { "stringUnit" : { - "state" : "needs_review", - "value" : "快速打开" + "state" : "translated", + "value" : "在此连接上无法浏览" } }, "zh-Hant" : { "stringUnit" : { - "state" : "needs_review", - "value" : "快速打開" + "state" : "translated", + "value" : "在此連線上無法瀏覽" } } } }, - "Open Quickly…" : { + "Not compared" : { + + }, + "Not Compared Yet" : { + + }, + "Not configured" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "빠르게 열기…" + "value" : "구성되지 않음" } }, "tr" : { "stringUnit" : { - "state" : "needs_review", - "value" : "Hızlı Aç…" + "state" : "translated", + "value" : "Yapılandırılmamış" } }, "vi" : { "stringUnit" : { - "state" : "needs_review", - "value" : "Mở nhanh…" + "state" : "translated", + "value" : "Chưa cấu hình" } }, "zh-Hans" : { "stringUnit" : { - "state" : "needs_review", - "value" : "快速打开…" + "state" : "translated", + "value" : "未配置" } }, "zh-Hant" : { "stringUnit" : { - "state" : "needs_review", - "value" : "快速打開…" + "state" : "translated", + "value" : "未設定" } } } }, - "Open Redis CLI" : { + "Not connected" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Redis CLI 열기" + "value" : "연결되지 않음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Open Redis CLI" + "value" : "Not connected" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở Redis CLI" + "value" : "Chưa kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "打开 Redis CLI" + "value" : "未连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開啟 Redis CLI" + "value" : "未連線" } } } }, - "Open SQL Editor" : { - "extractionState" : "stale", + "Not connected to %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SQL 편집기 열기" + "value" : "%@에 연결되지 않음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Open SQL Editor" + "value" : "%@ bağlantısı yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở trình soạn SQL" + "value" : "Chưa kết nối tới %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "打开 SQL 编辑器" + "value" : "未连接到 %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開啟 SQL 編輯器" + "value" : "未連線到 %@" } } } }, - "Open Sample Database" : { + "Not connected to ClickHouse" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "샘플 데이터베이스 열기" + "value" : "ClickHouse에 연결되지 않음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Örnek Veritabanını Aç" + "value" : "ClickHouse'a bağlı değil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở cơ sở dữ liệu mẫu" + "value" : "Chưa kết nối đến ClickHouse" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "打开示例数据库" + "value" : "未连接到 ClickHouse" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開啟範例資料庫" + "value" : "未連線到 ClickHouse" } } } }, - "Open Schema" : { - "extractionState" : "stale", + "Not connected to database" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "스키마 열기" + "value" : "데이터베이스에 연결되지 않았습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Open Schema" + "value" : "Veritabanına bağlı değil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở Schema" + "value" : "Chưa kết nối cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "打开 Schema" + "value" : "未连接到数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開啟綱要" + "value" : "未連線到資料庫" } } } }, - "Open Schema…" : { + "Not connected to SQL Server" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "스키마 열기…" + "value" : "SQL Server에 연결되지 않았습니다" } } } }, - "Open Structure" : { + "not contains" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "구조 열기" + "value" : "포함하지 않음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yapıyı Aç" + "value" : "içermez" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở cấu trúc" + "value" : "không chứa" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "打开结构" + "value" : "不包含" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開啟結構" + "value" : "不包含" } } } }, - "Open Table" : { - "comment" : "A context menu option to open a table in the main view.", - "isCommentAutoGenerated" : true, + "not equals" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 열기" + "value" : "같지 않음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tabloyu Aç" + "value" : "eşit değil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở bảng" + "value" : "không bằng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "打开表" + "value" : "不等于" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開啟資料表" + "value" : "不等於" } } } }, - "Open Table Tab" : { + "Not granted" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 탭 열기" + "value" : "권한이 부여되지 않음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tablo Sekmesini Aç" + "value" : "Verilmedi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở tab bảng" + "value" : "Chưa cấp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "打开表标签页" + "value" : "未授予" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開啟資料表分頁" + "value" : "未授予" } } } }, - "Open Terminal" : { - "extractionState" : "stale", + "not in list" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "터미널 열기" + "value" : "목록에 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Terminali Aç" + "value" : "listede değil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở Terminal" + "value" : "không trong danh sách" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "打开终端" + "value" : "不在列表中" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開啟終端機" + "value" : "不在清單中" } } } }, - "Open Workspaces" : { - "extractionState" : "stale", + "Not installed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "워크스페이스 열기" + "value" : "설치되지 않음" } }, "tr" : { "stringUnit" : { - "state" : "needs_review", - "value" : "Açık Çalışma Alanları" + "state" : "translated", + "value" : "Yüklü değil" } }, "vi" : { "stringUnit" : { - "state" : "needs_review", - "value" : "Không gian làm việc đang mở" + "state" : "translated", + "value" : "Chưa cài đặt" } }, "zh-Hans" : { "stringUnit" : { - "state" : "needs_review", - "value" : "已打开的工作区" + "state" : "translated", + "value" : "未安装" } }, "zh-Hant" : { "stringUnit" : { - "state" : "needs_review", - "value" : "已開啟的工作區" + "state" : "translated", + "value" : "未安裝" } } } }, - "Open Zed and click the Agent Panel icon in the right side of the title bar" : { + "Not Installed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Zed를 열고 제목 막대 오른쪽의 에이전트 패널 아이콘을 클릭하십시오" + "value" : "설치되지 않음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Zed'i açın ve başlık çubuğunun sağındaki Agent Panel simgesine tıklayın" + "value" : "Yüklü Değil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở Zed và nhấp vào biểu tượng Agent Panel ở bên phải thanh tiêu đề" + "value" : "Chưa cài đặt" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "打开 Zed,点按标题栏右侧的 Agent Panel 图标" + "value" : "未安装" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開啟 Zed,點按標題列右側的 Agent Panel 圖示" + "value" : "未安裝" } } } }, - "Open a TablePro window for a saved connection (focuses if already open)." : { + "NOT NULL" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "저장된 연결의 TablePro 윈도우를 엽니다. 이미 열려 있으면 해당 윈도우로 전환합니다." + "value" : "NOT NULL" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kayıtlı bir bağlantı için TablePro penceresi açar (zaten açıksa öne getirir)." + "value" : "NOT NULL" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở cửa sổ TablePro cho một kết nối đã lưu (chuyển tiêu điểm nếu đã mở)." + "value" : "NOT NULL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "为已保存的连接打开 TablePro 窗口(如已打开则切换到该窗口)。" + "value" : "NOT NULL" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "為已儲存的連線開啟 TablePro 視窗(如已開啟則切換到該視窗)。" + "value" : "NOT NULL" } } } }, - "Open a connection to apply" : { + "Not on this page" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "적용할 연결 열기" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "Uygulamak için bir bağlantı açın" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "Mở một kết nối để áp dụng" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "打开一个连接后生效" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "開啟一個連線後才會套用" + "value" : "이 페이지에 없음" } } } }, - "Open a connection to insert" : { + "Not recording new queries on this Mac." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "삽입할 연결 열기" + "value" : "이 Mac에서 새 쿼리를 기록하지 않습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklemek için bir bağlantı açın" + "value" : "Bu Mac'te yeni sorgular kaydedilmiyor." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở một kết nối để chèn" + "value" : "Không ghi lại truy vấn mới trên máy Mac này." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "打开一个连接以插入" + "value" : "不在这台 Mac 上记录新查询。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開啟一個連線以插入" + "value" : "不在這台 Mac 上記錄新查詢。" } } } }, - "Open a different file from the Welcome window." : { + "Not signed in" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "시작 윈도우에서 다른 파일을 여십시오." + "value" : "로그인되지 않음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Hoş Geldiniz penceresinden farklı bir dosya açın." + "value" : "Oturum açılmamış" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở tệp khác từ cửa sổ Chào mừng." + "value" : "Chưa đăng nhập" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "从欢迎窗口打开其他文件。" + "value" : "未登录" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "從歡迎視窗開啟其他檔案。" + "value" : "未登入" } } } }, - "Open a table tab in TablePro for the given connection." : { + "Not signed in to ChatGPT." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "지정된 연결의 테이블 탭을 TablePro에서 엽니다." + "value" : "ChatGPT에 로그인되지 않았습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Verilen bağlantı için TablePro'da bir tablo sekmesi açar." + "value" : "ChatGPT'ye giriş yapılmadı." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở một tab bảng trong TablePro cho kết nối đã cho." + "value" : "Chưa đăng nhập ChatGPT." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在 TablePro 中为指定连接打开一个表标签页。" + "value" : "未登录 ChatGPT。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在 TablePro 中為指定的連線開啟資料表分頁。" + "value" : "尚未登入 ChatGPT。" } } } }, - "Open containing folder" : { - "extractionState" : "stale", + "Not signed in to Claude. Run \"claude /login\" in Terminal, then try again." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "포함된 폴더 열기" + "value" : "Claude에 로그인되지 않았습니다. 터미널에서 \"claude /login\"을 실행한 다음 다시 시도하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Open containing folder" + "value" : "Claude'da oturum açılmamış. Terminal'de \"claude /login\" çalıştırıp tekrar deneyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở thư mục chứa" + "value" : "Chưa đăng nhập Claude. Chạy \"claude /login\" trong Terminal rồi thử lại." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "打开所在文件夹" + "value" : "尚未登录 Claude。请在终端运行 \"claude /login\" 后重试。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開啟所在資料夾" + "value" : "尚未登入 Claude。請在終端機執行 \"claude /login\" 後再試一次。" } } } }, - "Open database" : { - "extractionState" : "stale", + "Not signed in to Cursor. Sign in first." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 열기" + "value" : "Cursor에 로그인되지 않았습니다. 먼저 로그인하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Open database" + "value" : "Cursor'a giriş yapılmadı. Önce giriş yapın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở cơ sở dữ liệu" + "value" : "Chưa đăng nhập Cursor. Hãy đăng nhập trước." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "打开数据库" + "value" : "未登录 Cursor。请先登录。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開啟資料庫" + "value" : "尚未登入 Cursor。請先登入。" } } } }, - "Open editor" : { - "extractionState" : "stale", + "Not signed in to GitHub Copilot" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "편집기 열기" + "value" : "GitHub Copilot에 로그인되지 않음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Düzenleyiciyi aç" + "value" : "GitHub Copilot'a oturum açılmamış" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở trình soạn thảo" + "value" : "Chưa đăng nhập GitHub Copilot" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "打开编辑器" + "value" : "未登录 GitHub Copilot" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開啟編輯器" + "value" : "未登入 GitHub Copilot" } } } }, - "Open in Editor" : { + "Not signed in to xAI." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "편집기에서 열기" + "value" : "xAI에 로그인되지 않았습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Düzenleyicide Aç" + "value" : "xAI'da oturum açılmamış." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở trong trình soạn thảo" + "value" : "Chưa đăng nhập xAI." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在编辑器中打开" + "value" : "尚未登录 xAI。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在編輯器中開啟" + "value" : "尚未登入 xAI。" } } } }, - "Open in Finder" : { - "comment" : "Button title for the \"Open in Finder\" option in the export success alert.", - "isCommentAutoGenerated" : true, + "Not supported by the target" : { + + }, + "Not supported by this database" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Finder에서 열기" + "value" : "이 데이터베이스에서는 지원되지 않음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Finder'da Göster" + "value" : "Bu veritabanı desteklemiyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở trong Finder" + "value" : "Cơ sở dữ liệu này không hỗ trợ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在访达中打开" + "value" : "此数据库不支持" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在 Finder 中打開" + "value" : "此資料庫不支援" } } } }, - "Open in New Tab" : { + "Not supported for this database." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 탭에서 열기" + "value" : "이 데이터베이스에서는 지원되지 않습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni Sekmede Aç" + "value" : "Bu veritabanında desteklenmiyor." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở trong tab mới" + "value" : "Không hỗ trợ cho cơ sở dữ liệu này." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在新标签页中打开" + "value" : "此数据库不支持。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在新分頁中開啟" + "value" : "此資料庫不支援。" } } } }, - "Open in New Window" : { - "comment" : "Text for a menu item that opens a connection in a new window.", - "isCommentAutoGenerated" : true, + "Not supported for this database. Use CASCADE instead." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 윈도우에서 열기" + "value" : "이 데이터베이스에서는 지원되지 않습니다. 대신 CASCADE를 사용하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni Pencerede Aç" + "value" : "Bu veritabanında desteklenmiyor. Bunun yerine CASCADE kullanın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở trong cửa sổ mới" + "value" : "Không hỗ trợ cho cơ sở dữ liệu này. Hãy dùng CASCADE thay thế." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在新窗口中打开" + "value" : "此数据库不支持。请使用 CASCADE 代替。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在新視窗中開啟" + "value" : "此資料庫不支援。請改用 CASCADE。" } } } }, - "Open in Query Editor" : { + "Not supported for TRUNCATE with this database" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 편집기에서 열기" + "value" : "이 데이터베이스의 TRUNCATE에서는 지원되지 않음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgu Düzenleyicide Aç" + "value" : "Bu veritabanında TRUNCATE için desteklenmiyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở trong trình soạn truy vấn" + "value" : "Không hỗ trợ TRUNCATE với cơ sở dữ liệu này" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在查询编辑器中打开" + "value" : "此数据库不支持 TRUNCATE" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在查詢編輯器中開啟" + "value" : "此資料庫不支援 TRUNCATE" } } } }, - "Open in Window" : { + "Not visible" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "윈도우에서 열기" + "value" : "표시되지 않음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Pencerede Aç" + "value" : "Görünmüyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở trong cửa sổ" + "value" : "Không hiển thị" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在窗口中打开" + "value" : "不可见" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在視窗中開啟" + "value" : "不可見" } } } }, - "Open this query in a new tab and run it" : { - "comment" : "A description of the action to open a query in a new tab and run it.", - "isCommentAutoGenerated" : true, + "Notes" : { + + }, + "Nothing got at least %1$lld%% slower than the period before. A query needs %2$lld runs in both periods, and has to have grown by at least %3$@." : { + "comment" : "Empty state for regressions: %1$lld is a percentage, %2$lld a run count, %3$@ a duration", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 쿼리를 새 탭에서 열고 실행" + "value" : "이전 기간보다 %1$lld%% 이상 느려진 항목이 없습니다. 쿼리는 두 기간 모두에서 %2$lld회 실행되어야 하며, 최소 %3$@만큼 증가해야 합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu sorguyu yeni bir sekmede açıp çalıştır" + "value" : "Hiçbir şey önceki döneme göre en az %1$lld%% yavaşlamadı. Bir sorgunun her iki dönemde de %2$lld çalışması ve en az %3$@ artmış olması gerekir." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở truy vấn này trong tab mới và chạy" + "value" : "Không có gì chậm đi ít nhất %1$lld%% so với kỳ trước. Một truy vấn cần %2$lld lần chạy ở cả hai kỳ và phải tăng thêm ít nhất %3$@." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在新标签页中打开并运行此查询" + "value" : "没有任何查询比上一时段慢了至少 %1$lld%%。一个查询需要在两个时段各运行 %2$lld 次,并且至少增加了 %3$@。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在新分頁中開啟並執行此查詢" + "value" : "沒有任何查詢比上一時段慢了至少 %1$lld%%。一個查詢需要在兩個時段各執行 %2$lld 次,並且至少增加了 %3$@。" } } } }, - "Open-source fork of MySQL" : { + "Nothing in this script destroys data in %@." : { + + }, + "Nothing is selected to apply." : { + + }, + "Nothing is written until Apply." : { + + }, + "Nothing to Show" : { + + }, + "Notifications" : { + + }, + "Notifications are turned off for TablePro in System Settings." : { + + }, + "Notify about" : { + + }, + "Notify when long-running work finishes" : { + + }, + "NOW()" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "MySQL의 오픈 소스 포크" + "value" : "NOW()" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "MySQL'in açık kaynaklı çatalı" + "value" : "NOW()" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bản fork mã nguồn mở của MySQL" + "value" : "NOW()" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "MySQL 的开源分支" + "value" : "NOW()" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "MySQL 的開源分支" + "value" : "NOW()" } } } }, - "Opening the connection" : { + "Null" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 여는 중" + "value" : "NULL" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı açılıyor" + "value" : "Null" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang mở kết nối" + "value" : "Null" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在打开连接" + "value" : "Null" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在開啟連線" + "value" : "Null" } } } }, - "Opening the tunnel" : { + "NULL" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "터널 여는 중" + "value" : "NULL" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tünel açılıyor" + "value" : "NULL" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang mở tunnel" + "value" : "NULL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在打开隧道" + "value" : "NULL" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在開啟隧道" + "value" : "NULL" } } } }, - "Opening the tunnel through %@" : { + "NULL — no referenced row" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 경유 터널 여는 중" + "value" : "NULL — 참조된 행 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tünel %@ üzerinden açılıyor" + "value" : "NULL — referans satır yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang mở tunnel qua %@" + "value" : "NULL — không có dòng tham chiếu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在通过 %@ 打开隧道" + "value" : "NULL — 无引用行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在透過 %@ 開啟隧道" + "value" : "NULL,沒有參照的列" } } } }, - "Opening your browser to sign in…" : { + "NULL display cannot be empty" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "로그인할 브라우저를 여는 중…" + "value" : "NULL 표시 값은 비워 둘 수 없습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Giriş yapmak için tarayıcınız açılıyor…" + "value" : "NULL görünümü boş olamaz" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang mở trình duyệt để đăng nhập…" + "value" : "Hiển thị NULL không được để trống" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在打开浏览器以登录…" + "value" : "NULL 显示不能为空" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在開啟瀏覽器以登入…" + "value" : "NULL 顯示不能為空" } } } }, - "Opens database URLs from the terminal, such as a DDEV project database." : { + "NULL display contains invalid characters (newlines/tabs)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "터미널에서 DDEV 프로젝트 데이터베이스와 같은 데이터베이스 URL을 엽니다." + "value" : "NULL 표시 값에 잘못된 문자(줄바꿈/탭)가 포함되어 있습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Terminalden gelen veritabanı URL'lerini açar, örneğin bir DDEV proje veritabanı." + "value" : "NULL görünümü geçersiz karakterler içeriyor (satır sonları/sekmeler)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở các URL cơ sở dữ liệu từ terminal, ví dụ cơ sở dữ liệu của dự án DDEV." + "value" : "Hiển thị NULL chứa ký tự không hợp lệ (xuống dòng/tab)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "打开来自终端的数据库 URL,例如 DDEV 项目的数据库。" + "value" : "NULL 显示包含无效字符(换行符/制表符)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開啟來自終端機的資料庫 URL,例如 DDEV 專案的資料庫。" + "value" : "NULL 顯示包含無效字(換行符/定位字)" } } } }, - "Operation" : { - "comment" : "Label for the operation column in the query plan details view.", - "isCommentAutoGenerated" : true, + "NULL display must be %d characters or less" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "작업" + "value" : "NULL 표시 값은 %d자 이하여야 합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İşlem" + "value" : "NULL gösterimi en fazla %d karakter olmalıdır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thao tác" + "value" : "Hiển thị NULL phải có %d ký tự trở xuống" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "操作" + "value" : "NULL显示不能超过%d个字符" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "操作" + "value" : "NULL 顯示不能超過 %d 個字" } } } }, - "Operation Failed" : { + "NULL display must be %lld characters or less" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "작업 실패" + "value" : "NULL 표시 값은 %lld자 이하여야 합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İşlem Başarısız" + "value" : "NULL görünümü en fazla %lld karakter olmalı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thao tác thất bại" + "value" : "Hiển thị NULL phải có %lld ký tự trở xuống" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "操作失败" + "value" : "NULL 显示不能超过 %lld 个字符" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "操作失敗" + "value" : "NULL 顯示不能超過 %lld 個字" } } } }, - "Operation cancelled by user" : { + "NULL display:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사용자가 작업을 취소함" + "value" : "NULL 표시:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İşlem kullanıcı tarafından iptal edildi" + "value" : "NULL görünümü:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thao tác đã bị người dùng hủy" + "value" : "Hiển thị NULL:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "操作已被用户取消" + "value" : "NULL 显示:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "使用者已取消操作" + "value" : "NULL 顯示:" } } } }, - "Operation not permitted" : { + "NULL only equals NULL" : { + + }, + "NULL Value" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "작업이 허용되지 않음" + "value" : "NULL 값" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İşleme izin verilmiyor" + "value" : "NULL Değer" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thao tác không được phép" + "value" : "Giá trị NULL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "操作不被允许" + "value" : "NULL 值" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "操作不被允許" + "value" : "NULL 值" } } } }, - "Operator" : { + "NULL, no referenced row" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연산자" + "value" : "NULL, 참조된 행 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Operator" + "value" : "NULL, başvurulan satır yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Toán tử" + "value" : "NULL, không có hàng được tham chiếu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "运算符" + "value" : "NULL,没有被引用的行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "運算子" + "value" : "NULL,沒有被參照的列" } } } }, - "Optimize" : { + "Nullable" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "최적화" + "value" : "NULL 허용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Optimize Et" + "value" : "Nullable" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tối ưu hoá" + "value" : "Cho phép NULL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "优化" + "value" : "允许 NULL" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "最佳化" + "value" : "允許 NULL" } } } }, - "Optimize Query" : { - "extractionState" : "stale", + "Number" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 최적화" + "value" : "숫자" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Optimize Query" + "value" : "Sayı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tối ưu truy vấn" + "value" : "Số" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "优化查询" + "value" : "数字" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "最佳化查詢" + "value" : "數字" } } } }, - "Optimize table (merge parts)" : { + "Number of documents per insertMany statement. Higher values create fewer statements." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 최적화(파트 병합)" + "value" : "insertMany 명령문당 문서 수입니다. 값이 클수록 생성되는 명령문 수가 줄어듭니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tabloyu optimize et (parçaları birleştir)" + "value" : "Number of documents per insertMany statement. Higher values create fewer statements." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tối ưu hoá bảng (hợp nhất phần)" + "value" : "Số lượng document cho mỗi câu lệnh insertMany. Giá trị cao hơn tạo ít câu lệnh hơn." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "优化表(合并分区)" + "value" : "每个 insertMany 语句的文档数量。值越大生成的语句越少。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "最佳化資料表(合併分割區)" + "value" : "每個 insertMany 陳述式的文件數量。值越大產生的陳述式越少。" } } } }, - "Optimize this SQL query for better performance:\n\n```sql\n%@\n```" : { - "extractionState" : "stale", + "Number of rows" : { + + }, + "Number of rows returned" : { + + }, + "Number of tables" : { + + }, + "Numeric tolerance" : { + + }, + "OAuth Client ID" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "더 나은 성능을 위해 다음 SQL 쿼리를 최적화하십시오:\n\n```sql\n%@\n```" + "value" : "OAuth 클라이언트 ID" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Optimize this SQL query for better performance:\n\n```sql\n%@\n```" + "value" : "OAuth Client ID" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đề xuất tối ưu hóa cho câu truy vấn SQL sau:\n\n```sql\n%@\n```" + "value" : "OAuth Client ID" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "优化以下 SQL 查询以提升性能:\n\n```sql\n%@\n```" + "value" : "OAuth Client ID" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "最佳化以下 SQL 查詢以提升效能:\n\n```sql\n%@\n```" + "value" : "OAuth Client ID" } } } }, - "Optimize with AI" : { + "OAuth Client Secret" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "AI로 최적화" + "value" : "OAuth 클라이언트 시크릿" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "AI ile İyileştir" + "value" : "OAuth Client Secret" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tối ưu với AI" + "value" : "OAuth Client Secret" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "AI 优化" + "value" : "OAuth Client Secret" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "以 AI 最佳化" + "value" : "OAuth Client Secret" } } } }, - "Option as Meta key" : { - "extractionState" : "stale", + "OAuth Token" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Option 키를 Meta 키로 사용" + "value" : "OAuth 토큰" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Option tuşunu Meta olarak kullan" + "value" : "OAuth Belirteci" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dùng Option làm phím Meta" + "value" : "Token OAuth" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将 Option 用作 Meta 键" + "value" : "OAuth 令牌" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將 Option 作為 Meta 鍵" + "value" : "OAuth 權杖" } } } }, - "Optional" : { + "Object" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "선택 사항" + "value" : "객체" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İsteğe bağlı" + "value" : "Nesne" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tùy chọn" + "value" : "Đối tượng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "可选" + "value" : "对象" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選用" + "value" : "物件" } } } }, - "Optional description" : { - "extractionState" : "stale", + "Object Type" : { + + }, + "Object type reported by the engine" : { + + }, + "Object type, for a table match" : { + + }, + "Objects that depend on them will be dropped too." : { + "comment" : "Message in a confirmation alert when the user has selected to drop all objects that depend on the dropped objects.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "설명(선택 사항)" + "value" : "종속된 객체도 함께 삭제됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Optional description" + "value" : "Onlara bağımlı nesneler de silinecek." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mô tả tùy chọn" + "value" : "Các đối tượng phụ thuộc vào chúng cũng sẽ bị xoá." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "可选描述" + "value" : "依赖它们的对象也会被删除。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選填描述" + "value" : "依賴它們的物件也會被刪除。" } } } }, - "Optional one-line description" : { + "Objects to Compare" : { + + }, + "Off" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "한 줄 설명(선택 사항)" + "value" : "끔" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İsteğe bağlı tek satırlık açıklama" + "value" : "Kapalı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mô tả một dòng (tùy chọn)" + "value" : "Tắt" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "可选的单行描述" + "value" : "关" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選用的單行描述" + "value" : "關閉" } } } }, - "Optional. A key from the Cursor dashboard is used instead of signing in." : { + "Off by default. Turn it on to encrypt saved passwords with a passphrase." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "선택 사항입니다. 로그인하는 대신 Cursor 대시보드에서 발급한 키를 사용합니다." + "value" : "기본적으로 꺼져 있습니다. 암호 구문으로 저장된 암호를 암호화하려면 켜십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İsteğe bağlı. Giriş yapmak yerine Cursor panosundan bir anahtar kullanılır." + "value" : "Varsayılan olarak kapalı. Kaydedilen parolaları bir parola cümlesiyle şifrelemek için açın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tùy chọn. Một khóa từ bảng điều khiển Cursor được dùng thay cho đăng nhập." + "value" : "Mặc định tắt. Bật lên để mã hóa các mật khẩu đã lưu bằng một cụm mật khẩu." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "可选。使用来自 Cursor 仪表板的密钥,而不是登录。" + "value" : "默认关闭。开启后会用一个口令加密已保存的密码。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選用。使用來自 Cursor 儀表板的金鑰,而非登入。" + "value" : "預設關閉。開啟後會用一組通關密語加密已儲存的密碼。" } } } }, - "Optional. Set this to reach a database that only listens on a Unix socket." : { + "Offset" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "선택 사항입니다. Unix 소켓에서만 수신 대기하는 데이터베이스에 연결하려면 설정하십시오." + "value" : "오프셋" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İsteğe bağlı. Yalnızca Unix soketi dinleyen bir veritabanına erişmek için ayarlayın." + "value" : "Offset" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tùy chọn. Đặt giá trị này để truy cập cơ sở dữ liệu chỉ lắng nghe trên Unix socket." + "value" : "Vị trí bắt đầu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "可选。当数据库只监听 Unix socket 时设置此项。" + "value" : "偏移量" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選填。當資料庫只監聽 Unix socket 時設定此項。" + "value" : "偏移量" } } } }, - "Options" : { + "OK" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "옵션" + "value" : "확인" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Seçenekler" + "value" : "Tamam" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tùy chọn" + "value" : "OK" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选项" + "value" : "OK" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選項" + "value" : "好" } } } }, - "Oracle" : { - "extractionState" : "stale", + "Ollama is running but has no models. Run \"ollama pull \" to download one." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Oracle" + "value" : "Ollama가 실행 중이지만 모델이 없습니다. 모델을 다운로드하려면 \"ollama pull \"을 실행하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Oracle" + "value" : "Ollama çalışıyor ancak modeli yok. Bir model indirmek için \"ollama pull \" komutunu çalıştırın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Oracle" + "value" : "Ollama đang chạy nhưng không có mô hình nào. Chạy \"ollama pull \" để tải về." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Oracle" + "value" : "Ollama 正在运行但没有模型。运行 \"ollama pull \" 下载一个。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Oracle" + "value" : "Ollama 正在執行但沒有模型。請執行 \"ollama pull \" 下載一個。" } } } }, - "OracleNIO has no TLS fallback. Preferred connects in plain TCP. Use Required for TCPS to Oracle Autonomous Database." : { + "on %@" : { + "comment" : "A sentence fragment describing the table on which the operation is performed.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "OracleNIO에는 TLS 폴백이 없습니다. 선호는 평문 TCP로 연결합니다. Oracle Autonomous Database에 TCPS로 연결하려면 필수를 사용하십시오." + "value" : "%@에서" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "OracleNIO'da TLS geri dönüşü yoktur. Tercih Edilen düz TCP ile bağlanır. Oracle Autonomous Database'e TCPS bağlantısı için Zorunlu kullanın." + "value" : "%@ üzerinde" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "OracleNIO không có cơ chế dự phòng TLS. Preferred kết nối bằng TCP thường. Dùng Required cho TCPS tới Oracle Autonomous Database." + "value" : "trên %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "OracleNIO 没有 TLS 回退。“首选”将使用纯 TCP 连接。通过 TCPS 连接 Oracle Autonomous Database 时请使用“必需”。" + "value" : "在 %@ 上" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "OracleNIO 沒有 TLS 回退。「首選」將使用純 TCP 連線。透過 TCPS 連線 Oracle Autonomous Database 時請使用「必要」。" + "value" : "在 %@ 上" } } } }, - "Orange" : { + "On Delete" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "주황색" + "value" : "삭제 시" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Turuncu" + "value" : "Silindiğinde" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cam" + "value" : "Khi xóa" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "橙色" + "value" : "删除时" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "橘色" + "value" : "刪除時" } } } }, - "Other" : { + "ON DELETE action" : { + + }, + "On Disk" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기타" + "value" : "디스크 버전" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Other" + "value" : "Diskte" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khác" + "value" : "Trên đĩa" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "其他" + "value" : "磁盘上" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "其他" + "value" : "在磁碟上" } } } }, - "Other Device" : { - "extractionState" : "stale", + "On error" : { + + }, + "On Quit" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기타 기기" + "value" : "종료 시" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Other Device" + "value" : "Çıkışta" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thiết bị khác" + "value" : "Khi thoát" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "其他设备" + "value" : "退出时" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "其他裝置" + "value" : "結束時" } } } }, - "Other…" : { + "On Update" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기타…" + "value" : "업데이트 시" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Diğer…" + "value" : "Güncellendiğinde" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khác…" + "value" : "Khi cập nhật" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "其他…" + "value" : "更新时" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "其他…" + "value" : "更新時" } } } }, - "Outcome" : { + "ON UPDATE action" : { + + }, + "One entry per query or table" : { + + }, + "One result per statement" : { + + }, + "One SQL or NoSQL statement" : { + + }, + "Only affects new saves. Re-save a password to update its sync." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "결과" + "value" : "새로 저장하는 항목에만 적용됩니다. 동기화 설정을 업데이트하려면 암호를 다시 저장하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sonuç" + "value" : "Yalnızca yeni kayıtları etkiler. Bir parolanın eşzamanlamasını güncellemek için parolayı yeniden kaydedin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết quả" + "value" : "Chỉ áp dụng cho lần lưu mới. Lưu lại mật khẩu để cập nhật đồng bộ." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "结果" + "value" : "仅影响新保存的内容。重新保存密码以更新其同步状态。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "結果" + "value" : "僅影響新儲存的內容。重新儲存密碼以更新其同步狀態。" } } } }, - "Outcome: %@" : { + "Only after" : { + + }, + "Only in Source" : { + + }, + "Only in Target" : { + + }, + "Only the first %1$lld nodes were loaded, so this value was not searched in full. Switch to %2$@ to search all of it." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "결과: %@" + "value" : "처음 %1$lld개의 노드만 불러와 이 값을 전부 검색하지 못했습니다. 모든 내용을 검색하려면 %2$@ 옵션으로 전환하십시오." + } + } + } + }, + "Only the first %1$lld nodes were loaded. Switch to %2$@ to see the whole value." : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "처음 %1$lld개의 노드만 불러왔습니다. 전체 값을 보려면 %2$@ 옵션으로 전환하십시오." + } + } + } + }, + "Open" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "열기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sonuç: %@" + "value" : "Open" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết quả: %@" + "value" : "Mở" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "结果:%@" + "value" : "打开" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "結果:%@" + "value" : "開啟" } } } }, - "Outdent" : { + "Open %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "내어쓰기" + "value" : "%@ 열기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Girintiyi Azalt" + "value" : "%@ Aç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giảm thụt lề" + "value" : "Mở %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "减少缩进" + "value" : "打开 %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "減少縮排" + "value" : "開啟 %@" } } } }, - "Output truncated for display" : { + "Open %@ Editor" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "화면에 표시하기 위해 출력이 잘렸습니다" + "value" : "%@ 편집기 열기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Çıktı görüntüleme için kısaltıldı" + "value" : "%@ Düzenleyicisini Aç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết quả đầu ra bị cắt bớt để hiển thị" + "value" : "Mở trình chỉnh sửa %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "输出已截断显示" + "value" : "打开 %@ 编辑器" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "輸出已截斷顯示" + "value" : "開啟 %@ 編輯器" } } } }, - "Over an SSH tunnel, TablePro connects directly to the first host. Replica set failover is not available." : { + "Open %@ in New Tab" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 터널을 사용할 때 TablePro는 첫 번째 호스트에 직접 연결합니다. 복제본 세트 장애 조치는 사용할 수 없습니다." + "value" : "새 탭에서 %@ 열기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH tüneli üzerinden TablePro doğrudan ilk sunucuya bağlanır. Replica set yük devretme kullanılamaz." + "value" : "%@ Öğesini Yeni Sekmede Aç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Qua đường hầm SSH, TablePro kết nối trực tiếp tới máy chủ đầu tiên. Không hỗ trợ chuyển đổi dự phòng replica set." + "value" : "Mở %@ trong tab mới" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "通过 SSH 隧道时,TablePro 直接连接到第一个主机。无法使用副本集故障转移。" + "value" : "在新标签页中打开%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "透過 SSH 通道時,TablePro 會直接連線到第一個主機。無法使用複本集容錯移轉。" + "value" : "在新分頁中開啟 %@" } } } }, - "Override auto-detected CLI paths per database type." : { + "Open %@..." : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 유형별로 자동 감지된 CLI 경로를 재정의합니다." + "value" : "%@ 열기..." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı türüne göre otomatik algılanan CLI yollarını geçersiz kılın." + "value" : "%@ Aç..." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ghi đè đường dẫn CLI tự phát hiện cho từng loại cơ sở dữ liệu." + "value" : "Mở %@..." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "按数据库类型覆盖自动检测的 CLI 路径。" + "value" : "打开 %@..." } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "依資料庫型別覆寫自動偵測的 CLI 路徑。" + "value" : "開啟 %@..." } } } }, - "PHP Serialized" : { + "Open a connection to apply" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "PHP 직렬화" + "value" : "적용할 연결 열기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "PHP Serileştirilmiş" + "value" : "Uygulamak için bir bağlantı açın" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "PHP Serialized" + "value" : "Mở một kết nối để áp dụng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "PHP 序列化" + "value" : "打开一个连接后生效" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "PHP 序列化" + "value" : "開啟一個連線後才會套用" } } } }, - "PHP Viewer" : { + "Open a connection to insert" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "PHP 뷰어" + "value" : "삽입할 연결 열기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "PHP Görüntüleyici" + "value" : "Eklemek için bir bağlantı açın" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trình xem PHP" + "value" : "Mở một kết nối để chèn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "PHP 查看器" + "value" : "打开一个连接以插入" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "PHP 檢視器" + "value" : "開啟一個連線以插入" } } } }, - "PHP — %@" : { - "extractionState" : "stale", + "Open a different file from the Welcome window." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "PHP — %@" + "value" : "시작 윈도우에서 다른 파일을 여십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "PHP — %@" + "value" : "Hoş Geldiniz penceresinden farklı bir dosya açın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "PHP — %@" + "value" : "Mở tệp khác từ cửa sổ Chào mừng." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "PHP — %@" + "value" : "从欢迎窗口打开其他文件。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "PHP — %@" + "value" : "從歡迎視窗開啟其他檔案。" } } } }, - "PHP: %@" : { + "Open a session for a saved connection. Returns only after the driver is connected." : { + + }, + "Open a table in TablePro and bring it forward. Returns once the tab exists, with the same tab id and window id that list_recent_tabs reports. Connects the connection if it is not open yet." : { + + }, + "Open a table tab in TablePro for the given connection." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "PHP: %@" + "value" : "지정된 연결의 테이블 탭을 TablePro에서 엽니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "PHP: %@" + "value" : "Verilen bağlantı için TablePro'da bir tablo sekmesi açar." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "PHP: %@" + "value" : "Mở một tab bảng trong TablePro cho kết nối đã cho." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "PHP:%@" + "value" : "在 TablePro 中为指定连接打开一个表标签页。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "PHP:%@" + "value" : "在 TablePro 中為指定的連線開啟資料表分頁。" } } } }, - "PID" : { + "Open a TablePro window for a saved connection (focuses if already open)." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "PID" + "value" : "저장된 연결의 TablePro 윈도우를 엽니다. 이미 열려 있으면 해당 윈도우로 전환합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "PID" + "value" : "Kayıtlı bir bağlantı için TablePro penceresi açar (zaten açıksa öne getirir)." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "PID" + "value" : "Mở cửa sổ TablePro cho một kết nối đã lưu (chuyển tiêu điểm nếu đã mở)." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "PID" + "value" : "为已保存的连接打开 TablePro 窗口(如已打开则切换到该窗口)。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "PID" + "value" : "為已儲存的連線開啟 TablePro 視窗(如已開啟則切換到該視窗)。" } } } }, - "PRO" : { + "Open AI settings to change the tool call limit." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "PRO" + "value" : "도구 호출 한도를 변경하려면 AI 설정을 여십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "PRO" + "value" : "Araç çağrısı limitini değiştirmek için AI ayarlarını açın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "PRO" + "value" : "Mở cài đặt AI để thay đổi giới hạn gọi công cụ." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "PRO" + "value" : "打开 AI 设置以更改工具调用上限。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "PRO" + "value" : "開啟 AI 設定以變更工具呼叫上限。" } } } }, - "Page" : { + "Open Claude Desktop, go to Settings > Developer" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "페이지" + "value" : "Claude Desktop을 열고 설정 > 개발자로 이동하십시오" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sayfa" + "value" : "Claude Desktop'ı açın, Settings > Developer'a gidin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trang" + "value" : "Mở Claude Desktop, vào Settings > Developer" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "页" + "value" : "打开 Claude Desktop,进入 Settings > Developer" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "頁" + "value" : "開啟 Claude Desktop,前往 Settings > Developer" } } } }, - "Page %d" : { + "Open Connection" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%d페이지" + "value" : "연결 열기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sayfa %d" + "value" : "Bağlantıyı Aç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trang %d" + "value" : "Mở kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "第 %d 页" + "value" : "打开连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "第 %d 頁" + "value" : "開啟連線" } } } }, - "Page %d of %d" : { + "Open Connection Window" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Page %1$d of %2$d" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "페이지 %1$d / %2$d" + "value" : "연결 윈도우 열기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sayfa %1$d / %2$d" + "value" : "Bağlantı Penceresini Aç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trang %1$d / %2$d" + "value" : "Mở cửa sổ kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "第 %1$d 页,共 %2$d 页" + "value" : "打开连接窗口" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "第 %1$d 頁,共 %2$d 頁" + "value" : "開啟連線視窗" } } } }, - "Page %lld of %lld" : { + "Open Connections" : { + "comment" : "Accessibility label for the open connections list.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "페이지 %1$lld / %2$lld" + "value" : "연결 목록 열기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sayfa %1$lld / %2$lld" + "value" : "Açık Bağlantılar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trang %1$lld / %2$lld" + "value" : "Kết nối đang mở" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "第 %1$lld 页,共 %2$lld 页" + "value" : "已打开的连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "第 %1$lld 頁,共 %2$lld 頁" + "value" : "已開啟的連線" } } } }, - "Page Count" : { + "Open containing folder" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "페이지 수" + "value" : "포함된 폴더 열기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sayfa Sayısı" + "value" : "Open containing folder" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Số trang" + "value" : "Mở thư mục chứa" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "页面数" + "value" : "打开所在文件夹" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "頁數" + "value" : "開啟所在資料夾" } } } }, - "Page Size" : { + "Open Cursor, go to Settings > MCP" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "페이지 크기" + "value" : "Cursor를 열고 설정 > MCP로 이동하십시오" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sayfa Boyutu" + "value" : "Cursor'ı açın, Settings > MCP'ye gidin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kích thước trang" + "value" : "Mở Cursor, vào Settings > MCP" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "页面大小" + "value" : "打开 Cursor,进入 Settings > MCP" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "頁面大小" + "value" : "開啟 Cursor,前往 Settings > MCP" } } } }, - "Page number" : { + "Open database" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "페이지 번호" + "value" : "데이터베이스 열기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sayfa numarası" + "value" : "Open database" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Số trang" + "value" : "Mở cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "页码" + "value" : "打开数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "頁碼" + "value" : "開啟資料庫" } } } }, - "Page size must be between %@ and %@" : { + "Open Database" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Page size must be between %1$@ and %2$@" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "페이지 크기는 %1$@에서 %2$@ 사이여야 합니다" + "value" : "데이터베이스 열기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Page size must be arasında %@ and %@" + "value" : "Veritabanı Aç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kích thước trang phải nằm trong khoảng %1$@ đến %2$@" + "value" : "Mở cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "页面大小必须在 %@ 和 %@ 之间" + "value" : "打开数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "頁面大小必須介於 %1$@ 與 %2$@ 之間" + "value" : "開啟資料庫" } } } }, - "Pagination" : { + "Open Database (⌘K)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "페이지 매김" + "value" : "데이터베이스 열기(⌘K)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Pagination" + "value" : "Open Database (⌘K)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phân trang" + "value" : "Mở cơ sở dữ liệu (⌘K)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "分页" + "value" : "打开数据库 (⌘K)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "分頁" + "value" : "開啟資料庫 (⌘K)" } } } }, - "Pagination Settings" : { - "extractionState" : "stale", + "Open Database…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "페이지 매김 설정" + "value" : "데이터베이스 열기…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Pagination Settings" + "value" : "Veritabanı Aç…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cài đặt phân trang" + "value" : "Mở cơ sở dữ liệu…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "分页设置" + "value" : "打开数据库…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "分頁設定" + "value" : "開啟資料庫…" } } } }, - "Pairing Failed" : { + "Open editor" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "페어링 실패" + "value" : "편집기 열기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eşleştirme Başarısız" + "value" : "Düzenleyiciyi aç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ghép nối thất bại" + "value" : "Mở trình soạn thảo" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "配对失败" + "value" : "打开编辑器" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "配對失敗" + "value" : "開啟編輯器" } } } }, - "Panel State" : { + "Open External Database Connection?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "패널 상태" + "value" : "외부 데이터베이스 연결을 여시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Panel Durumu" + "value" : "Harici Veritabanı Bağlantısı Açılsın mı?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trạng thái bảng điều khiển" + "value" : "Mở kết nối cơ sở dữ liệu bên ngoài?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "面板状态" + "value" : "打开外部数据库连接?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "面板狀態" + "value" : "開啟外部資料庫連線?" } } } }, - "Parameters" : { + "Open File" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "매개변수" + "value" : "파일 열기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Parametreler" + "value" : "Dosya Aç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tham số" + "value" : "Mở tệp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "参数" + "value" : "打开文件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "參數" + "value" : "開啟檔案" } } } }, - "Parent Group" : { + "Open File…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "상위 그룹" + "value" : "파일 열기…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Üst Grup" + "value" : "Dosya Aç…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhóm cha" + "value" : "Mở tệp…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "父分组" + "value" : "打开文件…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "上層群組" + "value" : "開啟檔案…" } } } }, - "Part Mutations" : { + "Open in Editor" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "파트 뮤테이션" + "value" : "편집기에서 열기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Parça Mutasyonları" + "value" : "Düzenleyicide Aç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thay đổi phần" + "value" : "Mở trong trình soạn thảo" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "分区变更" + "value" : "在编辑器中打开" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "分割區異動" + "value" : "在編輯器中開啟" } } } }, - "Partial files may remain on disk." : { + "Open in Finder" : { + "comment" : "Button title for the \"Open in Finder\" option in the export success alert.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "일부 파일이 디스크에 남아 있을 수 있습니다." + "value" : "Finder에서 열기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Diskte kısmi dosyalar kalabilir." + "value" : "Finder'da Göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Các tệp dở dang có thể vẫn còn trên ổ đĩa." + "value" : "Mở trong Finder" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "部分文件可能仍留在磁盘上。" + "value" : "在访达中打开" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "磁碟上可能殘留部分檔案。" + "value" : "在 Finder 中打開" } } } }, - "Partition" : { + "Open in New Tab" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "파티션" + "value" : "새 탭에서 열기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Partition" + "value" : "Yeni Sekmede Aç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phân vùng" + "value" : "Mở trong tab mới" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "分区" + "value" : "在新标签页中打开" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "分割區" + "value" : "在新分頁中開啟" } } } }, - "Partitioned Table" : { + "Open in New Window" : { + "comment" : "Text for a menu item that opens a connection in a new window.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "파티션 테이블" + "value" : "새 윈도우에서 열기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bölümlenmiş Tablo" + "value" : "Yeni Pencerede Aç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bảng phân vùng" + "value" : "Mở trong cửa sổ mới" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "分区表" + "value" : "在新窗口中打开" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "分割資料表" + "value" : "在新視窗中開啟" } } } }, - "Partly granted" : { + "Open in Query Editor" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "일부 권한이 부여됨" + "value" : "쿼리 편집기에서 열기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kısmen verildi" + "value" : "Sorgu Düzenleyicide Aç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cấp một phần" + "value" : "Mở trong trình soạn truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "部分授予" + "value" : "在查询编辑器中打开" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "部分授予" + "value" : "在查詢編輯器中開啟" } } } }, - "Passphrase" : { + "Open in Window" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "암호 구문" + "value" : "윈도우에서 열기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Passphrase" + "value" : "Pencerede Aç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cụm mật khẩu" + "value" : "Mở trong cửa sổ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "密码短语" + "value" : "在窗口中打开" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "通關密語" + "value" : "在視窗中開啟" } } } }, - "Passphrase (8+ characters)" : { - "extractionState" : "stale", + "Open Issue Tracker" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "암호 구문(8자 이상)" + "value" : "이슈 트래커 열기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Parola (8+ karakter)" + "value" : "Sorun İzleyiciyi Aç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cụm mật khẩu (8+ ký tự)" + "value" : "Mở Issue Tracker" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "密码短语(8 个以上字符)" + "value" : "打开问题跟踪器" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "通關密語(8 個以上字)" + "value" : "開啟問題追蹤器" } } } }, - "Passphrases do not match" : { + "Open JSON Viewer" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "암호 구문이 일치하지 않음" + "value" : "JSON 뷰어 열기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Parolalar eşleşmiyor" + "value" : "JSON Görüntüleyiciyi Aç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cụm mật khẩu không khớp" + "value" : "Mở trình xem JSON" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "密码短语不匹配" + "value" : "打开 JSON 查看器" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "通關密語不相符" + "value" : "開啟 JSON 檢視器" } } } }, - "Password" : { + "Open MQL Editor" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "암호" + "value" : "MQL 편집기 열기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Parola" + "value" : "Open MQL Editor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mật khẩu" + "value" : "Mở trình soạn MQL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "密码" + "value" : "打开 MQL 编辑器" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "密碼" + "value" : "開啟 MQL 編輯器" } } } }, - "Password Required" : { + "Open or focus a TablePro window for a saved connection. Returns once the window has a tab, with the window id that list_recent_tabs reports." : { + + }, + "Open Plugin Settings" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "암호 필요" + "value" : "플러그인 설정 열기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Şifre Gerekli" + "value" : "Eklenti Ayarlarını Aç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Yêu cầu mật khẩu" + "value" : "Mở cài đặt plugin" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "需要密码" + "value" : "打开插件设置" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "需要密碼" + "value" : "開啟外掛設定" } } } }, - "Password command failed (exit %d): %@" : { + "Open Project Folder" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Password command failed (exit %1$d): %2$@" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "암호 명령 실패(종료 코드 %1$d): %2$@" + "value" : "프로젝트 폴더 열기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Parola komutu başarısız oldu (çıkış %1$d): %2$@" + "value" : "Proje Klasörünü Aç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lệnh mật khẩu thất bại (mã thoát %1$d): %2$@" + "value" : "Mở thư mục dự án" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "密码命令失败(退出码 %1$d):%2$@" + "value" : "打开项目文件夹" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "密碼命令失敗(退出碼 %1$d):%2$@" + "value" : "開啟專案資料夾" } } } }, - "Password command failed with exit code %d" : { + "Open Project Folder…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "암호 명령 실패(종료 코드 %d)" + "value" : "프로젝트 폴더 열기…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Parola komutu %d çıkış koduyla başarısız oldu" + "value" : "Proje Klasörünü Aç…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lệnh mật khẩu thất bại với mã thoát %d" + "value" : "Mở thư mục dự án…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "密码命令失败,退出码 %d" + "value" : "打开项目文件夹…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "密碼指令失敗,結束代碼 %d" + "value" : "開啟專案資料夾…" } } } }, - "Password command produced too much output" : { + "Open Query" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "암호 명령의 출력이 너무 많습니다" + "value" : "쿼리 열기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Parola komutu çok fazla çıktı üretti" + "value" : "Sorgu Aç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lệnh mật khẩu tạo ra quá nhiều dữ liệu đầu ra" + "value" : "Mở truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "密码命令产生的输出过多" + "value" : "打开查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "密碼指令產生的輸出過多" + "value" : "開啟查詢" } } } }, - "Password command timed out after 30 seconds" : { + "Open Query from Link" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "암호 명령이 30초 후 시간 초과로 종료되었습니다" + "value" : "링크에서 쿼리 열기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Parola komutu 30 saniye sonra zaman aşımına uğradı" + "value" : "Linkten Sorgu Aç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lệnh mật khẩu hết thời gian chờ sau 30 giây" + "value" : "Mở truy vấn từ liên kết" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "密码命令在 30 秒后超时" + "value" : "从链接打开查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "密碼指令在 30 秒後逾時" + "value" : "從連結開啟查詢" } } } }, - "Password file not found: %@" : { + "Open Quickly" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "암호 파일을 찾을 수 없음: %@" + "value" : "빠르게 열기" } }, "tr" : { "stringUnit" : { - "state" : "translated", - "value" : "Parola dosyası bulunamadı: %@" + "state" : "needs_review", + "value" : "Hızlı Aç" } }, "vi" : { "stringUnit" : { - "state" : "translated", - "value" : "Không tìm thấy tệp mật khẩu: %@" + "state" : "needs_review", + "value" : "Mở nhanh" } }, "zh-Hans" : { "stringUnit" : { - "state" : "translated", - "value" : "未找到密码文件:%@" + "state" : "needs_review", + "value" : "快速打开" } }, "zh-Hant" : { "stringUnit" : { - "state" : "translated", - "value" : "找不到密碼檔案:%@" + "state" : "needs_review", + "value" : "快速打開" } } } }, - "Password found" : { + "Open Quickly…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "암호 찾음" + "value" : "빠르게 열기…" } }, "tr" : { "stringUnit" : { - "state" : "translated", - "value" : "Parola bulundu" + "state" : "needs_review", + "value" : "Hızlı Aç…" } }, "vi" : { "stringUnit" : { - "state" : "translated", - "value" : "Đã tìm thấy mật khẩu" + "state" : "needs_review", + "value" : "Mở nhanh…" } }, "zh-Hans" : { "stringUnit" : { - "state" : "translated", - "value" : "已找到密码" + "state" : "needs_review", + "value" : "快速打开…" } }, "zh-Hant" : { "stringUnit" : { - "state" : "translated", - "value" : "已找到密碼" + "state" : "needs_review", + "value" : "快速打開…" } } } }, - "Password is sent via keyboard-interactive challenge-response." : { + "Open Redis CLI" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "암호는 키보드 대화형 챌린지-응답을 통해 전송됩니다." + "value" : "Redis CLI 열기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Parola, keyboard-interactive soru-cevap yöntemiyle gönderilir." + "value" : "Open Redis CLI" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mật khẩu được gửi qua keyboard-interactive challenge-response." + "value" : "Mở Redis CLI" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "密码通过 keyboard-interactive 质询-响应方式发送。" + "value" : "打开 Redis CLI" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "密碼透過 keyboard-interactive 質詢-回應方式傳送。" + "value" : "開啟 Redis CLI" } } } }, - "Password:" : { + "Open Sample Database" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "암호:" + "value" : "샘플 데이터베이스 열기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Parola:" + "value" : "Örnek Veritabanını Aç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mật khẩu:" + "value" : "Mở cơ sở dữ liệu mẫu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "密码:" + "value" : "打开示例数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "密碼:" + "value" : "開啟範例資料庫" } } } }, - "Passwords will be encrypted with the passphrase you provide." : { + "Open Schema" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "암호는 입력한 암호 구문으로 암호화됩니다." + "value" : "스키마 열기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Parolalar, sağladığınız parola ile şifrelenecektir." + "value" : "Open Schema" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mật khẩu sẽ được mã hóa bằng cụm mật khẩu bạn cung cấp." + "value" : "Mở Schema" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "密码将使用您提供的密码短语进行加密。" + "value" : "打开 Schema" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "密碼將使用你提供的通關密語加密。" + "value" : "開啟綱要" } } } }, - "Passwords:" : { + "Open Schema…" : { "localizations" : { - "en" : { + "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Passwords:" + "value" : "스키마 열기…" } - }, + } + } + }, + "Open Source Libraries" : { + + }, + "Open SQL Editor" : { + "extractionState" : "stale", + "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "암호:" + "value" : "SQL 편집기 열기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Parolalar:" + "value" : "Open SQL Editor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mật khẩu:" + "value" : "Mở trình soạn SQL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "密码:" + "value" : "打开 SQL 编辑器" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "密碼:" + "value" : "開啟 SQL 編輯器" } } } }, - "Paste" : { + "Open Structure" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "붙여넣기" + "value" : "구조 열기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yapıştır" + "value" : "Yapıyı Aç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dán" + "value" : "Mở cấu trúc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "粘贴" + "value" : "打开结构" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "貼上" + "value" : "開啟結構" } } } }, - "Paste Cells" : { + "Open System Settings" : { + + }, + "Open Table" : { + "comment" : "A context menu option to open a table in the main view.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "셀 붙여넣기" + "value" : "테이블 열기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Hücreleri Yapıştır" + "value" : "Tabloyu Aç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dán ô" + "value" : "Mở bảng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "粘贴单元格" + "value" : "打开表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "貼上儲存格" + "value" : "開啟資料表" } } } }, - "Paste a connection URL to auto-fill the form fields." : { - "extractionState" : "stale", + "Open Table Tab" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 URL을 붙여넣으면 양식 필드가 자동으로 채워집니다." + "value" : "테이블 탭 열기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Paste a connection URL to auto-fill the form fields." + "value" : "Tablo Sekmesini Aç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dán URL kết nối để tự động điền các trường trong biểu mẫu." + "value" : "Mở tab bảng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "粘贴连接 URL 以自动填充表单字段。" + "value" : "打开表标签页" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "貼上連線 URL 以自動填入表單欄位。" + "value" : "開啟資料表分頁" } } } }, - "Paste a connection URL to detect type and pre-fill fields" : { + "Open tabs, ordered by connection then title" : { + + }, + "Open Terminal" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 URL을 붙여넣으면 유형을 감지하여 필드를 미리 채웁니다" + "value" : "터미널 열기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Türü algılamak ve alanları önceden doldurmak için bir bağlantı URL'si yapıştırın" + "value" : "Terminali Aç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dán URL kết nối để nhận diện loại và điền sẵn các trường" + "value" : "Mở Terminal" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "粘贴连接 URL 以检测类型并预填字段" + "value" : "打开终端" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "貼上連線 URL 以偵測類型並預先填入欄位" + "value" : "開啟終端機" } } } }, - "Paste a connection URL. We'll detect the database type and pre-fill the form." : { + "Open this query in a new tab and run it" : { + "comment" : "A description of the action to open a query in a new tab and run it.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 URL을 붙여넣으십시오. 데이터베이스 유형을 감지하여 양식을 미리 채웁니다." + "value" : "이 쿼리를 새 탭에서 열고 실행" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bir bağlantı URL'si yapıştırın. Veritabanı türünü algılayıp formu önceden dolduracağız." + "value" : "Bu sorguyu yeni bir sekmede açıp çalıştır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dán URL kết nối. Ứng dụng sẽ nhận diện loại cơ sở dữ liệu và điền sẵn biểu mẫu." + "value" : "Mở truy vấn này trong tab mới và chạy" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "粘贴连接 URL,将自动检测数据库类型并预填表单。" + "value" : "在新标签页中打开并运行此查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "貼上連線 URL,將自動偵測資料庫類型並預先填入表單。" + "value" : "在新分頁中開啟並執行此查詢" } } } }, - "Paste the JSON below and save" : { + "Open Workspaces" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "아래 JSON을 붙여넣고 저장하십시오" + "value" : "워크스페이스 열기" } }, "tr" : { "stringUnit" : { - "state" : "translated", - "value" : "Aşağıdaki JSON'u yapıştırın ve kaydedin" + "state" : "needs_review", + "value" : "Açık Çalışma Alanları" } }, "vi" : { "stringUnit" : { - "state" : "translated", - "value" : "Dán JSON dưới đây và lưu lại" + "state" : "needs_review", + "value" : "Không gian làm việc đang mở" } }, "zh-Hans" : { "stringUnit" : { - "state" : "translated", - "value" : "粘贴下方 JSON 并保存" + "state" : "needs_review", + "value" : "已打开的工作区" } }, "zh-Hant" : { "stringUnit" : { - "state" : "translated", - "value" : "在下方貼上 JSON 並儲存" + "state" : "needs_review", + "value" : "已開啟的工作區" } } } }, - "Paste your CREATE TABLE statement below:" : { - "extractionState" : "stale", + "Open Zed and click the Agent Panel icon in the right side of the title bar" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "아래에 CREATE TABLE 문을 붙여넣으십시오:" + "value" : "Zed를 열고 제목 막대 오른쪽의 에이전트 패널 아이콘을 클릭하십시오" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Paste your CREATE TABLE statement below:" + "value" : "Zed'i açın ve başlık çubuğunun sağındaki Agent Panel simgesine tıklayın" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dán câu lệnh CREATE TABLE bên dưới:" + "value" : "Mở Zed và nhấp vào biểu tượng Agent Panel ở bên phải thanh tiêu đề" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在下方粘贴 CREATE TABLE 语句:" + "value" : "打开 Zed,点按标题栏右侧的 Agent Panel 图标" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在下方貼上你的 CREATE TABLE 陳述式:" + "value" : "開啟 Zed,點按標題列右側的 Agent Panel 圖示" } } } }, - "Path" : { + "Open-source fork of MySQL" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "경로" + "value" : "MySQL의 오픈 소스 포크" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yol" + "value" : "MySQL'in açık kaynaklı çatalı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đường dẫn" + "value" : "Bản fork mã nguồn mở của MySQL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "路径" + "value" : "MySQL 的开源分支" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "路徑" + "value" : "MySQL 的開源分支" } } } }, - "Pause" : { + "Opening the connection" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "일시 정지" + "value" : "연결 여는 중" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Duraklat" + "value" : "Bağlantı açılıyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tạm dừng" + "value" : "Đang mở kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "暂停" + "value" : "正在打开连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "暫停" + "value" : "正在開啟連線" } } } }, - "Pause Query History" : { + "Opening the tunnel" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 기록 일시 정지" + "value" : "터널 여는 중" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgu Geçmişini Duraklat" + "value" : "Tünel açılıyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tạm dừng lịch sử truy vấn" + "value" : "Đang mở tunnel" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "暂停查询历史" + "value" : "正在打开隧道" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "暫停查詢歷史" + "value" : "正在開啟隧道" } } } }, - "Paused after %d tool calls." : { + "Opening the tunnel through %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "도구 호출 %d회 후 일시 정지되었습니다." + "value" : "%@ 경유 터널 여는 중" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%d araç çağrısından sonra duraklatıldı." + "value" : "Tünel %@ üzerinden açılıyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã tạm dừng sau %d lần gọi công cụ." + "value" : "Đang mở tunnel qua %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已在 %d 次工具调用后暂停。" + "value" : "正在通过 %@ 打开隧道" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已在 %d 次工具呼叫後暫停。" + "value" : "正在透過 %@ 開啟隧道" } } } }, - "Pending approval for" : { + "Opening your browser to sign in…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "승인 대기 중:" + "value" : "로그인할 브라우저를 여는 중…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Onay bekleniyor:" + "value" : "Giriş yapmak için tarayıcınız açılıyor…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang chờ phê duyệt cho" + "value" : "Đang mở trình duyệt để đăng nhập…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "等待批准:" + "value" : "正在打开浏览器以登录…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "等待核准:" + "value" : "正在開啟瀏覽器以登入…" } } } }, - "Period" : { + "Opens database URLs from the terminal, such as a DDEV project database." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기간" + "value" : "터미널에서 DDEV 프로젝트 데이터베이스와 같은 데이터베이스 URL을 엽니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Period" + "value" : "Terminalden gelen veritabanı URL'lerini açar, örneğin bir DDEV proje veritabanı." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chu kỳ" + "value" : "Mở các URL cơ sở dữ liệu từ terminal, ví dụ cơ sở dữ liệu của dự án DDEV." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "周期" + "value" : "打开来自终端的数据库 URL,例如 DDEV 项目的数据库。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "週期" + "value" : "開啟來自終端機的資料庫 URL,例如 DDEV 專案的資料庫。" } } } }, - "Permission" : { + "Operation" : { + "comment" : "Label for the operation column in the query plan details view.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "권한" + "value" : "작업" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İzin" + "value" : "İşlem" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Quyền" + "value" : "Thao tác" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "权限" + "value" : "操作" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "權限" + "value" : "操作" } } } }, - "Permission Level" : { + "Operation cancelled by user" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "권한 수준" + "value" : "사용자가 작업을 취소함" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İzin Düzeyi" + "value" : "İşlem kullanıcı tarafından iptal edildi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mức quyền" + "value" : "Thao tác đã bị người dùng hủy" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "权限级别" + "value" : "操作已被用户取消" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "權限層級" + "value" : "使用者已取消操作" } } } }, - "Pick the type of database you want to connect to." : { + "Operation Failed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결할 데이터베이스 유형을 선택하십시오." + "value" : "작업 실패" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlanmak istediğiniz veritabanı türünü seçin." + "value" : "İşlem Başarısız" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn loại cơ sở dữ liệu bạn muốn kết nối." + "value" : "Thao tác thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选择要连接的数据库类型。" + "value" : "操作失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選擇你要連線的資料庫類型。" + "value" : "操作失敗" } } } }, - "Pin Result" : { + "Operation name from list_maintenance_operations" : { + + }, + "Operation names, sorted" : { + + }, + "Operation not permitted" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "결과 고정" + "value" : "작업이 허용되지 않음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sonucu Sabitle" + "value" : "İşleme izin verilmiyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ghim kết quả" + "value" : "Thao tác không được phép" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "固定结果" + "value" : "操作不被允许" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "釘選結果" + "value" : "操作不被允許" } } } }, - "Pink" : { + "Operation that ran" : { + + }, + "Operator" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "분홍색" + "value" : "연산자" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Pembe" + "value" : "Operator" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hồng" + "value" : "Toán tử" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "粉色" + "value" : "运算符" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "粉紅色" + "value" : "運算子" } } } }, - "Pipe |" : { + "Optimize" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "파이프 |" + "value" : "최적화" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dikey Çizgi |" + "value" : "Optimize Et" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dấu gạch đứng |" + "value" : "Tối ưu hoá" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "竖线 |" + "value" : "优化" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "直線 |" + "value" : "最佳化" } } } }, - "Plain text. Markdown is preserved as written." : { + "Optimize Query" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "일반 텍스트입니다. Markdown은 작성된 그대로 유지됩니다." + "value" : "쿼리 최적화" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Düz metin. Markdown yazıldığı gibi korunur." + "value" : "Optimize Query" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Văn bản thuần. Markdown được giữ nguyên như đã viết." + "value" : "Tối ưu truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "纯文本。Markdown 按原样保留。" + "value" : "优化查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "純文字。Markdown 按原樣保留。" + "value" : "最佳化查詢" } } } }, - "Plain-text accounting ledgers" : { + "Optimize table (merge parts)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "일반 텍스트 회계 원장" + "value" : "테이블 최적화(파트 병합)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Düz metin muhasebe defterleri" + "value" : "Tabloyu optimize et (parçaları birleştir)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sổ kế toán dạng văn bản thuần" + "value" : "Tối ưu hoá bảng (hợp nhất phần)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "纯文本记账账本" + "value" : "优化表(合并分区)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "純文字記帳帳本" + "value" : "最佳化資料表(合併分割區)" } } } }, - "Plan" : { - "comment" : "Label for the query plan in the result set.", - "isCommentAutoGenerated" : true, + "Optimize this SQL query for better performance:\n\n```sql\n%@\n```" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플랜" + "value" : "더 나은 성능을 위해 다음 SQL 쿼리를 최적화하십시오:\n\n```sql\n%@\n```" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Plan" + "value" : "Optimize this SQL query for better performance:\n\n```sql\n%@\n```" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kế hoạch" + "value" : "Đề xuất tối ưu hóa cho câu truy vấn SQL sau:\n\n```sql\n%@\n```" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "执行计划" + "value" : "优化以下 SQL 查询以提升性能:\n\n```sql\n%@\n```" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "執行計畫" + "value" : "最佳化以下 SQL 查詢以提升效能:\n\n```sql\n%@\n```" } } } }, - "Plan: %@" : { + "Optimize with AI" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플랜: %@" + "value" : "AI로 최적화" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Plan: %@" + "value" : "AI ile İyileştir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gói: %@" + "value" : "Tối ưu với AI" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "套餐:%@" + "value" : "AI 优化" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "方案:%@" + "value" : "以 AI 最佳化" } } } }, - "Planning: %.3fms" : { + "Option as Meta key" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "계획 수립: %.3fms" + "value" : "Option 키를 Meta 키로 사용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Planlama: %.3fms" + "value" : "Option tuşunu Meta olarak kullan" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lập kế hoạch: %.3fms" + "value" : "Dùng Option làm phím Meta" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "规划: %.3fms" + "value" : "将 Option 用作 Meta 键" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "規劃:%.3fms" + "value" : "將 Option 作為 Meta 鍵" } } } }, - "Please select a column" : { + "Option key to pass in 'options'" : { + + }, + "Optional" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열을 선택하십시오" + "value" : "선택 사항" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Lütfen bir sütun seçin" + "value" : "İsteğe bağlı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Vui lòng chọn một cột" + "value" : "Tùy chọn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "请选择一列" + "value" : "可选" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "請選擇一個欄位" + "value" : "選用" } } } }, - "Plugin" : { - "comment" : "Plugin is a technical term", + "Optional description" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플러그인" + "value" : "설명(선택 사항)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklenti" + "value" : "Optional description" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Plugin" + "value" : "Mô tả tùy chọn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "插件" + "value" : "可选描述" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "外掛" + "value" : "選填描述" } } } }, - "Plugin '%@' has an invalid descriptor: %@" : { + "Optional one-line description" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Plugin '%1$@' has an invalid descriptor: %2$@" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플러그인 '%1$@'의 설명자가 올바르지 않습니다: %2$@" + "value" : "한 줄 설명(선택 사항)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "'%@' eklentisinin tanımlayıcısı geçersiz: %@" + "value" : "İsteğe bağlı tek satırlık açıklama" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Plugin '%@' có mô tả không hợp lệ: %@" + "value" : "Mô tả một dòng (tùy chọn)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "插件 '%@' 的描述符无效:%@" + "value" : "可选的单行描述" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "外掛「%1$@」的描述元無效:%2$@" + "value" : "選用的單行描述" } } } }, - "Plugin Installation Failed" : { + "Optional. A key from the Cursor dashboard is used instead of signing in." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플러그인 설치 실패" + "value" : "선택 사항입니다. 로그인하는 대신 Cursor 대시보드에서 발급한 키를 사용합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklenti Kurulumu Başarısız" + "value" : "İsteğe bağlı. Giriş yapmak yerine Cursor panosundan bir anahtar kullanılır." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cài đặt Plugin thất bại" + "value" : "Tùy chọn. Một khóa từ bảng điều khiển Cursor được dùng thay cho đăng nhập." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "插件安装失败" + "value" : "可选。使用来自 Cursor 仪表板的密钥,而不是登录。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "外掛安裝失敗" + "value" : "選用。使用來自 Cursor 儀表板的金鑰,而非登入。" } } } }, - "Plugin Not Installed" : { + "Optional. Set this to reach a database that only listens on a Unix socket." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플러그인이 설치되지 않음" + "value" : "선택 사항입니다. Unix 소켓에서만 수신 대기하는 데이터베이스에 연결하려면 설정하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklenti Kurulu Değil" + "value" : "İsteğe bağlı. Yalnızca Unix soketi dinleyen bir veritabanına erişmek için ayarlayın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Plugin chưa được cài đặt" + "value" : "Tùy chọn. Đặt giá trị này để truy cập cơ sở dữ liệu chỉ lắng nghe trên Unix socket." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "插件未安装" + "value" : "可选。当数据库只监听 Unix socket 时设置此项。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "外掛未安裝" + "value" : "選填。當資料庫只監聽 Unix socket 時設定此項。" } } } }, - "Plugin Update Failed" : { + "Options" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플러그인 업데이트 실패" + "value" : "옵션" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklenti Güncellemesi Başarısız" + "value" : "Seçenekler" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cập nhật plugin thất bại" + "value" : "Tùy chọn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "插件更新失败" + "value" : "选项" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "外掛更新失敗" + "value" : "選項" } } } }, - "Plugin checksum does not match expected value" : { + "Options the engine offers" : { + + }, + "OR" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플러그인 체크섬이 예상 값과 일치하지 않습니다" + "value" : "OR" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklenti sağlama toplamı beklenen değerle eşleşmiyor" + "value" : "OR" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Checksum plugin không khớp với giá trị mong đợi" + "value" : "OR" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "插件校验和与期望值不匹配" + "value" : "OR" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "外掛總和檢查碼與預期值不符" + "value" : "OR" } } } }, - "Plugin code signature verification failed: %@" : { + "Oracle" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플러그인 코드 서명 검증 실패: %@" + "value" : "Oracle" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklenti kod imzası doğrulaması başarısız: %@" + "value" : "Oracle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xác minh chữ ký mã plugin thất bại: %@" + "value" : "Oracle" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "插件代码签名验证失败:%@" + "value" : "Oracle" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "外掛程式碼簽章驗證失敗:%@" + "value" : "Oracle" } } } }, - "Plugin does not contain a compatible binary for this architecture" : { + "OracleNIO has no TLS fallback. Preferred connects in plain TCP. Use Required for TCPS to Oracle Autonomous Database." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 아키텍처와 호환되는 바이너리가 플러그인에 없습니다" + "value" : "OracleNIO에는 TLS 폴백이 없습니다. 선호는 평문 TCP로 연결합니다. Oracle Autonomous Database에 TCPS로 연결하려면 필수를 사용하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklenti bu mimari için uyumlu bir ikili dosya içermiyor" + "value" : "OracleNIO'da TLS geri dönüşü yoktur. Tercih Edilen düz TCP ile bağlanır. Oracle Autonomous Database'e TCPS bağlantısı için Zorunlu kullanın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Plugin không chứa tập tin nhị phân tương thích cho kiến trúc này" + "value" : "OracleNIO không có cơ chế dự phòng TLS. Preferred kết nối bằng TCP thường. Dùng Required cho TCPS tới Oracle Autonomous Database." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "插件不包含兼容此架构的二进制文件" + "value" : "OracleNIO 没有 TLS 回退。“首选”将使用纯 TCP 连接。通过 TCPS 连接 Oracle Autonomous Database 时请使用“必需”。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "外掛未包含相容此架構的二進位檔" + "value" : "OracleNIO 沒有 TLS 回退。「首選」將使用純 TCP 連線。透過 TCPS 連線 Oracle Autonomous Database 時請使用「必要」。" } } } }, - "Plugin download failed: %@" : { + "Orange" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플러그인 다운로드 실패: %@" + "value" : "주황색" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Plugin indirme failed: %@" + "value" : "Turuncu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tải plugin thất bại: %@" + "value" : "Cam" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "插件下载失败:%@" + "value" : "橙色" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "外掛下載失敗:%@" + "value" : "橘色" } } } }, - "Plugin has active connections" : { + "Other" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플러그인에 활성 연결이 있습니다" + "value" : "기타" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklentinin etkin bağlantıları var" + "value" : "Other" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Plugin đang có kết nối hoạt động" + "value" : "Khác" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "插件有活跃的连接" + "value" : "其他" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "外掛有作用中的連線" + "value" : "其他" } } } }, - "Plugin installation failed: %@" : { + "Other Device" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플러그인 설치 실패: %@" + "value" : "기타 기기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklenti kurulumu başarısız: %@" + "value" : "Other Device" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cài đặt plugin thất bại: %@" + "value" : "Thiết bị khác" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "插件安装失败:%@" + "value" : "其他设备" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "外掛安裝失敗:%@" + "value" : "其他裝置" } } } }, - "Plugin not found" : { + "Other…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플러그인을 찾을 수 없음" + "value" : "기타…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklenti bulunamadı" + "value" : "Diğer…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy plugin" + "value" : "Khác…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未找到插件" + "value" : "其他…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "找不到外掛" + "value" : "其他…" } } } }, - "Plugin not loaded" : { + "Outcome" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플러그인이 로드되지 않음" + "value" : "결과" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklenti yüklenmedi" + "value" : "Sonuç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Plugin chưa được tải" + "value" : "Kết quả" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "插件未加载" + "value" : "结果" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "外掛未載入" + "value" : "結果" } } } }, - "Plugin not loaded: %@. %@" : { + "Outcome: %@" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Plugin not loaded: %1$@. %2$@" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플러그인이 로드되지 않음: %1$@. %2$@" + "value" : "결과: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklenti yüklenmedi: %1$@. %2$@" + "value" : "Sonuç: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Plugin chưa được tải: %1$@. %2$@" + "value" : "Kết quả: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "插件未加载:%1$@。%2$@" + "value" : "结果:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "外掛未載入:%1$@。%2$@" + "value" : "結果:%@" } } } }, - "Plugin registry requires a newer app version" : { + "Outdent" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플러그인 레지스트리를 사용하려면 더 최신 버전의 앱이 필요합니다" + "value" : "내어쓰기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklenti deposu daha yeni bir uygulama sürümü gerektiriyor" + "value" : "Girintiyi Azalt" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kho plugin yêu cầu phiên bản ứng dụng mới hơn" + "value" : "Giảm thụt lề" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "插件注册表需要更新版本的应用" + "value" : "减少缩进" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "外掛註冊需要更新版本的應用程式" + "value" : "減少縮排" } } } }, - "Plugin requires PluginKit version %d, but app provides version %d" : { + "Outgoing foreign keys" : { + + }, + "Output format" : { + + }, + "Output of EXPLAIN for this query, if you have it" : { + + }, + "Output of EXPLAIN or EXPLAIN ANALYZE for this query" : { + + }, + "Output truncated for display" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Plugin requires PluginKit version %1$d, but app provides version %2$d" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플러그인에는 PluginKit %1$d 버전이 필요하지만 앱에서 제공하는 버전은 %2$d입니다" + "value" : "화면에 표시하기 위해 출력이 잘렸습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklenti PluginKit sürüm %d gerektiriyor, ancak uygulama sürüm %d sunuyor" + "value" : "Çıktı görüntüleme için kısaltıldı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Plugin yêu cầu PluginKit phiên bản %d, nhưng ứng dụng chỉ có phiên bản %d" + "value" : "Kết quả đầu ra bị cắt bớt để hiển thị" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "插件需要PluginKit版本%d,但应用提供版本%d" + "value" : "输出已截断显示" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "外掛需要 PluginKit 版本 %1$d,但應用程式提供的版本為 %2$d" + "value" : "輸出已截斷顯示" } } } }, - "Plugin requires PluginKit version %lld, but app provides version %lld" : { - "extractionState" : "stale", + "output_path must end in .%@ for this format." : { + + }, + "output_path must name a file inside the Downloads folder." : { + + }, + "output_path must not name a hidden file." : { + + }, + "Over an SSH tunnel, TablePro connects directly to the first host. Replica set failover is not available." : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Plugin requires PluginKit version %1$lld, but app provides version %2$lld" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플러그인에는 PluginKit %1$lld 버전이 필요하지만 앱에서 제공하는 버전은 %2$lld입니다" + "value" : "SSH 터널을 사용할 때 TablePro는 첫 번째 호스트에 직접 연결합니다. 복제본 세트 장애 조치는 사용할 수 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Plugin requires PluginKit version %lld, but app provides version %lld" + "value" : "SSH tüneli üzerinden TablePro doğrudan ilk sunucuya bağlanır. Replica set yük devretme kullanılamaz." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Plugin yêu cầu PluginKit phiên bản %lld, nhưng ứng dụng cung cấp phiên bản %lld" + "value" : "Qua đường hầm SSH, TablePro kết nối trực tiếp tới máy chủ đầu tiên. Không hỗ trợ chuyển đổi dự phòng replica set." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "插件需要 PluginKit 版本 %lld,但应用提供的版本为 %lld" + "value" : "通过 SSH 隧道时,TablePro 直接连接到第一个主机。无法使用副本集故障转移。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "外掛需要 PluginKit 版本 %1$lld,但應用程式提供的版本為 %2$lld" + "value" : "透過 SSH 通道時,TablePro 會直接連線到第一個主機。無法使用複本集容錯移轉。" } } } }, - "Plugin requires app version %@ or later, but current version is %@" : { + "Override auto-detected CLI paths per database type." : { + "extractionState" : "stale", "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Plugin requires app version %1$@ or later, but current version is %2$@" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플러그인에는 앱 버전 %1$@ 이상이 필요하지만 현재 버전은 %2$@입니다" + "value" : "데이터베이스 유형별로 자동 감지된 CLI 경로를 재정의합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklenti %@ veya sonrası bir uygulama sürümü gerektiriyor, mevcut sürüm ise %@" + "value" : "Veritabanı türüne göre otomatik algılanan CLI yollarını geçersiz kılın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Plugin yêu cầu ứng dụng phiên bản %@ trở lên, nhưng phiên bản hiện tại là %@" + "value" : "Ghi đè đường dẫn CLI tự phát hiện cho từng loại cơ sở dữ liệu." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "插件需要应用版本 %@ 或更高,但当前版本为 %@" + "value" : "按数据库类型覆盖自动检测的 CLI 路径。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "外掛需要應用程式版本 %1$@ 或更新版本,但目前版本為 %2$@" + "value" : "依資料庫型別覆寫自動偵測的 CLI 路徑。" } } } }, - "Plugin was built for PluginKit version %d; this release of TablePro needs version %d." : { + "Owning table, for a column match" : { + + }, + "Page" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Plugin was built for PluginKit version %1$d; this release of TablePro needs version %2$d." - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플러그인은 PluginKit %1$d 버전용으로 빌드되었지만 이 TablePro 릴리스에는 %2$d 버전이 필요합니다." + "value" : "페이지" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklenti, PluginKit %1$d sürümü için derlenmiş; TablePro'nun bu sürümü %2$d sürümünü gerektiriyor." + "value" : "Sayfa" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Plugin được xây dựng cho PluginKit phiên bản %1$d; bản phát hành TablePro này cần phiên bản %2$d." + "value" : "Trang" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "插件是为 PluginKit 版本 %1$d 构建的;此版本的 TablePro 需要版本 %2$d。" + "value" : "页" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "外掛是為 PluginKit 版本 %1$d 建置的;此版本的 TablePro 需要版本 %2$d。" + "value" : "頁" } } } }, - "Plugin was built with PluginKit version %d, but version %d is required. Please update the plugin." : { - "extractionState" : "stale", + "Page %d" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Plugin was built with PluginKit version %1$d, but version %2$d is required. Please update the plugin." - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플러그인은 PluginKit %1$d 버전으로 빌드되었지만 %2$d 버전이 필요합니다. 플러그인을 업데이트하십시오." + "value" : "%d페이지" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklenti PluginKit sürüm %d ile oluşturuldu, ancak sürüm %d gerekli. Lütfen eklentiyi güncelleyin." + "value" : "Sayfa %d" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Plugin được xây dựng với PluginKit phiên bản %d, nhưng yêu cầu phiên bản %d. Vui lòng cập nhật plugin." + "value" : "Trang %d" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "插件使用PluginKit版本%d构建,但需要版本%d。请更新插件。" + "value" : "第 %d 页" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "外掛是以 PluginKit 版本 %1$d 建置的,但需要版本 %2$d。請更新外掛。" + "value" : "第 %d 頁" } } } }, - "Plugin was built with PluginKit version %lld, but version %lld is required. Please update the plugin." : { - "extractionState" : "stale", + "Page %d of %d" : { "localizations" : { "en" : { "stringUnit" : { "state" : "new", - "value" : "Plugin was built with PluginKit version %1$lld, but version %2$lld is required. Please update the plugin." + "value" : "Page %1$d of %2$d" } }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플러그인은 PluginKit %1$lld 버전으로 빌드되었지만 %2$lld 버전이 필요합니다. 플러그인을 업데이트하십시오." + "value" : "페이지 %1$d / %2$d" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklenti PluginKit sürüm %lld ile oluşturuldu, ancak sürüm %lld gerekli. Lütfen eklentiyi güncelleyin." + "value" : "Sayfa %1$d / %2$d" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Plugin được xây dựng với PluginKit phiên bản %lld, nhưng cần phiên bản %lld. Vui lòng cập nhật plugin." + "value" : "Trang %1$d / %2$d" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "插件使用 PluginKit 版本 %lld 构建,但需要版本 %lld。请更新插件。" + "value" : "第 %1$d 页,共 %2$d 页" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "外掛是以 PluginKit 版本 %1$lld 建置的,但需要版本 %2$lld。請更新外掛。" + "value" : "第 %1$d 頁,共 %2$d 頁" } } } }, - "Plugins" : { + "Page %lld of %lld" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플러그인" + "value" : "페이지 %1$lld / %2$lld" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Plugins" + "value" : "Sayfa %1$lld / %2$lld" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Plugin" + "value" : "Trang %1$lld / %2$lld" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "插件" + "value" : "第 %1$lld 页,共 %2$lld 页" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "外掛" - } - } - } - }, - "Plugins signed by this developer stop loading the next time TablePro starts." : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "이 개발자가 서명한 플러그인은 다음에 TablePro를 시작할 때부터 로드되지 않습니다." + "value" : "第 %1$lld 頁,共 %2$lld 頁" } } } }, - "Point at the socket file itself, not the directory holding it." : { + "Page Count" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "소켓이 있는 디렉터리가 아니라 소켓 파일 자체를 지정하십시오." + "value" : "페이지 수" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Soket dosyasının kendisini gösterin, onu içeren dizini değil." + "value" : "Sayfa Sayısı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trỏ tới chính tệp socket, không phải thư mục chứa nó." + "value" : "Số trang" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "请指向 socket 文件本身,而不是它所在的目录。" + "value" : "页面数" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "請指向 socket 檔案本身,而不是它所在的目錄。" + "value" : "頁數" } } } }, - "Port" : { + "Page number" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "포트" + "value" : "페이지 번호" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Port" + "value" : "Sayfa numarası" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cổng" + "value" : "Số trang" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "端口" + "value" : "页码" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連接埠" + "value" : "頁碼" } } } }, - "Port 1455 is in use. Quit the Codex CLI or another sign-in and try again." : { + "Page Size" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "포트 1455가 사용 중입니다. Codex CLI 또는 다른 로그인 세션을 종료한 후 다시 시도하십시오." + "value" : "페이지 크기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "1455 portu kullanımda. Codex CLI’yi veya başka bir girişi kapatın ve tekrar deneyin." + "value" : "Sayfa Boyutu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cổng 1455 đang được sử dụng. Hãy thoát Codex CLI hoặc một phiên đăng nhập khác rồi thử lại." + "value" : "Kích thước trang" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "端口 1455 正在使用中。请退出 Codex CLI 或其他登录后重试。" + "value" : "页面大小" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連接埠 1455 正在使用中。請結束 Codex CLI 或其他登入後再試一次。" + "value" : "頁面大小" } } } }, - "Port is already in use. Try a different port or close the other process." : { + "Page size must be between %@ and %@" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Page size must be between %1$@ and %2$@" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "포트가 이미 사용 중입니다. 다른 포트를 사용하거나 다른 프로세스를 종료하십시오." + "value" : "페이지 크기는 %1$@에서 %2$@ 사이여야 합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Port zaten kullanımda. Farklı bir port deneyin veya diğer işlemi kapatın." + "value" : "Page size must be arasında %@ and %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cổng đã được sử dụng. Hãy thử cổng khác hoặc đóng tiến trình đang dùng." + "value" : "Kích thước trang phải nằm trong khoảng %1$@ đến %2$@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "端口已被占用。请尝试其他端口或关闭占用端口的进程。" + "value" : "页面大小必须在 %@ 和 %@ 之间" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連接埠已被佔用。請改用其他連接埠或關閉佔用的處理程序。" + "value" : "頁面大小必須介於 %1$@ 與 %2$@ 之間" } } } }, - "Potentially Dangerous Queries" : { - "extractionState" : "stale", + "pages" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "잠재적으로 위험한 쿼리" + "value" : "페이지" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Potentially Dangerous Queries" + "value" : "sayfa" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Truy vấn có thể nguy hiểm" + "value" : "trang" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "潜在危险查询" + "value" : "页" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "潛在危險查詢" + "value" : "頁" } } } }, - "Potentially Dangerous Query" : { - "extractionState" : "stale", + "Pagination" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "잠재적으로 위험한 쿼리" + "value" : "페이지 매김" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Potentially Dangerous Query" + "value" : "Pagination" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Truy vấn có thể nguy hiểm" + "value" : "Phân trang" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "潜在危险查询" + "value" : "分页" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "潛在危險查詢" + "value" : "分頁" } } } }, - "Pre-Connect Script" : { + "Pagination Settings" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 전 스크립트" + "value" : "페이지 매김 설정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı Öncesi Betik" + "value" : "Pagination Settings" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Script pre-connect" + "value" : "Cài đặt phân trang" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接前脚本" + "value" : "分页设置" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線前指令稿" + "value" : "分頁設定" } } } }, - "Pre-connect script failed (exit %d): %@" : { + "Pairing Failed" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Pre-connect script failed (exit %1$d): %2$@" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 전 스크립트 실패(종료 코드 %1$d): %2$@" + "value" : "페어링 실패" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı öncesi betik başarısız (çıkış %d): %@" + "value" : "Eşleştirme Başarısız" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tập lệnh tiền kết nối thất bại (exit %d): %@" + "value" : "Ghép nối thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接前脚本失败(退出码 %d):%@" + "value" : "配对失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線前指令稿失敗(退出碼 %1$d):%2$@" + "value" : "配對失敗" } } } }, - "Pre-connect script failed (exit %lld): %@" : { - "extractionState" : "stale", + "Panel State" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 전 스크립트 실패(종료 코드 %lld): %@" + "value" : "패널 상태" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Pre-connect script failed (exit %lld): %@" + "value" : "Panel Durumu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Script pre-connect thất bại (exit %lld): %@" + "value" : "Trạng thái bảng điều khiển" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接前脚本失败(退出码 %lld):%@" + "value" : "面板状态" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線前指令稿失敗(退出碼 %lld):%@" + "value" : "面板狀態" } } } }, - "Pre-connect script failed with exit code %d" : { + "Panels to read. Omit for all." : { + + }, + "Parameters" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 전 스크립트 실패(종료 코드 %d)" + "value" : "매개변수" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı öncesi betik %d çıkış koduyla başarısız oldu" + "value" : "Parametreler" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tập lệnh tiền kết nối thất bại với mã thoát %d" + "value" : "Tham số" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接前脚本失败,退出码 %d" + "value" : "参数" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線前指令稿失敗,退出碼 %d" + "value" : "參數" } } } }, - "Pre-connect script failed with exit code %lld" : { - "extractionState" : "stale", + "Parent Group" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 전 스크립트 실패(종료 코드 %lld)" + "value" : "상위 그룹" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Pre-connect script failed with exit code %lld" + "value" : "Üst Grup" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Script pre-connect thất bại với exit code %lld" + "value" : "Nhóm cha" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接前脚本失败,退出码 %lld" + "value" : "父分组" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線前指令稿失敗,退出碼 %lld" + "value" : "上層群組" } } } }, - "Pre-connect script timed out after 10 seconds" : { + "Parent table" : { + + }, + "Part Mutations" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 전 스크립트가 10초 후 시간 초과로 종료되었습니다" + "value" : "파트 뮤테이션" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı öncesi betik 10 saniye sonra zaman aşımına uğradı" + "value" : "Parça Mutasyonları" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Script pre-connect hết thời gian chờ sau 10 giây" + "value" : "Thay đổi phần" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接前脚本超时(10秒后)" + "value" : "分区变更" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線前指令稿在 10 秒後逾時" + "value" : "分割區異動" } } } }, - "Pre-connect script was cancelled" : { + "Partial files may remain on disk." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 전 스크립트가 취소되었습니다" + "value" : "일부 파일이 디스크에 남아 있을 수 있습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı öncesi betik iptal edildi" + "value" : "Diskte kısmi dosyalar kalabilir." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Script trước khi kết nối đã bị hủy" + "value" : "Các tệp dở dang có thể vẫn còn trên ổ đĩa." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接前脚本已取消" + "value" : "部分文件可能仍留在磁盘上。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線前指令稿已取消" + "value" : "磁碟上可能殘留部分檔案。" } } } }, - "Precision" : { - "extractionState" : "stale", + "Partial index predicate" : { + + }, + "Partition" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "정밀도" + "value" : "파티션" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Precision" + "value" : "Partition" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Độ chính xác" + "value" : "Phân vùng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "精度" + "value" : "分区" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "精確度" + "value" : "分割區" } } } }, - "Precision:" : { - "extractionState" : "stale", + "Partitioned Table" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "정밀도:" + "value" : "파티션 테이블" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Precision:" + "value" : "Bölümlenmiş Tablo" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Độ chính xác:" + "value" : "Bảng phân vùng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "精度:" + "value" : "分区表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "精確度:" + "value" : "分割資料表" } } } }, - "Preferred" : { + "Partly granted" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "선호" + "value" : "일부 권한이 부여됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tercih Edilen" + "value" : "Kısmen verildi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ưu tiên" + "value" : "Cấp một phần" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "首选" + "value" : "部分授予" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "偏好" + "value" : "部分授予" } } } }, - "Preferred connects in plain TCP for this driver. Use Required to enforce TCPS." : { + "Pass 'query' or 'tables', not both." : { + + }, + "Pass 'sql_table' to name the table the INSERT statements target." : { + + }, + "Pass at least one column." : { + + }, + "Pass at least one identifier or literal." : { + + }, + "Pass at least one row." : { + + }, + "Pass at least one table." : { + + }, + "Pass either 'query' or 'tables'." : { + + }, + "Passphrase" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 드라이버에서 선호는 평문 TCP로 연결합니다. TCPS를 강제하려면 필수를 사용하십시오." + "value" : "암호 구문" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu sürücüde Tercih Edilen düz TCP ile bağlanır. TCPS'yi zorunlu kılmak için Zorunlu kullanın." + "value" : "Passphrase" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Với driver này, Preferred kết nối bằng TCP thường. Dùng Required để buộc dùng TCPS." + "value" : "Cụm mật khẩu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "对于此驱动,“首选”将使用纯 TCP 连接。请使用“必需”来强制 TCPS。" + "value" : "密码短语" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "對於此驅動程式,「首選」將使用純 TCP 連線。請使用「必要」來強制 TCPS。" + "value" : "通關密語" } } } }, - "Preferred performs a 2-pass connect: tries TLS first, falls back to plain only on SSL handshake errors. Required by Cloud SQL and Azure MySQL." : { + "Passphrase (8+ characters)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "선호는 2단계 연결을 수행합니다. 먼저 TLS를 시도하고 SSL 핸드셰이크 오류가 발생한 경우에만 평문 연결로 전환합니다. Cloud SQL과 Azure MySQL에는 필수를 사용해야 합니다." + "value" : "암호 구문(8자 이상)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tercih Edilen 2 aşamalı bağlanır: önce TLS dener, yalnızca SSL el sıkışma hatalarında düz bağlantıya döner. Cloud SQL ve Azure MySQL için Zorunlu gerekir." + "value" : "Parola (8+ karakter)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Preferred kết nối 2 bước: thử TLS trước, chỉ chuyển sang kết nối thường khi gặp lỗi bắt tay SSL. Cloud SQL và Azure MySQL yêu cầu Required." + "value" : "Cụm mật khẩu (8+ ký tự)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "“首选”执行两阶段连接:先尝试 TLS,仅在 SSL 握手出错时回退到明文。Cloud SQL 和 Azure MySQL 要求使用“必需”。" + "value" : "密码短语(8 个以上字符)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "「首選」執行兩階段連線:先嘗試 TLS,僅在 SSL 交握出錯時回退到明文。Cloud SQL 與 Azure MySQL 要求使用「必要」。" + "value" : "通關密語(8 個以上字)" } } } }, - "Preferred requests TLS; the server decides. Required by SQL Server 2022 and Azure SQL Database." : { + "Passphrases do not match" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "선호는 TLS를 요청하며 서버가 사용 여부를 결정합니다. SQL Server 2022와 Azure SQL Database에는 필수를 사용해야 합니다." + "value" : "암호 구문이 일치하지 않음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tercih Edilen TLS ister; karar sunucunundur. SQL Server 2022 ve Azure SQL Database için Zorunlu gerekir." + "value" : "Parolalar eşleşmiyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Preferred yêu cầu TLS; máy chủ quyết định. SQL Server 2022 và Azure SQL Database yêu cầu Required." + "value" : "Cụm mật khẩu không khớp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "“首选”会请求 TLS,由服务器决定。SQL Server 2022 和 Azure SQL Database 要求使用“必需”。" + "value" : "密码短语不匹配" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "「首選」會請求 TLS,由伺服器決定。SQL Server 2022 與 Azure SQL Database 要求使用「必要」。" + "value" : "通關密語不相符" } } } }, - "Preferred tries TLS first, falls back to plain. Matches psql and DataGrip defaults. Required by AWS RDS, Cloud SQL, Heroku, Supabase, Neon." : { + "password" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "선호는 먼저 TLS를 시도하고 평문 연결로 전환합니다. psql 및 DataGrip 기본값과 같습니다. AWS RDS, Cloud SQL, Heroku, Supabase 및 Neon에는 필수를 사용해야 합니다." + "value" : "암호" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tercih Edilen önce TLS dener, olmazsa düz bağlantıya döner. psql ve DataGrip varsayılanlarıyla aynıdır. AWS RDS, Cloud SQL, Heroku, Supabase ve Neon için Zorunlu gerekir." + "value" : "şifre" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Preferred thử TLS trước, chuyển sang kết nối thường nếu thất bại. Giống mặc định của psql và DataGrip. AWS RDS, Cloud SQL, Heroku, Supabase, Neon yêu cầu Required." + "value" : "mật khẩu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "“首选”先尝试 TLS,失败后回退到明文,与 psql 和 DataGrip 的默认行为一致。AWS RDS、Cloud SQL、Heroku、Supabase、Neon 要求使用“必需”。" + "value" : "密码" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "「Preferred」會先嘗試 TLS,失敗後改用純文字連線,與 psql 和 DataGrip 的預設行為一致。AWS RDS、Cloud SQL、Heroku、Supabase、Neon 要求使用「Required」。" + "value" : "密碼" } } } }, - "Preparing the session" : { + "Password" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "세션 준비 중" + "value" : "암호" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Oturum hazırlanıyor" + "value" : "Parola" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang chuẩn bị phiên" + "value" : "Mật khẩu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在准备会话" + "value" : "密码" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在準備工作階段" + "value" : "密碼" } } } }, - "Preserve all values as strings" : { - "extractionState" : "stale", + "Password command failed (exit %d): %@" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Password command failed (exit %1$d): %2$@" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 값을 문자열로 유지" + "value" : "암호 명령 실패(종료 코드 %1$d): %2$@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Preserve all values as strings" + "value" : "Parola komutu başarısız oldu (çıkış %1$d): %2$@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giữ nguyên tất cả giá trị dưới dạng chuỗi" + "value" : "Lệnh mật khẩu thất bại (mã thoát %1$d): %2$@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将所有值保留为字符串" + "value" : "密码命令失败(退出码 %1$d):%2$@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將所有值保留為字串" + "value" : "密碼命令失敗(退出碼 %1$d):%2$@" } } } }, - "Preset Name" : { + "Password command failed with exit code %d" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "프리셋 이름" + "value" : "암호 명령 실패(종료 코드 %d)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ön Ayar Adı" + "value" : "Parola komutu %d çıkış koduyla başarısız oldu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên mẫu đặt trước" + "value" : "Lệnh mật khẩu thất bại với mã thoát %d" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "预设名称" + "value" : "密码命令失败,退出码 %d" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "預設集名稱" + "value" : "密碼指令失敗,結束代碼 %d" } } } }, - "Pretty Print" : { + "Password command produced too much output" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "보기 좋게 출력" + "value" : "암호 명령의 출력이 너무 많습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Biçimlendirerek Göster" + "value" : "Parola komutu çok fazla çıktı üretti" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Định dạng đẹp" + "value" : "Lệnh mật khẩu tạo ra quá nhiều dữ liệu đầu ra" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "格式化输出" + "value" : "密码命令产生的输出过多" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "美化輸出" + "value" : "密碼指令產生的輸出過多" } } } }, - "Pretty print (formatted output)" : { - "extractionState" : "stale", + "Password command timed out after 30 seconds" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "보기 좋게 출력(서식이 지정된 출력)" + "value" : "암호 명령이 30초 후 시간 초과로 종료되었습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Pretty print (formatted output)" + "value" : "Parola komutu 30 saniye sonra zaman aşımına uğradı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "In đẹp (đầu ra có định dạng)" + "value" : "Lệnh mật khẩu hết thời gian chờ sau 30 giây" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "格式化输出(带格式)" + "value" : "密码命令在 30 秒后超时" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "美化輸出(格式化輸出)" + "value" : "密碼指令在 30 秒後逾時" } } } }, - "Prevent CSV formula injection by prefixing values starting with =, +, -, @ with a single quote" : { - "extractionState" : "stale", + "Password file not found: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "=, +, -, @로 시작하는 값 앞에 작은따옴표(')를 붙여 CSV 수식 삽입을 방지합니다" + "value" : "암호 파일을 찾을 수 없음: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Prevent CSV formula injection by prefixing values starting with =, +, -, @ with a single quote" + "value" : "Parola dosyası bulunamadı: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ngăn chặn chèn công thức CSV bằng cách thêm dấu nháy đơn trước các giá trị bắt đầu bằng =, +, -, @" + "value" : "Không tìm thấy tệp mật khẩu: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "通过在以 =、+、-、@ 开头的值前添加单引号来防止 CSV 公式注入" + "value" : "未找到密码文件:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在以 =、+、-、@ 開頭的值前加上單引號,以防止 CSV 公式注入" + "value" : "找不到密碼檔案:%@" } } } }, - "Prevent write operations (INSERT, UPDATE, DELETE, DROP, etc.)" : { - "extractionState" : "stale", + "Password found" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쓰기 작업(INSERT, UPDATE, DELETE, DROP 등)을 방지합니다" + "value" : "암호 찾음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Prevent write operations (INSERT, UPDATE, DELETE, DROP, etc.)" + "value" : "Parola bulundu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ngăn chặn thao tác ghi (INSERT, UPDATE, DELETE, DROP, v.v.)" + "value" : "Đã tìm thấy mật khẩu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "禁止写操作(INSERT、UPDATE、DELETE、DROP 等)" + "value" : "已找到密码" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "禁止寫入操作(INSERT、UPDATE、DELETE、DROP 等)" + "value" : "已找到密碼" } } } }, - "Preview" : { + "Password is sent via keyboard-interactive challenge-response." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "미리보기" + "value" : "암호는 키보드 대화형 챌린지-응답을 통해 전송됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Önizleme" + "value" : "Parola, keyboard-interactive soru-cevap yöntemiyle gönderilir." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xem trước" + "value" : "Mật khẩu được gửi qua keyboard-interactive challenge-response." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "预览" + "value" : "密码通过 keyboard-interactive 质询-响应方式发送。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "預覽" + "value" : "密碼透過 keyboard-interactive 質詢-回應方式傳送。" } } } }, - "Preview %@" : { + "Password Required" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 미리보기" + "value" : "암호 필요" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Önizleme %@" + "value" : "Şifre Gerekli" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xem trước %@" + "value" : "Yêu cầu mật khẩu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "预览 %@" + "value" : "需要密码" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "預覽 %@" + "value" : "需要密碼" } } } }, - "Preview %@ (⌘⇧P)" : { - "extractionState" : "stale", + "Password:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 미리보기(⌘⇧P)" + "value" : "암호:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Önizleme %@ (⌘⇧P)" + "value" : "Parola:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xem trước %@ (⌘⇧P)" + "value" : "Mật khẩu:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "预览 %@ (⌘⇧P)" + "value" : "密码:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "預覽 %@ (⌘⇧P)" + "value" : "密碼:" } } } }, - "Preview Commands" : { + "Passwords will be encrypted with the passphrase you provide." : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "명령 미리보기" + "value" : "암호는 입력한 암호 구문으로 암호화됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Preview Commands" + "value" : "Parolalar, sağladığınız parola ile şifrelenecektir." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xem trước lệnh" + "value" : "Mật khẩu sẽ được mã hóa bằng cụm mật khẩu bạn cung cấp." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "预览命令" + "value" : "密码将使用您提供的密码短语进行加密。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "預覽命令" + "value" : "密碼將使用你提供的通關密語加密。" } } } }, - "Preview Commands (⌘⇧P)" : { - "extractionState" : "stale", + "Passwords:" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Passwords:" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "명령 미리보기(⌘⇧P)" + "value" : "암호:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Preview Commands (⌘⇧P)" + "value" : "Parolalar:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xem trước lệnh (⌘⇧P)" + "value" : "Mật khẩu:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "预览命令 (⌘⇧P)" + "value" : "密码:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "預覽命令 (⌘⇧P)" + "value" : "密碼:" } } } }, - "Preview FK Reference" : { + "Paste" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "FK 참조 미리보기" + "value" : "붙여넣기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "FK Referansını Önizle" + "value" : "Yapıştır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xem trước tham chiếu FK" + "value" : "Dán" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "预览外键引用" + "value" : "粘贴" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "預覽外鍵參照" + "value" : "貼上" } } } }, - "Preview MQL" : { + "Paste a connection URL to auto-fill the form fields." : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "MQL 미리보기" + "value" : "연결 URL을 붙여넣으면 양식 필드가 자동으로 채워집니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Preview MQL" + "value" : "Paste a connection URL to auto-fill the form fields." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xem trước MQL" + "value" : "Dán URL kết nối để tự động điền các trường trong biểu mẫu." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "预览 MQL" + "value" : "粘贴连接 URL 以自动填充表单字段。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "預覽 MQL" + "value" : "貼上連線 URL 以自動填入表單欄位。" } } } }, - "Preview MQL (⌘⇧P)" : { - "extractionState" : "stale", + "Paste a connection URL to detect type and pre-fill fields" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "MQL 미리보기(⌘⇧P)" + "value" : "연결 URL을 붙여넣으면 유형을 감지하여 필드를 미리 채웁니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Preview MQL (⌘⇧P)" + "value" : "Türü algılamak ve alanları önceden doldurmak için bir bağlantı URL'si yapıştırın" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xem trước MQL (⌘⇧P)" + "value" : "Dán URL kết nối để nhận diện loại và điền sẵn các trường" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "预览 MQL (⌘⇧P)" + "value" : "粘贴连接 URL 以检测类型并预填字段" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "預覽 MQL (⌘⇧P)" + "value" : "貼上連線 URL 以偵測類型並預先填入欄位" } } } }, - "Preview Query" : { + "Paste a connection URL. We'll detect the database type and pre-fill the form." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 미리보기" + "value" : "연결 URL을 붙여넣으십시오. 데이터베이스 유형을 감지하여 양식을 미리 채웁니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorguyu Önizle" + "value" : "Bir bağlantı URL'si yapıştırın. Veritabanı türünü algılayıp formu önceden dolduracağız." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xem trước truy vấn" + "value" : "Dán URL kết nối. Ứng dụng sẽ nhận diện loại cơ sở dữ liệu và điền sẵn biểu mẫu." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "预览查询" + "value" : "粘贴连接 URL,将自动检测数据库类型并预填表单。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "預覽查詢" + "value" : "貼上連線 URL,將自動偵測資料庫類型並預先填入表單。" } } } }, - "Preview Referenced Row" : { + "Paste Cells" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "참조 대상 행 미리보기" + "value" : "셀 붙여넣기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Referans Satırı Önizle" + "value" : "Hücreleri Yapıştır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xem trước dòng tham chiếu" + "value" : "Dán ô" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "预览引用行" + "value" : "粘贴单元格" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "預覽參照列" + "value" : "貼上儲存格" } } } }, - "Preview SQL" : { + "Paste the JSON below and save" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SQL 미리보기" + "value" : "아래 JSON을 붙여넣고 저장하십시오" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SQL Önizleme" + "value" : "Aşağıdaki JSON'u yapıştırın ve kaydedin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xem trước SQL" + "value" : "Dán JSON dưới đây và lưu lại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "预览 SQL" + "value" : "粘贴下方 JSON 并保存" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "預覽 SQL" + "value" : "在下方貼上 JSON 並儲存" } } } }, - "Preview SQL (⌘⇧P)" : { + "Paste your CREATE TABLE statement below:" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SQL 미리보기(⌘⇧P)" + "value" : "아래에 CREATE TABLE 문을 붙여넣으십시오:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Preview SQL (⌘⇧P)" + "value" : "Paste your CREATE TABLE statement below:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xem trước SQL (⌘⇧P)" + "value" : "Dán câu lệnh CREATE TABLE bên dưới:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "预览 SQL (⌘⇧P)" + "value" : "在下方粘贴 CREATE TABLE 语句:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "預覽 SQL (⌘⇧P)" + "value" : "在下方貼上你的 CREATE TABLE 陳述式:" } } } }, - "Preview Schema Changes" : { - "extractionState" : "stale", + "Path" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "스키마 변경 사항 미리보기" + "value" : "경로" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Preview Schema Changes" + "value" : "Yol" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xem trước thay đổi cấu trúc" + "value" : "Đường dẫn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "预览结构更改" + "value" : "路径" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "預覽綱要變更" + "value" : "路徑" } } } }, - "Previous Page" : { + "Pause" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이전 페이지" + "value" : "일시 정지" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Önceki Sayfa" + "value" : "Duraklat" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trang trước" + "value" : "Tạm dừng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "上一页" + "value" : "暂停" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "上一頁" + "value" : "暫停" } } } }, - "Previous Page (⌘[)" : { - "extractionState" : "stale", + "Pause Query History" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이전 페이지(⌘[)" + "value" : "쿼리 기록 일시 정지" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Previous Page (⌘[)" + "value" : "Sorgu Geçmişini Duraklat" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trang trước (⌘[)" + "value" : "Tạm dừng lịch sử truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "上一页 (⌘[)" + "value" : "暂停查询历史" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "上一頁 (⌘[)" + "value" : "暫停查詢歷史" } } } }, - "Previous Result" : { + "Paused after %d tool calls." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이전 결과" + "value" : "도구 호출 %d회 후 일시 정지되었습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Önceki Sonuç" + "value" : "%d araç çağrısından sonra duraklatıldı." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết quả trước" + "value" : "Đã tạm dừng sau %d lần gọi công cụ." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "上一个结果" + "value" : "已在 %d 次工具调用后暂停。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "上一個結果" + "value" : "已在 %d 次工具呼叫後暫停。" } } } }, - "Previous Statement" : { + "Pending approval for" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이전 문" + "value" : "승인 대기 중:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Önceki İfade" + "value" : "Onay bekleniyor:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Câu lệnh trước" + "value" : "Đang chờ phê duyệt cho" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "上一条语句" + "value" : "等待批准:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "上一個陳述式" + "value" : "等待核准:" } } } }, - "Previous Tab" : { - "extractionState" : "stale", + "pending delete" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이전 탭" + "value" : "삭제 대기 중" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Previous Tab" + "value" : "silinmeyi bekliyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tab trước" + "value" : "chờ xóa" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "上一个标签页" + "value" : "待删除" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "上一個分頁" + "value" : "待刪除" } } } }, - "Previous Tab (Alt)" : { - "extractionState" : "stale", + "pending truncate" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이전 탭(Alt)" + "value" : "TRUNCATE 대기 중" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Previous Tab (Alt)" + "value" : "boşaltılmayı bekliyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tab trước (Alt)" + "value" : "chờ truncate" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "上一个标签页 (Alt)" + "value" : "待清空" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "上一個分頁 (Alt)" - } - } - } - }, - "Previous match" : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "이전 일치 항목" + "value" : "待清空" } } } }, - "Previous page" : { + "Period" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이전 페이지" + "value" : "기간" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Önceki sayfa" + "value" : "Period" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trang trước" + "value" : "Chu kỳ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "上一页" + "value" : "周期" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "上一頁" + "value" : "週期" } } } }, - "Primary" : { - "extractionState" : "stale", + "Period to summarize: today, this_week, this_month, or all" : { + + }, + "Permission" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Primary" + "value" : "권한" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Primary" + "value" : "İzin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Primary" + "value" : "Quyền" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Primary" + "value" : "权限" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Primary" + "value" : "權限" } } } }, - "Primary Group Name" : { + "Permission Level" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "프라이머리 그룹 이름" + "value" : "권한 수준" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Birincil Grup Adı" + "value" : "İzin Düzeyi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên nhóm primary" + "value" : "Mức quyền" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "主节点组名称" + "value" : "权限级别" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "主節點群組名稱" + "value" : "權限層級" } } } }, - "Primary Key" : { + "PHP — %@" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기본 키" + "value" : "PHP — %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Birincil Anahtar" + "value" : "PHP — %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khoá chính" + "value" : "PHP — %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "主键" + "value" : "PHP — %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "主鍵" + "value" : "PHP — %@" } } } }, - "Primary Preferred" : { - "extractionState" : "stale", + "PHP Serialized" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Primary Preferred" + "value" : "PHP 직렬화" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Primary Preferred" + "value" : "PHP Serileştirilmiş" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Primary Preferred" + "value" : "PHP Serialized" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Primary Preferred" + "value" : "PHP 序列化" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Primary Preferred" + "value" : "PHP 序列化" } } } }, - "Primary Text" : { + "PHP Viewer" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기본 텍스트" + "value" : "PHP 뷰어" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Birincil Metin" + "value" : "PHP Görüntüleyici" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Văn bản chính" + "value" : "Trình xem PHP" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "主要文本" + "value" : "PHP 查看器" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "主要文字" + "value" : "PHP 檢視器" } } } }, - "Primary key" : { + "PHP: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기본 키" + "value" : "PHP: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Birincil anahtar" + "value" : "PHP: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khoá chính" + "value" : "PHP: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "主键" + "value" : "PHP:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "主鍵" + "value" : "PHP:%@" } } } }, - "Priority %d" : { + "Pick the type of database you want to connect to." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "우선순위 %d" + "value" : "연결할 데이터베이스 유형을 선택하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Öncelik %d" + "value" : "Bağlanmak istediğiniz veritabanı türünü seçin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Độ ưu tiên %d" + "value" : "Chọn loại cơ sở dữ liệu bạn muốn kết nối." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "优先级 %d" + "value" : "选择要连接的数据库类型。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "優先順序 %d" + "value" : "選擇你要連線的資料庫類型。" } } } }, - "Privacy" : { + "PID" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "개인정보 보호" + "value" : "PID" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Privacy" + "value" : "PID" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Quyền riêng tư" + "value" : "PID" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "隐私" + "value" : "PID" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "隱私" + "value" : "PID" } } } }, - "Private Key" : { + "Pin Result" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "개인 키" + "value" : "결과 고정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Özel Anahtar" + "value" : "Sonucu Sabitle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khóa riêng tư" + "value" : "Ghim kết quả" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "私钥" + "value" : "固定结果" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "私鑰" + "value" : "釘選結果" } } } }, - "Private Key File" : { + "Pink" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "개인 키 파일" + "value" : "분홍색" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Özel Anahtar Dosyası" + "value" : "Pembe" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tệp khóa riêng tư" + "value" : "Hồng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "私钥文件" + "value" : "粉色" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "私密金鑰檔案" + "value" : "粉紅色" } } } }, - "Private Key Passphrase" : { + "Pipe |" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "개인 키 암호 구문" + "value" : "파이프 |" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Özel Anahtar Parolası" + "value" : "Dikey Çizgi |" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cụm mật khẩu khóa riêng tư" + "value" : "Dấu gạch đứng |" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "私钥口令" + "value" : "竖线 |" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "私密金鑰密碼" + "value" : "直線 |" } } } }, - "Privilege" : { + "Plain text. Markdown is preserved as written." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "권한" + "value" : "일반 텍스트입니다. Markdown은 작성된 그대로 유지됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yetki" + "value" : "Düz metin. Markdown yazıldığı gibi korunur." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Quyền" + "value" : "Văn bản thuần. Markdown được giữ nguyên như đã viết." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "权限" + "value" : "纯文本。Markdown 按原样保留。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "權限" + "value" : "純文字。Markdown 按原樣保留。" } } } }, - "Privileges" : { + "Plain-text accounting ledgers" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "권한" + "value" : "일반 텍스트 회계 원장" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yetkiler" + "value" : "Düz metin muhasebe defterleri" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Quyền" + "value" : "Sổ kế toán dạng văn bản thuần" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "权限" + "value" : "纯文本记账账本" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "權限" + "value" : "純文字記帳帳本" } } } }, - "Pro" : { + "Plan" : { + "comment" : "Label for the query plan in the result set.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Pro" + "value" : "플랜" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Pro" + "value" : "Plan" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Pro" + "value" : "Kế hoạch" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Pro" + "value" : "执行计划" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Pro" + "value" : "執行計畫" } } } }, - "Pro License Required" : { - "extractionState" : "stale", + "Plan: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Pro 라이선스 필요" + "value" : "플랜: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Pro Lisans Gerekli" + "value" : "Plan: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Yêu cầu giấy phép Pro" + "value" : "Gói: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "需要 Pro 许可证" + "value" : "套餐:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "需要 Pro 授權" + "value" : "方案:%@" } } } }, - "Pro feature" : { + "Planning time" : { + + }, + "Planning: %.3fms" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Pro 기능" + "value" : "계획 수립: %.3fms" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Pro özelliği" + "value" : "Planlama: %.3fms" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tính năng Pro" + "value" : "Lập kế hoạch: %.3fms" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Pro 功能" + "value" : "规划: %.3fms" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Pro 功能" + "value" : "規劃:%.3fms" } } } }, - "Pro license required for iCloud Sync" : { + "Please select a column" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud 동기화에는 Pro 라이선스가 필요합니다" + "value" : "열을 선택하십시오" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud Eşitlemesi için Pro lisans gereklidir" + "value" : "Lütfen bir sütun seçin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cần giấy phép Pro để sử dụng iCloud Sync" + "value" : "Vui lòng chọn một cột" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud 同步需要 Pro 许可证" + "value" : "请选择一列" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud 同步需要 Pro 授權" + "value" : "請選擇一個欄位" } } } }, - "Procedure" : { + "Plugin" : { + "comment" : "Plugin is a technical term", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "프로시저" + "value" : "플러그인" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Prosedür" + "value" : "Eklenti" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Procedure" + "value" : "Plugin" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "存储过程" + "value" : "插件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "預存程序" + "value" : "外掛" } } } }, - "Procedure: %@" : { + "Plugin '%@' has an invalid descriptor: %@" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Plugin '%1$@' has an invalid descriptor: %2$@" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "프로시저: %@" + "value" : "플러그인 '%1$@'의 설명자가 올바르지 않습니다: %2$@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Prosedür: %@" + "value" : "'%@' eklentisinin tanımlayıcısı geçersiz: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Procedure: %@" + "value" : "Plugin '%@' có mô tả không hợp lệ: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "存储过程:%@" + "value" : "插件 '%@' 的描述符无效:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "預存程序:%@" + "value" : "外掛「%1$@」的描述元無效:%2$@" } } } }, - "Procedures" : { + "Plugin checksum does not match expected value" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "프로시저" + "value" : "플러그인 체크섬이 예상 값과 일치하지 않습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Prosedürler" + "value" : "Eklenti sağlama toplamı beklenen değerle eşleşmiyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Procedures" + "value" : "Checksum plugin không khớp với giá trị mong đợi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "存储过程" + "value" : "插件校验和与期望值不匹配" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "預存程序" + "value" : "外掛總和檢查碼與預期值不符" } } } }, - "Process exited with code %d" : { + "Plugin code signature verification failed: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "프로세스가 코드 %d(으)로 종료되었습니다" + "value" : "플러그인 코드 서명 검증 실패: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İşlem %d koduyla çıktı" + "value" : "Eklenti kod imzası doğrulaması başarısız: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tiến trình thoát với mã %d" + "value" : "Xác minh chữ ký mã plugin thất bại: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "进程退出,退出码 %d" + "value" : "插件代码签名验证失败:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "處理程序結束,結束碼 %d" + "value" : "外掛程式碼簽章驗證失敗:%@" } } } }, - "Production" : { + "Plugin does not contain a compatible binary for this architecture" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "프로덕션" + "value" : "이 아키텍처와 호환되는 바이너리가 플러그인에 없습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Üretim" + "value" : "Eklenti bu mimari için uyumlu bir ikili dosya içermiyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Production" + "value" : "Plugin không chứa tập tin nhị phân tương thích cho kiến trúc này" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "生产" + "value" : "插件不包含兼容此架构的二进制文件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "生產" + "value" : "外掛未包含相容此架構的二進位檔" } } } }, - "Profile" : { + "Plugin download failed: %@" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Profile" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "프로필" + "value" : "플러그인 다운로드 실패: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Profil" + "value" : "Plugin indirme failed: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hồ sơ" + "value" : "Tải plugin thất bại: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "配置" + "value" : "插件下载失败:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "設定檔" + "value" : "外掛下載失敗:%@" } } } }, - "Profile Details" : { + "Plugin has active connections" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "프로필 세부사항" + "value" : "플러그인에 활성 연결이 있습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Profil Ayrıntıları" + "value" : "Eklentinin etkin bağlantıları var" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chi tiết hồ sơ" + "value" : "Plugin đang có kết nối hoạt động" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "配置详情" + "value" : "插件有活跃的连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "設定檔詳細資料" + "value" : "外掛有作用中的連線" } } } }, - "Profile Name" : { + "Plugin Installation Failed" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Profile Name" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "프로필 이름" + "value" : "플러그인 설치 실패" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Profil Adı" + "value" : "Eklenti Kurulumu Başarısız" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên hồ sơ" + "value" : "Cài đặt Plugin thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "配置名称" + "value" : "插件安装失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "設定檔名稱" + "value" : "外掛安裝失敗" } } } }, - "Profile Settings" : { - "extractionState" : "stale", + "Plugin installation failed: %@" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Profile Settings" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "프로필 설정" + "value" : "플러그인 설치 실패: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Profil Ayarları" + "value" : "Eklenti kurulumu başarısız: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cài đặt hồ sơ" + "value" : "Cài đặt plugin thất bại: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "配置设置" + "value" : "插件安装失败:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "設定檔設定" + "value" : "外掛安裝失敗:%@" } } } }, - "Progress estimated (%d table(s) could not be counted)" : { + "Plugin not found" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "진행률은 추정치입니다(%d개 테이블의 행 수를 계산할 수 없음)" + "value" : "플러그인을 찾을 수 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tahmini ilerleme (%d tablo sayılamadı)" + "value" : "Eklenti bulunamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tiến trình ước lượng (%d bảng không thể đếm)" + "value" : "Không tìm thấy plugin" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "进度为估算值(%d 个表无法计数)" + "value" : "未找到插件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "進度為估計值(%d 個資料表無法計數)" + "value" : "找不到外掛" } } } }, - "Project ID" : { + "Plugin Not Installed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "프로젝트 ID" + "value" : "플러그인이 설치되지 않음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Proje ID" + "value" : "Eklenti Kurulu Değil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Project ID" + "value" : "Plugin chưa được cài đặt" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "项目 ID" + "value" : "插件未安装" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "專案 ID" + "value" : "外掛未安裝" } } } }, - "Prompt at Connect" : { + "Plugin not loaded" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 시 입력 요청" + "value" : "플러그인이 로드되지 않음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlanırken Sor" + "value" : "Eklenti yüklenmedi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhắc khi kết nối" + "value" : "Plugin chưa được tải" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接时提示" + "value" : "插件未加载" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線時提示" + "value" : "外掛未載入" } } } }, - "Prompt for API token" : { + "Plugin not loaded: %@. %@" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Plugin not loaded: %1$@. %2$@" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "API 토큰 입력 요청" + "value" : "플러그인이 로드되지 않음: %1$@. %2$@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "API belirtecini sor" + "value" : "Eklenti yüklenmedi: %1$@. %2$@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hỏi token API" + "value" : "Plugin chưa được tải: %1$@. %2$@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "提示输入 API 令牌" + "value" : "插件未加载:%1$@。%2$@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "提示輸入 API 權杖" + "value" : "外掛未載入:%1$@。%2$@" } } } }, - "Prompt for password" : { + "Plugin registry requires a newer app version" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "암호 입력 요청" + "value" : "플러그인 레지스트리를 사용하려면 더 최신 버전의 앱이 필요합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Parolayı sor" + "value" : "Eklenti deposu daha yeni bir uygulama sürümü gerektiriyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hỏi mật khẩu" + "value" : "Kho plugin yêu cầu phiên bản ứng dụng mới hơn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "提示输入密码" + "value" : "插件注册表需要更新版本的应用" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "提示輸入密碼" + "value" : "外掛註冊需要更新版本的應用程式" } } } }, - "Prompt template" : { + "Plugin requires app version %@ or later, but current version is %@" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Plugin requires app version %1$@ or later, but current version is %2$@" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "프롬프트 템플릿" + "value" : "플러그인에는 앱 버전 %1$@ 이상이 필요하지만 현재 버전은 %2$@입니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İstem şablonu" + "value" : "Eklenti %@ veya sonrası bir uygulama sürümü gerektiriyor, mevcut sürüm ise %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mẫu prompt" + "value" : "Plugin yêu cầu ứng dụng phiên bản %@ trở lên, nhưng phiên bản hiện tại là %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "提示词模板" + "value" : "插件需要应用版本 %@ 或更高,但当前版本为 %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "提示詞範本" + "value" : "外掛需要應用程式版本 %1$@ 或更新版本,但目前版本為 %2$@" } } } }, - "Providers" : { + "Plugin requires PluginKit version %d, but app provides version %d" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Plugin requires PluginKit version %1$d, but app provides version %2$d" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "제공자" + "value" : "플러그인에는 PluginKit %1$d 버전이 필요하지만 앱에서 제공하는 버전은 %2$d입니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Providers" + "value" : "Eklenti PluginKit sürüm %d gerektiriyor, ancak uygulama sürüm %d sunuyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhà cung cấp" + "value" : "Plugin yêu cầu PluginKit phiên bản %d, nhưng ứng dụng chỉ có phiên bản %d" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "提供商" + "value" : "插件需要PluginKit版本%d,但应用提供版本%d" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "供應商" + "value" : "外掛需要 PluginKit 版本 %1$d,但應用程式提供的版本為 %2$d" } } } }, - "Proxy Server" : { + "Plugin requires PluginKit version %lld, but app provides version %lld" : { + "extractionState" : "stale", "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Plugin requires PluginKit version %1$lld, but app provides version %2$lld" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "프록시 서버" + "value" : "플러그인에는 PluginKit %1$lld 버전이 필요하지만 앱에서 제공하는 버전은 %2$lld입니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Proxy Sunucusu" + "value" : "Plugin requires PluginKit version %lld, but app provides version %lld" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Máy chủ proxy" + "value" : "Plugin yêu cầu PluginKit phiên bản %lld, nhưng ứng dụng cung cấp phiên bản %lld" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "代理服务器" + "value" : "插件需要 PluginKit 版本 %lld,但应用提供的版本为 %lld" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "代理伺服器" + "value" : "外掛需要 PluginKit 版本 %1$lld,但應用程式提供的版本為 %2$lld" } } } }, - "Public key authentication failed: %@" : { - "extractionState" : "stale", + "Plugin Update Failed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "공개 키 인증에 실패했습니다: %@" + "value" : "플러그인 업데이트 실패" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Public key authentication failed: %@" + "value" : "Eklenti Güncellemesi Başarısız" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xác thực khóa công khai thất bại: %@" + "value" : "Cập nhật plugin thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "公钥认证失败:%@" + "value" : "插件更新失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "公鑰驗證失敗:%@" + "value" : "外掛更新失敗" } } } }, - "Publish" : { + "Plugin was built for PluginKit version %d; this release of TablePro needs version %d." : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Plugin was built for PluginKit version %1$d; this release of TablePro needs version %2$d." + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "게시" + "value" : "플러그인은 PluginKit %1$d 버전용으로 빌드되었지만 이 TablePro 릴리스에는 %2$d 버전이 필요합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yayınla" + "value" : "Eklenti, PluginKit %1$d sürümü için derlenmiş; TablePro'nun bu sürümü %2$d sürümünü gerektiriyor." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất bản" + "value" : "Plugin được xây dựng cho PluginKit phiên bản %1$d; bản phát hành TablePro này cần phiên bản %2$d." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "发布" + "value" : "插件是为 PluginKit 版本 %1$d 构建的;此版本的 TablePro 需要版本 %2$d。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "發佈" + "value" : "外掛是為 PluginKit 版本 %1$d 建置的;此版本的 TablePro 需要版本 %2$d。" } } } }, - "Publish %d Connections to Team Catalog…" : { + "Plugin was built with PluginKit version %d, but version %d is required. Please update the plugin." : { + "extractionState" : "stale", "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Plugin was built with PluginKit version %1$d, but version %2$d is required. Please update the plugin." + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%d개 연결을 팀 카탈로그에 게시…" + "value" : "플러그인은 PluginKit %1$d 버전으로 빌드되었지만 %2$d 버전이 필요합니다. 플러그인을 업데이트하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%d Bağlantıyı Takım Kataloğuna Yayınla…" + "value" : "Eklenti PluginKit sürüm %d ile oluşturuldu, ancak sürüm %d gerekli. Lütfen eklentiyi güncelleyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất bản %d kết nối lên danh mục nhóm…" + "value" : "Plugin được xây dựng với PluginKit phiên bản %d, nhưng yêu cầu phiên bản %d. Vui lòng cập nhật plugin." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将 %d 个连接发布到团队目录…" + "value" : "插件使用PluginKit版本%d构建,但需要版本%d。请更新插件。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將 %d 個連線發佈到團隊目錄…" + "value" : "外掛是以 PluginKit 版本 %1$d 建置的,但需要版本 %2$d。請更新外掛。" } } } }, - "Publish %d Connections to Team Library…" : { + "Plugin was built with PluginKit version %lld, but version %lld is required. Please update the plugin." : { + "extractionState" : "stale", "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Plugin was built with PluginKit version %1$lld, but version %2$lld is required. Please update the plugin." + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%d개 연결을 팀 라이브러리에 게시…" + "value" : "플러그인은 PluginKit %1$lld 버전으로 빌드되었지만 %2$lld 버전이 필요합니다. 플러그인을 업데이트하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%d Bağlantıyı Takım Kitaplığına Yayınla…" + "value" : "Eklenti PluginKit sürüm %lld ile oluşturuldu, ancak sürüm %lld gerekli. Lütfen eklentiyi güncelleyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất bản %d kết nối lên thư viện nhóm…" + "value" : "Plugin được xây dựng với PluginKit phiên bản %lld, nhưng cần phiên bản %lld. Vui lòng cập nhật plugin." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将 %d 个连接发布到团队库…" + "value" : "插件使用 PluginKit 版本 %lld 构建,但需要版本 %lld。请更新插件。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將 %d 個連線發佈到團隊庫…" + "value" : "外掛是以 PluginKit 版本 %1$lld 建置的,但需要版本 %2$lld。請更新外掛。" } } } }, - "Publish Saved Queries to Team..." : { - "extractionState" : "stale", + "Plugins" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "저장된 쿼리를 팀에 게시..." + "value" : "플러그인" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kayıtlı Sorguları Takıma Yayınla..." + "value" : "Plugins" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất bản truy vấn đã lưu cho nhóm..." + "value" : "Plugin" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将已保存的查询发布给团队..." + "value" : "插件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將已儲存的查詢發佈給團隊..." + "value" : "外掛" } } } }, - "Publish Saved Queries to Team…" : { - "comment" : "Text for a menu item that publishes saved queries to the user's team.", - "isCommentAutoGenerated" : true, + "Plugins signed by this developer stop loading the next time TablePro starts." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "저장된 쿼리를 팀에 게시…" + "value" : "이 개발자가 서명한 플러그인은 다음에 TablePro를 시작할 때부터 로드되지 않습니다." + } + } + } + }, + "Point at the socket file itself, not the directory holding it." : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "소켓이 있는 디렉터리가 아니라 소켓 파일 자체를 지정하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kayıtlı Sorguları Takıma Yayınla…" + "value" : "Soket dosyasının kendisini gösterin, onu içeren dizini değil." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất bản truy vấn đã lưu cho nhóm…" + "value" : "Trỏ tới chính tệp socket, không phải thư mục chứa nó." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将已保存的查询发布到团队…" + "value" : "请指向 socket 文件本身,而不是它所在的目录。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將已儲存的查詢發佈到團隊…" + "value" : "請指向 socket 檔案本身,而不是它所在的目錄。" } } } }, - "Publish connections to a shared folder your team reads from. Passwords are never included." : { + "Port" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "팀이 사용하는 공유 폴더에 연결을 게시합니다. 암호는 포함되지 않습니다." + "value" : "포트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantıları, takımınızın okuduğu paylaşılan bir klasöre yayınlayın. Parolalar hiçbir zaman dahil edilmez." + "value" : "Port" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất bản các kết nối vào một thư mục dùng chung mà nhóm bạn đọc từ đó. Mật khẩu không bao giờ được đưa vào." + "value" : "Cổng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将连接发布到团队读取的共享文件夹。密码不会被包含在内。" + "value" : "端口" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將連線發佈到團隊讀取的共用資料夾。密碼絕不會包含在內。" + "value" : "連接埠" } } } }, - "Publish saved queries to your team?" : { + "Port 1455 is in use. Quit the Codex CLI or another sign-in and try again." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "저장된 쿼리를 팀에 게시하시겠습니까?" + "value" : "포트 1455가 사용 중입니다. Codex CLI 또는 다른 로그인 세션을 종료한 후 다시 시도하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kayıtlı sorgular takımınıza yayınlansın mı?" + "value" : "1455 portu kullanımda. Codex CLI’yi veya başka bir girişi kapatın ve tekrar deneyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất bản các truy vấn đã lưu cho nhóm của bạn?" + "value" : "Cổng 1455 đang được sử dụng. Hãy thoát Codex CLI hoặc một phiên đăng nhập khác rồi thử lại." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "要将已保存的查询发布给团队吗?" + "value" : "端口 1455 正在使用中。请退出 Codex CLI 或其他登录后重试。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "要將已儲存的查詢發佈給團隊嗎?" + "value" : "連接埠 1455 正在使用中。請結束 Codex CLI 或其他登入後再試一次。" } } } }, - "Publish to Team Catalog…" : { + "Port is already in use. Try a different port or close the other process." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "팀 카탈로그에 게시…" + "value" : "포트가 이미 사용 중입니다. 다른 포트를 사용하거나 다른 프로세스를 종료하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Takım Kataloğuna Yayınla…" + "value" : "Port zaten kullanımda. Farklı bir port deneyin veya diğer işlemi kapatın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất bản lên danh mục nhóm…" + "value" : "Cổng đã được sử dụng. Hãy thử cổng khác hoặc đóng tiến trình đang dùng." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "发布到团队目录…" + "value" : "端口已被占用。请尝试其他端口或关闭占用端口的进程。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "發佈到團隊目錄…" + "value" : "連接埠已被佔用。請改用其他連接埠或關閉佔用的處理程序。" } } } }, - "Publish to Team Library…" : { + "postgresql://user:password@host:5432/database" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "팀 라이브러리에 게시…" + "value" : "postgresql://user:password@host:5432/database" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Takım Kitaplığına Yayınla…" + "value" : "postgresql://user:password@host:5432/database" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất bản lên thư viện nhóm…" + "value" : "postgresql://user:password@host:5432/database" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "发布到团队库…" + "value" : "postgresql://user:password@host:5432/database" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "發佈到團隊庫…" + "value" : "postgresql://user:password@host:5432/database" } } } }, - "Published %d saved queries to your team." : { + "Potentially Dangerous Queries" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "저장된 쿼리 %d개를 팀에 게시했습니다." + "value" : "잠재적으로 위험한 쿼리" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%d kayıtlı sorgu takımınıza yayınlandı." + "value" : "Potentially Dangerous Queries" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã xuất bản %d truy vấn đã lưu cho nhóm của bạn." + "value" : "Truy vấn có thể nguy hiểm" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已将 %d 条保存的查询发布给团队。" + "value" : "潜在危险查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已將 %d 條已儲存的查詢發佈給團隊。" + "value" : "潛在危險查詢" } } } }, - "Published to the team library" : { + "Potentially Dangerous Query" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "팀 라이브러리에 게시됨" + "value" : "잠재적으로 위험한 쿼리" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Takım kitaplığına yayınlandı" + "value" : "Potentially Dangerous Query" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã xuất bản lên thư viện nhóm" + "value" : "Truy vấn có thể nguy hiểm" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已发布到团队库" + "value" : "潜在危险查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已發佈到團隊庫" + "value" : "潛在危險查詢" } } } }, - "Purchase License" : { + "Pre-Connect Script" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Purchase License" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "라이선스 구매" + "value" : "연결 전 스크립트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Lisans Satın Al" + "value" : "Bağlantı Öncesi Betik" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mua giấy phép" + "value" : "Script pre-connect" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "购买许可证" + "value" : "连接前脚本" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "購買授權" + "value" : "連線前指令稿" } } } }, - "Purple" : { + "Pre-connect script failed (exit %d): %@" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Pre-connect script failed (exit %1$d): %2$@" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "보라색" + "value" : "연결 전 스크립트 실패(종료 코드 %1$d): %2$@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Mor" + "value" : "Bağlantı öncesi betik başarısız (çıkış %d): %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tím" + "value" : "Tập lệnh tiền kết nối thất bại (exit %d): %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "紫色" + "value" : "连接前脚本失败(退出码 %d):%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "紫色" + "value" : "連線前指令稿失敗(退出碼 %1$d):%2$@" } } } }, - "Put field names in the first row" : { + "Pre-connect script failed (exit %lld): %@" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "첫 번째 행에 필드 이름 포함" + "value" : "연결 전 스크립트 실패(종료 코드 %lld): %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Put field names in the first row" + "value" : "Pre-connect script failed (exit %lld): %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đặt tên trường ở dòng đầu tiên" + "value" : "Script pre-connect thất bại (exit %lld): %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将字段名放在第一行" + "value" : "连接前脚本失败(退出码 %lld):%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將欄位名稱放在第一列" + "value" : "連線前指令稿失敗(退出碼 %lld):%@" } } } }, - "Put the suggested SQL into the query editor" : { + "Pre-connect script failed with exit code %d" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "제안된 SQL을 쿼리 편집기에 삽입" + "value" : "연결 전 스크립트 실패(종료 코드 %d)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Önerilen SQL'i sorgu düzenleyiciye koy" + "value" : "Bağlantı öncesi betik %d çıkış koduyla başarısız oldu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đưa SQL được đề xuất vào trình soạn truy vấn" + "value" : "Tập lệnh tiền kết nối thất bại với mã thoát %d" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将建议的 SQL 放入查询编辑器" + "value" : "连接前脚本失败,退出码 %d" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將建議的 SQL 放入查詢編輯器" + "value" : "連線前指令稿失敗,退出碼 %d" } } } }, - "QUICK" : { + "Pre-connect script failed with exit code %lld" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "QUICK" + "value" : "연결 전 스크립트 실패(종료 코드 %lld)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "HIZLI" + "value" : "Pre-connect script failed with exit code %lld" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "NHANH" + "value" : "Script pre-connect thất bại với exit code %lld" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "快速" + "value" : "连接前脚本失败,退出码 %lld" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "快速" + "value" : "連線前指令稿失敗,退出碼 %lld" } } } }, - "Queries" : { - "comment" : "A section header for the list of queries in the favorites tab.", - "isCommentAutoGenerated" : true, + "Pre-connect script timed out after 10 seconds" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리" + "value" : "연결 전 스크립트가 10초 후 시간 초과로 종료되었습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgular" + "value" : "Bağlantı öncesi betik 10 saniye sonra zaman aşımına uğradı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Truy vấn" + "value" : "Script pre-connect hết thời gian chờ sau 10 giây" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "查询" + "value" : "连接前脚本超时(10秒后)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "查詢" + "value" : "連線前指令稿在 10 秒後逾時" } } } }, - "Queries you run appear here." : { + "Pre-connect script was cancelled" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "실행한 쿼리가 여기에 표시됩니다." + "value" : "연결 전 스크립트가 취소되었습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Çalıştırdığınız sorgular burada görünür." + "value" : "Bağlantı öncesi betik iptal edildi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Các truy vấn bạn chạy sẽ xuất hiện ở đây." + "value" : "Script trước khi kết nối đã bị hủy" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "你运行的查询会显示在这里。" + "value" : "连接前脚本已取消" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "你執行的查詢會顯示在這裡。" + "value" : "連線前指令稿已取消" } } } }, - "Query" : { + "Precision" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리" + "value" : "정밀도" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgu" + "value" : "Precision" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Truy vấn" + "value" : "Độ chính xác" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "查询" + "value" : "精度" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "查詢" + "value" : "精確度" } } } }, - "Query Behavior" : { + "Precision:" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 동작" + "value" : "정밀도:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgu Davranışı" + "value" : "Precision:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hành vi truy vấn" + "value" : "Độ chính xác:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "查询行为" + "value" : "精度:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "查詢行為" + "value" : "精確度:" } } } }, - "Query Execution" : { + "Preferred" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 실행" + "value" : "선호" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgu Çalıştırma" + "value" : "Tercih Edilen" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thực thi truy vấn" + "value" : "Ưu tiên" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "查询执行" + "value" : "首选" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "查詢執行" + "value" : "偏好" } } } }, - "Query Execution Failed" : { - "extractionState" : "stale", + "Preferred connects in plain TCP for this driver. Use Required to enforce TCPS." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 실행 실패" + "value" : "이 드라이버에서 선호는 평문 TCP로 연결합니다. TCPS를 강제하려면 필수를 사용하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgu Çalıştırma Başarısız" + "value" : "Bu sürücüde Tercih Edilen düz TCP ile bağlanır. TCPS'yi zorunlu kılmak için Zorunlu kullanın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thực thi truy vấn thất bại" + "value" : "Với driver này, Preferred kết nối bằng TCP thường. Dùng Required để buộc dùng TCPS." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "查询执行失败" + "value" : "对于此驱动,“首选”将使用纯 TCP 连接。请使用“必需”来强制 TCPS。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "查詢執行失敗" + "value" : "對於此驅動程式,「首選」將使用純 TCP 連線。請使用「必要」來強制 TCPS。" } } } }, - "Query History" : { + "Preferred performs a 2-pass connect: tries TLS first, falls back to plain only on SSL handshake errors. Required by Cloud SQL and Azure MySQL." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 기록" + "value" : "선호는 2단계 연결을 수행합니다. 먼저 TLS를 시도하고 SSL 핸드셰이크 오류가 발생한 경우에만 평문 연결로 전환합니다. Cloud SQL과 Azure MySQL에는 필수를 사용해야 합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgu Geçmişi" + "value" : "Tercih Edilen 2 aşamalı bağlanır: önce TLS dener, yalnızca SSL el sıkışma hatalarında düz bağlantıya döner. Cloud SQL ve Azure MySQL için Zorunlu gerekir." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lịch sử truy vấn" + "value" : "Preferred kết nối 2 bước: thử TLS trước, chỉ chuyển sang kết nối thường khi gặp lỗi bắt tay SSL. Cloud SQL và Azure MySQL yêu cầu Required." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "查询历史" + "value" : "“首选”执行两阶段连接:先尝试 TLS,仅在 SSL 握手出错时回退到明文。Cloud SQL 和 Azure MySQL 要求使用“必需”。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "查詢歷史" + "value" : "「首選」執行兩階段連線:先嘗試 TLS,僅在 SSL 交握出錯時回退到明文。Cloud SQL 與 Azure MySQL 要求使用「必要」。" } } } }, - "Query History Is Unavailable" : { - "comment" : "A message that indicates that the query history is unavailable.", - "isCommentAutoGenerated" : true, + "Preferred requests TLS; the server decides. Required by SQL Server 2022 and Azure SQL Database." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 기록을 사용할 수 없음" + "value" : "선호는 TLS를 요청하며 서버가 사용 여부를 결정합니다. SQL Server 2022와 Azure SQL Database에는 필수를 사용해야 합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgu Geçmişi Kullanılamıyor" + "value" : "Tercih Edilen TLS ister; karar sunucunundur. SQL Server 2022 ve Azure SQL Database için Zorunlu gerekir." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không dùng được lịch sử truy vấn" + "value" : "Preferred yêu cầu TLS; máy chủ quyết định. SQL Server 2022 và Azure SQL Database yêu cầu Required." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "查询历史不可用" + "value" : "“首选”会请求 TLS,由服务器决定。SQL Server 2022 和 Azure SQL Database 要求使用“必需”。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "查詢歷史無法使用" + "value" : "「首選」會請求 TLS,由伺服器決定。SQL Server 2022 與 Azure SQL Database 要求使用「必要」。" } } } }, - "Query History:" : { - "extractionState" : "stale", + "Preferred tries TLS first, falls back to plain. Matches psql and DataGrip defaults. Required by AWS RDS, Cloud SQL, Heroku, Supabase, Neon." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 기록:" + "value" : "선호는 먼저 TLS를 시도하고 평문 연결로 전환합니다. psql 및 DataGrip 기본값과 같습니다. AWS RDS, Cloud SQL, Heroku, Supabase 및 Neon에는 필수를 사용해야 합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Query History:" + "value" : "Tercih Edilen önce TLS dener, olmazsa düz bağlantıya döner. psql ve DataGrip varsayılanlarıyla aynıdır. AWS RDS, Cloud SQL, Heroku, Supabase ve Neon için Zorunlu gerekir." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lịch sử truy vấn:" + "value" : "Preferred thử TLS trước, chuyển sang kết nối thường nếu thất bại. Giống mặc định của psql và DataGrip. AWS RDS, Cloud SQL, Heroku, Supabase, Neon yêu cầu Required." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "查询历史:" + "value" : "“首选”先尝试 TLS,失败后回退到明文,与 psql 和 DataGrip 的默认行为一致。AWS RDS、Cloud SQL、Heroku、Supabase、Neon 要求使用“必需”。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "查詢歷史:" + "value" : "「Preferred」會先嘗試 TLS,失敗後改用純文字連線,與 psql 和 DataGrip 的預設行為一致。AWS RDS、Cloud SQL、Heroku、Supabase、Neon 要求使用「Required」。" } } } }, - "Query Insights" : { + "Prefix the variant applies" : { + + }, + "Preparing the metadata connection timed out." : { + + }, + "Preparing the session" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 인사이트" + "value" : "세션 준비 중" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgu Analizleri" + "value" : "Oturum hazırlanıyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phân tích truy vấn" + "value" : "Đang chuẩn bị phiên" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "查询分析" + "value" : "正在准备会话" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "查詢分析" + "value" : "正在準備工作階段" } } } }, - "Query Result Limit" : { + "Preserve all values as strings" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 결과 제한" + "value" : "모든 값을 문자열로 유지" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgu Sonuç Limiti" + "value" : "Preserve all values as strings" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giới hạn kết quả truy vấn" + "value" : "Giữ nguyên tất cả giá trị dưới dạng chuỗi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "查询结果限制" + "value" : "将所有值保留为字符串" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "查詢結果上限" + "value" : "將所有值保留為字串" } } } }, - "Query Result Row Cap" : { + "Preset Name" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 결과 행 상한" + "value" : "프리셋 이름" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgu Sonucu Satır Sınırı" + "value" : "Ön Ayar Adı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giới hạn số hàng kết quả" + "value" : "Tên mẫu đặt trước" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "查询结果行数上限" + "value" : "预设名称" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "查詢結果列數上限" + "value" : "預設集名稱" } } } }, - "Query Results" : { + "Pretty Print" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 결과" + "value" : "보기 좋게 출력" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgu Sonuçları" + "value" : "Biçimlendirerek Göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết quả truy vấn" + "value" : "Định dạng đẹp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "查询结果" + "value" : "格式化输出" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "查詢結果" + "value" : "美化輸出" } } } }, - "Query cancelled" : { + "Pretty print (formatted output)" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리가 취소되었습니다" + "value" : "보기 좋게 출력(서식이 지정된 출력)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Query cancelled" + "value" : "Pretty print (formatted output)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã hủy truy vấn" + "value" : "In đẹp (đầu ra có định dạng)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "查询已取消" + "value" : "格式化输出(带格式)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "查詢已取消" + "value" : "美化輸出(格式化輸出)" } } } }, - "Query executed successfully" : { + "Prevent CSV formula injection by prefixing values starting with =, +, -, @ with a single quote" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리가 성공적으로 실행되었습니다" + "value" : "=, +, -, @로 시작하는 값 앞에 작은따옴표(')를 붙여 CSV 수식 삽입을 방지합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgu başarıyla çalıştırıldı" + "value" : "Prevent CSV formula injection by prefixing values starting with =, +, -, @ with a single quote" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Truy vấn thực thi thành công" + "value" : "Ngăn chặn chèn công thức CSV bằng cách thêm dấu nháy đơn trước các giá trị bắt đầu bằng =, +, -, @" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "查询执行成功" + "value" : "通过在以 =、+、-、@ 开头的值前添加单引号来防止 CSV 公式注入" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "查詢執行成功" + "value" : "在以 =、+、-、@ 開頭的值前加上單引號,以防止 CSV 公式注入" } } } }, - "Query executing" : { + "Prevent write operations (INSERT, UPDATE, DELETE, DROP, etc.)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 실행 중" + "value" : "쓰기 작업(INSERT, UPDATE, DELETE, DROP 등)을 방지합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgu çalışıyor" + "value" : "Prevent write operations (INSERT, UPDATE, DELETE, DROP, etc.)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang thực hiện truy vấn" + "value" : "Ngăn chặn thao tác ghi (INSERT, UPDATE, DELETE, DROP, v.v.)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在执行查询" + "value" : "禁止写操作(INSERT、UPDATE、DELETE、DROP 等)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在執行查詢" + "value" : "禁止寫入操作(INSERT、UPDATE、DELETE、DROP 等)" } } } }, - "Query executing..." : { - "extractionState" : "stale", + "Preview" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 실행 중..." + "value" : "미리보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Query executing..." + "value" : "Önizleme" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang thực thi truy vấn..." + "value" : "Xem trước" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在执行查询..." + "value" : "预览" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在執行查詢…" - } - } - } - }, - "Query execution failed" : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "쿼리 실행 실패" + "value" : "預覽" } } } }, - "Query failed. %@" : { - "comment" : "A message that is announced to the user when a query fails. The argument is the error message.", - "isCommentAutoGenerated" : true, + "Preview %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리에 실패했습니다. %@" + "value" : "%@ 미리보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgu başarısız oldu. %@" + "value" : "Önizleme %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Truy vấn thất bại. %@" + "value" : "Xem trước %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "查询失败。%@" + "value" : "预览 %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "查詢失敗。%@" - } - } - } - }, - "Query failed: %@" : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "쿼리 실패: %@" + "value" : "預覽 %@" } } } }, - "Query history for %@" : { + "Preview %@ (⌘⇧P)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@의 쿼리 기록" + "value" : "%@ 미리보기(⌘⇧P)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ için sorgu geçmişi" + "value" : "Önizleme %@ (⌘⇧P)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lịch sử truy vấn của %@" + "value" : "Xem trước %@ (⌘⇧P)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%@的查询历史" + "value" : "预览 %@ (⌘⇧P)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%@的查詢記錄" + "value" : "預覽 %@ (⌘⇧P)" } } } }, - "Query parameters (:name syntax)" : { + "Preview Commands" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 매개변수(:name 구문)" + "value" : "명령 미리보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgu parametreleri (:name söz dizimi)" + "value" : "Preview Commands" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tham số truy vấn (cú pháp :name)" + "value" : "Xem trước lệnh" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "查询参数(:name 语法)" + "value" : "预览命令" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "查詢參數(:name 語法)" + "value" : "預覽命令" } } } }, - "Query preview" : { - "comment" : "Accessibility label for the query preview text view.", - "isCommentAutoGenerated" : true, + "Preview Commands (⌘⇧P)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 미리보기" + "value" : "명령 미리보기(⌘⇧P)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgu önizlemesi" + "value" : "Preview Commands (⌘⇧P)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xem trước truy vấn" + "value" : "Xem trước lệnh (⌘⇧P)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "查询预览" + "value" : "预览命令 (⌘⇧P)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "查詢預覽" + "value" : "預覽命令 (⌘⇧P)" } } } }, - "Query result limit must be between %@ and %@" : { - "extractionState" : "stale", + "Preview FK Reference" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Query result limit must be between %1$@ and %2$@" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 결과 제한은 %1$@에서 %2$@ 사이여야 합니다" + "value" : "FK 참조 미리보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgu sonuç limiti %@ ile %@ arasında olmalıdır" + "value" : "FK Referansını Önizle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giới hạn kết quả truy vấn phải từ %@ đến %@" + "value" : "Xem trước tham chiếu FK" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "查询结果限制必须在 %@ 到 %@ 之间" + "value" : "预览外键引用" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "查詢結果上限必須介於 %1$@ 到 %2$@ 之間" + "value" : "預覽外鍵參照" } } } }, - "Query result row cap must be between %@ and %@" : { + "Preview MQL" : { + "extractionState" : "stale", "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Query result row cap must be between %1$@ and %2$@" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 결과 행 상한은 %1$@에서 %2$@ 사이여야 합니다" + "value" : "MQL 미리보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgu sonucu satır sınırı %@ ile %@ arasında olmalıdır" + "value" : "Preview MQL" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giới hạn số hàng kết quả phải nằm trong khoảng %@ đến %@" + "value" : "Xem trước MQL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "查询结果行数上限必须在 %@ 和 %@ 之间" + "value" : "预览 MQL" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "查詢結果列數上限必須介於 %1$@ 到 %2$@ 之間" + "value" : "預覽 MQL" } } } }, - "Query timeout" : { + "Preview MQL (⌘⇧P)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 제한 시간" + "value" : "MQL 미리보기(⌘⇧P)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgu zaman aşımı" + "value" : "Preview MQL (⌘⇧P)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thời gian chờ truy vấn" + "value" : "Xem trước MQL (⌘⇧P)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "查询超时" + "value" : "预览 MQL (⌘⇧P)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "查詢逾時" + "value" : "預覽 MQL (⌘⇧P)" } } } }, - "Query timeout in seconds (default 30, max 300)" : { - "extractionState" : "stale", + "Preview Query" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 제한 시간(초, 기본값 30, 최대 300)" + "value" : "쿼리 미리보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Saniye cinsinden sorgu zaman aşımı (varsayılan 30, en çok 300)" + "value" : "Sorguyu Önizle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thời gian chờ truy vấn tính bằng giây (mặc định 30, tối đa 300)" + "value" : "Xem trước truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "查询超时秒数(默认 30,最大 300)" + "value" : "预览查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "查詢逾時秒數(預設 30,最大 300)" + "value" : "預覽查詢" } } } }, - "Query timeout in seconds (max 300). Defaults to the server's configured query timeout." : { + "Preview Referenced Row" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 제한 시간(초, 최대 300). 서버에 설정된 쿼리 제한 시간이 기본값입니다." + "value" : "참조 대상 행 미리보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Saniye cinsinden sorgu zaman aşımı (en fazla 300). Varsayılan olarak sunucunun ayarlı sorgu zaman aşımıdır." + "value" : "Referans Satırı Önizle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thời gian chờ truy vấn tính bằng giây (tối đa 300). Mặc định là thời gian chờ truy vấn đã cấu hình của máy chủ." + "value" : "Xem trước dòng tham chiếu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "查询超时秒数(最大 300)。默认使用服务器配置的查询超时。" + "value" : "预览引用行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "查詢逾時秒數(最多 300)。預設使用伺服器設定的查詢逾時。" + "value" : "預覽參照列" } } } }, - "Query timeout:" : { + "Preview Schema Changes" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 제한 시간:" + "value" : "스키마 변경 사항 미리보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgu zaman aşımı:" + "value" : "Preview Schema Changes" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thời gian chờ truy vấn:" + "value" : "Xem trước thay đổi cấu trúc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "查询超时:" + "value" : "预览结构更改" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "查詢逾時:" - } - } - } - }, - "Query was cancelled" : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "쿼리가 취소되었습니다" + "value" : "預覽綱要變更" } } } }, - "Query:" : { - "extractionState" : "stale", + "Preview SQL" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리:" + "value" : "SQL 미리보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Query:" + "value" : "SQL Önizleme" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Truy vấn:" + "value" : "Xem trước SQL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "查询:" + "value" : "预览 SQL" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "查詢:" + "value" : "預覽 SQL" } } } }, - "Quick Switcher" : { + "Preview SQL (⌘⇧P)" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "빠른 전환" + "value" : "SQL 미리보기(⌘⇧P)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Quick Switcher" + "value" : "Preview SQL (⌘⇧P)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển đổi nhanh" + "value" : "Xem trước SQL (⌘⇧P)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "快速切换" + "value" : "预览 SQL (⌘⇧P)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "快速切換器" + "value" : "預覽 SQL (⌘⇧P)" } } } }, - "Quick Switcher (⇧⌘O)" : { - "extractionState" : "stale", + "Previous match" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "빠른 전환(⇧⌘O)" + "value" : "이전 일치 항목" + } + } + } + }, + "Previous page" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "이전 페이지" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Hızlı Geçiş (⇧⌘O)" + "value" : "Önceki sayfa" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển đổi nhanh (⇧⌘O)" + "value" : "Trang trước" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "快速切换 (⇧⌘O)" + "value" : "上一页" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "快速切換器 (⇧⌘O)" + "value" : "上一頁" } } } }, - "Quick Switcher (⌘P)" : { - "extractionState" : "stale", + "Previous Page" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "빠른 전환(⌘P)" + "value" : "이전 페이지" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Quick Switcher (⌘P)" + "value" : "Önceki Sayfa" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển đổi nhanh (⌘P)" + "value" : "Trang trước" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "快速切换 (⌘P)" + "value" : "上一页" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "快速切換器 (⌘P)" + "value" : "上一頁" } } } }, - "Quick Switcher..." : { + "Previous Page (⌘[)" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "빠른 전환..." + "value" : "이전 페이지(⌘[)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Quick Switcher..." + "value" : "Previous Page (⌘[)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển đổi nhanh..." + "value" : "Trang trước (⌘[)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "快速切换..." + "value" : "上一页 (⌘[)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "快速切換器…" + "value" : "上一頁 (⌘[)" } } } }, - "Quick search across all columns..." : { - "extractionState" : "stale", + "Previous Result" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 열에서 빠르게 검색..." + "value" : "이전 결과" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Quick search across all columns..." + "value" : "Önceki Sonuç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tìm kiếm nhanh trên tất cả các cột..." + "value" : "Kết quả trước" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "快速搜索所有列..." + "value" : "上一个结果" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在所有欄位中快速搜尋…" + "value" : "上一個結果" } } } }, - "Quit & Reopen" : { + "Previous Statement" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "종료 후 다시 열기" + "value" : "이전 문" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Çık ve Yeniden Aç" + "value" : "Önceki İfade" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thoát và mở lại" + "value" : "Câu lệnh trước" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "退出并重新打开" + "value" : "上一条语句" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "結束並重新開啟" + "value" : "上一個陳述式" } } } }, - "Quit Anyway" : { + "Previous Tab" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "그래도 종료" + "value" : "이전 탭" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yine de Çık" + "value" : "Previous Tab" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Vẫn thoát" + "value" : "Tab trước" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "仍然退出" + "value" : "上一个标签页" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "仍要結束" + "value" : "上一個分頁" } } } }, - "Quit TablePro" : { + "Previous Tab (Alt)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro 종료" + "value" : "이전 탭(Alt)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro'dan Çık" + "value" : "Previous Tab (Alt)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thoát TablePro" + "value" : "Tab trước (Alt)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "退出 TablePro" + "value" : "上一个标签页 (Alt)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "結束 TablePro" + "value" : "上一個分頁 (Alt)" } } } }, - "Quote" : { + "Primary" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "따옴표 처리" + "value" : "Primary" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Quote" + "value" : "Primary" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dấu ngoặc kép" + "value" : "Primary" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "引号" + "value" : "Primary" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "引號" + "value" : "Primary" } } } }, - "Quote character" : { + "Primary Group Name" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "따옴표 문자" + "value" : "프라이머리 그룹 이름" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tırnak karakteri" + "value" : "Birincil Grup Adı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ký tự trích dẫn" + "value" : "Tên nhóm primary" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "引号字符" + "value" : "主节点组名称" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "引號字元" + "value" : "主節點群組名稱" } } } }, - "Quote if needed" : { - "extractionState" : "stale", + "Primary key" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필요한 경우 따옴표 사용" + "value" : "기본 키" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Quote if needed" + "value" : "Birincil anahtar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đặt trong ngoặc kép nếu cần" + "value" : "Khoá chính" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "按需加引号" + "value" : "主键" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "必要時加引號" + "value" : "主鍵" } } } }, - "RECENT" : { - "extractionState" : "stale", + "Primary Key" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "최근" + "value" : "기본 키" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "RECENT" + "value" : "Birincil Anahtar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "GẦN ĐÂY" + "value" : "Khoá chính" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "最近" + "value" : "主键" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "最近" + "value" : "主鍵" } } } }, - "Ran" : { + "Primary key change" : { + + }, + "Primary Preferred" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "실행 시각" + "value" : "Primary Preferred" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Çalıştırma" + "value" : "Primary Preferred" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Số lần chạy" + "value" : "Primary Preferred" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "运行次数" + "value" : "Primary Preferred" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "執行次數" + "value" : "Primary Preferred" } } } }, - "Range" : { + "Primary Text" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "범위" + "value" : "기본 텍스트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Aralık" + "value" : "Birincil Metin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khoảng" + "value" : "Văn bản chính" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "范围" + "value" : "主要文本" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "範圍" + "value" : "主要文字" } } } }, - "Rank By" : { + "Principal name" : { + + }, + "Principal the grants belong to" : { + + }, + "Priority %d" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "순위 기준" + "value" : "우선순위 %d" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sıralama Ölçütü" + "value" : "Öncelik %d" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xếp hạng theo" + "value" : "Độ ưu tiên %d" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "排序依据" + "value" : "优先级 %d" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "排序依據" + "value" : "優先順序 %d" } } } }, - "Rate limited" : { + "Privacy" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "요청 한도 초과" + "value" : "개인정보 보호" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Hız sınırı aşıldı" + "value" : "Privacy" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bị giới hạn tốc độ" + "value" : "Quyền riêng tư" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已限流" + "value" : "隐私" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已達速率限制" + "value" : "隱私" } } } }, - "Rate limited. Please try again later." : { + "private (%@)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "요청 한도를 초과했습니다. 나중에 다시 시도하십시오." + "value" : "비공개(%@)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İstek sınırına ulaşıldı. Lütfen daha sonra tekrar deneyin." + "value" : "özel (%@)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã vượt giới hạn tốc độ. Vui lòng thử lại sau." + "value" : "private (%@)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "请求频率超限。请稍后再试。" + "value" : "私有(%@)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已達速率限制。請稍後再試。" + "value" : "私有(%@)" } } } }, - "Raw" : { + "Private Key" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "원시" + "value" : "개인 키" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ham" + "value" : "Özel Anahtar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thô" + "value" : "Khóa riêng tư" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "原始" + "value" : "私钥" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "原始" + "value" : "私鑰" } } } }, - "Raw SQL" : { + "Private Key File" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "원시 SQL" + "value" : "개인 키 파일" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Raw SQL" + "value" : "Özel Anahtar Dosyası" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "SQL thô" + "value" : "Tệp khóa riêng tư" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "原始 SQL" + "value" : "私钥文件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "原始 SQL" + "value" : "私密金鑰檔案" } } } }, - "Raw SQL cannot be empty" : { + "Private Key Passphrase" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "원시 SQL은 비워 둘 수 없습니다" + "value" : "개인 키 암호 구문" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ham SQL boş olamaz" + "value" : "Özel Anahtar Parolası" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "SQL thô không được để trống" + "value" : "Cụm mật khẩu khóa riêng tư" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "原始 SQL 不能为空" + "value" : "私钥口令" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "原始 SQL 不可為空" + "value" : "私密金鑰密碼" } } } }, - "Raw Value" : { + "Privilege" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "원시 값" + "value" : "권한" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ham Değer" + "value" : "Yetki" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giá trị gốc" + "value" : "Quyền" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "原始值" + "value" : "权限" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "原始值" + "value" : "權限" } } } }, - "Re-enter passphrase" : { + "Privilege name" : { + + }, + "Privileges" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "암호 구문 다시 입력" + "value" : "권한" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Parolayı yeniden girin" + "value" : "Yetkiler" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập lại cụm mật khẩu" + "value" : "Quyền" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "再次输入口令" + "value" : "权限" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "再次輸入密碼" + "value" : "權限" } } } }, - "Re-read the file with these settings. This discards unsaved changes." : { + "Pro" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 설정으로 파일을 다시 읽습니다. 저장하지 않은 변경 사항은 삭제됩니다." + "value" : "Pro" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dosyayı bu ayarlarla yeniden okur. Bu, kaydedilmemiş değişiklikleri atar." + "value" : "Pro" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đọc lại tệp với các cài đặt này. Thao tác này bỏ các thay đổi chưa lưu." + "value" : "Pro" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "使用这些设置重新读取文件。未保存的更改会被丢弃。" + "value" : "Pro" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "使用這些設定重新讀取檔案。未儲存的變更會被捨棄。" + "value" : "Pro" } } } }, - "Read" : { + "PRO" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "읽기" + "value" : "PRO" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Okuma" + "value" : "PRO" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đọc" + "value" : "PRO" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "读取" + "value" : "PRO" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "讀取" + "value" : "PRO" } } } }, - "Read & Write" : { + "Pro feature" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "읽기 및 쓰기" + "value" : "Pro 기능" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Okuma & Yazma" + "value" : "Pro özelliği" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đọc & ghi" + "value" : "Tính năng Pro" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "读写" + "value" : "Pro 功能" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "讀寫" + "value" : "Pro 功能" } } } }, - "Read Only" : { + "Pro License Required" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "읽기 전용" + "value" : "Pro 라이선스 필요" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Salt Okunur" + "value" : "Pro Lisans Gerekli" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chỉ đọc" + "value" : "Yêu cầu giấy phép Pro" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "只读" + "value" : "需要 Pro 许可证" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "唯讀" + "value" : "需要 Pro 授權" } } } }, - "Read Only Connection" : { - "extractionState" : "stale", + "Pro license required for iCloud Sync" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "읽기 전용 연결" + "value" : "iCloud 동기화에는 Pro 라이선스가 필요합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Salt Okunur Bağlantı" + "value" : "iCloud Eşitlemesi için Pro lisans gereklidir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối chỉ đọc" + "value" : "Cần giấy phép Pro để sử dụng iCloud Sync" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "只读连接" + "value" : "iCloud 同步需要 Pro 许可证" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "唯讀連線" + "value" : "iCloud 同步需要 Pro 授權" } } } }, - "Read Preference" : { - "extractionState" : "stale", + "Procedure" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "읽기 기본 설정" + "value" : "프로시저" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Read Preference" + "value" : "Prosedür" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Read Preference" + "value" : "Procedure" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Read Preference" + "value" : "存储过程" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Read Preference" + "value" : "預存程序" } } } }, - "Read saved passwords from Keychain (requires permission)" : { + "PROCEDURE or FUNCTION" : { + + }, + "Procedure: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "키체인에서 저장된 암호 읽기(권한 필요)" + "value" : "프로시저: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Keychain'den kayıtlı parolaları oku (izin gerektirir)" + "value" : "Prosedür: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đọc mật khẩu đã lưu từ Keychain (cần quyền)" + "value" : "Procedure: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "从钥匙串读取已保存的密码(需要权限)" + "value" : "存储过程:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "從鑰匙圈讀取已儲存的密碼(需要權限)" + "value" : "預存程序:%@" } } } }, - "Read schema and run SELECT queries." : { + "Procedures" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "스키마를 읽고 SELECT 쿼리를 실행합니다." + "value" : "프로시저" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Şemayı oku ve SELECT sorguları çalıştır." + "value" : "Prosedürler" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đọc schema và chạy truy vấn SELECT." + "value" : "Procedures" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "读取架构并运行 SELECT 查询。" + "value" : "存储过程" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "讀取綱要並執行 SELECT 查詢。" + "value" : "預存程序" } } } }, - "Read schema and run any non-destructive query, including INSERT, UPDATE, and DELETE." : { + "Process exited with code %d" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "스키마를 읽고 INSERT, UPDATE, DELETE를 포함한 모든 비파괴 쿼리를 실행합니다." + "value" : "프로세스가 코드 %d(으)로 종료되었습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Şemayı oku ve INSERT, UPDATE, DELETE dahil yıkıcı olmayan tüm sorguları çalıştır." + "value" : "İşlem %d koduyla çıktı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đọc schema và chạy mọi truy vấn không phá hủy, bao gồm INSERT, UPDATE và DELETE." + "value" : "Tiến trình thoát với mã %d" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "读取架构并运行任意非破坏性查询,包括 INSERT、UPDATE 和 DELETE。" + "value" : "进程退出,退出码 %d" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "讀取綱要並執行任何非破壞性查詢,包括 INSERT、UPDATE 和 DELETE。" + "value" : "處理程序結束,結束碼 %d" } } } }, - "Read-Only" : { + "Process id from get_server_dashboard" : { + + }, + "Process id, accepted by stop_server_session" : { + + }, + "Production" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "읽기 전용" + "value" : "프로덕션" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Read-Only" + "value" : "Üretim" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chỉ đọc" + "value" : "Production" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "只读" + "value" : "生产" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "唯讀" + "value" : "生產" } } } }, - "Read-Only Connection" : { - "extractionState" : "stale", + "Profile" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Profile" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "읽기 전용 연결" + "value" : "프로필" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Salt Okunur Bağlantı" + "value" : "Profil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối chỉ đọc" + "value" : "Hồ sơ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "只读连接" + "value" : "配置" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "唯讀連線" + "value" : "設定檔" } } } }, - "Read-Write" : { - "extractionState" : "stale", + "Profile Details" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "읽기 및 쓰기" + "value" : "프로필 세부사항" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Okuma-Yazma" + "value" : "Profil Ayrıntıları" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đọc-ghi" + "value" : "Chi tiết hồ sơ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "读写" + "value" : "配置详情" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "讀寫" + "value" : "設定檔詳細資料" } } } }, - "Read-only" : { - "extractionState" : "stale", + "Profile Name" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Profile Name" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "읽기 전용" + "value" : "프로필 이름" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Salt okunur" + "value" : "Profil Adı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chỉ đọc" + "value" : "Tên hồ sơ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "只读" + "value" : "配置名称" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "唯讀" + "value" : "設定檔名稱" } } } }, - "Read-only connection" : { + "Profile Settings" : { "extractionState" : "stale", "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Profile Settings" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "읽기 전용 연결" + "value" : "프로필 설정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Read-only connection" + "value" : "Profil Ayarları" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối chỉ đọc" + "value" : "Cài đặt hồ sơ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "只读连接" + "value" : "配置设置" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "唯讀連線" + "value" : "設定檔設定" } } } }, - "Reading connections from %@…" : { + "Progress estimated (%d table(s) could not be counted)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@에서 연결을 읽는 중…" + "value" : "진행률은 추정치입니다(%d개 테이블의 행 수를 계산할 수 없음)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ konumundan bağlantılar okunuyor…" + "value" : "Tahmini ilerleme (%d tablo sayılamadı)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang đọc kết nối từ %@…" + "value" : "Tiến trình ước lượng (%d bảng không thể đếm)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在从%@读取连接…" + "value" : "进度为估算值(%d 个表无法计数)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在從%@讀取連線…" + "value" : "進度為估計值(%d 個資料表無法計數)" } } } }, - "Reading connections..." : { - "extractionState" : "stale", + "Project ID" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결을 읽는 중..." + "value" : "프로젝트 ID" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantılar okunuyor..." + "value" : "Proje ID" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang đọc kết nối..." + "value" : "Project ID" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在读取连接…" + "value" : "项目 ID" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在讀取連線…" + "value" : "專案 ID" } } } }, - "Ready after restart" : { - "comment" : "A description of a plugin that is ready to use after the app is restarted.", - "isCommentAutoGenerated" : true, + "Prompt at Connect" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "재시작 후 사용 가능" + "value" : "연결 시 입력 요청" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeniden başlattıktan sonra hazır" + "value" : "Bağlanırken Sor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sẵn sàng sau khi khởi động lại" + "value" : "Nhắc khi kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重启后可用" + "value" : "连接时提示" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重新啟動後可用" + "value" : "連線時提示" } } } }, - "Real" : { + "Prompt for API token" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Real" + "value" : "API 토큰 입력 요청" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Real" + "value" : "API belirtecini sor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Real" + "value" : "Hỏi token API" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Real" + "value" : "提示输入 API 令牌" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Real" + "value" : "提示輸入 API 權杖" } } } }, - "Reasoning" : { + "Prompt for password" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "추론" + "value" : "암호 입력 요청" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Akıl yürütme" + "value" : "Parolayı sor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Suy luận" + "value" : "Hỏi mật khẩu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "推理" + "value" : "提示输入密码" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "推理" + "value" : "提示輸入密碼" } } } }, - "Reasoning…" : { + "Prompt template" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "추론 중…" + "value" : "프롬프트 템플릿" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Akıl yürütüyor…" + "value" : "İstem şablonu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang suy luận…" + "value" : "Mẫu prompt" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "推理中…" + "value" : "提示词模板" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "推理中…" + "value" : "提示詞範本" } } } }, - "Reassign" : { + "Propose indexes for a slow query" : { + + }, + "protected" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "재할당" + "value" : "보호됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeniden Ata" + "value" : "korumalı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gán lại" + "value" : "protected" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重新分配" + "value" : "受保护" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重新指派" + "value" : "受保護" } } } }, - "Reassign owned objects" : { + "Providers" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "소유 객체 재할당" + "value" : "제공자" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sahip olunan nesneleri devret" + "value" : "Providers" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển quyền sở hữu các đối tượng" + "value" : "Nhà cung cấp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "转移拥有的对象" + "value" : "提供商" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "轉移擁有的物件" + "value" : "供應商" } } } }, - "Reassign to" : { + "Proxy Server" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "재할당 대상" + "value" : "프록시 서버" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Şuna devret" + "value" : "Proxy Sunucusu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển cho" + "value" : "Máy chủ proxy" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "转移给" + "value" : "代理服务器" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "轉移給" + "value" : "代理伺服器" } } } }, - "Recent" : { + "Public key authentication failed: %@" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "최근" + "value" : "공개 키 인증에 실패했습니다: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Son Kullanılanlar" + "value" : "Public key authentication failed: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gần đây" + "value" : "Xác thực khóa công khai thất bại: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "最近" + "value" : "公钥认证失败:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "最近" + "value" : "公鑰驗證失敗:%@" } } } }, - "Recent Conversations" : { + "Publish" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "최근 대화" + "value" : "게시" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Son Konuşmalar" + "value" : "Yayınla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cuộc trò chuyện gần đây" + "value" : "Xuất bản" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "最近的会话" + "value" : "发布" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "最近的對話" + "value" : "發佈" } } } }, - "Recent Queries" : { + "Publish %d Connections to Team Catalog…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "최근 쿼리" + "value" : "%d개 연결을 팀 카탈로그에 게시…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Son Sorgular" + "value" : "%d Bağlantıyı Takım Kataloğuna Yayınla…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Truy vấn gần đây" + "value" : "Xuất bản %d kết nối lên danh mục nhóm…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "最近的查询" + "value" : "将 %d 个连接发布到团队目录…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "最近的查詢" + "value" : "將 %d 個連線發佈到團隊目錄…" } } } }, - "Recent query history for a connection (supports ?limit=, ?search=, ?date_filter=)" : { + "Publish %d Connections to Team Library…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결의 최근 쿼리 기록(?limit=, ?search=, ?date_filter= 지원)" + "value" : "%d개 연결을 팀 라이브러리에 게시…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bir bağlantının son sorgu geçmişi (?limit=, ?search=, ?date_filter= destekler)" + "value" : "%d Bağlantıyı Takım Kitaplığına Yayınla…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lịch sử truy vấn gần đây của một kết nối (hỗ trợ ?limit=, ?search=, ?date_filter=)" + "value" : "Xuất bản %d kết nối lên thư viện nhóm…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接的最近查询历史(支持 ?limit=、?search=、?date_filter=)" + "value" : "将 %d 个连接发布到团队库…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線的最近查詢記錄(支援 ?limit=、?search=、?date_filter=)" + "value" : "將 %d 個連線發佈到團隊庫…" } } } }, - "Recent query history for this connection" : { + "Publish connections to a shared folder your team reads from. Passwords are never included." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 연결의 최근 쿼리 기록" + "value" : "팀이 사용하는 공유 폴더에 연결을 게시합니다. 암호는 포함되지 않습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu bağlantının son sorgu geçmişi" + "value" : "Bağlantıları, takımınızın okuduğu paylaşılan bir klasöre yayınlayın. Parolalar hiçbir zaman dahil edilmez." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lịch sử truy vấn gần đây của kết nối này" + "value" : "Xuất bản các kết nối vào một thư mục dùng chung mà nhóm bạn đọc từ đó. Mật khẩu không bao giờ được đưa vào." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此连接的最近查询历史" + "value" : "将连接发布到团队读取的共享文件夹。密码不会被包含在内。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此連線的最近查詢記錄" + "value" : "將連線發佈到團隊讀取的共用資料夾。密碼絕不會包含在內。" } } } }, - "Recently Closed" : { + "Publish Saved Queries to Team..." : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "최근에 닫은 항목" + "value" : "저장된 쿼리를 팀에 게시..." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Son Kapatılanlar" + "value" : "Kayıtlı Sorguları Takıma Yayınla..." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Vừa đóng gần đây" + "value" : "Xuất bản truy vấn đã lưu cho nhóm..." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "最近关闭" + "value" : "将已保存的查询发布给团队..." } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "最近關閉" + "value" : "將已儲存的查詢發佈給團隊..." } } } }, - "Recheck" : { + "Publish Saved Queries to Team…" : { + "comment" : "Text for a menu item that publishes saved queries to the user's team.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다시 확인" + "value" : "저장된 쿼리를 팀에 게시…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeniden Denetle" + "value" : "Kayıtlı Sorguları Takıma Yayınla…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kiểm tra lại" + "value" : "Xuất bản truy vấn đã lưu cho nhóm…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重新检查" + "value" : "将已保存的查询发布到团队…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重新檢查" + "value" : "將已儲存的查詢發佈到團隊…" } } } }, - "Reconnect" : { + "Publish saved queries to your team?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다시 연결" + "value" : "저장된 쿼리를 팀에 게시하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeniden Bağlan" + "value" : "Kayıtlı sorgular takımınıza yayınlansın mı?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối lại" + "value" : "Xuất bản các truy vấn đã lưu cho nhóm của bạn?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重新连接" + "value" : "要将已保存的查询发布给团队吗?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重新連線" + "value" : "要將已儲存的查詢發佈給團隊嗎?" } } } }, - "Reconnect failed: %@" : { + "Publish to Team Catalog…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다시 연결하지 못했습니다: %@" + "value" : "팀 카탈로그에 게시…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeniden bağlanma başarısız: %@" + "value" : "Takım Kataloğuna Yayınla…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối lại thất bại: %@" + "value" : "Xuất bản lên danh mục nhóm…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重新连接失败:%@" + "value" : "发布到团队目录…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重新連線失敗:%@" + "value" : "發佈到團隊目錄…" } } } }, - "Reconnect to Database" : { - "extractionState" : "stale", + "Publish to Team Library…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스에 다시 연결" + "value" : "팀 라이브러리에 게시…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Reconnect to Database" + "value" : "Takım Kitaplığına Yayınla…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối lại cơ sở dữ liệu" + "value" : "Xuất bản lên thư viện nhóm…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重新连接数据库" + "value" : "发布到团队库…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重新連線資料庫" + "value" : "發佈到團隊庫…" } } } }, - "Reconnecting failed after %d attempts." : { + "Published %d saved queries to your team." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%d번 시도한 후에도 다시 연결하지 못했습니다." + "value" : "저장된 쿼리 %d개를 팀에 게시했습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%d denemeden sonra yeniden bağlanılamadı." + "value" : "%d kayıtlı sorgu takımınıza yayınlandı." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối lại thất bại sau %d lần thử." + "value" : "Đã xuất bản %d truy vấn đã lưu cho nhóm của bạn." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重连在 %d 次尝试后失败。" + "value" : "已将 %d 条保存的查询发布给团队。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重新連線在 %d 次嘗試後失敗。" + "value" : "已將 %d 條已儲存的查詢發佈給團隊。" } } } }, - "Record Access" : { + "Published to the team library" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "레코드 액세스" + "value" : "팀 라이브러리에 게시됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kayıt Erişimi" + "value" : "Takım kitaplığına yayınlandı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Truy cập bản ghi" + "value" : "Đã xuất bản lên thư viện nhóm" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "记录访问" + "value" : "已发布到团队库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "記錄存取" + "value" : "已發佈到團隊庫" } } } }, - "Recording shortcut" : { + "Purchase License" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Purchase License" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "단축키 기록 중" + "value" : "라이선스 구매" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kısayol kaydediliyor" + "value" : "Lisans Satın Al" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang ghi phím tắt" + "value" : "Mua giấy phép" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在录制快捷键" + "value" : "购买许可证" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在錄製快速鍵" + "value" : "購買授權" } } } }, - "Red" : { + "Purple" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "빨간색" + "value" : "보라색" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kırmızı" + "value" : "Mor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đỏ" + "value" : "Tím" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "红色" + "value" : "紫色" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "紅色" + "value" : "紫色" } } } }, - "Redis" : { + "Put field names in the first row" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Redis" + "value" : "첫 번째 행에 필드 이름 포함" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Redis" + "value" : "Put field names in the first row" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Redis" + "value" : "Đặt tên trường ở dòng đầu tiên" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Redis" + "value" : "将字段名放在第一行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Redis" + "value" : "將欄位名稱放在第一列" } } } }, - "Redis driver has no TLS fallback. Preferred and Required both force TLS. Use Required for Redis Cloud, Upstash, and AWS ElastiCache encrypted endpoints." : { + "Put the suggested SQL into the query editor" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Redis 드라이버는 TLS 폴백을 지원하지 않습니다. ‘선호’와 ‘필수’ 모두 TLS를 강제합니다. Redis Cloud, Upstash 및 AWS ElastiCache 암호화 엔드포인트에는 ‘필수’를 사용하십시오." + "value" : "제안된 SQL을 쿼리 편집기에 삽입" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Redis sürücüsünde TLS geri dönüşü yoktur. Tercih Edilen ve Zorunlu'nun ikisi de TLS'yi zorunlu kılar. Redis Cloud, Upstash ve AWS ElastiCache şifreli uç noktaları için Zorunlu kullanın." + "value" : "Önerilen SQL'i sorgu düzenleyiciye koy" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Driver Redis không có cơ chế dự phòng TLS. Preferred và Required đều buộc dùng TLS. Dùng Required cho Redis Cloud, Upstash và các endpoint mã hóa của AWS ElastiCache." + "value" : "Đưa SQL được đề xuất vào trình soạn truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Redis 驱动没有 TLS 回退。“首选”和“必需”都会强制使用 TLS。连接 Redis Cloud、Upstash 和 AWS ElastiCache 加密端点时请使用“必需”。" + "value" : "将建议的 SQL 放入查询编辑器" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Redis 驅動程式沒有 TLS 備援。「Preferred」和「Required」都會強制使用 TLS。連接 Redis Cloud、Upstash 和 AWS ElastiCache 加密端點時請使用「Required」。" + "value" : "將建議的 SQL 放入查詢編輯器" } } } }, - "Redo" : { + "Queries" : { + "comment" : "A section header for the list of queries in the favorites tab.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "실행 복귀" + "value" : "쿼리" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Redo" + "value" : "Sorgular" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Làm lại" + "value" : "Truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重做" + "value" : "查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重做" + "value" : "查詢" } } } }, - "Ref Columns" : { + "Queries recently run against a connection, newest first. limit is 1 to 500 and defaults to 50, search matches the query text, and date_filter is today, thisWeek or thisMonth." : { + + }, + "Queries recently run against this connection, newest first" : { + + }, + "Queries you run appear here." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "참조 열" + "value" : "실행한 쿼리가 여기에 표시됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Referans Sütunlar" + "value" : "Çalıştırdığınız sorgular burada görünür." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cột tham chiếu" + "value" : "Các truy vấn bạn chạy sẽ xuất hiện ở đây." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "引用列" + "value" : "你运行的查询会显示在这里。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "參考欄位" + "value" : "你執行的查詢會顯示在這裡。" } } } }, - "Ref Schema" : { + "Query" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "참조 스키마" + "value" : "쿼리" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Referans Şema" + "value" : "Sorgu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Schema tham chiếu" + "value" : "Truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "参考 Schema" + "value" : "查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "參考綱要" + "value" : "查詢" } } } }, - "Ref Table" : { + "Query Behavior" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "참조 테이블" + "value" : "쿼리 동작" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Referans Tablo" + "value" : "Sorgu Davranışı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bảng tham chiếu" + "value" : "Hành vi truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "引用表" + "value" : "查询行为" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "參考資料表" + "value" : "查詢行為" } } } }, - "Referenced columns (comma-separated)" : { + "Query cancelled" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "참조 열(쉼표로 구분)" + "value" : "쿼리가 취소되었습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Referenced columns (comma-separated)" + "value" : "Query cancelled" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cột tham chiếu (phân tách bằng dấu phẩy)" + "value" : "Đã hủy truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "引用列(逗号分隔)" + "value" : "查询已取消" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "參考欄位(以逗號分隔)" + "value" : "查詢已取消" } } } }, - "Referenced row not found" : { + "Query executed successfully" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "참조된 행을 찾을 수 없음" + "value" : "쿼리가 성공적으로 실행되었습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Referans satır bulunamadı" + "value" : "Sorgu başarıyla çalıştırıldı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy dòng tham chiếu" + "value" : "Truy vấn thực thi thành công" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未找到引用行" + "value" : "查询执行成功" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "找不到參考的列" + "value" : "查詢執行成功" } } } }, - "Referenced table" : { - "extractionState" : "stale", + "Query executing" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "참조된 테이블" + "value" : "쿼리 실행 중" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Referenced table" + "value" : "Sorgu çalışıyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bảng tham chiếu" + "value" : "Đang thực hiện truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "引用表" + "value" : "正在执行查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "參考的資料表" + "value" : "正在執行查詢" } } } }, - "Refresh" : { + "Query executing..." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새로 고침" + "value" : "쿼리 실행 중..." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yenile" + "value" : "Query executing..." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Làm mới" + "value" : "Đang thực thi truy vấn..." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "刷新" + "value" : "正在执行查询..." } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重新整理" + "value" : "正在執行查詢…" } } } }, - "Refresh & Save" : { + "Query Execution" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새로 고침 및 저장" + "value" : "쿼리 실행" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yenile ve Kaydet" + "value" : "Sorgu Çalıştırma" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Làm mới & Lưu" + "value" : "Thực thi truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "刷新并保存" + "value" : "查询执行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重新整理並儲存" + "value" : "查詢執行" } } } }, - "Refresh (⌘R)" : { + "Query execution failed" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새로 고침(⌘R)" + "value" : "쿼리 실행 실패" + } + } + } + }, + "Query Execution Failed" : { + "extractionState" : "stale", + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "쿼리 실행 실패" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Refresh (⌘R)" + "value" : "Sorgu Çalıştırma Başarısız" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Làm mới (⌘R)" + "value" : "Thực thi truy vấn thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "刷新 (⌘R)" + "value" : "查询执行失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重新整理 (⌘R)" + "value" : "查詢執行失敗" } } } }, - "Refresh Now" : { + "Query failed: %@" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "지금 새로 고침" + "value" : "쿼리 실패: %@" + } + } + } + }, + "Query failed. %@" : { + "comment" : "A message that is announced to the user when a query fails. The argument is the error message.", + "isCommentAutoGenerated" : true, + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "쿼리에 실패했습니다. %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Şimdi Yenile" + "value" : "Sorgu başarısız oldu. %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Làm mới ngay" + "value" : "Truy vấn thất bại. %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "立即刷新" + "value" : "查询失败。%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "立即重新整理" + "value" : "查詢失敗。%@" } } } }, - "Refresh data" : { - "extractionState" : "stale", + "Query for a question on %@" : { + + }, + "Query History" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터 새로 고침" + "value" : "쿼리 기록" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Refresh data" + "value" : "Sorgu Geçmişi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Làm mới dữ liệu" + "value" : "Lịch sử truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "刷新数据" + "value" : "查询历史" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重新整理資料" + "value" : "查詢歷史" } } } }, - "Refresh database list" : { + "Query history for %@" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 목록 새로 고침" + "value" : "%@의 쿼리 기록" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Refresh database list" + "value" : "%@ için sorgu geçmişi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Làm mới danh sách cơ sở dữ liệu" + "value" : "Lịch sử truy vấn của %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "刷新数据库列表" + "value" : "%@的查询历史" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重新整理資料庫清單" + "value" : "%@的查詢記錄" } } } }, - "Refresh license status from server" : { + "Query History Is Unavailable" : { + "comment" : "A message that indicates that the query history is unavailable.", + "isCommentAutoGenerated" : true, "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Refresh license status from server" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "서버에서 라이선스 상태 새로 고침" + "value" : "쿼리 기록을 사용할 수 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sunucudan lisans durumunu yenile" + "value" : "Sorgu Geçmişi Kullanılamıyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Làm mới trạng thái giấy phép từ máy chủ" + "value" : "Không dùng được lịch sử truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "从服务器刷新许可证状态" + "value" : "查询历史不可用" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "從伺服器重新整理授權狀態" + "value" : "查詢歷史無法使用" } } } }, - "Refresh plugin list" : { + "Query history of %@" : { + + }, + "Query history summary for %@" : { + + }, + "Query History:" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플러그인 목록 새로 고침" + "value" : "쿼리 기록:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklenti listesini yenile" + "value" : "Query History:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Làm mới danh sách plugin" + "value" : "Lịch sử truy vấn:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "刷新插件列表" + "value" : "查询历史:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重新整理外掛清單" + "value" : "查詢歷史:" } } } }, - "Refreshing" : { + "Query Insights" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새로 고치는 중" + "value" : "쿼리 인사이트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yenileniyor" + "value" : "Sorgu Analizleri" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang làm mới" + "value" : "Phân tích truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在刷新" + "value" : "查询分析" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在重新整理" + "value" : "查詢分析" } } } }, - "Refreshing will discard all unsaved changes." : { + "Query parameters (:name syntax)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새로 고치면 저장하지 않은 모든 변경 사항이 삭제됩니다." + "value" : "쿼리 매개변수(:name 구문)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yenileme, kaydedilmemiş tüm değişiklikleri siler." + "value" : "Sorgu parametreleri (:name söz dizimi)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Làm mới sẽ hủy tất cả thay đổi chưa lưu." + "value" : "Tham số truy vấn (cú pháp :name)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "刷新将丢弃所有未保存的更改。" + "value" : "查询参数(:name 语法)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重新整理將捨棄所有未儲存的變更。" + "value" : "查詢參數(:name 語法)" } } } }, - "Regenerate" : { + "Query preview" : { + "comment" : "Accessibility label for the query preview text view.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다시 생성" + "value" : "쿼리 미리보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Regenerate" + "value" : "Sorgu önizlemesi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tạo lại" + "value" : "Xem trước truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重新生成" + "value" : "查询预览" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重新產生" + "value" : "查詢預覽" } } } }, - "Regex" : { + "Query Result Limit" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "정규식" + "value" : "쿼리 결과 제한" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Regex" + "value" : "Sorgu Sonuç Limiti" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Regex" + "value" : "Giới hạn kết quả truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正则表达式" + "value" : "查询结果限制" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正規表達式" + "value" : "查詢結果上限" } } } }, - "Registry" : { + "Query result limit must be between %@ and %@" : { + "extractionState" : "stale", "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Query result limit must be between %1$@ and %2$@" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "레지스트리" + "value" : "쿼리 결과 제한은 %1$@에서 %2$@ 사이여야 합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Registry" + "value" : "Sorgu sonuç limiti %@ ile %@ arasında olmalıdır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kho plugin" + "value" : "Giới hạn kết quả truy vấn phải từ %@ đến %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "插件仓库" + "value" : "查询结果限制必须在 %@ 到 %@ 之间" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "外掛註冊" + "value" : "查詢結果上限必須介於 %1$@ 到 %2$@ 之間" } } } }, - "Relational" : { + "Query Result Row Cap" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "관계형" + "value" : "쿼리 결과 행 상한" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İlişkisel" + "value" : "Sorgu Sonucu Satır Sınırı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Quan hệ" + "value" : "Giới hạn số hàng kết quả" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "关系型" + "value" : "查询结果行数上限" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "關聯式" + "value" : "查詢結果列數上限" } } } }, - "Relaunch Failed" : { + "Query result row cap must be between %@ and %@" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Query result row cap must be between %1$@ and %2$@" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "재실행 실패" + "value" : "쿼리 결과 행 상한은 %1$@에서 %2$@ 사이여야 합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeniden Başlatma Başarısız" + "value" : "Sorgu sonucu satır sınırı %@ ile %@ arasında olmalıdır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở lại thất bại" + "value" : "Giới hạn số hàng kết quả phải nằm trong khoảng %@ đến %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重新启动失败" + "value" : "查询结果行数上限必须在 %@ 和 %@ 之间" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重新啟動失敗" + "value" : "查詢結果列數上限必須介於 %1$@ 到 %2$@ 之間" } } } }, - "Reload" : { + "Query Results" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다시 로드" + "value" : "쿼리 결과" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeniden Yükle" + "value" : "Sorgu Sonuçları" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tải lại" + "value" : "Kết quả truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重新加载" + "value" : "查询结果" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重新載入" + "value" : "查詢結果" } } } }, - "Reload from Disk" : { + "Query review on %@" : { + + }, + "Query timed out after %d seconds" : { + + }, + "Query timeout" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "디스크에서 다시 로드" + "value" : "쿼리 제한 시간" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Diskten Yeniden Yükle" + "value" : "Sorgu zaman aşımı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tải lại từ đĩa" + "value" : "Thời gian chờ truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "从磁盘重新载入" + "value" : "查询超时" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "從磁碟重新載入" + "value" : "查詢逾時" } } } }, - "Reload with new properties?" : { + "Query timeout in seconds (default 30, max 300)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 속성으로 다시 로드하시겠습니까?" + "value" : "쿼리 제한 시간(초, 기본값 30, 최대 300)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni özelliklerle yeniden yüklensin mi?" + "value" : "Saniye cinsinden sorgu zaman aşımı (varsayılan 30, en çok 300)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tải lại với các thuộc tính mới?" + "value" : "Thời gian chờ truy vấn tính bằng giây (mặc định 30, tối đa 300)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "要用新属性重新加载吗?" + "value" : "查询超时秒数(默认 30,最大 300)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "要用新屬性重新載入嗎?" + "value" : "查詢逾時秒數(預設 30,最大 300)" } } } }, - "Remote (Quack)" : { + "Query timeout in seconds (max 300). Defaults to the server's configured query timeout." : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "원격(Quack)" + "value" : "쿼리 제한 시간(초, 최대 300). 서버에 설정된 쿼리 제한 시간이 기본값입니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Uzak (Quack)" + "value" : "Saniye cinsinden sorgu zaman aşımı (en fazla 300). Varsayılan olarak sunucunun ayarlı sorgu zaman aşımıdır." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Từ xa (Quack)" + "value" : "Thời gian chờ truy vấn tính bằng giây (tối đa 300). Mặc định là thời gian chờ truy vấn đã cấu hình của máy chủ." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "远程 (Quack)" + "value" : "查询超时秒数(最大 300)。默认使用服务器配置的查询超时。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "遠端 (Quack)" + "value" : "查詢逾時秒數(最多 300)。預設使用伺服器設定的查詢逾時。" } } } }, - "Remote (Quack, experimental)" : { + "Query timeout:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "원격(Quack, 실험적)" + "value" : "쿼리 제한 시간:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Uzak (Quack, deneysel)" + "value" : "Sorgu zaman aşımı:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Từ xa (Quack, thử nghiệm)" + "value" : "Thời gian chờ truy vấn:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "远程(Quack,实验性)" + "value" : "查询超时:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "遠端(Quack,實驗性)" + "value" : "查詢逾時:" } } } }, - "Remote (Turso)" : { + "Query was cancelled" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "원격(Turso)" + "value" : "쿼리가 취소되었습니다" + } + } + } + }, + "Query:" : { + "extractionState" : "stale", + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "쿼리:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Uzak (Turso)" + "value" : "Query:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Từ xa (Turso)" + "value" : "Truy vấn:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "远程 (Turso)" + "value" : "查询:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "遠端 (Turso)" + "value" : "查詢:" } } } }, - "Remove" : { + "Question" : { + + }, + "QUICK" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "제거" + "value" : "QUICK" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kaldır" + "value" : "HIZLI" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gỡ" + "value" : "NHANH" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "移除" + "value" : "快速" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "移除" + "value" : "快速" } } } }, - "Remove %@" : { + "Quick search across all columns..." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 제거" + "value" : "모든 열에서 빠르게 검색..." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ Öğesini Kaldır" + "value" : "Quick search across all columns..." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gỡ %@" + "value" : "Tìm kiếm nhanh trên tất cả các cột..." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "移除%@" + "value" : "快速搜索所有列..." } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "移除%@" + "value" : "在所有欄位中快速搜尋…" } } } }, - "Remove %@?" : { + "Quick Switcher" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@을(를) 제거하시겠습니까?" + "value" : "빠른 전환" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ kaldırılsın mı?" + "value" : "Quick Switcher" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gỡ %@?" + "value" : "Chuyển đổi nhanh" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "移除 %@?" + "value" : "快速切换" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "移除 %@?" + "value" : "快速切換器" } } } }, - "Remove All Filters" : { + "Quick Switcher (⇧⌘O)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 필터 제거" + "value" : "빠른 전환(⇧⌘O)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm Filtreleri Kaldır" + "value" : "Hızlı Geçiş (⇧⌘O)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gỡ tất cả bộ lọc" + "value" : "Chuyển đổi nhanh (⇧⌘O)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "移除所有筛选" + "value" : "快速切换 (⇧⌘O)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "移除所有篩選" + "value" : "快速切換器 (⇧⌘O)" } } } }, - "Remove Column" : { + "Quick Switcher (⌘P)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열 제거" + "value" : "빠른 전환(⌘P)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sütunu Kaldır" + "value" : "Quick Switcher (⌘P)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gỡ cột" + "value" : "Chuyển đổi nhanh (⌘P)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "移除列" + "value" : "快速切换 (⌘P)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "移除欄位" + "value" : "快速切換器 (⌘P)" } } } }, - "Remove Element" : { - "comment" : "A button that removes an element from an array.", - "isCommentAutoGenerated" : true, + "Quick Switcher..." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "요소 제거" + "value" : "빠른 전환..." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Öğeyi Kaldır" + "value" : "Quick Switcher..." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xoá phần tử" + "value" : "Chuyển đổi nhanh..." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "移除元素" + "value" : "快速切换..." } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "移除元素" + "value" : "快速切換器…" } } } }, - "Remove Failed" : { + "Quit & Reopen" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "제거 실패" + "value" : "종료 후 다시 열기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kaldırma Başarısız" + "value" : "Çık ve Yeniden Aç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gỡ thất bại" + "value" : "Thoát và mở lại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "移除失败" + "value" : "退出并重新打开" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "移除失敗" + "value" : "結束並重新開啟" } } } }, - "Remove Filter" : { + "Quit Anyway" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터 제거" + "value" : "그래도 종료" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtreyi Kaldır" + "value" : "Yine de Çık" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa bộ lọc" + "value" : "Vẫn thoát" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "移除筛选" + "value" : "仍然退出" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "移除篩選" + "value" : "仍要結束" } } } }, - "Remove Folder" : { + "Quit TablePro" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "폴더 제거" + "value" : "TablePro 종료" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Klasörü Kaldır" + "value" : "TablePro'dan Çık" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa Thư mục" + "value" : "Thoát TablePro" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "移除文件夹" + "value" : "退出 TablePro" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "移除資料夾" + "value" : "結束 TablePro" } } } }, - "Remove Foreign Key" : { + "Quitting stops the run against %@. Statements that already ran stay applied." : { + + }, + "Quote" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "외래 키 제거" + "value" : "따옴표 처리" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yabancı Anahtarı Kaldır" + "value" : "Quote" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gỡ khóa ngoại" + "value" : "Dấu ngoặc kép" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "移除外键" + "value" : "引号" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "移除外鍵" + "value" : "引號" } } } }, - "Remove Host" : { - "comment" : "Label for a button that removes the selected host from a list.", - "isCommentAutoGenerated" : true, + "Quote character" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "호스트 제거" + "value" : "따옴표 문자" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sunucuyu Kaldır" + "value" : "Tırnak karakteri" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xoá máy chủ" + "value" : "Ký tự trích dẫn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "移除主机" + "value" : "引号字符" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "移除主機" + "value" : "引號字元" } } } }, - "Remove Index" : { + "Quote Identifiers" : { + + }, + "Quote identifiers and escape string literals using the connection's own driver rules. Use it before putting any name or value into hand-written SQL." : { + + }, + "Quote if needed" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "인덱스 제거" + "value" : "필요한 경우 따옴표 사용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İndeksi Kaldır" + "value" : "Quote if needed" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gỡ index" + "value" : "Đặt trong ngoặc kép nếu cần" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "移除索引" + "value" : "按需加引号" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "移除索引" + "value" : "必要時加引號" } } } }, - "Remove Linked Folder?" : { + "Quoted identifiers, in the order supplied" : { + + }, + "Ran" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결된 폴더를 제거하시겠습니까?" + "value" : "실행 시각" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlı Klasör Kaldırılsın mı?" + "value" : "Çalıştırma" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gỡ thư mục liên kết?" + "value" : "Số lần chạy" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "要移除链接的文件夹吗?" + "value" : "运行次数" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "要移除連結的資料夾嗎?" + "value" : "執行次數" } } } }, - "Remove Provider" : { + "Ran %@ statement" : { + + }, + "Ran %@ statements" : { + + }, + "ran %@×" : { + "comment" : "Run count in a detail line, %@ is a count", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "제공자 제거" + "value" : "실행 %@회" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sağlayıcıyı Kaldır" + "value" : "%@ kez çalıştı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gỡ nhà cung cấp" + "value" : "chạy %@ lần" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "移除提供方" + "value" : "运行 %@ 次" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "移除供應商" + "value" : "執行 %@ 次" } } } }, - "Remove Provider?" : { + "Range" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "제공자를 제거하시겠습니까?" + "value" : "범위" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sağlayıcı Kaldırılsın mı?" + "value" : "Aralık" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gỡ nhà cung cấp?" + "value" : "Khoảng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "移除提供方?" + "value" : "范围" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "移除供應商?" + "value" : "範圍" } } } }, - "Remove all filters and reload" : { - "extractionState" : "stale", + "Rank By" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 필터를 제거하고 다시 로드" + "value" : "순위 기준" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm filtreleri kaldır ve yeniden yükle" + "value" : "Sıralama Ölçütü" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa tất cả bộ lọc và tải lại" + "value" : "Xếp hạng theo" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "移除所有筛选并重新加载" + "value" : "排序依据" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "移除所有篩選並重新載入" + "value" : "排序依據" } } } }, - "Remove attachment" : { + "Rate limited" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "첨부 파일 제거" + "value" : "요청 한도 초과" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eki kaldır" + "value" : "Hız sınırı aşıldı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gỡ tệp đính kèm" + "value" : "Bị giới hạn tốc độ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "移除附件" + "value" : "已限流" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "移除附件" + "value" : "已達速率限制" } } } }, - "Remove filter" : { + "Rate limited. Please try again later." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터 제거" + "value" : "요청 한도를 초과했습니다. 나중에 다시 시도하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtreyi kaldır" + "value" : "İstek sınırına ulaşıldı. Lütfen daha sonra tekrar deneyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa bộ lọc" + "value" : "Đã vượt giới hạn tốc độ. Vui lòng thử lại sau." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "移除筛选" + "value" : "请求频率超限。请稍后再试。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "移除篩選" + "value" : "已達速率限制。請稍後再試。" } } } }, - "Remove filter row" : { + "Raw" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터 행 제거" + "value" : "원시" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtre satırını kaldır" + "value" : "Ham" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa dòng bộ lọc" + "value" : "Thô" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "移除筛选行" + "value" : "原始" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "移除篩選列" + "value" : "原始" } } } }, - "Remove folder" : { + "Raw Filter" : { + + }, + "Raw result columns" : { + + }, + "Raw result rows" : { + + }, + "Raw SQL" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "폴더 제거" + "value" : "원시 SQL" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Klasörü kaldır" + "value" : "Raw SQL" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa thư mục" + "value" : "SQL thô" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "移除文件夹" + "value" : "原始 SQL" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "移除資料夾" + "value" : "原始 SQL" } } } }, - "Remove from Favorites" : { - "comment" : "A button label that deletes a table from the user's favorites.", - "isCommentAutoGenerated" : true, + "Raw SQL cannot be empty" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "즐겨찾기에서 제거" + "value" : "원시 SQL은 비워 둘 수 없습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sık Kullanılanlardan Kaldır" + "value" : "Ham SQL boş olamaz" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gỡ khỏi Yêu thích" + "value" : "SQL thô không được để trống" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "从收藏中移除" + "value" : "原始 SQL 不能为空" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "從收藏中移除" + "value" : "原始 SQL 不可為空" } } } }, - "Remove from Group" : { + "Raw SQL filters are not available over MCP." : { + + }, + "Raw Value" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "그룹에서 제거" + "value" : "원시 값" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Gruptan Çıkar" + "value" : "Ham Değer" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa khỏi Nhóm" + "value" : "Giá trị gốc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "从分组移除" + "value" : "原始值" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "從群組移除" + "value" : "原始值" } } } }, - "Remove from Recent" : { + "Re-enter passphrase" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "최근 항목에서 제거" + "value" : "암호 구문 다시 입력" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Son Kullanılanlardan Kaldır" + "value" : "Parolayı yeniden girin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa khỏi mục Gần đây" + "value" : "Nhập lại cụm mật khẩu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "从“最近”中移除" + "value" : "再次输入口令" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "從「最近」中移除" + "value" : "再次輸入密碼" } } } }, - "Remove from Sidebar" : { + "Re-read the file with these settings. This discards unsaved changes." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사이드바에서 제거" + "value" : "이 설정으로 파일을 다시 읽습니다. 저장하지 않은 변경 사항은 삭제됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sidebar'dan Kaldır" + "value" : "Dosyayı bu ayarlarla yeniden okur. Bu, kaydedilmemiş değişiklikleri atar." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gỡ khỏi thanh bên" + "value" : "Đọc lại tệp với các cài đặt này. Thao tác này bỏ các thay đổi chưa lưu." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "从侧边栏移除" + "value" : "使用这些设置重新读取文件。未保存的更改会被丢弃。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "從側邊欄移除" + "value" : "使用這些設定重新讀取檔案。未儲存的變更會被捨棄。" } } } }, - "Remove image" : { + "Read" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이미지 제거" + "value" : "읽기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Görseli kaldır" + "value" : "Okuma" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gỡ hình ảnh" + "value" : "Đọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "移除图像" + "value" : "读取" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "移除圖片" + "value" : "讀取" } } } }, - "Remove jump host" : { + "Read & Write" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "점프 호스트 제거" + "value" : "읽기 및 쓰기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Atlama sunucusunu kaldır" + "value" : "Okuma & Yazma" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa jump host" + "value" : "Đọc & ghi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "移除跳板机" + "value" : "读写" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "移除跳板主機" + "value" : "讀寫" } } } }, - "Remove license from this machine" : { + "Read Only" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 기기에서 라이선스 제거" + "value" : "읽기 전용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Lisansı bu makineden kaldır" + "value" : "Salt Okunur" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gỡ giấy phép khỏi máy này" + "value" : "Chỉ đọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "从此设备移除许可证" + "value" : "只读" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "從此機器移除授權" + "value" : "唯讀" } } } }, - "Remove provider" : { + "Read Only Connection" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "제공자 제거" + "value" : "읽기 전용 연결" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sağlayıcıyı kaldır" + "value" : "Salt Okunur Bağlantı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa nhà cung cấp" + "value" : "Kết nối chỉ đọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "移除提供商" + "value" : "只读连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "移除供應商" + "value" : "唯讀連線" } } } }, - "Remove tag %@" : { - "comment" : "A label for a button that removes a tag from a list of selected tags. The argument is the name of the tag to be removed.", - "isCommentAutoGenerated" : true, + "Read Preference" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "태그 %@ 제거" + "value" : "읽기 기본 설정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ etiketini kaldır" + "value" : "Read Preference" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xoá thẻ %@" + "value" : "Read Preference" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "移除标签 %@" + "value" : "Read Preference" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "移除標籤 %@" + "value" : "Read Preference" } } } }, - "Remove “%@”?" : { + "Read rows from a table with filters, sorting and paging, built by TablePro's own query builder for this engine. Prefer it over hand-writing SELECT: it quotes identifiers, escapes values, and pages the way the app does." : { + + }, + "Read saved passwords from Keychain (requires permission)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "“%@”을(를) 제거하시겠습니까?" + "value" : "키체인에서 저장된 암호 읽기(권한 필요)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "“%@” kaldırılsın mı?" + "value" : "Keychain'den kayıtlı parolaları oku (izin gerektirir)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gỡ “%@”?" + "value" : "Đọc mật khẩu đã lưu từ Keychain (cần quyền)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "要移除“%@”吗?" + "value" : "从钥匙串读取已保存的密码(需要权限)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "要移除「%@」嗎?" + "value" : "從鑰匙圈讀取已儲存的密碼(需要權限)" } } } }, - "Removed" : { + "Read schema and run any non-destructive query, including INSERT, UPDATE, and DELETE." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "제거됨" + "value" : "스키마를 읽고 INSERT, UPDATE, DELETE를 포함한 모든 비파괴 쿼리를 실행합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kaldırıldı" + "value" : "Şemayı oku ve INSERT, UPDATE, DELETE dahil yıkıcı olmayan tüm sorguları çalıştır." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã xóa" + "value" : "Đọc schema và chạy mọi truy vấn không phá hủy, bao gồm INSERT, UPDATE và DELETE." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "移除" + "value" : "读取架构并运行任意非破坏性查询,包括 INSERT、UPDATE 和 DELETE。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "移除" + "value" : "讀取綱要並執行任何非破壞性查詢,包括 INSERT、UPDATE 和 DELETE。" } } } }, - "Rename" : { + "Read schema and run SELECT queries." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이름 변경" + "value" : "스키마를 읽고 SELECT 쿼리를 실행합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeniden Adlandır" + "value" : "Şemayı oku ve SELECT sorguları çalıştır." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đổi tên" + "value" : "Đọc schema và chạy truy vấn SELECT." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重命名" + "value" : "读取架构并运行 SELECT 查询。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重新命名" + "value" : "讀取綱要並執行 SELECT 查詢。" } } } }, - "Rename Column" : { + "Read the live server panels TablePro shows: active sessions, server metrics, and slow queries. Available on PostgreSQL, MySQL, SQL Server, ClickHouse, DuckDB, and SQLite." : { + + }, + "Read-only" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열 이름 변경" + "value" : "읽기 전용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sütunu Yeniden Adlandır" + "value" : "Salt okunur" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đổi tên cột" + "value" : "Chỉ đọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重命名列" + "value" : "只读" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重新命名欄位" + "value" : "唯讀" } } } }, - "Rename Column…" : { + "Read-Only" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열 이름 변경…" + "value" : "읽기 전용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sütunu Yeniden Adlandır…" + "value" : "Read-Only" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đổi tên cột…" + "value" : "Chỉ đọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重命名列…" + "value" : "只读" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重新命名欄位…" + "value" : "唯讀" } } } }, - "Rename Group" : { + "Read-only connection" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "그룹 이름 변경" + "value" : "읽기 전용 연결" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Grubu Yeniden Adlandır" + "value" : "Read-only connection" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đổi tên nhóm" + "value" : "Kết nối chỉ đọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重命名分组" + "value" : "只读连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重新命名群組" + "value" : "唯讀連線" } } } }, - "Rename…" : { + "Read-Only Connection" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이름 변경…" + "value" : "읽기 전용 연결" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeniden Adlandır…" + "value" : "Salt Okunur Bağlantı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đổi tên…" + "value" : "Kết nối chỉ đọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重命名…" + "value" : "只读连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重新命名…" + "value" : "唯讀連線" } } } }, - "Renew" : { + "Read-Only. Choose a different connection to write changes to." : { + + }, + "Read-Write" : { + "extractionState" : "stale", "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Renew" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "갱신" + "value" : "읽기 및 쓰기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yenile" + "value" : "Okuma-Yazma" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gia hạn" + "value" : "Đọc-ghi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "续期" + "value" : "读写" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "續訂" + "value" : "讀寫" } } } }, - "Renew License" : { + "Reading connections from %@…" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Renew License" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "라이선스 갱신" + "value" : "%@에서 연결을 읽는 중…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Lisansı Yenile" + "value" : "%@ konumundan bağlantılar okunuyor…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gia hạn giấy phép" + "value" : "Đang đọc kết nối từ %@…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "续期许可证" + "value" : "正在从%@读取连接…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "續訂授權" + "value" : "正在從%@讀取連線…" } } } }, - "Renew License…" : { + "Reading connections..." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "라이선스 갱신…" + "value" : "연결을 읽는 중..." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Lisansı Yenile…" + "value" : "Bağlantılar okunuyor..." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gia hạn giấy phép…" + "value" : "Đang đọc kết nối..." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "续期许可证…" + "value" : "正在读取连接…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "續訂授權…" + "value" : "正在讀取連線…" } } } }, - "Reopen Closed Tab" : { + "Ready after restart" : { + "comment" : "A description of a plugin that is ready to use after the app is restarted.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "닫은 탭 다시 열기" + "value" : "재시작 후 사용 가능" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kapatılan Sekmeyi Yeniden Aç" + "value" : "Yeniden başlattıktan sonra hazır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở lại tab đã đóng" + "value" : "Sẵn sàng sau khi khởi động lại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重新打开已关闭的标签页" + "value" : "重启后可用" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重新開啟已關閉的分頁" + "value" : "重新啟動後可用" } } } }, - "Reopen Last Session" : { + "Real" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "마지막 세션 다시 열기" + "value" : "Real" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Son Oturumu Yeniden Aç" + "value" : "Real" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở lại phiên làm việc trước" + "value" : "Real" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重新打开上次会话" + "value" : "Real" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重新開啟上次工作階段" + "value" : "Real" } } } }, - "Reorder Column" : { + "Reasoning" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열 순서 변경" + "value" : "추론" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sütunu Yeniden Sırala" + "value" : "Akıl yürütme" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sắp xếp lại cột" + "value" : "Suy luận" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "调整列顺序" + "value" : "推理" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "調整欄位順序" + "value" : "推理" } } } }, - "Replace" : { + "Reasoning…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "바꾸기" + "value" : "추론 중…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Değiştir" + "value" : "Akıl yürütüyor…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thay thế" + "value" : "Đang suy luận…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "替换" + "value" : "推理中…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "取代" + "value" : "推理中…" } } } }, - "Replace the estimate with an exact row count." : { + "Reassign" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "추정치를 정확한 행 수로 바꿉니다." + "value" : "재할당" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tahmini, tam satır sayısıyla değiştirir." + "value" : "Yeniden Ata" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thay ước tính bằng số dòng chính xác." + "value" : "Gán lại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "用精确行数替换估算值。" + "value" : "重新分配" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "用精確列數取代估算值。" + "value" : "重新指派" } } } }, - "Replication lag: %ds" : { + "Reassign owned objects" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "복제 지연: %d초" + "value" : "소유 객체 재할당" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Çoğaltma gecikmesi: %ds" + "value" : "Sahip olunan nesneleri devret" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Độ trễ sao chép: %ds" + "value" : "Chuyển quyền sở hữu các đối tượng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制延迟:%d秒" + "value" : "转移拥有的对象" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複寫延遲:%d 秒" + "value" : "轉移擁有的物件" } } } }, - "Replication lag: %llds" : { - "extractionState" : "stale", + "Reassign to" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "복제 지연: %lld초" + "value" : "재할당 대상" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Replication lag: %llds" + "value" : "Şuna devret" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Độ trễ sao chép: %llds" + "value" : "Chuyển cho" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制延迟:%llds" + "value" : "转移给" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複寫延遲:%lld 秒" + "value" : "轉移給" } } } }, - "Replies count against your Claude subscription limits. You share those limits with claude.ai and your own Claude Code sessions, so running out here stops your work there too." : { + "Recent" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "답변은 Claude 구독 한도를 사용합니다. 이 한도는 claude.ai 및 사용자의 Claude Code 세션과 공유되므로 여기서 한도를 소진하면 그곳에서도 작업이 중단됩니다." + "value" : "최근" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yanıtlar Claude abonelik limitlerinizden düşer. Bu limitleri claude.ai ve kendi Claude Code oturumlarınızla paylaşırsınız, bu yüzden burada limiti doldurmak oradaki işinizi de durdurur." + "value" : "Son Kullanılanlar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Các câu trả lời được tính vào giới hạn gói Claude của bạn. Bạn dùng chung giới hạn đó với claude.ai và các phiên Claude Code của mình, nên hết hạn mức ở đây cũng làm dừng công việc bên đó." + "value" : "Gần đây" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "回复会计入你的 Claude 订阅额度。该额度与 claude.ai 和你自己的 Claude Code 会话共用,因此在这里用完也会让那边的工作停下来。" + "value" : "最近" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "回覆會計入你的 Claude 訂閱額度。該額度與 claude.ai 和你自己的 Claude Code 工作階段共用,因此在這裡用完也會讓那邊的工作停下來。" + "value" : "最近" } } } }, - "Report an Issue" : { + "RECENT" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "문제 보고" + "value" : "최근" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorun Bildir" + "value" : "RECENT" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Báo cáo sự cố" + "value" : "GẦN ĐÂY" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "报告问题" + "value" : "最近" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "回報問題" + "value" : "最近" } } } }, - "Require SSL, skip verification" : { + "Recent Conversations" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSL 필수, 인증서 검증 건너뛰기" + "value" : "최근 대화" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSL zorunlu, doğrulamayı atla" + "value" : "Son Konuşmalar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Yêu cầu SSL, bỏ qua xác minh" + "value" : "Cuộc trò chuyện gần đây" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "要求 SSL,跳过验证" + "value" : "最近的会话" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "要求 SSL,略過驗證" + "value" : "最近的對話" } } } }, - "Require authentication" : { + "Recent Queries" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "인증 요구" + "value" : "최근 쿼리" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kimlik doğrulama gerekli" + "value" : "Son Sorgular" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Yêu cầu xác thực" + "value" : "Truy vấn gần đây" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "需要认证" + "value" : "最近的查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "需要驗證" + "value" : "最近的查詢" } } } }, - "Require confirmation or Touch ID before executing queries." : { + "Recent query history for a connection (supports ?limit=, ?search=, ?date_filter=)" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 실행 전에 확인 또는 Touch ID를 요구합니다." + "value" : "연결의 최근 쿼리 기록(?limit=, ?search=, ?date_filter= 지원)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorguları çalıştırmadan önce onay veya Touch ID gerektirir." + "value" : "Bir bağlantının son sorgu geçmişi (?limit=, ?search=, ?date_filter= destekler)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Yêu cầu xác nhận hoặc Touch ID trước khi thực thi truy vấn." + "value" : "Lịch sử truy vấn gần đây của một kết nối (hỗ trợ ?limit=, ?search=, ?date_filter=)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "执行查询前需要确认或 Touch ID。" + "value" : "连接的最近查询历史(支持 ?limit=、?search=、?date_filter=)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "執行查詢前需要確認或 Touch ID。" + "value" : "連線的最近查詢記錄(支援 ?limit=、?search=、?date_filter=)" } } } }, - "Required (skip verify)" : { + "Recent query history for this connection" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필수(인증서 검증 건너뛰기)" + "value" : "이 연결의 최근 쿼리 기록" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Zorunlu (doğrulamayı atla)" + "value" : "Bu bağlantının son sorgu geçmişi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bắt buộc (bỏ qua xác minh)" + "value" : "Lịch sử truy vấn gần đây của kết nối này" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "必需(跳过验证)" + "value" : "此连接的最近查询历史" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "必要(略過驗證)" + "value" : "此連線的最近查詢記錄" } } } }, - "Required only for an encrypted key" : { + "Recently Closed" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "암호화된 키에만 필요" + "value" : "최근에 닫은 항목" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yalnızca şifreli bir anahtar için gerekli" + "value" : "Son Kapatılanlar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chỉ cần cho khóa được mã hóa" + "value" : "Vừa đóng gần đây" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "仅加密密钥需要" + "value" : "最近关闭" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "僅加密金鑰需要" + "value" : "最近關閉" } } } }, - "Required only when the server enforces mutual TLS authentication." : { + "Recently opened tables, newest first" : { + + }, + "Recheck" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "서버에서 상호 TLS 인증을 적용하는 경우에만 필요합니다." + "value" : "다시 확인" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yalnızca sunucu karşılıklı TLS kimlik doğrulamasını zorunlu kıldığında gerekli." + "value" : "Yeniden Denetle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chỉ cần khi máy chủ bắt buộc xác thực TLS hai chiều." + "value" : "Kiểm tra lại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "仅当服务器强制双向 TLS 认证时需要。" + "value" : "重新检查" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "僅當伺服器強制雙向 TLS 驗證時需要。" + "value" : "重新檢查" } } } }, - "Requires" : { + "Reconnect" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필요 버전" + "value" : "다시 연결" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Requires" + "value" : "Yeniden Bağlan" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Yêu cầu" + "value" : "Kết nối lại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "需要" + "value" : "重新连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "需要" + "value" : "重新連線" } } } }, - "Reserved Shortcut" : { + "Reconnect failed: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "예약된 단축키" + "value" : "다시 연결하지 못했습니다: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ayrılmış Kısayol" + "value" : "Yeniden bağlanma başarısız: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phím tắt dành riêng" + "value" : "Kết nối lại thất bại: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "保留的快捷键" + "value" : "重新连接失败:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "保留的快速鍵" + "value" : "重新連線失敗:%@" } } } }, - "Reset" : { + "Reconnect to Database" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "재설정" + "value" : "데이터베이스에 다시 연결" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sıfırla" + "value" : "Reconnect to Database" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đặt lại" + "value" : "Kết nối lại cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重置" + "value" : "重新连接数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重設" + "value" : "重新連線資料庫" } } } }, - "Reset All Customizations" : { - "extractionState" : "stale", + "Reconnecting failed after %d attempts." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 사용자화 재설정" + "value" : "%d번 시도한 후에도 다시 연결하지 못했습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm Özelleştirmeleri Sıfırla" + "value" : "%d denemeden sonra yeniden bağlanılamadı." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đặt lại tất cả tùy chỉnh" + "value" : "Kết nối lại thất bại sau %d lần thử." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重置所有自定义" + "value" : "重连在 %d 次尝试后失败。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重設所有自訂設定" + "value" : "重新連線在 %d 次嘗試後失敗。" } } } }, - "Reset All Settings" : { + "Record Access" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 설정 재설정" + "value" : "레코드 액세스" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm Ayarları Sıfırla" + "value" : "Kayıt Erişimi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đặt lại tất cả cài đặt" + "value" : "Truy cập bản ghi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重置所有设置" + "value" : "记录访问" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重設所有設定" + "value" : "記錄存取" } } } }, - "Reset All Settings to Defaults" : { + "Recording shortcut" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 설정을 기본값으로 재설정" + "value" : "단축키 기록 중" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm Ayarları Varsayılana Sıfırla" + "value" : "Kısayol kaydediliyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đặt lại tất cả cài đặt về mặc định" + "value" : "Đang ghi phím tắt" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将所有设置重置为默认值" + "value" : "正在录制快捷键" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將所有設定重設為預設值" + "value" : "正在錄製快速鍵" } } } }, - "Reset Columns" : { + "Red" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열 재설정" + "value" : "빨간색" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sütunları Sıfırla" + "value" : "Kırmızı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đặt lại cột" + "value" : "Đỏ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重置列" + "value" : "红色" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重設欄位" + "value" : "紅色" } } } }, - "Reset Filters" : { + "Redacted error text when the status is error" : { + + }, + "Redacted failure text" : { + + }, + "Redis" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터 재설정" + "value" : "Redis" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtreleri Sıfırla" + "value" : "Redis" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đặt lại bộ lọc" + "value" : "Redis" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重置筛选" + "value" : "Redis" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重置篩選" + "value" : "Redis" } } } }, - "Reset Layout" : { + "Redis driver has no TLS fallback. Preferred and Required both force TLS. Use Required for Redis Cloud, Upstash, and AWS ElastiCache encrypted endpoints." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "레이아웃 재설정" + "value" : "Redis 드라이버는 TLS 폴백을 지원하지 않습니다. ‘선호’와 ‘필수’ 모두 TLS를 강제합니다. Redis Cloud, Upstash 및 AWS ElastiCache 암호화 엔드포인트에는 ‘필수’를 사용하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Düzeni Sıfırla" + "value" : "Redis sürücüsünde TLS geri dönüşü yoktur. Tercih Edilen ve Zorunlu'nun ikisi de TLS'yi zorunlu kılar. Redis Cloud, Upstash ve AWS ElastiCache şifreli uç noktaları için Zorunlu kullanın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đặt lại bố cục" + "value" : "Driver Redis không có cơ chế dự phòng TLS. Preferred và Required đều buộc dùng TLS. Dùng Required cho Redis Cloud, Upstash và các endpoint mã hóa của AWS ElastiCache." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重置布局" + "value" : "Redis 驱动没有 TLS 回退。“首选”和“必需”都会强制使用 TLS。连接 Redis Cloud、Upstash 和 AWS ElastiCache 加密端点时请使用“必需”。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重設版面配置" + "value" : "Redis 驅動程式沒有 TLS 備援。「Preferred」和「Required」都會強制使用 TLS。連接 Redis Cloud、Upstash 和 AWS ElastiCache 加密端點時請使用「Required」。" } } } }, - "Reset Sample" : { + "Redo" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "샘플 재설정" + "value" : "실행 복귀" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Örneği Sıfırla" + "value" : "Redo" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đặt lại mẫu" + "value" : "Làm lại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重置示例" + "value" : "重做" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重設範例" + "value" : "重做" } } } }, - "Reset Sample Database?" : { + "Ref Columns" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "샘플 데이터베이스를 재설정하시겠습니까?" + "value" : "참조 열" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Örnek Veritabanı Sıfırlansın mı?" + "value" : "Referans Sütunlar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đặt lại cơ sở dữ liệu mẫu?" + "value" : "Cột tham chiếu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "要重置示例数据库吗?" + "value" : "引用列" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "要重設範例資料庫嗎?" + "value" : "參考欄位" } } } }, - "Reset Sample Database…" : { + "Ref Schema" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "샘플 데이터베이스 재설정…" + "value" : "참조 스키마" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Örnek Veritabanını Sıfırla…" + "value" : "Referans Şema" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đặt lại cơ sở dữ liệu mẫu…" + "value" : "Schema tham chiếu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重置示例数据库…" + "value" : "参考 Schema" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重設範例資料庫…" + "value" : "參考綱要" } } } }, - "Reset Zoom" : { + "Ref Table" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "확대/축소 재설정" + "value" : "참조 테이블" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yakınlaştırmayı Sıfırla" + "value" : "Referans Tablo" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đặt lại thu phóng" + "value" : "Bảng tham chiếu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重置缩放" + "value" : "引用表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重設縮放" + "value" : "參考資料表" } } } }, - "Reset column widths, order, and visibility to defaults" : { + "Referenced column" : { + + }, + "Referenced columns (comma-separated)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열 너비, 순서 및 표시 여부를 기본값으로 재설정" + "value" : "참조 열(쉼표로 구분)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sütun genişliklerini, sırasını ve görünürlüğünü varsayılana sıfırla" + "value" : "Referenced columns (comma-separated)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đặt lại độ rộng, thứ tự và khả năng hiển thị của cột về mặc định" + "value" : "Cột tham chiếu (phân tách bằng dấu phẩy)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将列宽、顺序和显示状态重置为默认值" + "value" : "引用列(逗号分隔)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將欄寬、順序與顯示狀態重設為預設值" + "value" : "參考欄位(以逗號分隔)" } } } }, - "Reset to Defaults" : { + "Referenced row not found" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기본값으로 재설정" + "value" : "참조된 행을 찾을 수 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Varsayılana Sıfırla" + "value" : "Referans satır bulunamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khôi phục mặc định" + "value" : "Không tìm thấy dòng tham chiếu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "恢复默认" + "value" : "未找到引用行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重設為預設值" + "value" : "找不到參考的列" } } } }, - "Reset to Inferred" : { + "Referenced schema" : { + + }, + "Referenced table" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "추론된 형식으로 재설정" + "value" : "참조된 테이블" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Çıkarsanana Sıfırla" + "value" : "Referenced table" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đặt lại về giá trị suy luận" + "value" : "Bảng tham chiếu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重置为推断值" + "value" : "引用表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重設為推斷值" + "value" : "參考的資料表" } } } }, - "Reset to System Default" : { + "Referencing column" : { + + }, + "Referencing table" : { + + }, + "Refresh" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "시스템 기본값으로 재설정" + "value" : "새로 고침" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sistem Varsayılanına Sıfırla" + "value" : "Yenile" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đặt lại về mặc định hệ thống" + "value" : "Làm mới" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重置为系统默认" + "value" : "刷新" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重設為系統預設值" + "value" : "重新整理" } } } }, - "Reset to default" : { + "Refresh (⌘R)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기본값으로 재설정" + "value" : "새로 고침(⌘R)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Varsayılana sıfırla" + "value" : "Refresh (⌘R)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đặt lại về mặc định" + "value" : "Làm mới (⌘R)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重置为默认值" + "value" : "刷新 (⌘R)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重設為預設值" + "value" : "重新整理 (⌘R)" } } } }, - "Resource" : { + "Refresh & Save" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "리소스" + "value" : "새로 고침 및 저장" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kaynak" + "value" : "Yenile ve Kaydet" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tài nguyên" + "value" : "Làm mới & Lưu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "资源" + "value" : "刷新并保存" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資源" + "value" : "重新整理並儲存" } } } }, - "Responding" : { + "Refresh data" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "응답 중" + "value" : "데이터 새로 고침" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yanıt veriyor" + "value" : "Refresh data" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang phản hồi" + "value" : "Làm mới dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "响应中" + "value" : "刷新数据" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "回應中" + "value" : "重新整理資料" } } } }, - "Response" : { + "Refresh database list" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "응답" + "value" : "데이터베이스 목록 새로 고침" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yanıt" + "value" : "Refresh database list" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phản hồi" + "value" : "Làm mới danh sách cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "响应" + "value" : "刷新数据库列表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "回應" + "value" : "重新整理資料庫清單" } } } }, - "Response failed" : { + "Refresh license status from server" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Refresh license status from server" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "응답 실패" + "value" : "서버에서 라이선스 상태 새로 고침" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yanıt başarısız oldu" + "value" : "Sunucudan lisans durumunu yenile" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phản hồi thất bại" + "value" : "Làm mới trạng thái giấy phép từ máy chủ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "响应失败" + "value" : "从服务器刷新许可证状态" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "回應失敗" + "value" : "從伺服器重新整理授權狀態" } } } }, - "Restart Claude Desktop" : { + "Refresh Now" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Claude Desktop 재시작" + "value" : "지금 새로 고침" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Claude Desktop'ı Yeniden Başlat" + "value" : "Şimdi Yenile" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khởi động lại Claude Desktop" + "value" : "Làm mới ngay" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重启 Claude Desktop" + "value" : "立即刷新" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重新啟動 Claude Desktop" + "value" : "立即重新整理" } } } }, - "Restart TablePro for the language change to take full effect." : { + "Refresh plugin list" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "언어 변경 사항을 완전히 적용하려면 TablePro를 재시작하십시오." + "value" : "플러그인 목록 새로 고침" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dil değişikliğinin tam olarak uygulanması için TablePro'yu yeniden başlatın." + "value" : "Eklenti listesini yenile" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khởi động lại TablePro để thay đổi ngôn ngữ có hiệu lực hoàn toàn." + "value" : "Làm mới danh sách plugin" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重启 TablePro 以使语言更改完全生效。" + "value" : "刷新插件列表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重新啟動 TablePro 以讓語言變更完全生效。" + "value" : "重新整理外掛清單" } } } }, - "Restart TablePro to fully unload removed plugins." : { + "Refreshing" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "제거한 플러그인을 완전히 언로드하려면 TablePro를 재시작하십시오." + "value" : "새로 고치는 중" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kaldırılan eklentilerin tamamen bellekten çıkması için TablePro'yu yeniden başlatın." + "value" : "Yenileniyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khởi động lại TablePro để gỡ hoàn toàn các plugin đã xoá." + "value" : "Đang làm mới" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重启 TablePro 以完全卸载已移除的插件。" + "value" : "正在刷新" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重新啟動 TablePro 以完全解除載入已移除的外掛。" + "value" : "正在重新整理" } } } }, - "Restore Database" : { + "Refreshing will discard all unsaved changes." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 복원" + "value" : "새로 고치면 저장하지 않은 모든 변경 사항이 삭제됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanını Geri Yükle" + "value" : "Yenileme, kaydedilmemiş tüm değişiklikleri siler." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khôi phục cơ sở dữ liệu" + "value" : "Làm mới sẽ hủy tất cả thay đổi chưa lưu." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "恢复数据库" + "value" : "刷新将丢弃所有未保存的更改。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "還原資料庫" + "value" : "重新整理將捨棄所有未儲存的變更。" } } } }, - "Restore Dump Cancelled" : { - "comment" : "A title for a result sheet that indicates a restore operation was cancelled.", - "isCommentAutoGenerated" : true, + "Regenerate" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "덤프 복원 취소됨" + "value" : "다시 생성" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Döküm Geri Yükleme İptal Edildi" + "value" : "Regenerate" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã hủy khôi phục dump" + "value" : "Tạo lại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "转储恢复已取消" + "value" : "重新生成" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "還原備份已取消" + "value" : "重新產生" } } } }, - "Restore Dump Complete" : { - "comment" : "A title for a backup result sheet that indicates a successful restore.", - "isCommentAutoGenerated" : true, + "Regex" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "덤프 복원 완료" + "value" : "정규식" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Döküm Geri Yükleme Tamamlandı" + "value" : "Regex" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khôi phục dump hoàn tất" + "value" : "Regex" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "转储恢复完成" + "value" : "正则表达式" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "還原備份完成" + "value" : "正規表達式" } } } }, - "Restore Dump Failed" : { - "comment" : "A title for a backup result sheet that indicates a failed restore.", - "isCommentAutoGenerated" : true, + "Registry" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "덤프 복원 실패" + "value" : "레지스트리" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Döküm Geri Yükleme Başarısız Oldu" + "value" : "Registry" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khôi phục dump thất bại" + "value" : "Kho plugin" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "转储恢复失败" + "value" : "插件仓库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "還原備份失敗" + "value" : "外掛註冊" } } } }, - "Restore Dump…" : { - "comment" : "A button that opens a dialog to restore a database from a dump.", - "extractionState" : "stale", - "isCommentAutoGenerated" : true, + "Relational" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "덤프 복원…" + "value" : "관계형" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dökümü Geri Yükle…" + "value" : "İlişkisel" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khôi phục dump…" + "value" : "Quan hệ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "恢复转储…" + "value" : "关系型" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在還原備份…" + "value" : "關聯式" } } } }, - "Restore Last Filter" : { + "Relaunch Failed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "마지막 필터 복원" + "value" : "재실행 실패" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Son Filtreyi Geri Yükle" + "value" : "Yeniden Başlatma Başarısız" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khôi phục bộ lọc gần nhất" + "value" : "Mở lại thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "恢复上次筛选" + "value" : "重新启动失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "還原上次篩選" + "value" : "重新啟動失敗" } } } }, - "Restore from" : { - "comment" : "A label displayed above the name of the source database.", - "isCommentAutoGenerated" : true, + "Reload" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다음에서 복원" + "value" : "다시 로드" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geri yükleme kaynağı" + "value" : "Yeniden Yükle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khôi phục từ" + "value" : "Tải lại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "恢复来源" + "value" : "重新加载" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "還原來源" + "value" : "重新載入" } } } }, - "Restored “%@” from %@" : { + "Reload from Disk" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Restored “%1$@” from %2$@" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%2$@에서 “%1$@” 복원을 완료했습니다" + "value" : "디스크에서 다시 로드" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "“%1$@” şuradan geri yüklendi: %2$@" + "value" : "Diskten Yeniden Yükle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã khôi phục “%1$@” từ %2$@" + "value" : "Tải lại từ đĩa" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已从%2$@恢复“%1$@”" + "value" : "从磁盘重新载入" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已從 %1$@ 還原「%2$@」" + "value" : "從磁碟重新載入" } } } }, - "Restore…" : { + "Reload from the database" : { + + }, + "Reload with new properties?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "복원…" + "value" : "새 속성으로 다시 로드하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geri Yükle…" + "value" : "Yeni özelliklerle yeniden yüklensin mi?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khôi phục…" + "value" : "Tải lại với các thuộc tính mới?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "恢复…" + "value" : "要用新属性重新加载吗?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "還原…" + "value" : "要用新屬性重新載入嗎?" } } } }, - "Restoring Dump" : { - "comment" : "A title for a progress sheet that is displayed when restoring a database dump.", - "isCommentAutoGenerated" : true, + "Remote (Quack, experimental)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "덤프 복원 중" + "value" : "원격(Quack, 실험적)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Döküm Geri Yükleniyor" + "value" : "Uzak (Quack, deneysel)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang khôi phục dump" + "value" : "Từ xa (Quack, thử nghiệm)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在恢复转储" + "value" : "远程(Quack,实验性)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在還原資料庫" + "value" : "遠端(Quack,實驗性)" } } } }, - "Restrict to a specific connection (UUID, optional)" : { + "Remote (Quack)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "특정 연결로 제한(UUID, 선택 사항)" + "value" : "원격(Quack)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Belirli bir bağlantıyla sınırla (UUID, isteğe bağlı)" + "value" : "Uzak (Quack)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giới hạn theo một kết nối cụ thể (UUID, tùy chọn)" + "value" : "Từ xa (Quack)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "限制为特定连接(UUID,可选)" + "value" : "远程 (Quack)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "限制為特定連線(UUID,選用)" + "value" : "遠端 (Quack)" } } } }, - "Result" : { + "Remote (Turso)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "결과" + "value" : "원격(Turso)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sonuç" + "value" : "Uzak (Turso)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết quả" + "value" : "Từ xa (Turso)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "结果" + "value" : "远程 (Turso)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "結果" + "value" : "遠端 (Turso)" } } } }, - "Result Charts" : { + "Remove" : { "localizations" : { "ko" : { "stringUnit" : { - "value" : "결과 차트", - "state" : "translated" + "state" : "translated", + "value" : "제거" } }, "tr" : { "stringUnit" : { - "value" : "Sonuç Grafikleri", - "state" : "translated" + "state" : "translated", + "value" : "Kaldır" } }, "vi" : { "stringUnit" : { - "value" : "Biểu đồ kết quả", - "state" : "translated" + "state" : "translated", + "value" : "Gỡ" } }, "zh-Hans" : { "stringUnit" : { - "value" : "结果图表", - "state" : "translated" + "state" : "translated", + "value" : "移除" } }, "zh-Hant" : { "stringUnit" : { - "value" : "結果圖表", - "state" : "translated" + "state" : "translated", + "value" : "移除" } } } }, - "Result View" : { + "Remove “%@”?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "결과 보기" + "value" : "“%@”을(를) 제거하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sonuç Görünümü" + "value" : "“%@” kaldırılsın mı?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chế độ xem kết quả" + "value" : "Gỡ “%@”?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "结果视图" + "value" : "要移除“%@”吗?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "結果檢視" + "value" : "要移除「%@」嗎?" } } } }, - "Results" : { + "Remove %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "결과" + "value" : "%@ 제거" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sonuçlar" + "value" : "%@ Öğesini Kaldır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết quả" + "value" : "Gỡ %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "结果" + "value" : "移除%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "結果" + "value" : "移除%@" } } } }, - "Resume" : { + "Remove %@?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "재개" + "value" : "%@을(를) 제거하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Devam Et" + "value" : "%@ kaldırılsın mı?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tiếp tục" + "value" : "Gỡ %@?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "继续" + "value" : "移除 %@?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "繼續" + "value" : "移除 %@?" } } } }, - "Resume Query History" : { + "Remove All Filters" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 기록 재개" + "value" : "모든 필터 제거" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgu Geçmişini Sürdür" + "value" : "Tüm Filtreleri Kaldır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tiếp tục lịch sử truy vấn" + "value" : "Gỡ tất cả bộ lọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "恢复查询历史" + "value" : "移除所有筛选" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "繼續查詢歷史" + "value" : "移除所有篩選" } } } }, - "Resume with a fresh tool call budget." : { + "Remove all filters and reload" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 도구 호출 한도로 재개합니다." + "value" : "모든 필터를 제거하고 다시 로드" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni bir araç çağrısı bütçesiyle devam eder." + "value" : "Tüm filtreleri kaldır ve yeniden yükle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tiếp tục với hạn mức gọi công cụ mới." + "value" : "Xóa tất cả bộ lọc và tải lại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "以新的工具调用额度继续。" + "value" : "移除所有筛选并重新加载" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "以新的工具呼叫額度繼續。" + "value" : "移除所有篩選並重新載入" } } } }, - "Retention" : { - "extractionState" : "stale", + "Remove attachment" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "보존 기간" + "value" : "첨부 파일 제거" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Retention" + "value" : "Eki kaldır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lưu giữ" + "value" : "Gỡ tệp đính kèm" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "保留" + "value" : "移除附件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "保留" + "value" : "移除附件" } } } }, - "Retry" : { + "Remove Column" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "재시도" + "value" : "열 제거" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tekrar Dene" + "value" : "Sütunu Kaldır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thử lại" + "value" : "Gỡ cột" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重试" + "value" : "移除列" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重試" + "value" : "移除欄位" } } } }, - "Retry Install" : { + "Remove Element" : { + "comment" : "A button that removes an element from an array.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "설치 재시도" + "value" : "요소 제거" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kurulumu Yeniden Dene" + "value" : "Öğeyi Kaldır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thử cài đặt lại" + "value" : "Xoá phần tử" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重试安装" + "value" : "移除元素" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重試安裝" + "value" : "移除元素" } } } }, - "Retry Update" : { + "Remove Failed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "업데이트 재시도" + "value" : "제거 실패" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Güncellemeyi Yeniden Dene" + "value" : "Kaldırma Başarısız" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thử cập nhật lại" + "value" : "Gỡ thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重试更新" + "value" : "移除失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重試更新" + "value" : "移除失敗" } } } }, - "Retry Validation" : { + "Remove filter" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Retry Validation" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "유효성 검사 재시도" + "value" : "필터 제거" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Doğrulamayı Tekrar Dene" + "value" : "Filtreyi kaldır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thử lại xác thực" + "value" : "Xóa bộ lọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重试验证" + "value" : "移除筛选" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重試驗證" + "value" : "移除篩選" } } } }, - "Reuse clean table tab" : { - "extractionState" : "stale", + "Remove Filter" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "변경 사항이 없는 테이블 탭 재사용" + "value" : "필터 제거" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Reuse clean table tab" + "value" : "Filtreyi Kaldır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tái sử dụng tab bảng trống" + "value" : "Xóa bộ lọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复用空白表标签页" + "value" : "移除筛选" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重複使用空白資料表分頁" + "value" : "移除篩選" } } } }, - "Reveal token" : { + "Remove filter row" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "토큰 표시" + "value" : "필터 행 제거" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Token'ı göster" + "value" : "Filtre satırını kaldır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiện token" + "value" : "Xóa dòng bộ lọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示令牌" + "value" : "移除筛选行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示權杖" + "value" : "移除篩選列" } } } }, - "Review & Apply…" : { + "Remove folder" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "검토 및 적용…" + "value" : "폴더 제거" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Gözden Geçir ve Uygula…" + "value" : "Klasörü kaldır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xem lại và áp dụng…" + "value" : "Xóa thư mục" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "检查并应用…" + "value" : "移除文件夹" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "檢視並套用…" + "value" : "移除資料夾" } } } }, - "Revoke" : { + "Remove Folder" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "철회" + "value" : "폴더 제거" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İptal Et" + "value" : "Klasörü Kaldır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thu hồi" + "value" : "Xóa Thư mục" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "撤销" + "value" : "移除文件夹" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "撤銷" + "value" : "移除資料夾" } } } }, - "Revoke %1$@ on %2$@" : { + "Remove Foreign Key" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%2$@에 대한 %1$@ 철회" + "value" : "외래 키 제거" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%2$@ üzerindeki %1$@ yetkisini geri al" + "value" : "Yabancı Anahtarı Kaldır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thu hồi %1$@ trên %2$@" + "value" : "Gỡ khóa ngoại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "撤销 %2$@ 上的 %1$@" + "value" : "移除外键" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "撤銷 %2$@ 上的 %1$@" + "value" : "移除外鍵" } } } }, - "Revoke All" : { + "Remove from Favorites" : { + "comment" : "A button label that deletes a table from the user's favorites.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모두 철회" + "value" : "즐겨찾기에서 제거" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tümünü Geri Al" + "value" : "Sık Kullanılanlardan Kaldır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thu hồi tất cả" + "value" : "Gỡ khỏi Yêu thích" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "全部撤销" + "value" : "从收藏中移除" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "全部撤銷" + "value" : "從收藏中移除" } } } }, - "Revoke privileges from %@" : { + "Remove from Group" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@의 권한 철회" + "value" : "그룹에서 제거" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ hesabından yetkileri geri al" + "value" : "Gruptan Çıkar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thu hồi quyền của %@" + "value" : "Xóa khỏi Nhóm" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "撤销 %@ 的权限" + "value" : "从分组移除" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "撤銷 %@ 的權限" + "value" : "從群組移除" } } } }, - "Revoked" : { + "Remove from Recent" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "철회됨" + "value" : "최근 항목에서 제거" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İptal Edildi" + "value" : "Son Kullanılanlardan Kaldır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã thu hồi" + "value" : "Xóa khỏi mục Gần đây" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已撤销" + "value" : "从“最近”中移除" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已撤銷" + "value" : "從「最近」中移除" } } } }, - "Right-click to show all %@" : { - "extractionState" : "stale", + "Remove from Sidebar" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "마우스 오른쪽 버튼을 클릭하여 모든 %@ 표시" + "value" : "사이드바에서 제거" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Right-click to show all %@" + "value" : "Sidebar'dan Kaldır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhấp chuột phải để hiển thị tất cả %@" + "value" : "Gỡ khỏi thanh bên" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "右键点击显示全部%@" + "value" : "从侧边栏移除" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "按右鍵以顯示全部 %@" + "value" : "從側邊欄移除" } } } }, - "Right-click to show all tables" : { - "extractionState" : "stale", + "Remove Host" : { + "comment" : "Label for a button that removes the selected host from a list.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "마우스 오른쪽 버튼을 클릭하여 모든 테이블 표시" + "value" : "호스트 제거" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Right-click to show all tables" + "value" : "Sunucuyu Kaldır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhấn chuột phải để hiện tất cả bảng" + "value" : "Xoá máy chủ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "右键单击显示所有表" + "value" : "移除主机" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "按右鍵顯示所有資料表" + "value" : "移除主機" } } } }, - "Role" : { + "Remove image" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "역할" + "value" : "이미지 제거" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Rol" + "value" : "Görseli kaldır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Vai trò" + "value" : "Gỡ hình ảnh" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "角色" + "value" : "移除图像" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "角色" + "value" : "移除圖片" } } } }, - "Role Attributes" : { + "Remove Index" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "역할 속성" + "value" : "인덱스 제거" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Rol Öznitelikleri" + "value" : "İndeksi Kaldır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thuộc tính vai trò" + "value" : "Gỡ index" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "角色属性" + "value" : "移除索引" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "角色屬性" + "value" : "移除索引" } } } }, - "Root" : { + "Remove jump host" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "루트" + "value" : "점프 호스트 제거" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Root" + "value" : "Atlama sunucusunu kaldır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Root" + "value" : "Xóa jump host" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Root" + "value" : "移除跳板机" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Root" + "value" : "移除跳板主機" } } } }, - "Root Level" : { + "Remove license from this machine" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "최상위" + "value" : "이 기기에서 라이선스 제거" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kök Seviye" + "value" : "Lisansı bu makineden kaldır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cấp gốc" + "value" : "Gỡ giấy phép khỏi máy này" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "根级别" + "value" : "从此设备移除许可证" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "根層級" + "value" : "從此機器移除授權" } } } }, - "Routes this connection through a SOCKS5 proxy. The database hostname is resolved by the proxy, so names that only resolve behind it still work." : { + "Remove Linked Folder?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SOCKS5 프록시를 통해 이 연결을 라우팅합니다. 데이터베이스 호스트 이름은 프록시가 확인하므로 프록시 측 네트워크에서만 확인되는 이름도 사용할 수 있습니다." + "value" : "연결된 폴더를 제거하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu bağlantıyı bir SOCKS5 proxy üzerinden yönlendirir. Veritabanı sunucu adı proxy tarafından çözümlenir, böylece yalnızca proxy arkasında çözümlenen adlar da çalışır." + "value" : "Bağlı Klasör Kaldırılsın mı?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Định tuyến kết nối này qua một SOCKS5 proxy. Tên máy chủ cơ sở dữ liệu do proxy phân giải, nên những tên chỉ phân giải được phía sau proxy vẫn dùng được." + "value" : "Gỡ thư mục liên kết?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "通过 SOCKS5 代理转发此连接。数据库主机名由代理解析,因此只能在代理后解析的名称同样可用。" + "value" : "要移除链接的文件夹吗?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "透過 SOCKS5 代理轉送此連線。資料庫主機名稱由代理解析,因此只能在代理後方解析的名稱同樣可用。" + "value" : "要移除連結的資料夾嗎?" } } } }, - "Row" : { + "Remove provider" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { - "value" : "행", - "state" : "translated" + "state" : "translated", + "value" : "제공자 제거" } }, "tr" : { "stringUnit" : { - "value" : "Satır", - "state" : "translated" + "state" : "translated", + "value" : "Sağlayıcıyı kaldır" } }, "vi" : { "stringUnit" : { - "value" : "Hàng", - "state" : "translated" + "state" : "translated", + "value" : "Xóa nhà cung cấp" } }, "zh-Hans" : { "stringUnit" : { - "value" : "行", - "state" : "translated" + "state" : "translated", + "value" : "移除提供商" } }, "zh-Hant" : { "stringUnit" : { - "value" : "列", - "state" : "translated" + "state" : "translated", + "value" : "移除供應商" } } } }, - "Row %d" : { + "Remove Provider" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%d행" + "value" : "제공자 제거" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satır %d" + "value" : "Sağlayıcıyı Kaldır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dòng %d" + "value" : "Gỡ nhà cung cấp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "第%d行" + "value" : "移除提供方" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "第 %d 列" + "value" : "移除供應商" } } } }, - "Row %d, column %d: %@" : { + "Remove Provider?" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Row %1$d, column %2$d: %3$@" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$d행, %2$d열: %3$@" + "value" : "제공자를 제거하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satır %d, sütun %d: %@" + "value" : "Sağlayıcı Kaldırılsın mı?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dòng %d, cột %d: %@" + "value" : "Gỡ nhà cung cấp?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "第%d行,第%d列:%@" + "value" : "移除提供方?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "第 %1$d 列,第 %2$d 欄:%3$@" + "value" : "移除供應商?" } } } }, - "Row %lld" : { - "extractionState" : "stale", + "Remove tag %@" : { + "comment" : "A label for a button that removes a tag from a list of selected tags. The argument is the name of the tag to be removed.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%lld행" + "value" : "태그 %@ 제거" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "satır %lld" + "value" : "%@ etiketini kaldır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hàng %lld" + "value" : "Xoá thẻ %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "行 %lld" + "value" : "移除标签 %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "第 %lld 列" + "value" : "移除標籤 %@" } } } }, - "Row %lld, column %lld: %@" : { - "extractionState" : "stale", + "Removed" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Row %1$lld, column %2$lld: %3$@" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$lld행, %2$lld열: %3$@" + "value" : "제거됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "satır %lld, column %lld: %@" + "value" : "Kaldırıldı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hàng %lld, cột %lld: %@" + "value" : "Đã xóa" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "行 %lld,列 %lld:%@" + "value" : "移除" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "第 %1$lld 列,第 %2$lld 欄:%3$@" + "value" : "移除" } } } }, - "Row Details" : { - "extractionState" : "stale", + "Rename" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "행 세부사항" + "value" : "이름 변경" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Row Details" + "value" : "Yeniden Adlandır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chi tiết dòng" + "value" : "Đổi tên" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "行详情" + "value" : "重命名" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "列詳細資訊" + "value" : "重新命名" } } } }, - "Row Edits" : { + "Rename Column" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "행 편집" + "value" : "열 이름 변경" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satır Düzenlemeleri" + "value" : "Sütunu Yeniden Adlandır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sửa hàng" + "value" : "Đổi tên cột" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "行编辑" + "value" : "重命名列" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "列編輯" + "value" : "重新命名欄位" } } } }, - "Row Heights" : { - "extractionState" : "stale", + "Rename Column…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "행 높이" + "value" : "열 이름 변경…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Row Heights" + "value" : "Sütunu Yeniden Adlandır…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chiều cao dòng" + "value" : "Đổi tên cột…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "行高" + "value" : "重命名列…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "列高" + "value" : "重新命名欄位…" } } } }, - "Row Number" : { + "Rename Group" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "행 번호" + "value" : "그룹 이름 변경" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satır Numarası" + "value" : "Grubu Yeniden Adlandır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Số thứ tự dòng" + "value" : "Đổi tên nhóm" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "行号" + "value" : "重命名分组" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "列號" + "value" : "重新命名群組" } } } }, - "Row cap:" : { + "Rename…" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "행 상한:" + "value" : "이름 변경…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satır sınırı:" + "value" : "Yeniden Adlandır…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giới hạn hàng:" + "value" : "Đổi tên…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "行数上限:" + "value" : "重命名…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "列數上限:" + "value" : "重新命名…" } } } }, - "Row height:" : { + "Renew" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Renew" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "행 높이:" + "value" : "갱신" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satır yüksekliği:" + "value" : "Yenile" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chiều cao dòng:" + "value" : "Gia hạn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "行高:" + "value" : "续期" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "列高:" + "value" : "續訂" } } } }, - "Row limit:" : { - "extractionState" : "stale", + "Renew License" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Renew License" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "행 제한:" + "value" : "라이선스 갱신" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satır limiti:" + "value" : "Lisansı Yenile" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giới hạn dòng:" + "value" : "Gia hạn giấy phép" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "行数限制:" + "value" : "续期许可证" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "列數限制:" + "value" : "續訂授權" } } } }, - "Row number" : { + "Renew License…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "행 번호" + "value" : "라이선스 갱신…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satır numarası" + "value" : "Lisansı Yenile…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Số hàng" + "value" : "Gia hạn giấy phép…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "行号" + "value" : "续期许可证…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "列號" + "value" : "續訂授權…" } } } }, - "Row size:" : { - "comment" : "A label for the size of the sidebar rows.", - "isCommentAutoGenerated" : true, + "Reopen Closed Tab" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "행 크기:" + "value" : "닫은 탭 다시 열기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satır boyutu:" + "value" : "Kapatılan Sekmeyi Yeniden Aç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cỡ hàng:" + "value" : "Mở lại tab đã đóng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "行大小:" + "value" : "重新打开已关闭的标签页" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "列大小:" + "value" : "重新開啟已關閉的分頁" } } } }, - "Rows" : { + "Reopen Last Session" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "행" + "value" : "마지막 세션 다시 열기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satırlar" + "value" : "Son Oturumu Yeniden Aç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dòng" + "value" : "Mở lại phiên làm việc trước" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "行" + "value" : "重新打开上次会话" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "列" + "value" : "重新開啟上次工作階段" } } } }, - "Rows %lld-%lld" : { + "Reorder Column" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%lld-%lld행" + "value" : "열 순서 변경" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%lld-%lld. satırlar" + "value" : "Sütunu Yeniden Sırala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hàng %lld-%lld" + "value" : "Sắp xếp lại cột" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "第 %lld-%lld 行" + "value" : "调整列顺序" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "第 %lld-%lld 列" + "value" : "調整欄位順序" } } } }, - "Rows per INSERT" : { - "extractionState" : "stale", + "Replace" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "INSERT당 행 수" + "value" : "바꾸기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Rows per INSERT" + "value" : "Değiştir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dòng mỗi INSERT" + "value" : "Thay thế" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "每条 INSERT 的行数" + "value" : "替换" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "每筆 INSERT 的列數" + "value" : "取代" } } } }, - "Rows per insertMany" : { - "extractionState" : "stale", + "Replace %1$@ %2$@" : { + + }, + "Replace the estimate with an exact row count." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "insertMany당 행 수" + "value" : "추정치를 정확한 행 수로 바꿉니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Rows per insertMany" + "value" : "Tahmini, tam satır sayısıyla değiştirir." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Số dòng mỗi insertMany" + "value" : "Thay ước tính bằng số dòng chính xác." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "每条 insertMany 的行数" + "value" : "用精确行数替换估算值。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "每筆 insertMany 的列數" + "value" : "用精確列數取代估算值。" } } } }, - "Rows per page" : { + "Replication lag: %ds" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "페이지당 행 수" + "value" : "복제 지연: %d초" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sayfa başına satır" + "value" : "Çoğaltma gecikmesi: %ds" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Số hàng mỗi trang" + "value" : "Độ trễ sao chép: %ds" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "每页行数" + "value" : "复制延迟:%d秒" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "每頁列數" + "value" : "複寫延遲:%d 秒" } } } }, - "Rules" : { + "Replication lag: %llds" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "규칙" + "value" : "복제 지연: %lld초" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kurallar" + "value" : "Replication lag: %llds" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Quy tắc" + "value" : "Độ trễ sao chép: %llds" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "规则" + "value" : "复制延迟:%llds" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "規則" + "value" : "複寫延遲:%lld 秒" } } } }, - "Run" : { + "Replies count against your Claude subscription limits. You share those limits with claude.ai and your own Claude Code sessions, so running out here stops your work there too." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "실행" + "value" : "답변은 Claude 구독 한도를 사용합니다. 이 한도는 claude.ai 및 사용자의 Claude Code 세션과 공유되므로 여기서 한도를 소진하면 그곳에서도 작업이 중단됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Çalıştır" + "value" : "Yanıtlar Claude abonelik limitlerinizden düşer. Bu limitleri claude.ai ve kendi Claude Code oturumlarınızla paylaşırsınız, bu yüzden burada limiti doldurmak oradaki işinizi de durdurur." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chạy" + "value" : "Các câu trả lời được tính vào giới hạn gói Claude của bạn. Bạn dùng chung giới hạn đó với claude.ai và các phiên Claude Code của mình, nên hết hạn mức ở đây cũng làm dừng công việc bên đó." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "运行" + "value" : "回复会计入你的 Claude 订阅额度。该额度与 claude.ai 和你自己的 Claude Code 会话共用,因此在这里用完也会让那边的工作停下来。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "執行" + "value" : "回覆會計入你的 Claude 訂閱額度。該額度與 claude.ai 和你自己的 Claude Code 工作階段共用,因此在這裡用完也會讓那邊的工作停下來。" } } } }, - "Run Script" : { + "Report an Issue" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "스크립트 실행" + "value" : "문제 보고" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Betiği Çalıştır" + "value" : "Sorun Bildir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chạy script" + "value" : "Báo cáo sự cố" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "运行脚本" + "value" : "报告问题" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "執行指令碼" + "value" : "回報問題" } } } }, - "Run Statement and Advance" : { + "Report whether a connection is open, which database and schema it is on, and the server version." : { + + }, + "Require authentication" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "문 실행 후 다음으로" + "value" : "인증 요구" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İfadeyi Çalıştır ve İlerle" + "value" : "Kimlik doğrulama gerekli" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chạy câu lệnh rồi chuyển tiếp" + "value" : "Yêu cầu xác thực" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "运行语句并前进" + "value" : "需要认证" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "執行陳述式並前進" + "value" : "需要驗證" } } } }, - "Run a query to see execution time" : { + "Require confirmation or Touch ID before executing queries." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리를 실행하여 실행 시간 확인" + "value" : "쿼리 실행 전에 확인 또는 Touch ID를 요구합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Çalışma süresini görmek için bir sorgu çalıştırın" + "value" : "Sorguları çalıştırmadan önce onay veya Touch ID gerektirir." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chạy truy vấn để xem thời gian thực thi" + "value" : "Yêu cầu xác nhận hoặc Touch ID trước khi thực thi truy vấn." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "运行查询以查看执行时间" + "value" : "执行查询前需要确认或 Touch ID。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "執行查詢以查看執行時間" + "value" : "執行查詢前需要確認或 Touch ID。" } } } }, - "Run against this database (uses current if omitted)" : { + "Require SSL, skip verification" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 데이터베이스에서 실행(생략 시 현재 데이터베이스 사용)" + "value" : "SSL 필수, 인증서 검증 건너뛰기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu veritabanında çalıştır (belirtilmezse geçerli olan kullanılır)" + "value" : "SSL zorunlu, doğrulamayı atla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chạy trên cơ sở dữ liệu này (bỏ trống thì dùng cái hiện tại)" + "value" : "Yêu cầu SSL, bỏ qua xác minh" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在此数据库上运行(省略则使用当前数据库)" + "value" : "要求 SSL,跳过验证" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在此資料庫上執行(省略則使用目前的資料庫)" + "value" : "要求 SSL,略過驗證" } } } }, - "Run against this schema (uses current if omitted)" : { + "Required (skip verify)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 스키마에서 실행(생략 시 현재 스키마 사용)" + "value" : "필수(인증서 검증 건너뛰기)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu şemada çalıştır (belirtilmezse geçerli olan kullanılır)" + "value" : "Zorunlu (doğrulamayı atla)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chạy trên schema này (bỏ trống thì dùng cái hiện tại)" + "value" : "Bắt buộc (bỏ qua xác minh)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在此 Schema 上运行(省略则使用当前 Schema)" + "value" : "必需(跳过验证)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在此綱要上執行(省略則使用目前的綱要)" + "value" : "必要(略過驗證)" } } } }, - "Run button beside each statement" : { + "Required only for an encrypted key" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "각 문 옆에 실행 버튼" + "value" : "암호화된 키에만 필요" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Her ifadenin yanında çalıştır düğmesi" + "value" : "Yalnızca şifreli bir anahtar için gerekli" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nút chạy bên cạnh mỗi câu lệnh" + "value" : "Chỉ cần cho khóa được mã hóa" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "每条语句旁显示运行按钮" + "value" : "仅加密密钥需要" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "每個陳述式旁顯示執行按鈕" + "value" : "僅加密金鑰需要" } } } }, - "Run in New Tab" : { + "Required only when the server enforces mutual TLS authentication." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 탭에서 실행" + "value" : "서버에서 상호 TLS 인증을 적용하는 경우에만 필요합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni Sekmede Çalıştır" + "value" : "Yalnızca sunucu karşılıklı TLS kimlik doğrulamasını zorunlu kıldığında gerekli." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chạy trong tab mới" + "value" : "Chỉ cần khi máy chủ bắt buộc xác thực TLS hai chiều." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在新标签页中运行" + "value" : "仅当服务器强制双向 TLS 认证时需要。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在新分頁中執行" + "value" : "僅當伺服器強制雙向 TLS 驗證時需要。" } } } }, - "Run some queries and this tab will show which you run most, which run slowest, and which got slower." : { + "Requires" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "몇 개의 쿼리를 실행하면 이 탭에서 가장 자주 실행한 쿼리, 가장 느린 쿼리, 성능이 저하된 쿼리를 확인할 수 있습니다." + "value" : "필요 버전" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Birkaç sorgu çalıştırın; bu sekme en çok çalıştırdıklarınızı, en yavaş olanları ve yavaşlayanları gösterecek." + "value" : "Requires" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chạy vài truy vấn và tab này sẽ cho thấy truy vấn nào bạn chạy nhiều nhất, chạy chậm nhất và chậm đi." + "value" : "Yêu cầu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "运行一些查询,这个标签页就会显示哪些查询你运行得最多、哪些最慢、哪些变慢了。" + "value" : "需要" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "執行一些查詢,這個分頁就會顯示哪些查詢你執行得最多、哪些最慢、哪些變慢了。" + "value" : "需要" } } } }, - "Run statement" : { + "Reserved Shortcut" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "문 실행" + "value" : "예약된 단축키" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İfadeyi çalıştır" + "value" : "Ayrılmış Kısayol" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chạy câu lệnh" + "value" : "Phím tắt dành riêng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "运行语句" + "value" : "保留的快捷键" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "執行陳述式" + "value" : "保留的快速鍵" } } } }, - "Run the command below in your terminal" : { + "Reset" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "터미널에서 아래 명령을 실행하십시오" + "value" : "재설정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Aşağıdaki komutu terminalinizde çalıştırın" + "value" : "Sıfırla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chạy lệnh dưới đây trong terminal" + "value" : "Đặt lại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在终端中运行以下命令" + "value" : "重置" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在終端機中執行以下指令" + "value" : "重設" } } } }, - "Run the statement starting on line %d" : { + "Reset All Customizations" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%d번째 줄에서 시작하는 문 실행" + "value" : "모든 사용자화 재설정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%d. satırda başlayan ifadeyi çalıştır" + "value" : "Tüm Özelleştirmeleri Sıfırla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chạy câu lệnh bắt đầu ở dòng %d" + "value" : "Đặt lại tất cả tùy chỉnh" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "运行从第 %d 行开始的语句" + "value" : "重置所有自定义" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "執行從第 %d 行開始的陳述式" + "value" : "重設所有自訂設定" } } } }, - "Running Threads" : { + "Reset All Settings" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "실행 중인 스레드" + "value" : "모든 설정 재설정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Çalışan İş Parçacıkları" + "value" : "Tüm Ayarları Sıfırla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Luồng đang chạy" + "value" : "Đặt lại tất cả cài đặt" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "运行中的线程" + "value" : "重置所有设置" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "執行中的執行緒" + "value" : "重設所有設定" } } } }, - "Running on port %d" : { + "Reset All Settings to Defaults" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "포트 %d에서 실행 중" + "value" : "모든 설정을 기본값으로 재설정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%d portunda çalışıyor" + "value" : "Tüm Ayarları Varsayılana Sıfırla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang chạy trên cổng %d" + "value" : "Đặt lại tất cả cài đặt về mặc định" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "运行在端口 %d" + "value" : "将所有设置重置为默认值" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "執行於連接埠 %d" + "value" : "將所有設定重設為預設值" } } } }, - "Running the pre-connect script" : { + "Reset column widths, order, and visibility to defaults" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 전 스크립트 실행 중" + "value" : "열 너비, 순서 및 표시 여부를 기본값으로 재설정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı öncesi betik çalıştırılıyor" + "value" : "Sütun genişliklerini, sırasını ve görünürlüğünü varsayılana sıfırla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang chạy script trước khi kết nối" + "value" : "Đặt lại độ rộng, thứ tự và khả năng hiển thị của cột về mặc định" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在运行连接前脚本" + "value" : "将列宽、顺序和显示状态重置为默认值" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在執行連線前指令碼" + "value" : "將欄寬、順序與顯示狀態重設為預設值" } } } }, - "Runs the claude command line tool so chat bills against your Claude subscription. Database tools need the MCP server turned on in Settings > Integrations." : { + "Reset Columns" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "claude 명령줄 도구를 실행하므로 채팅 사용량은 Claude 구독에 청구됩니다. 데이터베이스 도구를 사용하려면 설정 > 통합에서 MCP 서버를 켜야 합니다." + "value" : "열 재설정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "claude komut satırı aracını çalıştırır, böylece sohbet Claude aboneliğinizden düşer. Veritabanı araçları için Ayarlar > Entegrasyonlar altında MCP sunucusunun açık olması gerekir." + "value" : "Sütunları Sıfırla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chạy công cụ dòng lệnh claude nên phần chat sẽ tính vào gói đăng ký Claude của bạn. Các công cụ cơ sở dữ liệu cần bật máy chủ MCP trong Cài đặt > Tích hợp." + "value" : "Đặt lại cột" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "运行 claude 命令行工具,因此聊天会计入你的 Claude 订阅。数据库工具需要在“设置 > 集成”中开启 MCP 服务器。" + "value" : "重置列" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "執行 claude 命令列工具,因此聊天會計入你的 Claude 訂閱。資料庫工具需要在「設定 > 整合」中開啟 MCP 伺服器。" + "value" : "重設欄位" } } } }, - "SAVED CONNECTIONS" : { + "Reset Filters" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "저장된 연결" + "value" : "필터 재설정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "KAYITLI BAĞLANTILAR" + "value" : "Filtreleri Sıfırla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "KẾT NỐI ĐÃ LƯU" + "value" : "Đặt lại bộ lọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已保存的连接" + "value" : "重置筛选" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已儲存的連線" + "value" : "重置篩選" } } } }, - "SELECT * FROM users WHERE id = 1;" : { - "extractionState" : "stale", + "Reset Layout" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SELECT * FROM users WHERE id = 1;" + "value" : "레이아웃 재설정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SELECT * FROM users WHERE id = 1;" + "value" : "Düzeni Sıfırla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "SELECT * FROM users WHERE id = 1;" + "value" : "Đặt lại bố cục" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SELECT * FROM users WHERE id = 1;" + "value" : "重置布局" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SELECT * FROM users WHERE id = 1;" + "value" : "重設版面配置" } } } }, - "SELECT * FROM users WHERE id = 42;" : { + "Reset Sample" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SELECT * FROM users WHERE id = 42;" + "value" : "샘플 재설정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SELECT * FROM users WHERE id = 42;" + "value" : "Örneği Sıfırla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "SELECT * FROM users WHERE id = 42;" + "value" : "Đặt lại mẫu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SELECT * FROM users WHERE id = 42;" + "value" : "重置示例" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SELECT * FROM users WHERE id = 42;" + "value" : "重設範例" } } } }, - "SELECT queries without their own LIMIT run with this cap applied. The query text in the editor never changes. Capped results show a Fetch All button, and Execute Without Limit skips the cap for one run." : { + "Reset Sample Database?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "자체 LIMIT이 없는 SELECT 쿼리는 이 상한을 적용하여 실행됩니다. 편집기의 쿼리 텍스트는 변경되지 않습니다. 제한된 결과에는 '모두 가져오기' 버튼이 표시되며, 한 번만 상한을 건너뛰려면 '제한 없이 실행'을 사용합니다." + "value" : "샘플 데이터베이스를 재설정하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kendi LIMIT'i olmayan SELECT sorguları bu sınırla çalışır. Düzenleyicideki sorgu metni hiç değişmez. Sınırlanan sonuçlarda Tümünü Getir düğmesi görünür, Limitsiz Çalıştır ise sınırı tek seferlik atlar." + "value" : "Örnek Veritabanı Sıfırlansın mı?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Các truy vấn SELECT không có LIMIT riêng sẽ chạy với giới hạn này. Nội dung truy vấn trong trình soạn thảo không hề thay đổi. Kết quả bị giới hạn sẽ hiện nút Tải tất cả, còn Chạy không giới hạn sẽ bỏ qua giới hạn cho một lần chạy." + "value" : "Đặt lại cơ sở dữ liệu mẫu?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有自带 LIMIT 的 SELECT 查询会按此上限运行。编辑器中的查询文本不会被改动。被截断的结果会显示“获取所有行”按钮,“不限行数执行”则对单次运行跳过上限。" + "value" : "要重置示例数据库吗?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有自帶 LIMIT 的 SELECT 查詢會套用此上限。編輯器中的查詢文字不會被更動。被截斷的結果會顯示「取得所有列」按鈕,「不限列數執行」則對單次執行略過上限。" + "value" : "要重設範例資料庫嗎?" } } } }, - "SIZE" : { + "Reset Sample Database…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "크기" + "value" : "샘플 데이터베이스 재설정…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SIZE" + "value" : "Örnek Veritabanını Sıfırla…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "KÍCH THƯỚC" + "value" : "Đặt lại cơ sở dữ liệu mẫu…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "大小" + "value" : "重置示例数据库…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "大小" + "value" : "重設範例資料庫…" } } } }, - "SOCKS Proxy" : { + "Reset to default" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SOCKS 프록시" + "value" : "기본값으로 재설정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SOCKS Proxy" + "value" : "Varsayılana sıfırla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "SOCKS Proxy" + "value" : "Đặt lại về mặc định" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SOCKS 代理" + "value" : "重置为默认值" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SOCKS 代理" + "value" : "重設為預設值" } } } }, - "SOCKS proxy disconnected. Click to reconnect." : { + "Reset to Defaults" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SOCKS 프록시 연결이 끊어졌습니다. 클릭하여 다시 연결하십시오." + "value" : "기본값으로 재설정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SOCKS proxy bağlantısı kesildi. Yeniden bağlanmak için tıklayın." + "value" : "Varsayılana Sıfırla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "SOCKS proxy đã ngắt kết nối. Nhấn để kết nối lại." + "value" : "Khôi phục mặc định" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SOCKS 代理已断开。点按可重新连接。" + "value" : "恢复默认" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SOCKS 代理已中斷連線。點按即可重新連線。" + "value" : "重設為預設值" } } } }, - "SOCKS proxy host is required" : { + "Reset to Inferred" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SOCKS 프록시 호스트가 필요합니다" + "value" : "추론된 형식으로 재설정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SOCKS proxy sunucusu gerekli" + "value" : "Çıkarsanana Sıfırla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cần nhập máy chủ SOCKS proxy" + "value" : "Đặt lại về giá trị suy luận" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "需要填写 SOCKS 代理主机" + "value" : "重置为推断值" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "需要填寫 SOCKS 代理主機" + "value" : "重設為推斷值" } } } }, - "SOCKS proxy port must be between 1 and 65535" : { + "Reset to System Default" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SOCKS 프록시 포트는 1~65535 사이여야 합니다" + "value" : "시스템 기본값으로 재설정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SOCKS proxy portu 1 ile 65535 arasında olmalı" + "value" : "Sistem Varsayılanına Sıfırla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cổng SOCKS proxy phải nằm trong khoảng 1 đến 65535" + "value" : "Đặt lại về mặc định hệ thống" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SOCKS 代理端口必须在 1 到 65535 之间" + "value" : "重置为系统默认" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SOCKS 代理連接埠必須介於 1 到 65535 之間" + "value" : "重設為系統預設值" } } } }, - "SQL" : { + "Reset Zoom" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SQL" + "value" : "확대/축소 재설정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SQL" + "value" : "Yakınlaştırmayı Sıfırla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "SQL" + "value" : "Đặt lại thu phóng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SQL" + "value" : "重置缩放" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SQL" + "value" : "重設縮放" } } } }, - "SQL Dialect" : { - "extractionState" : "stale", + "Resource" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SQL 방언" + "value" : "리소스" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SQL Dialect" + "value" : "Kaynak" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phương ngữ SQL" + "value" : "Tài nguyên" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SQL 方言" + "value" : "资源" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SQL 方言" + "value" : "資源" } } } }, - "SQL Editor" : { + "Responding" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SQL 편집기" + "value" : "응답 중" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SQL Düzenleyici" + "value" : "Yanıt veriyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trình soạn thảo SQL" + "value" : "Đang phản hồi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SQL 编辑器" + "value" : "响应中" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SQL 編輯器" + "value" : "回應中" } } } }, - "SQL Functions" : { + "Response" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SQL 함수" + "value" : "응답" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SQL Fonksiyonları" + "value" : "Yanıt" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hàm SQL" + "value" : "Phản hồi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SQL 函数" + "value" : "响应" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SQL 函式" + "value" : "回應" } } } }, - "SQL INSERT statements. Use to recreate data in another database." : { + "Response failed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SQL INSERT 문입니다. 다른 데이터베이스에 데이터를 다시 생성할 때 사용합니다." + "value" : "응답 실패" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SQL INSERT ifadeleri. Başka bir veritabanında veri yeniden oluşturmak için kullanın." + "value" : "Yanıt başarısız oldu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Câu lệnh SQL INSERT. Dùng để tạo lại dữ liệu trong cơ sở dữ liệu khác." + "value" : "Phản hồi thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SQL INSERT 语句。用于在其他数据库中重建数据。" + "value" : "响应失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SQL INSERT 陳述式。用於在其他資料庫中重建資料。" + "value" : "回應失敗" } } } }, - "SQL Preview" : { + "Restart Claude Desktop" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SQL 미리보기" + "value" : "Claude Desktop 재시작" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SQL Önizleme" + "value" : "Claude Desktop'ı Yeniden Başlat" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xem trước SQL" + "value" : "Khởi động lại Claude Desktop" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SQL 预览" + "value" : "重启 Claude Desktop" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SQL 預覽" + "value" : "重新啟動 Claude Desktop" } } } }, - "SQL Query" : { + "Restart TablePro for the language change to take full effect." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SQL 쿼리" + "value" : "언어 변경 사항을 완전히 적용하려면 TablePro를 재시작하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SQL Sorgusu" + "value" : "Dil değişikliğinin tam olarak uygulanması için TablePro'yu yeniden başlatın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Truy vấn SQL" + "value" : "Khởi động lại TablePro để thay đổi ngôn ngữ có hiệu lực hoàn toàn." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SQL 查询" + "value" : "重启 TablePro 以使语言更改完全生效。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SQL 查詢" + "value" : "重新啟動 TablePro 以讓語言變更完全生效。" } } } }, - "SQL Server" : { - "extractionState" : "stale", + "Restart TablePro to fully unload removed plugins." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SQL Server" + "value" : "제거한 플러그인을 완전히 언로드하려면 TablePro를 재시작하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SQL Server" + "value" : "Kaldırılan eklentilerin tamamen bellekten çıkması için TablePro'yu yeniden başlatın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "SQL Server" + "value" : "Khởi động lại TablePro để gỡ hoàn toàn các plugin đã xoá." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SQL Server" + "value" : "重启 TablePro 以完全卸载已移除的插件。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SQL Server" + "value" : "重新啟動 TablePro 以完全解除載入已移除的外掛。" } } } }, - "SQL Server connections use the system trust store. Per-connection CA and client certificate paths are not supported by FreeTDS dblib; configure them in `freetds.conf` if you need a custom trust anchor." : { + "Restore Database" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SQL Server 연결은 시스템 신뢰 저장소를 사용합니다. FreeTDS dblib은 연결별 CA 및 클라이언트 인증서 경로를 지원하지 않습니다. 사용자 지정 신뢰 앵커가 필요한 경우 `freetds.conf`에서 구성하십시오." + "value" : "데이터베이스 복원" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SQL Server bağlantıları sistem güven deposunu kullanır. FreeTDS dblib, bağlantıya özel CA ve istemci sertifikası yollarını desteklemez; özel bir güven kaynağına ihtiyacınız varsa bunları `freetds.conf` dosyasında yapılandırın." + "value" : "Veritabanını Geri Yükle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối SQL Server dùng kho tin cậy của hệ thống. FreeTDS dblib không hỗ trợ đường dẫn CA và chứng chỉ client theo từng kết nối; hãy cấu hình trong `freetds.conf` nếu bạn cần trust anchor tùy chỉnh." + "value" : "Khôi phục cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SQL Server 连接使用系统信任存储。FreeTDS dblib 不支持按连接配置 CA 和客户端证书路径;如需自定义信任锚,请在 `freetds.conf` 中配置。" + "value" : "恢复数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SQL Server 連線使用系統信任存放區。FreeTDS dblib 不支援按連線設定 CA 和用戶端憑證路徑;如果你需要自訂信任錨點,請在 `freetds.conf` 中設定。" + "value" : "還原資料庫" } } } }, - "SQL commands to run after connecting, e.g. SET time_zone = 'Asia/Ho_Chi_Minh'. One per line or separated by semicolons." : { + "Restore Dump Cancelled" : { + "comment" : "A title for a result sheet that indicates a restore operation was cancelled.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 후 실행할 SQL 명령입니다(예: SET time_zone = 'Asia/Ho_Chi_Minh'). 한 줄에 하나씩 입력하거나 세미콜론으로 구분하십시오." + "value" : "덤프 복원 취소됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlandıktan sonra çalıştırılacak SQL komutları, örneğin SET time_zone = 'Asia/Ho_Chi_Minh'. Her satıra bir tane yazın veya noktalı virgülle ayırın." + "value" : "Döküm Geri Yükleme İptal Edildi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Các lệnh SQL chạy sau khi kết nối, ví dụ SET time_zone = 'Asia/Ho_Chi_Minh'. Mỗi dòng một lệnh hoặc phân cách bằng dấu chấm phẩy." + "value" : "Đã hủy khôi phục dump" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接后执行的 SQL 命令,例如 SET time_zone = 'Asia/Ho_Chi_Minh'。每行一条或用分号分隔。" + "value" : "转储恢复已取消" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線後執行的 SQL 指令,例如 SET time_zone = 'Asia/Ho_Chi_Minh'。每行一條或以分號分隔。" + "value" : "還原備份已取消" } } } }, - "SQL dialect for %@ is not available. The plugin may not be installed or loaded." : { + "Restore Dump Complete" : { + "comment" : "A title for a backup result sheet that indicates a successful restore.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@용 SQL 방언을 사용할 수 없습니다. 플러그인이 설치되지 않았거나 로드되지 않았을 수 있습니다." + "value" : "덤프 복원 완료" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ için SQL diyalekti kullanılamıyor. Eklenti kurulmamış veya yüklenmemiş olabilir." + "value" : "Döküm Geri Yükleme Tamamlandı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có dialect SQL cho %@. Plugin có thể chưa được cài đặt hoặc tải." + "value" : "Khôi phục dump hoàn tất" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 的 SQL 方言不可用。插件可能未安装或未加载。" + "value" : "转储恢复完成" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 的 SQL 方言無法使用。外掛可能尚未安裝或載入。" + "value" : "還原備份完成" } } } }, - "SQL import is not supported for %@ connections." : { - "extractionState" : "stale", + "Restore Dump Failed" : { + "comment" : "A title for a backup result sheet that indicates a failed restore.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 연결에서는 SQL 가져오기를 지원하지 않습니다." + "value" : "덤프 복원 실패" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ bağlantıları için SQL içe aktarma desteklenmiyor." + "value" : "Döküm Geri Yükleme Başarısız Oldu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập SQL không được hỗ trợ cho kết nối %@." + "value" : "Khôi phục dump thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "不支持对 %@ 连接进行 SQL 导入。" + "value" : "转储恢复失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 連線不支援 SQL 匯入。" + "value" : "還原備份失敗" } } } }, - "SQL is too long: %d characters (limit %d)" : { + "Restore Dump…" : { + "comment" : "A button that opens a dialog to restore a database from a dump.", + "isCommentAutoGenerated" : true, "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "SQL is too long: %1$d characters (limit %2$d)" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SQL이 너무 깁니다: %1$d자(제한: %2$d자)" + "value" : "덤프 복원…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SQL çok uzun: %d karakter (sınır %d)" + "value" : "Dökümü Geri Yükle…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "SQL quá dài: %d ký tự (giới hạn %d)" + "value" : "Khôi phục dump…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SQL 过长:%d 个字符(上限 %d)" + "value" : "恢复转储…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SQL 過長:%1$d 個字(上限 %2$d)" + "value" : "正在還原備份…" } } } }, - "SQL or NoSQL query text" : { + "Restore from" : { + "comment" : "A label displayed above the name of the source database.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SQL 또는 NoSQL 쿼리 텍스트" + "value" : "다음에서 복원" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SQL veya NoSQL sorgu metni" + "value" : "Geri yükleme kaynağı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nội dung truy vấn SQL hoặc NoSQL" + "value" : "Khôi phục từ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SQL 或 NoSQL 查询文本" + "value" : "恢复来源" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SQL 或 NoSQL 查詢文字" + "value" : "還原來源" } } } }, - "SQL query editor" : { + "Restore Last Filter" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SQL 쿼리 편집기" + "value" : "마지막 필터 복원" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SQL sorgu düzenleyicisi" + "value" : "Son Filtreyi Geri Yükle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trình soạn truy vấn SQL" + "value" : "Khôi phục bộ lọc gần nhất" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SQL 查询编辑器" + "value" : "恢复上次筛选" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SQL 查詢編輯器" + "value" : "還原上次篩選" } } } }, - "SQL query to export results from" : { + "Restore…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "결과를 내보낼 SQL 쿼리" + "value" : "복원…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sonuçları dışa aktarılacak SQL sorgusu" + "value" : "Geri Yükle…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Truy vấn SQL để xuất kết quả" + "value" : "Khôi phục…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "要导出结果的 SQL 查询" + "value" : "恢复…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "要匯出結果的 SQL 查詢" + "value" : "還原…" } } } }, - "SQLite is file-based" : { + "Restored “%@” from %@" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Restored “%1$@” from %2$@" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SQLite는 파일 기반입니다" + "value" : "%2$@에서 “%1$@” 복원을 완료했습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SQLite dosya tabanlıdır" + "value" : "“%1$@” şuradan geri yüklendi: %2$@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "SQLite dựa trên tệp" + "value" : "Đã khôi phục “%1$@” từ %2$@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SQLite 基于文件" + "value" : "已从%2$@恢复“%1$@”" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SQLite 以檔案為基礎" + "value" : "已從 %1$@ 還原「%2$@」" } } } }, - "SSH" : { + "Restoring Dump" : { + "comment" : "A title for a progress sheet that is displayed when restoring a database dump.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH" + "value" : "덤프 복원 중" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH" + "value" : "Döküm Geri Yükleniyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "SSH" + "value" : "Đang khôi phục dump" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SSH" + "value" : "正在恢复转储" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SSH" + "value" : "正在還原資料庫" } } } }, - "SSH Agent" : { + "Restrict to a specific connection (UUID, optional)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 에이전트" + "value" : "특정 연결로 제한(UUID, 선택 사항)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH Aracısı" + "value" : "Belirli bir bağlantıyla sınırla (UUID, isteğe bağlı)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "SSH Agent" + "value" : "Giới hạn theo một kết nối cụ thể (UUID, tùy chọn)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SSH Agent" + "value" : "限制为特定连接(UUID,可选)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SSH Agent" + "value" : "限制為特定連線(UUID,選用)" } } } }, - "SSH Connection Test Failed" : { - "extractionState" : "stale", + "Restrict to one connection" : { + + }, + "Restrict to one connection. Omit for every readable connection." : { + + }, + "Restrict to one kind. Omit for both." : { + + }, + "Result" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 연결 테스트 실패" + "value" : "결과" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH Bağlantı Testi Başarısız" + "value" : "Sonuç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kiểm tra Kết nối SSH Thất bại" + "value" : "Kết quả" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 连接测试失败" + "value" : "结果" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 連線測試失敗" + "value" : "結果" } } } }, - "SSH Host" : { + "Result %d" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 호스트" + "value" : "결과 %d" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH Host" + "value" : "Sonuç %d" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Máy chủ SSH" + "value" : "Kết quả %d" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 主机" + "value" : "结果 %d" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 主機" + "value" : "結果 %d" } } } }, - "SSH Host Key Changed" : { + "Result Charts" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 호스트 키 변경됨" + "value" : "결과 차트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH Sunucu Anahtarı Değişti" + "value" : "Sonuç Grafikleri" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khóa máy chủ SSH đã thay đổi" + "value" : "Biểu đồ kết quả" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 主机密钥已更改" + "value" : "结果图表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 主機金鑰已變更" + "value" : "結果圖表" } } } }, - "SSH Key Passphrase Required" : { + "Result View" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 키 암호 필요" + "value" : "결과 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH Anahtarı Parolası Gerekli" + "value" : "Sonuç Görünümü" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cần mật khẩu khoá SSH" + "value" : "Chế độ xem kết quả" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "需要 SSH 密钥密码" + "value" : "结果视图" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "需要 SSH 金鑰密碼短語" + "value" : "結果檢視" } } } }, - "SSH Port" : { + "Results" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 포트" + "value" : "결과" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH Port" + "value" : "Sonuçlar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cổng SSH" + "value" : "Kết quả" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 端口" + "value" : "结果" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 連接埠" + "value" : "結果" } } } }, - "SSH Profile" : { - "extractionState" : "stale", + "Resume" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "SSH Profile" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 프로필" + "value" : "재개" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH Profili" + "value" : "Devam Et" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hồ sơ SSH" + "value" : "Tiếp tục" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 配置" + "value" : "继续" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 設定檔" + "value" : "繼續" } } } }, - "SSH Profiles:" : { + "Resume Query History" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "SSH Profiles:" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 프로필:" + "value" : "쿼리 기록 재개" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH Profilleri:" + "value" : "Sorgu Geçmişini Sürdür" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hồ sơ SSH:" + "value" : "Tiếp tục lịch sử truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 配置:" + "value" : "恢复查询历史" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 設定檔:" + "value" : "繼續查詢歷史" } } } }, - "SSH Tunnel" : { + "Resume with a fresh tool call budget." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 터널" + "value" : "새 도구 호출 한도로 재개합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH Tüneli" + "value" : "Yeni bir araç çağrısı bütçesiyle devam eder." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đường hầm SSH" + "value" : "Tiếp tục với hạn mức gọi công cụ mới." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 隧道" + "value" : "以新的工具调用额度继续。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 隧道" + "value" : "以新的工具呼叫額度繼續。" } } } }, - "SSH User" : { + "Retention" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 사용자" + "value" : "보존 기간" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH User" + "value" : "Retention" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Người dùng SSH" + "value" : "Lưu giữ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 用户" + "value" : "保留" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 使用者" + "value" : "保留" } } } }, - "SSH Verification Rejected" : { + "Retry" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 확인 거부됨" + "value" : "재시도" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH Doğrulaması Reddedildi" + "value" : "Tekrar Dene" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xác minh SSH bị từ chối" + "value" : "Thử lại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 验证被拒绝" + "value" : "重试" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 驗證遭拒" + "value" : "重試" } } } }, - "SSH Verification Required" : { + "Retry Install" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 확인 필요" + "value" : "설치 재시도" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH Doğrulaması Gerekli" + "value" : "Kurulumu Yeniden Dene" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cần xác minh SSH" + "value" : "Thử cài đặt lại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "需要 SSH 验证" + "value" : "重试安装" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "需要 SSH 驗證" + "value" : "重試安裝" } } } }, - "SSH agent did not authenticate. Run ssh-add -l to check loaded keys." : { + "Retry Update" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 에이전트가 인증하지 못했습니다. ssh-add -l을 실행하여 로드된 키를 확인하십시오." + "value" : "업데이트 재시도" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH aracısı kimlik doğrulaması yapmadı. Yüklü anahtarları denetlemek için ssh-add -l komutunu çalıştırın." + "value" : "Güncellemeyi Yeniden Dene" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "SSH agent không xác thực được. Chạy ssh-add -l để kiểm tra các khóa đã nạp." + "value" : "Thử cập nhật lại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 代理未通过身份验证。运行 ssh-add -l 检查已加载的密钥。" + "value" : "重试更新" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 代理未通過驗證。請執行 ssh-add -l 檢查已載入的金鑰。" + "value" : "重試更新" } } } }, - "SSH authentication cancelled." : { + "Retry Validation" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Retry Validation" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 인증이 취소되었습니다." + "value" : "유효성 검사 재시도" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH kimlik doğrulaması iptal edildi." + "value" : "Doğrulamayı Tekrar Dene" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã hủy xác thực SSH." + "value" : "Thử lại xác thực" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 认证已取消。" + "value" : "重试验证" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 驗證已取消。" + "value" : "重試驗證" } } } }, - "SSH authentication failed. Check your credentials or private key." : { + "Return size, engine, collation, and timestamps the engine records for one table." : { + + }, + "Return table counts and sizes for one database, or for every database when 'database' is omitted." : { + + }, + "Return the CREATE statement for one table or view." : { + + }, + "Return the SELECT statement a view is defined by." : { + + }, + "Returns %@" : { + + }, + "Reuse clean table tab" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 인증에 실패했습니다. 자격 증명 또는 개인 키를 확인하십시오." + "value" : "변경 사항이 없는 테이블 탭 재사용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH kimlik doğrulaması başarısız. Kimlik bilgilerinizi veya özel anahtarınızı kontrol edin." + "value" : "Reuse clean table tab" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xác thực SSH thất bại. Kiểm tra thông tin đăng nhập hoặc khóa riêng tư." + "value" : "Tái sử dụng tab bảng trống" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 认证失败。请检查您的凭据或私钥。" + "value" : "复用空白表标签页" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 驗證失敗。請檢查你的憑證或私鑰。" + "value" : "重複使用空白資料表分頁" } } } }, - "SSH command not found. Please ensure OpenSSH is installed." : { - "extractionState" : "stale", + "Reveal token" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 명령을 찾을 수 없습니다. OpenSSH가 설치되어 있는지 확인하십시오." + "value" : "토큰 표시" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH command not found. Please ensure OpenSSH is installed." + "value" : "Token'ı göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy lệnh SSH. Vui lòng đảm bảo OpenSSH đã được cài đặt." + "value" : "Hiện token" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未找到 SSH 命令。请确保已安装 OpenSSH。" + "value" : "显示令牌" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "找不到 SSH 指令。請確認已安裝 OpenSSH。" + "value" : "顯示權杖" } } } }, - "SSH connection timed out" : { + "review" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 연결 시간이 초과되었습니다" + "value" : "검토" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH bağlantısı zaman aşımına uğradı" + "value" : "incele" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối SSH đã hết thời gian" + "value" : "xem lại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 连接超时" + "value" : "审查" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 連線逾時" + "value" : "審查" } } } }, - "SSH host is required" : { + "Review & Apply…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 호스트가 필요합니다" + "value" : "검토 및 적용…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH sunucusu gereklidir" + "value" : "Gözden Geçir ve Uygula…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cần nhập máy chủ SSH" + "value" : "Xem lại và áp dụng…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "需要 SSH 主机" + "value" : "检查并应用…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "需要 SSH 主機" + "value" : "檢視並套用…" } } } }, - "SSH host key verification failed" : { + "Review a query before it runs" : { + + }, + "Revoke" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 호스트 키 확인에 실패했습니다" + "value" : "철회" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH sunucu anahtarı doğrulaması başarısız" + "value" : "İptal Et" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xác minh khóa máy chủ SSH thất bại" + "value" : "Thu hồi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 主机密钥验证失败" + "value" : "撤销" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 主機金鑰驗證失敗" + "value" : "撤銷" } } } }, - "SSH password rejected. Check the password and try again." : { + "Revoke %1$@ on %2$@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 암호가 거부되었습니다. 암호를 확인하고 다시 시도하십시오." + "value" : "%2$@에 대한 %1$@ 철회" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH parolası reddedildi. Parolayı denetleyip yeniden deneyin." + "value" : "%2$@ üzerindeki %1$@ yetkisini geri al" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mật khẩu SSH bị từ chối. Kiểm tra mật khẩu và thử lại." + "value" : "Thu hồi %1$@ trên %2$@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 密码被拒绝。请检查密码后重试。" + "value" : "撤销 %2$@ 上的 %1$@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 密碼被拒絕。請檢查密碼後再試一次。" + "value" : "撤銷 %2$@ 上的 %1$@" } } } }, - "SSH port must be between 1 and 65535" : { + "Revoke All" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 포트는 1~65535 사이여야 합니다" + "value" : "모두 철회" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH portu 1 ile 65535 arasında olmalıdır" + "value" : "Tümünü Geri Al" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cổng SSH phải nằm trong khoảng 1 đến 65535" + "value" : "Thu hồi tất cả" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 端口必须在 1 到 65535 之间" + "value" : "全部撤销" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 連接埠必須在 1 到 65535 之間" + "value" : "全部撤銷" } } } }, - "SSH private key not found: %@" : { + "Revoke privileges from %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 개인 키를 찾을 수 없습니다: %@" + "value" : "%@의 권한 철회" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH özel anahtarı bulunamadı: %@" + "value" : "%@ hesabından yetkileri geri al" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy private key SSH: %@" + "value" : "Thu hồi quyền của %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未找到 SSH 私钥:%@" + "value" : "撤销 %@ 的权限" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "找不到 SSH 私密金鑰:%@" + "value" : "撤銷 %@ 的權限" } } } }, - "SSH private key rejected. Check the key file or passphrase." : { + "Revoked" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 개인 키가 거부되었습니다. 키 파일 또는 암호를 확인하십시오." + "value" : "철회됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH özel anahtarı reddedildi. Anahtar dosyasını veya parola ifadesini denetleyin." + "value" : "İptal Edildi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Private key SSH bị từ chối. Kiểm tra file khóa hoặc passphrase." + "value" : "Đã thu hồi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 私钥被拒绝。请检查密钥文件或密码短语。" + "value" : "已撤销" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 私密金鑰被拒絕。請檢查金鑰檔案或密碼短語。" + "value" : "已撤銷" } } } }, - "SSH tunnel already exists for connection: %@" : { + "Right-click to show all %@" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결에 대한 SSH 터널이 이미 있습니다: %@" + "value" : "마우스 오른쪽 버튼을 클릭하여 모든 %@ 표시" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu bağlantı için zaten bir SSH tüneli var: %@" + "value" : "Right-click to show all %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đường hầm SSH đã tồn tại cho kết nối: %@" + "value" : "Nhấp chuột phải để hiển thị tất cả %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接已存在 SSH 隧道:%@" + "value" : "右键点击显示全部%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此連線已存在 SSH 隧道:%@" + "value" : "按右鍵以顯示全部 %@" } } } }, - "SSH tunnel creation failed: %@" : { + "Right-click to show all tables" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 터널 생성 실패: %@" + "value" : "마우스 오른쪽 버튼을 클릭하여 모든 테이블 표시" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH tüneli oluşturulamadı: %@" + "value" : "Right-click to show all tables" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tạo đường hầm SSH thất bại: %@" + "value" : "Nhấn chuột phải để hiện tất cả bảng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "创建 SSH 隧道失败:%@" + "value" : "右键单击显示所有表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "建立 SSH 隧道失敗:%@" + "value" : "按右鍵顯示所有資料表" } } } }, - "SSH tunnel did not connect within 30 seconds" : { - "extractionState" : "stale", + "Role" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 터널이 30초 이내에 연결되지 않았습니다" + "value" : "역할" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH tüneli 30 saniye içinde bağlanamadı" + "value" : "Rol" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đường hầm SSH không kết nối được trong 30 giây" + "value" : "Vai trò" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 隧道在 30 秒内未能连接" + "value" : "角色" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 隧道未能在 30 秒內連線" + "value" : "角色" } } } }, - "SSH tunnel disconnected. Click to reconnect." : { + "Role Attributes" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 터널 연결이 끊어졌습니다. 클릭하여 다시 연결하십시오." + "value" : "역할 속성" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH tüneli bağlantısı kesildi. Yeniden bağlanmak için tıklayın." + "value" : "Rol Öznitelikleri" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "SSH tunnel đã ngắt kết nối. Bấm để kết nối lại." + "value" : "Thuộc tính vai trò" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 隧道已断开。点按以重新连接。" + "value" : "角色属性" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 隧道已中斷連線。點按以重新連線。" + "value" : "角色屬性" } } } }, - "SSH tunneling and SSL/TLS encryption support" : { + "Roles it belongs to" : { + + }, + "root" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 터널링 및 SSL/TLS 암호화 지원" + "value" : "root" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH tünelleme ve SSL/TLS şifreleme desteği" + "value" : "root" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hỗ trợ đường hầm SSH và mã hóa SSL/TLS" + "value" : "root" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 隧道和 SSL/TLS 加密支持" + "value" : "root" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "支援 SSH 隧道與 SSL/TLS 加密" + "value" : "root" } } } }, - "SSH tunneling only forwards the first host. Other replica set members must be directly reachable from the SSH server." : { - "extractionState" : "stale", + "Root" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 터널링은 첫 번째 호스트만 전달합니다. 다른 복제 세트 멤버는 SSH 서버에서 직접 연결할 수 있어야 합니다." + "value" : "루트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH tüneli yalnızca ilk sunucuyu yönlendirir. Diğer replica set üyelerine SSH sunucusundan doğrudan erişilebilir olmalıdır." + "value" : "Root" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "SSH tunnel chỉ chuyển tiếp host đầu tiên. Các thành viên replica set khác phải truy cập được trực tiếp từ SSH server." + "value" : "Root" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 隧道仅转发第一个主机。其他副本集成员必须能从 SSH 服务器直接访问。" + "value" : "Root" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 隧道僅會轉送第一個主機。其他複本集成員必須能從 SSH 伺服器直接連線。" + "value" : "Root" } } } }, - "SSH verification rejected. Check your response and try again." : { + "Root Level" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 확인이 거부되었습니다. 응답을 확인하고 다시 시도하십시오." + "value" : "최상위" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH doğrulaması reddedildi. Yanıtınızı denetleyip tekrar deneyin." + "value" : "Kök Seviye" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xác minh SSH bị từ chối. Kiểm tra lại câu trả lời và thử lại." + "value" : "Cấp gốc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 验证被拒绝。请检查你的回答后重试。" + "value" : "根级别" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 驗證遭拒。請檢查你的回答後再試一次。" + "value" : "根層級" } } } }, - "SSL" : { + "Round trip in milliseconds" : { + + }, + "Routes this connection through a SOCKS5 proxy. The database hostname is resolved by the proxy, so names that only resolve behind it still work." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSL" + "value" : "SOCKS5 프록시를 통해 이 연결을 라우팅합니다. 데이터베이스 호스트 이름은 프록시가 확인하므로 프록시 측 네트워크에서만 확인되는 이름도 사용할 수 있습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSL" + "value" : "Bu bağlantıyı bir SOCKS5 proxy üzerinden yönlendirir. Veritabanı sunucu adı proxy tarafından çözümlenir, böylece yalnızca proxy arkasında çözümlenen adlar da çalışır." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "SSL" + "value" : "Định tuyến kết nối này qua một SOCKS5 proxy. Tên máy chủ cơ sở dữ liệu do proxy phân giải, nên những tên chỉ phân giải được phía sau proxy vẫn dùng được." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SSL" + "value" : "通过 SOCKS5 代理转发此连接。数据库主机名由代理解析,因此只能在代理后解析的名称同样可用。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SSL" + "value" : "透過 SOCKS5 代理轉送此連線。資料庫主機名稱由代理解析,因此只能在代理後方解析的名稱同樣可用。" } } } }, - "SSL Mode" : { + "Routine name" : { + + }, + "Routines, sorted by qualified name" : { + + }, + "Row" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSL 모드" + "value" : "행" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSL Modu" + "value" : "Satır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chế độ SSL" + "value" : "Hàng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SSL 模式" + "value" : "行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SSL 模式" + "value" : "列" } } } }, - "SSL/TLS" : { + "Row %d" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSL/TLS" + "value" : "%d행" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSL/TLS" + "value" : "Satır %d" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "SSL/TLS" + "value" : "Dòng %d" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SSL/TLS" + "value" : "第%d行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SSL/TLS" + "value" : "第 %d 列" } } } }, - "STATISTICS" : { + "Row %d, column %d: %@" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Row %1$d, column %2$d: %3$@" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "통계" + "value" : "%1$d행, %2$d열: %3$@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "STATISTICS" + "value" : "Satır %d, sütun %d: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "THỐNG KÊ" + "value" : "Dòng %d, cột %d: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "统计信息" + "value" : "第%d行,第%d列:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "統計資訊" + "value" : "第 %1$d 列,第 %2$d 欄:%3$@" } } } }, - "Safe Mode" : { + "Row %lld" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "안전 모드" + "value" : "%lld행" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Güvenli Mod" + "value" : "satır %lld" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chế độ an toàn" + "value" : "Hàng %lld" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "安全模式" + "value" : "行 %lld" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "安全模式" + "value" : "第 %lld 列" } } } }, - "Safe Mode (Full)" : { + "Row %lld, column %lld: %@" : { + "extractionState" : "stale", "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Row %1$lld, column %2$lld: %3$@" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "안전 모드(전체)" + "value" : "%1$lld행, %2$lld열: %3$@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Güvenli Mod (Tam)" + "value" : "satır %lld, column %lld: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chế độ an toàn (Đầy đủ)" + "value" : "Hàng %lld, cột %lld: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "安全模式(完整)" + "value" : "行 %lld,列 %lld:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "安全模式(完整)" + "value" : "第 %1$lld 列,第 %2$lld 欄:%3$@" } } } }, - "Safe Mode Is Read-Only" : { + "Row cap:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "안전 모드는 읽기 전용입니다" + "value" : "행 상한:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Safe Mode Salt Okunur" + "value" : "Satır sınırı:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chế độ an toàn đang ở mức chỉ đọc" + "value" : "Giới hạn hàng:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "安全模式为只读" + "value" : "行数上限:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "安全模式為唯讀" + "value" : "列數上限:" } } } }, - "Safe Mode, Safe Mode (Full), and Read-Only require a Pro license." : { + "Row count the engine reports" : { + + }, + "Row counts come from engine statistics, not COUNT(*)" : { + + }, + "Row data size" : { + + }, + "Row Details" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "안전 모드, 안전 모드(전체) 및 읽기 전용 기능에는 Pro 라이선스가 필요합니다." + "value" : "행 세부사항" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Güvenli Mod, Güvenli Mod (Tam) ve Salt Okunur için Pro lisans gereklidir." + "value" : "Row Details" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chế độ an toàn, Chế độ an toàn (toàn phần) và Chỉ đọc yêu cầu giấy phép Pro." + "value" : "Chi tiết dòng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "安全模式、安全模式(完整)和只读模式需要 Pro 许可证。" + "value" : "行详情" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "安全模式、安全模式(完整)和唯讀模式需要 Pro 授權。" + "value" : "列詳細資訊" } } } }, - "Safe Mode: %@" : { + "Row edits" : { + + }, + "Row Edits" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "안전 모드: %@" + "value" : "행 편집" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Güvenli Mod: %@" + "value" : "Satır Düzenlemeleri" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chế độ an toàn: %@" + "value" : "Sửa hàng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "安全模式:%@" + "value" : "行编辑" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "安全模式:%@" + "value" : "列編輯" } } } }, - "Same options will be applied to all selected tables." : { + "Row height:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "선택한 모든 테이블에 동일한 옵션이 적용됩니다." + "value" : "행 높이:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Aynı seçenekler seçili tüm tablolara uygulanır." + "value" : "Satır yüksekliği:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cùng tùy chọn sẽ được áp dụng cho tất cả bảng đã chọn." + "value" : "Chiều cao dòng:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "相同选项将应用于所有选中的表。" + "value" : "行高:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "相同的選項將套用至所有選取的資料表。" + "value" : "列高:" } } } }, - "Sanitize formula-like values" : { + "Row Heights" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "수식 형태의 값 무해화" + "value" : "행 높이" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sanitize formula-like values" + "value" : "Row Heights" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Làm sạch giá trị giống công thức" + "value" : "Chiều cao dòng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "清理类公式值" + "value" : "行高" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "清理類公式值" + "value" : "列高" } } } }, - "Save" : { + "Row limit:" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "저장" + "value" : "행 제한:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kaydet" + "value" : "Satır limiti:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lưu" + "value" : "Giới hạn dòng:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "保存" + "value" : "行数限制:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "儲存" + "value" : "列數限制:" } } } }, - "Save & Connect" : { + "Row number" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "저장 및 연결" + "value" : "행 번호" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kaydet & Bağlan" + "value" : "Satır numarası" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lưu & kết nối" + "value" : "Số hàng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "保存并连接" + "value" : "行号" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "儲存並連線" + "value" : "列號" } } } }, - "Save Anyway" : { + "Row Number" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "그래도 저장" + "value" : "행 번호" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yine de Kaydet" + "value" : "Satır Numarası" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Vẫn lưu" + "value" : "Số thứ tự dòng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "仍然保存" + "value" : "行号" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "仍要儲存" + "value" : "列號" } } } }, - "Save As" : { + "ROW or STATEMENT" : { + + }, + "Row size:" : { + "comment" : "A label for the size of the sidebar rows.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다른 이름으로 저장" + "value" : "행 크기:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Farklı Kaydet" + "value" : "Satır boyutu:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lưu thành" + "value" : "Cỡ hàng:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "另存为" + "value" : "行大小:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "另存新檔" + "value" : "列大小:" } } } }, - "Save As…" : { + "Rows" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다른 이름으로 저장…" + "value" : "행" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Farklı Kaydet…" + "value" : "Satırlar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lưu thành…" + "value" : "Dòng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "另存为…" + "value" : "行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "另存新檔…" + "value" : "列" } } } }, - "Save Changes" : { + "Rows %lld-%lld" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "변경 사항 저장" + "value" : "%lld-%lld행" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Değişiklikleri Kaydet" + "value" : "%lld-%lld. satırlar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lưu thay đổi" + "value" : "Hàng %lld-%lld" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "保存更改" + "value" : "第 %lld-%lld 行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "儲存變更" + "value" : "第 %lld-%lld 列" } } } }, - "Save Changes (⌘S)" : { + "Rows Compare Data" : { + + }, + "Rows in this export" : { + + }, + "Rows per INSERT" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "변경 사항 저장(⌘S)" + "value" : "INSERT당 행 수" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Save Changes (⌘S)" + "value" : "Rows per INSERT" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lưu thay đổi (⌘S)" + "value" : "Dòng mỗi INSERT" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "保存更改 (⌘S)" + "value" : "每条 INSERT 的行数" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "儲存變更 (⌘S)" + "value" : "每筆 INSERT 的列數" } } } }, - "Save Current as Profile…" : { + "Rows per insertMany" : { + "extractionState" : "stale", "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Save Current as Profile…" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "현재 설정을 프로필로 저장…" + "value" : "insertMany당 행 수" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geçerli Ayarları Profil Olarak Kaydet…" + "value" : "Rows per insertMany" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lưu hiện tại thành hồ sơ…" + "value" : "Số dòng mỗi insertMany" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将当前设置保存为配置…" + "value" : "每条 insertMany 的行数" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將目前設定儲存為設定檔…" + "value" : "每筆 insertMany 的列數" } } } }, - "Save Dump" : { + "Rows per page" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "덤프 저장" + "value" : "페이지당 행 수" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dökümü Kaydet" + "value" : "Sayfa başına satır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lưu dump" + "value" : "Số hàng mỗi trang" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "保存转储" + "value" : "每页行数" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "儲存備份檔" + "value" : "每頁列數" } } } }, - "Save Failed" : { + "Rows per page. Defaults to the server's configured row limit." : { + + }, + "Rows sent" : { + + }, + "Rows set to “same element” must all match one %@ element" : { + + }, + "Rows the engine reported inserting" : { + + }, + "Rows the statement changed" : { + + }, + "Rows the statement returned" : { + + }, + "Rows to insert, each an array aligned with 'columns'" : { + + }, + "Rows to skip (default 0)" : { + + }, + "Rows, each an array aligned with columns" : { + + }, + "Rules" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "저장 실패" + "value" : "규칙" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kaydetme Başarısız" + "value" : "Kurallar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lưu thất bại" + "value" : "Quy tắc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "保存失败" + "value" : "规则" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "儲存失敗" + "value" : "規則" } } } }, - "Save Filter Preset" : { + "Run" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터 프리셋 저장" + "value" : "실행" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtre Ön Ayarını Kaydet" + "value" : "Çalıştır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lưu mẫu bộ lọc" + "value" : "Chạy" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "保存筛选预设" + "value" : "运行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "儲存篩選預設集" + "value" : "執行" } } } }, - "Save SQL file" : { + "Run a maintenance operation the engine supports, on one table or on the whole database. TablePro generates the statements; the user approves them. Needs tools:write." : { + + }, + "Run a query to see execution time" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SQL 파일 저장" + "value" : "쿼리를 실행하여 실행 시간 확인" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SQL dosyasını kaydet" + "value" : "Çalışma süresini görmek için bir sorgu çalıştırın" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lưu tệp SQL" + "value" : "Chạy truy vấn để xem thời gian thực thi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "保存 SQL 文件" + "value" : "运行查询以查看执行时间" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "儲存 SQL 檔案" + "value" : "執行查詢以查看執行時間" } } } }, - "Save Sidebar Changes" : { + "Run against this database (uses current if omitted)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사이드바 변경 사항 저장" + "value" : "이 데이터베이스에서 실행(생략 시 현재 데이터베이스 사용)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kenar Çubuğu Değişikliklerini Kaydet" + "value" : "Bu veritabanında çalıştır (belirtilmezse geçerli olan kullanılır)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lưu thay đổi thanh bên" + "value" : "Chạy trên cơ sở dữ liệu này (bỏ trống thì dùng cái hiện tại)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "保存侧边栏更改" + "value" : "在此数据库上运行(省略则使用当前数据库)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "儲存側邊欄變更" + "value" : "在此資料庫上執行(省略則使用目前的資料庫)" } } } }, - "Save Table Template" : { + "Run against this schema (uses current if omitted)" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 템플릿 저장" + "value" : "이 스키마에서 실행(생략 시 현재 스키마 사용)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Save Table Template" + "value" : "Bu şemada çalıştır (belirtilmezse geçerli olan kullanılır)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lưu mẫu bảng" + "value" : "Chạy trên schema này (bỏ trống thì dùng cái hiện tại)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "保存表模板" + "value" : "在此 Schema 上运行(省略则使用当前 Schema)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "儲存資料表範本" + "value" : "在此綱要上執行(省略則使用目前的綱要)" } } } }, - "Save and load filter presets" : { - "extractionState" : "stale", + "Run button beside each statement" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터 프리셋 저장 및 불러오기" + "value" : "각 문 옆에 실행 버튼" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Save and load filter presets" + "value" : "Her ifadenin yanında çalıştır düğmesi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lưu và tải mẫu bộ lọc" + "value" : "Nút chạy bên cạnh mỗi câu lệnh" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "保存和加载筛选预设" + "value" : "每条语句旁显示运行按钮" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "儲存並載入篩選預設集" + "value" : "每個陳述式旁顯示執行按鈕" } } } }, - "Save as Favorite" : { + "Run in a transaction" : { + + }, + "Run in New Tab" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "즐겨찾기로 저장" + "value" : "새 탭에서 실행" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Favori Olarak Kaydet" + "value" : "Yeni Sekmede Çalıştır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lưu vào yêu thích" + "value" : "Chạy trong tab mới" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "保存为收藏" + "value" : "在新标签页中运行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "儲存為我的最愛" + "value" : "在新分頁中執行" } } } }, - "Save as Favorite…" : { + "Run Maintenance" : { + + }, + "Run one destructive statement (DROP, TRUNCATE, ALTER ... DROP). The user approves it before it runs: through your elicitation prompt when your client supports elicitation, otherwise through TablePro's own confirmation dialog on the user's Mac. Needs tools:write and a connection the user left writable for external clients." : { + + }, + "Run one statement. Reads need tools:read; anything that writes needs tools:write and is subject to the connection's Safe Mode, which asks the user to approve it. DROP and TRUNCATE go through confirm_destructive_operation instead. Statements that read or write files, or run server-side code, are refused. Send one statement per call." : { + + }, + "Run Script" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "즐겨찾기로 저장…" + "value" : "스크립트 실행" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sık Kullanılan Olarak Kaydet…" + "value" : "Betiği Çalıştır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lưu vào mục yêu thích…" + "value" : "Chạy script" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "存储为收藏…" + "value" : "运行脚本" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "儲存為我的最愛…" + "value" : "執行指令碼" } } } }, - "Save as Preset…" : { + "Run some queries and this tab will show which you run most, which run slowest, and which got slower." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "프리셋으로 저장…" + "value" : "몇 개의 쿼리를 실행하면 이 탭에서 가장 자주 실행한 쿼리, 가장 느린 쿼리, 성능이 저하된 쿼리를 확인할 수 있습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ön Ayar Olarak Kaydet…" + "value" : "Birkaç sorgu çalıştırın; bu sekme en çok çalıştırdıklarınızı, en yavaş olanları ve yavaşlayanları gösterecek." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lưu dưới dạng mẫu…" + "value" : "Chạy vài truy vấn và tab này sẽ cho thấy truy vấn nào bạn chạy nhiều nhất, chạy chậm nhất và chậm đi." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "另存为预设…" + "value" : "运行一些查询,这个标签页就会显示哪些查询你运行得最多、哪些最慢、哪些变慢了。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "另存為預設集…" + "value" : "執行一些查詢,這個分頁就會顯示哪些查詢你執行得最多、哪些最慢、哪些變慢了。" } } } }, - "Save as Template" : { - "extractionState" : "stale", + "Run statement" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "템플릿으로 저장" + "value" : "문 실행" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Save as Template" + "value" : "İfadeyi çalıştır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lưu dưới dạng mẫu" + "value" : "Chạy câu lệnh" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "另存为模板" + "value" : "运行语句" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "另存為範本" + "value" : "執行陳述式" } } } }, - "Save failed: %@" : { + "Run Statement and Advance" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "저장 실패: %@" + "value" : "문 실행 후 다음으로" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kaydetme başarısız: %@" + "value" : "İfadeyi Çalıştır ve İlerle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lưu thất bại: %@" + "value" : "Chạy câu lệnh rồi chuyển tiếp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "保存失败:%@" + "value" : "运行语句并前进" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "儲存失敗:%@" + "value" : "執行陳述式並前進" } } } }, - "Save frequently used queries\nfor quick access." : { - "extractionState" : "stale", + "Run the command below in your terminal" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "자주 사용하는 쿼리를 저장하여\n빠르게 이용하십시오." + "value" : "터미널에서 아래 명령을 실행하십시오" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Save frequently used queries\nfor quick access." + "value" : "Aşağıdaki komutu terminalinizde çalıştırın" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lưu các truy vấn thường dùng\nđể truy cập nhanh." + "value" : "Chạy lệnh dưới đây trong terminal" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "保存常用查询\n以便快速访问。" + "value" : "在终端中运行以下命令" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "儲存常用查詢\n以便快速存取。" + "value" : "在終端機中執行以下指令" } } } }, - "Save frequently used queries for quick access." : { - "extractionState" : "stale", + "Run the statement and report actual timings (default false)" : { + + }, + "Run the statement starting on line %d" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "자주 사용하는 쿼리를 저장하여 빠르게 이용하십시오." + "value" : "%d번째 줄에서 시작하는 문 실행" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sık kullanılan sorguları hızlı erişim için kaydedin." + "value" : "%d. satırda başlayan ifadeyi çalıştır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lưu các truy vấn thường dùng để truy cập nhanh." + "value" : "Chạy câu lệnh bắt đầu ở dòng %d" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "保存常用查询以便快速访问。" + "value" : "运行从第 %d 行开始的语句" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "儲存常用查詢以便快速存取。" + "value" : "執行從第 %d 行開始的陳述式" } } } }, - "Save frequently used queries, or link a folder of .sql files to share with your team." : { + "Running on port %d" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "자주 사용하는 쿼리를 저장하거나 .sql 파일 폴더를 연결하여 팀과 공유하십시오." + "value" : "포트 %d에서 실행 중" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sık kullanılan sorguları kaydedin veya ekibinizle paylaşmak için bir .sql dosyaları klasörü bağlayın." + "value" : "%d portunda çalışıyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lưu các truy vấn thường dùng, hoặc liên kết một thư mục chứa file .sql để chia sẻ với nhóm của bạn." + "value" : "Đang chạy trên cổng %d" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "保存常用查询,或链接包含 .sql 文件的文件夹以与团队共享。" + "value" : "运行在端口 %d" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "儲存常用查詢,或連結包含 .sql 檔案的資料夾以與你的團隊共用。" + "value" : "執行於連接埠 %d" } } } }, - "Save passphrase in Keychain" : { + "Running the pre-connect script" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "키체인에 암호 저장" + "value" : "연결 전 스크립트 실행 중" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Parolayı Keychain'e kaydet" + "value" : "Bağlantı öncesi betik çalıştırılıyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lưu cụm mật khẩu vào Keychain" + "value" : "Đang chạy script trước khi kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将密码保存到钥匙串" + "value" : "正在运行连接前脚本" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將通關密語儲存至鑰匙圈" + "value" : "正在執行連線前指令碼" } } } }, - "Saved %@ of “%@” to %@" : { - "comment" : "A detail line that shows the size of the backed-up database and the path of the backup destination.", - "isCommentAutoGenerated" : true, + "Running Threads" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Saved %1$@ of “%2$@” to %3$@" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "“%2$@”의 %1$@을(를) %3$@에 저장했습니다" + "value" : "실행 중인 스레드" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "“%2$@” (%1$@) şuraya kaydedildi: %3$@" + "value" : "Çalışan İş Parçacıkları" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã lưu %1$@ của “%2$@” vào %3$@" + "value" : "Luồng đang chạy" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已将“%2$@”的 %1$@ 保存到 %3$@" + "value" : "运行中的线程" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已將「%1$@」的 %2$@ 儲存至 %3$@" + "value" : "執行中的執行緒" } } } }, - "Saved Connections" : { + "Runs the claude command line tool so chat bills against your Claude subscription. Database tools need the MCP server turned on in Settings > Integrations." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "저장된 연결" + "value" : "claude 명령줄 도구를 실행하므로 채팅 사용량은 Claude 구독에 청구됩니다. 데이터베이스 도구를 사용하려면 설정 > 통합에서 MCP 서버를 켜야 합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kayıtlı Bağlantılar" + "value" : "claude komut satırı aracını çalıştırır, böylece sohbet Claude aboneliğinizden düşer. Veritabanı araçları için Ayarlar > Entegrasyonlar altında MCP sunucusunun açık olması gerekir." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối đã lưu" + "value" : "Chạy công cụ dòng lệnh claude nên phần chat sẽ tính vào gói đăng ký Claude của bạn. Các công cụ cơ sở dữ liệu cần bật máy chủ MCP trong Cài đặt > Tích hợp." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已保存的连接" + "value" : "运行 claude 命令行工具,因此聊天会计入你的 Claude 订阅。数据库工具需要在“设置 > 集成”中开启 MCP 服务器。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已儲存的連線" + "value" : "執行 claude 命令列工具,因此聊天會計入你的 Claude 訂閱。資料庫工具需要在「設定 > 整合」中開啟 MCP 伺服器。" } } } }, - "Saved Customizations" : { - "extractionState" : "stale", + "Safe Mode" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "저장된 사용자화" + "value" : "안전 모드" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kaydedilmiş Özelleştirmeler" + "value" : "Güvenli Mod" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tùy chỉnh đã lưu" + "value" : "Chế độ an toàn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已保存的自定义" + "value" : "安全模式" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已儲存的自訂設定" + "value" : "安全模式" } } } }, - "Saved Queries" : { + "Safe Mode (Full)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "저장된 쿼리" + "value" : "안전 모드(전체)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kayıtlı Sorgular" + "value" : "Güvenli Mod (Tam)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Truy vấn đã lưu" + "value" : "Chế độ an toàn (Đầy đủ)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已保存的查询" + "value" : "安全模式(完整)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已儲存的查詢" + "value" : "安全模式(完整)" } } } }, - "Saved Queries:" : { + "Safe Mode Is Read-Only" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "저장된 쿼리:" + "value" : "안전 모드는 읽기 전용입니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kayıtlı Sorgular:" + "value" : "Safe Mode Salt Okunur" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Truy vấn đã lưu:" + "value" : "Chế độ an toàn đang ở mức chỉ đọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已保存的查询:" + "value" : "安全模式为只读" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已儲存的查詢:" + "value" : "安全模式為唯讀" } } } }, - "Saved Query" : { + "Safe mode level" : { + + }, + "Safe Mode, Safe Mode (Full), and Read-Only require a Pro license." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "저장된 쿼리" + "value" : "안전 모드, 안전 모드(전체) 및 읽기 전용 기능에는 Pro 라이선스가 필요합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kaydedilmiş Sorgu" + "value" : "Güvenli Mod, Güvenli Mod (Tam) ve Salt Okunur için Pro lisans gereklidir." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Truy vấn đã lưu" + "value" : "Chế độ an toàn, Chế độ an toàn (toàn phần) và Chỉ đọc yêu cầu giấy phép Pro." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已保存的查询" + "value" : "安全模式、安全模式(完整)和只读模式需要 Pro 许可证。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已儲存的查詢" + "value" : "安全模式、安全模式(完整)和唯讀模式需要 Pro 授權。" } } } }, - "Saved passwords are decrypted during import" : { + "Safe Mode: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "저장된 암호는 가져오는 동안 복호화됩니다" + "value" : "안전 모드: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kaydedilmiş parolaların şifresi içe aktarma sırasında çözülür" + "value" : "Güvenli Mod: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mật khẩu đã lưu sẽ được giải mã trong quá trình nhập" + "value" : "Chế độ an toàn: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导入时会解密已保存的密码" + "value" : "安全模式:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯入時會解密已儲存的密碼" + "value" : "安全模式:%@" } } } }, - "Scale" : { - "extractionState" : "stale", + "Same" : { + + }, + "same element" : { + + }, + "Same options will be applied to all selected tables." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "배율" + "value" : "선택한 모든 테이블에 동일한 옵션이 적용됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Scale" + "value" : "Aynı seçenekler seçili tüm tablolara uygulanır." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tỉ lệ" + "value" : "Cùng tùy chọn sẽ được áp dụng cho tất cả bảng đã chọn." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "小数位数" + "value" : "相同选项将应用于所有选中的表。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "小數位數" + "value" : "相同的選項將套用至所有選取的資料表。" } } } }, - "Scale:" : { + "Sanitize formula-like values" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "배율:" + "value" : "수식 형태의 값 무해화" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Scale:" + "value" : "Sanitize formula-like values" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tỉ lệ:" + "value" : "Làm sạch giá trị giống công thức" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "小数位数:" + "value" : "清理类公式值" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "小數位數:" + "value" : "清理類公式值" } } } }, - "Scatter" : { + "Save" : { "localizations" : { "ko" : { "stringUnit" : { - "value" : "분산형", - "state" : "translated" + "state" : "translated", + "value" : "저장" } }, "tr" : { "stringUnit" : { - "value" : "Dağılım", - "state" : "translated" + "state" : "translated", + "value" : "Kaydet" } }, "vi" : { "stringUnit" : { - "value" : "Phân tán", - "state" : "translated" + "state" : "translated", + "value" : "Lưu" } }, "zh-Hans" : { "stringUnit" : { - "value" : "散点", - "state" : "translated" + "state" : "translated", + "value" : "保存" } }, "zh-Hant" : { "stringUnit" : { - "value" : "散佈", - "state" : "translated" + "state" : "translated", + "value" : "儲存" } } } }, - "Schema" : { + "Save & Connect" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "스키마" + "value" : "저장 및 연결" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Şema" + "value" : "Kaydet & Bağlan" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Schema" + "value" : "Lưu & kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Schema" + "value" : "保存并连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "綱要" + "value" : "儲存並連線" } } } }, - "Schema SQL" : { + "Save and load filter presets" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "스키마 SQL" + "value" : "필터 프리셋 저장 및 불러오기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Şema SQL'i" + "value" : "Save and load filter presets" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "SQL của schema" + "value" : "Lưu và tải mẫu bộ lọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Schema SQL" + "value" : "保存和加载筛选预设" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "綱要 SQL" + "value" : "儲存並載入篩選預設集" } } } }, - "Schema Switch Failed" : { - "extractionState" : "stale", + "Save Anyway" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "스키마 전환 실패" + "value" : "그래도 저장" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Schema Switch Failed" + "value" : "Yine de Kaydet" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển schema thất bại" + "value" : "Vẫn lưu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "切换 Schema 失败" + "value" : "仍然保存" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "切換綱要失敗" + "value" : "仍要儲存" } } } }, - "Schema Switching Not Supported" : { + "Save As" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "스키마 전환이 지원되지 않음" + "value" : "다른 이름으로 저장" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Şema Değiştirme Desteklenmiyor" + "value" : "Farklı Kaydet" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không hỗ trợ chuyển schema" + "value" : "Lưu thành" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "不支持切换 Schema" + "value" : "另存为" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "不支援切換綱要" + "value" : "另存新檔" } } } }, - "Schema and table privileges in this database are only visible when the connection is using it." : { + "Save as Favorite" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 데이터베이스의 스키마 및 테이블 권한은 연결에서 해당 데이터베이스를 사용 중일 때만 볼 수 있습니다." + "value" : "즐겨찾기로 저장" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu veritabanındaki şema ve tablo yetkileri yalnızca bağlantı bu veritabanını kullanırken görünür." + "value" : "Favori Olarak Kaydet" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Quyền trên schema và bảng của cơ sở dữ liệu này chỉ hiển thị khi kết nối đang dùng nó." + "value" : "Lưu vào yêu thích" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "只有当连接正在使用此数据库时,才能看到其中的 Schema 和表权限。" + "value" : "保存为收藏" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "只有當連線正在使用此資料庫時,才看得到其中的綱要與資料表權限。" + "value" : "儲存為我的最愛" } } } }, - "Schema change was not authorized" : { + "Save as Favorite…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "스키마 변경 권한이 없습니다" + "value" : "즐겨찾기로 저장…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Şema değişikliğine izin verilmedi" + "value" : "Sık Kullanılan Olarak Kaydet…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thay đổi schema không được cho phép" + "value" : "Lưu vào mục yêu thích…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Schema 更改未获授权" + "value" : "存储为收藏…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "綱要變更未獲授權" + "value" : "儲存為我的最愛…" } } } }, - "Schema for %@" : { + "Save as Preset…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@의 스키마" + "value" : "프리셋으로 저장…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ şeması" + "value" : "Ön Ayar Olarak Kaydet…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Schema của %@" + "value" : "Lưu dưới dạng mẫu…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 的 Schema" + "value" : "另存为预设…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 的綱要" + "value" : "另存為預設集…" } } } }, - "Schema name (for multi-schema databases)" : { + "Save as Template" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "스키마 이름(다중 스키마 데이터베이스용)" + "value" : "템플릿으로 저장" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Şema adı (çok şemalı veritabanları için)" + "value" : "Save as Template" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên schema (cho cơ sở dữ liệu nhiều schema)" + "value" : "Lưu dưới dạng mẫu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Schema 名称(用于多 Schema 数据库)" + "value" : "另存为模板" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "綱要名稱(用於多綱要資料庫)" + "value" : "另存為範本" } } } }, - "Schema name (uses current if omitted)" : { + "Save As…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "스키마 이름(생략 시 현재 스키마 사용)" + "value" : "다른 이름으로 저장…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Şema adı (boş bırakılırsa geçerli şema kullanılır)" + "value" : "Farklı Kaydet…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên schema (dùng schema hiện tại nếu bỏ trống)" + "value" : "Lưu thành…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Schema 名称(省略时使用当前 Schema)" + "value" : "另存为…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "綱要名稱(省略時使用目前的綱要)" + "value" : "另存新檔…" } } } }, - "Schema name to switch to" : { + "Save Changes" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "전환할 스키마 이름" + "value" : "변경 사항 저장" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geçilecek şema adı" + "value" : "Değişiklikleri Kaydet" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên schema cần chuyển sang" + "value" : "Lưu thay đổi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "要切换到的 Schema 名称" + "value" : "保存更改" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "要切換到的綱要名稱" + "value" : "儲存變更" } } } }, - "Schema: %@" : { + "Save Changes (⌘S)" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "스키마: %@" + "value" : "변경 사항 저장(⌘S)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Şema: %@" + "value" : "Save Changes (⌘S)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Schema: %@" + "value" : "Lưu thay đổi (⌘S)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Schema:%@" + "value" : "保存更改 (⌘S)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "綱要:%@" + "value" : "儲存變更 (⌘S)" } } } }, - "Schemas" : { + "Save Current as Profile…" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Save Current as Profile…" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "스키마" + "value" : "현재 설정을 프로필로 저장…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Şemalar" + "value" : "Geçerli Ayarları Profil Olarak Kaydet…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Schema" + "value" : "Lưu hiện tại thành hồ sơ…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Schema" + "value" : "将当前设置保存为配置…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "綱要" + "value" : "將目前設定儲存為設定檔…" } } } }, - "Scope" : { + "Save Dump" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "범위" + "value" : "덤프 저장" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kapsam" + "value" : "Dökümü Kaydet" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phạm vi" + "value" : "Lưu dump" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "范围" + "value" : "保存转储" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "範圍" + "value" : "儲存備份檔" } } } }, - "Scroll to latest message" : { + "Save Failed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "최신 메시지로 스크롤" + "value" : "저장 실패" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "En son mesaja kaydır" + "value" : "Kaydetme Başarısız" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cuộn đến tin nhắn mới nhất" + "value" : "Lưu thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "滚动到最新消息" + "value" : "保存失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "捲動到最新訊息" + "value" : "儲存失敗" } } } }, - "Scrollback lines:" : { - "extractionState" : "stale", + "Save failed: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "스크롤백 줄 수:" + "value" : "저장 실패: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geri kaydırma satırları:" + "value" : "Kaydetme başarısız: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Số dòng cuộn lại:" + "value" : "Lưu thất bại: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "回滚行数:" + "value" : "保存失败:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "向後捲動行數:" + "value" : "儲存失敗:%@" } } } }, - "Search" : { + "Save Filter Preset" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "검색" + "value" : "필터 프리셋 저장" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ara" + "value" : "Filtre Ön Ayarını Kaydet" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tìm kiếm" + "value" : "Lưu mẫu bộ lọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "搜索" + "value" : "保存筛选预设" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "搜尋" + "value" : "儲存篩選預設集" } } } }, - "Search %@" : { + "Save frequently used queries\nfor quick access." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 검색" + "value" : "자주 사용하는 쿼리를 저장하여\n빠르게 이용하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ ara" + "value" : "Save frequently used queries\nfor quick access." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tìm %@" + "value" : "Lưu các truy vấn thường dùng\nđể truy cập nhanh." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "搜索 %@" + "value" : "保存常用查询\n以便快速访问。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "搜尋 %@" - } - } - } - }, - "Search All Rows" : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "모든 행 검색" + "value" : "儲存常用查詢\n以便快速存取。" } } } }, - "Search Query History" : { + "Save frequently used queries for quick access." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 기록 검색" + "value" : "자주 사용하는 쿼리를 저장하여 빠르게 이용하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgu Geçmişinde Ara" + "value" : "Sık kullanılan sorguları hızlı erişim için kaydedin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tìm trong lịch sử truy vấn" + "value" : "Lưu các truy vấn thường dùng để truy cập nhanh." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "搜索查询历史记录" + "value" : "保存常用查询以便快速访问。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "搜尋查詢歷程記錄" + "value" : "儲存常用查詢以便快速存取。" } } } }, - "Search activity" : { + "Save frequently used queries, or link a folder of .sql files to share with your team." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "활동 검색" + "value" : "자주 사용하는 쿼리를 저장하거나 .sql 파일 폴더를 연결하여 팀과 공유하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Etkinlik ara" + "value" : "Sık kullanılan sorguları kaydedin veya ekibinizle paylaşmak için bir .sql dosyaları klasörü bağlayın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tìm hoạt động" + "value" : "Lưu các truy vấn thường dùng, hoặc liên kết một thư mục chứa file .sql để chia sẻ với nhóm của bạn." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "搜索活动" + "value" : "保存常用查询,或链接包含 .sql 文件的文件夹以与团队共享。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "搜尋活動" + "value" : "儲存常用查詢,或連結包含 .sql 檔案的資料夾以與你的團隊共用。" } } } }, - "Search and analytics engine" : { + "Save passphrase in Keychain" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "검색 및 분석 엔진" + "value" : "키체인에 암호 저장" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Arama ve analiz motoru" + "value" : "Parolayı Keychain'e kaydet" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Công cụ tìm kiếm và phân tích" + "value" : "Lưu cụm mật khẩu vào Keychain" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "搜索与分析引擎" + "value" : "将密码保存到钥匙串" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "搜尋與分析引擎" + "value" : "將通關密語儲存至鑰匙圈" } } } }, - "Search columns…" : { + "Save Sidebar Changes" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열 검색…" + "value" : "사이드바 변경 사항 저장" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sütunlarda ara…" + "value" : "Kenar Çubuğu Değişikliklerini Kaydet" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tìm cột…" + "value" : "Lưu thay đổi thanh bên" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "搜索列…" + "value" : "保存侧边栏更改" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "搜尋欄位…" + "value" : "儲存側邊欄變更" } } } }, - "Search connections" : { + "Save SQL file" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 검색" + "value" : "SQL 파일 저장" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı ara" + "value" : "SQL dosyasını kaydet" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tìm kết nối" + "value" : "Lưu tệp SQL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "搜索连接" + "value" : "保存 SQL 文件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "搜尋連線" + "value" : "儲存 SQL 檔案" } } } }, - "Search databases" : { + "Save Table Template" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 검색" + "value" : "테이블 템플릿 저장" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanlarında ara" + "value" : "Save Table Template" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tìm kiếm cơ sở dữ liệu" + "value" : "Lưu mẫu bảng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "搜索数据库" + "value" : "保存表模板" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "搜尋資料庫" + "value" : "儲存資料表範本" } } } }, - "Search databases..." : { - "extractionState" : "stale", + "Save…" : { + + }, + "Saved %@ of “%@” to %@" : { + "comment" : "A detail line that shows the size of the backed-up database and the path of the backup destination.", + "isCommentAutoGenerated" : true, "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Saved %1$@ of “%2$@” to %3$@" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 검색..." + "value" : "“%2$@”의 %1$@을(를) %3$@에 저장했습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Search databases..." + "value" : "“%2$@” (%1$@) şuraya kaydedildi: %3$@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tìm cơ sở dữ liệu..." + "value" : "Đã lưu %1$@ của “%2$@” vào %3$@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "搜索数据库..." + "value" : "已将“%2$@”的 %1$@ 保存到 %3$@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "搜尋資料庫…" + "value" : "已將「%1$@」的 %2$@ 儲存至 %3$@" } } } }, - "Search fields…" : { + "Saved Comparisons" : { + + }, + "Saved Connections" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필드 검색…" + "value" : "저장된 연결" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Alanlarda ara…" + "value" : "Kayıtlı Bağlantılar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tìm trường…" + "value" : "Kết nối đã lưu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "搜索字段…" + "value" : "已保存的连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "搜尋欄位…" + "value" : "已儲存的連線" } } } }, - "Search for connection…" : { + "SAVED CONNECTIONS" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 검색…" + "value" : "저장된 연결" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı ara…" + "value" : "KAYITLI BAĞLANTILAR" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tìm kết nối…" + "value" : "KẾT NỐI ĐÃ LƯU" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "搜索连接…" + "value" : "已保存的连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "搜尋連線…" + "value" : "已儲存的連線" } } } }, - "Search for field..." : { + "Saved Customizations" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필드 검색..." + "value" : "저장된 사용자화" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Search for field..." + "value" : "Kaydedilmiş Özelleştirmeler" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tìm trường..." + "value" : "Tùy chỉnh đã lưu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "搜索字段..." + "value" : "已保存的自定义" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "搜尋欄位…" + "value" : "已儲存的自訂設定" } } } }, - "Search or type…" : { + "Saved passwords are decrypted during import" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "검색 또는 입력…" + "value" : "저장된 암호는 가져오는 동안 복호화됩니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Arayın veya yazın…" + "value" : "Kaydedilmiş parolaların şifresi içe aktarma sırasında çözülür" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tìm kiếm hoặc nhập…" + "value" : "Mật khẩu đã lưu sẽ được giải mã trong quá trình nhập" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "搜索或输入…" + "value" : "导入时会解密已保存的密码" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "搜尋或輸入…" + "value" : "匯入時會解密已儲存的密碼" } } } }, - "Search plugins..." : { - "extractionState" : "stale", + "Saved Queries" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플러그인 검색..." + "value" : "저장된 쿼리" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Search plugins..." + "value" : "Kayıtlı Sorgular" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tìm kiếm plugin..." + "value" : "Truy vấn đã lưu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "搜索插件..." + "value" : "已保存的查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "搜尋外掛…" + "value" : "已儲存的查詢" } } } }, - "Search queries..." : { - "extractionState" : "stale", + "Saved Queries:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 검색..." + "value" : "저장된 쿼리:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Search queries..." + "value" : "Kayıtlı Sorgular:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tìm truy vấn..." + "value" : "Truy vấn đã lưu:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "搜索查询..." + "value" : "已保存的查询:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "搜尋查詢…" + "value" : "已儲存的查詢:" } } } }, - "Search saved query history. Returns matching entries with execution time, row count, and outcome." : { + "Saved Query" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "저장된 쿼리 기록을 검색합니다. 실행 시간, 행 수 및 결과가 포함된 일치 항목을 반환합니다." + "value" : "저장된 쿼리" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kaydedilmiş sorgu geçmişinde arama yapar. Eşleşen kayıtları yürütme süresi, satır sayısı ve sonuçla birlikte döndürür." + "value" : "Kaydedilmiş Sorgu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tìm trong lịch sử truy vấn đã lưu. Trả về các mục khớp kèm thời gian thực thi, số hàng và kết quả." + "value" : "Truy vấn đã lưu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "搜索已保存的查询历史记录。返回匹配条目及其执行时间、行数和结果。" + "value" : "已保存的查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "搜尋已儲存的查詢歷程記錄。傳回相符的項目,包含執行時間、列數和結果。" + "value" : "已儲存的查詢" } } } }, - "Search schemas..." : { + "Scale" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "스키마 검색..." + "value" : "배율" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Search schemas..." + "value" : "Scale" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tìm schema..." + "value" : "Tỉ lệ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "搜索 Schema..." + "value" : "小数位数" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "搜尋綱要…" + "value" : "小數位數" } } } }, - "Search shortcuts…" : { + "Scale:" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "단축키 검색…" + "value" : "배율:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kısayollarda ara…" + "value" : "Scale:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tìm phím tắt…" + "value" : "Tỉ lệ:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "搜索快捷键…" + "value" : "小数位数:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "搜尋快速鍵…" + "value" : "小數位數:" } } } }, - "Search tables, views, databases, queries…" : { + "Scatter" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블, 뷰, 데이터베이스, 쿼리 검색…" + "value" : "분산형" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tabloları, görünümleri, veritabanlarını, sorguları ara…" + "value" : "Dağılım" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tìm bảng, view, cơ sở dữ liệu, truy vấn…" + "value" : "Phân tán" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "搜索表、视图、数据库、查询…" + "value" : "散点" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "搜尋資料表、檢視、資料庫、查詢…" + "value" : "散佈" } } } }, - "Search tables, views, databases..." : { - "extractionState" : "stale", + "Schema" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블, 뷰, 데이터베이스 검색..." + "value" : "스키마" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Search tables, views, databases..." + "value" : "Şema" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tìm bảng, view, cơ sở dữ liệu..." + "value" : "Schema" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "搜索表、视图、数据库..." + "value" : "Schema" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "搜尋資料表、檢視表、資料庫…" + "value" : "綱要" } } } }, - "Search text (full-text matched against the query column)" : { + "schema %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "검색 텍스트(쿼리 열에서 전문 검색으로 일치 항목 찾기)" + "value" : "스키마 %@" } }, "tr" : { "stringUnit" : { - "state" : "translated", - "value" : "Arama metni (sorgu sütununda tam metin eşleşmesi yapılır)" + "state" : "needs_review", + "value" : "şema %@" } }, "vi" : { "stringUnit" : { - "state" : "translated", - "value" : "Văn bản tìm kiếm (so khớp toàn văn với cột query)" + "state" : "needs_review", + "value" : "schema %@" } }, "zh-Hans" : { "stringUnit" : { - "state" : "translated", - "value" : "搜索文本(对 query 列进行全文匹配)" + "state" : "needs_review", + "value" : "架构 %@" } }, "zh-Hant" : { "stringUnit" : { - "state" : "translated", - "value" : "搜尋文字(對 query 欄位進行全文比對)" + "state" : "needs_review", + "value" : "綱要 %@" } } } }, - "Search values" : { + "Schema and table privileges in this database are only visible when the connection is using it." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "값 검색" + "value" : "이 데이터베이스의 스키마 및 테이블 권한은 연결에서 해당 데이터베이스를 사용 중일 때만 볼 수 있습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Değerlerde ara" + "value" : "Bu veritabanındaki şema ve tablo yetkileri yalnızca bağlantı bu veritabanını kullanırken görünür." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tìm giá trị" + "value" : "Quyền trên schema và bảng của cơ sở dữ liệu này chỉ hiển thị khi kết nối đang dùng nó." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "搜索值" + "value" : "只有当连接正在使用此数据库时,才能看到其中的 Schema 和表权限。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "搜尋值" + "value" : "只有當連線正在使用此資料庫時,才看得到其中的綱要與資料表權限。" } } } }, - "Search…" : { + "Schema change was not authorized" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "검색…" + "value" : "스키마 변경 권한이 없습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ara…" + "value" : "Şema değişikliğine izin verilmedi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tìm kiếm…" + "value" : "Thay đổi schema không được cho phép" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "搜索…" + "value" : "Schema 更改未获授权" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "搜尋…" + "value" : "綱要變更未獲授權" } } } }, - "Second filter value" : { + "Schema for %@" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "두 번째 필터 값" + "value" : "%@의 스키마" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İkinci filtre değeri" + "value" : "%@ şeması" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giá trị lọc thứ hai" + "value" : "Schema của %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "第二个筛选值" + "value" : "%@ 的 Schema" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "第二個篩選值" + "value" : "%@ 的綱要" } } } }, - "Second value is required for BETWEEN" : { + "Schema it lives in" : { + + }, + "Schema it ran against" : { + + }, + "Schema List" : { + + }, + "Schema name (for multi-schema databases)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "BETWEEN에는 두 번째 값이 필요합니다" + "value" : "스키마 이름(다중 스키마 데이터베이스용)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "BETWEEN için ikinci değer gereklidir" + "value" : "Şema adı (çok şemalı veritabanları için)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giá trị thứ hai là bắt buộc cho BETWEEN" + "value" : "Tên schema (cho cơ sở dữ liệu nhiều schema)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "BETWEEN 需要第二个值" + "value" : "Schema 名称(用于多 Schema 数据库)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "BETWEEN 需要第二個值" + "value" : "綱要名稱(用於多綱要資料庫)" } } } }, - "Secondary" : { + "Schema name (uses current if omitted)" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "보조 노드" + "value" : "스키마 이름(생략 시 현재 스키마 사용)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Secondary" + "value" : "Şema adı (boş bırakılırsa geçerli şema kullanılır)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Secondary" + "value" : "Tên schema (dùng schema hiện tại nếu bỏ trống)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Secondary" + "value" : "Schema 名称(省略时使用当前 Schema)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Secondary" + "value" : "綱要名稱(省略時使用目前的綱要)" } } } }, - "Secondary Preferred" : { - "extractionState" : "stale", + "Schema name to switch to" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "보조 노드 우선" + "value" : "전환할 스키마 이름" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Secondary Preferred" + "value" : "Geçilecek şema adı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Secondary Preferred" + "value" : "Tên schema cần chuyển sang" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Secondary Preferred" + "value" : "要切换到的 Schema 名称" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Secondary Preferred" + "value" : "要切換到的綱要名稱" } } } }, - "Secondary Text" : { + "Schema name. Uses the connection's current schema when omitted." : { + + }, + "Schema names inside a database, on engines that have schemas." : { + + }, + "Schema names, sorted" : { + + }, + "Schema now selected" : { + + }, + "Schema of %@" : { + + }, + "Schema SQL" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "보조 텍스트" + "value" : "스키마 SQL" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İkincil Metin" + "value" : "Şema SQL'i" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Văn bản phụ" + "value" : "SQL của schema" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "次要文本" + "value" : "Schema SQL" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "次要文字" + "value" : "綱要 SQL" } } } }, - "Secret Access Key" : { + "Schema Switch Failed" : { + "extractionState" : "stale", "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Secret Access Key" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "보안 액세스 키" + "value" : "스키마 전환 실패" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Secret Access Key" + "value" : "Schema Switch Failed" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Secret Access Key" + "value" : "Chuyển schema thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Secret Access Key" + "value" : "切换 Schema 失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Secret Access Key" + "value" : "切換綱要失敗" } } } }, - "Section Header" : { + "Schema Switching Not Supported" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "섹션 헤더" + "value" : "스키마 전환이 지원되지 않음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bölüm Başlığı" + "value" : "Şema Değiştirme Desteklenmiyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tiêu đề mục" + "value" : "Không hỗ trợ chuyển schema" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "分区标题" + "value" : "不支持切换 Schema" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "區段標題" + "value" : "不支援切換綱要" } } } }, - "Secure Connections" : { + "Schema that was dropped" : { + + }, + "Schema the listing covers" : { + + }, + "Schema the object belongs to" : { + + }, + "Schema the routine lives in" : { + + }, + "Schema the session is on" : { + + }, + "Schema the session opened on" : { + + }, + "Schema the statement ran against" : { + + }, + "Schema the tab is on" : { + + }, + "Schema the table lives in" : { + + }, + "Schema the trigger belongs to" : { + + }, + "Schema the view lives in" : { + + }, + "Schema to read. Uses the connection's current schema when omitted" : { + + }, + "Schema tour of %@ on %@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Schema tour of %1$@ on %2$@" + } + } + } + }, + "Schema-qualified name" : { + + }, + "Schema, for a table match" : { + + }, + "Schema: %@" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "보안 연결" + "value" : "스키마: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Güvenli Bağlantılar" + "value" : "Şema: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối bảo mật" + "value" : "Schema: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "安全连接" + "value" : "Schema:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "安全連線" + "value" : "綱要:%@" } } } }, - "See which queries you run most, which run slowest, and which got slower." : { + "Schemas" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "가장 자주 실행한 쿼리, 가장 느린 쿼리, 성능이 저하된 쿼리를 확인하십시오." + "value" : "스키마" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Hangi sorguları en çok çalıştırdığınızı, hangilerinin en yavaş olduğunu ve hangilerinin yavaşladığını görün." + "value" : "Şemalar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xem truy vấn nào bạn chạy nhiều nhất, chạy chậm nhất và chậm đi." + "value" : "Schema" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "查看哪些查询你运行得最多、哪些最慢、哪些变慢了。" + "value" : "Schema" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "查看哪些查詢你執行得最多、哪些最慢、哪些變慢了。" + "value" : "綱要" } } } }, - "Select %@" : { + "Scope" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 선택" + "value" : "범위" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ seç" + "value" : "Kapsam" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn %@" + "value" : "Phạm vi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选择%@" + "value" : "范围" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選擇%@" + "value" : "範圍" } } } }, - "Select %@ file to import" : { + "Script" : { + + }, + "Script generation cancelled." : { + + }, + "Scroll to latest message" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "가져올 %@ 파일 선택" + "value" : "최신 메시지로 스크롤" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İçe aktarılacak %@ dosyasını seçin" + "value" : "En son mesaja kaydır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn file %@ để nhập" + "value" : "Cuộn đến tin nhắn mới nhất" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选择要导入的 %@ 文件" + "value" : "滚动到最新消息" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選擇要匯入的 %@ 檔案" + "value" : "捲動到最新訊息" } } } }, - "Select All" : { + "Scrollback lines:" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "전체 선택" + "value" : "스크롤백 줄 수:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tümünü Seç" + "value" : "Geri kaydırma satırları:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn tất cả" + "value" : "Số dòng cuộn lại:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "全选" + "value" : "回滚行数:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "全選" + "value" : "向後捲動行數:" } } } }, - "Select Connections" : { + "Search" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 선택" + "value" : "검색" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantıları Seç" + "value" : "Ara" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn kết nối" + "value" : "Tìm kiếm" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选择连接" + "value" : "搜索" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選擇連線" + "value" : "搜尋" } } } }, - "Select Model" : { + "Search %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모델 선택" + "value" : "%@ 검색" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Model Seç" + "value" : "%@ ara" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn mô hình" + "value" : "Tìm %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选择模型" + "value" : "搜索 %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選擇模型" + "value" : "搜尋 %@" } } } }, - "Select Plugin" : { + "Search activity" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플러그인 선택" + "value" : "활동 검색" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklenti Seç" + "value" : "Etkinlik ara" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn Plugin" + "value" : "Tìm hoạt động" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选择插件" + "value" : "搜索活动" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選擇外掛" + "value" : "搜尋活動" } } } }, - "Select SQL File..." : { - "extractionState" : "stale", + "Search All Rows" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SQL 파일 선택..." + "value" : "모든 행 검색" + } + } + } + }, + "Search and analytics engine" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "검색 및 분석 엔진" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Select SQL File..." + "value" : "Arama ve analiz motoru" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn tệp SQL..." + "value" : "Công cụ tìm kiếm và phân tích" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选择 SQL 文件..." + "value" : "搜索与分析引擎" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選擇 SQL 檔案…" + "value" : "搜尋與分析引擎" } } } }, - "Select SQL files to open" : { + "Search columns…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열 SQL 파일 선택" + "value" : "열 검색…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Açılacak SQL dosyalarını seç" + "value" : "Sütunlarda ara…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn tệp SQL để mở" + "value" : "Tìm cột…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选择要打开的 SQL 文件" + "value" : "搜索列…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選擇要開啟的 SQL 檔案" + "value" : "搜尋欄位…" } } } }, - "Select Tab %d" : { + "Search connections" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "탭 %d 선택" + "value" : "연결 검색" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%d. Sekmeyi Seç" + "value" : "Bağlantı ara" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn tab %d" + "value" : "Tìm kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选择标签页 %d" + "value" : "搜索连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選擇分頁 %d" + "value" : "搜尋連線" } } } }, - "Select Tab %lld" : { - "extractionState" : "stale", + "Search databases" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "탭 %lld 선택" + "value" : "데이터베이스 검색" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Select Tab %lld" + "value" : "Veritabanlarında ara" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn tab %lld" + "value" : "Tìm kiếm cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选择标签页 %lld" + "value" : "搜索数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選擇分頁 %lld" + "value" : "搜尋資料庫" } } } }, - "Select a Plugin" : { + "Search databases..." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플러그인 선택" + "value" : "데이터베이스 검색..." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bir Eklenti Seçin" + "value" : "Search databases..." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn một Plugin" + "value" : "Tìm cơ sở dữ liệu..." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选择一个插件" + "value" : "搜索数据库..." } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選擇外掛" + "value" : "搜尋資料庫…" } } } }, - "Select a Query" : { - "extractionState" : "stale", + "Search fields…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 선택" + "value" : "필드 검색…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Select a Query" + "value" : "Alanlarda ara…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn một truy vấn" + "value" : "Tìm trường…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选择一个查询" + "value" : "搜索字段…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選擇查詢" + "value" : "搜尋欄位…" } } } }, - "Select a dump file produced by pg_dump in custom archive format." : { + "Search for connection…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "pg_dump로 생성한 사용자 지정 아카이브 형식의 덤프 파일을 선택하십시오." + "value" : "연결 검색…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "pg_dump tarafından özel arşiv biçiminde oluşturulmuş bir döküm dosyası seçin." + "value" : "Bağlantı ara…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn file dump do pg_dump tạo ở định dạng custom archive." + "value" : "Tìm kết nối…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选择由 pg_dump 以自定义归档格式生成的转储文件。" + "value" : "搜索连接…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "請選擇由 pg_dump 產生的自訂封存格式備份檔。" + "value" : "搜尋連線…" } } } }, - "Select a plugin to view details" : { + "Search for field..." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "세부사항을 볼 플러그인을 선택하십시오" + "value" : "필드 검색..." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ayrıntıları görmek için bir eklenti seçin" + "value" : "Search for field..." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn plugin để xem chi tiết" + "value" : "Tìm trường..." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选择插件查看详情" + "value" : "搜索字段..." } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選擇外掛以檢視詳細資訊" + "value" : "搜尋欄位…" } } } }, - "Select a query to see its full text and details." : { + "Search or type a field path…" : { + + }, + "Search or type…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "전체 텍스트와 세부사항을 볼 쿼리를 선택하십시오." + "value" : "검색 또는 입력…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tam metnini ve ayrıntılarını görmek için bir sorgu seçin." + "value" : "Arayın veya yazın…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn một truy vấn để xem toàn văn và chi tiết." + "value" : "Tìm kiếm hoặc nhập…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选择一个查询以查看其完整文本和详情。" + "value" : "搜索或输入…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選擇一個查詢以查看其完整文字和詳細資訊。" + "value" : "搜尋或輸入…" } } } }, - "Select a row or table to view details" : { + "Search plugins..." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "세부사항을 볼 행 또는 테이블을 선택하십시오" + "value" : "플러그인 검색..." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ayrıntıları görmek için bir satır veya tablo seçin" + "value" : "Search plugins..." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn một hàng hoặc bảng để xem chi tiết" + "value" : "Tìm kiếm plugin..." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选择一行或一个表以查看详情" + "value" : "搜索插件..." } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選擇一列或資料表以檢視詳細資訊" + "value" : "搜尋外掛…" } } } }, - "Select a step in the plan to see what it does." : { - "comment" : "A description of the view's body.", - "isCommentAutoGenerated" : true, + "Search queries..." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "작업을 확인할 실행 계획 단계를 선택하십시오." + "value" : "쿼리 검색..." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ne yaptığını görmek için plandaki bir adımı seçin." + "value" : "Search queries..." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn một bước trong kế hoạch để xem nó làm gì." + "value" : "Tìm truy vấn..." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选择执行计划中的一个步骤,查看它做了什么。" + "value" : "搜索查询..." } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選擇執行計畫中的一個步驟,查看它做了什麼。" + "value" : "搜尋查詢…" } } } }, - "Select a table to copy its structure:" : { - "extractionState" : "stale", + "Search Query History" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "구조를 복사할 테이블 선택:" + "value" : "쿼리 기록 검색" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Select a table to copy its structure:" + "value" : "Sorgu Geçmişinde Ara" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn bảng để sao chép cấu trúc:" + "value" : "Tìm trong lịch sử truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选择要复制结构的表:" + "value" : "搜索查询历史记录" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選擇要複製結構的資料表:" + "value" : "搜尋查詢歷程記錄" } } } }, - "Select a table…" : { + "Search saved query history. Returns matching entries with execution time, row count, and outcome." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 선택…" + "value" : "저장된 쿼리 기록을 검색합니다. 실행 시간, 행 수 및 결과가 포함된 일치 항목을 반환합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bir tablo seçin…" + "value" : "Kaydedilmiş sorgu geçmişinde arama yapar. Eşleşen kayıtları yürütme süresi, satır sayısı ve sonuçla birlikte döndürür." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn một bảng…" + "value" : "Tìm trong lịch sử truy vấn đã lưu. Trả về các mục khớp kèm thời gian thực thi, số hàng và kết quả." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选择表…" + "value" : "搜索已保存的查询历史记录。返回匹配条目及其执行时间、行数和结果。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選擇資料表…" + "value" : "搜尋已儲存的查詢歷程記錄。傳回相符的項目,包含執行時間、列數和結果。" } } } }, - "Select a user or role to view its privileges." : { + "Search Schema" : { + + }, + "Search schemas..." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "권한을 볼 사용자 또는 역할을 선택하십시오." + "value" : "스키마 검색..." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yetkilerini görmek için bir kullanıcı veya rol seçin." + "value" : "Search schemas..." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn một người dùng hoặc vai trò để xem quyền của họ." + "value" : "Tìm schema..." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选择一个用户或角色以查看其权限。" + "value" : "搜索 Schema..." } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選擇一個使用者或角色以檢視其權限。" + "value" : "搜尋綱要…" } } } }, - "Select an activity entry to see its details." : { + "Search shortcuts…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "세부사항을 볼 활동 항목을 선택하십시오." + "value" : "단축키 검색…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ayrıntılarını görmek için bir etkinlik kaydı seçin." + "value" : "Kısayollarda ara…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn một mục hoạt động để xem chi tiết." + "value" : "Tìm phím tắt…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选择一个活动条目以查看详细信息。" + "value" : "搜索快捷键…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選擇一個活動項目以查看詳細資訊。" + "value" : "搜尋快速鍵…" } } } }, - "Select an object on the left to edit its privileges." : { + "Search tables, views, databases, queries…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "권한을 편집할 왼쪽의 객체를 선택하십시오." + "value" : "테이블, 뷰, 데이터베이스, 쿼리 검색…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yetkilerini düzenlemek için soldan bir nesne seçin." + "value" : "Tabloları, görünümleri, veritabanlarını, sorguları ara…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn một đối tượng ở bên trái để sửa quyền của nó." + "value" : "Tìm bảng, view, cơ sở dữ liệu, truy vấn…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在左侧选择一个对象以编辑其权限。" + "value" : "搜索表、视图、数据库、查询…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在左側選擇一個物件以編輯其權限。" + "value" : "搜尋資料表、檢視、資料庫、查詢…" } } } }, - "Select filter column" : { + "Search tables, views, databases..." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터 열 선택" + "value" : "테이블, 뷰, 데이터베이스 검색..." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtre sütunu seç" + "value" : "Search tables, views, databases..." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn cột lọc" + "value" : "Tìm bảng, view, cơ sở dữ liệu..." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选择筛选列" + "value" : "搜索表、视图、数据库..." } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選擇篩選欄位" + "value" : "搜尋資料表、檢視表、資料庫…" } } } }, - "Select filter for %@" : { + "Search text (full-text matched against the query column)" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@의 필터 선택" + "value" : "검색 텍스트(쿼리 열에서 전문 검색으로 일치 항목 찾기)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Select filter for %@" + "value" : "Arama metni (sorgu sütununda tam metin eşleşmesi yapılır)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn bộ lọc cho %@" + "value" : "Văn bản tìm kiếm (so khớp toàn văn với cột query)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "为 %@ 选择筛选条件" + "value" : "搜索文本(对 query 列进行全文匹配)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "為 %@ 選擇篩選條件" + "value" : "搜尋文字(對 query 欄位進行全文比對)" } } } }, - "Select filter operator" : { + "Search the query history TablePro keeps on this Mac. Results cover only connections this client may reach, whether or not connection_id is given." : { + + }, + "Search values" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터 연산자 선택" + "value" : "값 검색" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtre operatörü seç" + "value" : "Değerlerde ara" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn toán tử lọc" + "value" : "Tìm giá trị" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选择筛选运算符" + "value" : "搜索值" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選擇篩選運算子" + "value" : "搜尋值" } } } }, - "Select images to attach" : { - "extractionState" : "stale", + "Search…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "첨부할 이미지 선택" + "value" : "검색…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklenecek resimleri seçin" + "value" : "Ara…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn ảnh để đính kèm" + "value" : "Tìm kiếm…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选择要附加的图片" + "value" : "搜索…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選擇要附加的圖片" + "value" : "搜尋…" } } } }, - "Select objects of the same kind to edit their privileges." : { + "Second filter value" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "권한을 편집할 같은 종류의 객체를 선택하십시오." + "value" : "두 번째 필터 값" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yetkilerini düzenlemek için aynı türden nesneler seçin." + "value" : "İkinci filtre değeri" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn các đối tượng cùng loại để sửa quyền của chúng." + "value" : "Giá trị lọc thứ hai" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选择同一类型的对象才能编辑它们的权限。" + "value" : "第二个筛选值" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選擇同一類型的物件才能編輯它們的權限。" + "value" : "第二個篩選值" } } } }, - "Select schema" : { - "extractionState" : "stale", + "Second value is required for BETWEEN" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "스키마 선택" + "value" : "BETWEEN에는 두 번째 값이 필요합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Şema seçin" + "value" : "BETWEEN için ikinci değer gereklidir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn schema" + "value" : "Giá trị thứ hai là bắt buộc cho BETWEEN" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选择 Schema" + "value" : "BETWEEN 需要第二个值" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選擇綱要" + "value" : "BETWEEN 需要第二個值" } } } }, - "Selected Item" : { + "Secondary" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "선택된 항목" + "value" : "보조 노드" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Seçili Öğe" + "value" : "Secondary" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mục đã chọn" + "value" : "Secondary" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选中项" + "value" : "Secondary" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選取的項目" + "value" : "Secondary" } } } }, - "Selected SSH profile no longer exists." : { + "Secondary Preferred" : { + "extractionState" : "stale", "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Selected SSH profile no longer exists." - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "선택한 SSH 프로필이 더 이상 존재하지 않습니다." + "value" : "보조 노드 우선" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Seçilen SSH profili artık mevcut değil." + "value" : "Secondary Preferred" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hồ sơ SSH đã chọn không còn tồn tại." + "value" : "Secondary Preferred" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "所选 SSH 配置已不存在。" + "value" : "Secondary Preferred" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選取的 SSH 設定檔已不存在。" + "value" : "Secondary Preferred" } } } }, - "Selection" : { + "Secondary Text" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "선택 영역" + "value" : "보조 텍스트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Selection" + "value" : "İkincil Metin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Vùng chọn" + "value" : "Văn bản phụ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选区" + "value" : "次要文本" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選取範圍" + "value" : "次要文字" } } } }, - "Semicolon ;" : { + "seconds" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "세미콜론 ;" + "value" : "초" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Noktalı Virgül ;" + "value" : "saniye" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dấu chấm phẩy ;" + "value" : "giây" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "分号 ;" + "value" : "秒" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "分號 ;" + "value" : "秒" } } } }, - "Send Message" : { + "Secret Access Key" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Secret Access Key" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "메시지 보내기" + "value" : "보안 액세스 키" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Mesaj Gönder" + "value" : "Secret Access Key" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gửi tin nhắn" + "value" : "Secret Access Key" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "发送消息" + "value" : "Secret Access Key" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "傳送訊息" + "value" : "Secret Access Key" } } } }, - "Send telemetry to GitHub" : { + "Section Header" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "GitHub에 텔레메트리 보내기" + "value" : "섹션 헤더" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Telemetriyi GitHub'a gönder" + "value" : "Bölüm Başlığı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gửi telemetry tới GitHub" + "value" : "Tiêu đề mục" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "向 GitHub 发送遥测数据" + "value" : "分区标题" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "向 GitHub 傳送遙測資料" + "value" : "區段標題" } } } }, - "Sentinel" : { + "Secure Connections" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "센티널" + "value" : "보안 연결" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sentinel" + "value" : "Güvenli Bağlantılar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sentinel" + "value" : "Kết nối bảo mật" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "哨兵" + "value" : "安全连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "哨兵" + "value" : "安全連線" } } } }, - "Sentinel Nodes" : { + "See which queries you run most, which run slowest, and which got slower." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "센티널 노드" + "value" : "가장 자주 실행한 쿼리, 가장 느린 쿼리, 성능이 저하된 쿼리를 확인하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sentinel Düğümleri" + "value" : "Hangi sorguları en çok çalıştırdığınızı, hangilerinin en yavaş olduğunu ve hangilerinin yavaşladığını görün." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nút Sentinel" + "value" : "Xem truy vấn nào bạn chạy nhiều nhất, chạy chậm nhất và chậm đi." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "哨兵节点" + "value" : "查看哪些查询你运行得最多、哪些最慢、哪些变慢了。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "哨兵節點" + "value" : "查看哪些查詢你執行得最多、哪些最慢、哪些變慢了。" } } } }, - "Sentinel Password" : { + "Select" : { + + }, + "SELECT * FROM users WHERE id = 1;" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "센티널 암호" + "value" : "SELECT * FROM users WHERE id = 1;" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sentinel Parolası" + "value" : "SELECT * FROM users WHERE id = 1;" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mật khẩu Sentinel" + "value" : "SELECT * FROM users WHERE id = 1;" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "哨兵密码" + "value" : "SELECT * FROM users WHERE id = 1;" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "哨兵密碼" + "value" : "SELECT * FROM users WHERE id = 1;" } } } }, - "Sentinel Username" : { + "SELECT * FROM users WHERE id = 42;" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "센티널 사용자 이름" + "value" : "SELECT * FROM users WHERE id = 42;" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sentinel Kullanıcı Adı" + "value" : "SELECT * FROM users WHERE id = 42;" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên người dùng Sentinel" + "value" : "SELECT * FROM users WHERE id = 42;" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "哨兵用户名" + "value" : "SELECT * FROM users WHERE id = 42;" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "哨兵使用者名稱" + "value" : "SELECT * FROM users WHERE id = 42;" } } } }, - "Separator (optional)" : { + "Select %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "구분 기호(선택 사항)" + "value" : "%@ 선택" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ayırıcı (isteğe bağlı)" + "value" : "%@ seç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dấu phân cách (tùy chọn)" + "value" : "Chọn %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "分隔符(可选)" + "value" : "选择%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "分隔符號(選填)" + "value" : "選擇%@" } } } }, - "Separator or pattern" : { + "Select %@ file to import" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "구분 기호 또는 패턴" + "value" : "가져올 %@ 파일 선택" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ayırıcı veya desen" + "value" : "İçe aktarılacak %@ dosyasını seçin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dấu phân cách hoặc mẫu" + "value" : "Chọn file %@ để nhập" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "分隔符或模式" + "value" : "选择要导入的 %@ 文件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "分隔符號或模式" + "value" : "選擇要匯入的 %@ 檔案" } } } }, - "Series" : { + "Select a dump file produced by pg_dump in custom archive format." : { "localizations" : { "ko" : { "stringUnit" : { - "value" : "계열", - "state" : "translated" + "state" : "translated", + "value" : "pg_dump로 생성한 사용자 지정 아카이브 형식의 덤프 파일을 선택하십시오." } }, "tr" : { "stringUnit" : { - "value" : "Seri", - "state" : "translated" + "state" : "translated", + "value" : "pg_dump tarafından özel arşiv biçiminde oluşturulmuş bir döküm dosyası seçin." } }, "vi" : { "stringUnit" : { - "value" : "Chuỗi", - "state" : "translated" + "state" : "translated", + "value" : "Chọn file dump do pg_dump tạo ở định dạng custom archive." } }, "zh-Hans" : { "stringUnit" : { - "value" : "系列", - "state" : "translated" + "state" : "translated", + "value" : "选择由 pg_dump 以自定义归档格式生成的转储文件。" } }, "zh-Hant" : { "stringUnit" : { - "value" : "數列", - "state" : "translated" + "state" : "translated", + "value" : "請選擇由 pg_dump 產生的自訂封存格式備份檔。" } } } }, - "Server" : { + "Select a Library" : { + + }, + "Select a Plugin" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "서버" + "value" : "플러그인 선택" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Server" + "value" : "Bir Eklenti Seçin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Máy chủ" + "value" : "Chọn một Plugin" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "服务器" + "value" : "选择一个插件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "伺服器" + "value" : "選擇外掛" } } } }, - "Server Configuration" : { + "Select a plugin to view details" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "서버 구성" + "value" : "세부사항을 볼 플러그인을 선택하십시오" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sunucu Yapılandırması" + "value" : "Ayrıntıları görmek için bir eklenti seçin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cấu hình server" + "value" : "Chọn plugin để xem chi tiết" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "服务器配置" + "value" : "选择插件查看详情" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "伺服器設定" + "value" : "選擇外掛以檢視詳細資訊" } } } }, - "Server Dashboard" : { + "Select a Query" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "서버 대시보드" + "value" : "쿼리 선택" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sunucu Panosu" + "value" : "Select a Query" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bảng điều khiển máy chủ" + "value" : "Chọn một truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "服务器仪表盘" + "value" : "选择一个查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "伺服器儀表板" + "value" : "選擇查詢" } } } }, - "Server Metrics" : { + "Select a query to see its full text and details." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "서버 지표" + "value" : "전체 텍스트와 세부사항을 볼 쿼리를 선택하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sunucu Metrikleri" + "value" : "Tam metnini ve ayrıntılarını görmek için bir sorgu seçin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chỉ số máy chủ" + "value" : "Chọn một truy vấn để xem toàn văn và chi tiết." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "服务器指标" + "value" : "选择一个查询以查看其完整文本和详情。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "伺服器指標" + "value" : "選擇一個查詢以查看其完整文字和詳細資訊。" } } } }, - "Server error (%d): %@" : { + "Select a row or table to view details" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Server error (%1$d): %2$@" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "서버 오류(%1$d): %2$@" + "value" : "세부사항을 볼 행 또는 테이블을 선택하십시오" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sunucu hatası (%d): %@" + "value" : "Ayrıntıları görmek için bir satır veya tablo seçin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lỗi máy chủ (%d): %@" + "value" : "Chọn một hàng hoặc bảng để xem chi tiết" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "服务器错误(%d):%@" + "value" : "选择一行或一个表以查看详情" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "伺服器錯誤(%1$d):%2$@" + "value" : "選擇一列或資料表以檢視詳細資訊" } } } }, - "Server error (%lld): %@" : { - "extractionState" : "stale", + "Select a step in the plan to see what it does." : { + "comment" : "A description of the view's body.", + "isCommentAutoGenerated" : true, "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Server error (%1$lld): %2$@" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "서버 오류(%1$lld): %2$@" + "value" : "작업을 확인할 실행 계획 단계를 선택하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Server error (%lld): %@" + "value" : "Ne yaptığını görmek için plandaki bir adımı seçin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lỗi máy chủ (%1$lld): %2$@" + "value" : "Chọn một bước trong kế hoạch để xem nó làm gì." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "服务器错误 (%lld):%@" + "value" : "选择执行计划中的一个步骤,查看它做了什么。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "伺服器錯誤(%1$lld):%2$@" + "value" : "選擇執行計畫中的一個步驟,查看它做了什麼。" } } } }, - "Server monitoring is not available for this database type." : { + "Select a table to copy its structure:" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 데이터베이스 유형에서는 서버 모니터링을 사용할 수 없습니다." + "value" : "구조를 복사할 테이블 선택:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu veritabanı türü için sunucu izleme kullanılamaz." + "value" : "Select a table to copy its structure:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giám sát máy chủ không khả dụng cho loại cơ sở dữ liệu này." + "value" : "Chọn bảng để sao chép cấu trúc:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此数据库类型不支持服务器监控。" + "value" : "选择要复制结构的表:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此資料庫類型不支援伺服器監控。" + "value" : "選擇要複製結構的資料表:" } } } }, - "Serverless SQLite at the edge" : { + "Select a table to see its row differences." : { + + }, + "Select a table…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "엣지의 서버리스 SQLite" + "value" : "테이블 선택…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Uçta sunucusuz SQLite" + "value" : "Bir tablo seçin…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "SQLite serverless tại biên" + "value" : "Chọn một bảng…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "边缘端的无服务器 SQLite" + "value" : "选择表…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "邊緣端的無伺服器 SQLite" + "value" : "選擇資料表…" } } } }, - "Service" : { + "Select a user or role to view its privileges." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "서비스" + "value" : "권한을 볼 사용자 또는 역할을 선택하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Servis" + "value" : "Yetkilerini görmek için bir kullanıcı veya rol seçin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dịch vụ" + "value" : "Chọn một người dùng hoặc vai trò để xem quyền của họ." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "服务" + "value" : "选择一个用户或角色以查看其权限。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "服務" + "value" : "選擇一個使用者或角色以檢視其權限。" } } } }, - "Service Account Key" : { + "Select All" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "서비스 계정 키" + "value" : "전체 선택" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Hizmet Hesabı Anahtarı" + "value" : "Tümünü Seç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khóa tài khoản dịch vụ" + "value" : "Chọn tất cả" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "服务账号密钥" + "value" : "全选" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "服務帳戶金鑰" + "value" : "全選" } } } }, - "Service Name" : { - "extractionState" : "stale", + "Select an activity entry to see its details." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "서비스 이름" + "value" : "세부사항을 볼 활동 항목을 선택하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Service Name" + "value" : "Ayrıntılarını görmek için bir etkinlik kaydı seçin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên dịch vụ" + "value" : "Chọn một mục hoạt động để xem chi tiết." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "服务名称" + "value" : "选择一个活动条目以查看详细信息。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "服務名稱" + "value" : "選擇一個活動項目以查看詳細資訊。" } } } }, - "Service Token" : { + "Select an object on the left to edit its privileges." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "서비스 토큰" + "value" : "권한을 편집할 왼쪽의 객체를 선택하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Hizmet Jetonu" + "value" : "Yetkilerini düzenlemek için soldan bir nesne seçin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Service Token" + "value" : "Chọn một đối tượng ở bên trái để sửa quyền của nó." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "服务令牌" + "value" : "在左侧选择一个对象以编辑其权限。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "服務權杖" + "value" : "在左側選擇一個物件以編輯其權限。" } } } }, - "Service account key (JSON)" : { + "Select an object to see its definition on both sides." : { + + }, + "Select Connections" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "서비스 계정 키(JSON)" + "value" : "연결 선택" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Servis hesabı anahtarı (JSON)" + "value" : "Bağlantıları Seç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khóa tài khoản dịch vụ (JSON)" + "value" : "Chọn kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "服务账号密钥(JSON)" + "value" : "选择连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "服務帳號金鑰(JSON)" + "value" : "選擇連線" } } } }, - "Service stopped" : { + "Select filter column" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "서비스 중지됨" + "value" : "필터 열 선택" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Servis durduruldu" + "value" : "Filtre sütunu seç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dịch vụ đã dừng" + "value" : "Chọn cột lọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "服务已停止" + "value" : "选择筛选列" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "服務已停止" + "value" : "選擇篩選欄位" } } } }, - "Service token ID and secret are required" : { + "Select filter for %@" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "서비스 토큰 ID와 시크릿이 필요합니다" + "value" : "%@의 필터 선택" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Hizmet jetonu kimliği ve gizli anahtarı gereklidir" + "value" : "Select filter for %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cần ID và secret của service token" + "value" : "Chọn bộ lọc cho %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "需要服务令牌 ID 和密钥" + "value" : "为 %@ 选择筛选条件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "需要服務權杖 ID 和金鑰" + "value" : "為 %@ 選擇篩選條件" } } } }, - "Services" : { + "Select filter operator" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "서비스" + "value" : "필터 연산자 선택" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Servisler" + "value" : "Filtre operatörü seç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dịch vụ" + "value" : "Chọn toán tử lọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "服务" + "value" : "选择筛选运算符" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "服務" + "value" : "選擇篩選運算子" } } } }, - "Session Token" : { + "Select images to attach" : { + "extractionState" : "stale", "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Session Token" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "세션 토큰" + "value" : "첨부할 이미지 선택" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Session Token" + "value" : "Eklenecek resimleri seçin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Session Token" + "value" : "Chọn ảnh để đính kèm" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Session Token" + "value" : "选择要附加的图片" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Session Token" + "value" : "選擇要附加的圖片" } } } }, - "Set CSV Properties…" : { - "extractionState" : "stale", + "Select Model" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "CSV 속성 설정…" + "value" : "모델 선택" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "CSV Özelliklerini Ayarla…" + "value" : "Model Seç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đặt thuộc tính CSV…" + "value" : "Chọn mô hình" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "设置 CSV 属性…" + "value" : "选择模型" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "設定 CSV 屬性…" + "value" : "選擇模型" } } } }, - "Set DEFAULT" : { + "Select objects of the same kind to edit their privileges." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "DEFAULT로 설정" + "value" : "권한을 편집할 같은 종류의 객체를 선택하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Set DEFAULT" + "value" : "Yetkilerini düzenlemek için aynı türden nesneler seçin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đặt DEFAULT" + "value" : "Chọn các đối tượng cùng loại để sửa quyền của chúng." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "设为 DEFAULT" + "value" : "选择同一类型的对象才能编辑它们的权限。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "設為 DEFAULT" + "value" : "選擇同一類型的物件才能編輯它們的權限。" } } } }, - "Set EMPTY" : { + "Select Plugin" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "EMPTY로 설정" + "value" : "플러그인 선택" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Set EMPTY" + "value" : "Eklenti Seç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đặt TRỐNG" + "value" : "Chọn Plugin" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "设为空" + "value" : "选择插件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "設為空" + "value" : "選擇外掛" } } } }, - "Set NULL" : { + "SELECT queries without their own LIMIT run with this cap applied. The query text in the editor never changes. Capped results show a Fetch All button, and Execute Without Limit skips the cap for one run." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "NULL로 설정" + "value" : "자체 LIMIT이 없는 SELECT 쿼리는 이 상한을 적용하여 실행됩니다. 편집기의 쿼리 텍스트는 변경되지 않습니다. 제한된 결과에는 '모두 가져오기' 버튼이 표시되며, 한 번만 상한을 건너뛰려면 '제한 없이 실행'을 사용합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Set NULL" + "value" : "Kendi LIMIT'i olmayan SELECT sorguları bu sınırla çalışır. Düzenleyicideki sorgu metni hiç değişmez. Sınırlanan sonuçlarda Tümünü Getir düğmesi görünür, Limitsiz Çalıştır ise sınırı tek seferlik atlar." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đặt NULL" + "value" : "Các truy vấn SELECT không có LIMIT riêng sẽ chạy với giới hạn này. Nội dung truy vấn trong trình soạn thảo không hề thay đổi. Kết quả bị giới hạn sẽ hiện nút Tải tất cả, còn Chạy không giới hạn sẽ bỏ qua giới hạn cho một lần chạy." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "设为 NULL" + "value" : "没有自带 LIMIT 的 SELECT 查询会按此上限运行。编辑器中的查询文本不会被改动。被截断的结果会显示“获取所有行”按钮,“不限行数执行”则对单次运行跳过上限。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "設為 NULL" + "value" : "沒有自帶 LIMIT 的 SELECT 查詢會套用此上限。編輯器中的查詢文字不會被更動。被截斷的結果會顯示「取得所有列」按鈕,「不限列數執行」則對單次執行略過上限。" } } } }, - "Set Password" : { + "Select schema" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "암호 설정" + "value" : "스키마 선택" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Parola Ayarla" + "value" : "Şema seçin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đặt mật khẩu" + "value" : "Chọn schema" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "设置密码" + "value" : "选择 Schema" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "設定密碼" + "value" : "選擇綱要" } } } }, - "Set Up AI Provider" : { + "Select SQL File..." : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "AI 제공업체 설정" + "value" : "SQL 파일 선택..." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Set Up AI Provider" + "value" : "Select SQL File..." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thiết lập nhà cung cấp AI" + "value" : "Chọn tệp SQL..." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "设置 AI 提供商" + "value" : "选择 SQL 文件..." } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "設定 AI 供應商" + "value" : "選擇 SQL 檔案…" } } } }, - "Set Value" : { + "Select SQL files to open" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "값 설정" + "value" : "열 SQL 파일 선택" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Değer Ata" + "value" : "Açılacak SQL dosyalarını seç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đặt giá trị" + "value" : "Chọn tệp SQL để mở" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "设置值" + "value" : "选择要打开的 SQL 文件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "設定值" + "value" : "選擇要開啟的 SQL 檔案" } } } }, - "Set as Active" : { + "Select Tab %d" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "활성으로 설정" + "value" : "탭 %d 선택" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Aktif Olarak Ayarla" + "value" : "%d. Sekmeyi Seç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đặt làm đang hoạt động" + "value" : "Chọn tab %d" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "设为活动" + "value" : "选择标签页 %d" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "設為使用中" + "value" : "選擇分頁 %d" } } } }, - "Set by the column's collation" : { + "Select Tab %lld" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열의 정렬 규칙에 따라 설정" + "value" : "탭 %lld 선택" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sütunun harmanlamasına göre belirlenir" + "value" : "Select Tab %lld" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Do đối chiếu của cột quyết định" + "value" : "Chọn tab %lld" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "由列的排序规则决定" + "value" : "选择标签页 %lld" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "由欄位的定序決定" + "value" : "選擇分頁 %lld" } } } }, - "Set special value" : { - "extractionState" : "stale", + "Selected Item" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "특수 값 설정" + "value" : "선택된 항목" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Set special value" + "value" : "Seçili Öğe" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đặt giá trị đặc biệt" + "value" : "Mục đã chọn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "设置特殊值" + "value" : "选中项" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "設定特殊值" + "value" : "選取的項目" } } } }, - "Set the connection's username to the IAM principal (a user email, or `name@project.iam` for a service account). The database password is not used." : { + "Selected SSH profile no longer exists." : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Selected SSH profile no longer exists." + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결의 사용자 이름을 IAM 주체(사용자 이메일 또는 서비스 계정의 경우 `name@project.iam`)로 설정하십시오. 데이터베이스 암호는 사용되지 않습니다." + "value" : "선택한 SSH 프로필이 더 이상 존재하지 않습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantının kullanıcı adını IAM principal'ı yapın (bir kullanıcı e-postası veya servis hesabı için `name@project.iam`). Veritabanı parolası kullanılmaz." + "value" : "Seçilen SSH profili artık mevcut değil." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đặt tên đăng nhập của kết nối thành IAM principal (email người dùng, hoặc `name@project.iam` với tài khoản dịch vụ). Mật khẩu cơ sở dữ liệu không được dùng." + "value" : "Hồ sơ SSH đã chọn không còn tồn tại." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将连接的用户名设为 IAM 主体(用户邮箱,或服务账号的 `name@project.iam`)。不会使用数据库密码。" + "value" : "所选 SSH 配置已不存在。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將連線的使用者名稱設為 IAM 主體(使用者電子郵件,或服務帳號的 `name@project.iam`)。不會使用資料庫密碼。" + "value" : "選取的 SSH 設定檔已不存在。" } } } }, - "Set to NULL" : { + "Selection" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "NULL로 설정" + "value" : "선택 영역" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "NULL Olarak Ayarla" + "value" : "Selection" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đặt thành NULL" + "value" : "Vùng chọn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "设为 NULL" + "value" : "选区" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "設為 NULL" + "value" : "選取範圍" } } } }, - "Settings" : { + "Semicolon ;" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "설정" + "value" : "세미콜론 ;" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ayarlar" + "value" : "Noktalı Virgül ;" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cài đặt" + "value" : "Dấu chấm phẩy ;" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "设置" + "value" : "分号 ;" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "設定" + "value" : "分號 ;" } } } }, - "Settings were changed" : { - "extractionState" : "stale", + "Send Message" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "설정이 변경되었습니다" + "value" : "메시지 보내기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Settings were changed" + "value" : "Mesaj Gönder" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cài đặt đã bị thay đổi" + "value" : "Gửi tin nhắn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "设置已更改" + "value" : "发送消息" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "設定已變更" + "value" : "傳送訊息" } } } }, - "Settings were changed on both this Mac and another device." : { - "extractionState" : "stale", + "Send one statement at a time." : { + + }, + "Send telemetry to GitHub" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 Mac과 다른 기기 모두에서 설정이 변경되었습니다." + "value" : "GitHub에 텔레메트리 보내기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Settings were changed on both this Mac and another device." + "value" : "Telemetriyi GitHub'a gönder" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cài đặt đã bị thay đổi trên cả máy Mac này và thiết bị khác." + "value" : "Gửi telemetry tới GitHub" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "设置在此 Mac 和另一台设备上均已更改。" + "value" : "向 GitHub 发送遥测数据" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "設定在此 Mac 和另一台裝置上都已變更。" + "value" : "向 GitHub 傳送遙測資料" } } } }, - "Settings:" : { + "Sentinel" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "설정:" + "value" : "센티널" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Settings:" + "value" : "Sentinel" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cài đặt:" + "value" : "Sentinel" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "设置:" + "value" : "哨兵" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "設定:" + "value" : "哨兵" } } } }, - "Settings…" : { + "Sentinel Nodes" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "설정…" + "value" : "센티널 노드" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ayarlar…" + "value" : "Sentinel Düğümleri" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cài đặt…" + "value" : "Nút Sentinel" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "设置…" + "value" : "哨兵节点" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "設定…" + "value" : "哨兵節點" } } } }, - "Setup Instructions" : { + "Sentinel Password" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "설정 지침" + "value" : "센티널 암호" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kurulum Talimatları" + "value" : "Sentinel Parolası" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hướng dẫn thiết lập" + "value" : "Mật khẩu Sentinel" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "设置说明" + "value" : "哨兵密码" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "設定說明" + "value" : "哨兵密碼" } } } }, - "Shadows the SQL keyword '%@'" : { + "Sentinel Username" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SQL 키워드 '%@'와 이름이 겹칩니다" + "value" : "센티널 사용자 이름" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "'%@' SQL anahtar sözcüğünü gölgeliyor" + "value" : "Sentinel Kullanıcı Adı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trùng với từ khoá SQL '%@'" + "value" : "Tên người dùng Sentinel" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "与 SQL 关键字 '%@' 冲突" + "value" : "哨兵用户名" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "與 SQL 關鍵字「%@」衝突" + "value" : "哨兵使用者名稱" } } } }, - "Share" : { + "Separator (optional)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "공유" + "value" : "구분 기호(선택 사항)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Paylaş" + "value" : "Ayırıcı (isteğe bağlı)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chia sẻ" + "value" : "Dấu phân cách (tùy chọn)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "分享" + "value" : "分隔符(可选)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "分享" + "value" : "分隔符號(選填)" } } } }, - "Share anonymous usage data" : { + "Separator or pattern" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "익명 사용 데이터 공유" + "value" : "구분 기호 또는 패턴" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Anonim kullanım verilerini paylaş" + "value" : "Ayırıcı veya desen" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chia sẻ dữ liệu sử dụng ẩn danh" + "value" : "Dấu phân cách hoặc mẫu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "共享匿名使用数据" + "value" : "分隔符或模式" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "分享匿名使用資料" + "value" : "分隔符號或模式" } } } }, - "Share connections and saved queries with your team through your account. Passwords are never included." : { + "Sequence" : { + + }, + "Series" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "계정을 통해 연결 및 저장된 쿼리를 팀과 공유하십시오. 암호는 절대 포함되지 않습니다." + "value" : "계열" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantıları ve kayıtlı sorguları hesabınız üzerinden takımınızla paylaşın. Parolalar hiçbir zaman dahil edilmez." + "value" : "Seri" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chia sẻ kết nối và truy vấn đã lưu với nhóm của bạn thông qua tài khoản. Mật khẩu không bao giờ được đưa vào." + "value" : "Chuỗi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "通过你的账户与团队共享连接和已保存的查询。密码不会被包含在内。" + "value" : "系列" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "透過你的帳號與團隊共享連線和已儲存的查詢。密碼絕不會包含在內。" + "value" : "數列" } } } }, - "Shell script to run before connecting. Non-zero exit aborts connection." : { + "Server" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 전에 실행할 셸 스크립트입니다. 0이 아닌 종료 코드는 연결을 중단합니다." + "value" : "서버" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlanmadan önce çalıştırılacak kabuk betiği. Sıfırdan farklı çıkış kodu bağlantıyı iptal eder." + "value" : "Server" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Shell script chạy trước khi kết nối. Exit code khác 0 sẽ hủy kết nối." + "value" : "Máy chủ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接前运行的 Shell 脚本。非零退出码将中止连接。" + "value" : "服务器" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線前執行的 Shell 指令稿。非零結束碼會中止連線。" + "value" : "伺服器" } } } }, - "Shortcut Conflict" : { + "Server Configuration" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "단축키 충돌" + "value" : "서버 구성" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kısayol Çakışması" + "value" : "Sunucu Yapılandırması" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xung đột phím tắt" + "value" : "Cấu hình server" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "快捷键冲突" + "value" : "服务器配置" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "快速鍵衝突" + "value" : "伺服器設定" } } } }, - "Shortcut recorder" : { + "Server Dashboard" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "단축키 기록기" + "value" : "서버 대시보드" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kısayol kaydedici" + "value" : "Sunucu Panosu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ghi phím tắt" + "value" : "Bảng điều khiển máy chủ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "快捷键录制" + "value" : "服务器仪表盘" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "快速鍵錄製器" + "value" : "伺服器儀表板" } } } }, - "Show All" : { + "Server error (%d): %@" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Server error (%1$d): %2$@" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모두 보기" + "value" : "서버 오류(%1$d): %2$@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tümünü Göster" + "value" : "Sunucu hatası (%d): %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiển thị tất cả" + "value" : "Lỗi máy chủ (%d): %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示全部" + "value" : "服务器错误(%d):%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示全部" + "value" : "伺服器錯誤(%1$d):%2$@" } } } }, - "Show All %@" : { + "Server error (%lld): %@" : { + "extractionState" : "stale", "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Server error (%1$lld): %2$@" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 모두 보기" + "value" : "서버 오류(%1$lld): %2$@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm %@ Göster" + "value" : "Server error (%lld): %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiển thị tất cả %@" + "value" : "Lỗi máy chủ (%1$lld): %2$@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示全部%@" + "value" : "服务器错误 (%lld):%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示全部 %@" + "value" : "伺服器錯誤(%1$lld):%2$@" } } } }, - "Show All Collections" : { - "extractionState" : "stale", + "Server host" : { + + }, + "Server metrics" : { + + }, + "Server Metrics" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 컬렉션 보기" + "value" : "서버 지표" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Show All Collections" + "value" : "Sunucu Metrikleri" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiển thị tất cả Collection" + "value" : "Chỉ số máy chủ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示所有集合" + "value" : "服务器指标" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示所有集合" + "value" : "伺服器指標" } } } }, - "Show All Columns" : { + "Server monitoring is not available for this database type." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 열 보기" + "value" : "이 데이터베이스 유형에서는 서버 모니터링을 사용할 수 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm Sütunları Göster" + "value" : "Bu veritabanı türü için sunucu izleme kullanılamaz." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiện tất cả cột" + "value" : "Giám sát máy chủ không khả dụng cho loại cơ sở dữ liệu này." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示所有列" + "value" : "此数据库类型不支持服务器监控。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示所有欄位" + "value" : "此資料庫類型不支援伺服器監控。" } } } }, - "Show All Databases" : { + "Server port" : { + + }, + "Server round trip in milliseconds" : { + + }, + "Server version string" : { + + }, + "Serverless SQLite at the edge" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 데이터베이스 보기" + "value" : "엣지의 서버리스 SQLite" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm Veritabanlarını Göster" + "value" : "Uçta sunucusuz SQLite" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiển thị tất cả cơ sở dữ liệu" + "value" : "SQLite serverless tại biên" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示所有数据库" + "value" : "边缘端的无服务器 SQLite" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示所有資料庫" + "value" : "邊緣端的無伺服器 SQLite" } } } }, - "Show All Rows" : { + "Service" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 행 보기" + "value" : "서비스" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm Satırları Göster" + "value" : "Servis" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiện tất cả hàng" + "value" : "Dịch vụ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示所有行" + "value" : "服务" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示所有列" + "value" : "服務" } } } }, - "Show All Tables" : { - "extractionState" : "stale", + "Service Account Key" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 테이블 보기" + "value" : "서비스 계정 키" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Show All Tables" + "value" : "Hizmet Hesabı Anahtarı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiện tất cả bảng" + "value" : "Khóa tài khoản dịch vụ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示所有表" + "value" : "服务账号密钥" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示所有資料表" + "value" : "服務帳戶金鑰" } } } }, - "Show Completions" : { + "Service account key (JSON)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "자동 완성 표시" + "value" : "서비스 계정 키(JSON)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tamamlamaları Göster" + "value" : "Servis hesabı anahtarı (JSON)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiện gợi ý hoàn thành" + "value" : "Khóa tài khoản dịch vụ (JSON)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示补全" + "value" : "服务账号密钥(JSON)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示自動完成" + "value" : "服務帳號金鑰(JSON)" } } } }, - "Show Connections" : { - "comment" : "Text for a menu item that toggles the visibility of the connections sidebar.", - "isCommentAutoGenerated" : true, + "Service Name" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 보기" + "value" : "서비스 이름" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantıları Göster" + "value" : "Service Name" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiện kết nối" + "value" : "Tên dịch vụ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示连接" + "value" : "服务名称" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示連線" + "value" : "服務名稱" } } } }, - "Show DDL" : { + "Service stopped" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "DDL 보기" + "value" : "서비스 중지됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "DDL'yi Göster" + "value" : "Servis durduruldu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiện DDL" + "value" : "Dịch vụ đã dừng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示 DDL" + "value" : "服务已停止" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示 DDL" + "value" : "服務已停止" } } } }, - "Show ER Diagram" : { + "Service Token" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "ER 다이어그램 보기" + "value" : "서비스 토큰" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "ER Diyagramını Göster" + "value" : "Hizmet Jetonu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiện sơ đồ ER" + "value" : "Service Token" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示 ER 图" + "value" : "服务令牌" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示 ER 圖" + "value" : "服務權杖" } } } }, - "Show Favorites Sidebar" : { - "extractionState" : "stale", + "Service token ID and secret are required" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "즐겨찾기 사이드바 보기" + "value" : "서비스 토큰 ID와 시크릿이 필요합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sık Kullanılanlar Sidebar'ını Göster" + "value" : "Hizmet jetonu kimliği ve gizli anahtarı gereklidir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiện thanh bên yêu thích" + "value" : "Cần ID và secret của service token" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示收藏侧边栏" + "value" : "需要服务令牌 ID 和密钥" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示我的最愛側邊欄" + "value" : "需要服務權杖 ID 和金鑰" } } } }, - "Show Filter Bar" : { + "Services" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터 막대 보기" + "value" : "서비스" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtre Çubuğunu Göster" + "value" : "Servisler" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiện thanh bộ lọc" + "value" : "Dịch vụ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示筛选栏" + "value" : "服务" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示篩選列" + "value" : "服務" } } } }, - "Show Inspector" : { + "Session contexts" : { + + }, + "Session state" : { + + }, + "Session status" : { + + }, + "Session Token" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Session Token" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "인스펙터 보기" + "value" : "세션 토큰" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Denetçiyi Göster" + "value" : "Session Token" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiện thanh kiểm tra" + "value" : "Session Token" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示检查器" + "value" : "Session Token" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示檢閱器" + "value" : "Session Token" } } } }, - "Show Next Connection" : { - "comment" : "Text for a menu item that shows the next connection.", - "isCommentAutoGenerated" : true, + "Session user" : { + + }, + "Sessions the server reports" : { + + }, + "Set as Active" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다음 연결 보기" + "value" : "활성으로 설정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sonraki Bağlantıyı Göster" + "value" : "Aktif Olarak Ayarla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiện kết nối tiếp theo" + "value" : "Đặt làm đang hoạt động" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示下一个连接" + "value" : "设为活动" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示下一個連線" + "value" : "設為使用中" } } } }, - "Show Next Tab" : { + "Set by the column's collation" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다음 탭 보기" + "value" : "열의 정렬 규칙에 따라 설정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sonraki Sekmeyi Göster" + "value" : "Sütunun harmanlamasına göre belirlenir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiện tab tiếp" + "value" : "Do đối chiếu của cột quyết định" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示下一个标签页" + "value" : "由列的排序规则决定" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示下一個分頁" + "value" : "由欄位的定序決定" } } } }, - "Show Next Workspace" : { - "extractionState" : "stale", + "Set CSV Properties…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다음 작업 공간 보기" + "value" : "CSV 속성 설정…" } }, "tr" : { "stringUnit" : { - "state" : "needs_review", - "value" : "Sonraki Çalışma Alanını Göster" + "state" : "translated", + "value" : "CSV Özelliklerini Ayarla…" } }, "vi" : { "stringUnit" : { - "state" : "needs_review", - "value" : "Hiện không gian làm việc tiếp theo" + "state" : "translated", + "value" : "Đặt thuộc tính CSV…" } }, "zh-Hans" : { "stringUnit" : { - "state" : "needs_review", - "value" : "显示下一个工作区" + "state" : "translated", + "value" : "设置 CSV 属性…" } }, "zh-Hant" : { "stringUnit" : { - "state" : "needs_review", - "value" : "顯示下一個工作區" + "state" : "translated", + "value" : "設定 CSV 屬性…" } } } }, - "Show Object Comments" : { - "extractionState" : "stale", + "Set DEFAULT" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "객체 주석 보기" + "value" : "DEFAULT로 설정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Nesne Yorumlarını Göster" + "value" : "Set DEFAULT" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiện ghi chú đối tượng" + "value" : "Đặt DEFAULT" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示对象注释" + "value" : "设为 DEFAULT" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示物件註解" + "value" : "設為 DEFAULT" } } } }, - "Show Previous Connection" : { - "comment" : "Text for a menu item that shows the previous connection.", - "isCommentAutoGenerated" : true, + "Set EMPTY" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이전 연결 보기" + "value" : "EMPTY로 설정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Önceki Bağlantıyı Göster" + "value" : "Set EMPTY" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiện kết nối trước" + "value" : "Đặt TRỐNG" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示上一个连接" + "value" : "设为空" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示上一個連線" + "value" : "設為空" } } } }, - "Show Previous Tab" : { + "Set NULL" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이전 탭 보기" + "value" : "NULL로 설정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Önceki Sekmeyi Göster" + "value" : "Set NULL" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiện tab trước" + "value" : "Đặt NULL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示上一个标签页" + "value" : "设为 NULL" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示上一個分頁" + "value" : "設為 NULL" } } } }, - "Show Previous Workspace" : { - "extractionState" : "stale", + "Set Password" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이전 작업 공간 보기" + "value" : "암호 설정" } }, "tr" : { "stringUnit" : { - "state" : "needs_review", - "value" : "Önceki Çalışma Alanını Göster" + "state" : "translated", + "value" : "Parola Ayarla" } }, "vi" : { "stringUnit" : { - "state" : "needs_review", - "value" : "Hiện không gian làm việc trước" + "state" : "translated", + "value" : "Đặt mật khẩu" } }, "zh-Hans" : { "stringUnit" : { - "state" : "needs_review", - "value" : "显示上一个工作区" + "state" : "translated", + "value" : "设置密码" } }, "zh-Hant" : { "stringUnit" : { - "state" : "needs_review", - "value" : "顯示上一個工作區" + "state" : "translated", + "value" : "設定密碼" } } } }, - "Show Query History" : { + "Set special value" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 기록 보기" + "value" : "특수 값 설정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgu Geçmişini Göster" + "value" : "Set special value" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiện lịch sử truy vấn" + "value" : "Đặt giá trị đặc biệt" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示查询历史" + "value" : "设置特殊值" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示查詢歷史" + "value" : "設定特殊值" } } } }, - "Show Results" : { + "Set the connection's username to the IAM principal (a user email, or `name@project.iam` for a service account). The database password is not used." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "결과 보기" + "value" : "연결의 사용자 이름을 IAM 주체(사용자 이메일 또는 서비스 계정의 경우 `name@project.iam`)로 설정하십시오. 데이터베이스 암호는 사용되지 않습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sonuçları Göster" + "value" : "Bağlantının kullanıcı adını IAM principal'ı yapın (bir kullanıcı e-postası veya servis hesabı için `name@project.iam`). Veritabanı parolası kullanılmaz." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiện kết quả" + "value" : "Đặt tên đăng nhập của kết nối thành IAM principal (email người dùng, hoặc `name@project.iam` với tài khoản dịch vụ). Mật khẩu cơ sở dữ liệu không được dùng." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示结果" + "value" : "将连接的用户名设为 IAM 主体(用户邮箱,或服务账号的 `name@project.iam`)。不会使用数据库密码。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示結果" + "value" : "將連線的使用者名稱設為 IAM 主體(使用者電子郵件,或服務帳號的 `name@project.iam`)。不會使用資料庫密碼。" } } } }, - "Show Sidebar" : { + "Set to NULL" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사이드바 보기" + "value" : "NULL로 설정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kenar Çubuğunu Göster" + "value" : "NULL Olarak Ayarla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiện thanh bên" + "value" : "Đặt thành NULL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示侧边栏" + "value" : "设为 NULL" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示側邊欄" + "value" : "設為 NULL" } } } }, - "Show Structure" : { + "Set Up AI Provider" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "구조 보기" + "value" : "AI 제공업체 설정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yapıyı Göster" + "value" : "Set Up AI Provider" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiện cấu trúc" + "value" : "Thiết lập nhà cung cấp AI" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示结构" + "value" : "设置 AI 提供商" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示結構" + "value" : "設定 AI 供應商" } } } }, - "Show System %@s" : { + "Set Value" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "시스템 %@s 보기" + "value" : "값 설정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sistem %@ Göster" + "value" : "Değer Ata" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiện %@ hệ thống" + "value" : "Đặt giá trị" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示系统%@" + "value" : "设置值" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示系統%@" + "value" : "設定值" } } } }, - "Show System Schemas" : { + "Settings" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "시스템 스키마 보기" + "value" : "설정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sistem Şemalarını Göster" + "value" : "Ayarlar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiện schema hệ thống" + "value" : "Cài đặt" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示系统 Schema" + "value" : "设置" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示系統綱要" + "value" : "設定" } } } }, - "Show Table Structure" : { + "Settings were changed" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 구조 보기" + "value" : "설정이 변경되었습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tablo Yapısını Göster" + "value" : "Settings were changed" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiện cấu trúc bảng" + "value" : "Cài đặt đã bị thay đổi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示表结构" + "value" : "设置已更改" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示資料表結構" + "value" : "設定已變更" } } } }, - "Show Tables Sidebar" : { + "Settings were changed on both this Mac and another device." : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 사이드바 보기" + "value" : "이 Mac과 다른 기기 모두에서 설정이 변경되었습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tablolar Sidebar'ını Göster" + "value" : "Settings were changed on both this Mac and another device." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiện thanh bên bảng" + "value" : "Cài đặt đã bị thay đổi trên cả máy Mac này và thiết bị khác." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示表侧边栏" + "value" : "设置在此 Mac 和另一台设备上均已更改。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示資料表側邊欄" + "value" : "設定在此 Mac 和另一台裝置上都已變更。" } } } }, - "Show Toolbar" : { + "Settings:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "도구 막대 보기" + "value" : "설정:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Araç Çubuğunu Göster" + "value" : "Settings:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiện thanh công cụ" + "value" : "Cài đặt:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示工具栏" + "value" : "设置:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示工具列" + "value" : "設定:" } } } }, - "Show Welcome Screen" : { + "Settings…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "시작 화면 보기" + "value" : "설정…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Hoş Geldiniz Ekranını Göster" + "value" : "Ayarlar…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiện màn hình chào mừng" + "value" : "Cài đặt…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示欢迎屏幕" + "value" : "设置…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示歡迎畫面" + "value" : "設定…" } } } }, - "Show Welcome Window" : { + "Setup Instructions" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "시작 윈도우 보기" + "value" : "설정 지침" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Karşılama Penceresini Göster" + "value" : "Kurulum Talimatları" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiện cửa sổ chào mừng" + "value" : "Hướng dẫn thiết lập" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示欢迎窗口" + "value" : "设置说明" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示歡迎視窗" + "value" : "設定說明" } } } }, - "Show Workspace Rail" : { - "extractionState" : "stale", + "Shadows the SQL keyword '%@'" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "워크스페이스 레일 보기" + "value" : "SQL 키워드 '%@'와 이름이 겹칩니다" } }, "tr" : { "stringUnit" : { - "state" : "needs_review", - "value" : "Çalışma Alanı Şeridini Göster" + "state" : "translated", + "value" : "'%@' SQL anahtar sözcüğünü gölgeliyor" } }, "vi" : { "stringUnit" : { - "state" : "needs_review", - "value" : "Hiện thanh không gian làm việc" + "state" : "translated", + "value" : "Trùng với từ khoá SQL '%@'" } }, "zh-Hans" : { "stringUnit" : { - "state" : "needs_review", - "value" : "显示工作区栏" + "state" : "translated", + "value" : "与 SQL 关键字 '%@' 冲突" } }, "zh-Hant" : { "stringUnit" : { - "state" : "needs_review", - "value" : "顯示工作區列" + "state" : "translated", + "value" : "與 SQL 關鍵字「%@」衝突" } } } }, - "Show all results" : { - "extractionState" : "stale", + "Share" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 결과 보기" + "value" : "공유" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm sonuçları göster" + "value" : "Paylaş" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiển thị tất cả kết quả" + "value" : "Chia sẻ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示所有结果" + "value" : "分享" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示所有結果" + "value" : "分享" } } } }, - "Show alternate row backgrounds" : { + "Share anonymous usage data" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "행 배경을 번갈아 표시" + "value" : "익명 사용 데이터 공유" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satırları dönüşümlü arka planla göster" + "value" : "Anonim kullanım verilerini paylaş" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiện nền xen kẽ dòng" + "value" : "Chia sẻ dữ liệu sử dụng ẩn danh" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示交替行背景" + "value" : "共享匿名使用数据" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示交替列背景" + "value" : "分享匿名使用資料" } } } }, - "Show connections" : { - "comment" : "A checkbox that toggles whether the sidebar shows a list of open connections.", - "isCommentAutoGenerated" : true, + "Share connections and saved queries with your team through your account. Passwords are never included." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 보기" + "value" : "계정을 통해 연결 및 저장된 쿼리를 팀과 공유하십시오. 암호는 절대 포함되지 않습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantıları göster" + "value" : "Bağlantıları ve kayıtlı sorguları hesabınız üzerinden takımınızla paylaşın. Parolalar hiçbir zaman dahil edilmez." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiện kết nối" + "value" : "Chia sẻ kết nối và truy vấn đã lưu với nhóm của bạn thông qua tài khoản. Mật khẩu không bao giờ được đưa vào." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示连接" + "value" : "通过你的账户与团队共享连接和已保存的查询。密码不会被包含在内。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示連線" + "value" : "透過你的帳號與團隊共享連線和已儲存的查詢。密碼絕不會包含在內。" } } } }, - "Show details" : { + "Shell script to run before connecting. Non-zero exit aborts connection." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "세부사항 보기" + "value" : "연결 전에 실행할 셸 스크립트입니다. 0이 아닌 종료 코드는 연결을 중단합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ayrıntıları göster" + "value" : "Bağlanmadan önce çalıştırılacak kabuk betiği. Sıfırdan farklı çıkış kodu bağlantıyı iptal eder." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiện chi tiết" + "value" : "Shell script chạy trước khi kết nối. Exit code khác 0 sẽ hủy kết nối." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示详细信息" + "value" : "连接前运行的 Shell 脚本。非零退出码将中止连接。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示詳細資訊" + "value" : "連線前執行的 Shell 指令稿。非零結束碼會中止連線。" } } } }, - "Show in Finder" : { + "Shortcut Conflict" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Finder에서 보기" + "value" : "단축키 충돌" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Finder'da Göster" + "value" : "Kısayol Çakışması" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiện trong Finder" + "value" : "Xung đột phím tắt" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在访达中显示" + "value" : "快捷键冲突" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在 Finder 中顯示" + "value" : "快速鍵衝突" } } } }, - "Show line numbers" : { + "Shortcut recorder" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "줄 번호 보기" + "value" : "단축키 기록기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satır numaralarını göster" + "value" : "Kısayol kaydedici" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiện số dòng" + "value" : "Ghi phím tắt" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示行号" + "value" : "快捷键录制" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示行號" + "value" : "快速鍵錄製器" } } } }, - "Show object comments" : { + "Show" : { + + }, + "Show All" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "객체 주석 보기" + "value" : "모두 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Nesne yorumlarını göster" + "value" : "Tümünü Göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiện ghi chú đối tượng" + "value" : "Hiển thị tất cả" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示对象注释" + "value" : "显示全部" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示物件註解" + "value" : "顯示全部" } } } }, - "Show object icons" : { + "Show All %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "객체 아이콘 보기" + "value" : "%@ 모두 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Nesne simgelerini göster" + "value" : "Tüm %@ Göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiện biểu tượng đối tượng" + "value" : "Hiển thị tất cả %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示对象图标" + "value" : "显示全部%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示物件圖像" + "value" : "顯示全部 %@" } } } }, - "Show password" : { + "Show All Collections" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "암호 보기" + "value" : "모든 컬렉션 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Parolayı göster" + "value" : "Show All Collections" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiện mật khẩu" + "value" : "Hiển thị tất cả Collection" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示密码" + "value" : "显示所有集合" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示密碼" + "value" : "顯示所有集合" } } } }, - "Show recent tables" : { + "Show All Columns" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "최근 테이블 보기" + "value" : "모든 열 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Son tabloları göster" + "value" : "Tüm Sütunları Göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiện bảng gần đây" + "value" : "Hiện tất cả cột" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示最近的表" + "value" : "显示所有列" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示最近的資料表" + "value" : "顯示所有欄位" } } } }, - "Show row numbers" : { + "Show All Databases" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "행 번호 보기" + "value" : "모든 데이터베이스 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satır numaralarını göster" + "value" : "Tüm Veritabanlarını Göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiển thị số thứ tự hàng" + "value" : "Hiển thị tất cả cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示行号" + "value" : "显示所有数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示列號" + "value" : "顯示所有資料庫" } } } }, - "Show workspace rail" : { + "Show all results" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "워크스페이스 레일 보기" + "value" : "모든 결과 보기" } }, "tr" : { "stringUnit" : { - "state" : "needs_review", - "value" : "Çalışma alanı şeridini göster" + "state" : "translated", + "value" : "Tüm sonuçları göster" } }, "vi" : { "stringUnit" : { - "state" : "needs_review", - "value" : "Hiện thanh không gian làm việc" + "state" : "translated", + "value" : "Hiển thị tất cả kết quả" } }, "zh-Hans" : { "stringUnit" : { - "state" : "needs_review", - "value" : "显示工作区栏" + "state" : "translated", + "value" : "显示所有结果" } }, "zh-Hant" : { "stringUnit" : { - "state" : "needs_review", - "value" : "顯示工作區列" + "state" : "translated", + "value" : "顯示所有結果" } } } }, - "Showing %1$lld of %2$lld" : { + "Show All Rows" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "전체 %2$lld개 중 %1$lld개 표시" + "value" : "모든 행 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%2$lld öğeden %1$lld tanesi gösteriliyor" + "value" : "Tüm Satırları Göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang hiển thị %1$lld trên %2$lld" + "value" : "Hiện tất cả hàng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在显示 %2$lld 中的 %1$lld 项" + "value" : "显示所有行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在顯示 %2$lld 中的 %1$lld 項" + "value" : "顯示所有列" } } } }, - "Showing %@ rows" : { + "Show All Tables" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@개 행 표시" + "value" : "모든 테이블 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ satır gösteriliyor" + "value" : "Show All Tables" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang hiển thị %@ hàng" + "value" : "Hiện tất cả bảng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示 %@ 行" + "value" : "显示所有表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示 %@ 列" + "value" : "顯示所有資料表" } } } }, - "Showing %lld ^[rows](inflect: true)" : { + "Show alternate row backgrounds" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%lld개 행 표시" + "value" : "행 배경을 번갈아 표시" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%lld satır gösteriliyor" + "value" : "Satırları dönüşümlü arka planla göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang hiển thị %lld dòng" + "value" : "Hiện nền xen kẽ dòng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示 %lld 行" + "value" : "显示交替行背景" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示 %lld 列" + "value" : "顯示交替列背景" } } } }, - "Showing %lld of %lld" : { - "comment" : "A description of the number of visible databases in the sidebar. The first argument is the number of visible databases. The second argument is the number of all databases.", - "isCommentAutoGenerated" : true, + "Show Completions" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Showing %1$lld of %2$lld" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "전체 %2$lld개 중 %1$lld개 표시" + "value" : "자동 완성 표시" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%2$lld içinden %1$lld gösteriliyor" + "value" : "Tamamlamaları Göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang hiện %1$lld trên %2$lld" + "value" : "Hiện gợi ý hoàn thành" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在显示 %1$lld / %2$lld" + "value" : "显示补全" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在顯示 %1$lld / %2$lld" + "value" : "顯示自動完成" } } } }, - "Showing all databases" : { + "Show connections" : { + "comment" : "A checkbox that toggles whether the sidebar shows a list of open connections.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 데이터베이스 표시" + "value" : "연결 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm veritabanları gösteriliyor" + "value" : "Bağlantıları göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang hiển thị tất cả cơ sở dữ liệu" + "value" : "Hiện kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在显示所有数据库" + "value" : "显示连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在顯示所有資料庫" + "value" : "顯示連線" } } } }, - "Showing first %lld keys" : { + "Show Connections" : { + "comment" : "Text for a menu item that toggles the visibility of the connections sidebar.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "처음 %lld개 키 표시" + "value" : "연결 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İlk %lld anahtar gösteriliyor" + "value" : "Bağlantıları Göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiển thị %lld khóa đầu tiên" + "value" : "Hiện kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示前 %lld 个键" + "value" : "显示连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示前 %lld 個鍵" + "value" : "顯示連線" } } } }, - "Showing saved plugin list. %@" : { + "Show DDL" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "저장된 플러그인 목록을 표시합니다. %@" + "value" : "DDL 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kaydedilmiş eklenti listesi gösteriliyor. %@" + "value" : "DDL'yi Göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang hiển thị danh sách plugin đã lưu. %@" + "value" : "Hiện DDL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在显示已保存的插件列表。%@" + "value" : "显示 DDL" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在顯示已儲存的外掛清單。%@" + "value" : "顯示 DDL" } } } }, - "Showing the first %1$@ points of %2$@ loaded rows" : { + "Show details" : { "localizations" : { "ko" : { "stringUnit" : { - "value" : "불러온 %2$@행 중 처음 %1$@개 지점을 표시 중", - "state" : "translated" + "state" : "translated", + "value" : "세부사항 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yüklenen %2$@ satırın ilk %1$@ noktası gösteriliyor" + "value" : "Ayrıntıları göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang hiển thị %1$@ điểm đầu tiên trong %2$@ hàng đã tải" + "value" : "Hiện chi tiết" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示已加载 %2$@ 行中的前 %1$@ 个点" + "value" : "显示详细信息" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示已載入 %2$@ 列中的前 %1$@ 個點" + "value" : "顯示詳細資訊" } } } }, - "Showing the first %@ series" : { + "Show ER Diagram" : { "localizations" : { "ko" : { "stringUnit" : { - "value" : "처음 %@개 계열을 표시 중", - "state" : "translated" + "state" : "translated", + "value" : "ER 다이어그램 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İlk %@ seri gösteriliyor" + "value" : "ER Diyagramını Göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang hiển thị %@ chuỗi đầu tiên" + "value" : "Hiện sơ đồ ER" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示前 %@ 个系列" + "value" : "显示 ER 图" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示前 %@ 個系列" + "value" : "顯示 ER 圖" } } } }, - "Shows a type icon before each object name in the sidebar. Turn it off for a plain list of names." : { + "Show Favorites Sidebar" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사이드바에서 각 객체 이름 앞에 유형 아이콘을 표시합니다. 이름만 있는 단순한 목록을 사용하려면 끄십시오." + "value" : "즐겨찾기 사이드바 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kenar çubuğunda her nesne adının önünde bir tür simgesi gösterir. Sade bir ad listesi için kapatın." + "value" : "Sık Kullanılanlar Sidebar'ını Göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiện biểu tượng loại trước mỗi tên đối tượng trong thanh bên. Tắt đi để có danh sách tên đơn thuần." + "value" : "Hiện thanh bên yêu thích" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在侧边栏中每个对象名称前显示类型图标。关闭后只显示纯名称列表。" + "value" : "显示收藏侧边栏" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在側邊欄中每個物件名稱前顯示類型圖像。關閉後只顯示純名稱清單。" + "value" : "顯示我的最愛側邊欄" } } } }, - "Shows database object comments next to tables in the sidebar and in grid column headers." : { + "Show Filter Bar" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사이드바의 테이블 옆과 그리드 열 머리글에 데이터베이스 객체 주석을 표시합니다." + "value" : "필터 막대 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı nesne yorumlarını kenar çubuğundaki tabloların yanında ve tablo sütun başlıklarında gösterir." + "value" : "Filtre Çubuğunu Göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiển thị ghi chú của đối tượng cơ sở dữ liệu cạnh các bảng trong thanh bên và trên tiêu đề cột của lưới." + "value" : "Hiện thanh bộ lọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在侧边栏的表旁边和数据网格列标题中显示数据库对象注释。" + "value" : "显示筛选栏" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在側邊欄的資料表旁與資料格欄位標題中顯示資料庫物件註解。" + "value" : "顯示篩選列" } } } }, - "Sidebar" : { + "Show Identical Objects" : { + + }, + "Show in Finder" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사이드바" + "value" : "Finder에서 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sidebar" + "value" : "Finder'da Göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thanh bên" + "value" : "Hiện trong Finder" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "侧边栏" + "value" : "在访达中显示" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "側邊欄" + "value" : "在 Finder 中顯示" } } } }, - "Sidebar Layout" : { + "Show Inspector" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사이드바 레이아웃" + "value" : "인스펙터 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sidebar Düzeni" + "value" : "Denetçiyi Göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bố cục thanh bên" + "value" : "Hiện thanh kiểm tra" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "侧边栏布局" + "value" : "显示检查器" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "側邊欄版面配置" + "value" : "顯示檢閱器" } } } }, - "Sidebar Panel" : { - "extractionState" : "stale", + "Show line numbers" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사이드바 패널" + "value" : "줄 번호 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sidebar Panel" + "value" : "Satır numaralarını göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thanh bên" + "value" : "Hiện số dòng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "侧边栏" + "value" : "显示行号" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "側邊欄" + "value" : "顯示行號" } } } }, - "Sidebar as List" : { + "Show Next Connection" : { + "comment" : "Text for a menu item that shows the next connection.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "목록형 사이드바" + "value" : "다음 연결 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sidebar'ı Liste Olarak Göster" + "value" : "Sonraki Bağlantıyı Göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thanh bên dạng danh sách" + "value" : "Hiện kết nối tiếp theo" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "侧边栏显示为列表" + "value" : "显示下一个连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "側邊欄顯示為清單" + "value" : "顯示下一個連線" } } } }, - "Sidebar as Tree" : { + "Show Next Tab" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "트리형 사이드바" + "value" : "다음 탭 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sidebar'ı Ağaç Olarak Göster" + "value" : "Sonraki Sekmeyi Göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thanh bên dạng cây" + "value" : "Hiện tab tiếp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "侧边栏显示为树状" + "value" : "显示下一个标签页" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "側邊欄顯示為樹狀" + "value" : "顯示下一個分頁" } } } }, - "Sign In" : { + "Show Next Workspace" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "로그인" + "value" : "다음 작업 공간 보기" } }, "tr" : { "stringUnit" : { - "state" : "translated", - "value" : "Giriş Yap" + "state" : "needs_review", + "value" : "Sonraki Çalışma Alanını Göster" } }, "vi" : { "stringUnit" : { - "state" : "translated", - "value" : "Đăng nhập" + "state" : "needs_review", + "value" : "Hiện không gian làm việc tiếp theo" } }, "zh-Hans" : { "stringUnit" : { - "state" : "translated", - "value" : "登录" + "state" : "needs_review", + "value" : "显示下一个工作区" } }, "zh-Hant" : { "stringUnit" : { - "state" : "translated", - "value" : "登入" + "state" : "needs_review", + "value" : "顯示下一個工作區" } } } }, - "Sign In with Browser…" : { + "Show object comments" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "브라우저로 로그인…" + "value" : "객체 주석 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tarayıcıyla Giriş Yap…" + "value" : "Nesne yorumlarını göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đăng nhập bằng trình duyệt…" + "value" : "Hiện ghi chú đối tượng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "通过浏览器登录…" + "value" : "显示对象注释" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "透過瀏覽器登入…" + "value" : "顯示物件註解" } } } }, - "Sign Out" : { + "Show Object Comments" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "로그아웃" + "value" : "객체 주석 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Oturumu Kapat" + "value" : "Nesne Yorumlarını Göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đăng xuất" + "value" : "Hiện ghi chú đối tượng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "退出登录" + "value" : "显示对象注释" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "登出" + "value" : "顯示物件註解" } } } }, - "Sign in to Microsoft Entra ID with your browser?" : { + "Show object icons" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "브라우저에서 Microsoft Entra ID에 로그인하시겠습니까?" + "value" : "객체 아이콘 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Microsoft Entra ID'ye tarayıcınızla oturum açılsın mı?" + "value" : "Nesne simgelerini göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đăng nhập Microsoft Entra ID bằng trình duyệt?" + "value" : "Hiện biểu tượng đối tượng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "要用浏览器登录 Microsoft Entra ID 吗?" + "value" : "显示对象图标" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "要用瀏覽器登入 Microsoft Entra ID 嗎?" + "value" : "顯示物件圖像" } } } }, - "Sign in to iCloud in System Settings to enable sync." : { + "Show password" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "동기화를 활성화하려면 시스템 설정에서 iCloud에 로그인하십시오." + "value" : "암호 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eşitlemeyi açmak için Sistem Ayarları'ndan iCloud'a giriş yapın." + "value" : "Parolayı göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đăng nhập iCloud trong Cài đặt hệ thống để bật đồng bộ." + "value" : "Hiện mật khẩu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "请在系统设置中登录 iCloud 以启用同步。" + "value" : "显示密码" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "請在系統設定中登入 iCloud 以啟用同步。" + "value" : "顯示密碼" } } } }, - "Sign in to iCloud to enable sync" : { + "Show Previous Connection" : { + "comment" : "Text for a menu item that shows the previous connection.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "동기화를 활성화하려면 iCloud에 로그인하십시오" + "value" : "이전 연결 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eşitlemeyi açmak için iCloud'a giriş yapın" + "value" : "Önceki Bağlantıyı Göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đăng nhập iCloud để bật đồng bộ" + "value" : "Hiện kết nối trước" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "登录 iCloud 以启用同步" + "value" : "显示上一个连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "登入 iCloud 以啟用同步" + "value" : "顯示上一個連線" } } } }, - "Sign in to use your ChatGPT subscription" : { + "Show Previous Tab" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "ChatGPT 구독을 사용하려면 로그인하십시오" + "value" : "이전 탭 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "ChatGPT aboneliğinizi kullanmak için giriş yapın" + "value" : "Önceki Sekmeyi Göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đăng nhập để dùng gói đăng ký ChatGPT của bạn" + "value" : "Hiện tab trước" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "登录以使用你的 ChatGPT 订阅" + "value" : "显示上一个标签页" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "登入以使用你的 ChatGPT 訂閱" + "value" : "顯示上一個分頁" } } } }, - "Sign in with ChatGPT" : { + "Show Previous Workspace" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "ChatGPT로 로그인" + "value" : "이전 작업 공간 보기" } }, "tr" : { "stringUnit" : { - "state" : "translated", - "value" : "ChatGPT ile giriş yap" + "state" : "needs_review", + "value" : "Önceki Çalışma Alanını Göster" } }, "vi" : { "stringUnit" : { - "state" : "translated", - "value" : "Đăng nhập bằng ChatGPT" + "state" : "needs_review", + "value" : "Hiện không gian làm việc trước" } }, "zh-Hans" : { "stringUnit" : { - "state" : "translated", - "value" : "使用 ChatGPT 登录" + "state" : "needs_review", + "value" : "显示上一个工作区" } }, "zh-Hant" : { "stringUnit" : { - "state" : "translated", - "value" : "使用 ChatGPT 登入" + "state" : "needs_review", + "value" : "顯示上一個工作區" } } } }, - "Sign in with Cursor" : { + "Show Query History" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Cursor로 로그인" + "value" : "쿼리 기록 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Cursor ile giriş yap" + "value" : "Sorgu Geçmişini Göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đăng nhập bằng Cursor" + "value" : "Hiện lịch sử truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "使用 Cursor 登录" + "value" : "显示查询历史" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "使用 Cursor 登入" + "value" : "顯示查詢歷史" } } } }, - "Sign in with GitHub" : { + "Show recent tables" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "GitHub로 로그인" + "value" : "최근 테이블 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "GitHub ile Oturum Aç" + "value" : "Son tabloları göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đăng nhập bằng GitHub" + "value" : "Hiện bảng gần đây" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "使用 GitHub 登录" + "value" : "显示最近的表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "使用 GitHub 登入" + "value" : "顯示最近的資料表" } } } }, - "Sign in with xAI" : { + "Show Results" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "xAI로 로그인" + "value" : "결과 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "xAI ile giriş yap" + "value" : "Sonuçları Göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đăng nhập bằng xAI" + "value" : "Hiện kết quả" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "使用 xAI 登录" + "value" : "显示结果" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "使用 xAI 登入" + "value" : "顯示結果" } } } }, - "Sign-in cancelled" : { + "Show row numbers" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "로그인이 취소되었습니다" + "value" : "행 번호 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Oturum açma iptal edildi" + "value" : "Satır numaralarını göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đăng nhập đã hủy" + "value" : "Hiển thị số thứ tự hàng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "登录已取消" + "value" : "显示行号" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "登入已取消" + "value" : "顯示列號" } } } }, - "Sign-in could not be verified. Please try again." : { + "Show Sidebar" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "로그인을 확인할 수 없습니다. 다시 시도하십시오." + "value" : "사이드바 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Giriş doğrulanamadı. Lütfen tekrar deneyin." + "value" : "Kenar Çubuğunu Göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể xác minh đăng nhập. Vui lòng thử lại." + "value" : "Hiện thanh bên" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法验证登录。请重试。" + "value" : "显示侧边栏" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法驗證登入。請再試一次。" + "value" : "顯示側邊欄" } } } }, - "Sign-in timed out" : { + "Show Structure" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "로그인 시간이 초과되었습니다" + "value" : "구조 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Oturum açma zaman aşımına uğradı" + "value" : "Yapıyı Göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đăng nhập hết thời gian chờ" + "value" : "Hiện cấu trúc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "登录超时" + "value" : "显示结构" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "登入逾時" + "value" : "顯示結構" } } } }, - "Sign-in timed out. Please try again." : { + "Show System %@s" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "로그인 시간이 초과되었습니다. 다시 시도하십시오." + "value" : "시스템 %@s 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Giriş zaman aşımına uğradı. Lütfen tekrar deneyin." + "value" : "Sistem %@ Göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đăng nhập đã hết thời gian chờ. Vui lòng thử lại." + "value" : "Hiện %@ hệ thống" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "登录超时。请重试。" + "value" : "显示系统%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "登入逾時。請再試一次。" + "value" : "顯示系統%@" } } } }, - "Signed In" : { + "Show System Schemas" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "로그인 완료" + "value" : "시스템 스키마 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Giriş Yapıldı" + "value" : "Sistem Şemalarını Göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã đăng nhập" + "value" : "Hiện schema hệ thống" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已登录" + "value" : "显示系统 Schema" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已登入" + "value" : "顯示系統綱要" } } } }, - "Signed in" : { + "Show Table Structure" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "로그인됨" + "value" : "테이블 구조 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Giriş yapıldı" + "value" : "Tablo Yapısını Göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã đăng nhập" + "value" : "Hiện cấu trúc bảng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已登录" + "value" : "显示表结构" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已登入" + "value" : "顯示資料表結構" } } } }, - "Signed in as %@" : { + "Show Tables Sidebar" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 계정으로 로그인됨" + "value" : "테이블 사이드바 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ olarak oturum açıldı" + "value" : "Tablolar Sidebar'ını Göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã đăng nhập với %@" + "value" : "Hiện thanh bên bảng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已登录为 %@" + "value" : "显示表侧边栏" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已登入為 %@" + "value" : "顯示資料表側邊欄" } } } }, - "Signed in as %@ on the %@ plan." : { + "Show Toolbar" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Signed in as %1$@ on the %2$@ plan." - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@ 계정으로 로그인했습니다. 현재 %2$@ 요금제를 사용 중입니다." + "value" : "도구 막대 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%2$@ planıyla %1$@ olarak oturum açıldı." + "value" : "Araç Çubuğunu Göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã đăng nhập với tên %1$@ trên gói %2$@." + "value" : "Hiện thanh công cụ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已以 %1$@ 身份登录,使用 %2$@ 方案。" + "value" : "显示工具栏" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已以 %1$@ 身分登入,使用 %2$@ 方案。" + "value" : "顯示工具列" } } } }, - "Signed in as %@." : { + "Show Welcome Screen" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 계정으로 로그인했습니다." + "value" : "시작 화면 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ olarak oturum açıldı." + "value" : "Hoş Geldiniz Ekranını Göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã đăng nhập với tên %@." + "value" : "Hiện màn hình chào mừng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已以 %@ 身份登录。" + "value" : "显示欢迎屏幕" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已以 %@ 身分登入。" + "value" : "顯示歡迎畫面" } } } }, - "Signed in with Cursor" : { + "Show Welcome Window" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Cursor로 로그인됨" + "value" : "시작 윈도우 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Cursor ile giriş yapıldı" + "value" : "Karşılama Penceresini Göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã đăng nhập bằng Cursor" + "value" : "Hiện cửa sổ chào mừng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已使用 Cursor 登录" + "value" : "显示欢迎窗口" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已使用 Cursor 登入" + "value" : "顯示歡迎視窗" } } } }, - "Signed in with xAI" : { + "Show workspace rail" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "xAI로 로그인됨" + "value" : "워크스페이스 레일 보기" } }, "tr" : { "stringUnit" : { - "state" : "translated", - "value" : "xAI ile oturum açıldı" + "state" : "needs_review", + "value" : "Çalışma alanı şeridini göster" } }, "vi" : { "stringUnit" : { - "state" : "translated", - "value" : "Đã đăng nhập bằng xAI" + "state" : "needs_review", + "value" : "Hiện thanh không gian làm việc" } }, "zh-Hans" : { "stringUnit" : { - "state" : "translated", - "value" : "已使用 xAI 登录" + "state" : "needs_review", + "value" : "显示工作区栏" } }, "zh-Hant" : { "stringUnit" : { - "state" : "translated", - "value" : "已使用 xAI 登入" + "state" : "needs_review", + "value" : "顯示工作區列" } } } }, - "Signed in." : { + "Show Workspace Rail" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "로그인했습니다." + "value" : "워크스페이스 레일 보기" } }, "tr" : { "stringUnit" : { - "state" : "translated", - "value" : "Oturum açıldı." + "state" : "needs_review", + "value" : "Çalışma Alanı Şeridini Göster" } }, "vi" : { "stringUnit" : { - "state" : "translated", - "value" : "Đã đăng nhập." + "state" : "needs_review", + "value" : "Hiện thanh không gian làm việc" } }, "zh-Hans" : { "stringUnit" : { - "state" : "translated", - "value" : "已登录。" + "state" : "needs_review", + "value" : "显示工作区栏" } }, "zh-Hant" : { "stringUnit" : { - "state" : "translated", - "value" : "已登入。" + "state" : "needs_review", + "value" : "顯示工作區列" } } } }, - "Signing in…" : { + "Showing %@ rows" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "로그인 중…" + "value" : "%@개 행 표시" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Oturum açılıyor…" + "value" : "%@ satır gösteriliyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang đăng nhập…" + "value" : "Đang hiển thị %@ hàng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在登录…" + "value" : "显示 %@ 行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在登入…" + "value" : "顯示 %@ 列" } } } }, - "Signs in to Cloudflare Access once and caches the token, so connecting doesn't open a browser." : { + "Showing %1$lld of %2$lld" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Cloudflare Access에 한 번 로그인하고 토큰을 캐시하므로 연결할 때 브라우저가 열리지 않습니다." + "value" : "전체 %2$lld개 중 %1$lld개 표시" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Cloudflare Access'e bir kez giriş yapar ve jetonu önbelleğe alır, böylece bağlanırken tarayıcı açılmaz." + "value" : "%2$lld öğeden %1$lld tanesi gösteriliyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đăng nhập Cloudflare Access một lần và lưu token vào bộ nhớ đệm, nên khi kết nối sẽ không mở trình duyệt." + "value" : "Đang hiển thị %1$lld trên %2$lld" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "登录 Cloudflare Access 一次并缓存令牌,连接时不再打开浏览器。" + "value" : "正在显示 %2$lld 中的 %1$lld 项" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "登入 Cloudflare Access 一次並快取權杖,這樣連線時就不會開啟瀏覽器。" + "value" : "正在顯示 %2$lld 中的 %1$lld 項" } } } }, - "Silent" : { + "Showing %lld ^[rows](inflect: true)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "알림 없음" + "value" : "%lld개 행 표시" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Silent" + "value" : "%lld satır gösteriliyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Im lặng" + "value" : "Đang hiển thị %lld dòng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "静默" + "value" : "显示 %lld 行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "靜音" + "value" : "顯示 %lld 列" } } } }, - "Single Quote '" : { + "Showing %lld of %lld" : { + "comment" : "A description of the number of visible databases in the sidebar. The first argument is the number of visible databases. The second argument is the number of all databases.", + "isCommentAutoGenerated" : true, "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Showing %1$lld of %2$lld" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "작은따옴표 '" + "value" : "전체 %2$lld개 중 %1$lld개 표시" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tek Tırnak '" + "value" : "%2$lld içinden %1$lld gösteriliyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dấu nháy đơn '" + "value" : "Đang hiện %1$lld trên %2$lld" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "单引号 '" + "value" : "正在显示 %1$lld / %2$lld" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "單引號 '" + "value" : "正在顯示 %1$lld / %2$lld" } } } }, - "Single-clicking a table opens a temporary tab that gets replaced on next click." : { + "Showing all databases" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블을 한 번 클릭하면 임시 탭에서 열리며, 다음 테이블을 클릭하면 대체됩니다." + "value" : "모든 데이터베이스 표시" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bir tabloya tek tıklamak, sonraki tıklamada yerini bırakan geçici bir sekme açar." + "value" : "Tüm veritabanları gösteriliyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhấp một lần vào bảng sẽ mở tab tạm thời, tab này sẽ được thay thế khi nhấp tiếp." + "value" : "Đang hiển thị tất cả cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "单击表时打开临时标签页,下次点击时会被替换。" + "value" : "正在显示所有数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "按一下資料表會開啟暫時分頁,下次按一下時會被取代。" + "value" : "正在顯示所有資料庫" } } } }, - "Size" : { + "Showing another result will discard all unsaved changes." : { + + }, + "Showing first %lld keys" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "크기" + "value" : "처음 %lld개 키 표시" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Boyut" + "value" : "İlk %lld anahtar gösteriliyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kích thước" + "value" : "Hiển thị %lld khóa đầu tiên" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "大小" + "value" : "显示前 %lld 个键" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "大小" + "value" : "顯示前 %lld 個鍵" } } } }, - "Size All Columns to Fit" : { + "Showing saved plugin list. %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 열을 내용에 맞게 조절" + "value" : "저장된 플러그인 목록을 표시합니다. %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm Sütunları Sığdır" + "value" : "Kaydedilmiş eklenti listesi gösteriliyor. %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tự điều chỉnh tất cả cột" + "value" : "Đang hiển thị danh sách plugin đã lưu. %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "自动调整所有列宽" + "value" : "正在显示已保存的插件列表。%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "自動調整所有欄位寬度" + "value" : "正在顯示已儲存的外掛清單。%@" } } } }, - "Size to Fit" : { + "Showing the first %@ series" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "내용에 맞게 조절" + "value" : "처음 %@개 계열을 표시 중" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sığdır" + "value" : "İlk %@ seri gösteriliyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tự điều chỉnh" + "value" : "Đang hiển thị %@ chuỗi đầu tiên" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "自动调整" + "value" : "显示前 %@ 个系列" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "自動調整大小" + "value" : "顯示前 %@ 個系列" } } } }, - "Size:" : { - "extractionState" : "stale", + "Showing the first %1$@ points of %2$@ loaded rows" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "크기:" + "value" : "불러온 %2$@행 중 처음 %1$@개 지점을 표시 중" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Size:" + "value" : "Yüklenen %2$@ satırın ilk %1$@ noktası gösteriliyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kích thước:" + "value" : "Đang hiển thị %1$@ điểm đầu tiên trong %2$@ hàng đã tải" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "大小:" + "value" : "显示已加载 %2$@ 行中的前 %1$@ 个点" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "大小:" + "value" : "顯示已載入 %2$@ 列中的前 %1$@ 個點" } } } }, - "Skip" : { + "Shows a type icon before each object name in the sidebar. Turn it off for a plain list of names." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "건너뛰기" + "value" : "사이드바에서 각 객체 이름 앞에 유형 아이콘을 표시합니다. 이름만 있는 단순한 목록을 사용하려면 끄십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Skip" + "value" : "Kenar çubuğunda her nesne adının önünde bir tür simgesi gösterir. Sade bir ad listesi için kapatın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bỏ qua" + "value" : "Hiện biểu tượng loại trước mỗi tên đối tượng trong thanh bên. Tắt đi để có danh sách tên đơn thuần." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "跳过" + "value" : "在侧边栏中每个对象名称前显示类型图标。关闭后只显示纯名称列表。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "略過" + "value" : "在側邊欄中每個物件名稱前顯示類型圖像。關閉後只顯示純名稱清單。" } } } }, - "Skip TLS Verification" : { + "Shows database object comments next to tables in the sidebar and in grid column headers." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "TLS 검증 건너뛰기" + "value" : "사이드바의 테이블 옆과 그리드 열 머리글에 데이터베이스 객체 주석을 표시합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "TLS Doğrulamasını Atla" + "value" : "Veritabanı nesne yorumlarını kenar çubuğundaki tabloların yanında ve tablo sütun başlıklarında gösterir." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bỏ qua xác minh TLS" + "value" : "Hiển thị ghi chú của đối tượng cơ sở dữ liệu cạnh các bảng trong thanh bên và trên tiêu đề cột của lưới." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "跳过 TLS 验证" + "value" : "在侧边栏的表旁边和数据网格列标题中显示数据库对象注释。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "略過 TLS 驗證" + "value" : "在側邊欄的資料表旁與資料格欄位標題中顯示資料庫物件註解。" } } } }, - "Skips foreign key constraint checks for this operation" : { - "extractionState" : "stale", + "Sidebar" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 작업에서 외래 키 제약 조건 검사를 건너뜁니다" + "value" : "사이드바" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu işlem için yabancı anahtar kısıtlaması denetimlerini atlar" + "value" : "Sidebar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bỏ qua kiểm tra ràng buộc khóa ngoại cho thao tác này" + "value" : "Thanh bên" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此操作将跳过外键约束检查" + "value" : "侧边栏" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此操作會跳過外鍵約束檢查" + "value" : "側邊欄" } } } }, - "Slash commands" : { + "Sidebar as List" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "슬래시 명령" + "value" : "목록형 사이드바" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eğik çizgi komutları" + "value" : "Sidebar'ı Liste Olarak Göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lệnh slash" + "value" : "Thanh bên dạng danh sách" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "斜杠命令" + "value" : "侧边栏显示为列表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "斜線命令" + "value" : "側邊欄顯示為清單" } } } }, - "Slow" : { - "extractionState" : "stale", + "Sidebar as Tree" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "느림" + "value" : "트리형 사이드바" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Slow" + "value" : "Sidebar'ı Ağaç Olarak Göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chậm" + "value" : "Thanh bên dạng cây" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "慢速" + "value" : "侧边栏显示为树状" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "慢速" + "value" : "側邊欄顯示為樹狀" } } } }, - "Slow Queries" : { + "Sidebar Layout" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "느린 쿼리" + "value" : "사이드바 레이아웃" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yavaş Sorgular" + "value" : "Sidebar Düzeni" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Truy vấn chậm" + "value" : "Bố cục thanh bên" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "慢查询" + "value" : "侧边栏布局" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "緩慢查詢" + "value" : "側邊欄版面配置" } } } }, - "Slowest" : { + "Sidebar Panel" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "가장 느림" + "value" : "사이드바 패널" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "En Yavaş" + "value" : "Sidebar Panel" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chậm nhất" + "value" : "Thanh bên" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "最慢" + "value" : "侧边栏" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "最慢" + "value" : "側邊欄" } } } }, - "Small" : { + "Sign In" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "작게" + "value" : "로그인" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Small" + "value" : "Giriş Yap" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhỏ" + "value" : "Đăng nhập" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "小" + "value" : "登录" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "小" + "value" : "登入" } } } }, - "Smart SQL Editor" : { + "Sign in to iCloud in System Settings to enable sync." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "스마트 SQL 편집기" + "value" : "동기화를 활성화하려면 시스템 설정에서 iCloud에 로그인하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Akıllı SQL Düzenleyici" + "value" : "Eşitlemeyi açmak için Sistem Ayarları'ndan iCloud'a giriş yapın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trình soạn SQL thông minh" + "value" : "Đăng nhập iCloud trong Cài đặt hệ thống để bật đồng bộ." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "智能 SQL 编辑器" + "value" : "请在系统设置中登录 iCloud 以启用同步。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "智慧 SQL 編輯器" + "value" : "請在系統設定中登入 iCloud 以啟用同步。" } } } }, - "Smart value detection" : { + "Sign in to iCloud to enable sync" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "스마트 값 감지" + "value" : "동기화를 활성화하려면 iCloud에 로그인하십시오" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Akıllı değer algılama" + "value" : "Eşitlemeyi açmak için iCloud'a giriş yapın" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhận dạng giá trị thông minh" + "value" : "Đăng nhập iCloud để bật đồng bộ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "智能值识别" + "value" : "登录 iCloud 以启用同步" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "智慧值偵測" + "value" : "登入 iCloud 以啟用同步" } } } }, - "Smooth" : { - "extractionState" : "stale", + "Sign in to Microsoft Entra ID with your browser?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "부드럽게" + "value" : "브라우저에서 Microsoft Entra ID에 로그인하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Smooth" + "value" : "Microsoft Entra ID'ye tarayıcınızla oturum açılsın mı?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mượt" + "value" : "Đăng nhập Microsoft Entra ID bằng trình duyệt?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "平滑" + "value" : "要用浏览器登录 Microsoft Entra ID 吗?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "平滑" + "value" : "要用瀏覽器登入 Microsoft Entra ID 嗎?" } } } }, - "Socket Path" : { + "Sign in to use your ChatGPT subscription" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "소켓 경로" + "value" : "ChatGPT 구독을 사용하려면 로그인하십시오" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Soket Yolu" + "value" : "ChatGPT aboneliğinizi kullanmak için giriş yapın" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đường dẫn socket" + "value" : "Đăng nhập để dùng gói đăng ký ChatGPT của bạn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Socket 路径" + "value" : "登录以使用你的 ChatGPT 订阅" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Socket 路徑" + "value" : "登入以使用你的 ChatGPT 訂閱" } } } }, - "Software Update" : { + "Sign In with Browser…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "소프트웨어 업데이트" + "value" : "브라우저로 로그인…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yazılım Güncellemesi" + "value" : "Tarayıcıyla Giriş Yap…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cập nhật phần mềm" + "value" : "Đăng nhập bằng trình duyệt…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "软件更新" + "value" : "通过浏览器登录…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "軟體更新" + "value" : "透過瀏覽器登入…" } } } }, - "Some columns in this preset don't exist in the current table" : { + "Sign in with ChatGPT" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 프리셋의 일부 열이 현재 테이블에 없습니다" + "value" : "ChatGPT로 로그인" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu ön ayardaki bazı sütunlar mevcut tabloda yok" + "value" : "ChatGPT ile giriş yap" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Một số cột trong bộ lọc không tồn tại trong bảng hiện tại" + "value" : "Đăng nhập bằng ChatGPT" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此预设中的某些列在当前表中不存在" + "value" : "使用 ChatGPT 登录" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此預設集中的某些欄位在目前資料表中不存在" + "value" : "使用 ChatGPT 登入" } } } }, - "Some passwords were not read. You can enter them in the connection editor after import." : { + "Sign in with Cursor" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "일부 암호를 읽지 못했습니다. 가져온 후 연결 편집기에서 입력할 수 있습니다." + "value" : "Cursor로 로그인" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bazı parolalar okunamadı. İçe aktarma sonrasında bunları bağlantı düzenleyicisinde girebilirsiniz." + "value" : "Cursor ile giriş yap" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Một số mật khẩu không đọc được. Bạn có thể điền lại trong trình sửa kết nối sau khi nhập xong." + "value" : "Đăng nhập bằng Cursor" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "部分密码未能读取。导入后可在连接编辑器中输入。" + "value" : "使用 Cursor 登录" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "部分密碼未能讀取。你可以在匯入後於連線編輯器中輸入。" + "value" : "使用 Cursor 登入" } } } }, - "Some tabs have unsaved edits. Quitting will discard these changes." : { + "Sign in with GitHub" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "일부 탭에 저장하지 않은 편집 내용이 있습니다. 종료하면 변경 사항이 폐기됩니다." + "value" : "GitHub로 로그인" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bazı sekmelerde kaydedilmemiş düzenlemeler var. Çıkmak bu değişiklikleri silecektir." + "value" : "GitHub ile Oturum Aç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Một số tab có chỉnh sửa chưa lưu. Thoát sẽ huỷ bỏ các thay đổi này." + "value" : "Đăng nhập bằng GitHub" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "部分标签页有未保存的编辑。退出将丢弃这些更改。" + "value" : "使用 GitHub 登录" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "部分分頁有未儲存的編輯。結束將捨棄這些變更。" + "value" : "使用 GitHub 登入" } } } }, - "Some values are set outside this file" : { + "Sign in with xAI" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "일부 값은 이 파일 외부에서 설정됩니다" + "value" : "xAI로 로그인" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bazı değerler bu dosyanın dışında ayarlanmış" + "value" : "xAI ile giriş yap" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Một số giá trị được đặt bên ngoài tệp này" + "value" : "Đăng nhập bằng xAI" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "部分值是在此文件之外设置的" + "value" : "使用 xAI 登录" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "部分值是在此檔案之外設定的" + "value" : "使用 xAI 登入" } } } }, - "Some values come from Ruby code and were not read" : { + "Sign Out" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "일부 값은 Ruby 코드에서 가져왔으며 읽지 못했습니다" + "value" : "로그아웃" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bazı değerler Ruby kodundan geliyor ve okunmadı" + "value" : "Oturumu Kapat" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Một số giá trị đến từ mã Ruby và không được đọc" + "value" : "Đăng xuất" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "部分值来自 Ruby 代码,未被读取" + "value" : "退出登录" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "部分值來自 Ruby 程式碼,未被讀取" + "value" : "登出" } } } }, - "Something went wrong (error %d). Try again in a moment." : { + "Sign-in cancelled" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "문제가 발생했습니다(오류 %d). 잠시 후 다시 시도하십시오." + "value" : "로그인이 취소되었습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bir hata oluştu (hata %d). Lütfen tekrar deneyin." + "value" : "Oturum açma iptal edildi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã xảy ra lỗi (mã %d). Vui lòng thử lại." + "value" : "Đăng nhập đã hủy" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "出错了(错误%d),请稍后重试。" + "value" : "登录已取消" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "發生錯誤(錯誤 %d)。請稍後再試。" + "value" : "登入已取消" } } } }, - "Something went wrong (error %lld). Try again in a moment." : { - "extractionState" : "stale", + "Sign-in could not be verified. Please try again." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "문제가 발생했습니다(오류 %lld). 잠시 후 다시 시도하십시오." + "value" : "로그인을 확인할 수 없습니다. 다시 시도하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bir sorun oluştu (hata %lld). Biraz sonra tekrar deneyin." + "value" : "Giriş doğrulanamadı. Lütfen tekrar deneyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã xảy ra lỗi (mã %lld). Vui lòng thử lại sau." + "value" : "Không thể xác minh đăng nhập. Vui lòng thử lại." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "出现问题(错误 %lld)。请稍后重试。" + "value" : "无法验证登录。请重试。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "發生錯誤(錯誤 %lld)。請稍後再試。" + "value" : "無法驗證登入。請再試一次。" } } } }, - "Sort Ascending" : { + "Sign-in timed out" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "오름차순 정렬" + "value" : "로그인 시간이 초과되었습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Artan Sırala" + "value" : "Oturum açma zaman aşımına uğradı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sắp xếp tăng dần" + "value" : "Đăng nhập hết thời gian chờ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "升序排列" + "value" : "登录超时" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "遞增排序" + "value" : "登入逾時" } } } }, - "Sort Descending" : { + "Sign-in timed out. Please try again." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "내림차순 정렬" + "value" : "로그인 시간이 초과되었습니다. 다시 시도하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Azalan Sırala" + "value" : "Giriş zaman aşımına uğradı. Lütfen tekrar deneyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sắp xếp giảm dần" + "value" : "Đăng nhập đã hết thời gian chờ. Vui lòng thử lại." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "降序排列" + "value" : "登录超时。请重试。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "遞減排序" + "value" : "登入逾時。請再試一次。" } } } }, - "Sorted ascending" : { + "Signed in" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "오름차순으로 정렬됨" + "value" : "로그인됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Artan sıralı" + "value" : "Giriş yapıldı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã sắp xếp tăng dần" + "value" : "Đã đăng nhập" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "升序排序" + "value" : "已登录" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已遞增排序" + "value" : "已登入" } } } }, - "Sorted descending" : { + "Signed In" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "내림차순으로 정렬됨" + "value" : "로그인 완료" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Azalan sıralı" + "value" : "Giriş Yapıldı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã sắp xếp giảm dần" + "value" : "Đã đăng nhập" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "降序排序" + "value" : "已登录" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已遞減排序" + "value" : "已登入" } } } }, - "Sorting will reload data and discard all unsaved changes." : { + "Signed in as %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "정렬하면 데이터를 다시 불러오고 저장하지 않은 모든 변경 사항이 폐기됩니다." + "value" : "%@ 계정으로 로그인됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sıralama verileri yeniden yükler ve kaydedilmemiş tüm değişiklikleri siler." + "value" : "%@ olarak oturum açıldı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sắp xếp sẽ tải lại dữ liệu và hủy tất cả thay đổi chưa lưu." + "value" : "Đã đăng nhập với %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "排序将重新加载数据并丢弃所有未保存的更改。" + "value" : "已登录为 %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "排序將重新載入資料並捨棄所有未儲存的變更。" + "value" : "已登入為 %@" } } } }, - "Source" : { + "Signed in as %@ on the %@ plan." : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Signed in as %1$@ on the %2$@ plan." + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "소스" + "value" : "%1$@ 계정으로 로그인했습니다. 현재 %2$@ 요금제를 사용 중입니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kaynak" + "value" : "%2$@ planıyla %1$@ olarak oturum açıldı." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nguồn" + "value" : "Đã đăng nhập với tên %1$@ trên gói %2$@." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "来源" + "value" : "已以 %1$@ 身份登录,使用 %2$@ 方案。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "來源" + "value" : "已以 %1$@ 身分登入,使用 %2$@ 方案。" } } } }, - "Source:" : { - "extractionState" : "stale", + "Signed in as %@." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "소스:" + "value" : "%@ 계정으로 로그인했습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Source:" + "value" : "%@ olarak oturum açıldı." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nguồn:" + "value" : "Đã đăng nhập với tên %@." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "来源:" + "value" : "已以 %@ 身份登录。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "來源:" + "value" : "已以 %@ 身分登入。" } } } }, - "Space" : { + "Signed in with Cursor" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "공백" + "value" : "Cursor로 로그인됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Boşluk" + "value" : "Cursor ile giriş yapıldı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khoảng trắng" + "value" : "Đã đăng nhập bằng Cursor" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "空格" + "value" : "已使用 Cursor 登录" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "空格" + "value" : "已使用 Cursor 登入" } } } }, - "Spacing" : { - "extractionState" : "stale", + "Signed in with xAI" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "간격" + "value" : "xAI로 로그인됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Spacing" + "value" : "xAI ile oturum açıldı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khoảng cách" + "value" : "Đã đăng nhập bằng xAI" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "间距" + "value" : "已使用 xAI 登录" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "間距" + "value" : "已使用 xAI 登入" } } } }, - "Spacious" : { + "Signed in." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "넓게" + "value" : "로그인했습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Spacious" + "value" : "Oturum açıldı." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Rộng rãi" + "value" : "Đã đăng nhập." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "宽松" + "value" : "已登录。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "寬鬆" + "value" : "已登入。" } } } }, - "Split" : { + "Signing in…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "분할" + "value" : "로그인 중…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ayır" + "value" : "Oturum açılıyor…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tách" + "value" : "Đang đăng nhập…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "拆分" + "value" : "正在登录…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "拆分" + "value" : "正在登入…" } } } }, - "Split Column…" : { + "Signs in to Cloudflare Access once and caches the token, so connecting doesn't open a browser." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열 분할…" + "value" : "Cloudflare Access에 한 번 로그인하고 토큰을 캐시하므로 연결할 때 브라우저가 열리지 않습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sütunu Ayır…" + "value" : "Cloudflare Access'e bir kez giriş yapar ve jetonu önbelleğe alır, böylece bağlanırken tarayıcı açılmaz." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tách cột…" + "value" : "Đăng nhập Cloudflare Access một lần và lưu token vào bộ nhớ đệm, nên khi kết nối sẽ không mở trình duyệt." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "拆分列…" + "value" : "登录 Cloudflare Access 一次并缓存令牌,连接时不再打开浏览器。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "拆分欄位…" + "value" : "登入 Cloudflare Access 一次並快取權杖,這樣連線時就不會開啟瀏覽器。" } } } }, - "Split each value into new columns at every match." : { + "Silent" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "일치할 때마다 각 값을 새 열로 분할합니다." + "value" : "알림 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Her değeri, her eşleşmede yeni sütunlara ayırır." + "value" : "Silent" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tách mỗi giá trị thành các cột mới tại mọi vị trí khớp." + "value" : "Im lặng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在每个匹配处将每个值拆分到新列中。" + "value" : "静默" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在每個符合處將每個值拆分到新欄位中。" + "value" : "靜音" } } } }, - "Split mode" : { - "comment" : "Accessibility label for the segmented control in the alert that allows the user to choose between using a delimiter or a regex to split the values in a column.", - "isCommentAutoGenerated" : true, + "Single Quote '" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "분할 모드" + "value" : "작은따옴표 '" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bölme modu" + "value" : "Tek Tırnak '" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chế độ tách" + "value" : "Dấu nháy đơn '" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "拆分方式" + "value" : "单引号 '" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "分割方式" + "value" : "單引號 '" } } } }, - "Split “%@”" : { + "Single-clicking a table opens a temporary tab that gets replaced on next click." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "“%@” 분할" + "value" : "테이블을 한 번 클릭하면 임시 탭에서 열리며, 다음 테이블을 클릭하면 대체됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "“%@” ayrılsın" + "value" : "Bir tabloya tek tıklamak, sonraki tıklamada yerini bırakan geçici bir sekme açar." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tách “%@”" + "value" : "Nhấp một lần vào bảng sẽ mở tab tạm thời, tab này sẽ được thay thế khi nhấp tiếp." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "拆分“%@”" + "value" : "单击表时打开临时标签页,下次点击时会被替换。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "拆分「%@」" + "value" : "按一下資料表會開啟暫時分頁,下次按一下時會被取代。" } } } }, - "Sponsor" : { + "Size" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "후원" + "value" : "크기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sponsor" + "value" : "Boyut" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tài trợ" + "value" : "Kích thước" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "赞助" + "value" : "大小" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "贊助" + "value" : "大小" } } } }, - "Sponsor TablePro" : { - "extractionState" : "stale", + "SIZE" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro 후원" + "value" : "크기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sponsor TablePro" + "value" : "SIZE" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tài trợ TablePro" + "value" : "KÍCH THƯỚC" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "赞助 TablePro" + "value" : "大小" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "贊助 TablePro" + "value" : "大小" } } } }, - "Standalone" : { + "Size All Columns to Fit" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "단독 실행" + "value" : "모든 열을 내용에 맞게 조절" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağımsız" + "value" : "Tüm Sütunları Sığdır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Độc lập" + "value" : "Tự điều chỉnh tất cả cột" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "单机" + "value" : "自动调整所有列宽" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "單機" + "value" : "自動調整所有欄位寬度" } } } }, - "Start recording queries again" : { + "Size to Fit" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 기록 재개" + "value" : "내용에 맞게 조절" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorguları yeniden kaydetmeye başla" + "value" : "Sığdır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bắt đầu ghi lại truy vấn" + "value" : "Tự điều chỉnh" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重新开始记录查询" + "value" : "自动调整" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重新開始記錄查詢" + "value" : "自動調整大小" } } } }, - "Starter" : { + "Size:" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Starter" + "value" : "크기:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Starter" + "value" : "Size:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Starter" + "value" : "Kích thước:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Starter" + "value" : "大小:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Starter" + "value" : "大小:" } } } }, - "Starting service…" : { + "Skip" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "서비스 시작 중…" + "value" : "건너뛰기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Servis başlatılıyor…" + "value" : "Skip" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang khởi động dịch vụ…" + "value" : "Bỏ qua" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在启动服务…" + "value" : "跳过" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在啟動服務…" + "value" : "略過" } } } }, - "Starting…" : { + "Skip and continue" : { + + }, + "Skip TLS Verification" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "시작 중…" + "value" : "TLS 검증 건너뛰기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Başlatılıyor…" + "value" : "TLS Doğrulamasını Atla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang khởi động…" + "value" : "Bỏ qua xác minh TLS" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在启动…" + "value" : "跳过 TLS 验证" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在啟動…" + "value" : "略過 TLS 驗證" } } } }, - "Starts and stops `cloudflared access tcp` with this connection and routes it through a local port." : { + "Skips foreign key constraint checks for this operation" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 연결과 함께 `cloudflared access tcp`를 시작 및 중지하고 로컬 포트를 통해 라우팅합니다." + "value" : "이 작업에서 외래 키 제약 조건 검사를 건너뜁니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "`cloudflared access tcp` komutunu bu bağlantıyla birlikte başlatıp durdurur ve bağlantıyı yerel bir port üzerinden yönlendirir." + "value" : "Bu işlem için yabancı anahtar kısıtlaması denetimlerini atlar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khởi động và dừng `cloudflared access tcp` cùng kết nối này và định tuyến qua một cổng cục bộ." + "value" : "Bỏ qua kiểm tra ràng buộc khóa ngoại cho thao tác này" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "随此连接启动和停止 `cloudflared access tcp`,并通过本地端口路由。" + "value" : "此操作将跳过外键约束检查" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "隨此連線啟動和停止 `cloudflared access tcp`,並透過本機連接埠路由。" + "value" : "此操作會跳過外鍵約束檢查" } } } }, - "Starts and stops the Cloud SQL Auth Proxy with this connection and routes it through a local port." : { + "Slash commands" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 연결과 함께 Cloud SQL Auth Proxy를 시작 및 중지하고 로컬 포트를 통해 라우팅합니다." + "value" : "슬래시 명령" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Cloud SQL Auth Proxy'yi bu bağlantıyla birlikte başlatıp durdurur ve bağlantıyı yerel bir port üzerinden yönlendirir." + "value" : "Eğik çizgi komutları" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khởi động và dừng Cloud SQL Auth Proxy cùng với kết nối này, đồng thời định tuyến qua một cổng cục bộ." + "value" : "Lệnh slash" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "随此连接启动和停止 Cloud SQL Auth Proxy,并通过本地端口转发。" + "value" : "斜杠命令" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "隨此連線啟動與停止 Cloud SQL Auth Proxy,並透過本機連接埠轉送。" + "value" : "斜線命令" } } } }, - "Startup Commands" : { + "Slow" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "시작 명령" + "value" : "느림" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Başlangıç Komutları" + "value" : "Slow" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lệnh khởi động" + "value" : "Chậm" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "启动命令" + "value" : "慢速" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "啟動指令" + "value" : "慢速" } } } }, - "Startup SQL" : { - "comment" : "A section header for the startup SQL commands of a connection.", - "isCommentAutoGenerated" : true, + "Slow Queries" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "시작 SQL" + "value" : "느린 쿼리" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Başlangıç SQL" + "value" : "Yavaş Sorgular" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "SQL khởi động" + "value" : "Truy vấn chậm" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "启动 SQL" + "value" : "慢查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "啟動 SQL" + "value" : "緩慢查詢" } } } }, - "State" : { + "Slow queries the server recorded" : { + + }, + "Slowest" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "상태" + "value" : "가장 느림" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Durum" + "value" : "En Yavaş" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trạng thái" + "value" : "Chậm nhất" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "状态" + "value" : "最慢" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "狀態" + "value" : "最慢" } } } }, - "Statement %lld" : { - "extractionState" : "stale", + "Small" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SQL 문 %lld" + "value" : "작게" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "ifade %lld" + "value" : "Small" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Câu lệnh %lld" + "value" : "Nhỏ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "语句 %lld" + "value" : "小" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "陳述式 %lld" + "value" : "小" } } } }, - "Statement %lld of %lld" : { - "extractionState" : "stale", + "Smart SQL Editor" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Statement %1$lld of %2$lld" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "전체 %2$lld개 중 %1$lld번째 SQL 문" + "value" : "스마트 SQL 편집기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "ifade %lld / %lld" + "value" : "Akıllı SQL Düzenleyici" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Câu lệnh %1$lld / %2$lld" + "value" : "Trình soạn SQL thông minh" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "语句 %lld / %lld" + "value" : "智能 SQL 编辑器" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "陳述式 %1$lld / %2$lld" + "value" : "智慧 SQL 編輯器" } } } }, - "Statement:" : { - "extractionState" : "stale", + "Smart value detection" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SQL 문:" + "value" : "스마트 값 감지" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Statement:" + "value" : "Akıllı değer algılama" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Câu lệnh:" + "value" : "Nhận dạng giá trị thông minh" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "语句:" + "value" : "智能值识别" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "陳述式:" + "value" : "智慧值偵測" } } } }, - "Status" : { + "Smooth" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "상태" + "value" : "부드럽게" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Durum" + "value" : "Smooth" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trạng thái" + "value" : "Mượt" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "状态" + "value" : "平滑" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "狀態" + "value" : "平滑" } } } }, - "Status Colors" : { + "Socket Path" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "상태 색상" + "value" : "소켓 경로" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Durum Renkleri" + "value" : "Soket Yolu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Màu trạng thái" + "value" : "Đường dẫn socket" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "状态颜色" + "value" : "Socket 路径" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "狀態顏色" + "value" : "Socket 路徑" } } } }, - "Status Dot" : { - "extractionState" : "stale", + "SOCKS Proxy" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "상태 표시점" + "value" : "SOCKS 프록시" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Status Dot" + "value" : "SOCKS Proxy" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chấm trạng thái" + "value" : "SOCKS Proxy" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "状态指示点" + "value" : "SOCKS 代理" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "狀態指示點" + "value" : "SOCKS 代理" } } } }, - "Status:" : { + "SOCKS proxy disconnected. Click to reconnect." : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Status:" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "상태:" + "value" : "SOCKS 프록시 연결이 끊어졌습니다. 클릭하여 다시 연결하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Durum:" + "value" : "SOCKS proxy bağlantısı kesildi. Yeniden bağlanmak için tıklayın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trạng thái:" + "value" : "SOCKS proxy đã ngắt kết nối. Nhấn để kết nối lại." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "状态:" + "value" : "SOCKS 代理已断开。点按可重新连接。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "狀態:" + "value" : "SOCKS 代理已中斷連線。點按即可重新連線。" } } } }, - "Status: active" : { + "SOCKS proxy host is required" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "상태: 활성" + "value" : "SOCKS 프록시 호스트가 필요합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Durum: aktif" + "value" : "SOCKS proxy sunucusu gerekli" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trạng thái: đang hoạt động" + "value" : "Cần nhập máy chủ SOCKS proxy" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "状态:活动" + "value" : "需要填写 SOCKS 代理主机" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "狀態:使用中" + "value" : "需要填寫 SOCKS 代理主機" } } } }, - "Status: error" : { + "SOCKS proxy port must be between 1 and 65535" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "상태: 오류" + "value" : "SOCKS 프록시 포트는 1~65535 사이여야 합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Durum: hata" + "value" : "SOCKS proxy portu 1 ile 65535 arasında olmalı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trạng thái: lỗi" + "value" : "Cổng SOCKS proxy phải nằm trong khoảng 1 đến 65535" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "状态:错误" + "value" : "SOCKS 代理端口必须在 1 到 65535 之间" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "狀態:錯誤" + "value" : "SOCKS 代理連接埠必須介於 1 到 65535 之間" } } } }, - "Status: expired" : { + "Software Update" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "상태: 만료됨" + "value" : "소프트웨어 업데이트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Durum: süresi dolmuş" + "value" : "Yazılım Güncellemesi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trạng thái: đã hết hạn" + "value" : "Cập nhật phần mềm" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "状态:已过期" + "value" : "软件更新" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "狀態:已過期" + "value" : "軟體更新" } } } }, - "Status: failed" : { + "Some columns in this preset don't exist in the current table" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "상태: 실패" + "value" : "이 프리셋의 일부 열이 현재 테이블에 없습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Durum: başarısız" + "value" : "Bu ön ayardaki bazı sütunlar mevcut tabloda yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trạng thái: thất bại" + "value" : "Một số cột trong bộ lọc không tồn tại trong bảng hiện tại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "状态:失败" + "value" : "此预设中的某些列在当前表中不存在" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "狀態:失敗" + "value" : "此預設集中的某些欄位在目前資料表中不存在" } } } }, - "Status: revoked" : { + "Some passwords were not read. You can enter them in the connection editor after import." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "상태: 철회됨" + "value" : "일부 암호를 읽지 못했습니다. 가져온 후 연결 편집기에서 입력할 수 있습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Durum: iptal edildi" + "value" : "Bazı parolalar okunamadı. İçe aktarma sonrasında bunları bağlantı düzenleyicisinde girebilirsiniz." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trạng thái: đã thu hồi" + "value" : "Một số mật khẩu không đọc được. Bạn có thể điền lại trong trình sửa kết nối sau khi nhập xong." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "状态:已撤销" + "value" : "部分密码未能读取。导入后可在连接编辑器中输入。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "狀態:已撤銷" + "value" : "部分密碼未能讀取。你可以在匯入後於連線編輯器中輸入。" } } } }, - "Status: running" : { + "Some tables have not been compared with the columns now chosen." : { + + }, + "Some tabs have unsaved edits. Quitting will discard these changes." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "상태: 실행 중" + "value" : "일부 탭에 저장하지 않은 편집 내용이 있습니다. 종료하면 변경 사항이 폐기됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Durum: çalışıyor" + "value" : "Bazı sekmelerde kaydedilmemiş düzenlemeler var. Çıkmak bu değişiklikleri silecektir." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trạng thái: đang chạy" + "value" : "Một số tab có chỉnh sửa chưa lưu. Thoát sẽ huỷ bỏ các thay đổi này." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "状态:运行中" + "value" : "部分标签页有未保存的编辑。退出将丢弃这些更改。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "狀態:執行中" + "value" : "部分分頁有未儲存的編輯。結束將捨棄這些變更。" } } } }, - "Status: starting" : { + "Some values are set outside this file" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "상태: 시작 중" + "value" : "일부 값은 이 파일 외부에서 설정됩니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Durum: başlatılıyor" + "value" : "Bazı değerler bu dosyanın dışında ayarlanmış" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trạng thái: đang khởi động" + "value" : "Một số giá trị được đặt bên ngoài tệp này" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "状态:启动中" + "value" : "部分值是在此文件之外设置的" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "狀態:啟動中" + "value" : "部分值是在此檔案之外設定的" } } } }, - "Status: stopped" : { + "Some values come from Ruby code and were not read" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "상태: 중지됨" + "value" : "일부 값은 Ruby 코드에서 가져왔으며 읽지 못했습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Durum: durduruldu" + "value" : "Bazı değerler Ruby kodundan geliyor ve okunmadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trạng thái: đã dừng" + "value" : "Một số giá trị đến từ mã Ruby và không được đọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "状态:已停止" + "value" : "部分值来自 Ruby 代码,未被读取" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "狀態:已停止" + "value" : "部分值來自 Ruby 程式碼,未被讀取" } } } }, - "Status: success" : { + "Something went wrong (error %d). Try again in a moment." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "상태: 성공" + "value" : "문제가 발생했습니다(오류 %d). 잠시 후 다시 시도하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Durum: başarılı" + "value" : "Bir hata oluştu (hata %d). Lütfen tekrar deneyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trạng thái: thành công" + "value" : "Đã xảy ra lỗi (mã %d). Vui lòng thử lại." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "状态:成功" + "value" : "出错了(错误%d),请稍后重试。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "狀態:成功" + "value" : "發生錯誤(錯誤 %d)。請稍後再試。" } } } }, - "Status: warning" : { + "Something went wrong (error %lld). Try again in a moment." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "상태: 경고" + "value" : "문제가 발생했습니다(오류 %lld). 잠시 후 다시 시도하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Durum: uyarı" + "value" : "Bir sorun oluştu (hata %lld). Biraz sonra tekrar deneyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trạng thái: cảnh báo" + "value" : "Đã xảy ra lỗi (mã %lld). Vui lòng thử lại sau." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "状态:警告" + "value" : "出现问题(错误 %lld)。请稍后重试。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "狀態:警告" + "value" : "發生錯誤(錯誤 %lld)。請稍後再試。" } } } }, - "Step" : { + "Sort Ascending" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "단계" + "value" : "오름차순 정렬" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Adım" + "value" : "Artan Sırala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bước" + "value" : "Sắp xếp tăng dần" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "步骤" + "value" : "升序排列" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "步驟" + "value" : "遞增排序" } } } }, - "Steps to Reproduce" : { - "extractionState" : "stale", + "Sort columns in priority order" : { + + }, + "Sort Descending" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "재현 단계" + "value" : "내림차순 정렬" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeniden Üretme Adımları" + "value" : "Azalan Sırala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Các bước tái hiện" + "value" : "Sắp xếp giảm dần" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重现步骤" + "value" : "降序排列" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重現步驟" + "value" : "遞減排序" } } } }, - "Stop" : { + "Sort direction (default ascending)" : { + + }, + "Sorted ascending" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "중지" + "value" : "오름차순으로 정렬됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Stop" + "value" : "Artan sıralı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dừng" + "value" : "Đã sắp xếp tăng dần" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "停止" + "value" : "升序排序" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "停止" + "value" : "已遞增排序" } } } }, - "Stop Export?" : { + "Sorted descending" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "내보내기를 중지하시겠습니까?" + "value" : "내림차순으로 정렬됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dışa Aktarma Durdurulsun mu?" + "value" : "Azalan sıralı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dừng xuất?" + "value" : "Đã sắp xếp giảm dần" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "停止导出?" + "value" : "降序排序" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "停止匯出?" + "value" : "已遞減排序" } } } }, - "Stop Generating" : { + "Sorting will reload data and discard all unsaved changes." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "생성 중지" + "value" : "정렬하면 데이터를 다시 불러오고 저장하지 않은 모든 변경 사항이 폐기됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Üretmeyi Durdur" + "value" : "Sıralama verileri yeniden yükler ve kaydedilmemiş tüm değişiklikleri siler." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dừng tạo phản hồi" + "value" : "Sắp xếp sẽ tải lại dữ liệu và hủy tất cả thay đổi chưa lưu." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "停止生成" + "value" : "排序将重新加载数据并丢弃所有未保存的更改。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "停止生成" + "value" : "排序將重新載入資料並捨棄所有未儲存的變更。" } } } }, - "Stop Trusting" : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "신뢰 해제" - } - } - } + "source" : { + }, - "Stop recording queries on this Mac" : { + "Source" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 Mac에서 쿼리 기록 중지" + "value" : "소스" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu Mac'te sorgu kaydını durdur" + "value" : "Kaynak" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ngừng ghi truy vấn trên máy Mac này" + "value" : "Nguồn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "停止在这台 Mac 上记录查询" + "value" : "来源" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "停止在這台 Mac 上記錄查詢" - } - } - } - }, - "Stop trusting %@?" : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "%@에 대한 신뢰를 해제하시겠습니까?" + "value" : "來源" } } } }, - "Stop trusting this developer?" : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "이 개발자에 대한 신뢰를 해제하시겠습니까?" - } - } - } + "Source Unavailable" : { + }, - "Stopped" : { + "Source:" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "중지됨" + "value" : "소스:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Durduruldu" + "value" : "Source:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã dừng" + "value" : "Nguồn:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已停止" + "value" : "来源:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已停止" + "value" : "來源:" } } } }, - "Stored in the macOS Keychain and written to a temporary file only while the proxy runs." : { + "Space" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "macOS 키체인에 저장되며, 프록시가 실행되는 동안에만 임시 파일에 기록됩니다." + "value" : "공백" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "macOS Keychain'de saklanır ve yalnızca proxy çalışırken geçici bir dosyaya yazılır." + "value" : "Boşluk" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Được lưu trong macOS Keychain và chỉ ghi ra tệp tạm khi proxy đang chạy." + "value" : "Khoảng trắng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "保存在 macOS 钥匙串中,仅在代理运行期间写入临时文件。" + "value" : "空格" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "儲存在 macOS 鑰匙圈中,僅在代理執行期間寫入暫存檔案。" + "value" : "空格" } } } }, - "Streaming failed: %@" : { + "Spacing" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "스트리밍 실패: %@" + "value" : "간격" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Akış başarısız: %@" + "value" : "Spacing" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phát trực tuyến thất bại: %@" + "value" : "Khoảng cách" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "流式传输失败:%@" + "value" : "间距" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "串流失敗:%@" + "value" : "間距" } } } }, - "String" : { + "Spacious" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "문자열" + "value" : "넓게" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "String" + "value" : "Spacious" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuỗi" + "value" : "Rộng rãi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "字符串" + "value" : "宽松" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "字串" + "value" : "寬鬆" } } } }, - "Structure" : { + "Split" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "구조" + "value" : "분할" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Structure" + "value" : "Ayır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cấu trúc" + "value" : "Tách" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "结构" + "value" : "拆分" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "結構" + "value" : "拆分" } } } }, - "Structure Changes" : { + "Split “%@”" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "구조 변경 사항" + "value" : "“%@” 분할" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yapı Değişiklikleri" + "value" : "“%@” ayrılsın" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thay đổi cấu trúc" + "value" : "Tách “%@”" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "结构更改" + "value" : "拆分“%@”" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "結構變更" + "value" : "拆分「%@」" } } } }, - "Structure, Drop, and Data options are configured per table in the table list." : { - "extractionState" : "stale", + "Split Column…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "구조, 삭제 및 데이터 옵션은 테이블 목록에서 각 테이블별로 구성합니다." + "value" : "열 분할…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Structure, Drop, and Data options are configured per table in the table list." + "value" : "Sütunu Ayır…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tùy chọn Cấu trúc, Xóa và Dữ liệu được cấu hình cho từng bảng trong danh sách bảng." + "value" : "Tách cột…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "结构、删除和数据选项在表列表中按表单独配置。" + "value" : "拆分列…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "結構、刪除與資料選項會在資料表清單中針對每個資料表個別設定。" + "value" : "拆分欄位…" } } } }, - "Structured data format. Ideal for APIs and web applications." : { + "Split each value into new columns at every match." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "구조화된 데이터 형식입니다. API와 웹 애플리케이션에 적합합니다." + "value" : "일치할 때마다 각 값을 새 열로 분할합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yapılandırılmış veri biçimi. API'ler ve web uygulamaları için ideal." + "value" : "Her değeri, her eşleşmede yeni sütunlara ayırır." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Định dạng dữ liệu có cấu trúc. Lý tưởng cho API và ứng dụng web." + "value" : "Tách mỗi giá trị thành các cột mới tại mọi vị trí khớp." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "结构化数据格式。适用于 API 和 Web 应用。" + "value" : "在每个匹配处将每个值拆分到新列中。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "結構化資料格式。適合用於 API 與網頁應用程式。" + "value" : "在每個符合處將每個值拆分到新欄位中。" } } } }, - "Submit" : { - "extractionState" : "stale", + "Split mode" : { + "comment" : "Accessibility label for the segmented control in the alert that allows the user to choose between using a delimiter or a regex to split the values in a column.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "제출" + "value" : "분할 모드" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Gönder" + "value" : "Bölme modu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gửi" + "value" : "Chế độ tách" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "提交" + "value" : "拆分方式" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "提交" + "value" : "分割方式" } } } }, - "Submit Another" : { - "extractionState" : "stale", + "Sponsor" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다른 항목 제출" + "value" : "후원" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bir Tane Daha Gönder" + "value" : "Sponsor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gửi tiếp" + "value" : "Tài trợ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "提交另一个" + "value" : "赞助" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "再提交一筆" + "value" : "贊助" } } } }, - "Submitting..." : { + "Sponsor TablePro" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "제출 중..." + "value" : "TablePro 후원" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Gönderiliyor..." + "value" : "Sponsor TablePro" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang gửi..." + "value" : "Tài trợ TablePro" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在提交…" + "value" : "赞助 TablePro" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在提交…" + "value" : "贊助 TablePro" } } } }, - "Succeeded" : { + "SQL" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "성공" + "value" : "SQL" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Başarılı" + "value" : "SQL" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thành công" + "value" : "SQL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "成功" + "value" : "SQL" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "成功" + "value" : "SQL" } } } }, - "Success" : { + "SQL commands to run after connecting, e.g. SET time_zone = 'Asia/Ho_Chi_Minh'. One per line or separated by semicolons." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "성공" + "value" : "연결 후 실행할 SQL 명령입니다(예: SET time_zone = 'Asia/Ho_Chi_Minh'). 한 줄에 하나씩 입력하거나 세미콜론으로 구분하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Başarılı" + "value" : "Bağlandıktan sonra çalıştırılacak SQL komutları, örneğin SET time_zone = 'Asia/Ho_Chi_Minh'. Her satıra bir tane yazın veya noktalı virgülle ayırın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thành công" + "value" : "Các lệnh SQL chạy sau khi kết nối, ví dụ SET time_zone = 'Asia/Ho_Chi_Minh'. Mỗi dòng một lệnh hoặc phân cách bằng dấu chấm phẩy." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "成功" + "value" : "连接后执行的 SQL 命令,例如 SET time_zone = 'Asia/Ho_Chi_Minh'。每行一条或用分号分隔。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "成功" + "value" : "連線後執行的 SQL 指令,例如 SET time_zone = 'Asia/Ho_Chi_Minh'。每行一條或以分號分隔。" } } } }, - "Suggest optimizations for the current query" : { + "SQL Dialect" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "현재 쿼리의 최적화 제안" + "value" : "SQL 방언" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geçerli sorgu için optimizasyon öner" + "value" : "SQL Dialect" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gợi ý tối ưu cho truy vấn hiện tại" + "value" : "Phương ngữ SQL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "为当前查询提供优化建议" + "value" : "SQL 方言" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "為目前的查詢提供最佳化建議" + "value" : "SQL 方言" } } } }, - "Suggested Actions" : { + "SQL dialect for %@ is not available. The plugin may not be installed or loaded." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "제안된 작업" + "value" : "%@용 SQL 방언을 사용할 수 없습니다. 플러그인이 설치되지 않았거나 로드되지 않았을 수 있습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Önerilen İşlemler" + "value" : "%@ için SQL diyalekti kullanılamıyor. Eklenti kurulmamış veya yüklenmemiş olabilir." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hành động gợi ý" + "value" : "Không có dialect SQL cho %@. Plugin có thể chưa được cài đặt hoặc tải." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "建议的操作" + "value" : "%@ 的 SQL 方言不可用。插件可能未安装或未加载。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "建議的操作" + "value" : "%@ 的 SQL 方言無法使用。外掛可能尚未安裝或載入。" } } } }, - "Suspended" : { + "SQL Editor" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "일시 중단됨" + "value" : "SQL 편집기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Suspended" + "value" : "SQL Düzenleyici" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tạm ngưng" + "value" : "Trình soạn thảo SQL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已暂停" + "value" : "SQL 编辑器" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已暫停" + "value" : "SQL 編輯器" } } } }, - "Switch" : { + "SQL Functions" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "전환" + "value" : "SQL 함수" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Değiştir" + "value" : "SQL Fonksiyonları" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển" + "value" : "Hàm SQL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "切换" + "value" : "SQL 函数" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "切換" + "value" : "SQL 函式" } } } }, - "Switch %@" : { + "SQL import is not supported for %@ connections." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 전환" + "value" : "%@ 연결에서는 SQL 가져오기를 지원하지 않습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ Değiştir" + "value" : "%@ bağlantıları için SQL içe aktarma desteklenmiyor." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển %@" + "value" : "Nhập SQL không được hỗ trợ cho kết nối %@." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "切换 %@" + "value" : "不支持对 %@ 连接进行 SQL 导入。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "切換 %@" + "value" : "%@ 連線不支援 SQL 匯入。" } } } }, - "Switch Connection" : { + "SQL INSERT statements. Use to recreate data in another database." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 전환" + "value" : "SQL INSERT 문입니다. 다른 데이터베이스에 데이터를 다시 생성할 때 사용합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı Değiştir" + "value" : "SQL INSERT ifadeleri. Başka bir veritabanında veri yeniden oluşturmak için kullanın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển kết nối" + "value" : "Câu lệnh SQL INSERT. Dùng để tạo lại dữ liệu trong cơ sở dữ liệu khác." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "切换连接" + "value" : "SQL INSERT 语句。用于在其他数据库中重建数据。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "切換連線" + "value" : "SQL INSERT 陳述式。用於在其他資料庫中重建資料。" } } } }, - "Switch Connection (⌘⌥C)" : { - "extractionState" : "stale", + "SQL is too long: %d characters (limit %d)" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "SQL is too long: %1$d characters (limit %2$d)" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 전환 (⌘⌥C)" + "value" : "SQL이 너무 깁니다: %1$d자(제한: %2$d자)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Switch Connection (⌘⌥C)" + "value" : "SQL çok uzun: %d karakter (sınır %d)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển kết nối (⌘⌥C)" + "value" : "SQL quá dài: %d ký tự (giới hạn %d)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "切换连接 (⌘⌥C)" + "value" : "SQL 过长:%d 个字符(上限 %d)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "切換連線 (⌘⌥C)" + "value" : "SQL 過長:%1$d 個字(上限 %2$d)" } } } }, - "Switch Connection…" : { + "SQL or NoSQL query text" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 전환…" + "value" : "SQL 또는 NoSQL 쿼리 텍스트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı Değiştir…" + "value" : "SQL veya NoSQL sorgu metni" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển kết nối…" + "value" : "Nội dung truy vấn SQL hoặc NoSQL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "切换连接…" + "value" : "SQL 或 NoSQL 查询文本" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "切換連線…" + "value" : "SQL 或 NoSQL 查詢文字" } } } }, - "Switch Database" : { + "SQL Preview" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 전환" + "value" : "SQL 미리보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı Değiştir" + "value" : "SQL Önizleme" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển cơ sở dữ liệu" + "value" : "Xem trước SQL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "切换数据库" + "value" : "SQL 预览" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "切換資料庫" + "value" : "SQL 預覽" } } } }, - "Switch Database (⌘K)" : { - "extractionState" : "stale", + "SQL Query" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 전환 (⌘K)" + "value" : "SQL 쿼리" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Switch Database (⌘K)" + "value" : "SQL Sorgusu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển cơ sở dữ liệu (⌘K)" + "value" : "Truy vấn SQL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "切换数据库 (⌘K)" + "value" : "SQL 查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "切換資料庫 (⌘K)" + "value" : "SQL 查詢" } } } }, - "Switch Failed" : { + "SQL query editor" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "전환 실패" + "value" : "SQL 쿼리 편집기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geçiş Başarısız Oldu" + "value" : "SQL sorgu düzenleyicisi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển thất bại" + "value" : "Trình soạn truy vấn SQL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "切换失败" + "value" : "SQL 查询编辑器" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "切換失敗" + "value" : "SQL 查詢編輯器" } } } }, - "Switch First Row Between Header and Data" : { + "SQL query to export results from" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "첫 번째 행을 머리글과 데이터 간에 전환" + "value" : "결과를 내보낼 SQL 쿼리" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İlk Satırı Başlık ve Veri Arasında Değiştir" + "value" : "Sonuçları dışa aktarılacak SQL sorgusu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển hàng đầu giữa tiêu đề và dữ liệu" + "value" : "Truy vấn SQL để xuất kết quả" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在标题行与数据行之间切换第一行" + "value" : "要导出结果的 SQL 查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在標題列與資料列之間切換第一列" + "value" : "要匯出結果的 SQL 查詢" } } } }, - "Switch First Row Between Header/Data" : { + "SQL Server" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "첫 번째 행을 머리글/데이터 간에 전환" + "value" : "SQL Server" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İlk Satırı Başlık/Veri Arasında Değiştir" + "value" : "SQL Server" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển dòng đầu giữa tiêu đề và dữ liệu" + "value" : "SQL Server" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将首行在表头与数据之间切换" + "value" : "SQL Server" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將首列在標題與資料之間切換" + "value" : "SQL Server" } } } }, - "Switch Schema" : { + "SQL Server connections use the system trust store. Per-connection CA and client certificate paths are not supported by FreeTDS dblib; configure them in `freetds.conf` if you need a custom trust anchor." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "스키마 전환" + "value" : "SQL Server 연결은 시스템 신뢰 저장소를 사용합니다. FreeTDS dblib은 연결별 CA 및 클라이언트 인증서 경로를 지원하지 않습니다. 사용자 지정 신뢰 앵커가 필요한 경우 `freetds.conf`에서 구성하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Şema Değiştir" + "value" : "SQL Server bağlantıları sistem güven deposunu kullanır. FreeTDS dblib, bağlantıya özel CA ve istemci sertifikası yollarını desteklemez; özel bir güven kaynağına ihtiyacınız varsa bunları `freetds.conf` dosyasında yapılandırın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển schema" + "value" : "Kết nối SQL Server dùng kho tin cậy của hệ thống. FreeTDS dblib không hỗ trợ đường dẫn CA và chứng chỉ client theo từng kết nối; hãy cấu hình trong `freetds.conf` nếu bạn cần trust anchor tùy chỉnh." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "切换 Schema" + "value" : "SQL Server 连接使用系统信任存储。FreeTDS dblib 不支持按连接配置 CA 和客户端证书路径;如需自定义信任锚,请在 `freetds.conf` 中配置。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "切換綱要" + "value" : "SQL Server 連線使用系統信任存放區。FreeTDS dblib 不支援按連線設定 CA 和用戶端憑證路徑;如果你需要自訂信任錨點,請在 `freetds.conf` 中設定。" } } } }, - "Switch connection" : { - "extractionState" : "stale", + "SQLite is file-based" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 전환" + "value" : "SQLite는 파일 기반입니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Switch connection" + "value" : "SQLite dosya tabanlıdır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển kết nối" + "value" : "SQLite dựa trên tệp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "切换连接" + "value" : "SQLite 基于文件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "切換連線" + "value" : "SQLite 以檔案為基礎" } } } }, - "Switch the active database on a connection" : { + "sqlite3 is included with macOS" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결의 활성 데이터베이스를 전환합니다" + "value" : "sqlite3는 macOS에 포함되어 있습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bir bağlantıdaki etkin veritabanını değiştirir" + "value" : "sqlite3 macOS ile birlikte gelir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển cơ sở dữ liệu đang hoạt động trên một kết nối" + "value" : "sqlite3 đã có sẵn trên macOS" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "切换连接的活动数据库" + "value" : "sqlite3 已包含在 macOS 中" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "切換連線上使用中的資料庫" + "value" : "sqlite3 已內建於 macOS" } } } }, - "Switch the active schema on a connection" : { + "SSH" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결의 활성 스키마를 전환합니다" + "value" : "SSH" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bir bağlantıdaki etkin şemayı değiştirir" + "value" : "SSH" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển schema đang hoạt động trên một kết nối" + "value" : "SSH" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "切换连接的活动 Schema" + "value" : "SSH" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "切換連線上使用中的綱要" + "value" : "SSH" } } } }, - "Switch to Inline Configuration" : { + "SSH Agent" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Switch to Inline Configuration" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "인라인 구성으로 전환" + "value" : "SSH 에이전트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satır İçi Yapılandırmaya Geç" + "value" : "SSH Aracısı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển sang cấu hình nội tuyến" + "value" : "SSH Agent" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "切换为内联配置" + "value" : "SSH Agent" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "切換為內嵌設定" + "value" : "SSH Agent" } } } }, - "Switch to Tab" : { + "SSH agent did not authenticate. Run ssh-add -l to check loaded keys." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "탭으로 전환" + "value" : "SSH 에이전트가 인증하지 못했습니다. ssh-add -l을 실행하여 로드된 키를 확인하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sekmeye Geç" + "value" : "SSH aracısı kimlik doğrulaması yapmadı. Yüklü anahtarları denetlemek için ssh-add -l komutunu çalıştırın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển đến tab" + "value" : "SSH agent không xác thực được. Chạy ssh-add -l để kiểm tra các khóa đã nạp." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "切换到标签页" + "value" : "SSH 代理未通过身份验证。运行 ssh-add -l 检查已加载的密钥。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "切換到分頁" + "value" : "SSH 代理未通過驗證。請執行 ssh-add -l 檢查已載入的金鑰。" } } } }, - "Switch to this database before executing" : { - "extractionState" : "stale", + "SSH authentication cancelled." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "실행 전에 이 데이터베이스로 전환" + "value" : "SSH 인증이 취소되었습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yürütmeden önce bu veritabanına geç" + "value" : "SSH kimlik doğrulaması iptal edildi." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển sang cơ sở dữ liệu này trước khi thực thi" + "value" : "Đã hủy xác thực SSH." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "执行前切换到此数据库" + "value" : "SSH 认证已取消。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "執行前切換到此資料庫" + "value" : "SSH 驗證已取消。" } } } }, - "Switch to this schema before executing" : { - "extractionState" : "stale", + "SSH authentication failed. Check your credentials or private key." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "실행 전에 이 스키마로 전환" + "value" : "SSH 인증에 실패했습니다. 자격 증명 또는 개인 키를 확인하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yürütmeden önce bu şemaya geç" + "value" : "SSH kimlik doğrulaması başarısız. Kimlik bilgilerinizi veya özel anahtarınızı kontrol edin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển sang schema này trước khi thực thi" + "value" : "Xác thực SSH thất bại. Kiểm tra thông tin đăng nhập hoặc khóa riêng tư." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "执行前切换到此 Schema" + "value" : "SSH 认证失败。请检查您的凭据或私钥。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "執行前切換到此綱要" + "value" : "SSH 驗證失敗。請檢查你的憑證或私鑰。" } } } }, - "Switching to database '%@' timed out." : { + "SSH command not found. Please ensure OpenSSH is installed." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 '%@' 전환 시간이 초과되었습니다." + "value" : "SSH 명령을 찾을 수 없습니다. OpenSSH가 설치되어 있는지 확인하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "'%@' veritabanına geçiş zaman aşımına uğradı." + "value" : "SSH command not found. Please ensure OpenSSH is installed." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển sang cơ sở dữ liệu '%@' đã hết thời gian chờ." + "value" : "Không tìm thấy lệnh SSH. Vui lòng đảm bảo OpenSSH đã được cài đặt." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "切换到数据库 '%@' 超时。" + "value" : "未找到 SSH 命令。请确保已安装 OpenSSH。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "切換到資料庫 '%@' 已逾時。" + "value" : "找不到 SSH 指令。請確認已安裝 OpenSSH。" } } } }, - "Switching to schema '%@' timed out." : { + "SSH Connection Test Failed" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "스키마 '%@' 전환 시간이 초과되었습니다." + "value" : "SSH 연결 테스트 실패" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "'%@' şemasına geçiş zaman aşımına uğradı." + "value" : "SSH Bağlantı Testi Başarısız" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển sang schema '%@' đã hết thời gian chờ." + "value" : "Kiểm tra Kết nối SSH Thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "切换到 Schema '%@' 超时。" + "value" : "SSH 连接测试失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "切換到綱要 '%@' 已逾時。" + "value" : "SSH 連線測試失敗" } } } }, - "Sync" : { - "extractionState" : "stale", + "SSH connection timed out" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "동기화" + "value" : "SSH 연결 시간이 초과되었습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sync" + "value" : "SSH bağlantısı zaman aşımına uğradı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đồng bộ" + "value" : "Kết nối SSH đã hết thời gian" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "同步" + "value" : "SSH 连接超时" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "同步" + "value" : "SSH 連線逾時" } } } }, - "Sync (Pro)" : { - "extractionState" : "stale", + "SSH Host" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "동기화 (Pro)" + "value" : "SSH 호스트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Senkronizasyon (Pro)" + "value" : "SSH Host" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đồng bộ (Pro)" + "value" : "Máy chủ SSH" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "同步(Pro)" + "value" : "SSH 主机" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "同步(Pro)" + "value" : "SSH 主機" } } } }, - "Sync Categories" : { + "SSH host is required" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "동기화 범주" + "value" : "SSH 호스트가 필요합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eşitleme Kategorileri" + "value" : "SSH sunucusu gereklidir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Danh mục đồng bộ" + "value" : "Cần nhập máy chủ SSH" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "同步分类" + "value" : "需要 SSH 主机" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "同步分類" + "value" : "需要 SSH 主機" } } } }, - "Sync Conflict" : { - "extractionState" : "stale", + "SSH Host Key Changed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "동기화 충돌" + "value" : "SSH 호스트 키 변경됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sync Conflict" + "value" : "SSH Sunucu Anahtarı Değişti" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xung đột đồng bộ" + "value" : "Khóa máy chủ SSH đã thay đổi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "同步冲突" + "value" : "SSH 主机密钥已更改" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "同步衝突" + "value" : "SSH 主機金鑰已變更" } } } }, - "Sync Error" : { + "SSH host key verification failed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "동기화 오류" + "value" : "SSH 호스트 키 확인에 실패했습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eşitleme Hatası" + "value" : "SSH sunucu anahtarı doğrulaması başarısız" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lỗi đồng bộ" + "value" : "Xác minh khóa máy chủ SSH thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "同步错误" + "value" : "SSH 主机密钥验证失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "同步錯誤" + "value" : "SSH 主機金鑰驗證失敗" } } } }, - "Sync Now" : { + "SSH Key Passphrase Required" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "지금 동기화" + "value" : "SSH 키 암호 필요" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Şimdi Eşitle" + "value" : "SSH Anahtarı Parolası Gerekli" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đồng bộ ngay" + "value" : "Cần mật khẩu khoá SSH" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "立即同步" + "value" : "需要 SSH 密钥密码" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "立即同步" + "value" : "需要 SSH 金鑰密碼短語" } } } }, - "Sync Off" : { + "SSH password rejected. Check the password and try again." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "동기화 끔" + "value" : "SSH 암호가 거부되었습니다. 암호를 확인하고 다시 시도하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eşitleme Kapalı" + "value" : "SSH parolası reddedildi. Parolayı denetleyip yeniden deneyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tắt đồng bộ" + "value" : "Mật khẩu SSH bị từ chối. Kiểm tra mật khẩu và thử lại." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "同步已关闭" + "value" : "SSH 密码被拒绝。请检查密码后重试。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "同步已關閉" + "value" : "SSH 密碼被拒絕。請檢查密碼後再試一次。" } } } }, - "Sync Status" : { + "SSH Port" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "동기화 상태" + "value" : "SSH 포트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eşitleme Durumu" + "value" : "SSH Port" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trạng thái đồng bộ" + "value" : "Cổng SSH" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "同步状态" + "value" : "SSH 端口" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "同步狀態" + "value" : "SSH 連接埠" } } } }, - "Sync connections, settings, and favorites across your Macs." : { + "SSH port must be between 1 and 65535" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Mac 간에 연결, 설정 및 즐겨찾기를 동기화합니다." + "value" : "SSH 포트는 1~65535 사이여야 합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantıları, ayarları ve sık kullanılanları Mac'leriniz arasında eşitleyin." + "value" : "SSH portu 1 ile 65535 arasında olmalıdır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đồng bộ kết nối, cài đặt và mục yêu thích giữa các máy Mac của bạn." + "value" : "Cổng SSH phải nằm trong khoảng 1 đến 65535" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在你的多台 Mac 之间同步连接、设置和收藏。" + "value" : "SSH 端口必须在 1 到 65535 之间" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在你的多台 Mac 之間同步連線、設定和我的最愛。" + "value" : "SSH 連接埠必須在 1 到 65535 之間" } } } }, - "Sync connections, settings, and history across your Macs." : { + "SSH private key not found: %@" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Mac 간에 연결, 설정 및 기록을 동기화합니다." + "value" : "SSH 개인 키를 찾을 수 없습니다: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sync connections, settings, and history across your Macs." + "value" : "SSH özel anahtarı bulunamadı: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đồng bộ kết nối, cài đặt và lịch sử giữa các máy Mac." + "value" : "Không tìm thấy private key SSH: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在多台 Mac 之间同步连接、设置和历史记录。" + "value" : "未找到 SSH 私钥:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在你的多台 Mac 之間同步連線、設定與歷程記錄。" + "value" : "找不到 SSH 私密金鑰:%@" } } } }, - "Sync paused — Pro license expired" : { - "extractionState" : "stale", + "SSH private key rejected. Check the key file or passphrase." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "동기화 일시 중지 — Pro 라이선스 만료" + "value" : "SSH 개인 키가 거부되었습니다. 키 파일 또는 암호를 확인하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sync paused — Pro license expired" + "value" : "SSH özel anahtarı reddedildi. Anahtar dosyasını veya parola ifadesini denetleyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tạm dừng đồng bộ — giấy phép Pro đã hết hạn" + "value" : "Private key SSH bị từ chối. Kiểm tra file khóa hoặc passphrase." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "同步已暂停 - Pro 许可证已过期" + "value" : "SSH 私钥被拒绝。请检查密钥文件或密码短语。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "同步已暫停,Pro 授權已過期" + "value" : "SSH 私密金鑰被拒絕。請檢查金鑰檔案或密碼短語。" } } } }, - "Sync paused, Pro license expired" : { + "SSH Profile" : { + "extractionState" : "stale", "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "SSH Profile" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "동기화 일시 중지, Pro 라이선스 만료" + "value" : "SSH 프로필" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eşitleme duraklatıldı, Pro lisansının süresi doldu" + "value" : "SSH Profili" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đồng bộ đã tạm dừng, giấy phép Pro đã hết hạn" + "value" : "Hồ sơ SSH" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "同步已暂停,Pro 许可证已过期" + "value" : "SSH 配置" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "同步已暫停,Pro 授權已過期" + "value" : "SSH 設定檔" } } } }, - "Sync token expired. A full sync will be performed." : { + "SSH Profiles:" : { "localizations" : { - "ko" : { + "en" : { "stringUnit" : { "state" : "translated", - "value" : "동기화 토큰이 만료되었습니다. 전체 동기화를 수행합니다." + "value" : "SSH Profiles:" } - } - } - }, - "Sync zone not found. A full sync will be performed." : { - "localizations" : { + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "동기화 영역을 찾을 수 없습니다. 전체 동기화를 수행합니다." + "value" : "SSH 프로필:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eşitleme bölgesi bulunamadı. Tam eşitleme yapılacak." + "value" : "SSH Profilleri:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy vùng đồng bộ. Sẽ thực hiện đồng bộ toàn bộ." + "value" : "Hồ sơ SSH:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未找到同步区域。将执行完整同步。" + "value" : "SSH 配置:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "找不到同步區域。將執行完整同步。" + "value" : "SSH 設定檔:" } } } }, - "Synced" : { + "SSH Tunnel" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "동기화됨" + "value" : "SSH 터널" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Synced" + "value" : "SSH Tüneli" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã đồng bộ" + "value" : "Đường hầm SSH" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已同步" + "value" : "SSH 隧道" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已同步" + "value" : "SSH 隧道" } } } }, - "Syncing with iCloud…" : { + "SSH tunnel already exists for connection: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud와 동기화 중…" + "value" : "연결에 대한 SSH 터널이 이미 있습니다: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud ile eşitleniyor…" + "value" : "Bu bağlantı için zaten bir SSH tüneli var: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang đồng bộ với iCloud…" + "value" : "Đường hầm SSH đã tồn tại cho kết nối: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在与 iCloud 同步…" + "value" : "连接已存在 SSH 隧道:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在與 iCloud 同步…" + "value" : "此連線已存在 SSH 隧道:%@" } } } }, - "Syncing…" : { + "SSH tunnel creation failed: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "동기화 중…" + "value" : "SSH 터널 생성 실패: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Syncing…" + "value" : "SSH tüneli oluşturulamadı: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang đồng bộ…" + "value" : "Tạo đường hầm SSH thất bại: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在同步…" + "value" : "创建 SSH 隧道失败:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在同步…" + "value" : "建立 SSH 隧道失敗:%@" } } } }, - "Syncs connections, settings, and SSH profiles across your Macs via iCloud." : { + "SSH tunnel did not connect within 30 seconds" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud를 통해 Mac 간에 연결, 설정 및 SSH 프로필을 동기화합니다." + "value" : "SSH 터널이 30초 이내에 연결되지 않았습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantıları, ayarları ve SSH profillerini iCloud üzerinden Mac'leriniz arasında senkronize eder." + "value" : "SSH tüneli 30 saniye içinde bağlanamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đồng bộ kết nối, cài đặt và cấu hình SSH giữa các máy Mac qua iCloud." + "value" : "Đường hầm SSH không kết nối được trong 30 giây" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "通过 iCloud 在多台 Mac 之间同步连接、设置和 SSH 配置。" + "value" : "SSH 隧道在 30 秒内未能连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "透過 iCloud 在你的多台 Mac 之間同步連線、設定與 SSH 設定檔。" + "value" : "SSH 隧道未能在 30 秒內連線" } } } }, - "Syncs connections, settings, and history across your Macs via iCloud." : { - "extractionState" : "stale", + "SSH tunnel disconnected. Click to reconnect." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud를 통해 Mac 간에 연결, 설정 및 기록을 동기화합니다." + "value" : "SSH 터널 연결이 끊어졌습니다. 클릭하여 다시 연결하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Syncs connections, settings, and history across your Macs via iCloud." + "value" : "SSH tüneli bağlantısı kesildi. Yeniden bağlanmak için tıklayın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đồng bộ kết nối, cài đặt và lịch sử giữa các máy Mac qua iCloud." + "value" : "SSH tunnel đã ngắt kết nối. Bấm để kết nối lại." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "通过 iCloud 在多台 Mac 之间同步连接、设置和历史记录。" + "value" : "SSH 隧道已断开。点按以重新连接。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "透過 iCloud 在你的多台 Mac 之間同步連線、設定與歷程記錄。" + "value" : "SSH 隧道已中斷連線。點按以重新連線。" } } } }, - "Syncs connections, table favorites, settings, and SSH profiles across your Macs via iCloud." : { - "comment" : "A description of the functionality of the \"iCloud Sync\" toggle.", - "isCommentAutoGenerated" : true, + "SSH tunneling and SSL/TLS encryption support" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud를 통해 Mac 간에 연결, 테이블 즐겨찾기, 설정 및 SSH 프로필을 동기화합니다." + "value" : "SSH 터널링 및 SSL/TLS 암호화 지원" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantıları, tablo sık kullanılanlarını, ayarları ve SSH profillerini iCloud aracılığıyla Mac'leriniz arasında eşzamanlar." + "value" : "SSH tünelleme ve SSL/TLS şifreleme desteği" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đồng bộ kết nối, bảng yêu thích, cài đặt và hồ sơ SSH giữa các máy Mac của bạn qua iCloud." + "value" : "Hỗ trợ đường hầm SSH và mã hóa SSL/TLS" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "通过 iCloud 在你的多台 Mac 之间同步连接、表收藏、设置和 SSH 配置。" + "value" : "SSH 隧道和 SSL/TLS 加密支持" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "透過 iCloud 在你的多台 Mac 之間同步連線、資料表我的最愛、設定和 SSH 設定檔。" + "value" : "支援 SSH 隧道與 SSL/TLS 加密" } } } }, - "Syncs passwords via iCloud Keychain (end-to-end encrypted)." : { + "SSH tunneling only forwards the first host. Other replica set members must be directly reachable from the SSH server." : { + "extractionState" : "stale", "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Syncs passwords via iCloud Keychain (end-to-end encrypted)." - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud 키체인을 통해 암호를 동기화합니다(종단 간 암호화)." + "value" : "SSH 터널링은 첫 번째 호스트만 전달합니다. 다른 복제 세트 멤버는 SSH 서버에서 직접 연결할 수 있어야 합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Parolaları iCloud Keychain ile senkronize eder (uçtan uca şifreli)." + "value" : "SSH tüneli yalnızca ilk sunucuyu yönlendirir. Diğer replica set üyelerine SSH sunucusundan doğrudan erişilebilir olmalıdır." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đồng bộ mật khẩu qua iCloud Keychain (mã hoá đầu cuối)." + "value" : "SSH tunnel chỉ chuyển tiếp host đầu tiên. Các thành viên replica set khác phải truy cập được trực tiếp từ SSH server." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "通过 iCloud 钥匙串同步密码(端到端加密)。" + "value" : "SSH 隧道仅转发第一个主机。其他副本集成员必须能从 SSH 服务器直接访问。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "透過 iCloud 鑰匙圈同步密碼(端對端加密)。" + "value" : "SSH 隧道僅會轉送第一個主機。其他複本集成員必須能從 SSH 伺服器直接連線。" } } } }, - "Syntax Colors" : { + "SSH User" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "구문 색상" + "value" : "SSH 사용자" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sözdizimi Renkleri" + "value" : "SSH User" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Màu cú pháp" + "value" : "Người dùng SSH" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "语法颜色" + "value" : "SSH 用户" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "語法顏色" + "value" : "SSH 使用者" } } } }, - "Syntax highlighting, autocomplete, and multi-tab editing" : { + "SSH Verification Rejected" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "구문 강조, 자동 완성 및 다중 탭 편집" + "value" : "SSH 확인 거부됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sözdizimi vurgulama, otomatik tamamlama ve çoklu sekme düzenleme" + "value" : "SSH Doğrulaması Reddedildi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tô sáng cú pháp, tự động hoàn thành và chỉnh sửa nhiều tab" + "value" : "Xác minh SSH bị từ chối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "语法高亮、自动补全和多标签编辑" + "value" : "SSH 验证被拒绝" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "語法上色、自動完成與多分頁編輯" + "value" : "SSH 驗證遭拒" } } } }, - "System" : { + "SSH verification rejected. Check your response and try again." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "시스템" + "value" : "SSH 확인이 거부되었습니다. 응답을 확인하고 다시 시도하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sistem" + "value" : "SSH doğrulaması reddedildi. Yanıtınızı denetleyip tekrar deneyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hệ thống" + "value" : "Xác minh SSH bị từ chối. Kiểm tra lại câu trả lời và thử lại." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "系统" + "value" : "SSH 验证被拒绝。请检查你的回答后重试。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "系統" + "value" : "SSH 驗證遭拒。請檢查你的回答後再試一次。" } } } }, - "System Reserved Shortcut" : { + "SSH Verification Required" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "시스템 예약 단축키" + "value" : "SSH 확인 필요" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sistem Ayrılmış Kısayol" + "value" : "SSH Doğrulaması Gerekli" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phím tắt hệ thống" + "value" : "Cần xác minh SSH" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "系统保留快捷键" + "value" : "需要 SSH 验证" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "系統保留快速鍵" + "value" : "需要 SSH 驗證" } } } }, - "System Table" : { + "ssh.example.com" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "시스템 테이블" + "value" : "ssh.example.com" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sistem Tablosu" + "value" : "ssh.example.com" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bảng hệ thống" + "value" : "ssh.example.com" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "系统表" + "value" : "ssh.example.com" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "系統資料表" + "value" : "ssh.example.com" } } } }, - "System Tables" : { + "SSL" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "시스템 테이블" + "value" : "SSL" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sistem Tabloları" + "value" : "SSL" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bảng hệ thống" + "value" : "SSL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "系统表" + "value" : "SSL" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "系統資料表" + "value" : "SSL" } } } }, - "TIMESTAMPS" : { + "SSL Mode" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "TIMESTAMPS" + "value" : "SSL 모드" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "TIMESTAMPS" + "value" : "SSL Modu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "THỜI GIAN" + "value" : "Chế độ SSL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "时间戳" + "value" : "SSL 模式" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "時間戳記" + "value" : "SSL 模式" } } } }, - "TLS Mode" : { + "SSL/TLS" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "TLS 모드" + "value" : "SSL/TLS" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "TLS Modu" + "value" : "SSL/TLS" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chế độ TLS" + "value" : "SSL/TLS" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "TLS 模式" + "value" : "SSL/TLS" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "TLS 模式" + "value" : "SSL/TLS" } } } }, - "TLS certificate expired or near expiry" : { + "Standalone" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "TLS 인증서가 만료되었거나 곧 만료됩니다" + "value" : "단독 실행" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "TLS sertifikasının süresi dolmuş veya dolmak üzere" + "value" : "Bağımsız" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chứng chỉ TLS đã hoặc sắp hết hạn" + "value" : "Độc lập" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "TLS 证书已过期或即将过期" + "value" : "单机" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "TLS 憑證已過期或即將過期" + "value" : "單機" } } } }, - "TLS handshake failed: %@" : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "TLS 핸드셰이크 실패: %@" - } - } - } + "Starred tables, sorted" : { + }, - "TLS identity not found in Keychain" : { + "Start recording queries again" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "키체인에서 TLS ID를 찾을 수 없습니다" + "value" : "쿼리 기록 재개" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Keychain'de TLS kimliği bulunamadı" + "value" : "Sorguları yeniden kaydetmeye başla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy TLS identity trong Keychain" + "value" : "Bắt đầu ghi lại truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在钥匙串中未找到 TLS 身份" + "value" : "重新开始记录查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在鑰匙圈中找不到 TLS 身分" + "value" : "重新開始記錄查詢" } } } }, - "TOTP" : { + "Starter" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "TOTP" + "value" : "Starter" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "TOTP" + "value" : "Starter" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "TOTP" + "value" : "Starter" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "TOTP" + "value" : "Starter" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "TOTP" + "value" : "Starter" } } } }, - "TOTP Secret" : { + "Starting service…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "TOTP 비밀 키" + "value" : "서비스 시작 중…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "TOTP Secret" + "value" : "Servis başlatılıyor…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mã bí mật TOTP" + "value" : "Đang khởi động dịch vụ…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "TOTP 密钥" + "value" : "正在启动服务…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "TOTP 金鑰" + "value" : "正在啟動服務…" } } } }, - "TRUE" : { - "extractionState" : "stale", + "Starting…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "TRUE" + "value" : "시작 중…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "TRUE" + "value" : "Başlatılıyor…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "TRUE" + "value" : "Đang khởi động…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "TRUE" + "value" : "正在启动…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "TRUE" + "value" : "正在啟動…" } } } }, - "Tab" : { + "Starts and stops `cloudflared access tcp` with this connection and routes it through a local port." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "탭" + "value" : "이 연결과 함께 `cloudflared access tcp`를 시작 및 중지하고 로컬 포트를 통해 라우팅합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sekme" + "value" : "`cloudflared access tcp` komutunu bu bağlantıyla birlikte başlatıp durdurur ve bağlantıyı yerel bir port üzerinden yönlendirir." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tab" + "value" : "Khởi động và dừng `cloudflared access tcp` cùng kết nối này và định tuyến qua một cổng cục bộ." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "制表符" + "value" : "随此连接启动和停止 `cloudflared access tcp`,并通过本地端口路由。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "定位字元" + "value" : "隨此連線啟動和停止 `cloudflared access tcp`,並透過本機連接埠路由。" } } } }, - "Tab Behavior" : { - "extractionState" : "stale", + "Starts and stops the Cloud SQL Auth Proxy with this connection and routes it through a local port." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "탭 동작" + "value" : "이 연결과 함께 Cloud SQL Auth Proxy를 시작 및 중지하고 로컬 포트를 통해 라우팅합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tab Behavior" + "value" : "Cloud SQL Auth Proxy'yi bu bağlantıyla birlikte başlatıp durdurur ve bağlantıyı yerel bir port üzerinden yönlendirir." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hành vi tab" + "value" : "Khởi động và dừng Cloud SQL Auth Proxy cùng với kết nối này, đồng thời định tuyến qua một cổng cục bộ." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "标签页行为" + "value" : "随此连接启动和停止 Cloud SQL Auth Proxy,并通过本地端口转发。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "分頁行為" + "value" : "隨此連線啟動與停止 Cloud SQL Auth Proxy,並透過本機連接埠轉送。" } } } }, - "Tab width:" : { + "starts with" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "탭 너비:" + "value" : "다음으로 시작" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sekme genişliği:" + "value" : "ile başlar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Độ rộng tab:" + "value" : "bắt đầu bằng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "制表符宽度:" + "value" : "以...开头" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Tab 寬度:" + "value" : "開頭為" } } } }, - "Table" : { + "Startup Commands" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블" + "value" : "시작 명령" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tablo" + "value" : "Başlangıç Komutları" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bảng" + "value" : "Lệnh khởi động" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "表" + "value" : "启动命令" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料表" + "value" : "啟動指令" } } } }, - "Table '%@' has no columns or does not exist" : { - "extractionState" : "stale", + "Startup SQL" : { + "comment" : "A section header for the startup SQL commands of a connection.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 '%@'에 열이 없거나 테이블이 존재하지 않습니다" + "value" : "시작 SQL" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "tablo '%@' has no columns or does not exist" + "value" : "Başlangıç SQL" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bảng '%@' không có cột hoặc không tồn tại" + "value" : "SQL khởi động" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "表 '%@' 没有列或不存在" + "value" : "启动 SQL" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料表「%@」沒有欄位或不存在" + "value" : "啟動 SQL" } } } }, - "Table Actions" : { + "State" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 작업" + "value" : "상태" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tablo İşlemleri" + "value" : "Durum" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thao tác bảng" + "value" : "Trạng thái" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "表操作" + "value" : "状态" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料表操作" + "value" : "狀態" } } } }, - "Table Browsing" : { + "statement" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 탐색" + "value" : "문" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tablo Gezinme" + "value" : "statement" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Duyệt bảng" + "value" : "câu lệnh" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "表浏览" + "value" : "条语句" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料表瀏覽" + "value" : "陳述式" } } } }, - "Table Favorites:" : { + "Statement %1$d/%2$d failed: %3$@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 즐겨찾기:" + "value" : "%2$d개 중 %1$d번째 문 실패: %3$@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tablo Sık Kullanılanları:" + "value" : "%1$d/%2$d numaralı ifade başarısız oldu: %3$@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bảng yêu thích:" + "value" : "Câu lệnh %1$d/%2$d thất bại: %3$@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "表收藏:" + "value" : "第 %1$d/%2$d 条语句失败:%3$@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料表我的最愛:" + "value" : "第 %1$d/%2$d 條陳述式失敗:%3$@" } } } }, - "Table Info" : { + "Statement %lld" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 정보" + "value" : "SQL 문 %lld" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Table Info" + "value" : "ifade %lld" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thông tin bảng" + "value" : "Câu lệnh %lld" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "表信息" + "value" : "语句 %lld" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料表資訊" + "value" : "陳述式 %lld" } } } }, - "Table Maintenance" : { + "Statement %lld of %lld" : { + "extractionState" : "stale", "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Statement %1$lld of %2$lld" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 유지 관리" + "value" : "전체 %2$lld개 중 %1$lld번째 SQL 문" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tablo Bakımı" + "value" : "ifade %lld / %lld" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bảo trì bảng" + "value" : "Câu lệnh %1$lld / %2$lld" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "表维护" + "value" : "语句 %lld / %lld" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料表維護" + "value" : "陳述式 %1$lld / %2$lld" } } } }, - "Table Name" : { + "Statement batches" : { + + }, + "Statement text" : { + + }, + "Statement that ran" : { + + }, + "Statement timeout" : { + + }, + "Statement timeout. Defaults to the server's configured timeout." : { + + }, + "Statement:" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 이름" + "value" : "SQL 문:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Table Name" + "value" : "Statement:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên bảng" + "value" : "Câu lệnh:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "表名" + "value" : "语句:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料表名稱" + "value" : "陳述式:" } } } }, - "Table Name:" : { + "statements" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 이름:" + "value" : "문" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tablo Adı:" + "value" : "statements" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên bảng:" + "value" : "câu lệnh" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "表名:" + "value" : "条语句" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料表名稱:" + "value" : "陳述式" } } } }, - "Table creation options not available" : { - "extractionState" : "stale", + "Statements TablePro generated and ran" : { + + }, + "Statements that already ran stay applied to %@. Compare again to see where it stands." : { + + }, + "Statements that read or write files, or that run server-side code, cannot be sent through MCP. Run this one in TablePro instead." : { + + }, + "STATISTICS" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 생성 옵션을 사용할 수 없습니다" + "value" : "통계" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Table creation options not available" + "value" : "STATISTICS" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tùy chọn tạo bảng không khả dụng" + "value" : "THỐNG KÊ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "表创建选项不可用" + "value" : "统计信息" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法使用資料表建立選項" + "value" : "統計資訊" } } } }, - "Table name" : { + "Status" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 이름" + "value" : "상태" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tablo adı" + "value" : "Durum" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên bảng" + "value" : "Trạng thái" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "表名" + "value" : "状态" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料表名稱" + "value" : "狀態" } } } }, - "Table name to open" : { + "Status Colors" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열려는 테이블 이름" + "value" : "상태 색상" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Açılacak tablo adı" + "value" : "Durum Renkleri" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên bảng cần mở" + "value" : "Màu trạng thái" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "要打开的表名" + "value" : "状态颜色" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "要開啟的資料表名稱" + "value" : "狀態顏色" } } } }, - "Table names to export (alternative to query)" : { + "Status Dot" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "내보낼 테이블 이름(쿼리 대신 사용)" + "value" : "상태 표시점" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dışa aktarılacak tablo adları (sorguya alternatif)" + "value" : "Status Dot" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên các bảng cần xuất (thay cho truy vấn)" + "value" : "Chấm trạng thái" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "要导出的表名(可代替查询)" + "value" : "状态指示点" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "要匯出的資料表名稱(可代替查詢)" + "value" : "狀態指示點" } } } }, - "Table: %@" : { - "extractionState" : "stale", + "Status:" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Status:" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블: %@" + "value" : "상태:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "tablo: %@" + "value" : "Durum:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bảng: %@" + "value" : "Trạng thái:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "表:%@" + "value" : "状态:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料表:%@" + "value" : "狀態:" } } } }, - "TablePro" : { - "extractionState" : "stale", + "Status: active" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro" + "value" : "상태: 활성" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro" + "value" : "Durum: aktif" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro" + "value" : "Trạng thái: đang hoạt động" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro" + "value" : "状态:活动" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro" + "value" : "狀態:使用中" } } } }, - "TablePro Website" : { + "Status: error" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro 웹사이트" + "value" : "상태: 오류" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro Website" + "value" : "Durum: hata" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trang web TablePro" + "value" : "Trạng thái: lỗi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro 网站" + "value" : "状态:错误" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro 網站" + "value" : "狀態:錯誤" } } } }, - "TablePro could not do this for you. Run this in Terminal instead:" : { + "Status: expired" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro가 이 작업을 수행할 수 없습니다. 대신 터미널에서 다음을 실행하십시오:" + "value" : "상태: 만료됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro bunu sizin için yapamadı. Bunun yerine Terminal'de şunu çalıştırın:" + "value" : "Durum: süresi dolmuş" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro không thể làm việc này giúp bạn. Hãy chạy lệnh sau trong Terminal:" + "value" : "Trạng thái: đã hết hạn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro 无法替你完成此操作。请在终端中运行:" + "value" : "状态:已过期" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro 無法替你完成此操作。請改在終端機執行:" + "value" : "狀態:已過期" } } } }, - "TablePro could not open its query history database, so nothing is being recorded and nothing can be shown. Your existing history is still on disk." : { - "comment" : "A description of the error that occurs when the query history database cannot be opened.", - "isCommentAutoGenerated" : true, + "Status: failed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro에서 쿼리 기록 데이터베이스를 열 수 없어 기록되거나 표시되는 항목이 없습니다. 기존 기록은 디스크에 그대로 남아 있습니다." + "value" : "상태: 실패" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro sorgu geçmişi veritabanını açamadı, bu yüzden hiçbir şey kaydedilmiyor ve gösterilemiyor. Mevcut geçmişiniz hâlâ diskte." + "value" : "Durum: başarısız" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro không mở được cơ sở dữ liệu lịch sử truy vấn, nên không có gì được ghi lại và không có gì để hiển thị. Lịch sử hiện có của bạn vẫn nằm trên đĩa." + "value" : "Trạng thái: thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro 无法打开它的查询历史数据库,因此不会记录任何内容,也无法显示任何内容。你已有的历史仍在磁盘上。" + "value" : "状态:失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro 無法開啟它的查詢歷史資料庫,因此不會記錄任何內容,也無法顯示任何內容。你已有的記錄仍在磁碟上。" + "value" : "狀態:失敗" } } } }, - "TablePro couldn't reach the plugin registry to update this plugin. Check your connection and reopen TablePro." : { + "Status: revoked" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro에서 이 플러그인을 업데이트하기 위해 플러그인 레지스트리에 연결할 수 없습니다. 연결을 확인하고 TablePro를 다시 여십시오." + "value" : "상태: 철회됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro bu eklentiyi güncellemek için eklenti deposuna ulaşamadı. Bağlantınızı denetleyip TablePro'yu yeniden açın." + "value" : "Durum: iptal edildi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro không thể truy cập registry plugin để cập nhật plugin này. Kiểm tra kết nối mạng và mở lại TablePro." + "value" : "Trạng thái: đã thu hồi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro 无法访问插件注册表来更新此插件。请检查网络连接并重新打开 TablePro。" + "value" : "状态:已撤销" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro 無法連上外掛註冊來更新此外掛。請檢查你的網路連線並重新開啟 TablePro。" + "value" : "狀態:已撤銷" } } } }, - "TablePro runs Anthropic's claude tool in headless mode. Claude Code is built for you to use directly, not as a backend for other apps, so this path can break with any Claude Code release." : { + "Status: running" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro는 Anthropic의 claude 도구를 헤드리스 모드로 실행합니다. Claude Code는 다른 앱의 백엔드가 아니라 사용자가 직접 사용하도록 만들어졌으므로, 이 방식은 Claude Code 릴리스에 따라 작동하지 않을 수 있습니다." + "value" : "상태: 실행 중" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro, Anthropic'in claude aracını başsız modda çalıştırır. Claude Code doğrudan sizin kullanmanız için yapıldı, başka uygulamalara arka uç olsun diye değil; bu yüzden bu yol herhangi bir Claude Code sürümüyle bozulabilir." + "value" : "Durum: çalışıyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro chạy công cụ claude của Anthropic ở chế độ headless. Claude Code được tạo ra để bạn dùng trực tiếp, không phải làm backend cho ứng dụng khác, nên cách này có thể hỏng sau bất kỳ bản phát hành Claude Code nào." + "value" : "Trạng thái: đang chạy" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro 以无界面模式运行 Anthropic 的 claude 工具。Claude Code 是给你直接使用的,不是给其他应用当后端,因此这条路径可能在任何一次 Claude Code 更新后失效。" + "value" : "状态:运行中" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro 以無介面模式執行 Anthropic 的 claude 工具。Claude Code 是給你直接使用的,不是給其他應用程式當後端,因此這條路徑可能在任何一次 Claude Code 更新後失效。" + "value" : "狀態:執行中" } } } }, - "TablePro's Safe Mode is set to read-only for this connection. Destructive operations are not permitted." : { + "Status: starting" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 연결에서는 TablePro의 안전 모드가 읽기 전용으로 설정되어 있습니다. 파괴적인 작업은 허용되지 않습니다." + "value" : "상태: 시작 중" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu bağlantı için TablePro'nun Safe Mode ayarı salt okunur. Yıkıcı işlemlere izin verilmez." + "value" : "Durum: başlatılıyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chế độ an toàn của TablePro đang đặt kết nối này ở chế độ chỉ đọc. Không cho phép các thao tác phá hủy dữ liệu." + "value" : "Trạng thái: đang khởi động" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro 的安全模式已将此连接设为只读。不允许执行破坏性操作。" + "value" : "状态:启动中" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro 的安全模式已將此連線設為唯讀。不允許執行破壞性操作。" + "value" : "狀態:啟動中" } } } }, - "TablePro's Safe Mode is set to read-only for this connection. Set it to Confirm Writes or higher to allow this tool." : { + "Status: stopped" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 연결에서는 TablePro의 안전 모드가 읽기 전용으로 설정되어 있습니다. 이 도구를 허용하려면 쓰기 확인 이상으로 설정하십시오." + "value" : "상태: 중지됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu bağlantı için TablePro'nun Safe Mode ayarı salt okunur. Bu araca izin vermek için Confirm Writes veya daha üstünü seçin." + "value" : "Durum: durduruldu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chế độ an toàn của TablePro đang đặt kết nối này ở chế độ chỉ đọc. Đặt thành Confirm Writes hoặc cao hơn để cho phép công cụ này." + "value" : "Trạng thái: đã dừng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro 的安全模式已将此连接设为只读。请设为 Confirm Writes 或更高级别以允许此工具。" + "value" : "状态:已停止" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro 的安全模式已將此連線設為唯讀。請設為 Confirm Writes 或更高層級以允許此工具。" + "value" : "狀態:已停止" } } } }, - "Tables" : { + "Status: success" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블" + "value" : "상태: 성공" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tablolar" + "value" : "Durum: başarılı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bảng" + "value" : "Trạng thái: thành công" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "表" + "value" : "状态:成功" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料表" + "value" : "狀態:成功" } } } }, - "Tables with more estimated rows use approximate counts to avoid slow COUNT(*) queries" : { + "Status: warning" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "예상 행 수가 더 많은 테이블은 느린 COUNT(*) 쿼리를 피하기 위해 근삿값을 사용합니다" + "value" : "상태: 경고" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Daha fazla tahmini satıra sahip tablolar, yavaş COUNT(*) sorgularından kaçınmak için yaklaşık sayımlar kullanır" + "value" : "Durum: uyarı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Các bảng có nhiều dòng ước tính sử dụng đếm xấp xỉ để tránh truy vấn COUNT(*) chậm" + "value" : "Trạng thái: cảnh báo" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "估算行数较多的表使用近似计数以避免慢速 COUNT(*) 查询" + "value" : "状态:警告" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "估算列數較多的資料表會使用近似計數,以避免緩慢的 COUNT(*) 查詢" + "value" : "狀態:警告" } } } }, - "Tables, columns, indexes, and foreign keys for a connected database" : { + "Step" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결된 데이터베이스의 테이블, 열, 인덱스 및 외래 키" + "value" : "단계" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlı bir veritabanının tabloları, sütunları, indeksleri ve yabancı anahtarları" + "value" : "Adım" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bảng, cột, index và khóa ngoại của một cơ sở dữ liệu đã kết nối" + "value" : "Bước" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "某个已连接数据库的表、列、索引和外键" + "value" : "步骤" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "某個已連線資料庫的資料表、欄位、索引和外鍵" + "value" : "步驟" } } } }, - "Tables, columns, indexes, and foreign keys for the connected database" : { + "Steps to Reproduce" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결된 데이터베이스의 테이블, 열, 인덱스 및 외래 키" + "value" : "재현 단계" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlı veritabanının tabloları, sütunları, indeksleri ve yabancı anahtarları" + "value" : "Yeniden Üretme Adımları" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bảng, cột, index và khóa ngoại của cơ sở dữ liệu đã kết nối" + "value" : "Các bước tái hiện" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已连接数据库的表、列、索引和外键" + "value" : "重现步骤" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已連線資料庫的資料表、欄位、索引和外鍵" + "value" : "重現步驟" } } } }, - "Tables, views, and functions owned by this role will be deleted." : { + "Stop" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 역할이 소유한 테이블, 뷰 및 함수가 삭제됩니다." + "value" : "중지" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu role ait tablolar, görünümler ve fonksiyonlar silinecek." + "value" : "Stop" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Các bảng, view và hàm thuộc sở hữu của vai trò này sẽ bị xóa." + "value" : "Dừng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "该角色拥有的表、视图和函数将被删除。" + "value" : "停止" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "該角色擁有的資料表、檢視表和函式將被刪除。" + "value" : "停止" } } } }, - "Tablespace" : { - "extractionState" : "stale", + "Stop and Close" : { + + }, + "Stop and keep what ran" : { + + }, + "Stop and Quit" : { + + }, + "Stop and roll back" : { + + }, + "Stop Comparison" : { + + }, + "Stop Export?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블스페이스" + "value" : "내보내기를 중지하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tablespace" + "value" : "Dışa Aktarma Durdurulsun mu?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tablespace" + "value" : "Dừng xuất?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "表空间" + "value" : "停止导出?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料表空間" + "value" : "停止匯出?" } } } }, - "Tabs" : { + "Stop Generating" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "탭" + "value" : "생성 중지" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tabs" + "value" : "Üretmeyi Durdur" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tab" + "value" : "Dừng tạo phản hồi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "标签页" + "value" : "停止生成" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "分頁" + "value" : "停止生成" } } } }, - "Tag" : { + "Stop recording queries on this Mac" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "태그" + "value" : "이 Mac에서 쿼리 기록 중지" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Etiket" + "value" : "Bu Mac'te sorgu kaydını durdur" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhãn" + "value" : "Ngừng ghi truy vấn trên máy Mac này" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "标签" + "value" : "停止在这台 Mac 上记录查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "標籤" + "value" : "停止在這台 Mac 上記錄查詢" } } } }, - "Tag name" : { + "Stop Server Session" : { + + }, + "Stop Trusting" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "태그 이름" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "Etiket adı" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "Tên thẻ" + "value" : "신뢰 해제" } - }, - "zh-Hans" : { + } + } + }, + "Stop trusting %@?" : { + "localizations" : { + "ko" : { "stringUnit" : { "state" : "translated", - "value" : "标签名称" + "value" : "%@에 대한 신뢰를 해제하시겠습니까?" } - }, - "zh-Hant" : { + } + } + }, + "Stop trusting this developer?" : { + "localizations" : { + "ko" : { "stringUnit" : { "state" : "translated", - "value" : "標籤名稱" + "value" : "이 개발자에 대한 신뢰를 해제하시겠습니까?" } } } }, - "Tag: %@" : { - "extractionState" : "stale", + "Stopped" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "태그: %@" + "value" : "중지됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tag: %@" + "value" : "Durduruldu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thẻ: %@" + "value" : "Đã dừng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "标签:%@" + "value" : "已停止" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "標籤:%@" + "value" : "已停止" } } } }, - "Tags" : { + "Stopped after %@" : { + + }, + "Storage engine" : { + + }, + "Storage engine change" : { + + }, + "Storage engine differs: %@ on source, %@ on target." : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Storage engine differs: %1$@ on source, %2$@ on target." + } + } + } + }, + "Stored in the macOS Keychain and written to a temporary file only while the proxy runs." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "태그" + "value" : "macOS 키체인에 저장되며, 프록시가 실행되는 동안에만 임시 파일에 기록됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Etiketler" + "value" : "macOS Keychain'de saklanır ve yalnızca proxy çalışırken geçici bir dosyaya yazılır." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thẻ" + "value" : "Được lưu trong macOS Keychain và chỉ ghi ra tệp tạm khi proxy đang chạy." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "标签" + "value" : "保存在 macOS 钥匙串中,仅在代理运行期间写入临时文件。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "標籤" + "value" : "儲存在 macOS 鑰匙圈中,僅在代理執行期間寫入暫存檔案。" } } } }, - "Tags: %@" : { + "Streaming failed: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "태그: %@" + "value" : "스트리밍 실패: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Etiketler: %@" + "value" : "Akış başarısız: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thẻ: %@" + "value" : "Phát trực tuyến thất bại: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "标签:%@" + "value" : "流式传输失败:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "標籤:%@" + "value" : "串流失敗:%@" } } } }, - "Team" : { + "String" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "팀" + "value" : "문자열" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Team" + "value" : "String" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Team" + "value" : "Chuỗi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Team" + "value" : "字符串" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Team" + "value" : "字串" } } } }, - "Team Catalog" : { + "String values to escape" : { + + }, + "Structure" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "팀 카탈로그" + "value" : "구조" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Takım Kataloğu" + "value" : "Structure" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Danh mục nhóm" + "value" : "Cấu trúc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "团队目录" + "value" : "结构" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "團隊目錄" + "value" : "結構" } } } }, - "Team Library" : { + "Structure changes" : { + + }, + "Structure Changes" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "팀 라이브러리" + "value" : "구조 변경 사항" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Takım Kitaplığı" + "value" : "Yapı Değişiklikleri" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thư viện nhóm" + "value" : "Thay đổi cấu trúc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "团队库" + "value" : "结构更改" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "團隊庫" + "value" : "結構變更" } } } }, - "Template" : { + "Structure Comparison" : { + + }, + "Structure sync needs matching database types. %@ and %@ can be compared, but no script is generated." : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Structure sync needs matching database types. %1$@ and %2$@ can be compared, but no script is generated." + } + } + } + }, + "Structure, Drop, and Data options are configured per table in the table list." : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "템플릿" + "value" : "구조, 삭제 및 데이터 옵션은 테이블 목록에서 각 테이블별로 구성합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Template" + "value" : "Structure, Drop, and Data options are configured per table in the table list." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mẫu" + "value" : "Tùy chọn Cấu trúc, Xóa và Dữ liệu được cấu hình cho từng bảng trong danh sách bảng." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "模板" + "value" : "结构、删除和数据选项在表列表中按表单独配置。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "範本" + "value" : "結構、刪除與資料選項會在資料表清單中針對每個資料表個別設定。" } } } }, - "Template Name" : { - "extractionState" : "stale", + "Structured data format. Ideal for APIs and web applications." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "템플릿 이름" + "value" : "구조화된 데이터 형식입니다. API와 웹 애플리케이션에 적합합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Template Name" + "value" : "Yapılandırılmış veri biçimi. API'ler ve web uygulamaları için ideal." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên mẫu" + "value" : "Định dạng dữ liệu có cấu trúc. Lý tưởng cho API và ứng dụng web." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "模板名称" + "value" : "结构化数据格式。适用于 API 和 Web 应用。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "範本名稱" + "value" : "結構化資料格式。適合用於 API 與網頁應用程式。" } } } }, - "Temporarily disable foreign key constraints during import. Useful for importing data with circular dependencies." : { + "Submit" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "가져오는 동안 외래 키 제약 조건을 일시적으로 비활성화합니다. 순환 종속성이 있는 데이터를 가져올 때 유용합니다." + "value" : "제출" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Temporarily disable foreign key constraints during import. Useful for importing data with circular dependencies." + "value" : "Gönder" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tạm thời tắt ràng buộc khóa ngoại trong quá trình nhập. Hữu ích khi nhập dữ liệu có phụ thuộc vòng." + "value" : "Gửi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导入时临时禁用外键约束。适用于导入具有循环依赖的数据。" + "value" : "提交" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯入時暫時停用外鍵限制。適合用於匯入有循環相依關係的資料。" + "value" : "提交" } } } }, - "Teradata Vantage data warehouse" : { + "Submit Another" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Teradata Vantage 데이터 웨어하우스" + "value" : "다른 항목 제출" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Teradata Vantage veri ambarı" + "value" : "Bir Tane Daha Gönder" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kho dữ liệu Teradata Vantage" + "value" : "Gửi tiếp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Teradata Vantage 数据仓库" + "value" : "提交另一个" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Teradata Vantage 資料倉儲" + "value" : "再提交一筆" } } } }, - "Terminal" : { + "Submitting..." : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "터미널" + "value" : "제출 중..." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Terminal" + "value" : "Gönderiliyor..." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Terminal" + "value" : "Đang gửi..." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "终端" + "value" : "正在提交…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "終端機" + "value" : "正在提交…" } } } }, - "Terminal Unavailable" : { - "extractionState" : "stale", + "Succeeded" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "터미널을 사용할 수 없음" + "value" : "성공" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Terminal Kullanılamıyor" + "value" : "Başarılı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Terminal không khả dụng" + "value" : "Thành công" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "终端不可用" + "value" : "成功" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "終端機無法使用" + "value" : "成功" } } } }, - "Terminal bell" : { - "extractionState" : "stale", + "Success" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "터미널 벨" + "value" : "성공" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Terminal zili" + "value" : "Başarılı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuông terminal" + "value" : "Thành công" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "终端响铃" + "value" : "成功" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "終端機提示音" + "value" : "成功" } } } }, - "Terminate" : { + "Suggest indexes for a slow query from its plan and the indexes the tables already have" : { + + }, + "Suggest optimizations for the current query" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "종료" + "value" : "현재 쿼리의 최적화 제안" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sonlandır" + "value" : "Geçerli sorgu için optimizasyon öner" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết thúc" + "value" : "Gợi ý tối ưu cho truy vấn hiện tại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "终止" + "value" : "为当前查询提供优化建议" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "終止" + "value" : "為目前的查詢提供最佳化建議" } } } }, - "Terminate Session" : { + "Suggested Actions" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "세션 종료" + "value" : "제안된 작업" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Oturumu Sonlandır" + "value" : "Önerilen İşlemler" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết thúc phiên" + "value" : "Hành động gợi ý" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "终止会话" + "value" : "建议的操作" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "終止工作階段" + "value" : "建議的操作" } } } }, - "Terminate session %@" : { + "Summarize query history" : { + + }, + "Summarize what was run against a connection over a period, from the recorded history" : { + + }, + "Summary" : { + + }, + "Suspended" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "세션 %@ 종료" + "value" : "일시 중단됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ oturumunu sonlandır" + "value" : "Suspended" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết thúc phiên %@" + "value" : "Tạm ngưng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "终止会话 %@" + "value" : "已暂停" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "終止工作階段 %@" + "value" : "已暫停" } } } }, - "Tertiary Text" : { + "Swap" : { + + }, + "Swap Source and Target" : { + + }, + "Switch" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "3차 텍스트" + "value" : "전환" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Üçüncül Metin" + "value" : "Değiştir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Văn bản thứ ba" + "value" : "Chuyển" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "辅助文本" + "value" : "切换" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "第三層文字" + "value" : "切換" } } } }, - "Test" : { + "switch %@" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테스트" + "value" : "%@ 전환" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Test" + "value" : "%@ değiştir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kiểm tra" + "value" : "chuyển %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "测试" + "value" : "切换 %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "測試" + "value" : "切換 %@" } } } }, - "Test Connection" : { + "Switch %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 테스트" + "value" : "%@ 전환" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantıyı Test Et" + "value" : "%@ Değiştir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kiểm tra kết nối" + "value" : "Chuyển %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "测试连接" + "value" : "切换 %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "測試連線" + "value" : "切換 %@" } } } }, - "Test the current connection settings" : { + "Switch connection" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "현재 연결 설정 테스트" + "value" : "연결 전환" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geçerli bağlantı ayarlarını test et" + "value" : "Switch connection" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kiểm tra cài đặt kết nối hiện tại" + "value" : "Chuyển kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "测试当前连接设置" + "value" : "切换连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "測試目前的連線設定" + "value" : "切換連線" } } } }, - "Testing" : { + "Switch Connection" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테스트" + "value" : "연결 전환" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Test" + "value" : "Bağlantı Değiştir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kiểm thử" + "value" : "Chuyển kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "测试" + "value" : "切换连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "測試" + "value" : "切換連線" } } } }, - "Testing connection" : { + "Switch Connection (⌘⌥C)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 테스트 중" + "value" : "연결 전환 (⌘⌥C)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı test ediliyor" + "value" : "Switch Connection (⌘⌥C)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang kiểm tra kết nối" + "value" : "Chuyển kết nối (⌘⌥C)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在测试连接" + "value" : "切换连接 (⌘⌥C)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在測試連線" + "value" : "切換連線 (⌘⌥C)" } } } }, - "Text" : { + "Switch Connection…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "텍스트" + "value" : "연결 전환…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Metin" + "value" : "Bağlantı Değiştir…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Văn bản" + "value" : "Chuyển kết nối…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "文本" + "value" : "切换连接…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "文字" + "value" : "切換連線…" } } } }, - "Text Viewer" : { + "switch database" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "텍스트 뷰어" + "value" : "데이터베이스 전환" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Metin Görüntüleyici" + "value" : "veritabanı değiştir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trình xem văn bản" + "value" : "chuyển cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "文本查看器" + "value" : "切换数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "文字檢視器" + "value" : "切換資料庫" } } } }, - "Text: %@" : { + "Switch Database" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "텍스트: %@" + "value" : "데이터베이스 전환" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Metin: %@" + "value" : "Veritabanı Değiştir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Văn bản: %@" + "value" : "Chuyển cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "文本:%@" + "value" : "切换数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "文字:%@" + "value" : "切換資料庫" } } } }, - "That doesn't look like a valid license key. Check for typos and try again." : { + "Switch Database (⌘K)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "올바른 라이선스 키가 아닌 것 같습니다. 오타가 있는지 확인하고 다시 시도하십시오." + "value" : "데이터베이스 전환 (⌘K)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu geçerli bir lisans anahtarı gibi görünmüyor. Yazım hatalarını kontrol edip tekrar deneyin." + "value" : "Switch Database (⌘K)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mã giấy phép không hợp lệ. Kiểm tra lỗi chính tả và thử lại." + "value" : "Chuyển cơ sở dữ liệu (⌘K)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "这看起来不是有效的许可证密钥。请检查是否有拼写错误后重试。" + "value" : "切换数据库 (⌘K)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "這看起來不是有效的授權金鑰。請檢查是否有拼字錯誤後再試一次。" + "value" : "切換資料庫 (⌘K)" } } } }, - "That folder could not be read." : { + "Switch Failed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "해당 폴더를 읽을 수 없습니다." + "value" : "전환 실패" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu klasör okunamadı." + "value" : "Geçiş Başarısız Oldu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể đọc thư mục đó." + "value" : "Chuyển thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法读取该文件夹。" + "value" : "切换失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法讀取該資料夾。" + "value" : "切換失敗" } } } }, - "That regular expression could not be read. Check the syntax and try again." : { + "Switch First Row Between Header and Data" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "해당 정규식을 해석할 수 없습니다. 구문을 확인하고 다시 시도하십시오." + "value" : "첫 번째 행을 머리글과 데이터 간에 전환" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu düzenli ifade okunamadı. Söz dizimini denetleyip tekrar deneyin." + "value" : "İlk Satırı Başlık ve Veri Arasında Değiştir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể đọc biểu thức chính quy đó. Kiểm tra cú pháp và thử lại." + "value" : "Chuyển hàng đầu giữa tiêu đề và dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法解析该正则表达式。请检查语法后重试。" + "value" : "在标题行与数据行之间切换第一行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法解析該正規表達式。請檢查語法後再試一次。" + "value" : "在標題列與資料列之間切換第一列" } } } }, - "The %@ command line tool is not installed." : { + "Switch First Row Between Header/Data" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 명령줄 도구가 설치되어 있지 않습니다." + "value" : "첫 번째 행을 머리글/데이터 간에 전환" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ komut satırı aracı yüklü değil." + "value" : "İlk Satırı Başlık/Veri Arasında Değiştir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Công cụ dòng lệnh %@ chưa được cài đặt." + "value" : "Chuyển dòng đầu giữa tiêu đề và dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "尚未安装 %@ 命令行工具。" + "value" : "将首行在表头与数据之间切换" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "尚未安裝 %@ 命令列工具。" + "value" : "將首列在標題與資料之間切換" } } } }, - "The %@ plugin is not installed. Would you like to download it from the plugin marketplace?" : { + "switch schema" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 플러그인이 설치되어 있지 않습니다. 플러그인 마켓플레이스에서 다운로드하시겠습니까?" + "value" : "스키마 전환" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "The %@ plugin is not installed. Would you like to indirme it from the plugin marketplace?" + "value" : "şema değiştir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Plugin %@ chưa được cài đặt. Bạn có muốn tải về từ chợ plugin?" + "value" : "chuyển schema" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 插件未安装。是否要从插件市场下载?" + "value" : "切换 Schema" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "尚未安裝 %@ 外掛。是否要從外掛市集下載?" + "value" : "切換綱要" } } } }, - "The %@ plugin is not installed. You can download it from the plugin marketplace." : { + "Switch Schema" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 플러그인이 설치되어 있지 않습니다. 플러그인 마켓플레이스에서 다운로드할 수 있습니다." + "value" : "스키마 전환" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "The %@ plugin is not installed. You can indirme it from the plugin marketplace." + "value" : "Şema Değiştir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Plugin %@ chưa được cài đặt. Bạn có thể tải về từ chợ plugin." + "value" : "Chuyển schema" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 插件未安装。您可以从插件市场下载。" + "value" : "切换 Schema" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "尚未安裝 %@ 外掛。你可以從外掛市集下載。" + "value" : "切換綱要" } } } }, - "The API key will be permanently deleted." : { + "Switch the active database on a connection" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "API 키가 영구적으로 삭제됩니다." + "value" : "연결의 활성 데이터베이스를 전환합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "API anahtarı kalıcı olarak silinecek." + "value" : "Bir bağlantıdaki etkin veritabanını değiştirir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "API key sẽ bị xóa vĩnh viễn." + "value" : "Chuyển cơ sở dữ liệu đang hoạt động trên một kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "API 密钥将被永久删除。" + "value" : "切换连接的活动数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "API 金鑰將被永久刪除。" + "value" : "切換連線上使用中的資料庫" } } } }, - "The Access application policy must use a Service Auth rule, or Cloudflare still prompts for browser sign-in." : { + "Switch the active schema on a connection" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Access 애플리케이션 정책에서 Service Auth 규칙을 사용해야 합니다. 그렇지 않으면 Cloudflare가 계속 브라우저 로그인을 요청합니다." + "value" : "연결의 활성 스키마를 전환합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Access uygulama politikası bir Service Auth kuralı kullanmalıdır; aksi halde Cloudflare yine tarayıcıdan giriş ister." + "value" : "Bir bağlantıdaki etkin şemayı değiştirir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chính sách ứng dụng Access phải dùng quy tắc Service Auth, nếu không Cloudflare vẫn yêu cầu đăng nhập qua trình duyệt." + "value" : "Chuyển schema đang hoạt động trên một kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Access 应用策略必须使用 Service Auth 规则,否则 Cloudflare 仍会要求浏览器登录。" + "value" : "切换连接的活动 Schema" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Access 應用程式原則必須使用 Service Auth 規則,否則 Cloudflare 仍會要求透過瀏覽器登入。" + "value" : "切換連線上使用中的綱要" } } } }, - "The ChatGPT account could not be identified." : { + "Switch the comparison to Data to see row differences." : { + + }, + "Switch the comparison to Structure to see definitions." : { + + }, + "Switch to Inline Configuration" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Switch to Inline Configuration" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "ChatGPT 계정을 확인할 수 없습니다." + "value" : "인라인 구성으로 전환" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "ChatGPT hesabı tanımlanamadı." + "value" : "Satır İçi Yapılandırmaya Geç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể xác định tài khoản ChatGPT." + "value" : "Chuyển sang cấu hình nội tuyến" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法识别 ChatGPT 账户。" + "value" : "切换为内联配置" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法識別 ChatGPT 帳戶。" + "value" : "切換為內嵌設定" } } } }, - "The ChatGPT sign-in token could not be read." : { + "Switch to Tab" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "ChatGPT 로그인 토큰을 읽을 수 없습니다." + "value" : "탭으로 전환" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "ChatGPT giriş belirteci okunamadı." + "value" : "Sekmeye Geç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể đọc mã đăng nhập ChatGPT." + "value" : "Chuyển đến tab" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法读取 ChatGPT 登录令牌。" + "value" : "切换到标签页" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法讀取 ChatGPT 登入權杖。" + "value" : "切換到分頁" } } } }, - "The Cloud SQL Auth Proxy did not become ready in time." : { + "Switch to this database before executing" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Cloud SQL Auth Proxy가 제한 시간 내에 준비되지 않았습니다." + "value" : "실행 전에 이 데이터베이스로 전환" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Cloud SQL Auth Proxy zamanında hazır olmadı." + "value" : "Yürütmeden önce bu veritabanına geç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cloud SQL Auth Proxy không sẵn sàng kịp thời." + "value" : "Chuyển sang cơ sở dữ liệu này trước khi thực thi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Cloud SQL Auth Proxy 未能及时就绪。" + "value" : "执行前切换到此数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Cloud SQL Auth Proxy 未能及時就緒。" + "value" : "執行前切換到此資料庫" } } } }, - "The Cloud SQL Auth Proxy did not become ready in time: %@" : { + "Switch to this schema before executing" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Cloud SQL Auth Proxy가 제한 시간 내에 준비되지 않았습니다: %@" + "value" : "실행 전에 이 스키마로 전환" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Cloud SQL Auth Proxy zamanında hazır olmadı: %@" + "value" : "Yürütmeden önce bu şemaya geç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cloud SQL Auth Proxy không sẵn sàng kịp thời: %@" + "value" : "Chuyển sang schema này trước khi thực thi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Cloud SQL Auth Proxy 未能及时就绪:%@" + "value" : "执行前切换到此 Schema" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Cloud SQL Auth Proxy 未能及時就緒:%@" + "value" : "執行前切換到此綱要" } } } }, - "The Cloud SQL Auth Proxy failed to start." : { + "Switching to database '%@' timed out." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Cloud SQL Auth Proxy를 시작하지 못했습니다." + "value" : "데이터베이스 '%@' 전환 시간이 초과되었습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Cloud SQL Auth Proxy başlatılamadı." + "value" : "'%@' veritabanına geçiş zaman aşımına uğradı." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cloud SQL Auth Proxy không khởi động được." + "value" : "Chuyển sang cơ sở dữ liệu '%@' đã hết thời gian chờ." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Cloud SQL Auth Proxy 启动失败。" + "value" : "切换到数据库 '%@' 超时。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Cloud SQL Auth Proxy 啟動失敗。" + "value" : "切換到資料庫 '%@' 已逾時。" } } } }, - "The Cloud SQL Auth Proxy failed to start: %@" : { + "Switching to schema '%@' timed out." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Cloud SQL Auth Proxy를 시작하지 못했습니다: %@" + "value" : "스키마 '%@' 전환 시간이 초과되었습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Cloud SQL Auth Proxy başlatılamadı: %@" + "value" : "'%@' şemasına geçiş zaman aşımına uğradı." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cloud SQL Auth Proxy không khởi động được: %@" + "value" : "Chuyển sang schema '%@' đã hết thời gian chờ." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Cloud SQL Auth Proxy 启动失败:%@" + "value" : "切换到 Schema '%@' 超时。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Cloud SQL Auth Proxy 啟動失敗:%@" + "value" : "切換到綱要 '%@' 已逾時。" } } } }, - "The Cloudflare tunnel did not become ready in time." : { + "Sync" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Cloudflare 터널이 제한 시간 내에 준비되지 않았습니다." + "value" : "동기화" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Cloudflare tüneli zamanında hazır olmadı." + "value" : "Sync" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tunnel Cloudflare không sẵn sàng kịp thời." + "value" : "Đồng bộ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Cloudflare 隧道未能及时就绪。" + "value" : "同步" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Cloudflare 隧道未能及時就緒。" + "value" : "同步" } } } }, - "The Cloudflare tunnel did not become ready in time: %@" : { + "Sync (Pro)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Cloudflare 터널이 제한 시간 내에 준비되지 않았습니다: %@" + "value" : "동기화 (Pro)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Cloudflare tüneli zamanında hazır olmadı: %@" + "value" : "Senkronizasyon (Pro)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tunnel Cloudflare không sẵn sàng kịp thời: %@" + "value" : "Đồng bộ (Pro)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Cloudflare 隧道未能及时就绪:%@" + "value" : "同步(Pro)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Cloudflare 隧道未能及時就緒:%@" + "value" : "同步(Pro)" } } } }, - "The Codex CLI login could not be read." : { + "Sync Categories" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Codex CLI 로그인을 읽을 수 없습니다." + "value" : "동기화 범주" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Codex CLI girişi okunamadı." + "value" : "Eşitleme Kategorileri" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể đọc đăng nhập Codex CLI." + "value" : "Danh mục đồng bộ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法读取 Codex CLI 登录。" + "value" : "同步分类" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法讀取 Codex CLI 登入。" + "value" : "同步分類" } } } }, - "The Cursor CLI is not installed." : { + "Sync Conflict" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Cursor CLI가 설치되어 있지 않습니다." + "value" : "동기화 충돌" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Cursor CLI yüklü değil." + "value" : "Sync Conflict" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cursor CLI chưa được cài đặt." + "value" : "Xung đột đồng bộ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未安装 Cursor CLI。" + "value" : "同步冲突" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "尚未安裝 Cursor CLI。" + "value" : "同步衝突" } } } }, - "The Cursor CLI is not installed. Install it, then sign in." : { + "Sync connections, settings, and favorites across your Macs." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Cursor CLI가 설치되어 있지 않습니다. 설치한 다음 로그인하십시오." + "value" : "Mac 간에 연결, 설정 및 즐겨찾기를 동기화합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Cursor CLI yüklü değil. Yükleyin, sonra giriş yapın." + "value" : "Bağlantıları, ayarları ve sık kullanılanları Mac'leriniz arasında eşitleyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cursor CLI chưa được cài đặt. Hãy cài đặt rồi đăng nhập." + "value" : "Đồng bộ kết nối, cài đặt và mục yêu thích giữa các máy Mac của bạn." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未安装 Cursor CLI。请先安装,然后登录。" + "value" : "在你的多台 Mac 之间同步连接、设置和收藏。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "尚未安裝 Cursor CLI。請先安裝,然後登入。" - } - } - } - }, - "The Microsoft Entra ID access token was rejected by the driver." : { - "localizations" : { - "ko" : { - "stringUnit" : { - "value" : "Microsoft Entra ID 액세스 토큰이 드라이버에서 거부되었습니다.", - "state" : "translated" - } - } - } - }, - "The Oracle listener refused the connection (ORA-%ld)." : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "Oracle 리스너가 연결을 거부했습니다(ORA-%ld)." - } - } - } - }, - "The Oracle listener refused the connection." : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "Oracle 리스너가 연결을 거부했습니다." - } - } - } - }, - "The Oracle server closed the connection during the login handshake." : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "Oracle 서버가 로그인 핸드셰이크 중 연결을 종료했습니다." + "value" : "在你的多台 Mac 之間同步連線、設定和我的最愛。" } } } }, - "The SOCKS proxy configuration is incomplete. Enter a proxy host and port." : { + "Sync connections, settings, and history across your Macs." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SOCKS 프록시 구성이 완료되지 않았습니다. 프록시 호스트와 포트를 입력하십시오." + "value" : "Mac 간에 연결, 설정 및 기록을 동기화합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SOCKS proxy yapılandırması eksik. Bir proxy sunucusu ve portu girin." + "value" : "Sync connections, settings, and history across your Macs." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cấu hình SOCKS proxy chưa đầy đủ. Hãy nhập máy chủ và cổng proxy." + "value" : "Đồng bộ kết nối, cài đặt và lịch sử giữa các máy Mac." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SOCKS 代理配置不完整。请输入代理主机和端口。" + "value" : "在多台 Mac 之间同步连接、设置和历史记录。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SOCKS 代理設定不完整。請輸入代理主機與連接埠。" + "value" : "在你的多台 Mac 之間同步連線、設定與歷程記錄。" } } } }, - "The SSH server connects to this socket instead of Host and Port. A database on a socket cannot negotiate TLS, so TablePro turns it off; the SSH tunnel still encrypts the whole path." : { + "Sync Error" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 서버는 호스트 및 포트 대신 이 소켓에 연결합니다. 소켓의 데이터베이스는 TLS를 협상할 수 없으므로 TablePro에서 TLS를 끕니다. 단, SSH 터널은 전체 경로를 계속 암호화합니다." + "value" : "동기화 오류" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH sunucusu, Sunucu ve Port yerine bu sokete bağlanır. Soket üzerindeki bir veritabanı TLS anlaşması yapamaz, bu yüzden TablePro TLS'i kapatır; SSH tüneli yine de tüm yolu şifreler." + "value" : "Eşitleme Hatası" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Máy chủ SSH kết nối tới socket này thay vì Máy chủ và Cổng. Cơ sở dữ liệu trên socket không thể thương lượng TLS, nên TablePro tắt TLS; đường hầm SSH vẫn mã hóa toàn bộ đường truyền." + "value" : "Lỗi đồng bộ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 服务器会连接到此 socket,而不是主机和端口。socket 上的数据库无法协商 TLS,因此 TablePro 会关闭 TLS;SSH 隧道仍然加密整条链路。" + "value" : "同步错误" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 伺服器會連線到此 socket,而不是主機與連接埠。socket 上的資料庫無法協商 TLS,因此 TablePro 會關閉 TLS;SSH 通道仍會加密整條路徑。" + "value" : "同步錯誤" } } } }, - "The SSH server could not reach %@. That address is resolved from the SSH server, not from your Mac, so a database that only listens on 127.0.0.1 needs Host set to localhost. Also check that sshd allows TCP forwarding (AllowTcpForwarding). (%@)" : { + "Sync Now" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "The SSH server could not reach %1$@. That address is resolved from the SSH server, not from your Mac, so a database that only listens on 127.0.0.1 needs Host set to localhost. Also check that sshd allows TCP forwarding (AllowTcpForwarding). (%2$@)" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 서버에서 %1$@에 연결할 수 없습니다. 이 주소는 Mac이 아니라 SSH 서버에서 확인되므로, 127.0.0.1에서만 수신하는 데이터베이스의 호스트는 localhost로 설정해야 합니다. sshd에서 TCP 전달(AllowTcpForwarding)을 허용하는지도 확인하십시오. (%2$@)" + "value" : "지금 동기화" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH sunucusu %1$@ adresine ulaşamadı. Bu adres sizin Mac'inizden değil, SSH sunucusundan çözümlenir; bu yüzden yalnızca 127.0.0.1 dinleyen bir veritabanı için Sunucu alanı localhost olmalıdır. Ayrıca sshd'nin TCP yönlendirmeye izin verdiğini denetleyin (AllowTcpForwarding). (%2$@)" + "value" : "Şimdi Eşitle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Máy chủ SSH không thể kết nối tới %1$@. Địa chỉ đó được phân giải từ máy chủ SSH chứ không phải từ máy Mac của bạn, nên cơ sở dữ liệu chỉ lắng nghe trên 127.0.0.1 cần đặt Máy chủ là localhost. Ngoài ra hãy kiểm tra sshd có cho phép chuyển tiếp TCP không (AllowTcpForwarding). (%2$@)" + "value" : "Đồng bộ ngay" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 服务器无法访问 %1$@。该地址是从 SSH 服务器解析的,而不是从你的 Mac 解析,因此只监听 127.0.0.1 的数据库需要把主机设为 localhost。另请检查 sshd 是否允许 TCP 转发(AllowTcpForwarding)。(%2$@)" + "value" : "立即同步" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 伺服器無法連到 %1$@。該位址是從 SSH 伺服器解析的,而不是從你的 Mac 解析,因此只監聽 127.0.0.1 的資料庫需要將主機設為 localhost。另請檢查 sshd 是否允許 TCP 轉送(AllowTcpForwarding)。(%2$@)" + "value" : "立即同步" } } } }, - "The SSH server did not accept passwordless authentication. Choose Password, Private Key, or SSH Agent." : { + "Sync Off" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 서버에서 암호 없는 인증을 허용하지 않았습니다. 암호, 개인 키 또는 SSH 에이전트를 선택하십시오." + "value" : "동기화 끔" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH sunucusu parolasız kimlik doğrulamayı kabul etmedi. Parola, Özel Anahtar veya SSH Agent seçin." + "value" : "Eşitleme Kapalı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Máy chủ SSH không chấp nhận xác thực không mật khẩu. Hãy chọn Mật khẩu, Khóa riêng hoặc SSH Agent." + "value" : "Tắt đồng bộ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 服务器不接受无密码认证。请选择密码、私钥或 SSH Agent。" + "value" : "同步已关闭" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 伺服器不接受無密碼驗證。請選擇密碼、私密金鑰或 SSH Agent。" + "value" : "同步已關閉" } } } }, - "The SSH server did not open a forwarding channel to %@ within %d seconds. Check for a firewall between the SSH server and that address." : { + "Sync paused — Pro license expired" : { + "extractionState" : "stale", "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "The SSH server did not open a forwarding channel to %1$@ within %2$d seconds. Check for a firewall between the SSH server and that address." - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 서버가 %2$d초 이내에 %1$@에 대한 전달 채널을 열지 못했습니다. SSH 서버와 해당 주소 사이에 방화벽이 있는지 확인하십시오." + "value" : "동기화 일시 중지 — Pro 라이선스 만료" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH sunucusu %2$d saniye içinde %1$@ adresine bir yönlendirme kanalı açmadı. SSH sunucusu ile bu adres arasında güvenlik duvarı olup olmadığını denetleyin." + "value" : "Sync paused — Pro license expired" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Máy chủ SSH không mở kênh chuyển tiếp tới %1$@ trong %2$d giây. Hãy kiểm tra tường lửa giữa máy chủ SSH và địa chỉ đó." + "value" : "Tạm dừng đồng bộ — giấy phép Pro đã hết hạn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 服务器未在 %2$d 秒内建立到 %1$@ 的转发通道。请检查 SSH 服务器与该地址之间是否有防火墙。" + "value" : "同步已暂停 - Pro 许可证已过期" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 伺服器未在 %2$d 秒內建立到 %1$@ 的轉送通道。請檢查 SSH 伺服器與該位址之間是否有防火牆。" + "value" : "同步已暫停,Pro 授權已過期" } } } }, - "The SSH server is asking for additional verification." : { + "Sync paused, Pro license expired" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 서버에서 추가 인증을 요청하고 있습니다." + "value" : "동기화 일시 중지, Pro 라이선스 만료" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH sunucusu ek doğrulama istiyor." + "value" : "Eşitleme duraklatıldı, Pro lisansının süresi doldu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Máy chủ SSH đang yêu cầu xác minh bổ sung." + "value" : "Đồng bộ đã tạm dừng, giấy phép Pro đã hết hạn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 服务器要求进行额外验证。" + "value" : "同步已暂停,Pro 许可证已过期" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 伺服器要求進行額外驗證。" + "value" : "同步已暫停,Pro 授權已過期" } } } }, - "The SSH server would not forward the socket %@. Check that the path exists on the server and that sshd allows socket forwarding (AllowStreamLocalForwarding). (%@)" : { + "Sync Status" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "The SSH server would not forward the socket %1$@. Check that the path exists on the server and that sshd allows socket forwarding (AllowStreamLocalForwarding). (%2$@)" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 서버에서 소켓 %1$@ 전달을 허용하지 않았습니다. 서버에 해당 경로가 있는지, sshd에서 소켓 전달(AllowStreamLocalForwarding)을 허용하는지 확인하십시오. (%2$@)" + "value" : "동기화 상태" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH sunucusu %1$@ soketini yönlendirmedi. Yolun sunucuda var olduğunu ve sshd'nin soket yönlendirmeye izin verdiğini denetleyin (AllowStreamLocalForwarding). (%2$@)" + "value" : "Eşitleme Durumu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Máy chủ SSH không chuyển tiếp socket %1$@. Hãy kiểm tra đường dẫn có tồn tại trên máy chủ và sshd có cho phép chuyển tiếp socket không (AllowStreamLocalForwarding). (%2$@)" + "value" : "Trạng thái đồng bộ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 服务器未转发 socket %1$@。请检查该路径在服务器上是否存在,以及 sshd 是否允许 socket 转发(AllowStreamLocalForwarding)。(%2$@)" + "value" : "同步状态" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 伺服器未轉送 socket %1$@。請檢查該路徑在伺服器上是否存在,以及 sshd 是否允許 socket 轉送(AllowStreamLocalForwarding)。(%2$@)" + "value" : "同步狀態" } } } }, - "The SSO session for profile \"%@\" has expired. Sign in with your browser?" : { + "Sync token expired. A full sync will be performed." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "프로필 \"%@\"의 SSO 세션이 만료되었습니다. 브라우저에서 로그인하시겠습니까?" + "value" : "동기화 토큰이 만료되었습니다. 전체 동기화를 수행합니다." + } + } + } + }, + "Sync zone not found. A full sync will be performed." : { + "extractionState" : "stale", + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "동기화 영역을 찾을 수 없습니다. 전체 동기화를 수행합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "\"%@\" profilinin SSO oturumunun süresi doldu. Tarayıcınızla giriş yapmak ister misiniz?" + "value" : "Eşitleme bölgesi bulunamadı. Tam eşitleme yapılacak." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phiên SSO của hồ sơ \"%@\" đã hết hạn. Đăng nhập bằng trình duyệt?" + "value" : "Không tìm thấy vùng đồng bộ. Sẽ thực hiện đồng bộ toàn bộ." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "配置文件 \"%@\" 的 SSO 会话已过期。要通过浏览器登录吗?" + "value" : "未找到同步区域。将执行完整同步。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "設定檔「%@」的 SSO 工作階段已過期。要透過瀏覽器登入嗎?" + "value" : "找不到同步區域。將執行完整同步。" } } } }, - "The authenticity of host '%@' can't be established.\n\n%@ key fingerprint is:\n%@\n\nAre you sure you want to continue connecting?" : { + "Synced" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "The authenticity of host '%1$@' can't be established.\n\n%2$@ key fingerprint is:\n%3$@\n\nAre you sure you want to continue connecting?" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "호스트 '%1$@'의 신뢰성을 확인할 수 없습니다.\n\n%2$@ 키 지문:\n%3$@\n\n계속 연결하시겠습니까?" + "value" : "동기화됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "The authenticity / host '%@' can't be established.\n\n%@ key fingerprint is:\n%@\n\nAre you sure you want to continue connecting?" + "value" : "Synced" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể xác minh tính xác thực của máy chủ '%@'.\n\nVân tay khóa %@ là:\n%@\n\nBạn có chắc chắn muốn tiếp tục kết nối?" + "value" : "Đã đồng bộ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法确认主机 '%@' 的真实性。\n\n%@ 密钥指纹为:\n%@\n\n确定要继续连接吗?" + "value" : "已同步" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法確認主機「%1$@」的真實性。\n\n%2$@ 金鑰指紋為:\n%3$@\n\n你確定要繼續連線嗎?" + "value" : "已同步" } } } }, - "The bundled sample database is missing from the app." : { + "Syncing data from %@ to %@. Value formatting can differ between engines; review the script before applying." : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Syncing data from %1$@ to %2$@. Value formatting can differ between engines; review the script before applying." + } + } + } + }, + "Syncing with iCloud…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "앱에 포함된 샘플 데이터베이스가 없습니다." + "value" : "iCloud와 동기화 중…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Uygulamayla birlikte gelen örnek veritabanı eksik." + "value" : "iCloud ile eşitleniyor…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cơ sở dữ liệu mẫu đi kèm bị thiếu trong ứng dụng." + "value" : "Đang đồng bộ với iCloud…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "应用中缺少内置的示例数据库。" + "value" : "正在与 iCloud 同步…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "應用程式中缺少內建的範例資料庫。" + "value" : "正在與 iCloud 同步…" } } } }, - "The catalog location is not a folder: %@" : { + "Syncing…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "카탈로그 위치가 폴더가 아닙니다: %@" + "value" : "동기화 중…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Katalog konumu bir klasör değil: %@" + "value" : "Syncing…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Vị trí danh mục không phải là thư mục: %@" + "value" : "Đang đồng bộ…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "目录位置不是文件夹:%@" + "value" : "正在同步…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "目錄位置不是資料夾:%@" + "value" : "正在同步…" } } } }, - "The code expires in 15 minutes." : { + "Syncs connections, settings, and history across your Macs via iCloud." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "코드는 15분 후 만료됩니다." + "value" : "iCloud를 통해 Mac 간에 연결, 설정 및 기록을 동기화합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kod 15 dakika içinde sona erer." + "value" : "Syncs connections, settings, and history across your Macs via iCloud." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mã sẽ hết hạn sau 15 phút." + "value" : "Đồng bộ kết nối, cài đặt và lịch sử giữa các máy Mac qua iCloud." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "代码将在 15 分钟后过期。" + "value" : "通过 iCloud 在多台 Mac 之间同步连接、设置和历史记录。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "驗證碼將在 15 分鐘後過期。" + "value" : "透過 iCloud 在你的多台 Mac 之間同步連線、設定與歷程記錄。" } } } }, - "The code has been copied to your clipboard." : { + "Syncs connections, settings, and SSH profiles across your Macs via iCloud." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "코드가 클립보드에 복사되었습니다." + "value" : "iCloud를 통해 Mac 간에 연결, 설정 및 SSH 프로필을 동기화합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kod panonuza kopyalandı." + "value" : "Bağlantıları, ayarları ve SSH profillerini iCloud üzerinden Mac'leriniz arasında senkronize eder." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mã đã được sao chép vào clipboard." + "value" : "Đồng bộ kết nối, cài đặt và cấu hình SSH giữa các máy Mac qua iCloud." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "代码已复制到剪贴板。" + "value" : "通过 iCloud 在多台 Mac 之间同步连接、设置和 SSH 配置。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "驗證碼已複製到剪貼簿。" + "value" : "透過 iCloud 在你的多台 Mac 之間同步連線、設定與 SSH 設定檔。" } } } }, - "The connection is not available. Reconnect and try again." : { + "Syncs connections, table favorites, settings, and SSH profiles across your Macs via iCloud." : { + "comment" : "A description of the functionality of the \"iCloud Sync\" toggle.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결을 사용할 수 없습니다. 다시 연결한 후 재시도하십시오." + "value" : "iCloud를 통해 Mac 간에 연결, 테이블 즐겨찾기, 설정 및 SSH 프로필을 동기화합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı kullanılamıyor. Yeniden bağlanıp tekrar deneyin." + "value" : "Bağlantıları, tablo sık kullanılanlarını, ayarları ve SSH profillerini iCloud aracılığıyla Mac'leriniz arasında eşzamanlar." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối không khả dụng. Hãy kết nối lại và thử lại." + "value" : "Đồng bộ kết nối, bảng yêu thích, cài đặt và hồ sơ SSH giữa các máy Mac của bạn qua iCloud." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接不可用。请重新连接后重试。" + "value" : "通过 iCloud 在你的多台 Mac 之间同步连接、表收藏、设置和 SSH 配置。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線無法使用。請重新連線後再試一次。" + "value" : "透過 iCloud 在你的多台 Mac 之間同步連線、資料表我的最愛、設定和 SSH 設定檔。" } } } }, - "The connection this query was recorded against no longer exists." : { - "comment" : "Error message shown when a query cannot be opened because the connection it was recorded against no longer exists.", - "isCommentAutoGenerated" : true, + "Syncs passwords via iCloud Keychain (end-to-end encrypted)." : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Syncs passwords via iCloud Keychain (end-to-end encrypted)." + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 쿼리를 기록한 연결이 더 이상 존재하지 않습니다." + "value" : "iCloud 키체인을 통해 암호를 동기화합니다(종단 간 암호화)." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu sorgunun kaydedildiği bağlantı artık yok." + "value" : "Parolaları iCloud Keychain ile senkronize eder (uçtan uca şifreli)." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối mà truy vấn này được ghi lại không còn tồn tại." + "value" : "Đồng bộ mật khẩu qua iCloud Keychain (mã hoá đầu cuối)." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "记录此查询时使用的连接已不存在。" + "value" : "通过 iCloud 钥匙串同步密码(端到端加密)。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "記錄此查詢時使用的連線已不存在。" + "value" : "透過 iCloud 鑰匙圈同步密碼(端對端加密)。" } } } }, - "The connection was closed." : { + "Syntax Colors" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결이 종료되었습니다." + "value" : "구문 색상" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı kapatıldı." + "value" : "Sözdizimi Renkleri" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối đã bị đóng." + "value" : "Màu cú pháp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接已关闭。" + "value" : "语法颜色" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線已關閉。" + "value" : "語法顏色" } } } }, - "The database filter hides every database on this connection." : { + "Syntax highlighting, autocomplete, and multi-tab editing" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 필터로 인해 이 연결의 모든 데이터베이스가 숨겨졌습니다." + "value" : "구문 강조, 자동 완성 및 다중 탭 편집" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı filtresi bu bağlantıdaki tüm veritabanlarını gizliyor." + "value" : "Sözdizimi vurgulama, otomatik tamamlama ve çoklu sekme düzenleme" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bộ lọc cơ sở dữ liệu đang ẩn mọi cơ sở dữ liệu trên kết nối này." + "value" : "Tô sáng cú pháp, tự động hoàn thành và chỉnh sửa nhiều tab" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "数据库筛选隐藏了此连接上的所有数据库。" + "value" : "语法高亮、自动补全和多标签编辑" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料庫篩選隱藏了此連線上的所有資料庫。" + "value" : "語法上色、自動完成與多分頁編輯" } } } }, - "The database server enforced this, not TablePro's Safe Mode. You are most likely connected to a read replica, or the server sets new transactions to read-only. Connect to the primary server to write.\n\nServer response: %@" : { + "System" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro의 안전 모드가 아니라 데이터베이스 서버에서 적용한 제한입니다. 읽기 전용 복제본에 연결했거나 서버에서 새 트랜잭션을 읽기 전용으로 설정했을 가능성이 큽니다. 쓰려면 기본 서버에 연결하십시오.\n\n서버 응답: %@" + "value" : "시스템" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bunu TablePro'nun Safe Mode ayarı değil, veritabanı sunucusu uyguladı. Büyük olasılıkla bir okuma kopyasına bağlısınız veya sunucu yeni işlemleri salt okunur yapıyor. Yazmak için birincil sunucuya bağlanın.\n\nSunucu yanıtı: %@" + "value" : "Sistem" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đây là do máy chủ cơ sở dữ liệu áp đặt, không phải Chế độ an toàn của TablePro. Nhiều khả năng bạn đang kết nối tới bản sao chỉ đọc, hoặc máy chủ đặt các giao dịch mới ở chế độ chỉ đọc. Hãy kết nối tới máy chủ chính để ghi.\n\nPhản hồi của máy chủ: %@" + "value" : "Hệ thống" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "这是数据库服务器的限制,不是 TablePro 的安全模式。你很可能连接到了只读副本,或者服务器将新事务设为只读。请连接主服务器以写入。\n\n服务器响应:%@" + "value" : "系统" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "這是資料庫伺服器的限制,不是 TablePro 的安全模式。你很可能連線到唯讀副本,或伺服器將新交易設為唯讀。請連線到主要伺服器以寫入。\n\n伺服器回應:%@" + "value" : "系統" } } } }, - "The database server rejected this write because the connection is read-only." : { + "System Reserved Shortcut" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결이 읽기 전용이어서 데이터베이스 서버에서 이 쓰기 작업을 거부했습니다." + "value" : "시스템 예약 단축키" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı salt okunur olduğu için veritabanı sunucusu bu yazma işlemini reddetti." + "value" : "Sistem Ayrılmış Kısayol" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Máy chủ cơ sở dữ liệu từ chối thao tác ghi này vì kết nối ở chế độ chỉ đọc." + "value" : "Phím tắt hệ thống" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "数据库服务器拒绝了此次写入,因为该连接为只读。" + "value" : "系统保留快捷键" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料庫伺服器拒絕了這次寫入,因為該連線為唯讀。" + "value" : "系統保留快速鍵" } } } }, - "The database this user belongs to" : { + "System Table" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 사용자가 속한 데이터베이스" + "value" : "시스템 테이블" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu kullanıcının ait olduğu veritabanı" + "value" : "Sistem Tablosu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cơ sở dữ liệu mà người dùng này thuộc về" + "value" : "Bảng hệ thống" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此用户所属的数据库" + "value" : "系统表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此使用者所屬的資料庫" + "value" : "系統資料表" } } } }, - "The destructive query to execute" : { + "System Tables" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "실행할 파괴적 쿼리" + "value" : "시스템 테이블" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yürütülecek yıkıcı sorgu" + "value" : "Sistem Tabloları" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Truy vấn có tính phá hủy cần thực thi" + "value" : "Bảng hệ thống" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "要执行的破坏性查询" + "value" : "系统表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "要執行的破壞性查詢" + "value" : "系統資料表" } } } }, - "The diagram could not be converted to a PNG image." : { - "comment" : "Error message when the ER diagram could not be exported as PNG.", - "isCommentAutoGenerated" : true, + "Tab" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다이어그램을 PNG 이미지로 변환할 수 없습니다." + "value" : "탭" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Diyagram PNG görüntüsüne dönüştürülemedi." + "value" : "Sekme" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể chuyển sơ đồ thành ảnh PNG." + "value" : "Tab" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法将图表转换为 PNG 图片。" + "value" : "制表符" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法將圖表轉換為 PNG 圖片。" + "value" : "定位字元" } } } }, - "The encrypted file is corrupt or incomplete" : { + "Tab Behavior" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "암호화된 파일이 손상되었거나 불완전합니다" + "value" : "탭 동작" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Şifreli dosya bozuk veya eksik" + "value" : "Tab Behavior" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tệp mã hóa bị hỏng hoặc không đầy đủ" + "value" : "Hành vi tab" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "加密文件已损坏或不完整" + "value" : "标签页行为" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "加密的檔案已損毀或不完整" + "value" : "分頁行為" } } } }, - "The folder \"%@\" will be deleted. Items inside will be moved to the parent level." : { + "Tab id from list_recent_tabs" : { + + }, + "Tab id, accepted by focus_query_tab" : { + + }, + "Tab label" : { + + }, + "Tab that came forward" : { + + }, + "Tab that was raised" : { + + }, + "Tab width:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "\"%@\" 폴더가 삭제됩니다. 폴더 안의 항목은 상위 단계로 이동됩니다." + "value" : "탭 너비:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "\"%@\" klasörü silinecek. İçindeki öğeler bir üst seviyeye taşınacak." + "value" : "Sekme genişliği:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thư mục \"%@\" sẽ bị xoá. Các mục bên trong sẽ được chuyển lên cấp cha." + "value" : "Độ rộng tab:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "文件夹 \"%@\" 将被删除。其中的项目将移至上一级。" + "value" : "制表符宽度:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料夾「%@」將被刪除。其中的項目將移至上一層。" + "value" : "Tab 寬度:" } } } }, - "The following %d queries may permanently modify or delete data. This action cannot be undone.\n\n%@" : { - "extractionState" : "stale", + "Table" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "The following %1$d queries may permanently modify or delete data. This action cannot be undone.\n\n%2$@" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다음 %1$d개 쿼리는 데이터를 영구적으로 변경하거나 삭제할 수 있습니다. 이 작업은 실행 취소할 수 없습니다.\n\n%2$@" + "value" : "테이블" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Aşağıdaki %d sorgu verileri kalıcı olarak değiştirebilir veya silebilir. Bu işlem geri alınamaz.\n\n%@" + "value" : "Tablo" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%d truy vấn sau có thể sửa đổi hoặc xóa dữ liệu vĩnh viễn. Hành động này không thể hoàn tác.\n\n%@" + "value" : "Bảng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "以下 %d 条查询可能永久修改或删除数据。此操作无法撤销。\n\n%@" + "value" : "表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "下列 %1$d 個查詢可能會永久修改或刪除資料。此動作無法復原。\n\n%2$@" + "value" : "資料表" } } } }, - "The following %lld queries may permanently modify or delete data. This action cannot be undone.\n\n%@" : { + "Table '%@' has no columns or does not exist" : { "extractionState" : "stale", "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "The following %1$lld queries may permanently modify or delete data. This action cannot be undone.\n\n%2$@" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다음 %1$lld개 쿼리는 데이터를 영구적으로 변경하거나 삭제할 수 있습니다. 이 작업은 실행 취소할 수 없습니다.\n\n%2$@" + "value" : "테이블 '%@'에 열이 없거나 테이블이 존재하지 않습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "The following %lld queries may permanently modify or delete data. This action cannot be undone.\n\n%@" + "value" : "tablo '%@' has no columns or does not exist" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%1$lld truy vấn sau có thể thay đổi hoặc xóa dữ liệu vĩnh viễn. Hành động này không thể hoàn tác.\n\n%2$@" + "value" : "Bảng '%@' không có cột hoặc không tồn tại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "以下 %lld 个查询可能会永久修改或删除数据。此操作无法撤销。\n\n%@" + "value" : "表 '%@' 没有列或不存在" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "下列 %1$lld 個查詢可能會永久修改或刪除資料。此動作無法復原。\n\n%2$@" + "value" : "資料表「%@」沒有欄位或不存在" } } } }, - "The following changes may cause data loss:\n\n%@\n\nDo you want to proceed?" : { + "Table Actions" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다음 변경 사항으로 인해 데이터가 손실될 수 있습니다.\n\n%@\n\n계속하시겠습니까?" + "value" : "테이블 작업" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Aşağıdaki değişiklikler veri kaybına neden olabilir:\n\n%@\n\nDevam etmek istiyor musunuz?" + "value" : "Tablo İşlemleri" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Các thay đổi sau có thể gây mất dữ liệu:\n\n%@\n\nBạn có muốn tiếp tục?" + "value" : "Thao tác bảng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "以下更改可能导致数据丢失:\n\n%@\n\n是否继续?" + "value" : "表操作" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "下列變更可能導致資料遺失:\n\n%@\n\n是否要繼續?" + "value" : "資料表操作" } } } }, - "The following plugins were rejected:\n\n%@\n\nPlease update them from the plugin registry." : { - "extractionState" : "stale", + "Table and view names in a database. Pass database and schema to look outside the browsed one, and row_counts=true for approximate row counts." : { + + }, + "Table and view names, without columns" : { + + }, + "Table Browsing" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다음 플러그인이 거부되었습니다.\n\n%@\n\n플러그인 레지스트리에서 업데이트하십시오." + "value" : "테이블 탐색" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Aşağıdaki eklentiler reddedildi:\n\n%@\n\nLütfen eklenti kayıt defterinden güncelleyin." + "value" : "Tablo Gezinme" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Các plugin sau bị từ chối:\n\n%@\n\nVui lòng cập nhật chúng từ kho plugin." + "value" : "Duyệt bảng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "以下插件被拒绝:\n\n%@\n\n请从插件注册表中更新它们。" + "value" : "表浏览" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "下列外掛已遭拒絕:\n\n%@\n\n請從外掛註冊更新它們。" + "value" : "資料表瀏覽" } } } }, - "The following plugins were rejected:\n\n%@\n\nYou can update them from the plugin registry in Settings." : { + "Table collation differs: %@ on source, %@ on target." : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Table collation differs: %1$@ on source, %2$@ on target." + } + } + } + }, + "Table comment" : { + + }, + "Table creation options not available" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다음 플러그인이 거부되었습니다.\n\n%@\n\n설정의 플러그인 레지스트리에서 업데이트할 수 있습니다." + "value" : "테이블 생성 옵션을 사용할 수 없습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Aşağıdaki eklentiler reddedildi:\n\n%@\n\nBunları Ayarlar'daki eklenti kayıt defterinden güncelleyebilirsiniz." + "value" : "Table creation options not available" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Các plugin sau đã bị từ chối:\n\n%@\n\nBạn có thể cập nhật chúng từ plugin registry trong Cài đặt." + "value" : "Tùy chọn tạo bảng không khả dụng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "以下插件已被拒绝:\n\n%@\n\n你可以在设置中的插件注册表更新它们。" + "value" : "表创建选项不可用" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "下列外掛已遭拒絕:\n\n%@\n\n你可以在「設定」的外掛註冊更新它們。" + "value" : "無法使用資料表建立選項" } } } }, - "The instance connection name must be in the form project:region:instance." : { + "Table DDL" : { + + }, + "Table Description" : { + + }, + "Table Favorites:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "인스턴스 연결 이름은 project:region:instance 형식이어야 합니다." + "value" : "테이블 즐겨찾기:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Örnek bağlantı adı project:region:instance biçiminde olmalıdır." + "value" : "Tablo Sık Kullanılanları:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên kết nối instance phải theo dạng project:region:instance." + "value" : "Bảng yêu thích:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "实例连接名称必须为 project:region:instance 形式。" + "value" : "表收藏:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "執行個體連線名稱必須為 project:region:instance 形式。" + "value" : "資料表我的最愛:" } } } }, - "The license has been suspended." : { + "Table Info" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "라이선스가 정지되었습니다." + "value" : "테이블 정보" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Lisans askıya alındı." + "value" : "Table Info" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giấy phép đã bị đình chỉ." + "value" : "Thông tin bảng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "许可证已被暂停。" + "value" : "表信息" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "授權已遭停用。" + "value" : "資料表資訊" } } } }, - "The license has expired." : { + "Table List" : { + + }, + "Table Maintenance" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "라이선스가 만료되었습니다." + "value" : "테이블 유지 관리" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Lisansın süresi doldu." + "value" : "Tablo Bakımı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giấy phép đã hết hạn." + "value" : "Bảo trì bảng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "许可证已过期。" + "value" : "表维护" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "授權已過期。" + "value" : "資料表維護" } } } }, - "The license key is invalid." : { + "Table name" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "라이선스 키가 유효하지 않습니다." + "value" : "테이블 이름" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Lisans anahtarı geçersiz." + "value" : "Tablo adı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mã giấy phép không hợp lệ." + "value" : "Tên bảng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "许可证密钥无效。" + "value" : "表名" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "授權金鑰無效。" + "value" : "資料表名稱" } } } }, - "The listener does not know the requested SID" : { + "Table Name" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "리스너가 요청한 SID를 인식하지 못합니다" + "value" : "테이블 이름" } - } - } - }, - "The listener does not know the requested service name" : { - "localizations" : { - "ko" : { + }, + "tr" : { "stringUnit" : { "state" : "translated", - "value" : "리스너가 요청한 서비스 이름을 인식하지 못합니다" + "value" : "Table Name" } - } - } - }, - "The listener has no handler available for the requested service" : { - "localizations" : { - "ko" : { + }, + "vi" : { "stringUnit" : { "state" : "translated", - "value" : "리스너에 요청한 서비스를 처리할 수 있는 핸들러가 없습니다" + "value" : "Tên bảng" } - } - } - }, - "The listener is blocking new connections to the requested service" : { - "localizations" : { - "ko" : { + }, + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "리스너가 요청한 서비스에 대한 새 연결을 차단하고 있습니다" + "value" : "表名" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "資料表名稱" } } } }, - "The partial backup file will be removed." : { - "comment" : "A message displayed in a cancel confirmation alert for a backup.", - "isCommentAutoGenerated" : true, + "Table name '%@' may only contain letters, digits, underscore, and '.'." : { + + }, + "Table name to open" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "부분 백업 파일이 삭제됩니다." + "value" : "열려는 테이블 이름" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kısmi yedek dosyası kaldırılacak." + "value" : "Açılacak tablo adı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "File sao lưu dở dang sẽ bị xóa." + "value" : "Tên bảng cần mở" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未完成的备份文件将被移除。" + "value" : "要打开的表名" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "未完成的備份檔案將被移除。" + "value" : "要開啟的資料表名稱" } } } }, - "The password source produced an empty password" : { + "Table name, or 'query'" : { + + }, + "Table Name:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "암호 소스에서 빈 암호를 반환했습니다" + "value" : "테이블 이름:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Parola kaynağı boş bir parola döndürdü" + "value" : "Tablo Adı:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nguồn mật khẩu trả về mật khẩu rỗng" + "value" : "Tên bảng:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "密码来源返回了空密码" + "value" : "表名:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "密碼來源產生了空白密碼" + "value" : "資料表名稱:" } } } }, - "The passwords do not match." : { + "Table name. Omit to cover the whole schema." : { + + }, + "Table names to export (alternative to query)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "암호가 일치하지 않습니다." + "value" : "내보낼 테이블 이름(쿼리 대신 사용)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Parolalar eşleşmiyor." + "value" : "Dışa aktarılacak tablo adları (sorguya alternatif)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mật khẩu không khớp." + "value" : "Tên các bảng cần xuất (thay cho truy vấn)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "两次输入的密码不一致。" + "value" : "要导出的表名(可代替查询)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "兩次輸入的密碼不一致。" + "value" : "要匯出的資料表名稱(可代替查詢)" } } } }, - "The plugin depends on a component that's missing or incompatible with this Mac." : { + "Table or column names to quote" : { + + }, + "Table or view name" : { + + }, + "Table rebuild" : { + + }, + "Table that received the rows" : { + + }, + "Table that was counted" : { + + }, + "Table that was described" : { + + }, + "Table that was opened" : { + + }, + "Table the change applies to, if it is one table" : { + + }, + "Table the DDL describes" : { + + }, + "Table the statistics describe" : { + + }, + "Table the tab shows" : { + + }, + "Table the trigger fires for" : { + + }, + "Table the triggers belong to, when one was named" : { + + }, + "Table to act on. Omit for the whole database." : { + + }, + "Table to audit" : { + + }, + "Table to explain" : { + + }, + "Table to open" : { + + }, + "table_name" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 플러그인에 필요한 구성 요소가 없거나 이 Mac과 호환되지 않습니다." + "value" : "table_name" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklenti, eksik olan veya bu Mac ile uyumsuz bir bileşene bağlı." + "value" : "table_name" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Plugin phụ thuộc vào một thành phần bị thiếu hoặc không tương thích với máy Mac này." + "value" : "table_name" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "该插件依赖的组件缺失或与这台 Mac 不兼容。" + "value" : "table_name" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "該外掛依賴的元件遺失或與這台 Mac 不相容。" + "value" : "table_name" } } } }, - "The plugin doesn't include a build for this Mac's processor architecture." : { + "Table: %@" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 플러그인에는 이 Mac의 프로세서 아키텍처용 빌드가 포함되어 있지 않습니다." + "value" : "테이블: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklenti, bu Mac'in işlemci mimarisi için bir sürüm içermiyor." + "value" : "tablo: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Plugin không có bản dựng cho kiến trúc bộ xử lý của máy Mac này." + "value" : "Bảng: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "该插件不包含适用于这台 Mac 处理器架构的版本。" + "value" : "表:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "該外掛不含適用於這台 Mac 處理器架構的版本。" + "value" : "資料表:%@" } } } }, - "The plugin isn't compatible with this version of TablePro. Update the app or reinstall the plugin." : { + "TablePro" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 플러그인은 현재 TablePro 버전과 호환되지 않습니다. 앱을 업데이트하거나 플러그인을 다시 설치하십시오." + "value" : "TablePro" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklenti bu TablePro sürümüyle uyumlu değil. Uygulamayı güncelleyin veya eklentiyi yeniden yükleyin." + "value" : "TablePro" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Plugin không tương thích với phiên bản TablePro này. Hãy cập nhật ứng dụng hoặc cài lại plugin." + "value" : "TablePro" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "该插件与此版本的 TablePro 不兼容。请更新应用或重新安装插件。" + "value" : "TablePro" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "該外掛與此版本的 TablePro 不相容。請更新應用程式或重新安裝外掛。" + "value" : "TablePro" } } } }, - "The plugin was built for an incompatible runtime." : { + "tablepro command" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 플러그인은 호환되지 않는 런타임용으로 빌드되었습니다." + "value" : "tablepro 명령" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklenti uyumsuz bir çalışma zamanı için derlenmiş." + "value" : "tablepro komutu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Plugin được xây dựng cho một runtime không tương thích." + "value" : "lệnh tablepro" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "该插件是为不兼容的运行时构建的。" + "value" : "tablepro 命令" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "該外掛是為不相容的執行環境建置的。" + "value" : "tablepro 指令" } } } }, - "The plugin's executable couldn't be loaded. It may be damaged or improperly signed." : { + "TablePro could not do this for you. Run this in Terminal instead:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플러그인의 실행 파일을 불러올 수 없습니다. 파일이 손상되었거나 올바르게 서명되지 않았을 수 있습니다." + "value" : "TablePro가 이 작업을 수행할 수 없습니다. 대신 터미널에서 다음을 실행하십시오:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklentinin çalıştırılabilir dosyası yüklenemedi. Hasarlı veya hatalı imzalanmış olabilir." + "value" : "TablePro bunu sizin için yapamadı. Bunun yerine Terminal'de şunu çalıştırın:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể tải tệp thực thi của plugin. Có thể tệp bị hỏng hoặc ký không đúng." + "value" : "TablePro không thể làm việc này giúp bạn. Hãy chạy lệnh sau trong Terminal:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法加载插件的可执行文件。它可能已损坏或签名不正确。" + "value" : "TablePro 无法替你完成此操作。请在终端中运行:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法載入外掛的執行檔。它可能已損壞或簽章不正確。" + "value" : "TablePro 無法替你完成此操作。請改在終端機執行:" } } } }, - "The plugin's executable file is missing." : { + "TablePro could not open its query history database, so nothing is being recorded and nothing can be shown. Your existing history is still on disk." : { + "comment" : "A description of the error that occurs when the query history database cannot be opened.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플러그인의 실행 파일이 없습니다." + "value" : "TablePro에서 쿼리 기록 데이터베이스를 열 수 없어 기록되거나 표시되는 항목이 없습니다. 기존 기록은 디스크에 그대로 남아 있습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklentinin çalıştırılabilir dosyası eksik." + "value" : "TablePro sorgu geçmişi veritabanını açamadı, bu yüzden hiçbir şey kaydedilmiyor ve gösterilemiyor. Mevcut geçmişiniz hâlâ diskte." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thiếu tệp thực thi của plugin." + "value" : "TablePro không mở được cơ sở dữ liệu lịch sử truy vấn, nên không có gì được ghi lại và không có gì để hiển thị. Lịch sử hiện có của bạn vẫn nằm trên đĩa." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "缺少插件的可执行文件。" + "value" : "TablePro 无法打开它的查询历史数据库,因此不会记录任何内容,也无法显示任何内容。你已有的历史仍在磁盘上。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "缺少外掛的執行檔。" + "value" : "TablePro 無法開啟它的查詢歷史資料庫,因此不會記錄任何內容,也無法顯示任何內容。你已有的記錄仍在磁碟上。" } } } }, - "The previous code wasn't accepted. Wait for your authenticator to refresh, then enter the new code." : { - "extractionState" : "stale", + "TablePro couldn't reach the plugin registry to update this plugin. Check your connection and reopen TablePro." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이전 코드는 승인되지 않았습니다. 인증 앱이 새로 고침될 때까지 기다린 다음 새 코드를 입력하십시오." + "value" : "TablePro에서 이 플러그인을 업데이트하기 위해 플러그인 레지스트리에 연결할 수 없습니다. 연결을 확인하고 TablePro를 다시 여십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Önceki kod kabul edilmedi. Kimlik doğrulayıcınızın yenilenmesini bekleyin, ardından yeni kodu girin." + "value" : "TablePro bu eklentiyi güncellemek için eklenti deposuna ulaşamadı. Bağlantınızı denetleyip TablePro'yu yeniden açın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mã trước đó không được chấp nhận. Chờ ứng dụng xác thực làm mới rồi nhập mã mới." + "value" : "TablePro không thể truy cập registry plugin để cập nhật plugin này. Kiểm tra kết nối mạng và mở lại TablePro." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "上一个验证码未被接受。请等待验证器刷新后输入新验证码。" + "value" : "TablePro 无法访问插件注册表来更新此插件。请检查网络连接并重新打开 TablePro。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "上一個驗證碼未被接受。請等待你的驗證器重新整理後,再輸入新的驗證碼。" + "value" : "TablePro 無法連上外掛註冊來更新此外掛。請檢查你的網路連線並重新開啟 TablePro。" } } } }, - "The previous response wasn't accepted. Try again." : { + "TablePro did not open a window for that connection in time." : { + + }, + "TablePro did not open that table in time." : { + + }, + "TablePro has no server dashboard for this engine." : { + + }, + "TablePro has not looked up this table's key columns, so it cannot tell which row an edit would change." : { + + }, + "TablePro includes these open source libraries. Pick one to read its license." : { + + }, + "TablePro is a native macOS database client. This server exposes the connections the user has already configured, so you never handle credentials: name a connection by its id and TablePro opens, reuses and authorizes it for you.\n\nStart with list_connections, then list_databases, list_schemas and list_tables to find your way around, and describe_table before writing any query, because it returns the columns, indexes and foreign keys you need to get the SQL right the first time. Prefer the dedicated tools over hand-written SQL wherever one exists: they quote identifiers correctly for the engine in front of you, apply the user's row limits, and are allowed on connections where raw execution is not.\n\nEvery connection carries the user's own policy. A connection may be read-only for external clients, may be invisible to AI entirely, and may be in a safe mode that asks the user to confirm each write. A refusal is that policy speaking, not a transient error, so do not retry it and do not look for a way around it. Destructive statements need the user's consent, which TablePro collects itself." : { + + }, + "TablePro only notifies when the result is not already on screen." : { + + }, + "TablePro runs Anthropic's claude tool in headless mode. Claude Code is built for you to use directly, not as a backend for other apps, so this path can break with any Claude Code release." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이전 응답이 승인되지 않았습니다. 다시 시도하십시오." + "value" : "TablePro는 Anthropic의 claude 도구를 헤드리스 모드로 실행합니다. Claude Code는 다른 앱의 백엔드가 아니라 사용자가 직접 사용하도록 만들어졌으므로, 이 방식은 Claude Code 릴리스에 따라 작동하지 않을 수 있습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Önceki yanıt kabul edilmedi. Tekrar deneyin." + "value" : "TablePro, Anthropic'in claude aracını başsız modda çalıştırır. Claude Code doğrudan sizin kullanmanız için yapıldı, başka uygulamalara arka uç olsun diye değil; bu yüzden bu yol herhangi bir Claude Code sürümüyle bozulabilir." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Câu trả lời trước không được chấp nhận. Hãy thử lại." + "value" : "TablePro chạy công cụ claude của Anthropic ở chế độ headless. Claude Code được tạo ra để bạn dùng trực tiếp, không phải làm backend cho ứng dụng khác, nên cách này có thể hỏng sau bất kỳ bản phát hành Claude Code nào." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "上一次的回答未被接受。请重试。" + "value" : "TablePro 以无界面模式运行 Anthropic 的 claude 工具。Claude Code 是给你直接使用的,不是给其他应用当后端,因此这条路径可能在任何一次 Claude Code 更新后失效。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "上一次的回答未被接受。請再試一次。" + "value" : "TablePro 以無介面模式執行 Anthropic 的 claude 工具。Claude Code 是給你直接使用的,不是給其他應用程式當後端,因此這條路徑可能在任何一次 Claude Code 更新後失效。" } } } }, - "The provider configuration and stored API key will be deleted." : { + "TablePro Website" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "제공업체 구성과 저장된 API 키가 삭제됩니다." + "value" : "TablePro 웹사이트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sağlayıcı yapılandırması ve saklanan API anahtarı silinecek." + "value" : "TablePro Website" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cấu hình nhà cung cấp và khóa API đã lưu sẽ bị xóa." + "value" : "Trang web TablePro" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将删除提供商配置和已存储的 API 密钥。" + "value" : "TablePro 网站" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "供應商設定與已儲存的 API 金鑰將被刪除。" + "value" : "TablePro 網站" } } } }, - "The query did not finish within the configured timeout, so the connection was reset. Run the query again." : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "쿼리가 설정된 제한 시간 내에 완료되지 않아 연결을 재설정했습니다. 쿼리를 다시 실행하십시오." - } - } - } + "TablePro's MCP server does not provide this endpoint." : { + }, - "The query history database could not be opened, so there is nothing to summarize." : { + "TablePro's MCP server has too many open connections." : { + + }, + "TablePro's Safe Mode is set to read-only for this connection. Destructive operations are not permitted." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 기록 데이터베이스를 열 수 없어 요약할 내용이 없습니다." + "value" : "이 연결에서는 TablePro의 안전 모드가 읽기 전용으로 설정되어 있습니다. 파괴적인 작업은 허용되지 않습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgu geçmişi veritabanı açılamadı, bu yüzden özetlenecek bir şey yok." + "value" : "Bu bağlantı için TablePro'nun Safe Mode ayarı salt okunur. Yıkıcı işlemlere izin verilmez." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không mở được cơ sở dữ liệu lịch sử truy vấn, nên không có gì để tổng hợp." + "value" : "Chế độ an toàn của TablePro đang đặt kết nối này ở chế độ chỉ đọc. Không cho phép các thao tác phá hủy dữ liệu." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法打开查询历史数据库,因此没有可汇总的内容。" + "value" : "TablePro 的安全模式已将此连接设为只读。不允许执行破坏性操作。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法開啟查詢歷史資料庫,因此沒有可彙總的內容。" + "value" : "TablePro 的安全模式已將此連線設為唯讀。不允許執行破壞性操作。" } } } }, - "The secret manager did not return valid JSON." : { + "TablePro's Safe Mode is set to read-only for this connection. Set it to Confirm Writes or higher to allow this tool." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "보안 정보 관리자가 유효한 JSON을 반환하지 않았습니다." + "value" : "이 연결에서는 TablePro의 안전 모드가 읽기 전용으로 설정되어 있습니다. 이 도구를 허용하려면 쓰기 확인 이상으로 설정하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Secret manager geçerli bir JSON döndürmedi." + "value" : "Bu bağlantı için TablePro'nun Safe Mode ayarı salt okunur. Bu araca izin vermek için Confirm Writes veya daha üstünü seçin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trình quản lý secret không trả về JSON hợp lệ." + "value" : "Chế độ an toàn của TablePro đang đặt kết nối này ở chế độ chỉ đọc. Đặt thành Confirm Writes hoặc cao hơn để cho phép công cụ này." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "secret manager 未返回有效的 JSON。" + "value" : "TablePro 的安全模式已将此连接设为只读。请设为 Confirm Writes 或更高级别以允许此工具。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "secret manager 未回傳有效的 JSON。" + "value" : "TablePro 的安全模式已將此連線設為唯讀。請設為 Confirm Writes 或更高層級以允許此工具。" } } } }, - "The selected axes contain only null, binary, or invalid values." : { + "Tables" : { "localizations" : { "ko" : { "stringUnit" : { - "value" : "선택한 축에 null, 바이너리 또는 유효하지 않은 값만 있습니다.", - "state" : "translated" + "state" : "translated", + "value" : "테이블" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Seçilen eksenler yalnızca null, ikili veya geçersiz değerler içeriyor." + "value" : "Tablolar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Các trục đã chọn chỉ chứa giá trị null, nhị phân hoặc không hợp lệ." + "value" : "Bảng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "所选坐标轴只包含空值、二进制或无效值。" + "value" : "表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "所選座標軸只包含空值、二進位或無效值。" + "value" : "資料表" } } } }, - "The selected backup file is not readable." : { + "Tables always take part." : { + + }, + "Tables and columns of the database this connection is browsing" : { + + }, + "Tables and their columns for the database a connection is browsing. Capped at 100 tables." : { + + }, + "Tables and views in scope" : { + + }, + "Tables of %@" : { + + }, + "Tables start out of the comparison so a first run cannot stream every row." : { + + }, + "Tables that carry at least one foreign key" : { + + }, + "Tables that carry at least one index" : { + + }, + "Tables to export. Use instead of 'query'." : { + + }, + "Tables with more estimated rows use approximate counts to avoid slow COUNT(*) queries" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "선택한 백업 파일을 읽을 수 없습니다." + "value" : "예상 행 수가 더 많은 테이블은 느린 COUNT(*) 쿼리를 피하기 위해 근삿값을 사용합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Seçilen yedek dosyası okunamıyor." + "value" : "Daha fazla tahmini satıra sahip tablolar, yavaş COUNT(*) sorgularından kaçınmak için yaklaşık sayımlar kullanır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không đọc được file sao lưu đã chọn." + "value" : "Các bảng có nhiều dòng ước tính sử dụng đếm xấp xỉ để tránh truy vấn COUNT(*) chậm" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "所选备份文件不可读。" + "value" : "估算行数较多的表使用近似计数以避免慢速 COUNT(*) 查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "所選的備份檔案無法讀取。" - } - } - } - }, - "The server sent an unexpected message and the connection was reset. Run the query again." : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "서버에서 예상하지 못한 메시지를 보내 연결을 재설정했습니다. 쿼리를 다시 실행하십시오." + "value" : "估算列數較多的資料表會使用近似計數,以避免緩慢的 COUNT(*) 查詢" } } } }, - "The server will be accessible from other devices on your network. Authentication and TLS are enabled automatically." : { + "Tables, columns, indexes, and foreign keys for a connected database" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "네트워크의 다른 기기에서 서버에 접근할 수 있습니다. 인증과 TLS가 자동으로 활성화됩니다." + "value" : "연결된 데이터베이스의 테이블, 열, 인덱스 및 외래 키" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sunucuya ağınızdaki diğer cihazlardan erişilebilecek. Kimlik doğrulama ve TLS otomatik olarak etkinleştirilir." + "value" : "Bağlı bir veritabanının tabloları, sütunları, indeksleri ve yabancı anahtarları" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Server sẽ truy cập được từ các thiết bị khác trong mạng của bạn. Xác thực và TLS được bật tự động." + "value" : "Bảng, cột, index và khóa ngoại của một cơ sở dữ liệu đã kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "服务器将可被网络上的其他设备访问。认证和 TLS 会自动启用。" + "value" : "某个已连接数据库的表、列、索引和外键" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "伺服器將可由網路上的其他裝置存取。驗證與 TLS 會自動啟用。" + "value" : "某個已連線資料庫的資料表、欄位、索引和外鍵" } } } }, - "The target connection is no longer open." : { + "Tables, columns, indexes, and foreign keys for the connected database" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "대상 연결이 더 이상 열려 있지 않습니다." + "value" : "연결된 데이터베이스의 테이블, 열, 인덱스 및 외래 키" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Hedef bağlantı artık açık değil." + "value" : "Bağlı veritabanının tabloları, sütunları, indeksleri ve yabancı anahtarları" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối đích không còn mở." + "value" : "Bảng, cột, index và khóa ngoại của cơ sở dữ liệu đã kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "目标连接已不再打开。" + "value" : "已连接数据库的表、列、索引和外键" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "目標連線已不再開啟。" + "value" : "已連線資料庫的資料表、欄位、索引和外鍵" } } } }, - "The target database may be in a partial state. Review the database and clean up as needed." : { - "comment" : "A message that appears when restoring a database and the user is advised to review and clean up the database.", - "isCommentAutoGenerated" : true, + "Tables, views, and functions owned by this role will be deleted." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "대상 데이터베이스가 불완전한 상태일 수 있습니다. 데이터베이스를 검토하고 필요에 따라 정리하십시오." + "value" : "이 역할이 소유한 테이블, 뷰 및 함수가 삭제됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Hedef veritabanı kısmi bir durumda olabilir. Veritabanını gözden geçirin ve gerektiği gibi temizleyin." + "value" : "Bu role ait tablolar, görünümler ve fonksiyonlar silinecek." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cơ sở dữ liệu đích có thể đang ở trạng thái dở dang. Hãy xem lại và dọn dẹp nếu cần." + "value" : "Các bảng, view và hàm thuộc sở hữu của vai trò này sẽ bị xóa." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "目标数据库可能处于不完整状态。请检查数据库并按需清理。" + "value" : "该角色拥有的表、视图和函数将被删除。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "目標資料庫可能處於不完整的狀態。請檢查資料庫並視需要清理。" + "value" : "該角色擁有的資料表、檢視表和函式將被刪除。" } } } }, - "The target database may be left in a partial state." : { - "comment" : "A message displayed in a cancel confirmation alert for a database restore.", - "isCommentAutoGenerated" : true, + "Tablespace" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "대상 데이터베이스가 불완전한 상태로 남을 수 있습니다." + "value" : "테이블스페이스" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Hedef veritabanı kısmi bir durumda kalabilir." + "value" : "Tablespace" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cơ sở dữ liệu đích có thể bị bỏ lại ở trạng thái dở dang." + "value" : "Tablespace" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "目标数据库可能会处于不完整状态。" + "value" : "表空间" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "目標資料庫可能會處於不完整的狀態。" + "value" : "資料表空間" } } } }, - "The text could not be parsed as JSON." : { + "Tabs" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "텍스트를 JSON으로 구문 분석할 수 없습니다." + "value" : "탭" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Metin JSON olarak ayrıştırılamadı." + "value" : "Tabs" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể phân tích văn bản dưới dạng JSON." + "value" : "Tab" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法将文本解析为 JSON。" + "value" : "标签页" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法將文字剖析為 JSON。" + "value" : "分頁" } } } }, - "The text could not be parsed as JSON. Use text mode to view or edit." : { + "Tag" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "텍스트를 JSON으로 구문 분석할 수 없습니다. 텍스트 모드에서 보거나 편집하십시오." + "value" : "태그" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Metin JSON olarak ayrıştırılamadı. Görüntülemek veya düzenlemek için metin modunu kullanın." + "value" : "Etiket" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể phân tích văn bản dưới dạng JSON. Dùng chế độ văn bản để xem hoặc chỉnh sửa." + "value" : "Nhãn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "文本无法解析为 JSON。请使用文本模式查看或编辑。" + "value" : "标签" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法將文字剖析為 JSON。請使用文字模式檢視或編輯。" + "value" : "標籤" } } } }, - "The text doesn't look like a connection URL." : { + "Tag name" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "텍스트가 연결 URL 형식이 아닙니다." + "value" : "태그 이름" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Metin bir bağlantı URL'sine benzemiyor." + "value" : "Etiket adı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Văn bản này không giống một URL kết nối." + "value" : "Tên thẻ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "该文本看起来不是连接 URL。" + "value" : "标签名称" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "這段文字看起來不像連線 URL。" + "value" : "標籤名稱" } } } }, - "The text is not valid JSON. Save anyway?" : { + "Tag: %@" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "텍스트가 유효한 JSON이 아닙니다. 그래도 저장하시겠습니까?" + "value" : "태그: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Metin geçerli bir JSON değil. Yine de kaydedilsin mi?" + "value" : "Tag: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nội dung không phải JSON hợp lệ. Vẫn lưu?" + "value" : "Thẻ: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "文本不是有效的 JSON。仍然保存?" + "value" : "标签:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "文字並非有效的 JSON。仍要儲存嗎?" + "value" : "標籤:%@" } } } }, - "The value could not be parsed. Use raw mode to inspect it as text." : { + "Tags" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "값을 구문 분석할 수 없습니다. 원시 모드에서 텍스트로 확인하십시오." + "value" : "태그" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Değer ayrıştırılamadı. Metin olarak incelemek için ham modu kullanın." + "value" : "Etiketler" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không phân tích được giá trị. Dùng chế độ raw để xem dưới dạng văn bản." + "value" : "Thẻ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法解析该值。请使用原始模式以文本形式查看。" + "value" : "标签" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法解析該值。請使用原始模式以文字形式檢視。" + "value" : "標籤" } } } }, - "Theme" : { - "extractionState" : "stale", + "Tags: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테마" + "value" : "태그: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tema" + "value" : "Etiketler: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giao diện" + "value" : "Thẻ: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "主题" + "value" : "标签:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "佈景主題" + "value" : "標籤:%@" } } } }, - "Theme Actions" : { - "comment" : "A heading displayed above the theme actions.", - "isCommentAutoGenerated" : true, + "target" : { + + }, + "Target" : { + + }, + "Target table for SQL output when exporting a query" : { + + }, + "Target: %@" : { + + }, + "Team" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테마 작업" + "value" : "팀" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tema İşlemleri" + "value" : "Team" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thao tác giao diện" + "value" : "Team" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "主题操作" + "value" : "Team" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "佈景主題操作" + "value" : "Team" } } } }, - "Theme Update Failed" : { + "Team Catalog" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테마 업데이트 실패" + "value" : "팀 카탈로그" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tema Güncellemesi Başarısız Oldu" + "value" : "Takım Kataloğu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cập nhật theme thất bại" + "value" : "Danh mục nhóm" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "主题更新失败" + "value" : "团队目录" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "佈景主題更新失敗" + "value" : "團隊目錄" } } } }, - "Theme:" : { - "extractionState" : "stale", + "Team Library" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테마:" + "value" : "팀 라이브러리" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tema:" + "value" : "Takım Kitaplığı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giao diện:" + "value" : "Thư viện nhóm" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "主题:" + "value" : "团队库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "佈景主題:" + "value" : "團隊庫" } } } }, - "Themes" : { + "Template" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테마" + "value" : "템플릿" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Themes" + "value" : "Template" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giao diện" + "value" : "Mẫu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "主题" + "value" : "模板" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "佈景主題" + "value" : "範本" } } } }, - "There are no connections to publish." : { + "Template Name" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "게시할 연결이 없습니다." + "value" : "템플릿 이름" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yayınlanacak bağlantı yok." + "value" : "Template Name" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có kết nối nào để xuất bản." + "value" : "Tên mẫu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有可发布的连接。" + "value" : "模板名称" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有可發佈的連線。" + "value" : "範本名稱" } } } }, - "These changes alter %@, the account this connection uses." : { + "Temporarily disable foreign key constraints during import. Useful for importing data with circular dependencies." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 변경 사항은 이 연결에서 사용하는 계정 %@을(를) 변경합니다." + "value" : "가져오는 동안 외래 키 제약 조건을 일시적으로 비활성화합니다. 순환 종속성이 있는 데이터를 가져올 때 유용합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu değişiklikler, bu bağlantının kullandığı hesap olan %@ hesabını değiştirir." + "value" : "Temporarily disable foreign key constraints during import. Useful for importing data with circular dependencies." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Các thay đổi này sửa %@, tài khoản mà kết nối này đang dùng." + "value" : "Tạm thời tắt ràng buộc khóa ngoại trong quá trình nhập. Hữu ích khi nhập dữ liệu có phụ thuộc vòng." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "这些更改会修改 %@,也就是此连接使用的账户。" + "value" : "导入时临时禁用外键约束。适用于导入具有循环依赖的数据。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "這些變更會修改 %@,也就是此連線使用的帳號。" + "value" : "匯入時暫時停用外鍵限制。適合用於匯入有循環相依關係的資料。" } } } }, - "These changes drop %@, the account this connection uses." : { + "Teradata Vantage data warehouse" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 변경 사항은 이 연결에서 사용하는 계정 %@을(를) 삭제합니다." + "value" : "Teradata Vantage 데이터 웨어하우스" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu değişiklikler, bu bağlantının kullandığı hesap olan %@ hesabını siler." + "value" : "Teradata Vantage veri ambarı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Các thay đổi này xoá %@, tài khoản mà kết nối này đang dùng." + "value" : "Kho dữ liệu Teradata Vantage" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "这些更改会删除 %@,也就是此连接使用的账户。" + "value" : "Teradata Vantage 数据仓库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "這些變更會刪除 %@,也就是此連線使用的帳號。" + "value" : "Teradata Vantage 資料倉儲" } } } }, - "These changes revoke every privilege from %@, the account this connection uses." : { + "Term that was searched" : { + + }, + "Terminal" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 변경 사항은 이 연결에서 사용하는 계정 %@의 모든 권한을 취소합니다." + "value" : "터미널" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu değişiklikler, bu bağlantının kullandığı hesap olan %@ hesabından tüm yetkileri geri alır." + "value" : "Terminal" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Các thay đổi này thu hồi mọi quyền của %@, tài khoản mà kết nối này đang dùng." + "value" : "Terminal" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "这些更改会撤销 %@ 的所有权限,也就是此连接使用的账户。" + "value" : "终端" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "這些變更會撤銷 %@ 的所有權限,也就是此連線使用的帳號。" + "value" : "終端機" } } } }, - "This %1$@ has no %2$@ yet." : { + "Terminal bell" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 %1$@에는 아직 %2$@이(가) 없습니다." + "value" : "터미널 벨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu %1$@ henüz %2$@ içermiyor." + "value" : "Terminal zili" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@ này chưa có %2$@." + "value" : "Chuông terminal" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此%1$@还没有%2$@。" + "value" : "终端响铃" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此%1$@還沒有%2$@。" + "value" : "終端機提示音" } } } }, - "This Connection" : { + "Terminal Unavailable" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 연결" + "value" : "터미널을 사용할 수 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu Bağlantı" + "value" : "Terminal Kullanılamıyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối này" + "value" : "Terminal không khả dụng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此连接" + "value" : "终端不可用" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此連線" + "value" : "終端機無法使用" } } } }, - "This DELETE query has no WHERE clause and will delete ALL rows in the table. This action cannot be undone." : { - "extractionState" : "stale", + "Terminate" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 DELETE 쿼리에는 WHERE 절이 없으므로 테이블의 모든 행이 삭제됩니다. 이 작업은 실행 취소할 수 없습니다." + "value" : "종료" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "This DELETE query has no WHERE clause and will delete ALL rows in the table. This action cannot be undone." + "value" : "Sonlandır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Truy vấn DELETE này không có mệnh đề WHERE và sẽ xóa TẤT CẢ dòng trong bảng. Thao tác này không thể hoàn tác." + "value" : "Kết thúc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此 DELETE 查询没有 WHERE 子句,将删除表中的所有行。此操作无法撤销。" + "value" : "终止" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此 DELETE 查詢沒有 WHERE 子句,將刪除資料表中的所有列。此動作無法復原。" + "value" : "終止" } } } }, - "This DROP query will permanently remove database objects. This action cannot be undone." : { - "extractionState" : "stale", + "Terminate Session" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 DROP 쿼리는 데이터베이스 객체를 영구적으로 제거합니다. 이 작업은 실행 취소할 수 없습니다." + "value" : "세션 종료" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "This DROP query will permanently remove database objects. This action cannot be undone." + "value" : "Oturumu Sonlandır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Truy vấn DROP này sẽ xóa vĩnh viễn các đối tượng cơ sở dữ liệu. Thao tác này không thể hoàn tác." + "value" : "Kết thúc phiên" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此 DROP 查询将永久删除数据库对象。此操作无法撤销。" + "value" : "终止会话" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此 DROP 查詢將永久移除資料庫物件。此動作無法復原。" + "value" : "終止工作階段" } } } }, - "This JSON document is too large for tree view. Use text mode instead." : { + "Terminate session %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 JSON 문서는 트리 보기로 표시하기에 너무 큽니다. 대신 텍스트 모드를 사용하십시오." + "value" : "세션 %@ 종료" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu JSON belgesi ağaç görünümü için çok büyük. Bunun yerine metin modunu kullanın." + "value" : "%@ oturumunu sonlandır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tài liệu JSON này quá lớn cho chế độ cây. Hãy dùng chế độ văn bản." + "value" : "Kết thúc phiên %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此 JSON 文档对于树形视图过大,请使用文本模式。" + "value" : "终止会话 %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此 JSON 文件對樹狀檢視而言過大。請改用文字模式。" + "value" : "終止工作階段 %@" } } } }, - "This Mac" : { - "extractionState" : "stale", + "Tertiary Text" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 Mac" + "value" : "3차 텍스트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "This Mac" + "value" : "Üçüncül Metin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Máy Mac này" + "value" : "Văn bản thứ ba" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此 Mac" + "value" : "辅助文本" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "這台 Mac" + "value" : "第三層文字" } } } }, - "This Month" : { + "Test" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이번 달" + "value" : "테스트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu Ay" + "value" : "Test" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tháng này" + "value" : "Kiểm tra" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "本月" + "value" : "测试" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "本月" - } - } - } - }, - "This Oracle server is older than release 11.1, which the database driver does not support." : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "이 Oracle 서버는 릴리스 11.1보다 이전 버전이며 데이터베이스 드라이버에서 지원하지 않습니다." + "value" : "測試" } } } }, - "This SQL query failed with an error. Please fix it.\n\nQuery:\n```sql\n%@\n```\n\nError: %@" : { - "extractionState" : "stale", + "Test Connection" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "This SQL query failed with an error. Please fix it.\n\nQuery:\n```sql\n%1$@\n```\n\nError: %2$@" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 SQL 쿼리가 오류로 실패했습니다. 오류를 수정하십시오.\n\n쿼리:\n```sql\n%1$@\n```\n\n오류: %2$@" + "value" : "연결 테스트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "This SQL query failed with an error. Please fix it.\n\nQuery:\n```sql\n%@\n```\n\nError: %@" + "value" : "Bağlantıyı Test Et" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Câu truy vấn SQL sau đã thất bại với lỗi. Vui lòng sửa lỗi.\n\nTruy vấn:\n```sql\n%1$@\n```\n\nLỗi: %2$@" + "value" : "Kiểm tra kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此 SQL 查询执行失败并报错。请修复。\n\n查询:\n```sql\n%@\n```\n\n错误:%@" + "value" : "测试连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此 SQL 查詢執行失敗並出現錯誤。請修正。\n\n查詢:\n```sql\n%1$@\n```\n\n錯誤:%2$@" + "value" : "測試連線" } } } }, - "This TRUNCATE query will permanently delete all rows in the table. This action cannot be undone." : { - "extractionState" : "stale", + "Test the current connection settings" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 TRUNCATE 쿼리는 테이블의 모든 행을 영구적으로 삭제합니다. 이 작업은 실행 취소할 수 없습니다." + "value" : "현재 연결 설정 테스트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "This TRUNCATE query will permanently delete all rows in the table. This action cannot be undone." + "value" : "Geçerli bağlantı ayarlarını test et" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Truy vấn TRUNCATE này sẽ xóa vĩnh viễn tất cả dòng trong bảng. Thao tác này không thể hoàn tác." + "value" : "Kiểm tra cài đặt kết nối hiện tại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此 TRUNCATE 查询将永久删除表中的所有行。此操作无法撤销。" + "value" : "测试当前连接设置" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此 TRUNCATE 查詢將永久刪除資料表中的所有列。此動作無法復原。" + "value" : "測試目前的連線設定" } } } }, - "This Week" : { - "extractionState" : "stale", + "Testing" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이번 주" + "value" : "테스트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu Hafta" + "value" : "Test" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tuần này" + "value" : "Kiểm thử" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "本周" + "value" : "测试" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "本週" - } - } - } - }, - "This account uses a password verifier the database driver does not support." : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "이 계정은 데이터베이스 드라이버가 지원하지 않는 암호 검증 형식을 사용합니다." + "value" : "測試" } } } }, - "This action needs a modifier key like ⌘ or ⌥. A plain key won't reach the menu reliably." : { + "Testing connection" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 작업에는 ⌘ 또는 ⌥ 같은 보조 키가 필요합니다. 일반 키는 메뉴에 안정적으로 전달되지 않습니다." + "value" : "연결 테스트 중" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu işlem ⌘ veya ⌥ gibi bir değiştirici tuş gerektirir. Tek başına bir tuş menüye güvenilir şekilde ulaşmaz." + "value" : "Bağlantı test ediliyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hành động này cần phím bổ trợ như ⌘ hoặc ⌥. Phím đơn sẽ không đến được menu một cách ổn định." + "value" : "Đang kiểm tra kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此操作需要 ⌘ 或 ⌥ 等修饰键。单个普通按键无法可靠地触发菜单。" + "value" : "正在测试连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此操作需要 ⌘ 或 ⌥ 之類的輔助按鍵。單獨的普通按鍵無法可靠地觸發選單。" + "value" : "正在測試連線" } } } }, - "This connection does not support user and role management." : { + "Text" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 연결은 사용자 및 역할 관리를 지원하지 않습니다." + "value" : "텍스트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu bağlantı kullanıcı ve rol yönetimini desteklemiyor." + "value" : "Metin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối này không hỗ trợ quản lý người dùng và vai trò." + "value" : "Văn bản" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此连接不支持用户和角色管理。" + "value" : "文本" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此連線不支援使用者與角色管理。" + "value" : "文字" } } } }, - "This connection runs SQL every time it connects, using your credentials." : { - "comment" : "A description of the startup SQL for a database connection.", - "isCommentAutoGenerated" : true, + "Text matched against the recorded statement" : { + + }, + "Text Viewer" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 연결은 연결될 때마다 사용자의 자격 증명으로 SQL을 실행합니다." + "value" : "텍스트 뷰어" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu bağlantı her bağlandığında, kimlik bilgilerinizle SQL çalıştırır." + "value" : "Metin Görüntüleyici" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối này chạy SQL mỗi lần kết nối, bằng thông tin đăng nhập của bạn." + "value" : "Trình xem văn bản" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此连接每次连接时都会用你的凭据运行 SQL。" + "value" : "文本查看器" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此連線每次連線時都會用你的憑證執行 SQL。" + "value" : "文字檢視器" } } } }, - "This connection was deleted on another device or window. Your changes were not saved." : { + "Text: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 연결이 다른 기기 또는 창에서 삭제되었습니다. 변경 사항은 저장되지 않았습니다." + "value" : "텍스트: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu bağlantı başka bir aygıtta veya pencerede silindi. Değişiklikleriniz kaydedilmedi." + "value" : "Metin: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối này đã bị xóa trên thiết bị hoặc cửa sổ khác. Các thay đổi của bạn chưa được lưu." + "value" : "Văn bản: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此连接已在其他设备或窗口中被删除。你的更改未保存。" + "value" : "文本:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此連線已在其他裝置或視窗中被刪除。你的變更未儲存。" + "value" : "文字:%@" } } } }, - "This connection won't sync to other devices via iCloud." : { + "That doesn't look like a valid license key. Check for typos and try again." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 연결은 iCloud를 통해 다른 기기와 동기화되지 않습니다." + "value" : "올바른 라이선스 키가 아닌 것 같습니다. 오타가 있는지 확인하고 다시 시도하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu bağlantı iCloud üzerinden diğer cihazlarla eşitlenmeyecek." + "value" : "Bu geçerli bir lisans anahtarı gibi görünmüyor. Yazım hatalarını kontrol edip tekrar deneyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối này sẽ không đồng bộ sang thiết bị khác qua iCloud." + "value" : "Mã giấy phép không hợp lệ. Kiểm tra lỗi chính tả và thử lại." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此连接不会通过 iCloud 同步到其他设备。" + "value" : "这看起来不是有效的许可证密钥。请检查是否有拼写错误后重试。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此連線不會透過 iCloud 同步到其他裝置。" - } - } - } - }, - "This connection's CA certificate is not readable on this device (%@). Certificate files do not sync between devices, so add the certificate here or lower the SSL mode to Required." : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "이 기기에서 이 연결의 CA 인증서를 읽을 수 없습니다(%@). 인증서 파일은 기기 간에 동기화되지 않으므로 이 기기에 인증서를 추가하거나 SSL 모드를 필수(Required)로 낮추십시오." + "value" : "這看起來不是有效的授權金鑰。請檢查是否有拼字錯誤後再試一次。" } } } }, - "This connection's client certificate is not readable on this device (%@). Certificate files do not sync between devices, so add the certificate here before connecting." : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "이 기기에서 이 연결의 클라이언트 인증서를 읽을 수 없습니다(%@). 인증서 파일은 기기 간에 동기화되지 않으므로 연결하기 전에 이 기기에 인증서를 추가하십시오." - } - } - } + "That filter is incomplete." : { + }, - "This connection's client key is not readable on this device (%@). Key files do not sync between devices, so add the key here before connecting." : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "이 기기에서 이 연결의 클라이언트 키를 읽을 수 없습니다(%@). 키 파일은 기기 간에 동기화되지 않으므로 연결하기 전에 이 기기에 키를 추가하십시오." - } - } - } + "That filter operator is not supported." : { + }, - "This database cannot drop triggers" : { + "That folder could not be read." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 데이터베이스에서는 트리거를 삭제할 수 없습니다" + "value" : "해당 폴더를 읽을 수 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu veritabanı tetikleyici silemez" + "value" : "Bu klasör okunamadı." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cơ sở dữ liệu này không thể xoá trigger" + "value" : "Không thể đọc thư mục đó." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此数据库无法删除触发器" + "value" : "无法读取该文件夹。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此資料庫無法刪除觸發器" + "value" : "無法讀取該資料夾。" } } } }, - "This database did not return a query plan for the statement." : { - "comment" : "Text displayed in a description when the database did not return a query plan for the statement.", - "isCommentAutoGenerated" : true, + "That maintenance operation is not available on this connection." : { + + }, + "That regular expression could not be read. Check the syntax and try again." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스에서 이 문에 대한 쿼리 계획을 반환하지 않았습니다." + "value" : "해당 정규식을 해석할 수 없습니다. 구문을 확인하고 다시 시도하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu veritabanı ifade için bir sorgu planı döndürmedi." + "value" : "Bu düzenli ifade okunamadı. Söz dizimini denetleyip tekrar deneyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cơ sở dữ liệu này không trả về kế hoạch truy vấn cho câu lệnh." + "value" : "Không thể đọc biểu thức chính quy đó. Kiểm tra cú pháp và thử lại." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此数据库没有为该语句返回查询计划。" + "value" : "无法解析该正则表达式。请检查语法后重试。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此資料庫沒有為該陳述式回傳查詢計畫。" + "value" : "無法解析該正規表達式。請檢查語法後再試一次。" } } } }, - "This database has no %@ yet." : { - "extractionState" : "stale", + "That tab no longer has a window." : { + + }, + "That table has no readable columns." : { + + }, + "The %@ command line tool is not installed." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 데이터베이스에는 아직 %@이(가) 없습니다." + "value" : "%@ 명령줄 도구가 설치되어 있지 않습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "This database has no %@ yet." + "value" : "%@ komut satırı aracı yüklü değil." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cơ sở dữ liệu này chưa có %@ nào." + "value" : "Công cụ dòng lệnh %@ chưa được cài đặt." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此数据库还没有%@。" + "value" : "尚未安装 %@ 命令行工具。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此資料庫尚未有任何%@。" + "value" : "尚未安裝 %@ 命令列工具。" } } } }, - "This database has no tables yet." : { - "extractionState" : "stale", + "The %@ plugin is not installed. Would you like to download it from the plugin marketplace?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 데이터베이스에는 아직 테이블이 없습니다." + "value" : "%@ 플러그인이 설치되어 있지 않습니다. 플러그인 마켓플레이스에서 다운로드하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "This database has no tables yet." + "value" : "The %@ plugin is not installed. Would you like to indirme it from the plugin marketplace?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cơ sở dữ liệu này chưa có bảng nào." + "value" : "Plugin %@ chưa được cài đặt. Bạn có muốn tải về từ chợ plugin?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此数据库还没有表。" + "value" : "%@ 插件未安装。是否要从插件市场下载?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此資料庫尚未有任何資料表。" + "value" : "尚未安裝 %@ 外掛。是否要從外掛市集下載?" } } } }, - "This deletes only the queries listed here, across every connection. Queries the source, date, outcome and search filters are hiding stay. You cannot undo this." : { - "comment" : "Message for the \"Delete this connection's query history\" button.", - "isCommentAutoGenerated" : true, + "The %@ plugin is not installed. You can download it from the plugin marketplace." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "여기에 나열된 쿼리만 모든 연결에서 삭제합니다. 소스, 날짜, 결과 및 검색 필터로 숨겨진 쿼리는 유지됩니다. 이 작업은 실행 취소할 수 없습니다." + "value" : "%@ 플러그인이 설치되어 있지 않습니다. 플러그인 마켓플레이스에서 다운로드할 수 있습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu, yalnızca burada listelenen sorguları tüm bağlantılarda siler. Kaynak, tarih, sonuç ve arama filtrelerinin gizlediği sorgular kalır. Bu işlem geri alınamaz." + "value" : "The %@ plugin is not installed. You can indirme it from the plugin marketplace." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thao tác này chỉ xoá các truy vấn được liệt kê ở đây, trên mọi kết nối. Các truy vấn đang bị bộ lọc nguồn, ngày, kết quả và tìm kiếm ẩn đi sẽ được giữ lại. Bạn không thể hoàn tác." + "value" : "Plugin %@ chưa được cài đặt. Bạn có thể tải về từ chợ plugin." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "这只会删除此处列出的查询,涵盖所有连接。被来源、日期、结果和搜索筛选隐藏的查询会保留。此操作无法撤销。" + "value" : "%@ 插件未安装。您可以从插件市场下载。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "這只會刪除此處列出的查詢,涵蓋所有連線。被來源、日期、結果和搜尋篩選隱藏的查詢會保留。此動作無法復原。" + "value" : "尚未安裝 %@ 外掛。你可以從外掛市集下載。" } } } }, - "This deletes only the queries listed here, from this connection. Queries the source, date, outcome and search filters are hiding stay. You cannot undo this." : { - "comment" : "The second line of the message above.", - "isCommentAutoGenerated" : true, + "The %1$@ sorted rows differently than the comparison expects, near key %2$@. Pick a numeric key, or one that sorts by byte value." : { + + }, + "The Access application policy must use a Service Auth rule, or Cloudflare still prompts for browser sign-in." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "여기에 나열된 쿼리만 이 연결에서 삭제합니다. 소스, 날짜, 결과 및 검색 필터로 숨겨진 쿼리는 유지됩니다. 이 작업은 실행 취소할 수 없습니다." + "value" : "Access 애플리케이션 정책에서 Service Auth 규칙을 사용해야 합니다. 그렇지 않으면 Cloudflare가 계속 브라우저 로그인을 요청합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu, yalnızca burada listelenen sorguları bu bağlantıdan siler. Kaynak, tarih, sonuç ve arama filtrelerinin gizlediği sorgular kalır. Bu işlem geri alınamaz." + "value" : "Access uygulama politikası bir Service Auth kuralı kullanmalıdır; aksi halde Cloudflare yine tarayıcıdan giriş ister." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thao tác này chỉ xoá các truy vấn được liệt kê ở đây, từ kết nối này. Các truy vấn đang bị bộ lọc nguồn, ngày, kết quả và tìm kiếm ẩn đi sẽ được giữ lại. Bạn không thể hoàn tác." + "value" : "Chính sách ứng dụng Access phải dùng quy tắc Service Auth, nếu không Cloudflare vẫn yêu cầu đăng nhập qua trình duyệt." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "这只会删除此处列出的查询,仅限此连接。被来源、日期、结果和搜索筛选隐藏的查询会保留。此操作无法撤销。" + "value" : "Access 应用策略必须使用 Service Auth 规则,否则 Cloudflare 仍会要求浏览器登录。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "這只會刪除此處列出的查詢,僅限此連線。被來源、日期、結果和搜尋篩選隱藏的查詢會保留。此動作無法復原。" + "value" : "Access 應用程式原則必須使用 Service Auth 規則,否則 Cloudflare 仍會要求透過瀏覽器登入。" } } } }, - "This deletes the query history of every connection. You cannot undo this." : { + "The action that completed" : { + + }, + "The API key will be permanently deleted." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 연결의 쿼리 기록을 삭제합니다. 이 작업은 실행 취소할 수 없습니다." + "value" : "API 키가 영구적으로 삭제됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu, her bağlantının sorgu geçmişini siler. Bu işlem geri alınamaz." + "value" : "API anahtarı kalıcı olarak silinecek." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thao tác này xoá lịch sử truy vấn của mọi kết nối. Bạn không thể hoàn tác." + "value" : "API key sẽ bị xóa vĩnh viễn." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "这会删除所有连接的查询历史。此操作无法撤销。" + "value" : "API 密钥将被永久删除。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "這會刪除所有連線的查詢歷史。此動作無法復原。" + "value" : "API 金鑰將被永久刪除。" } } } }, - "This deletes this connection's query history. You cannot undo this." : { + "The authenticity of host '%@' can't be established.\n\n%@ key fingerprint is:\n%@\n\nAre you sure you want to continue connecting?" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "The authenticity of host '%1$@' can't be established.\n\n%2$@ key fingerprint is:\n%3$@\n\nAre you sure you want to continue connecting?" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 연결의 쿼리 기록을 삭제합니다. 이 작업은 실행 취소할 수 없습니다." + "value" : "호스트 '%1$@'의 신뢰성을 확인할 수 없습니다.\n\n%2$@ 키 지문:\n%3$@\n\n계속 연결하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu, bu bağlantının sorgu geçmişini siler. Bu işlem geri alınamaz." + "value" : "The authenticity / host '%@' can't be established.\n\n%@ key fingerprint is:\n%@\n\nAre you sure you want to continue connecting?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thao tác này xoá lịch sử truy vấn của kết nối này. Bạn không thể hoàn tác." + "value" : "Không thể xác minh tính xác thực của máy chủ '%@'.\n\nVân tay khóa %@ là:\n%@\n\nBạn có chắc chắn muốn tiếp tục kết nối?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "这会删除此连接的查询历史。此操作无法撤销。" + "value" : "无法确认主机 '%@' 的真实性。\n\n%@ 密钥指纹为:\n%@\n\n确定要继续连接吗?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "這會刪除此連線的查詢歷史。此動作無法復原。" + "value" : "無法確認主機「%1$@」的真實性。\n\n%2$@ 金鑰指紋為:\n%3$@\n\n你確定要繼續連線嗎?" } } } }, - "This diagram is not bound to a database" : { + "The bundled sample database is missing from the app." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 다이어그램은 데이터베이스에 연결되어 있지 않습니다" + "value" : "앱에 포함된 샘플 데이터베이스가 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu diyagram bir veritabanına bağlı değil" + "value" : "Uygulamayla birlikte gelen örnek veritabanı eksik." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sơ đồ này không gắn với cơ sở dữ liệu nào" + "value" : "Cơ sở dữ liệu mẫu đi kèm bị thiếu trong ứng dụng." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此图表未绑定到数据库" + "value" : "应用中缺少内置的示例数据库。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此圖表未綁定到資料庫" + "value" : "應用程式中缺少內建的範例資料庫。" } } } }, - "This discards your edits to the Chinook sample and restores the original copy." : { + "The catalog location is not a folder: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Chinook 샘플의 편집 내용을 취소하고 원본을 복원합니다." + "value" : "카탈로그 위치가 폴더가 아닙니다: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu, Chinook örneğindeki düzenlemelerinizi atar ve özgün kopyayı geri yükler." + "value" : "Katalog konumu bir klasör değil: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thao tác này bỏ các chỉnh sửa của bạn trên mẫu Chinook và khôi phục bản gốc." + "value" : "Vị trí danh mục không phải là thư mục: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "这将放弃你对 Chinook 示例的编辑并恢复原始副本。" + "value" : "目录位置不是文件夹:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "這會放棄你對 Chinook 範例的編輯,並還原成原始副本。" + "value" : "目錄位置不是資料夾:%@" } } } }, - "This discards your unsaved changes and re-reads the file with the chosen settings." : { + "The ChatGPT account could not be identified." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "저장하지 않은 변경 사항을 취소하고 선택한 설정으로 파일을 다시 읽습니다." + "value" : "ChatGPT 계정을 확인할 수 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu, kaydedilmemiş değişikliklerinizi atar ve dosyayı seçilen ayarlarla yeniden okur." + "value" : "ChatGPT hesabı tanımlanamadı." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thao tác này bỏ các thay đổi chưa lưu và đọc lại tệp với cài đặt đã chọn." + "value" : "Không thể xác định tài khoản ChatGPT." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此操作会丢弃未保存的更改,并按所选设置重新读取文件。" + "value" : "无法识别 ChatGPT 账户。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此操作會捨棄未儲存的變更,並依所選設定重新讀取檔案。" + "value" : "無法識別 ChatGPT 帳戶。" } } } }, - "This driver does not expose routine DDL." : { + "The ChatGPT sign-in token could not be read." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 드라이버는 루틴 DDL을 제공하지 않습니다." + "value" : "ChatGPT 로그인 토큰을 읽을 수 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu sürücü rutinler için DDL sağlamıyor." + "value" : "ChatGPT giriş belirteci okunamadı." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Driver này không cung cấp DDL của routine." + "value" : "Không thể đọc mã đăng nhập ChatGPT." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此驱动不提供例程 DDL。" + "value" : "无法读取 ChatGPT 登录令牌。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此驅動程式不提供常式 DDL。" + "value" : "無法讀取 ChatGPT 登入權杖。" } } } }, - "This driver has no TLS fallback. Preferred forces TLS, same as Required." : { + "The Cloud SQL Auth Proxy did not become ready in time: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 드라이버에는 TLS 대체 옵션이 없습니다. 선호는 필수와 동일하게 TLS 연결을 강제합니다." + "value" : "Cloud SQL Auth Proxy가 제한 시간 내에 준비되지 않았습니다: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu sürücünün TLS yedeği yok. Preferred, Required ile aynı şekilde TLS'yi zorunlu kılar." + "value" : "Cloud SQL Auth Proxy zamanında hazır olmadı: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Driver này không có phương án dự phòng TLS. Preferred buộc dùng TLS, giống Required." + "value" : "Cloud SQL Auth Proxy không sẵn sàng kịp thời: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此驱动没有 TLS 回退。“首选”会强制使用 TLS,与“必需”相同。" + "value" : "Cloud SQL Auth Proxy 未能及时就绪:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此驅動程式沒有 TLS 回退機制。「偏好」會強制使用 TLS,與「必要」相同。" + "value" : "Cloud SQL Auth Proxy 未能及時就緒:%@" } } } }, - "This engine does not support creating databases." : { + "The Cloud SQL Auth Proxy did not become ready in time." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 엔진은 데이터베이스 생성을 지원하지 않습니다." + "value" : "Cloud SQL Auth Proxy가 제한 시간 내에 준비되지 않았습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu motor veritabanı oluşturmayı desteklemiyor." + "value" : "Cloud SQL Auth Proxy zamanında hazır olmadı." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Engine này không hỗ trợ tạo cơ sở dữ liệu." + "value" : "Cloud SQL Auth Proxy không sẵn sàng kịp thời." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此引擎不支持创建数据库。" + "value" : "Cloud SQL Auth Proxy 未能及时就绪。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此引擎不支援建立資料庫。" + "value" : "Cloud SQL Auth Proxy 未能及時就緒。" } } } }, - "This file is encrypted" : { + "The Cloud SQL Auth Proxy failed to start: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 파일은 암호화되어 있습니다" + "value" : "Cloud SQL Auth Proxy를 시작하지 못했습니다: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu dosya şifrelenmiş" + "value" : "Cloud SQL Auth Proxy başlatılamadı: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tệp này được mã hóa" + "value" : "Cloud SQL Auth Proxy không khởi động được: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此文件已加密" + "value" : "Cloud SQL Auth Proxy 启动失败:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此檔案已加密" + "value" : "Cloud SQL Auth Proxy 啟動失敗:%@" } } } }, - "This file is encrypted and requires a passphrase" : { + "The Cloud SQL Auth Proxy failed to start." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 파일은 암호화되어 있어 암호가 필요합니다" + "value" : "Cloud SQL Auth Proxy를 시작하지 못했습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu dosya şifrelenmiş ve bir parola gerektiriyor" + "value" : "Cloud SQL Auth Proxy başlatılamadı." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tệp này được mã hóa và yêu cầu cụm mật khẩu" + "value" : "Cloud SQL Auth Proxy không khởi động được." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此文件已加密,需要密码短语" + "value" : "Cloud SQL Auth Proxy 启动失败。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此檔案已加密,需要通關密語" + "value" : "Cloud SQL Auth Proxy 啟動失敗。" } } } }, - "This file is not a valid TablePro export" : { + "The Cloudflare tunnel did not become ready in time: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 파일은 올바른 TablePro 내보내기 파일이 아닙니다" + "value" : "Cloudflare 터널이 제한 시간 내에 준비되지 않았습니다: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu dosya geçerli bir TablePro dışa aktarma dosyası değil" + "value" : "Cloudflare tüneli zamanında hazır olmadı: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tệp này không phải là tệp xuất TablePro hợp lệ" + "value" : "Tunnel Cloudflare không sẵn sàng kịp thời: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此文件不是有效的 TablePro 导出文件" + "value" : "Cloudflare 隧道未能及时就绪:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此檔案不是有效的 TablePro 匯出檔" + "value" : "Cloudflare 隧道未能及時就緒:%@" } } } }, - "This file requires a newer version of TablePro (format version %d)" : { + "The Cloudflare tunnel did not become ready in time." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 파일을 사용하려면 더 최신 버전의 TablePro가 필요합니다(파일 형식 버전 %d)" + "value" : "Cloudflare 터널이 제한 시간 내에 준비되지 않았습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu dosya daha yeni bir TablePro sürümü gerektiriyor (format sürümü %d)" + "value" : "Cloudflare tüneli zamanında hazır olmadı." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tệp này yêu cầu phiên bản TablePro mới hơn (phiên bản định dạng %d)" + "value" : "Tunnel Cloudflare không sẵn sàng kịp thời." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此文件需要更新版本的TablePro(格式版本%d)" + "value" : "Cloudflare 隧道未能及时就绪。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此檔案需要較新版本的 TablePro(格式版本 %d)" + "value" : "Cloudflare 隧道未能及時就緒。" } } } }, - "This file requires a newer version of TablePro (format version %lld)" : { - "extractionState" : "stale", + "The code expires in 15 minutes." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 파일에는 더 최신 버전의 TablePro가 필요합니다(형식 버전 %lld)" + "value" : "코드는 15분 후 만료됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu dosya daha yeni bir TablePro sürümü gerektiriyor (format sürümü %lld)" + "value" : "Kod 15 dakika içinde sona erer." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tệp này yêu cầu phiên bản TablePro mới hơn (phiên bản định dạng %lld)" + "value" : "Mã sẽ hết hạn sau 15 phút." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此文件需要更新版本的 TablePro(格式版本 %lld)" + "value" : "代码将在 15 分钟后过期。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此檔案需要較新版本的 TablePro(格式版本 %lld)" + "value" : "驗證碼將在 15 分鐘後過期。" } } } }, - "This folder is already linked" : { - "comment" : "Alert title when trying to add a folder that is already linked.", - "isCommentAutoGenerated" : true, + "The code has been copied to your clipboard." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 폴더는 이미 연결되어 있습니다" + "value" : "코드가 클립보드에 복사되었습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu klasör zaten bağlı" + "value" : "Kod panonuza kopyalandı." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thư mục này đã được liên kết" + "value" : "Mã đã được sao chép vào clipboard." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此文件夹已关联" + "value" : "代码已复制到剪贴板。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此資料夾已連結" + "value" : "驗證碼已複製到剪貼簿。" } } } }, - "This is a built-in theme." : { + "The Codex CLI login could not be read." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 테마는 기본 제공 테마입니다." + "value" : "Codex CLI 로그인을 읽을 수 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu, yerleşik bir temadır." + "value" : "Codex CLI girişi okunamadı." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đây là chủ đề mặc định." + "value" : "Không thể đọc đăng nhập Codex CLI." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "这是内置主题。" + "value" : "无法读取 Codex CLI 登录。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "這是內建的佈景主題。" + "value" : "無法讀取 Codex CLI 登入。" } } } }, - "This is a registry theme." : { + "The connection is not available. Reconnect and try again." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 테마는 레지스트리 테마입니다." + "value" : "연결을 사용할 수 없습니다. 다시 연결한 후 재시도하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu, kayıt defterinden gelen bir temadır." + "value" : "Bağlantı kullanılamıyor. Yeniden bağlanıp tekrar deneyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đây là chủ đề từ kho plugin." + "value" : "Kết nối không khả dụng. Hãy kết nối lại và thử lại." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "这是插件仓库主题。" + "value" : "连接不可用。请重新连接后重试。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "這是外掛註冊的佈景主題。" + "value" : "連線無法使用。請重新連線後再試一次。" } } } }, - "This is not a value the list editor can read back." : { - "comment" : "A warning that the value entered in the array editor is not a valid value for the type.", + "The connection is not open. Call connect first." : { + + }, + "The connection this query was recorded against no longer exists." : { + "comment" : "Error message shown when a query cannot be opened because the connection it was recorded against no longer exists.", "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "목록 편집기에서 다시 읽을 수 있는 값이 아닙니다." + "value" : "이 쿼리를 기록한 연결이 더 이상 존재하지 않습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu, liste düzenleyicisinin geri okuyabileceği bir değer değil." + "value" : "Bu sorgunun kaydedildiği bağlantı artık yok." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đây không phải giá trị mà trình sửa danh sách đọc lại được." + "value" : "Kết nối mà truy vấn này được ghi lại không còn tồn tại." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "这不是列表编辑器能读回的值。" + "value" : "记录此查询时使用的连接已不存在。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "這不是列表編輯器能讀回的值。" + "value" : "記錄此查詢時使用的連線已不存在。" } } } }, - "This is taking longer than usual." : { + "The connection was closed." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "평소보다 오래 걸리고 있습니다." + "value" : "연결이 종료되었습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu her zamankinden uzun sürüyor." + "value" : "Bağlantı kapatıldı." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Việc này lâu hơn bình thường." + "value" : "Kết nối đã bị đóng." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "这比平时花的时间更久。" + "value" : "连接已关闭。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "這比平時花的時間更久。" + "value" : "連線已關閉。" } } } }, - "This keyword is already in use" : { + "The CREATE statement for one table, as the engine reports it." : { + + }, + "The Cursor CLI is not installed." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 키워드는 이미 사용 중입니다" + "value" : "Cursor CLI가 설치되어 있지 않습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu anahtar sözcük zaten kullanımda" + "value" : "Cursor CLI yüklü değil." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Từ khoá này đã được sử dụng" + "value" : "Cursor CLI chưa được cài đặt." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此关键字已被使用" + "value" : "未安装 Cursor CLI。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此關鍵字已被使用" + "value" : "尚未安裝 Cursor CLI。" } } } }, - "This license has been suspended. Contact support for help." : { + "The Cursor CLI is not installed. Install it, then sign in." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 라이선스는 정지되었습니다. 지원팀에 문의하십시오." + "value" : "Cursor CLI가 설치되어 있지 않습니다. 설치한 다음 로그인하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu lisans askıya alındı. Yardım için destek ile iletişime geçin." + "value" : "Cursor CLI yüklü değil. Yükleyin, sonra giriş yapın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giấy phép này đã bị đình chỉ. Liên hệ hỗ trợ để được giúp đỡ." + "value" : "Cursor CLI chưa được cài đặt. Hãy cài đặt rồi đăng nhập." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此许可证已被暂停。请联系支持团队获取帮助。" + "value" : "未安装 Cursor CLI。请先安装,然后登录。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此授權已遭停用。請聯絡支援團隊尋求協助。" + "value" : "尚未安裝 Cursor CLI。請先安裝,然後登入。" } } } }, - "This license has expired. Renew it to continue using Pro features." : { + "The database filter hides every database on this connection." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 라이선스는 만료되었습니다. Pro 기능을 계속 사용하려면 갱신하십시오." + "value" : "데이터베이스 필터로 인해 이 연결의 모든 데이터베이스가 숨겨졌습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu lisansın süresi doldu. Pro özellikleri kullanmaya devam etmek için yenileyin." + "value" : "Veritabanı filtresi bu bağlantıdaki tüm veritabanlarını gizliyor." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giấy phép này đã hết hạn. Gia hạn để tiếp tục sử dụng các tính năng Pro." + "value" : "Bộ lọc cơ sở dữ liệu đang ẩn mọi cơ sở dữ liệu trên kết nối này." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此许可证已过期。请续期以继续使用 Pro 功能。" + "value" : "数据库筛选隐藏了此连接上的所有数据库。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此授權已過期。請續訂以繼續使用 Pro 功能。" + "value" : "資料庫篩選隱藏了此連線上的所有資料庫。" } } } }, - "This license has reached its activation limit. Deactivate another Mac first." : { + "The database server enforced this, not TablePro's Safe Mode. You are most likely connected to a read replica, or the server sets new transactions to read-only. Connect to the primary server to write.\n\nServer response: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 라이선스는 활성화 한도에 도달했습니다. 먼저 다른 Mac에서 비활성화하십시오." + "value" : "TablePro의 안전 모드가 아니라 데이터베이스 서버에서 적용한 제한입니다. 읽기 전용 복제본에 연결했거나 서버에서 새 트랜잭션을 읽기 전용으로 설정했을 가능성이 큽니다. 쓰려면 기본 서버에 연결하십시오.\n\n서버 응답: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu lisans etkinleştirme sınırına ulaştı. Önce başka bir Mac'i devre dışı bırakın." + "value" : "Bunu TablePro'nun Safe Mode ayarı değil, veritabanı sunucusu uyguladı. Büyük olasılıkla bir okuma kopyasına bağlısınız veya sunucu yeni işlemleri salt okunur yapıyor. Yazmak için birincil sunucuya bağlanın.\n\nSunucu yanıtı: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giấy phép này đã đạt giới hạn kích hoạt. Hãy huỷ kích hoạt một máy Mac khác trước." + "value" : "Đây là do máy chủ cơ sở dữ liệu áp đặt, không phải Chế độ an toàn của TablePro. Nhiều khả năng bạn đang kết nối tới bản sao chỉ đọc, hoặc máy chủ đặt các giao dịch mới ở chế độ chỉ đọc. Hãy kết nối tới máy chủ chính để ghi.\n\nPhản hồi của máy chủ: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此许可证已达到激活上限。请先停用另一台 Mac。" + "value" : "这是数据库服务器的限制,不是 TablePro 的安全模式。你很可能连接到了只读副本,或者服务器将新事务设为只读。请连接主服务器以写入。\n\n服务器响应:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此授權已達啟用上限。請先停用另一台 Mac。" + "value" : "這是資料庫伺服器的限制,不是 TablePro 的安全模式。你很可能連線到唯讀副本,或伺服器將新交易設為唯讀。請連線到主要伺服器以寫入。\n\n伺服器回應:%@" } } } }, - "This license was activated on a different Mac. Activate it here to use Pro features." : { + "The database server rejected this write because the connection is read-only." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 라이선스는 다른 Mac에서 활성화되었습니다. 여기에서 활성화하면 Pro 기능을 사용할 수 있습니다." + "value" : "연결이 읽기 전용이어서 데이터베이스 서버에서 이 쓰기 작업을 거부했습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu lisans başka bir Mac'te etkinleştirildi. Pro özelliklerini kullanmak için burada etkinleştirin." + "value" : "Bağlantı salt okunur olduğu için veritabanı sunucusu bu yazma işlemini reddetti." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giấy phép này đã được kích hoạt trên một máy Mac khác. Kích hoạt tại đây để dùng các tính năng Pro." + "value" : "Máy chủ cơ sở dữ liệu từ chối thao tác ghi này vì kết nối ở chế độ chỉ đọc." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此许可证已在另一台 Mac 上激活。在此激活以使用 Pro 功能。" + "value" : "数据库服务器拒绝了此次写入,因为该连接为只读。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此授權已在另一台 Mac 上啟用。在此啟用以使用 Pro 功能。" + "value" : "資料庫伺服器拒絕了這次寫入,因為該連線為唯讀。" } } } }, - "This license was issued for a different Mac." : { + "The database this user belongs to" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 라이선스는 다른 Mac용으로 발급되었습니다." + "value" : "이 사용자가 속한 데이터베이스" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu lisans başka bir Mac için verildi." + "value" : "Bu kullanıcının ait olduğu veritabanı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giấy phép này được cấp cho một máy Mac khác." + "value" : "Cơ sở dữ liệu mà người dùng này thuộc về" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此许可证是为另一台 Mac 签发的。" + "value" : "此用户所属的数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此授權是為另一台 Mac 簽發的。" + "value" : "此使用者所屬的資料庫" } } } }, - "This machine is not activated for this license." : { + "The destructive query to execute" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 컴퓨터에서는 이 라이선스가 활성화되어 있지 않습니다." + "value" : "실행할 파괴적 쿼리" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu makine bu lisans için etkinleştirilmemiş." + "value" : "Yürütülecek yıkıcı sorgu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Máy này chưa được kích hoạt cho giấy phép này." + "value" : "Truy vấn có tính phá hủy cần thực thi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此设备未激活该许可证。" + "value" : "要执行的破坏性查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此機器尚未針對此授權啟用。" + "value" : "要執行的破壞性查詢" } } } }, - "This machine is not activated." : { + "The destructive statement to run" : { + + }, + "The diagram could not be converted to a PNG image." : { + "comment" : "Error message when the ER diagram could not be exported as PNG.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 컴퓨터는 활성화되어 있지 않습니다." + "value" : "다이어그램을 PNG 이미지로 변환할 수 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu makine etkinleştirilmemiş." + "value" : "Diyagram PNG görüntüsüne dönüştürülemedi." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Máy này chưa được kích hoạt." + "value" : "Không thể chuyển sơ đồ thành ảnh PNG." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此设备未激活。" + "value" : "无法将图表转换为 PNG 图片。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此機器尚未啟用。" + "value" : "無法將圖表轉換為 PNG 圖片。" } } } }, - "This operation is not supported" : { + "The Downloads folder is not available." : { + + }, + "The driver did not return this object's definition, so only its name was compared." : { + + }, + "The encrypted file is corrupt or incomplete" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 작업은 지원되지 않습니다" + "value" : "암호화된 파일이 손상되었거나 불완전합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu işlem desteklenmiyor" + "value" : "Şifreli dosya bozuk veya eksik" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thao tác này không được hỗ trợ" + "value" : "Tệp mã hóa bị hỏng hoặc không đầy đủ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "不支持此操作" + "value" : "加密文件已损坏或不完整" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "不支援此操作" + "value" : "加密的檔案已損毀或不完整" } } } }, - "This permanently deletes the selected rows from the database and can't be undone." : { + "The engine returned no result set to export." : { + + }, + "The export file could not be written." : { + + }, + "The folder \"%@\" will be deleted. Items inside will be moved to the parent level." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "선택한 행을 데이터베이스에서 영구적으로 삭제하며 실행 취소할 수 없습니다." + "value" : "\"%@\" 폴더가 삭제됩니다. 폴더 안의 항목은 상위 단계로 이동됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu, seçili satırları veritabanından kalıcı olarak siler ve geri alınamaz." + "value" : "\"%@\" klasörü silinecek. İçindeki öğeler bir üst seviyeye taşınacak." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thao tác này xóa vĩnh viễn các dòng đã chọn khỏi cơ sở dữ liệu và không thể hoàn tác." + "value" : "Thư mục \"%@\" sẽ bị xoá. Các mục bên trong sẽ được chuyển lên cấp cha." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此操作会从数据库中永久删除所选行,且无法撤销。" + "value" : "文件夹 \"%@\" 将被删除。其中的项目将移至上一级。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此操作會從資料庫中永久刪除所選的列,且無法復原。" + "value" : "資料夾「%@」將被刪除。其中的項目將移至上一層。" } } } }, - "This plan could not be read as a tree. Showing the raw output." : { - "comment" : "A message that appears when the query plan cannot be displayed as a tree.", - "isCommentAutoGenerated" : true, + "The following %d queries may permanently modify or delete data. This action cannot be undone.\n\n%@" : { + "extractionState" : "stale", "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "The following %1$d queries may permanently modify or delete data. This action cannot be undone.\n\n%2$@" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 계획을 트리로 읽을 수 없습니다. 원시 출력을 표시합니다." + "value" : "다음 %1$d개 쿼리는 데이터를 영구적으로 변경하거나 삭제할 수 있습니다. 이 작업은 실행 취소할 수 없습니다.\n\n%2$@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu plan ağaç olarak okunamadı. Ham çıktı gösteriliyor." + "value" : "Aşağıdaki %d sorgu verileri kalıcı olarak değiştirebilir veya silebilir. Bu işlem geri alınamaz.\n\n%@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không đọc được kế hoạch này dưới dạng cây. Đang hiển thị kết quả thô." + "value" : "%d truy vấn sau có thể sửa đổi hoặc xóa dữ liệu vĩnh viễn. Hành động này không thể hoàn tác.\n\n%@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法将此执行计划读取为树形结构。显示原始输出。" + "value" : "以下 %d 条查询可能永久修改或删除数据。此操作无法撤销。\n\n%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法將此執行計畫讀取為樹狀結構。顯示原始輸出。" + "value" : "下列 %1$d 個查詢可能會永久修改或刪除資料。此動作無法復原。\n\n%2$@" } } } }, - "This plugin is not in the registry, so it can't be updated automatically." : { + "The following %lld queries may permanently modify or delete data. This action cannot be undone.\n\n%@" : { + "extractionState" : "stale", "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "The following %1$lld queries may permanently modify or delete data. This action cannot be undone.\n\n%2$@" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 플러그인은 레지스트리에 없으므로 자동으로 업데이트할 수 없습니다." + "value" : "다음 %1$lld개 쿼리는 데이터를 영구적으로 변경하거나 삭제할 수 있습니다. 이 작업은 실행 취소할 수 없습니다.\n\n%2$@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu eklenti depoda bulunmadığından otomatik olarak güncellenemez." + "value" : "The following %lld queries may permanently modify or delete data. This action cannot be undone.\n\n%@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Plugin này không có trong registry nên không thể cập nhật tự động." + "value" : "%1$lld truy vấn sau có thể thay đổi hoặc xóa dữ liệu vĩnh viễn. Hành động này không thể hoàn tác.\n\n%2$@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此插件不在注册表中,无法自动更新。" + "value" : "以下 %lld 个查询可能会永久修改或删除数据。此操作无法撤销。\n\n%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此外掛不在外掛註冊中,因此無法自動更新。" - } - } - } - }, - "This plugin is signed by %@, a developer you have not trusted yet." : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "%@ 개발자가 서명한 플러그인입니다. 이 개발자는 아직 신뢰하지 않았습니다." + "value" : "下列 %1$lld 個查詢可能會永久修改或刪除資料。此動作無法復原。\n\n%2$@" } } } }, - "This plugin requires TablePro %@ or later" : { + "The following changes may cause data loss:\n\n%@\n\nDo you want to proceed?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 플러그인에는 TablePro %@ 이상이 필요합니다" + "value" : "다음 변경 사항으로 인해 데이터가 손실될 수 있습니다.\n\n%@\n\n계속하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu eklenti TablePro %@ veya sonrasını gerektiriyor" + "value" : "Aşağıdaki değişiklikler veri kaybına neden olabilir:\n\n%@\n\nDevam etmek istiyor musunuz?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Plugin này yêu cầu TablePro %@ trở lên" + "value" : "Các thay đổi sau có thể gây mất dữ liệu:\n\n%@\n\nBạn có muốn tiếp tục?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此插件需要 TablePro %@ 或更高版本" + "value" : "以下更改可能导致数据丢失:\n\n%@\n\n是否继续?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此外掛需要 TablePro %@ 或更新版本" + "value" : "下列變更可能導致資料遺失:\n\n%@\n\n是否要繼續?" } } } }, - "This profile will be permanently deleted." : { + "The following plugins were rejected:\n\n%@\n\nPlease update them from the plugin registry." : { + "extractionState" : "stale", "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "This profile will be permanently deleted." - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 프로필은 영구적으로 삭제됩니다." + "value" : "다음 플러그인이 거부되었습니다.\n\n%@\n\n플러그인 레지스트리에서 업데이트하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu profil kalıcı olarak silinecek." + "value" : "Aşağıdaki eklentiler reddedildi:\n\n%@\n\nLütfen eklenti kayıt defterinden güncelleyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hồ sơ này sẽ bị xoá vĩnh viễn." + "value" : "Các plugin sau bị từ chối:\n\n%@\n\nVui lòng cập nhật chúng từ kho plugin." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此配置将被永久删除。" + "value" : "以下插件被拒绝:\n\n%@\n\n请从插件注册表中更新它们。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此設定檔將被永久刪除。" + "value" : "下列外掛已遭拒絕:\n\n%@\n\n請從外掛註冊更新它們。" } } } }, - "This project has no datasets yet." : { + "The following plugins were rejected:\n\n%@\n\nYou can update them from the plugin registry in Settings." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 프로젝트에는 아직 데이터 세트가 없습니다." + "value" : "다음 플러그인이 거부되었습니다.\n\n%@\n\n설정의 플러그인 레지스트리에서 업데이트할 수 있습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu projede henüz veri kümesi yok." + "value" : "Aşağıdaki eklentiler reddedildi:\n\n%@\n\nBunları Ayarlar'daki eklenti kayıt defterinden güncelleyebilirsiniz." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dự án này chưa có dataset nào." + "value" : "Các plugin sau đã bị từ chối:\n\n%@\n\nBạn có thể cập nhật chúng từ plugin registry trong Cài đặt." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此项目还没有数据集。" + "value" : "以下插件已被拒绝:\n\n%@\n\n你可以在设置中的插件注册表更新它们。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此專案還沒有資料集。" + "value" : "下列外掛已遭拒絕:\n\n%@\n\n你可以在「設定」的外掛註冊更新它們。" } } } }, - "This puts the AI-generated SQL into the query editor, replacing what is there. Nothing runs until you execute it." : { + "The instance connection name must be in the form project:region:instance." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "AI가 생성한 SQL을 쿼리 편집기에 넣고 기존 내용을 대체합니다. 직접 실행하기 전까지는 아무것도 실행되지 않습니다." + "value" : "인스턴스 연결 이름은 project:region:instance 형식이어야 합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu, yapay zekanın ürettiği SQL'i sorgu düzenleyiciye koyar ve oradakinin yerini alır. Siz çalıştırana kadar hiçbir şey yürütülmez." + "value" : "Örnek bağlantı adı project:region:instance biçiminde olmalıdır." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thao tác này đưa SQL do AI tạo vào trình soạn truy vấn, thay cho nội dung hiện có. Không có gì chạy cho đến khi bạn thực thi." + "value" : "Tên kết nối instance phải theo dạng project:region:instance." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此操作会把 AI 生成的 SQL 放入查询编辑器,替换其中的内容。在你执行之前不会运行任何语句。" + "value" : "实例连接名称必须为 project:region:instance 形式。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此操作會把 AI 產生的 SQL 放入查詢編輯器,取代其中的內容。在你執行之前不會執行任何陳述式。" + "value" : "執行個體連線名稱必須為 project:region:instance 形式。" } } } }, - "This query belongs to another connection. Load it in the editor to run it there." : { - "comment" : "A description of why the \"Load in Editor\" button is disabled.", - "isCommentAutoGenerated" : true, + "The license has been suspended." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 쿼리는 다른 연결에 속합니다. 해당 연결에서 실행하려면 편집기로 불러오십시오." + "value" : "라이선스가 정지되었습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu sorgu başka bir bağlantıya ait. Orada çalıştırmak için düzenleyicide açın." + "value" : "Lisans askıya alındı." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Truy vấn này thuộc về một kết nối khác. Hãy mở nó trong trình soạn thảo để chạy ở đó." + "value" : "Giấy phép đã bị đình chỉ." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此查询属于另一个连接。在编辑器中载入它以在那里运行。" + "value" : "许可证已被暂停。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此查詢屬於另一個連線。在編輯器中載入它以在那裡執行。" + "value" : "授權已遭停用。" } } } }, - "This query may permanently modify or delete data and cannot be undone.\n\n%@" : { + "The license has expired." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 쿼리는 데이터를 영구적으로 변경하거나 삭제할 수 있으며 실행 취소할 수 없습니다.\n\n%@" + "value" : "라이선스가 만료되었습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu sorgu verileri kalıcı olarak değiştirebilir veya silebilir ve geri alınamaz.\n\n%@" + "value" : "Lisansın süresi doldu." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Truy vấn này có thể sửa đổi hoặc xóa dữ liệu vĩnh viễn và không thể hoàn tác.\n\n%@" + "value" : "Giấy phép đã hết hạn." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此查询可能永久修改或删除数据,且无法撤销。\n\n%@" + "value" : "许可证已过期。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此查詢可能會永久修改或刪除資料,且無法復原。\n\n%@" + "value" : "授權已過期。" } } } }, - "This query may permanently modify or delete data." : { - "extractionState" : "stale", + "The license key is invalid." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 쿼리는 데이터를 영구적으로 변경하거나 삭제할 수 있습니다." + "value" : "라이선스 키가 유효하지 않습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "This query may permanently modify or delete data." + "value" : "Lisans anahtarı geçersiz." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Truy vấn này có thể sửa đổi hoặc xóa dữ liệu vĩnh viễn." + "value" : "Mã giấy phép không hợp lệ." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此查询可能会永久修改或删除数据。" + "value" : "许可证密钥无效。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此查詢可能會永久修改或刪除資料。" + "value" : "授權金鑰無效。" } } } }, - "This server has no databases yet." : { + "The license text is missing from this build." : { + + }, + "The list of open source libraries is missing from this build." : { + + }, + "The listener does not know the requested service name" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 서버에는 아직 데이터베이스가 없습니다." + "value" : "리스너가 요청한 서비스 이름을 인식하지 못합니다" } - }, - "tr" : { + } + } + }, + "The listener does not know the requested SID" : { + "extractionState" : "stale", + "localizations" : { + "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Bu sunucuda henüz veritabanı yok." + "value" : "리스너가 요청한 SID를 인식하지 못합니다" } - }, - "vi" : { + } + } + }, + "The listener has no handler available for the requested service" : { + "extractionState" : "stale", + "localizations" : { + "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Máy chủ này chưa có cơ sở dữ liệu nào." + "value" : "리스너에 요청한 서비스를 처리할 수 있는 핸들러가 없습니다" } - }, - "zh-Hans" : { + } + } + }, + "The listener is blocking new connections to the requested service" : { + "extractionState" : "stale", + "localizations" : { + "ko" : { "stringUnit" : { "state" : "translated", - "value" : "此服务器还没有数据库。" + "value" : "리스너가 요청한 서비스에 대한 새 연결을 차단하고 있습니다" } - }, - "zh-Hant" : { + } + } + }, + "The MCP server could not bind a port (%@)" : { + + }, + "The MCP server could not issue its bridge credential" : { + + }, + "The MCP server started without a port" : { + + }, + "The Microsoft Entra ID access token was rejected by the driver." : { + "extractionState" : "stale", + "localizations" : { + "ko" : { "stringUnit" : { "state" : "translated", - "value" : "此伺服器還沒有資料庫。" + "value" : "Microsoft Entra ID 액세스 토큰이 드라이버에서 거부되었습니다." } } } }, - "This server has no users or roles you can manage." : { + "The object types taking part in the comparison are set in Options." : { + + }, + "The Oracle listener refused the connection (ORA-%ld)." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 서버에는 관리할 수 있는 사용자 또는 역할이 없습니다." + "value" : "Oracle 리스너가 연결을 거부했습니다(ORA-%ld)." + } + } + } + }, + "The Oracle listener refused the connection." : { + "extractionState" : "stale", + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "Oracle 리스너가 연결을 거부했습니다." + } + } + } + }, + "The Oracle server closed the connection during the login handshake." : { + "extractionState" : "stale", + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "Oracle 서버가 로그인 핸드셰이크 중 연결을 종료했습니다." + } + } + } + }, + "The pairing challenge is malformed." : { + + }, + "The pairing verifier is malformed." : { + + }, + "The partial backup file will be removed." : { + "comment" : "A message displayed in a cancel confirmation alert for a backup.", + "isCommentAutoGenerated" : true, + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "부분 백업 파일이 삭제됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu sunucuda yönetebileceğiniz kullanıcı veya rol yok." + "value" : "Kısmi yedek dosyası kaldırılacak." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Máy chủ này không có người dùng hoặc vai trò nào bạn quản lý được." + "value" : "File sao lưu dở dang sẽ bị xóa." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此服务器没有你可以管理的用户或角色。" + "value" : "未完成的备份文件将被移除。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此伺服器沒有你可以管理的使用者或角色。" + "value" : "未完成的備份檔案將被移除。" } } } }, - "This sets %lld loaded rows. Review and Save to apply." : { + "The password source produced an empty password" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "불러온 행을 %lld개로 설정합니다. 적용하려면 검토한 후 저장하십시오." + "value" : "암호 소스에서 빈 암호를 반환했습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu, yüklenmiş %lld satırın değerini ayarlar. Uygulamak için gözden geçirip kaydedin." + "value" : "Parola kaynağı boş bir parola döndürdü" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thao tác này đặt giá trị cho %lld hàng đã tải. Xem lại và Lưu để áp dụng." + "value" : "Nguồn mật khẩu trả về mật khẩu rỗng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "这将设置 %lld 个已加载的行。请检查后保存以应用。" + "value" : "密码来源返回了空密码" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "這會設定 %lld 列已載入的資料。請檢查後儲存以套用。" + "value" : "密碼來源產生了空白密碼" } } } }, - "This sets 1 loaded row. Review and Save to apply." : { + "The passwords do not match." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "불러온 행을 1개로 설정합니다. 적용하려면 검토한 후 저장하십시오." + "value" : "암호가 일치하지 않습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu, yüklenmiş 1 satırın değerini ayarlar. Uygulamak için gözden geçirip kaydedin." + "value" : "Parolalar eşleşmiyor." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thao tác này đặt giá trị cho 1 hàng đã tải. Xem lại và Lưu để áp dụng." + "value" : "Mật khẩu không khớp." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "这将设置 1 个已加载的行。请检查后保存以应用。" + "value" : "两次输入的密码不一致。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "這會設定 1 列已載入的資料。請檢查後儲存以套用。" + "value" : "兩次輸入的密碼不一致。" } } } }, - "This shortcut is reserved by macOS and cannot be assigned." : { + "The plugin depends on a component that's missing or incompatible with this Mac." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 단축키는 macOS에서 예약되어 있어 지정할 수 없습니다." + "value" : "이 플러그인에 필요한 구성 요소가 없거나 이 Mac과 호환되지 않습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu kısayol macOS tarafından ayrılmıştır ve atanamaz." + "value" : "Eklenti, eksik olan veya bu Mac ile uyumsuz bir bileşene bağlı." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phím tắt này được macOS dành riêng và không thể gán." + "value" : "Plugin phụ thuộc vào một thành phần bị thiếu hoặc không tương thích với máy Mac này." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此快捷键已被 macOS 保留,无法分配。" + "value" : "该插件依赖的组件缺失或与这台 Mac 不兼容。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此快速鍵已由 macOS 保留,無法指派。" + "value" : "該外掛依賴的元件遺失或與這台 Mac 不相容。" } } } }, - "This shortcut is reserved for \"%@\" and cannot be assigned." : { + "The plugin doesn't include a build for this Mac's processor architecture." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 단축키는 \"%@\"에 예약되어 있어 지정할 수 없습니다." + "value" : "이 플러그인에는 이 Mac의 프로세서 아키텍처용 빌드가 포함되어 있지 않습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu kısayol \"%@\" için ayrılmıştır ve atanamaz." + "value" : "Eklenti, bu Mac'in işlemci mimarisi için bir sürüm içermiyor." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phím tắt này được dành riêng cho \"%@\" và không thể gán." + "value" : "Plugin không có bản dựng cho kiến trúc bộ xử lý của máy Mac này." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此快捷键已保留给 \"%@\",无法分配。" + "value" : "该插件不包含适用于这台 Mac 处理器架构的版本。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此快速鍵已保留給「%@」,無法指派。" + "value" : "該外掛不含適用於這台 Mac 處理器架構的版本。" } } } }, - "This tab is on %@. Switch the connection to that database to run it." : { + "The plugin isn't compatible with this version of TablePro. Update the app or reinstall the plugin." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 탭은 %@에 있습니다. 실행하려면 연결을 해당 데이터베이스로 전환하십시오." + "value" : "이 플러그인은 현재 TablePro 버전과 호환되지 않습니다. 앱을 업데이트하거나 플러그인을 다시 설치하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu sekme %@ üzerinde. Çalıştırmak için bağlantıyı o veritabanına geçirin." + "value" : "Eklenti bu TablePro sürümüyle uyumlu değil. Uygulamayı güncelleyin veya eklentiyi yeniden yükleyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tab này đang ở %@. Chuyển kết nối sang cơ sở dữ liệu đó để chạy." + "value" : "Plugin không tương thích với phiên bản TablePro này. Hãy cập nhật ứng dụng hoặc cài lại plugin." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此标签页位于 %@。请将连接切换到该数据库后再运行。" + "value" : "该插件与此版本的 TablePro 不兼容。请更新应用或重新安装插件。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此分頁位於 %@。請將連線切換到該資料庫後再執行。" + "value" : "該外掛與此版本的 TablePro 不相容。請更新應用程式或重新安裝外掛。" } } } }, - "This table has no triggers. Triggers run automatically when rows are inserted, updated, or deleted." : { + "The plugin was built for an incompatible runtime." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 테이블에는 트리거가 없습니다. 트리거는 행을 삽입, 업데이트 또는 삭제할 때 자동으로 실행됩니다." + "value" : "이 플러그인은 호환되지 않는 런타임용으로 빌드되었습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu tablonun tetikleyicisi yok. Tetikleyiciler, satırlar eklendiğinde, güncellendiğinde veya silindiğinde otomatik olarak çalışır." + "value" : "Eklenti uyumsuz bir çalışma zamanı için derlenmiş." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bảng này không có trigger. Trigger tự động chạy khi các dòng được chèn, cập nhật hoặc xóa." + "value" : "Plugin được xây dựng cho một runtime không tương thích." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此表没有触发器。当插入、更新或删除行时,触发器会自动运行。" + "value" : "该插件是为不兼容的运行时构建的。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此資料表沒有觸發器。當插入、更新或刪除列時,觸發器會自動執行。" + "value" : "該外掛是為不相容的執行環境建置的。" } } } }, - "This token will not be shown again" : { + "The plugin's executable couldn't be loaded. It may be damaged or improperly signed." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 토큰은 다시 표시되지 않습니다" + "value" : "플러그인의 실행 파일을 불러올 수 없습니다. 파일이 손상되었거나 올바르게 서명되지 않았을 수 있습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu token bir daha gösterilmeyecek" + "value" : "Eklentinin çalıştırılabilir dosyası yüklenemedi. Hasarlı veya hatalı imzalanmış olabilir." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Token này sẽ không hiển thị lại nữa" + "value" : "Không thể tải tệp thực thi của plugin. Có thể tệp bị hỏng hoặc ký không đúng." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此令牌将不再显示" + "value" : "无法加载插件的可执行文件。它可能已损坏或签名不正确。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此權杖將不會再次顯示" + "value" : "無法載入外掛的執行檔。它可能已損壞或簽章不正確。" } } } }, - "This user can grant this privilege to others." : { + "The plugin's executable file is missing." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 사용자는 다른 사용자에게 이 권한을 부여할 수 있습니다." + "value" : "플러그인의 실행 파일이 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu kullanıcı bu yetkiyi başkalarına verebilir." + "value" : "Eklentinin çalıştırılabilir dosyası eksik." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Người dùng này có thể cấp quyền đó cho người khác." + "value" : "Thiếu tệp thực thi của plugin." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此用户可以将该权限授予他人。" + "value" : "缺少插件的可执行文件。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此使用者可以將該權限授予他人。" + "value" : "缺少外掛的執行檔。" } } } }, - "This value is not one of the type's current labels" : { - "comment" : "A tooltip for a warning icon in the array value editor.", - "isCommentAutoGenerated" : true, + "The previous code wasn't accepted. Wait for your authenticator to refresh, then enter the new code." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 값은 현재 유형 레이블 중 하나가 아닙니다" + "value" : "이전 코드는 승인되지 않았습니다. 인증 앱이 새로 고침될 때까지 기다린 다음 새 코드를 입력하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu değer, türün geçerli etiketlerinden biri değil" + "value" : "Önceki kod kabul edilmedi. Kimlik doğrulayıcınızın yenilenmesini bekleyin, ardından yeni kodu girin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giá trị này không nằm trong các nhãn hiện có của kiểu" + "value" : "Mã trước đó không được chấp nhận. Chờ ứng dụng xác thực làm mới rồi nhập mã mới." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此值不在该类型的现有标签中" + "value" : "上一个验证码未被接受。请等待验证器刷新后输入新验证码。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此值不在該類型的現有標籤中" + "value" : "上一個驗證碼未被接受。請等待你的驗證器重新整理後,再輸入新的驗證碼。" } } } }, - "This value is too large to parse. Use raw mode to inspect it as text." : { + "The previous response wasn't accepted. Try again." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 값은 구문 분석하기에 너무 큽니다. 원시 모드에서 텍스트로 확인하십시오." + "value" : "이전 응답이 승인되지 않았습니다. 다시 시도하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu değer ayrıştırılamayacak kadar büyük. Metin olarak incelemek için ham modu kullanın." + "value" : "Önceki yanıt kabul edilmedi. Tekrar deneyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giá trị này quá lớn để phân tích. Dùng chế độ raw để xem dưới dạng văn bản." + "value" : "Câu trả lời trước không được chấp nhận. Hãy thử lại." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此值太大,无法解析。请使用原始模式以文本形式查看。" + "value" : "上一次的回答未被接受。请重试。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此值太大,無法解析。請使用原始模式以文字形式檢視。" + "value" : "上一次的回答未被接受。請再試一次。" } } } }, - "This will detach partition '%@'. Data will be preserved but inaccessible until re-attached." : { + "The provider configuration and stored API key will be deleted." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "파티션 '%@'을(를) 분리합니다. 데이터는 보존되지만 다시 연결할 때까지 접근할 수 없습니다." + "value" : "제공업체 구성과 저장된 API 키가 삭제됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "'%@' bölümü ayrılacak. Veriler korunacak ancak yeniden bağlanana kadar erişilemez olacak." + "value" : "Sağlayıcı yapılandırması ve saklanan API anahtarı silinecek." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thao tác này sẽ tách rời phân vùng '%@'. Dữ liệu sẽ được giữ lại nhưng không truy cập được cho đến khi gắn lại." + "value" : "Cấu hình nhà cung cấp và khóa API đã lưu sẽ bị xóa." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此操作将分离分区 '%@'。数据将被保留但在重新挂载前不可访问。" + "value" : "将删除提供商配置和已存储的 API 密钥。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此操作將分離分割區「%@」。資料會保留,但在重新附加前無法存取。" + "value" : "供應商設定與已儲存的 API 金鑰將被刪除。" } } } }, - "This will fetch all remaining rows. Large result sets use significant memory. Continue?" : { + "The query did not finish within the configured timeout, so the connection was reset. Run the query again." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "남은 행을 모두 가져옵니다. 결과 집합이 크면 상당한 메모리를 사용합니다. 계속하시겠습니까?" + "value" : "쿼리가 설정된 제한 시간 내에 완료되지 않아 연결을 재설정했습니다. 쿼리를 다시 실행하십시오." + } + } + } + }, + "The query exceeds the 100KB limit." : { + + }, + "The query history database could not be opened, so there is nothing to summarize." : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "쿼리 기록 데이터베이스를 열 수 없어 요약할 내용이 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kalan tüm satırlar getirilecek. Büyük sonuç kümeleri önemli bellek kullanır. Devam edilsin mi?" + "value" : "Sorgu geçmişi veritabanı açılamadı, bu yüzden özetlenecek bir şey yok." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thao tác này sẽ tải tất cả dòng còn lại. Tập kết quả lớn sử dụng nhiều bộ nhớ. Tiếp tục?" + "value" : "Không mở được cơ sở dữ liệu lịch sử truy vấn, nên không có gì để tổng hợp." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此操作将获取所有剩余行。大量结果会占用较多内存。是否继续?" + "value" : "无法打开查询历史数据库,因此没有可汇总的内容。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此操作將擷取所有剩餘的列。大量結果集會佔用大量記憶體。是否繼續?" + "value" : "無法開啟查詢歷史資料庫,因此沒有可彙總的內容。" } } } }, - "This will fetch approximately %@ more rows. Large result sets use significant memory. Continue?" : { + "The query is empty." : { + + }, + "The query to review" : { + + }, + "The question to answer, in plain language" : { + + }, + "The redirect address is not a local callback, so pairing was refused." : { + + }, + "The run was rolled back. %@ is unchanged." : { + + }, + "The schema change to make, in plain language" : { + + }, + "The secret manager did not return valid JSON." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "약 %@개의 행을 더 가져옵니다. 결과 집합이 크면 상당한 메모리를 사용합니다. 계속하시겠습니까?" + "value" : "보안 정보 관리자가 유효한 JSON을 반환하지 않았습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yaklaşık %@ satır daha getirilecek. Büyük sonuç kümeleri önemli bellek kullanır. Devam edilsin mi?" + "value" : "Secret manager geçerli bir JSON döndürmedi." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thao tác này sẽ tải thêm khoảng %@ dòng. Tập kết quả lớn sử dụng nhiều bộ nhớ. Tiếp tục?" + "value" : "Trình quản lý secret không trả về JSON hợp lệ." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此操作将获取约 %@ 行更多数据。大量结果会占用较多内存。是否继续?" + "value" : "secret manager 未返回有效的 JSON。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此操作將額外擷取約 %@ 列。大量結果集會佔用大量記憶體。是否繼續?" + "value" : "secret manager 未回傳有效的 JSON。" } } } }, - "This will load all %@ rows on a single page. Large result sets use significant memory. Continue?" : { + "The selected axes contain only null, binary, or invalid values." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@개 행을 모두 한 페이지에 불러옵니다. 결과 집합이 크면 상당한 메모리를 사용합니다. 계속하시겠습니까?" + "value" : "선택한 축에 null, 바이너리 또는 유효하지 않은 값만 있습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu işlem %@ satırın tamamını tek bir sayfada yükler. Büyük sonuç kümeleri önemli ölçüde bellek kullanır. Devam edilsin mi?" + "value" : "Seçilen eksenler yalnızca null, ikili veya geçersiz değerler içeriyor." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thao tác này sẽ tải toàn bộ %@ hàng trên một trang. Tập kết quả lớn dùng nhiều bộ nhớ. Tiếp tục?" + "value" : "Các trục đã chọn chỉ chứa giá trị null, nhị phân hoặc không hợp lệ." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "这将在单个页面加载全部 %@ 行。大型结果集会占用大量内存。要继续吗?" + "value" : "所选坐标轴只包含空值、二进制或无效值。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "這會在單一頁面載入全部 %@ 列。大型結果集會佔用大量記憶體。要繼續嗎?" + "value" : "所選座標軸只包含空值、二進位或無效值。" } } } }, - "This will permanently delete %lld %@. This action cannot be undone." : { - "extractionState" : "stale", + "The selected backup file is not readable." : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "This will permanently delete %1$lld %2$@. This action cannot be undone." - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$lld개의 %2$@을(를) 영구적으로 삭제합니다. 이 작업은 실행 취소할 수 없습니다." + "value" : "선택한 백업 파일을 읽을 수 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "This will permanently delete %lld %@. This action cannot be undone." + "value" : "Seçilen yedek dosyası okunamıyor." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thao tác này sẽ xóa vĩnh viễn %1$lld %2$@. Không thể hoàn tác." + "value" : "Không đọc được file sao lưu đã chọn." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此操作将永久删除 %lld 个%@。无法撤销。" + "value" : "所选备份文件不可读。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此操作將永久刪除 %1$lld 個%2$@。此動作無法復原。" + "value" : "所選的備份檔案無法讀取。" } } } }, - "This will permanently delete all conversation history." : { + "The server sent an unexpected message and the connection was reset. Run the query again." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 대화 기록을 영구적으로 삭제합니다." + "value" : "서버에서 예상하지 못한 메시지를 보내 연결을 재설정했습니다. 쿼리를 다시 실행하십시오." + } + } + } + }, + "The server will be accessible from other devices on your network. Authentication and TLS are enabled automatically." : { + "extractionState" : "stale", + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "네트워크의 다른 기기에서 서버에 접근할 수 있습니다. 인증과 TLS가 자동으로 활성화됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu işlem tüm konuşma geçmişini kalıcı olarak silecek." + "value" : "Sunucuya ağınızdaki diğer cihazlardan erişilebilecek. Kimlik doğrulama ve TLS otomatik olarak etkinleştirilir." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hành động này sẽ xóa vĩnh viễn toàn bộ lịch sử hội thoại." + "value" : "Server sẽ truy cập được từ các thiết bị khác trong mạng của bạn. Xác thực và TLS được bật tự động." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "这将永久删除所有对话历史。" + "value" : "服务器将可被网络上的其他设备访问。认证和 TLS 会自动启用。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此操作將永久刪除所有對話記錄。" + "value" : "伺服器將可由網路上的其他裝置存取。驗證與 TLS 會自動啟用。" } } } }, - "This will permanently delete all data in partition '%@'." : { + "The slow query" : { + + }, + "the SOCKS proxy" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "파티션 '%@'의 모든 데이터를 영구적으로 삭제합니다." + "value" : "SOCKS 프록시" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "'%@' bölümündeki tüm veriler kalıcı olarak silinecek." + "value" : "SOCKS proxy" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thao tác này sẽ xoá vĩnh viễn tất cả dữ liệu trong phân vùng '%@'." + "value" : "SOCKS proxy" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此操作将永久删除分区 '%@' 中的所有数据。" + "value" : "SOCKS 代理" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此操作將永久刪除分割區「%@」中的所有資料。" + "value" : "SOCKS 代理" } } } }, - "This will permanently delete all query history entries. This action cannot be undone." : { + "The SOCKS proxy configuration is incomplete. Enter a proxy host and port." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 쿼리 기록 항목을 영구적으로 삭제합니다. 이 작업은 실행 취소할 수 없습니다." + "value" : "SOCKS 프록시 구성이 완료되지 않았습니다. 프록시 호스트와 포트를 입력하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu işlem tüm sorgu geçmişi kayıtlarını kalıcı olarak siler. Bu işlem geri alınamaz." + "value" : "SOCKS proxy yapılandırması eksik. Bir proxy sunucusu ve portu girin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thao tác này sẽ xóa vĩnh viễn toàn bộ lịch sử truy vấn. Không thể hoàn tác." + "value" : "Cấu hình SOCKS proxy chưa đầy đủ. Hãy nhập máy chủ và cổng proxy." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此操作将永久删除所有查询历史记录。无法撤销。" + "value" : "SOCKS 代理配置不完整。请输入代理主机和端口。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此操作將永久刪除所有查詢歷程記錄項目。此動作無法復原。" + "value" : "SOCKS 代理設定不完整。請輸入代理主機與連接埠。" } } } }, - "This will remove the license from this machine. You can reactivate later." : { + "The source driver cannot stream rows for a comparison." : { + + }, + "The SSH server connects to this socket instead of Host and Port. A database on a socket cannot negotiate TLS, so TablePro turns it off; the SSH tunnel still encrypts the whole path." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 컴퓨터에서 라이선스를 제거합니다. 나중에 다시 활성화할 수 있습니다." + "value" : "SSH 서버는 호스트 및 포트 대신 이 소켓에 연결합니다. 소켓의 데이터베이스는 TLS를 협상할 수 없으므로 TablePro에서 TLS를 끕니다. 단, SSH 터널은 전체 경로를 계속 암호화합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu işlem lisansı bu makineden kaldırır. Daha sonra yeniden etkinleştirebilirsiniz." + "value" : "SSH sunucusu, Sunucu ve Port yerine bu sokete bağlanır. Soket üzerindeki bir veritabanı TLS anlaşması yapamaz, bu yüzden TablePro TLS'i kapatır; SSH tüneli yine de tüm yolu şifreler." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thao tác này sẽ gỡ giấy phép khỏi máy này. Bạn có thể kích hoạt lại sau." + "value" : "Máy chủ SSH kết nối tới socket này thay vì Máy chủ và Cổng. Cơ sở dữ liệu trên socket không thể thương lượng TLS, nên TablePro tắt TLS; đường hầm SSH vẫn mã hóa toàn bộ đường truyền." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此操作将从本机移除许可证。您可以稍后重新激活。" + "value" : "SSH 服务器会连接到此 socket,而不是主机和端口。socket 上的数据库无法协商 TLS,因此 TablePro 会关闭 TLS;SSH 隧道仍然加密整条链路。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此操作將從這台機器移除授權。你可以稍後重新啟用。" + "value" : "SSH 伺服器會連線到此 socket,而不是主機與連接埠。socket 上的資料庫無法協商 TLS,因此 TablePro 會關閉 TLS;SSH 通道仍會加密整條路徑。" } } } }, - "This will reset all settings across every section to their default values." : { + "The SSH server could not reach %@. That address is resolved from the SSH server, not from your Mac, so a database that only listens on 127.0.0.1 needs Host set to localhost. Also check that sshd allows TCP forwarding (AllowTcpForwarding). (%@)" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "The SSH server could not reach %1$@. That address is resolved from the SSH server, not from your Mac, so a database that only listens on 127.0.0.1 needs Host set to localhost. Also check that sshd allows TCP forwarding (AllowTcpForwarding). (%2$@)" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 섹션의 설정을 기본값으로 재설정합니다." + "value" : "SSH 서버에서 %1$@에 연결할 수 없습니다. 이 주소는 Mac이 아니라 SSH 서버에서 확인되므로, 127.0.0.1에서만 수신하는 데이터베이스의 호스트는 localhost로 설정해야 합니다. sshd에서 TCP 전달(AllowTcpForwarding)을 허용하는지도 확인하십시오. (%2$@)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu işlem tüm bölümlerdeki ayarları varsayılan değerlerine sıfırlayacaktır." + "value" : "SSH sunucusu %1$@ adresine ulaşamadı. Bu adres sizin Mac'inizden değil, SSH sunucusundan çözümlenir; bu yüzden yalnızca 127.0.0.1 dinleyen bir veritabanı için Sunucu alanı localhost olmalıdır. Ayrıca sshd'nin TCP yönlendirmeye izin verdiğini denetleyin (AllowTcpForwarding). (%2$@)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thao tác này sẽ đặt lại tất cả cài đặt ở mọi mục về giá trị mặc định." + "value" : "Máy chủ SSH không thể kết nối tới %1$@. Địa chỉ đó được phân giải từ máy chủ SSH chứ không phải từ máy Mac của bạn, nên cơ sở dữ liệu chỉ lắng nghe trên 127.0.0.1 cần đặt Máy chủ là localhost. Ngoài ra hãy kiểm tra sshd có cho phép chuyển tiếp TCP không (AllowTcpForwarding). (%2$@)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "这将把所有部分的设置重置为默认值。" + "value" : "SSH 服务器无法访问 %1$@。该地址是从 SSH 服务器解析的,而不是从你的 Mac 解析,因此只监听 127.0.0.1 的数据库需要把主机设为 localhost。另请检查 sshd 是否允许 TCP 转发(AllowTcpForwarding)。(%2$@)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此操作會將所有區段的設定重設為預設值。" + "value" : "SSH 伺服器無法連到 %1$@。該位址是從 SSH 伺服器解析的,而不是從你的 Mac 解析,因此只監聽 127.0.0.1 的資料庫需要將主機設為 localhost。另請檢查 sshd 是否允許 TCP 轉送(AllowTcpForwarding)。(%2$@)" } } } }, - "Threads" : { + "The SSH server did not accept passwordless authentication. Choose Password, Private Key, or SSH Agent." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "스레드" + "value" : "SSH 서버에서 암호 없는 인증을 허용하지 않았습니다. 암호, 개인 키 또는 SSH 에이전트를 선택하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İş Parçacıkları" + "value" : "SSH sunucusu parolasız kimlik doğrulamayı kabul etmedi. Parola, Özel Anahtar veya SSH Agent seçin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Luồng" + "value" : "Máy chủ SSH không chấp nhận xác thực không mật khẩu. Hãy chọn Mật khẩu, Khóa riêng hoặc SSH Agent." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "线程" + "value" : "SSH 服务器不接受无密码认证。请选择密码、私钥或 SSH Agent。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "執行緒" + "value" : "SSH 伺服器不接受無密碼驗證。請選擇密碼、私密金鑰或 SSH Agent。" } } } }, - "Tier:" : { + "The SSH server did not open a forwarding channel to %@ within %d seconds. Check for a firewall between the SSH server and that address." : { "localizations" : { "en" : { "stringUnit" : { - "state" : "translated", - "value" : "Tier:" + "state" : "new", + "value" : "The SSH server did not open a forwarding channel to %1$@ within %2$d seconds. Check for a firewall between the SSH server and that address." } }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "등급:" + "value" : "SSH 서버가 %2$d초 이내에 %1$@에 대한 전달 채널을 열지 못했습니다. SSH 서버와 해당 주소 사이에 방화벽이 있는지 확인하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Katman:" + "value" : "SSH sunucusu %2$d saniye içinde %1$@ adresine bir yönlendirme kanalı açmadı. SSH sunucusu ile bu adres arasında güvenlik duvarı olup olmadığını denetleyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hạng:" + "value" : "Máy chủ SSH không mở kênh chuyển tiếp tới %1$@ trong %2$d giây. Hãy kiểm tra tường lửa giữa máy chủ SSH và địa chỉ đó." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "等级:" + "value" : "SSH 服务器未在 %2$d 秒内建立到 %1$@ 的转发通道。请检查 SSH 服务器与该地址之间是否有防火墙。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "等級:" + "value" : "SSH 伺服器未在 %2$d 秒內建立到 %1$@ 的轉送通道。請檢查 SSH 伺服器與該位址之間是否有防火牆。" } } } }, - "Time" : { + "The SSH server is asking for additional verification." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "시간" + "value" : "SSH 서버에서 추가 인증을 요청하고 있습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Zaman" + "value" : "SSH sunucusu ek doğrulama istiyor." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thời gian" + "value" : "Máy chủ SSH đang yêu cầu xác minh bổ sung." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "时间" + "value" : "SSH 服务器要求进行额外验证。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "時間" + "value" : "SSH 伺服器要求進行額外驗證。" } } } }, - "Time Zone" : { + "The SSH server would not forward the socket %@. Check that the path exists on the server and that sshd allows socket forwarding (AllowStreamLocalForwarding). (%@)" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "The SSH server would not forward the socket %1$@. Check that the path exists on the server and that sshd allows socket forwarding (AllowStreamLocalForwarding). (%2$@)" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "시간대" + "value" : "SSH 서버에서 소켓 %1$@ 전달을 허용하지 않았습니다. 서버에 해당 경로가 있는지, sshd에서 소켓 전달(AllowStreamLocalForwarding)을 허용하는지 확인하십시오. (%2$@)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Saat Dilimi" + "value" : "SSH sunucusu %1$@ soketini yönlendirmedi. Yolun sunucuda var olduğunu ve sshd'nin soket yönlendirmeye izin verdiğini denetleyin (AllowStreamLocalForwarding). (%2$@)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Múi giờ" + "value" : "Máy chủ SSH không chuyển tiếp socket %1$@. Hãy kiểm tra đường dẫn có tồn tại trên máy chủ và sshd có cho phép chuyển tiếp socket không (AllowStreamLocalForwarding). (%2$@)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "时区" + "value" : "SSH 服务器未转发 socket %1$@。请检查该路径在服务器上是否存在,以及 sshd 是否允许 socket 转发(AllowStreamLocalForwarding)。(%2$@)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "時區" + "value" : "SSH 伺服器未轉送 socket %1$@。請檢查該路徑在伺服器上是否存在,以及 sshd 是否允許 socket 轉送(AllowStreamLocalForwarding)。(%2$@)" } } } }, - "Time spent waiting" : { + "The SSO session for profile \"%@\" has expired. Sign in with your browser?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "대기 시간" + "value" : "프로필 \"%@\"의 SSO 세션이 만료되었습니다. 브라우저에서 로그인하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Beklemede geçen süre" + "value" : "\"%@\" profilinin SSO oturumunun süresi doldu. Tarayıcınızla giriş yapmak ister misiniz?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thời gian chờ" + "value" : "Phiên SSO của hồ sơ \"%@\" đã hết hạn. Đăng nhập bằng trình duyệt?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "等待耗时" + "value" : "配置文件 \"%@\" 的 SSO 会话已过期。要通过浏览器登录吗?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "等待耗時" + "value" : "設定檔「%@」的 SSO 工作階段已過期。要透過瀏覽器登入嗎?" } } } }, - "Time: %@" : { + "The statement that was sent, with its prefix" : { + + }, + "The statement to explain, without an EXPLAIN prefix" : { + + }, + "The statements ran but the transaction could not be committed: %@" : { + + }, + "The table %@ was already created with different columns. Choose another name." : { + + }, + "the target" : { + + }, + "The target connection is no longer open." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "시간: %@" + "value" : "대상 연결이 더 이상 열려 있지 않습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Zaman: %@" + "value" : "Hedef bağlantı artık açık değil." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thời gian: %@" + "value" : "Kết nối đích không còn mở." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "时间:%@" + "value" : "目标连接已不再打开。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "時間:%@" - } - } - } - }, - "Timed out completing Kerberos authentication. The Kerberos KDC (domain controller) may be unreachable, the server's SPN may be missing, or this device's clock may be off. Check your network to the domain, or use SQL Server Authentication." : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "Kerberos 인증을 완료하는 동안 시간이 초과되었습니다. Kerberos KDC(도메인 컨트롤러)에 연결할 수 없거나, 서버의 SPN이 없거나, 이 기기의 시계가 맞지 않을 수 있습니다. 도메인에 대한 네트워크 연결을 확인하거나 SQL Server 인증을 사용하십시오." + "value" : "目標連線已不再開啟。" } } } }, - "Timed out connecting through the SOCKS proxy at %@:%@. Check that the proxy is reachable and the credentials are correct." : { + "The target database may be in a partial state. Review the database and clean up as needed." : { + "comment" : "A message that appears when restoring a database and the user is advised to review and clean up the database.", + "isCommentAutoGenerated" : true, "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Timed out connecting through the SOCKS proxy at %1$@:%2$@. Check that the proxy is reachable and the credentials are correct." - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@:%2$@의 SOCKS 프록시를 통해 연결하는 동안 시간이 초과되었습니다. 프록시에 연결할 수 있는지와 자격 증명이 올바른지 확인하십시오." + "value" : "대상 데이터베이스가 불완전한 상태일 수 있습니다. 데이터베이스를 검토하고 필요에 따라 정리하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@:%2$@ adresindeki SOCKS proxy üzerinden bağlanırken zaman aşımı oluştu. Proxy'ye erişilebildiğini ve kimlik bilgilerinin doğru olduğunu denetleyin." + "value" : "Hedef veritabanı kısmi bir durumda olabilir. Veritabanını gözden geçirin ve gerektiği gibi temizleyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hết thời gian chờ khi kết nối qua SOCKS proxy tại %1$@:%2$@. Hãy kiểm tra proxy có truy cập được và thông tin đăng nhập có đúng không." + "value" : "Cơ sở dữ liệu đích có thể đang ở trạng thái dở dang. Hãy xem lại và dọn dẹp nếu cần." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "通过 %1$@:%2$@ 的 SOCKS 代理连接超时。请检查该代理是否可达、凭据是否正确。" + "value" : "目标数据库可能处于不完整状态。请检查数据库并按需清理。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "透過 %1$@:%2$@ 的 SOCKS 代理連線逾時。請檢查該代理是否可連線、認證資訊是否正確。" - } - } - } - }, - "Timed out connecting to the server. Check the host, port, and that the server is reachable and accepting connections." : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "서버에 연결하는 동안 시간이 초과되었습니다. 호스트와 포트가 올바른지, 서버에 연결할 수 있고 서버가 연결을 수락하는지 확인하십시오." - } - } - } - }, - "Timed out during the Oracle login handshake. The server accepted the network connection but did not finish logging in." : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "Oracle 로그인 핸드셰이크 중 시간이 초과되었습니다. 서버가 네트워크 연결을 수락했지만 로그인을 완료하지 않았습니다." + "value" : "目標資料庫可能處於不完整的狀態。請檢查資料庫並視需要清理。" } } } }, - "Timing" : { + "The target database may be left in a partial state." : { + "comment" : "A message displayed in a cancel confirmation alert for a database restore.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "타이밍" + "value" : "대상 데이터베이스가 불완전한 상태로 남을 수 있습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Zamanlama" + "value" : "Hedef veritabanı kısmi bir durumda kalabilir." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thời điểm" + "value" : "Cơ sở dữ liệu đích có thể bị bỏ lại ở trạng thái dở dang." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "时机" + "value" : "目标数据库可能会处于不完整状态。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "時機" + "value" : "目標資料庫可能會處於不完整的狀態。" } } } }, - "Tiny" : { - "extractionState" : "stale", + "The target does not support creating table %@." : { + + }, + "The target driver cannot generate a sync script." : { + + }, + "The target driver cannot run a sync script." : { + + }, + "The target driver cannot stream rows for a comparison." : { + + }, + "The text could not be parsed as JSON." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "매우 작게" + "value" : "텍스트를 JSON으로 구문 분석할 수 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tiny" + "value" : "Metin JSON olarak ayrıştırılamadı." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Rất nhỏ" + "value" : "Không thể phân tích văn bản dưới dạng JSON." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "极小" + "value" : "无法将文本解析为 JSON。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "極小" + "value" : "無法將文字剖析為 JSON。" } } } }, - "Tiny Dot" : { - "extractionState" : "stale", + "The text could not be parsed as JSON. Use text mode to view or edit." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "작은 점" + "value" : "텍스트를 JSON으로 구문 분석할 수 없습니다. 텍스트 모드에서 보거나 편집하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tiny Dot" + "value" : "Metin JSON olarak ayrıştırılamadı. Görüntülemek veya düzenlemek için metin modunu kullanın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chấm nhỏ" + "value" : "Không thể phân tích văn bản dưới dạng JSON. Dùng chế độ văn bản để xem hoặc chỉnh sửa." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "极小圆点" + "value" : "文本无法解析为 JSON。请使用文本模式查看或编辑。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "極小圓點" + "value" : "無法將文字剖析為 JSON。請使用文字模式檢視或編輯。" } } } }, - "Title" : { - "extractionState" : "stale", + "The text doesn't look like a connection URL." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "제목" + "value" : "텍스트가 연결 URL 형식이 아닙니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Başlık" + "value" : "Metin bir bağlantı URL'sine benzemiyor." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tiêu đề" + "value" : "Văn bản này không giống một URL kết nối." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "标题" + "value" : "该文本看起来不是连接 URL。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "標題" + "value" : "這段文字看起來不像連線 URL。" } } } }, - "Title 2" : { - "extractionState" : "stale", + "The text is not valid JSON. Save anyway?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "제목 2" + "value" : "텍스트가 유효한 JSON이 아닙니다. 그래도 저장하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Title 2" + "value" : "Metin geçerli bir JSON değil. Yine de kaydedilsin mi?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tiêu đề 2" + "value" : "Nội dung không phải JSON hợp lệ. Vẫn lưu?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "标题 2" + "value" : "文本不是有效的 JSON。仍然保存?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "標題 2" + "value" : "文字並非有效的 JSON。仍要儲存嗎?" } } } }, - "Title 3" : { - "extractionState" : "stale", + "The transaction could not be committed: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "제목 3" + "value" : "트랜잭션을 커밋할 수 없습니다: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Title 3" + "value" : "İşlem kaydedilemedi: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tiêu đề 3" + "value" : "Không thể commit giao dịch: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "标题 3" + "value" : "事务无法提交:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "標題 3" + "value" : "交易無法提交:%@" } } } }, - "Today" : { + "The user cancelled this operation." : { + + }, + "The user did not approve this operation." : { + + }, + "The value could not be parsed. Use raw mode to inspect it as text." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "오늘" + "value" : "값을 구문 분석할 수 없습니다. 원시 모드에서 텍스트로 확인하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bugün" + "value" : "Değer ayrıştırılamadı. Metin olarak incelemek için ham modu kullanın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hôm nay" + "value" : "Không phân tích được giá trị. Dùng chế độ raw để xem dưới dạng văn bản." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "今天" + "value" : "无法解析该值。请使用原始模式以文本形式查看。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "今天" + "value" : "無法解析該值。請使用原始模式以文字形式檢視。" } } } }, - "Toggle AI Chat" : { + "Theme" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "AI 채팅 표시/숨기기" + "value" : "테마" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Toggle AI Chat" + "value" : "Tema" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bật/tắt AI Chat" + "value" : "Giao diện" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "切换 AI 聊天" + "value" : "主题" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "切換 AI 聊天" + "value" : "佈景主題" } } } }, - "Toggle AI Chat (⌘⇧L)" : { - "extractionState" : "stale", + "Theme Actions" : { + "comment" : "A heading displayed above the theme actions.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "AI 채팅 표시/숨기기(⌘⇧L)" + "value" : "테마 작업" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Toggle AI Chat (⌘⇧L)" + "value" : "Tema İşlemleri" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bật/tắt AI Chat (⌘⇧L)" + "value" : "Thao tác giao diện" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "切换 AI 聊天 (⌘⇧L)" + "value" : "主题操作" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "切換 AI 聊天 (⌘⇧L)" + "value" : "佈景主題操作" } } } }, - "Toggle Comment" : { + "Theme Update Failed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "주석 전환" + "value" : "테마 업데이트 실패" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yorumu Aç/Kapat" + "value" : "Tema Güncellemesi Başarısız Oldu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bật/tắt comment" + "value" : "Cập nhật theme thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "切换注释" + "value" : "主题更新失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "切換註解" + "value" : "佈景主題更新失敗" } } } }, - "Toggle Connections" : { - "comment" : "Text for the \"Toggle Connections\" shortcut action.", - "isCommentAutoGenerated" : true, + "Theme:" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 표시/숨기기" + "value" : "테마:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantıları Aç/Kapat" + "value" : "Tema:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bật/tắt kết nối" + "value" : "Giao diện:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "切换连接" + "value" : "主题:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "切換連線" + "value" : "佈景主題:" } } } }, - "Toggle Filters" : { + "Themes" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터 표시/숨기기" + "value" : "테마" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtreleri Aç/Kapat" + "value" : "Themes" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bật/tắt bộ lọc" + "value" : "Giao diện" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "切换筛选" + "value" : "主题" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "切換篩選" + "value" : "佈景主題" } } } }, - "Toggle Filters (Cmd+F)" : { - "extractionState" : "stale", + "There are no connections to publish." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터 표시/숨기기(Cmd+F)" + "value" : "게시할 연결이 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Toggle Filters (Cmd+F)" + "value" : "Yayınlanacak bağlantı yok." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bật/tắt bộ lọc (Cmd+F)" + "value" : "Không có kết nối nào để xuất bản." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "切换筛选 (Cmd+F)" + "value" : "没有可发布的连接。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "切換篩選 (Cmd+F)" + "value" : "沒有可發佈的連線。" } } } }, - "Toggle Filters (⇧⌘F)" : { - "extractionState" : "stale", + "These changes alter %@, the account this connection uses." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터 표시/숨기기(⇧⌘F)" + "value" : "이 변경 사항은 이 연결에서 사용하는 계정 %@을(를) 변경합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtreleri Aç/Kapat (⇧⌘F)" + "value" : "Bu değişiklikler, bu bağlantının kullandığı hesap olan %@ hesabını değiştirir." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bật/tắt bộ lọc (⇧⌘F)" + "value" : "Các thay đổi này sửa %@, tài khoản mà kết nối này đang dùng." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "切换筛选 (⇧⌘F)" + "value" : "这些更改会修改 %@,也就是此连接使用的账户。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "切換篩選 (⇧⌘F)" + "value" : "這些變更會修改 %@,也就是此連線使用的帳號。" } } } }, - "Toggle Filters (⌘F)" : { - "extractionState" : "stale", + "These changes drop %@, the account this connection uses." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터 표시/숨기기(⌘F)" + "value" : "이 변경 사항은 이 연결에서 사용하는 계정 %@을(를) 삭제합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Toggle Filters (⌘F)" + "value" : "Bu değişiklikler, bu bağlantının kullandığı hesap olan %@ hesabını siler." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bật/tắt bộ lọc (⌘F)" + "value" : "Các thay đổi này xoá %@, tài khoản mà kết nối này đang dùng." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "切换筛选 (⌘F)" + "value" : "这些更改会删除 %@,也就是此连接使用的账户。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "切換篩選 (⌘F)" + "value" : "這些變更會刪除 %@,也就是此連線使用的帳號。" } } } }, - "Toggle History" : { + "These changes revoke every privilege from %@, the account this connection uses." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기록 표시/숨기기" + "value" : "이 변경 사항은 이 연결에서 사용하는 계정 %@의 모든 권한을 취소합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geçmişi Aç/Kapat" + "value" : "Bu değişiklikler, bu bağlantının kullandığı hesap olan %@ hesabından tüm yetkileri geri alır." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bật/tắt lịch sử" + "value" : "Các thay đổi này thu hồi mọi quyền của %@, tài khoản mà kết nối này đang dùng." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "切换历史记录" + "value" : "这些更改会撤销 %@ 的所有权限,也就是此连接使用的账户。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "切換歷程記錄" + "value" : "這些變更會撤銷 %@ 的所有權限,也就是此連線使用的帳號。" } } } }, - "Toggle Inspector" : { + "These rows came from another database than the one this tab is now using." : { + + }, + "These rows cannot be edited because TablePro cannot tell which table they came from." : { + + }, + "These rows come from a view, which cannot be edited." : { + + }, + "This %1$@ has no %2$@ yet." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "검사기 표시/숨기기" + "value" : "이 %1$@에는 아직 %2$@이(가) 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Denetçiyi Aç/Kapat" + "value" : "Bu %1$@ henüz %2$@ içermiyor." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bật/tắt thanh kiểm tra" + "value" : "%1$@ này chưa có %2$@." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "切换检查器" + "value" : "此%1$@还没有%2$@。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "切換檢閱器" + "value" : "此%1$@還沒有%2$@。" } } } }, - "Toggle Inspector (⌘⌥I)" : { + "This account uses a password verifier the database driver does not support." : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "검사기 표시/숨기기(⌘⌥I)" + "value" : "이 계정은 데이터베이스 드라이버가 지원하지 않는 암호 검증 형식을 사용합니다." + } + } + } + }, + "This action needs a modifier key like ⌘ or ⌥. A plain key won't reach the menu reliably." : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "이 작업에는 ⌘ 또는 ⌥ 같은 보조 키가 필요합니다. 일반 키는 메뉴에 안정적으로 전달되지 않습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Toggle Inspector (⌘⌥I)" + "value" : "Bu işlem ⌘ veya ⌥ gibi bir değiştirici tuş gerektirir. Tek başına bir tuş menüye güvenilir şekilde ulaşmaz." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bật/tắt thanh kiểm tra (⌘⌥I)" + "value" : "Hành động này cần phím bổ trợ như ⌘ hoặc ⌥. Phím đơn sẽ không đến được menu một cách ổn định." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "切换检查器 (⌘⌥I)" + "value" : "此操作需要 ⌘ 或 ⌥ 等修饰键。单个普通按键无法可靠地触发菜单。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "切換檢閱器 (⌘⌥I)" + "value" : "此操作需要 ⌘ 或 ⌥ 之類的輔助按鍵。單獨的普通按鍵無法可靠地觸發選單。" } } } }, - "Toggle Query History" : { + "This client does not have access to that connection." : { + + }, + "This Connection" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 기록 표시/숨기기" + "value" : "이 연결" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgu Geçmişini Aç/Kapat" + "value" : "Bu Bağlantı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bật/tắt lịch sử truy vấn" + "value" : "Kết nối này" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "切换查询历史" + "value" : "此连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "切換查詢歷史" + "value" : "此連線" } } } }, - "Toggle Query History (⌘Y)" : { - "extractionState" : "stale", + "This connection does not support user and role management." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 기록 표시/숨기기(⌘Y)" + "value" : "이 연결은 사용자 및 역할 관리를 지원하지 않습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Toggle Query History (⌘Y)" + "value" : "Bu bağlantı kullanıcı ve rol yönetimini desteklemiyor." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bật/tắt lịch sử truy vấn (⌘Y)" + "value" : "Kết nối này không hỗ trợ quản lý người dùng và vai trò." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "切换查询历史 (⌘Y)" + "value" : "此连接不支持用户和角色管理。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "切換查詢歷史 (⌘Y)" + "value" : "此連線不支援使用者與角色管理。" } } } }, - "Toggle Query History (⌘⇧H)" : { - "extractionState" : "stale", + "This connection is read only for external clients." : { + + }, + "This connection runs SQL every time it connects, using your credentials." : { + "comment" : "A description of the startup SQL for a database connection.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 기록 표시/숨기기(⌘⇧H)" + "value" : "이 연결은 연결될 때마다 사용자의 자격 증명으로 SQL을 실행합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Toggle Query History (⌘⇧H)" + "value" : "Bu bağlantı her bağlandığında, kimlik bilgilerinizle SQL çalıştırır." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bật/tắt lịch sử truy vấn (⌘⇧H)" + "value" : "Kết nối này chạy SQL mỗi lần kết nối, bằng thông tin đăng nhập của bạn." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "切换查询历史 (⌘⇧H)" + "value" : "此连接每次连接时都会用你的凭据运行 SQL。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "切換查詢歷史 (⌘⇧H)" + "value" : "此連線每次連線時都會用你的憑證執行 SQL。" } } } }, - "Toggle Results" : { + "This connection was deleted on another device or window. Your changes were not saved." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "결과 표시/숨기기" + "value" : "이 연결이 다른 기기 또는 창에서 삭제되었습니다. 변경 사항은 저장되지 않았습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sonuçları Aç/Kapat" + "value" : "Bu bağlantı başka bir aygıtta veya pencerede silindi. Değişiklikleriniz kaydedilmedi." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ẩn/hiện kết quả" + "value" : "Kết nối này đã bị xóa trên thiết bị hoặc cửa sổ khác. Các thay đổi của bạn chưa được lưu." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示/隐藏结果" + "value" : "此连接已在其他设备或窗口中被删除。你的更改未保存。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示/隱藏結果" + "value" : "此連線已在其他裝置或視窗中被刪除。你的變更未儲存。" } } } }, - "Toggle Results (⌘⌥R)" : { - "extractionState" : "stale", + "This connection won't sync to other devices via iCloud." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "결과 표시/숨기기(⌘⌥R)" + "value" : "이 연결은 iCloud를 통해 다른 기기와 동기화되지 않습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sonuçları Aç/Kapat (⌘⌥R)" + "value" : "Bu bağlantı iCloud üzerinden diğer cihazlarla eşitlenmeyecek." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ẩn/hiện kết quả (⌘⌥R)" + "value" : "Kết nối này sẽ không đồng bộ sang thiết bị khác qua iCloud." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示/隐藏结果(⌘⌥R)" + "value" : "此连接不会通过 iCloud 同步到其他设备。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示/隱藏結果 (⌘⌥R)" + "value" : "此連線不會透過 iCloud 同步到其他裝置。" } } } }, - "Toggle Sidebar" : { + "This connection's CA certificate is not readable on this device (%@). Certificate files do not sync between devices, so add the certificate here or lower the SSL mode to Required." : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사이드바 표시/숨기기" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "Kenar Çubuğunu Aç/Kapat" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "Bật/tắt thanh bên" + "value" : "이 기기에서 이 연결의 CA 인증서를 읽을 수 없습니다(%@). 인증서 파일은 기기 간에 동기화되지 않으므로 이 기기에 인증서를 추가하거나 SSL 모드를 필수(Required)로 낮추십시오." } - }, - "zh-Hans" : { + } + } + }, + "This connection's client certificate is not readable on this device (%@). Certificate files do not sync between devices, so add the certificate here before connecting." : { + "extractionState" : "stale", + "localizations" : { + "ko" : { "stringUnit" : { "state" : "translated", - "value" : "切换侧栏" + "value" : "이 기기에서 이 연결의 클라이언트 인증서를 읽을 수 없습니다(%@). 인증서 파일은 기기 간에 동기화되지 않으므로 연결하기 전에 이 기기에 인증서를 추가하십시오." } - }, - "zh-Hant" : { + } + } + }, + "This connection's client key is not readable on this device (%@). Key files do not sync between devices, so add the key here before connecting." : { + "extractionState" : "stale", + "localizations" : { + "ko" : { "stringUnit" : { "state" : "translated", - "value" : "切換側邊欄" + "value" : "이 기기에서 이 연결의 클라이언트 키를 읽을 수 없습니다(%@). 키 파일은 기기 간에 동기화되지 않으므로 연결하기 전에 이 기기에 키를 추가하십시오." } } } }, - "Toggle Table Browser" : { + "This database cannot drop triggers" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 브라우저 표시/숨기기" + "value" : "이 데이터베이스에서는 트리거를 삭제할 수 없습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tablo Tarayıcısını Aç/Kapat" + "value" : "Bu veritabanı tetikleyici silemez" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bật/tắt trình duyệt bảng" + "value" : "Cơ sở dữ liệu này không thể xoá trigger" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "切换表浏览器" + "value" : "此数据库无法删除触发器" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "切換資料表瀏覽器" + "value" : "此資料庫無法刪除觸發器" } } } }, - "Toggle Workspace Rail" : { - "extractionState" : "stale", + "This database did not return a query plan for the statement." : { + "comment" : "Text displayed in a description when the database did not return a query plan for the statement.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "작업 공간 레일 표시/숨기기" + "value" : "데이터베이스에서 이 문에 대한 쿼리 계획을 반환하지 않았습니다." } }, "tr" : { "stringUnit" : { - "state" : "needs_review", - "value" : "Çalışma Alanı Şeridini Aç/Kapat" + "state" : "translated", + "value" : "Bu veritabanı ifade için bir sorgu planı döndürmedi." } }, "vi" : { "stringUnit" : { - "state" : "needs_review", - "value" : "Bật/tắt thanh không gian làm việc" + "state" : "translated", + "value" : "Cơ sở dữ liệu này không trả về kế hoạch truy vấn cho câu lệnh." } }, "zh-Hans" : { "stringUnit" : { - "state" : "needs_review", - "value" : "切换工作区栏" + "state" : "translated", + "value" : "此数据库没有为该语句返回查询计划。" } }, "zh-Hant" : { "stringUnit" : { - "state" : "needs_review", - "value" : "切換工作區列" + "state" : "translated", + "value" : "此資料庫沒有為該陳述式回傳查詢計畫。" } } } }, - "Toggle filters" : { + "This database has no %@ yet." : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터 표시/숨기기" + "value" : "이 데이터베이스에는 아직 %@이(가) 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Toggle filters" + "value" : "This database has no %@ yet." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bật/tắt bộ lọc" + "value" : "Cơ sở dữ liệu này chưa có %@ nào." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "切换筛选" + "value" : "此数据库还没有%@。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "切換篩選" + "value" : "此資料庫尚未有任何%@。" } } } }, - "Toggle inspector" : { + "This database has no tables yet." : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "검사기 표시/숨기기" + "value" : "이 데이터베이스에는 아직 테이블이 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Toggle inspector" + "value" : "This database has no tables yet." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bật/tắt thanh kiểm tra" + "value" : "Cơ sở dữ liệu này chưa có bảng nào." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "切换检查器" + "value" : "此数据库还没有表。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "切換檢閱器" + "value" : "此資料庫尚未有任何資料表。" } } } }, - "Toggle query history" : { + "This DELETE query has no WHERE clause and will delete ALL rows in the table. This action cannot be undone." : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 기록 표시/숨기기" + "value" : "이 DELETE 쿼리에는 WHERE 절이 없으므로 테이블의 모든 행이 삭제됩니다. 이 작업은 실행 취소할 수 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Toggle query history" + "value" : "This DELETE query has no WHERE clause and will delete ALL rows in the table. This action cannot be undone." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bật/tắt lịch sử truy vấn" + "value" : "Truy vấn DELETE này không có mệnh đề WHERE và sẽ xóa TẤT CẢ dòng trong bảng. Thao tác này không thể hoàn tác." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "切换查询历史" + "value" : "此 DELETE 查询没有 WHERE 子句,将删除表中的所有行。此操作无法撤销。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "切換查詢歷史" + "value" : "此 DELETE 查詢沒有 WHERE 子句,將刪除資料表中的所有列。此動作無法復原。" } } } }, - "Token" : { + "This deletes only the queries listed here, across every connection. Queries the source, date, outcome and search filters are hiding stay. You cannot undo this." : { + "comment" : "Message for the \"Delete this connection's query history\" button.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "토큰" + "value" : "여기에 나열된 쿼리만 모든 연결에서 삭제합니다. 소스, 날짜, 결과 및 검색 필터로 숨겨진 쿼리는 유지됩니다. 이 작업은 실행 취소할 수 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Token" + "value" : "Bu, yalnızca burada listelenen sorguları tüm bağlantılarda siler. Kaynak, tarih, sonuç ve arama filtrelerinin gizlediği sorgular kalır. Bu işlem geri alınamaz." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Token" + "value" : "Thao tác này chỉ xoá các truy vấn được liệt kê ở đây, trên mọi kết nối. Các truy vấn đang bị bộ lọc nguồn, ngày, kết quả và tìm kiếm ẩn đi sẽ được giữ lại. Bạn không thể hoàn tác." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "令牌" + "value" : "这只会删除此处列出的查询,涵盖所有连接。被来源、日期、结果和搜索筛选隐藏的查询会保留。此操作无法撤销。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "權杖" + "value" : "這只會刪除此處列出的查詢,涵蓋所有連線。被來源、日期、結果和搜尋篩選隱藏的查詢會保留。此動作無法復原。" } } } }, - "Token '%@' with permission '%@' cannot access '%@'" : { - "extractionState" : "stale", + "This deletes only the queries listed here, from this connection. Queries the source, date, outcome and search filters are hiding stay. You cannot undo this." : { + "comment" : "The second line of the message above.", + "isCommentAutoGenerated" : true, "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Token '%1$@' with permission '%2$@' cannot access '%3$@'" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "권한 '%2$@'이(가) 있는 토큰 '%1$@'은(는) '%3$@'에 접근할 수 없습니다" + "value" : "여기에 나열된 쿼리만 이 연결에서 삭제합니다. 소스, 날짜, 결과 및 검색 필터로 숨겨진 쿼리는 유지됩니다. 이 작업은 실행 취소할 수 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "'%@' izinli '%@' token'ı '%@' kaynağına erişemiyor" + "value" : "Bu, yalnızca burada listelenen sorguları bu bağlantıdan siler. Kaynak, tarih, sonuç ve arama filtrelerinin gizlediği sorgular kalır. Bu işlem geri alınamaz." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Token '%@' với quyền '%@' không thể truy cập '%@'" + "value" : "Thao tác này chỉ xoá các truy vấn được liệt kê ở đây, từ kết nối này. Các truy vấn đang bị bộ lọc nguồn, ngày, kết quả và tìm kiếm ẩn đi sẽ được giữ lại. Bạn không thể hoàn tác." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "权限为 '%@' 的令牌 '%@' 无法访问 '%@'" + "value" : "这只会删除此处列出的查询,仅限此连接。被来源、日期、结果和搜索筛选隐藏的查询会保留。此操作无法撤销。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "權限為 '%1$@' 的權杖 '%2$@' 無法存取 '%3$@'" + "value" : "這只會刪除此處列出的查詢,僅限此連線。被來源、日期、結果和搜尋篩選隱藏的查詢會保留。此動作無法復原。" } } } }, - "Token Name" : { + "This deletes the query history of every connection. You cannot undo this." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "토큰 이름" + "value" : "모든 연결의 쿼리 기록을 삭제합니다. 이 작업은 실행 취소할 수 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Token Adı" + "value" : "Bu, her bağlantının sorgu geçmişini siler. Bu işlem geri alınamaz." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên token" + "value" : "Thao tác này xoá lịch sử truy vấn của mọi kết nối. Bạn không thể hoàn tác." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "令牌名称" + "value" : "这会删除所有连接的查询历史。此操作无法撤销。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "權杖名稱" + "value" : "這會刪除所有連線的查詢歷史。此動作無法復原。" } } } }, - "Token does not have access to this connection" : { + "This deletes this connection's query history. You cannot undo this." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "토큰에 이 연결에 대한 접근 권한이 없습니다" + "value" : "이 연결의 쿼리 기록을 삭제합니다. 이 작업은 실행 취소할 수 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Token'ın bu bağlantıya erişimi yok" + "value" : "Bu, bu bağlantının sorgu geçmişini siler. Bu işlem geri alınamaz." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Token không có quyền truy cập kết nối này" + "value" : "Thao tác này xoá lịch sử truy vấn của kết nối này. Bạn không thể hoàn tác." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "令牌没有访问此连接的权限" + "value" : "这会删除此连接的查询历史。此操作无法撤销。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "權杖沒有存取此連線的權限" + "value" : "這會刪除此連線的查詢歷史。此動作無法復原。" } } } }, - "Token: %@" : { + "This diagram is not bound to a database" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "토큰: %@" + "value" : "이 다이어그램은 데이터베이스에 연결되어 있지 않습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Jeton: %@" + "value" : "Bu diyagram bir veritabanına bağlı değil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Token: %@" + "value" : "Sơ đồ này không gắn với cơ sở dữ liệu nào" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "令牌:%@" + "value" : "此图表未绑定到数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "權杖:%@" + "value" : "此圖表未綁定到資料庫" } } } }, - "Too many pending pairing codes. Try again later." : { + "This discards your edits to the Chinook sample and restores the original copy." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "대기 중인 페어링 코드가 너무 많습니다. 나중에 다시 시도하십시오." + "value" : "Chinook 샘플의 편집 내용을 취소하고 원본을 복원합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Çok fazla bekleyen eşleştirme kodu. Daha sonra tekrar deneyin." + "value" : "Bu, Chinook örneğindeki düzenlemelerinizi atar ve özgün kopyayı geri yükler." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Có quá nhiều mã ghép nối đang chờ. Hãy thử lại sau." + "value" : "Thao tác này bỏ các chỉnh sửa của bạn trên mẫu Chinook và khôi phục bản gốc." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "待处理的配对代码过多。请稍后重试。" + "value" : "这将放弃你对 Chinook 示例的编辑并恢复原始副本。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "待處理的配對碼過多。請稍後再試。" + "value" : "這會放棄你對 Chinook 範例的編輯,並還原成原始副本。" } } } }, - "Tool" : { + "This discards your unsaved changes and re-reads the file with the chosen settings." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "도구" + "value" : "저장하지 않은 변경 사항을 취소하고 선택한 설정으로 파일을 다시 읽습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Araç" + "value" : "Bu, kaydedilmemiş değişikliklerinizi atar ve dosyayı seçilen ayarlarla yeniden okur." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Công cụ" + "value" : "Thao tác này bỏ các thay đổi chưa lưu và đọc lại tệp với cài đặt đã chọn." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "工具" + "value" : "此操作会丢弃未保存的更改,并按所选设置重新读取文件。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "工具" + "value" : "此操作會捨棄未儲存的變更,並依所選設定重新讀取檔案。" } } } }, - "Tool call limit: %d" : { + "This driver does not expose routine DDL." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "도구 호출 한도: %d" + "value" : "이 드라이버는 루틴 DDL을 제공하지 않습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Araç çağrısı limiti: %d" + "value" : "Bu sürücü rutinler için DDL sağlamıyor." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giới hạn gọi công cụ: %d" + "value" : "Driver này không cung cấp DDL của routine." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "工具调用上限:%d" + "value" : "此驱动不提供例程 DDL。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "工具呼叫上限:%d" + "value" : "此驅動程式不提供常式 DDL。" } } } }, - "Toolbar" : { + "This driver has no TLS fallback. Preferred forces TLS, same as Required." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "도구 막대" + "value" : "이 드라이버에는 TLS 대체 옵션이 없습니다. 선호는 필수와 동일하게 TLS 연결을 강제합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Toolbar" + "value" : "Bu sürücünün TLS yedeği yok. Preferred, Required ile aynı şekilde TLS'yi zorunlu kılar." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thanh công cụ" + "value" : "Driver này không có phương án dự phòng TLS. Preferred buộc dùng TLS, giống Required." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "工具栏" + "value" : "此驱动没有 TLS 回退。“首选”会强制使用 TLS,与“必需”相同。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "工具列" + "value" : "此驅動程式沒有 TLS 回退機制。「偏好」會強制使用 TLS,與「必要」相同。" } } } }, - "Top Level" : { + "This DROP query will permanently remove database objects. This action cannot be undone." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "최상위" + "value" : "이 DROP 쿼리는 데이터베이스 객체를 영구적으로 제거합니다. 이 작업은 실행 취소할 수 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Üst Düzey" + "value" : "This DROP query will permanently remove database objects. This action cannot be undone." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cấp cao nhất" + "value" : "Truy vấn DROP này sẽ xóa vĩnh viễn các đối tượng cơ sở dữ liệu. Thao tác này không thể hoàn tác." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "顶级" + "value" : "此 DROP 查询将永久删除数据库对象。此操作无法撤销。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "頂層" + "value" : "此 DROP 查詢將永久移除資料庫物件。此動作無法復原。" } } } }, - "Total Blocks" : { + "This engine cannot count rows for that table." : { + + }, + "This engine cannot stop a session from TablePro." : { + + }, + "This engine does not expose users and roles." : { + + }, + "This engine does not support creating databases." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "총 블록 수" + "value" : "이 엔진은 데이터베이스 생성을 지원하지 않습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Toplam Blok" + "value" : "Bu motor veritabanı oluşturmayı desteklemiyor." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tổng số khối" + "value" : "Engine này không hỗ trợ tạo cơ sở dữ liệu." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "总块数" + "value" : "此引擎不支持创建数据库。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "區塊總數" + "value" : "此引擎不支援建立資料庫。" } } } }, - "Total Queries" : { + "This engine does not support transactions." : { + + }, + "This engine has no SQL dialect, so it cannot produce SQL output." : { + + }, + "This engine has no SQL dialect, so tables cannot be selected generically." : { + + }, + "This file is encrypted" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "총 쿼리 수" + "value" : "이 파일은 암호화되어 있습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Toplam Sorgu" + "value" : "Bu dosya şifrelenmiş" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tổng số truy vấn" + "value" : "Tệp này được mã hóa" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "总查询数" + "value" : "此文件已加密" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "查詢總數" + "value" : "此檔案已加密" } } } }, - "Total Size" : { + "This file is encrypted and requires a passphrase" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "전체 크기" + "value" : "이 파일은 암호화되어 있어 암호가 필요합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Toplam Boyut" + "value" : "Bu dosya şifrelenmiş ve bir parola gerektiriyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tổng kích thước" + "value" : "Tệp này được mã hóa và yêu cầu cụm mật khẩu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "总大小" + "value" : "此文件已加密,需要密码短语" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "總大小" + "value" : "此檔案已加密,需要通關密語" } } } }, - "Total Time" : { + "This file is not a valid TablePro export" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "총 시간" + "value" : "이 파일은 올바른 TablePro 내보내기 파일이 아닙니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Toplam Süre" + "value" : "Bu dosya geçerli bir TablePro dışa aktarma dosyası değil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tổng thời gian" + "value" : "Tệp này không phải là tệp xuất TablePro hợp lệ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "总耗时" + "value" : "此文件不是有效的 TablePro 导出文件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "總耗時" + "value" : "此檔案不是有效的 TablePro 匯出檔" } } } }, - "Tradeoffs" : { + "This file requires a newer version of TablePro (format version %d)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "장단점" + "value" : "이 파일을 사용하려면 더 최신 버전의 TablePro가 필요합니다(파일 형식 버전 %d)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ödünleşimler" + "value" : "Bu dosya daha yeni bir TablePro sürümü gerektiriyor (format sürümü %d)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đánh đổi" + "value" : "Tệp này yêu cầu phiên bản TablePro mới hơn (phiên bản định dạng %d)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "取舍" + "value" : "此文件需要更新版本的TablePro(格式版本%d)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "取捨" + "value" : "此檔案需要較新版本的 TablePro(格式版本 %d)" } } } }, - "Tree" : { + "This file requires a newer version of TablePro (format version %lld)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "트리" + "value" : "이 파일에는 더 최신 버전의 TablePro가 필요합니다(형식 버전 %lld)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ağaç" + "value" : "Bu dosya daha yeni bir TablePro sürümü gerektiriyor (format sürümü %lld)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cây" + "value" : "Tệp này yêu cầu phiên bản TablePro mới hơn (phiên bản định dạng %lld)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "树形" + "value" : "此文件需要更新版本的 TablePro(格式版本 %lld)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "樹狀" + "value" : "此檔案需要較新版本的 TablePro(格式版本 %lld)" } } } }, - "Trigger operation failed" : { + "This folder is already linked" : { + "comment" : "Alert title when trying to add a folder that is already linked.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "트리거 작업 실패" + "value" : "이 폴더는 이미 연결되어 있습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tetikleyici işlemi başarısız oldu" + "value" : "Bu klasör zaten bağlı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thao tác trigger thất bại" + "value" : "Thư mục này đã được liên kết" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "触发器操作失败" + "value" : "此文件夹已关联" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "觸發器操作失敗" + "value" : "此資料夾已連結" } } } }, - "Triggers" : { + "This Host header is not allowed to reach TablePro's MCP server." : { + + }, + "This HTTP method is not supported." : { + + }, + "This is a built-in theme." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "트리거" + "value" : "이 테마는 기본 제공 테마입니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tetikleyiciler" + "value" : "Bu, yerleşik bir temadır." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trigger" + "value" : "Đây là chủ đề mặc định." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "触发器" + "value" : "这是内置主题。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "觸發器" + "value" : "這是內建的佈景主題。" } } } }, - "Truncate" : { + "This is a registry theme." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "비우기" + "value" : "이 테마는 레지스트리 테마입니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Truncate" + "value" : "Bu, kayıt defterinden gelen bir temadır." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Truncate" + "value" : "Đây là chủ đề từ kho plugin." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "清空" + "value" : "这是插件仓库主题。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "清空" + "value" : "這是外掛註冊的佈景主題。" } } } }, - "Truncate %d tables" : { + "This is not a value the list editor can read back." : { + "comment" : "A warning that the value entered in the array editor is not a valid value for the type.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%d개 테이블 비우기" + "value" : "목록 편집기에서 다시 읽을 수 있는 값이 아닙니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%d tabloyu boşalt" + "value" : "Bu, liste düzenleyicisinin geri okuyabileceği bir değer değil." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xoá dữ liệu %d bảng" + "value" : "Đây không phải giá trị mà trình sửa danh sách đọc lại được." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "清空%d个表" + "value" : "这不是列表编辑器能读回的值。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "清空 %d 個資料表" + "value" : "這不是列表編輯器能讀回的值。" } } } }, - "Truncate %lld tables" : { - "extractionState" : "stale", + "This is taking longer than usual." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%lld개 테이블 비우기" + "value" : "평소보다 오래 걸리고 있습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Truncate %lld tablo" + "value" : "Bu her zamankinden uzun sürüyor." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Làm trống %lld bảng" + "value" : "Việc này lâu hơn bình thường." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "清空 %lld 个表" + "value" : "这比平时花的时间更久。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "清空 %lld 個資料表" + "value" : "這比平時花的時間更久。" } } } }, - "Truncate Table" : { + "This JSON document is too large for tree view. Use text mode instead." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 비우기" + "value" : "이 JSON 문서는 트리 보기로 표시하기에 너무 큽니다. 대신 텍스트 모드를 사용하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tabloyu Boşalt" + "value" : "Bu JSON belgesi ağaç görünümü için çok büyük. Bunun yerine metin modunu kullanın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Truncate bảng" + "value" : "Tài liệu JSON này quá lớn cho chế độ cây. Hãy dùng chế độ văn bản." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "清空表" + "value" : "此 JSON 文档对于树形视图过大,请使用文本模式。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "清空資料表" + "value" : "此 JSON 文件對樹狀檢視而言過大。請改用文字模式。" } } } }, - "Truncate all tables linked by foreign keys" : { + "This keyword is already in use" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "외래 키로 연결된 모든 테이블 비우기" + "value" : "이 키워드는 이미 사용 중입니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yabancı anahtarlarla bağlı tüm tabloları boşalt" + "value" : "Bu anahtar sözcük zaten kullanımda" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa dữ liệu tất cả bảng liên kết bằng khóa ngoại" + "value" : "Từ khoá này đã được sử dụng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "清空所有通过外键关联的表" + "value" : "此关键字已被使用" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "清空所有透過外鍵關聯的資料表" + "value" : "此關鍵字已被使用" } } } }, - "Truncate query results" : { + "This library's own project publishes no license file, so TablePro cannot state one for it. It is listed here so the gap stays visible instead of looking settled." : { + + }, + "This license has been suspended. Contact support for help." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 결과 자르기" + "value" : "이 라이선스는 정지되었습니다. 지원팀에 문의하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgu sonuçlarını kırp" + "value" : "Bu lisans askıya alındı. Yardım için destek ile iletişime geçin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cắt bớt kết quả truy vấn" + "value" : "Giấy phép này đã bị đình chỉ. Liên hệ hỗ trợ để được giúp đỡ." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "截断查询结果" + "value" : "此许可证已被暂停。请联系支持团队获取帮助。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "截斷查詢結果" + "value" : "此授權已遭停用。請聯絡支援團隊尋求協助。" } } } }, - "Truncate table '%@'" : { + "This license has expired. Renew it to continue using Pro features." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "'%@' 테이블 비우기" + "value" : "이 라이선스는 만료되었습니다. Pro 기능을 계속 사용하려면 갱신하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Truncate tablo '%@'" + "value" : "Bu lisansın süresi doldu. Pro özellikleri kullanmaya devam etmek için yenileyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Làm trống bảng '%@'" + "value" : "Giấy phép này đã hết hạn. Gia hạn để tiếp tục sử dụng các tính năng Pro." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "清空表 '%@'" + "value" : "此许可证已过期。请续期以继续使用 Pro 功能。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "清空資料表 '%@'" + "value" : "此授權已過期。請續訂以繼續使用 Pro 功能。" } } } }, - "Truncated — read only" : { - "extractionState" : "stale", + "This license has reached its activation limit. Deactivate another Mac first." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "잘림 — 읽기 전용" + "value" : "이 라이선스는 활성화 한도에 도달했습니다. 먼저 다른 Mac에서 비활성화하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kısaltıldı - salt okunur" + "value" : "Bu lisans etkinleştirme sınırına ulaştı. Önce başka bir Mac'i devre dışı bırakın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã cắt bớt — chỉ đọc" + "value" : "Giấy phép này đã đạt giới hạn kích hoạt. Hãy huỷ kích hoạt một máy Mac khác trước." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已截断 - 只读" + "value" : "此许可证已达到激活上限。请先停用另一台 Mac。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已截斷,唯讀" + "value" : "此授權已達啟用上限。請先停用另一台 Mac。" } } } }, - "Truncated, read only" : { + "This license was activated on a different Mac. Activate it here to use Pro features." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "잘림, 읽기 전용" + "value" : "이 라이선스는 다른 Mac에서 활성화되었습니다. 여기에서 활성화하면 Pro 기능을 사용할 수 있습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kısaltıldı, salt okunur" + "value" : "Bu lisans başka bir Mac'te etkinleştirildi. Pro özelliklerini kullanmak için burada etkinleştirin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã cắt bớt, chỉ đọc" + "value" : "Giấy phép này đã được kích hoạt trên một máy Mac khác. Kích hoạt tại đây để dùng các tính năng Pro." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已截断,只读" + "value" : "此许可证已在另一台 Mac 上激活。在此激活以使用 Pro 功能。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已截斷,唯讀" + "value" : "此授權已在另一台 Mac 上啟用。在此啟用以使用 Pro 功能。" } } } }, - "Trust" : { + "This license was issued for a different Mac." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "신뢰" + "value" : "이 라이선스는 다른 Mac용으로 발급되었습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Güven" + "value" : "Bu lisans başka bir Mac için verildi." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tin cậy" + "value" : "Giấy phép này được cấp cho một máy Mac khác." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "信任" + "value" : "此许可证是为另一台 Mac 签发的。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "信任" - } - } - } - }, - "Trust and Install" : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "신뢰하고 설치" + "value" : "此授權是為另一台 Mac 簽發的。" } } } }, - "Trust plugins from %@?" : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "%@의 플러그인을 신뢰하시겠습니까?" - } - } - } + "This list is a capped preview. Apply covers every difference, not only the rows listed here." : { + }, - "Trusted Links" : { + "This Mac" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "신뢰할 수 있는 링크" + "value" : "이 Mac" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Güvenilen Bağlantılar" + "value" : "This Mac" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Liên kết tin cậy" + "value" : "Máy Mac này" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "受信任的链接" + "value" : "此 Mac" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "受信任的連結" - } - } - } - }, - "Trusted Plugin Developers" : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "신뢰하는 플러그인 개발자" + "value" : "這台 Mac" } } } }, - "Try Again" : { + "This machine is not activated for this license." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다시 시도" + "value" : "이 컴퓨터에서는 이 라이선스가 활성화되어 있지 않습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tekrar Dene" + "value" : "Bu makine bu lisans için etkinleştirilmemiş." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thử lại" + "value" : "Máy này chưa được kích hoạt cho giấy phép này." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重试" + "value" : "此设备未激活该许可证。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重試" + "value" : "此機器尚未針對此授權啟用。" } } } }, - "Try Sample Database" : { + "This machine is not activated." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "샘플 데이터베이스 사용해 보기" + "value" : "이 컴퓨터는 활성화되어 있지 않습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Örnek Veritabanını Dene" + "value" : "Bu makine etkinleştirilmemiş." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dùng thử cơ sở dữ liệu mẫu" + "value" : "Máy này chưa được kích hoạt." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "试用示例数据库" + "value" : "此设备未激活。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "試用範例資料庫" + "value" : "此機器尚未啟用。" } } } }, - "Try a different search term" : { + "This Month" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다른 검색어를 입력해 보십시오" + "value" : "이번 달" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Try a different search term" + "value" : "Bu Ay" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thử từ khoá tìm kiếm khác" + "value" : "Tháng này" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "尝试其他搜索词" + "value" : "本月" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "請嘗試其他搜尋字詞" + "value" : "本月" } } } }, - "Try a different search term." : { + "This operation is not supported" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다른 검색어를 입력해 보십시오." + "value" : "이 작업은 지원되지 않습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Farklı bir arama terimi deneyin." + "value" : "Bu işlem desteklenmiyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thử từ khóa tìm kiếm khác." + "value" : "Thao tác này không được hỗ trợ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "请尝试其他搜索词。" + "value" : "不支持此操作" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "請嘗試其他搜尋詞。" + "value" : "不支援此操作" } } } }, - "Try adjusting your search terms\nor date filter." : { + "This Oracle server is older than release 11.1, which the database driver does not support." : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "검색어 또는 날짜 필터를\n조정해 보십시오." + "value" : "이 Oracle 서버는 릴리스 11.1보다 이전 버전이며 데이터베이스 드라이버에서 지원하지 않습니다." + } + } + } + }, + "This origin is not allowed to reach TablePro's MCP server." : { + + }, + "This permanently deletes the selected rows from the database and can't be undone." : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "선택한 행을 데이터베이스에서 영구적으로 삭제하며 실행 취소할 수 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Try adjusting your search terms\nor date filter." + "value" : "Bu, seçili satırları veritabanından kalıcı olarak siler ve geri alınamaz." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thử điều chỉnh từ khoá tìm kiếm\nhoặc bộ lọc ngày." + "value" : "Thao tác này xóa vĩnh viễn các dòng đã chọn khỏi cơ sở dữ liệu và không thể hoàn tác." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "尝试调整搜索词\n或日期筛选。" + "value" : "此操作会从数据库中永久删除所选行,且无法撤销。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "請嘗試調整搜尋字詞\n或日期篩選。" + "value" : "此操作會從資料庫中永久刪除所選的列,且無法復原。" } } } }, - "Try the sample database, or click + above to add your own." : { + "This plan could not be read as a tree. Showing the raw output." : { + "comment" : "A message that appears when the query plan cannot be displayed as a tree.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "샘플 데이터베이스를 사용하거나 위의 +를 클릭하여 데이터베이스를 추가하십시오." + "value" : "이 계획을 트리로 읽을 수 없습니다. 원시 출력을 표시합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Örnek veritabanını deneyin veya kendi bağlantınızı eklemek için yukarıdaki + düğmesine tıklayın." + "value" : "Bu plan ağaç olarak okunamadı. Ham çıktı gösteriliyor." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dùng thử cơ sở dữ liệu mẫu, hoặc bấm + ở trên để thêm của riêng bạn." + "value" : "Không đọc được kế hoạch này dưới dạng cây. Đang hiển thị kết quả thô." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "试用示例数据库,或点按上方的 + 添加你自己的数据库。" + "value" : "无法将此执行计划读取为树形结构。显示原始输出。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "試用範例資料庫,或點按上方的 + 來新增你自己的資料庫。" + "value" : "無法將此執行計畫讀取為樹狀結構。顯示原始輸出。" } } } }, - "Turn loaded query results into native bar, line, area, and scatter charts." : { + "This plugin is not in the registry, so it can't be updated automatically." : { "localizations" : { "ko" : { "stringUnit" : { - "value" : "불러온 쿼리 결과를 막대, 선, 영역, 분산형 차트로 그립니다.", - "state" : "translated" + "state" : "translated", + "value" : "이 플러그인은 레지스트리에 없으므로 자동으로 업데이트할 수 없습니다." } }, "tr" : { "stringUnit" : { - "value" : "Yüklenen sorgu sonuçlarını yerel çubuk, çizgi, alan ve dağılım grafiklerine dönüştürün.", - "state" : "translated" + "state" : "translated", + "value" : "Bu eklenti depoda bulunmadığından otomatik olarak güncellenemez." } }, "vi" : { "stringUnit" : { - "value" : "Chuyển kết quả truy vấn đã tải thành biểu đồ cột, đường, miền và phân tán theo chuẩn hệ thống.", - "state" : "translated" + "state" : "translated", + "value" : "Plugin này không có trong registry nên không thể cập nhật tự động." } }, "zh-Hans" : { "stringUnit" : { - "value" : "将已加载的查询结果转换为原生柱状图、折线图、面积图和散点图。", - "state" : "translated" + "state" : "translated", + "value" : "此插件不在注册表中,无法自动更新。" } }, "zh-Hant" : { "stringUnit" : { - "value" : "將已載入的查詢結果轉換為原生長條圖、折線圖、面積圖和散佈圖。", - "state" : "translated" + "state" : "translated", + "value" : "此外掛不在外掛註冊中,因此無法自動更新。" } } } }, - "Two-Factor Authentication" : { + "This plugin is signed by %@, a developer you have not trusted yet." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "2단계 인증" + "value" : "%@ 개발자가 서명한 플러그인입니다. 이 개발자는 아직 신뢰하지 않았습니다." + } + } + } + }, + "This plugin requires TablePro %@ or later" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "이 플러그인에는 TablePro %@ 이상이 필요합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İki Aşamalı Doğrulama" + "value" : "Bu eklenti TablePro %@ veya sonrasını gerektiriyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xác thực hai yếu tố" + "value" : "Plugin này yêu cầu TablePro %@ trở lên" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "双因素认证" + "value" : "此插件需要 TablePro %@ 或更高版本" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "雙重驗證" + "value" : "此外掛需要 TablePro %@ 或更新版本" } } } }, - "Type" : { + "This profile will be permanently deleted." : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "This profile will be permanently deleted." + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "유형" + "value" : "이 프로필은 영구적으로 삭제됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tür" + "value" : "Bu profil kalıcı olarak silinecek." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kiểu" + "value" : "Hồ sơ này sẽ bị xoá vĩnh viễn." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "类型" + "value" : "此配置将被永久删除。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "類型" + "value" : "此設定檔將被永久刪除。" } } } }, - "Type %@ in the query to set where the cursor lands after keyword expansion." : { + "This project has no datasets yet." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "키워드 확장 후 커서가 놓일 위치를 지정하려면 쿼리에 %@을(를) 입력하십시오." + "value" : "이 프로젝트에는 아직 데이터 세트가 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İmlecin anahtar kelime genişletmesinden sonra nereye geleceğini belirlemek için sorguya %@ yazın." + "value" : "Bu projede henüz veri kümesi yok." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gõ %@ trong truy vấn để chỉ định vị trí con trỏ sau khi từ khóa được mở rộng." + "value" : "Dự án này chưa có dataset nào." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在查询中输入 %@,用于指定关键字展开后光标停留的位置。" + "value" : "此项目还没有数据集。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在查詢中輸入 %@,用來指定關鍵字展開後游標停留的位置。" + "value" : "此專案還沒有資料集。" } } } }, - "Type shortcut…" : { + "This puts the AI-generated SQL into the query editor, replacing what is there. Nothing runs until you execute it." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "단축키 입력…" + "value" : "AI가 생성한 SQL을 쿼리 편집기에 넣고 기존 내용을 대체합니다. 직접 실행하기 전까지는 아무것도 실행되지 않습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kısayolu yazın…" + "value" : "Bu, yapay zekanın ürettiği SQL'i sorgu düzenleyiciye koyar ve oradakinin yerini alır. Siz çalıştırana kadar hiçbir şey yürütülmez." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập phím tắt…" + "value" : "Thao tác này đưa SQL do AI tạo vào trình soạn truy vấn, thay cho nội dung hiện có. Không có gì chạy cho đến khi bạn thực thi." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "输入快捷键…" + "value" : "此操作会把 AI 生成的 SQL 放入查询编辑器,替换其中的内容。在你执行之前不会运行任何语句。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "輸入快速鍵…" + "value" : "此操作會把 AI 產生的 SQL 放入查詢編輯器,取代其中的內容。在你執行之前不會執行任何陳述式。" } } } }, - "Type: %@" : { + "This query belongs to another connection. Load it in the editor to run it there." : { + "comment" : "A description of why the \"Load in Editor\" button is disabled.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "유형: %@" + "value" : "이 쿼리는 다른 연결에 속합니다. 해당 연결에서 실행하려면 편집기로 불러오십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tür: %@" + "value" : "Bu sorgu başka bir bağlantıya ait. Orada çalıştırmak için düzenleyicide açın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Loại: %@" + "value" : "Truy vấn này thuộc về một kết nối khác. Hãy mở nó trong trình soạn thảo để chạy ở đó." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "类型:%@" + "value" : "此查询属于另一个连接。在编辑器中载入它以在那里运行。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "類型:%@" + "value" : "此查詢屬於另一個連線。在編輯器中載入它以在那裡執行。" } } } }, - "Typography" : { - "extractionState" : "stale", + "This query may permanently modify or delete data and cannot be undone.\n\n%@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "타이포그래피" + "value" : "이 쿼리는 데이터를 영구적으로 변경하거나 삭제할 수 있으며 실행 취소할 수 없습니다.\n\n%@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Typography" + "value" : "Bu sorgu verileri kalıcı olarak değiştirebilir veya silebilir ve geri alınamaz.\n\n%@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kiểu chữ" + "value" : "Truy vấn này có thể sửa đổi hoặc xóa dữ liệu vĩnh viễn và không thể hoàn tác.\n\n%@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "排版" + "value" : "此查询可能永久修改或删除数据,且无法撤销。\n\n%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "排版" + "value" : "此查詢可能會永久修改或刪除資料,且無法復原。\n\n%@" } } } }, - "UNIQUE" : { + "This query may permanently modify or delete data." : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "UNIQUE" + "value" : "이 쿼리는 데이터를 영구적으로 변경하거나 삭제할 수 있습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "UNIQUE" + "value" : "This query may permanently modify or delete data." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "UNIQUE" + "value" : "Truy vấn này có thể sửa đổi hoặc xóa dữ liệu vĩnh viễn." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "UNIQUE" + "value" : "此查询可能会永久修改或删除数据。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "UNIQUE" + "value" : "此查詢可能會永久修改或刪除資料。" } } } }, - "UPDATE Statement(s)" : { + "This server has no databases yet." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "UPDATE 문" + "value" : "이 서버에는 아직 데이터베이스가 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "UPDATE Statement(s)" + "value" : "Bu sunucuda henüz veritabanı yok." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Câu lệnh UPDATE" + "value" : "Máy chủ này chưa có cơ sở dữ liệu nào." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "UPDATE 语句" + "value" : "此服务器还没有数据库。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "UPDATE 陳述式" + "value" : "此伺服器還沒有資料庫。" } } } }, - "US Long (12/31/2024 11:59:59 PM)" : { + "This server has no users or roles you can manage." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "미국식 긴 형식(12/31/2024 11:59:59 PM)" + "value" : "이 서버에는 관리할 수 있는 사용자 또는 역할이 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "US Long (12/31/2024 11:59:59 PM)" + "value" : "Bu sunucuda yönetebileceğiniz kullanıcı veya rol yok." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mỹ dài (12/31/2024 11:59:59 PM)" + "value" : "Máy chủ này không có người dùng hoặc vai trò nào bạn quản lý được." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "美式长格式 (12/31/2024 11:59:59 PM)" + "value" : "此服务器没有你可以管理的用户或角色。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "美式長格式 (12/31/2024 11:59:59 PM)" + "value" : "此伺服器沒有你可以管理的使用者或角色。" } } } }, - "US Short (12/31/2024)" : { + "This sets %lld loaded rows. Review and Save to apply." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "미국식 짧은 형식(12/31/2024)" + "value" : "불러온 행을 %lld개로 설정합니다. 적용하려면 검토한 후 저장하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "US Short (12/31/2024)" + "value" : "Bu, yüklenmiş %lld satırın değerini ayarlar. Uygulamak için gözden geçirip kaydedin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mỹ ngắn (12/31/2024)" + "value" : "Thao tác này đặt giá trị cho %lld hàng đã tải. Xem lại và Lưu để áp dụng." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "美式短格式 (12/31/2024)" + "value" : "这将设置 %lld 个已加载的行。请检查后保存以应用。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "美式短格式 (12/31/2024)" + "value" : "這會設定 %lld 列已載入的資料。請檢查後儲存以套用。" } } } }, - "UTC_TIMESTAMP()" : { - "extractionState" : "stale", + "This sets 1 loaded row. Review and Save to apply." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "UTC_TIMESTAMP()" + "value" : "불러온 행을 1개로 설정합니다. 적용하려면 검토한 후 저장하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "UTC_TIMESTAMP()" + "value" : "Bu, yüklenmiş 1 satırın değerini ayarlar. Uygulamak için gözden geçirip kaydedin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "UTC_TIMESTAMP()" + "value" : "Thao tác này đặt giá trị cho 1 hàng đã tải. Xem lại và Lưu để áp dụng." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "UTC_TIMESTAMP()" + "value" : "这将设置 1 个已加载的行。请检查后保存以应用。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "UTC_TIMESTAMP()" + "value" : "這會設定 1 列已載入的資料。請檢查後儲存以套用。" } } } }, - "UUID" : { + "This shortcut is reserved by macOS and cannot be assigned." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "UUID" + "value" : "이 단축키는 macOS에서 예약되어 있어 지정할 수 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "UUID" + "value" : "Bu kısayol macOS tarafından ayrılmıştır ve atanamaz." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "UUID" + "value" : "Phím tắt này được macOS dành riêng và không thể gán." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "UUID" + "value" : "此快捷键已被 macOS 保留,无法分配。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "UUID" + "value" : "此快速鍵已由 macOS 保留,無法指派。" } } } }, - "UUID of the active connection" : { + "This shortcut is reserved for \"%@\" and cannot be assigned." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "활성 연결의 UUID" + "value" : "이 단축키는 \"%@\"에 예약되어 있어 지정할 수 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Etkin bağlantının UUID'si" + "value" : "Bu kısayol \"%@\" için ayrılmıştır ve atanamaz." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "UUID của kết nối đang hoạt động" + "value" : "Phím tắt này được dành riêng cho \"%@\" và không thể gán." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "活动连接的 UUID" + "value" : "此快捷键已保留给 \"%@\",无法分配。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "使用中連線的 UUID" + "value" : "此快速鍵已保留給「%@」,無法指派。" } } } }, - "UUID of the connection" : { + "This SQL query failed with an error. Please fix it.\n\nQuery:\n```sql\n%@\n```\n\nError: %@" : { + "extractionState" : "stale", "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "This SQL query failed with an error. Please fix it.\n\nQuery:\n```sql\n%1$@\n```\n\nError: %2$@" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결의 UUID" + "value" : "이 SQL 쿼리가 오류로 실패했습니다. 오류를 수정하십시오.\n\n쿼리:\n```sql\n%1$@\n```\n\n오류: %2$@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantının UUID'si" + "value" : "This SQL query failed with an error. Please fix it.\n\nQuery:\n```sql\n%@\n```\n\nError: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "UUID của kết nối" + "value" : "Câu truy vấn SQL sau đã thất bại với lỗi. Vui lòng sửa lỗi.\n\nTruy vấn:\n```sql\n%1$@\n```\n\nLỗi: %2$@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接的 UUID" + "value" : "此 SQL 查询执行失败并报错。请修复。\n\n查询:\n```sql\n%@\n```\n\n错误:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線的 UUID" + "value" : "此 SQL 查詢執行失敗並出現錯誤。請修正。\n\n查詢:\n```sql\n%1$@\n```\n\n錯誤:%2$@" } } } }, - "UUID of the connection to disconnect" : { + "This statement drops or truncates data. Use confirm_destructive_operation for it." : { + + }, + "This tab is on %@. Switch the connection to that database to run it." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결을 해제할 연결의 UUID" + "value" : "이 탭은 %@에 있습니다. 실행하려면 연결을 해당 데이터베이스로 전환하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantısı kesilecek bağlantının UUID'si" + "value" : "Bu sekme %@ üzerinde. Çalıştırmak için bağlantıyı o veritabanına geçirin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "UUID của kết nối cần ngắt" + "value" : "Tab này đang ở %@. Chuyển kết nối sang cơ sở dữ liệu đó để chạy." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "要断开的连接的 UUID" + "value" : "此标签页位于 %@。请将连接切换到该数据库后再运行。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "要中斷的連線的 UUID" + "value" : "此分頁位於 %@。請將連線切換到該資料庫後再執行。" } } } }, - "UUID of the saved connection" : { + "This table has no triggers. Triggers run automatically when rows are inserted, updated, or deleted." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "저장된 연결의 UUID" + "value" : "이 테이블에는 트리거가 없습니다. 트리거는 행을 삽입, 업데이트 또는 삭제할 때 자동으로 실행됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kaydedilmiş bağlantının UUID'si" + "value" : "Bu tablonun tetikleyicisi yok. Tetikleyiciler, satırlar eklendiğinde, güncellendiğinde veya silindiğinde otomatik olarak çalışır." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "UUID của kết nối đã lưu" + "value" : "Bảng này không có trigger. Trigger tự động chạy khi các dòng được chèn, cập nhật hoặc xóa." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已保存连接的 UUID" + "value" : "此表没有触发器。当插入、更新或删除行时,触发器会自动运行。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已儲存連線的 UUID" + "value" : "此資料表沒有觸發器。當插入、更新或刪除列時,觸發器會自動執行。" } } } }, - "Unable to Load Privileges" : { + "This token will not be shown again" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "권한을 불러올 수 없음" + "value" : "이 토큰은 다시 표시되지 않습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yetkiler Yüklenemedi" + "value" : "Bu token bir daha gösterilmeyecek" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tải được quyền" + "value" : "Token này sẽ không hiển thị lại nữa" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法加载权限" + "value" : "此令牌将不再显示" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法載入權限" + "value" : "此權杖將不會再次顯示" } } } }, - "Unable to Load Users and Roles" : { + "This tool only runs destructive statements. Use execute_query for everything else." : { + + }, + "This TRUNCATE query will permanently delete all rows in the table. This action cannot be undone." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사용자 및 역할을 불러올 수 없음" + "value" : "이 TRUNCATE 쿼리는 테이블의 모든 행을 영구적으로 삭제합니다. 이 작업은 실행 취소할 수 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kullanıcılar ve Roller Yüklenemedi" + "value" : "This TRUNCATE query will permanently delete all rows in the table. This action cannot be undone." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tải được người dùng và vai trò" + "value" : "Truy vấn TRUNCATE này sẽ xóa vĩnh viễn tất cả dòng trong bảng. Thao tác này không thể hoàn tác." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法加载用户和角色" + "value" : "此 TRUNCATE 查询将永久删除表中的所有行。此操作无法撤销。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法載入使用者與角色" + "value" : "此 TRUNCATE 查詢將永久刪除資料表中的所有列。此動作無法復原。" } } } }, - "Unassigned" : { + "This user can grant this privilege to others." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "미지정" + "value" : "이 사용자는 다른 사용자에게 이 권한을 부여할 수 있습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Atanmamış" + "value" : "Bu kullanıcı bu yetkiyi başkalarına verebilir." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa gán" + "value" : "Người dùng này có thể cấp quyền đó cho người khác." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未分配" + "value" : "此用户可以将该权限授予他人。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "未指派" + "value" : "此使用者可以將該權限授予他人。" } } } }, - "Unchanged" : { + "This value is not one of the type's current labels" : { + "comment" : "A tooltip for a warning icon in the array value editor.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "변경 없음" + "value" : "이 값은 현재 유형 레이블 중 하나가 아닙니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Değişmedi" + "value" : "Bu değer, türün geçerli etiketlerinden biri değil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không đổi" + "value" : "Giá trị này không nằm trong các nhãn hiện có của kiểu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未更改" + "value" : "此值不在该类型的现有标签中" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "未變更" + "value" : "此值不在該類型的現有標籤中" } } } }, - "Under MCP Servers click \"+ Add Custom Server\", select the Local tab, paste the JSON below, then click Add Server" : { + "This value is too large to parse. Use raw mode to inspect it as text." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "MCP 서버에서 \"+ 사용자 지정 서버 추가\"를 클릭하고 로컬 탭을 선택한 다음 아래 JSON을 붙여넣고 서버 추가를 클릭하십시오" + "value" : "이 값은 구문 분석하기에 너무 큽니다. 원시 모드에서 텍스트로 확인하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "MCP Servers bölümünde \"+ Add Custom Server\" düğmesine tıklayın, Local sekmesini seçin, aşağıdaki JSON'u yapıştırın, sonra Add Server düğmesine tıklayın" + "value" : "Bu değer ayrıştırılamayacak kadar büyük. Metin olarak incelemek için ham modu kullanın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trong mục MCP Servers, bấm \"+ Add Custom Server\", chọn tab Local, dán JSON bên dưới rồi bấm Add Server" + "value" : "Giá trị này quá lớn để phân tích. Dùng chế độ raw để xem dưới dạng văn bản." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在 MCP Servers 下点按 \"+ Add Custom Server\",选择 Local 标签页,粘贴下方的 JSON,然后点按 Add Server" + "value" : "此值太大,无法解析。请使用原始模式以文本形式查看。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在 MCP Servers 下點按「+ Add Custom Server」,選擇 Local 標籤頁,貼上下方的 JSON,然後點按 Add Server" + "value" : "此值太大,無法解析。請使用原始模式以文字形式檢視。" } } } }, - "Underline" : { + "This Week" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "밑줄" + "value" : "이번 주" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Altı Çizili" + "value" : "Bu Hafta" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gạch chân" + "value" : "Tuần này" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "下划线" + "value" : "本周" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "底線" + "value" : "本週" } } } }, - "Undo" : { + "This will detach partition '%@'. Data will be preserved but inaccessible until re-attached." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "실행 취소" + "value" : "파티션 '%@'을(를) 분리합니다. 데이터는 보존되지만 다시 연결할 때까지 접근할 수 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Undo" + "value" : "'%@' bölümü ayrılacak. Veriler korunacak ancak yeniden bağlanana kadar erişilemez olacak." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hoàn tác" + "value" : "Thao tác này sẽ tách rời phân vùng '%@'. Dữ liệu sẽ được giữ lại nhưng không truy cập được cho đến khi gắn lại." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "撤销" + "value" : "此操作将分离分区 '%@'。数据将被保留但在重新挂载前不可访问。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "復原" + "value" : "此操作將分離分割區「%@」。資料會保留,但在重新附加前無法存取。" } } } }, - "Undo Delete" : { + "This will fetch all remaining rows. Large result sets use significant memory. Continue?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "삭제 실행 취소" + "value" : "남은 행을 모두 가져옵니다. 결과 집합이 크면 상당한 메모리를 사용합니다. 계속하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Silmeyi Geri Al" + "value" : "Kalan tüm satırlar getirilecek. Büyük sonuç kümeleri önemli bellek kullanır. Devam edilsin mi?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hoàn tác xóa" + "value" : "Thao tác này sẽ tải tất cả dòng còn lại. Tập kết quả lớn sử dụng nhiều bộ nhớ. Tiếp tục?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "撤销删除" + "value" : "此操作将获取所有剩余行。大量结果会占用较多内存。是否继续?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "復原刪除" + "value" : "此操作將擷取所有剩餘的列。大量結果集會佔用大量記憶體。是否繼續?" } } } }, - "Undo Staged Drop" : { + "This will fetch approximately %@ more rows. Large result sets use significant memory. Continue?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "대기 중인 삭제 실행 취소" + "value" : "약 %@개의 행을 더 가져옵니다. 결과 집합이 크면 상당한 메모리를 사용합니다. 계속하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bekleyen Silmeyi Geri Al" + "value" : "Yaklaşık %@ satır daha getirilecek. Büyük sonuç kümeleri önemli bellek kullanır. Devam edilsin mi?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hoàn tác thao tác xoá đang chờ" + "value" : "Thao tác này sẽ tải thêm khoảng %@ dòng. Tập kết quả lớn sử dụng nhiều bộ nhớ. Tiếp tục?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "撤销待执行的删除" + "value" : "此操作将获取约 %@ 行更多数据。大量结果会占用较多内存。是否继续?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "復原待執行的刪除" + "value" : "此操作將額外擷取約 %@ 列。大量結果集會佔用大量記憶體。是否繼續?" } } } }, - "Unified" : { + "This will load all %@ rows on a single page. Large result sets use significant memory. Continue?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "통합" + "value" : "%@개 행을 모두 한 페이지에 불러옵니다. 결과 집합이 크면 상당한 메모리를 사용합니다. 계속하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tek Sütun" + "value" : "Bu işlem %@ satırın tamamını tek bir sayfada yükler. Büyük sonuç kümeleri önemli ölçüde bellek kullanır. Devam edilsin mi?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gộp chung" + "value" : "Thao tác này sẽ tải toàn bộ %@ hàng trên một trang. Tập kết quả lớn dùng nhiều bộ nhớ. Tiếp tục?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "统一视图" + "value" : "这将在单个页面加载全部 %@ 行。大型结果集会占用大量内存。要继续吗?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "統一檢視" + "value" : "這會在單一頁面載入全部 %@ 列。大型結果集會佔用大量記憶體。要繼續嗎?" } } } }, - "Uninstall" : { + "This will permanently delete %lld %@. This action cannot be undone." : { + "extractionState" : "stale", "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "This will permanently delete %1$lld %2$@. This action cannot be undone." + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "제거" + "value" : "%1$lld개의 %2$@을(를) 영구적으로 삭제합니다. 이 작업은 실행 취소할 수 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kaldır" + "value" : "This will permanently delete %lld %@. This action cannot be undone." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gỡ cài đặt" + "value" : "Thao tác này sẽ xóa vĩnh viễn %1$lld %2$@. Không thể hoàn tác." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "卸载" + "value" : "此操作将永久删除 %lld 个%@。无法撤销。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "解除安裝" + "value" : "此操作將永久刪除 %1$lld 個%2$@。此動作無法復原。" } } } }, - "Uninstall %@" : { + "This will permanently delete all conversation history." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 제거" + "value" : "모든 대화 기록을 영구적으로 삭제합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ Kaldır" + "value" : "Bu işlem tüm konuşma geçmişini kalıcı olarak silecek." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gỡ cài đặt %@" + "value" : "Hành động này sẽ xóa vĩnh viễn toàn bộ lịch sử hội thoại." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "卸载 %@" + "value" : "这将永久删除所有对话历史。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "解除安裝 %@" + "value" : "此操作將永久刪除所有對話記錄。" } } } }, - "Uninstall Failed" : { + "This will permanently delete all data in partition '%@'." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "제거 실패" + "value" : "파티션 '%@'의 모든 데이터를 영구적으로 삭제합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kaldırma Başarısız" + "value" : "'%@' bölümündeki tüm veriler kalıcı olarak silinecek." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gỡ cài đặt thất bại" + "value" : "Thao tác này sẽ xoá vĩnh viễn tất cả dữ liệu trong phân vùng '%@'." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "卸载失败" + "value" : "此操作将永久删除分区 '%@' 中的所有数据。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "解除安裝失敗" + "value" : "此操作將永久刪除分割區「%@」中的所有資料。" } } } }, - "Uninstall Plugin?" : { + "This will permanently delete all query history entries. This action cannot be undone." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플러그인을 제거하시겠습니까?" + "value" : "모든 쿼리 기록 항목을 영구적으로 삭제합니다. 이 작업은 실행 취소할 수 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklenti kaldırılsın mı?" + "value" : "Bu işlem tüm sorgu geçmişi kayıtlarını kalıcı olarak siler. Bu işlem geri alınamaz." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gỡ cài đặt Plugin?" + "value" : "Thao tác này sẽ xóa vĩnh viễn toàn bộ lịch sử truy vấn. Không thể hoàn tác." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "卸载插件?" + "value" : "此操作将永久删除所有查询历史记录。无法撤销。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "解除安裝外掛?" + "value" : "此操作將永久刪除所有查詢歷程記錄項目。此動作無法復原。" } } } }, - "Uninstall plugin" : { + "This will remove the license from this machine. You can reactivate later." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플러그인 제거" + "value" : "이 컴퓨터에서 라이선스를 제거합니다. 나중에 다시 활성화할 수 있습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklentiyi kaldır" + "value" : "Bu işlem lisansı bu makineden kaldırır. Daha sonra yeniden etkinleştirebilirsiniz." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gỡ cài đặt plugin" + "value" : "Thao tác này sẽ gỡ giấy phép khỏi máy này. Bạn có thể kích hoạt lại sau." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "卸载插件" + "value" : "此操作将从本机移除许可证。您可以稍后重新激活。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "解除安裝外掛" + "value" : "此操作將從這台機器移除授權。你可以稍後重新啟用。" } } } }, - "Unique" : { + "This will reset all settings across every section to their default values." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "고유" + "value" : "모든 섹션의 설정을 기본값으로 재설정합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Unique" + "value" : "Bu işlem tüm bölümlerdeki ayarları varsayılan değerlerine sıfırlayacaktır." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Duy nhất" + "value" : "Thao tác này sẽ đặt lại tất cả cài đặt ở mọi mục về giá trị mặc định." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "唯一" + "value" : "这将把所有部分的设置重置为默认值。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "唯一" + "value" : "此操作會將所有區段的設定重設為預設值。" } } } }, - "Unix Timestamp (milliseconds)" : { + "Threads" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Unix 타임스탬프(밀리초)" + "value" : "스레드" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Unix Zaman Damgası (milisaniye)" + "value" : "İş Parçacıkları" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Unix Timestamp (mili giây)" + "value" : "Luồng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Unix时间戳(毫秒)" + "value" : "线程" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Unix 時間戳記(毫秒)" + "value" : "執行緒" } } } }, - "Unix Timestamp (seconds)" : { + "Tier:" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tier:" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Unix 타임스탬프(초)" + "value" : "등급:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Unix Zaman Damgası (saniye)" + "value" : "Katman:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Unix Timestamp (giây)" + "value" : "Hạng:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Unix时间戳(秒)" + "value" : "等级:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Unix 時間戳記(秒)" + "value" : "等級:" } } } }, - "Unknown" : { + "Time" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "알 수 없음" + "value" : "시간" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bilinmiyor" + "value" : "Zaman" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không xác định" + "value" : "Thời gian" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未知" + "value" : "时间" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "未知" + "value" : "時間" } } } }, - "Unknown SSH Host" : { + "Time spent waiting" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "알 수 없는 SSH 호스트" + "value" : "대기 시간" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bilinmeyen SSH Sunucusu" + "value" : "Beklemede geçen süre" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Máy chủ SSH không xác định" + "value" : "Thời gian chờ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未知 SSH 主机" + "value" : "等待耗时" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "未知的 SSH 主機" + "value" : "等待耗時" } } } }, - "Unknown URL scheme: %@" : { + "Time Zone" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "알 수 없는 URL 스킴: %@" + "value" : "시간대" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bilinmeyen URL şeması: %@" + "value" : "Saat Dilimi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "URL scheme không xác định: %@" + "value" : "Múi giờ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未知的 URL scheme:%@" + "value" : "时区" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "未知的 URL scheme:%@" + "value" : "時區" } } } }, - "Unknown deep link host: %@" : { + "Time: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "알 수 없는 딥 링크 호스트: %@" + "value" : "시간: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bilinmeyen deep link sunucusu: %@" + "value" : "Zaman: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Host deep link không xác định: %@" + "value" : "Thời gian: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未知的深层链接主机:%@" + "value" : "时间:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "未知的深層連結主機:%@" + "value" : "時間:%@" } } } }, - "Unknown error" : { + "Timed out completing Kerberos authentication. The Kerberos KDC (domain controller) may be unreachable, the server's SPN may be missing, or this device's clock may be off. Check your network to the domain, or use SQL Server Authentication." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "알 수 없는 오류" + "value" : "Kerberos 인증을 완료하는 동안 시간이 초과되었습니다. Kerberos KDC(도메인 컨트롤러)에 연결할 수 없거나, 서버의 SPN이 없거나, 이 기기의 시계가 맞지 않을 수 있습니다. 도메인에 대한 네트워크 연결을 확인하거나 SQL Server 인증을 사용하십시오." + } + } + } + }, + "Timed out connecting through the SOCKS proxy at %@:%@. Check that the proxy is reachable and the credentials are correct." : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Timed out connecting through the SOCKS proxy at %1$@:%2$@. Check that the proxy is reachable and the credentials are correct." + } + }, + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$@:%2$@의 SOCKS 프록시를 통해 연결하는 동안 시간이 초과되었습니다. 프록시에 연결할 수 있는지와 자격 증명이 올바른지 확인하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bilinmeyen hata" + "value" : "%1$@:%2$@ adresindeki SOCKS proxy üzerinden bağlanırken zaman aşımı oluştu. Proxy'ye erişilebildiğini ve kimlik bilgilerinin doğru olduğunu denetleyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lỗi không xác định" + "value" : "Hết thời gian chờ khi kết nối qua SOCKS proxy tại %1$@:%2$@. Hãy kiểm tra proxy có truy cập được và thông tin đăng nhập có đúng không." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未知错误" + "value" : "通过 %1$@:%2$@ 的 SOCKS 代理连接超时。请检查该代理是否可达、凭据是否正确。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "未知錯誤" + "value" : "透過 %1$@:%2$@ 的 SOCKS 代理連線逾時。請檢查該代理是否可連線、認證資訊是否正確。" } } } }, - "Unlicensed" : { + "Timed out connecting to the server. Check the host, port, and that the server is reachable and accepting connections." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "라이선스 없음" + "value" : "서버에 연결하는 동안 시간이 초과되었습니다. 호스트와 포트가 올바른지, 서버에 연결할 수 있고 서버가 연결을 수락하는지 확인하십시오." + } + } + } + }, + "Timed out during the Oracle login handshake. The server accepted the network connection but did not finish logging in." : { + "extractionState" : "stale", + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "Oracle 로그인 핸드셰이크 중 시간이 초과되었습니다. 서버가 네트워크 연결을 수락했지만 로그인을 완료하지 않았습니다." + } + } + } + }, + "Timestamp digits compared" : { + + }, + "Timestamp precision" : { + + }, + "TIMESTAMPS" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "TIMESTAMPS" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Unlicensed" + "value" : "TIMESTAMPS" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa có giấy phép" + "value" : "THỜI GIAN" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未授权" + "value" : "时间戳" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "未授權" + "value" : "時間戳記" } } } }, - "Unlimited" : { + "Timing" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "무제한" + "value" : "타이밍" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sınırsız" + "value" : "Zamanlama" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không giới hạn" + "value" : "Thời điểm" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无限制" + "value" : "时机" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無限制" + "value" : "時機" } } } }, - "Unpin" : { + "Tiny" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "고정 해제" + "value" : "매우 작게" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sabitlemeyi Kaldır" + "value" : "Tiny" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bỏ ghim" + "value" : "Rất nhỏ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "取消固定" + "value" : "极小" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "取消釘選" + "value" : "極小" } } } }, - "Unpin Result" : { + "Tiny Dot" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "결과 고정 해제" + "value" : "작은 점" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sonucun Sabitlemesini Kaldır" + "value" : "Tiny Dot" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bỏ ghim kết quả" + "value" : "Chấm nhỏ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "取消固定结果" + "value" : "极小圆点" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "取消釘選結果" + "value" : "極小圓點" } } } }, - "Unsaved changes will be lost." : { + "Title" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "저장하지 않은 변경 사항이 사라집니다." + "value" : "제목" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kaydedilmemiş değişiklikler kaybolacak." + "value" : "Başlık" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Các thay đổi chưa lưu sẽ bị mất." + "value" : "Tiêu đề" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未保存的更改将会丢失。" + "value" : "标题" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "未儲存的變更將會遺失。" + "value" : "標題" } } } }, - "Unset" : { + "Title 2" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "설정 안 됨" + "value" : "제목 2" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Unset" + "value" : "Title 2" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bỏ đặt" + "value" : "Tiêu đề 2" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "取消设置" + "value" : "标题 2" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "取消設定" + "value" : "標題 2" } } } }, - "Unsigned" : { + "Title 3" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "서명되지 않음" + "value" : "제목 3" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Unsigned" + "value" : "Title 3" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không dấu" + "value" : "Tiêu đề 3" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无符号" + "value" : "标题 3" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無符號" + "value" : "標題 3" } } } }, - "Unsupported MongoDB method: %@" : { + "TLS certificate expired or near expiry" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "지원되지 않는 MongoDB 메서드: %@" + "value" : "TLS 인증서가 만료되었거나 곧 만료됩니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Unsupported MongoDB method: %@" + "value" : "TLS sertifikasının süresi dolmuş veya dolmak üzere" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phương thức MongoDB không được hỗ trợ: %@" + "value" : "Chứng chỉ TLS đã hoặc sắp hết hạn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "不支持的 MongoDB 方法:%@" + "value" : "TLS 证书已过期或即将过期" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "不支援的 MongoDB 方法:%@" + "value" : "TLS 憑證已過期或即將過期" } } } }, - "Unsupported connection scheme: %@" : { + "TLS handshake failed: %@" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "지원되지 않는 연결 스킴: %@" + "value" : "TLS 핸드셰이크 실패: %@" + } + } + } + }, + "TLS identity not found in Keychain" : { + "extractionState" : "stale", + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "키체인에서 TLS ID를 찾을 수 없습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Desteklenmeyen bağlantı şeması: %@" + "value" : "Keychain'de TLS kimliği bulunamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Scheme kết nối không được hỗ trợ: %@" + "value" : "Không tìm thấy TLS identity trong Keychain" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "不支持的连接协议:%@" + "value" : "在钥匙串中未找到 TLS 身份" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "不支援的連線協定:%@" + "value" : "在鑰匙圈中找不到 TLS 身分" } } } }, - "Unsupported database scheme: %@" : { + "TLS Mode" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "지원되지 않는 데이터베이스 스킴: %@" + "value" : "TLS 모드" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Desteklenmeyen veritabanı şeması: %@" + "value" : "TLS Modu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Scheme cơ sở dữ liệu không được hỗ trợ: %@" + "value" : "Chế độ TLS" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "不支持的数据库方案:%@" + "value" : "TLS 模式" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "不支援的資料庫 scheme:%@" + "value" : "TLS 模式" } } } }, - "Unsupported database type: %@" : { + "to view data" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "지원되지 않는 데이터베이스 유형: %@" + "value" : "데이터 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Desteklenmeyen veritabanı türü: %@" + "value" : "veriyi görüntülemek için" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kiểu cơ sở dữ liệu không hỗ trợ: %@" + "value" : "để xem dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "不支持的数据库类型:%@" + "value" : "以查看数据" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "不支援的資料庫類型:%@" + "value" : "以檢視資料" } } } }, - "Unsupported encryption version %d" : { + "Today" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "지원되지 않는 암호화 버전 %d" + "value" : "오늘" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Desteklenmeyen şifreleme sürümü %d" + "value" : "Bugün" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phiên bản mã hoá %d không được hỗ trợ" + "value" : "Hôm nay" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "不支持的加密版本%d" + "value" : "今天" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "不支援的加密版本 %d" + "value" : "今天" } } } }, - "Unsupported encryption version %u" : { + "Toggle AI Chat" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "지원되지 않는 암호화 버전 %u" + "value" : "AI 채팅 표시/숨기기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Desteklenmeyen şifreleme sürümü %u" + "value" : "Toggle AI Chat" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phiên bản mã hóa không được hỗ trợ %u" + "value" : "Bật/tắt AI Chat" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "不支持的加密版本 %u" + "value" : "切换 AI 聊天" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "不支援的加密版本 %u" + "value" : "切換 AI 聊天" } } } }, - "Unsupported file format: %@" : { + "Toggle AI Chat (⌘⇧L)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "지원되지 않는 파일 형식: %@" + "value" : "AI 채팅 표시/숨기기(⌘⇧L)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Desteklenmeyen dosya biçimi: %@" + "value" : "Toggle AI Chat (⌘⇧L)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Định dạng tệp không được hỗ trợ: %@" + "value" : "Bật/tắt AI Chat (⌘⇧L)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "不支持的文件格式:%@" + "value" : "切换 AI 聊天 (⌘⇧L)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "不支援的檔案格式:%@" + "value" : "切換 AI 聊天 (⌘⇧L)" } } } }, - "Unsupported image format" : { + "Toggle Comment" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "지원되지 않는 이미지 형식" + "value" : "주석 전환" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Desteklenmeyen görüntü biçimi" + "value" : "Yorumu Aç/Kapat" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Định dạng ảnh không được hỗ trợ" + "value" : "Bật/tắt comment" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "不支持的图像格式" + "value" : "切换注释" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "不支援的影像格式" + "value" : "切換註解" } } } }, - "Unsupported intent: %@" : { + "Toggle Connections" : { + "comment" : "Text for the \"Toggle Connections\" shortcut action.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "지원되지 않는 인텐트: %@" + "value" : "연결 표시/숨기기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Desteklenmeyen niyet: %@" + "value" : "Bağlantıları Aç/Kapat" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Intent không hỗ trợ: %@" + "value" : "Bật/tắt kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "不支持的 intent:%@" + "value" : "切换连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "不支援的 intent:%@" + "value" : "切換連線" } } } }, - "Unsupported schema operation: %@" : { + "Toggle filters" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "지원되지 않는 스키마 작업: %@" + "value" : "필터 표시/숨기기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Desteklenmeyen şema işlemi: %@" + "value" : "Toggle filters" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thao tác schema không được hỗ trợ: %@" + "value" : "Bật/tắt bộ lọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "不支持的 Schema 操作:%@" + "value" : "切换筛选" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "不支援的綱要操作:%@" + "value" : "切換篩選" } } } }, - "Unsupported token: %@" : { + "Toggle Filters" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "지원되지 않는 토큰: %@" + "value" : "필터 표시/숨기기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Desteklenmeyen belirteç: %@" + "value" : "Filtreleri Aç/Kapat" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Token không được hỗ trợ: %@" + "value" : "Bật/tắt bộ lọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "不支持的标记:%@" + "value" : "切换筛选" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "不支援的權杖:%@" + "value" : "切換篩選" } } } }, - "Unterminated comment" : { + "Toggle Filters (⇧⌘F)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "종료되지 않은 주석" + "value" : "필터 표시/숨기기(⇧⌘F)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sonlandırılmamış yorum" + "value" : "Filtreleri Aç/Kapat (⇧⌘F)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ghi chú chưa đóng" + "value" : "Bật/tắt bộ lọc (⇧⌘F)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "注释未闭合" + "value" : "切换筛选 (⇧⌘F)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "註解未結束" + "value" : "切換篩選 (⇧⌘F)" } } } }, - "Untitled" : { + "Toggle Filters (⌘F)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "제목 없음" + "value" : "필터 표시/숨기기(⌘F)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Untitled" + "value" : "Toggle Filters (⌘F)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có tiêu đề" + "value" : "Bật/tắt bộ lọc (⌘F)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未命名" + "value" : "切换筛选 (⌘F)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "未命名" + "value" : "切換篩選 (⌘F)" } } } }, - "Update" : { + "Toggle Filters (Cmd+F)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "업데이트" + "value" : "필터 표시/숨기기(Cmd+F)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Güncelle" + "value" : "Toggle Filters (Cmd+F)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cập nhật" + "value" : "Bật/tắt bộ lọc (Cmd+F)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "更新" + "value" : "切换筛选 (Cmd+F)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "更新" + "value" : "切換篩選 (Cmd+F)" } } } }, - "Update %@" : { + "Toggle Fold" : { + + }, + "Toggle History" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 업데이트" + "value" : "기록 표시/숨기기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ Güncelle" + "value" : "Geçmişi Aç/Kapat" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cập nhật %@" + "value" : "Bật/tắt lịch sử" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "更新 %@" + "value" : "切换历史记录" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "更新 %@" + "value" : "切換歷程記錄" } } } }, - "Update %@ plugin" : { + "Toggle inspector" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 플러그인 업데이트" + "value" : "검사기 표시/숨기기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ eklentisini güncelle" + "value" : "Toggle inspector" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cập nhật plugin %@" + "value" : "Bật/tắt thanh kiểm tra" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "更新 %@ 插件" + "value" : "切换检查器" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "更新 %@ 外掛" + "value" : "切換檢閱器" } } } }, - "Update Now" : { + "Toggle Inspector" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "지금 업데이트" + "value" : "검사기 표시/숨기기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Şimdi Güncelle" + "value" : "Denetçiyi Aç/Kapat" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cập nhật ngay" + "value" : "Bật/tắt thanh kiểm tra" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "立即更新" + "value" : "切换检查器" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "立即更新" + "value" : "切換檢閱器" } } } }, - "Update Plugin" : { + "Toggle Inspector (⌘⌥I)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플러그인 업데이트" + "value" : "검사기 표시/숨기기(⌘⌥I)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklentiyi Güncelle" + "value" : "Toggle Inspector (⌘⌥I)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cập nhật plugin" + "value" : "Bật/tắt thanh kiểm tra (⌘⌥I)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "更新插件" + "value" : "切换检查器 (⌘⌥I)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "更新外掛" + "value" : "切換檢閱器 (⌘⌥I)" } } } }, - "Update TablePro" : { + "Toggle query history" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro 업데이트" + "value" : "쿼리 기록 표시/숨기기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro'yu Güncelle" + "value" : "Toggle query history" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cập nhật TablePro" + "value" : "Bật/tắt lịch sử truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "更新 TablePro" + "value" : "切换查询历史" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "更新 TablePro" + "value" : "切換查詢歷史" } } } }, - "Update to v%@" : { + "Toggle Query History" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "버전 v%@ 업데이트" + "value" : "쿼리 기록 표시/숨기기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "v%@ sürümüne güncelle" + "value" : "Sorgu Geçmişini Aç/Kapat" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cập nhật lên v%@" + "value" : "Bật/tắt lịch sử truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "更新到 v%@" + "value" : "切换查询历史" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "更新至 v%@" + "value" : "切換查詢歷史" } } } }, - "Updated" : { + "Toggle Query History (⌘⇧H)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "업데이트됨" + "value" : "쿼리 기록 표시/숨기기(⌘⇧H)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Updated" + "value" : "Toggle Query History (⌘⇧H)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã cập nhật" + "value" : "Bật/tắt lịch sử truy vấn (⌘⇧H)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已更新" + "value" : "切换查询历史 (⌘⇧H)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已更新" + "value" : "切換查詢歷史 (⌘⇧H)" } } } }, - "Updated to v%@" : { + "Toggle Query History (⌘Y)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "버전 v%@ 업데이트됨" + "value" : "쿼리 기록 표시/숨기기(⌘Y)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "v%@ sürümüne güncellendi" + "value" : "Toggle Query History (⌘Y)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã cập nhật lên v%@" + "value" : "Bật/tắt lịch sử truy vấn (⌘Y)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已更新到 v%@" + "value" : "切换查询历史 (⌘Y)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已更新至 v%@" + "value" : "切換查詢歷史 (⌘Y)" } } } }, - "Updating this plugin didn't finish. TablePro will try again the next time it launches." : { + "Toggle Results" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 플러그인의 업데이트가 완료되지 않았습니다. 다음에 TablePro를 실행할 때 다시 시도합니다." + "value" : "결과 표시/숨기기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu eklentinin güncellenmesi tamamlanmadı. TablePro bir sonraki açılışta yeniden deneyecek." + "value" : "Sonuçları Aç/Kapat" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cập nhật plugin này chưa hoàn tất. TablePro sẽ thử lại lần khởi động tiếp theo." + "value" : "Ẩn/hiện kết quả" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此插件更新未完成。TablePro 将在下次启动时重试。" + "value" : "显示/隐藏结果" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此外掛的更新尚未完成。TablePro 會在下次啟動時重試。" + "value" : "顯示/隱藏結果" } } } }, - "Updating…" : { + "Toggle Results (⌘⌥R)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "업데이트 중…" + "value" : "결과 표시/숨기기(⌘⌥R)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Güncelleniyor…" + "value" : "Sonuçları Aç/Kapat (⌘⌥R)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang cập nhật…" + "value" : "Ẩn/hiện kết quả (⌘⌥R)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在更新…" + "value" : "显示/隐藏结果(⌘⌥R)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在更新…" + "value" : "顯示/隱藏結果 (⌘⌥R)" } } } }, - "Upgrade Plan" : { + "Toggle Sidebar" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "요금제 업그레이드" + "value" : "사이드바 표시/숨기기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Planı Yükselt" + "value" : "Kenar Çubuğunu Aç/Kapat" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nâng cấp gói" + "value" : "Bật/tắt thanh bên" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "升级方案" + "value" : "切换侧栏" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "升級方案" + "value" : "切換側邊欄" } } } }, - "Uptime" : { + "Toggle Table Browser" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "가동 시간" + "value" : "테이블 브라우저 표시/숨기기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Çalışma Süresi" + "value" : "Tablo Tarayıcısını Aç/Kapat" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thời gian hoạt động" + "value" : "Bật/tắt trình duyệt bảng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "运行时间" + "value" : "切换表浏览器" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "運作時間" + "value" : "切換資料表瀏覽器" } } } }, - "Use" : { + "Toggle Workspace Rail" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사용" + "value" : "작업 공간 레일 표시/숨기기" } }, "tr" : { "stringUnit" : { - "state" : "translated", - "value" : "Kullan" + "state" : "needs_review", + "value" : "Çalışma Alanı Şeridini Aç/Kapat" } }, "vi" : { "stringUnit" : { - "state" : "translated", - "value" : "Dùng" + "state" : "needs_review", + "value" : "Bật/tắt thanh không gian làm việc" } }, "zh-Hans" : { "stringUnit" : { - "state" : "translated", - "value" : "使用" + "state" : "needs_review", + "value" : "切换工作区栏" } }, "zh-Hant" : { "stringUnit" : { - "state" : "translated", - "value" : "使用" + "state" : "needs_review", + "value" : "切換工作區列" } } } }, - "Use % to allow any host." : { + "Token" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 호스트를 허용하려면 %를 사용하십시오." + "value" : "토큰" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Herhangi bir sunucuya izin vermek için % kullanın." + "value" : "Token" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dùng % để cho phép mọi máy chủ." + "value" : "Token" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "使用 % 表示允许任意主机。" + "value" : "令牌" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "使用 % 表示允許任何主機。" + "value" : "權杖" } } } }, - "Use Default" : { + "Token '%@' with permission '%@' cannot access '%@'" : { + "extractionState" : "stale", "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Token '%1$@' with permission '%2$@' cannot access '%3$@'" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기본값 사용" + "value" : "권한 '%2$@'이(가) 있는 토큰 '%1$@'은(는) '%3$@'에 접근할 수 없습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Varsayılanı Kullan" + "value" : "'%@' izinli '%@' token'ı '%@' kaynağına erişemiyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mặc định" + "value" : "Token '%@' với quyền '%@' không thể truy cập '%@'" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "使用默认" + "value" : "权限为 '%@' 的令牌 '%@' 无法访问 '%@'" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "使用預設" + "value" : "權限為 '%1$@' 的權杖 '%2$@' 無法存取 '%3$@'" } } } }, - "Use DuckLake" : { - "extractionState" : "stale", + "Token does not have access to this connection" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "DuckLake 사용" + "value" : "토큰에 이 연결에 대한 접근 권한이 없습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "DuckLake Kullan" + "value" : "Token'ın bu bağlantıya erişimi yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dùng DuckLake" + "value" : "Token không có quyền truy cập kết nối này" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "使用 DuckLake" + "value" : "令牌没有访问此连接的权限" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "使用 DuckLake" + "value" : "權杖沒有存取此連線的權限" } } } }, - "Use IAM database authentication" : { + "Token Name" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "IAM 데이터베이스 인증 사용" + "value" : "토큰 이름" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "IAM veritabanı kimlik doğrulamasını kullan" + "value" : "Token Adı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dùng xác thực cơ sở dữ liệu IAM" + "value" : "Tên token" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "使用 IAM 数据库认证" + "value" : "令牌名称" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "使用 IAM 資料庫驗證" + "value" : "權杖名稱" } } } }, - "Use Password File" : { + "Token: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "암호 파일 사용" + "value" : "토큰: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Parola Dosyası Kullan" + "value" : "Jeton: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dùng file mật khẩu" + "value" : "Token: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "使用密码文件" + "value" : "令牌:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "使用密碼檔案" + "value" : "權杖:%@" } } } }, - "Use Required for AstraDB, DataStax Astra, and other hosted Cassandra deployments." : { + "Too many pending pairing codes. Try again later." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "AstraDB, DataStax Astra 및 기타 호스팅된 Cassandra 배포에서는 Required를 사용하십시오." + "value" : "대기 중인 페어링 코드가 너무 많습니다. 나중에 다시 시도하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "AstraDB, DataStax Astra ve diğer barındırılan Cassandra dağıtımları için Required kullanın." + "value" : "Çok fazla bekleyen eşleştirme kodu. Daha sonra tekrar deneyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dùng Required cho AstraDB, DataStax Astra và các triển khai Cassandra được lưu trữ khác." + "value" : "Có quá nhiều mã ghép nối đang chờ. Hãy thử lại sau." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "对于 AstraDB、DataStax Astra 和其他托管 Cassandra 部署,请使用“必需”。" + "value" : "待处理的配对代码过多。请稍后重试。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "對於 AstraDB、DataStax Astra 和其他託管的 Cassandra 部署,請使用「必要」。" + "value" : "待處理的配對碼過多。請稍後再試。" } } } }, - "Use Required for ClickHouse Cloud and other managed instances." : { + "Tool" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "ClickHouse Cloud 및 기타 관리형 인스턴스에서는 Required를 사용하십시오." + "value" : "도구" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "ClickHouse Cloud ve diğer yönetilen örnekler için Required kullanın." + "value" : "Araç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dùng Required cho ClickHouse Cloud và các phiên bản được quản lý khác." + "value" : "Công cụ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "对于 ClickHouse Cloud 和其他托管实例,请使用“必需”。" + "value" : "工具" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "對於 ClickHouse Cloud 和其他託管執行個體,請使用「必要」。" + "value" : "工具" } } } }, - "Use SSL if available" : { + "Tool call limit: %d" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사용 가능한 경우 SSL 사용" + "value" : "도구 호출 한도: %d" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Varsa SSL kullan" + "value" : "Araç çağrısı limiti: %d" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sử dụng SSL nếu có" + "value" : "Giới hạn gọi công cụ: %d" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "可用时使用 SSL" + "value" : "工具调用上限:%d" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "可用時使用 SSL" + "value" : "工具呼叫上限:%d" } } } }, - "Use as Active %@" : { + "Toolbar" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "활성 %@(으)로 사용" + "value" : "도구 막대" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Etkin %@ Olarak Kullan" + "value" : "Toolbar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dùng làm %@ hiện hành" + "value" : "Thanh công cụ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "设为当前%@" + "value" : "工具栏" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "設為使用中的%@" + "value" : "工具列" } } } }, - "Use as Active Database" : { - "extractionState" : "stale", + "Top Level" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "활성 데이터베이스로 사용" + "value" : "최상위" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Etkin Veritabanı Olarak Kullan" + "value" : "Üst Düzey" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dùng làm cơ sở dữ liệu hoạt động" + "value" : "Cấp cao nhất" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "用作活动数据库" + "value" : "顶级" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "用作使用中的資料庫" + "value" : "頂層" } } } }, - "Use as Active Schema" : { - "extractionState" : "stale", + "total %@" : { + "comment" : "Total duration, %@ is a duration", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "활성 스키마로 사용" + "value" : "합계 %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Etkin Şema Olarak Kullan" + "value" : "toplam %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dùng làm schema hoạt động" + "value" : "tổng %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "用作活动 Schema" + "value" : "总计 %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "用作使用中的綱要" + "value" : "總計 %@" } } } }, - "Use at least 8 characters" : { + "Total Blocks" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "8자 이상 사용하십시오" + "value" : "총 블록 수" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "En az 8 karakter kullanın" + "value" : "Toplam Blok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dùng ít nhất 8 ký tự" + "value" : "Tổng số khối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "请至少使用 8 个字符" + "value" : "总块数" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "請至少使用 8 個字元" + "value" : "區塊總數" } } } }, - "Use clipboard URL" : { + "Total Queries" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "클립보드 URL 사용" + "value" : "총 쿼리 수" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Panodaki URL'yi kullan" + "value" : "Toplam Sorgu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dùng URL trong clipboard" + "value" : "Tổng số truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "使用剪贴板中的 URL" + "value" : "总查询数" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "使用剪貼簿中的 URL" + "value" : "查詢總數" } } } }, - "Use environment variables in connection fields." : { + "Total rows written" : { + + }, + "Total size" : { + + }, + "Total Size" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 필드에서 환경 변수를 사용합니다." + "value" : "전체 크기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı alanlarında ortam değişkenlerini kullanın." + "value" : "Toplam Boyut" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sử dụng biến môi trường trong trường kết nối." + "value" : "Tổng kích thước" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在连接字段中使用环境变量。" + "value" : "总大小" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在連線欄位中使用環境變數。" + "value" : "總大小" } } } }, - "Use the instance's private IP address instead of its public IP." : { + "Total size in bytes" : { + + }, + "Total Time" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "인스턴스의 공용 IP 대신 비공개 IP 주소를 사용합니다." + "value" : "총 시간" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Örneğin genel IP'si yerine özel IP adresini kullanır." + "value" : "Toplam Süre" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dùng địa chỉ IP riêng của instance thay cho IP công khai." + "value" : "Tổng thời gian" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "使用该实例的专用 IP 地址,而不是公共 IP。" + "value" : "总耗时" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "使用該執行個體的專用 IP 位址,而不是公用 IP。" + "value" : "總耗時" } } } }, - "Use your Cursor subscription with no API key. Requires the Cursor CLI." : { + "TOTP" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "API 키 없이 Cursor 구독을 사용합니다. Cursor CLI가 필요합니다." + "value" : "TOTP" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "API anahtarı olmadan Cursor aboneliğinizi kullanın. Cursor CLI gerektirir." + "value" : "TOTP" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dùng gói đăng ký Cursor của bạn mà không cần khóa API. Yêu cầu Cursor CLI." + "value" : "TOTP" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无需 API 密钥即可使用你的 Cursor 订阅。需要 Cursor CLI。" + "value" : "TOTP" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無需 API 金鑰即可使用你的 Cursor 訂閱。需要 Cursor CLI。" + "value" : "TOTP" } } } }, - "Use your SuperGrok or X Premium+ subscription with no API key. Sign-in opens the Grok Build consent screen. This is an unofficial interface that may change." : { + "TOTP Secret" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "API 키 없이 SuperGrok 또는 X Premium+ 구독을 사용합니다. 로그인하면 Grok Build 동의 화면이 열립니다. 이는 변경될 수 있는 비공식 인터페이스입니다." + "value" : "TOTP 비밀 키" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "API anahtarı olmadan SuperGrok veya X Premium+ aboneliğinizi kullanın. Oturum açma, Grok Build onay ekranını açar. Bu, değişebilecek resmi olmayan bir arayüzdür." + "value" : "TOTP Secret" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dùng gói SuperGrok hoặc X Premium+ của bạn mà không cần khóa API. Khi đăng nhập sẽ mở màn hình đồng ý của Grok Build. Đây là giao diện không chính thức và có thể thay đổi." + "value" : "Mã bí mật TOTP" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无需 API 密钥即可使用你的 SuperGrok 或 X Premium+ 订阅。登录时会打开 Grok Build 的授权页面。这是非官方接口,可能会变动。" + "value" : "TOTP 密钥" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無需 API 金鑰即可使用你的 SuperGrok 或 X Premium+ 訂閱。登入時會開啟 Grok Build 的授權畫面。這是非官方介面,可能會變動。" + "value" : "TOTP 金鑰" } } } }, - "Use {{query}} for the current editor query, {{schema}} for the active schema, {{database}} for the active database name, and {{body}} for any text typed after the command." : { + "Tour the tables of a live database and how they relate, built from the current schema" : { + + }, + "Tradeoffs" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "현재 편집기 쿼리에는 {{query}}, 활성 스키마에는 {{schema}}, 활성 데이터베이스 이름에는 {{database}}, 명령 뒤에 입력한 텍스트에는 {{body}}를 사용하십시오." + "value" : "장단점" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geçerli düzenleyici sorgusu için {{query}}, etkin şema için {{schema}}, etkin veritabanı adı için {{database}} ve komuttan sonra yazılan metin için {{body}} kullanın." + "value" : "Ödünleşimler" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dùng {{query}} cho truy vấn hiện tại trong trình soạn, {{schema}} cho schema đang hoạt động, {{database}} cho tên cơ sở dữ liệu đang hoạt động, và {{body}} cho văn bản gõ sau lệnh." + "value" : "Đánh đổi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "使用 {{query}} 表示当前编辑器查询,{{schema}} 表示活动 Schema,{{database}} 表示活动数据库名称,{{body}} 表示命令后输入的任意文本。" + "value" : "取舍" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "使用 {{query}} 代表目前編輯器的查詢,{{schema}} 代表使用中的綱要,{{database}} 代表使用中的資料庫名稱,{{body}} 代表指令後輸入的任何文字。" + "value" : "取捨" } } } }, - "Use ~/.pgpass" : { - "extractionState" : "stale", + "transaction %@" : { + + }, + "Transaction action must be begin, commit, or rollback." : { + + }, + "Transaction Control" : { + + }, + "Tree" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "~/.pgpass 사용" + "value" : "트리" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "~/.pgpass kullan" + "value" : "Ağaç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sử dụng ~/.pgpass" + "value" : "Cây" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "使用 ~/.pgpass" + "value" : "树形" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "使用 ~/.pgpass" + "value" : "樹狀" } } } }, - "User" : { + "Trigger" : { + + }, + "Trigger body" : { + + }, + "Trigger name" : { + + }, + "Trigger operation failed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사용자" + "value" : "트리거 작업 실패" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kullanıcı" + "value" : "Tetikleyici işlemi başarısız oldu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Người dùng" + "value" : "Thao tác trigger thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "用户" + "value" : "触发器操作失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "使用者" + "value" : "觸發器操作失敗" } } } }, - "User Sessions" : { + "Trigger: %@" : { + + }, + "Triggers" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사용자 세션" + "value" : "트리거" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kullanıcı Oturumları" + "value" : "Tetikleyiciler" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phiên người dùng" + "value" : "Trigger" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "用户会话" + "value" : "触发器" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "使用者工作階段" + "value" : "觸發器" } } } }, - "User and role changes were not authorized" : { + "Triggers, sorted by table then name" : { + + }, + "true" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사용자 및 역할 변경이 승인되지 않았습니다" + "value" : "true" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kullanıcı ve rol değişikliklerine izin verilmedi" + "value" : "true" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Các thay đổi người dùng và vai trò không được cho phép" + "value" : "true" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "用户和角色更改未获授权" + "value" : "true" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "使用者與角色變更未獲授權" + "value" : "true" } } } }, - "User approval timed out after 30 seconds" : { + "TRUE" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사용자 승인이 30초 후 시간 초과되었습니다" + "value" : "TRUE" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kullanıcı onayı 30 saniye sonra zaman aşımına uğradı" + "value" : "TRUE" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Yêu cầu phê duyệt hết hạn sau 30 giây" + "value" : "TRUE" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "用户审批在 30 秒后超时" + "value" : "TRUE" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "使用者核准在 30 秒後逾時" + "value" : "TRUE" } } } }, - "User denied MCP access to this connection" : { + "Truncate" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사용자가 이 연결에 대한 MCP 접근을 거부했습니다" + "value" : "비우기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kullanıcı bu bağlantıya MCP erişimini reddetti" + "value" : "Truncate" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Người dùng đã từ chối quyền truy cập MCP cho kết nối này" + "value" : "Truncate" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "用户拒绝了此连接的 MCP 访问" + "value" : "清空" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "使用者拒絕了此連線的 MCP 存取" + "value" : "清空" } } } }, - "User-installed" : { + "Truncate %d tables" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사용자 설치" + "value" : "%d개 테이블 비우기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "User-installed" + "value" : "%d tabloyu boşalt" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Người dùng cài đặt" + "value" : "Xoá dữ liệu %d bảng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "用户安装" + "value" : "清空%d个表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "使用者安裝" + "value" : "清空 %d 個資料表" } } } }, - "User: %@" : { + "Truncate %lld tables" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사용자: %@" + "value" : "%lld개 테이블 비우기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kullanıcı: %@" + "value" : "Truncate %lld tablo" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Người dùng: %@" + "value" : "Làm trống %lld bảng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "用户:%@" + "value" : "清空 %lld 个表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "使用者:%@" + "value" : "清空 %lld 個資料表" } } } }, - "Username" : { + "Truncate all tables linked by foreign keys" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사용자 이름" + "value" : "외래 키로 연결된 모든 테이블 비우기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kullanıcı adı" + "value" : "Yabancı anahtarlarla bağlı tüm tabloları boşalt" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên người dùng" + "value" : "Xóa dữ liệu tất cả bảng liên kết bằng khóa ngoại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "用户名" + "value" : "清空所有通过外键关联的表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "使用者名稱" + "value" : "清空所有透過外鍵關聯的資料表" } } } }, - "Users & Roles" : { + "Truncate query results" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사용자 및 역할" + "value" : "쿼리 결과 자르기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kullanıcılar ve Roller" + "value" : "Sorgu sonuçlarını kırp" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Người dùng và vai trò" + "value" : "Cắt bớt kết quả truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "用户与角色" + "value" : "截断查询结果" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "使用者與角色" + "value" : "截斷查詢結果" } } } }, - "Uses this Mac's Application Default Credentials. Run `gcloud auth application-default login` first, or set GOOGLE_APPLICATION_CREDENTIALS." : { + "Truncate Table" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 Mac의 Application Default Credentials를 사용합니다. 먼저 `gcloud auth application-default login`을 실행하거나 GOOGLE_APPLICATION_CREDENTIALS를 설정하십시오." + "value" : "테이블 비우기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu Mac'teki Application Default Credentials'ı kullanır. Önce `gcloud auth application-default login` çalıştırın veya GOOGLE_APPLICATION_CREDENTIALS ayarlayın." + "value" : "Tabloyu Boşalt" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dùng Application Default Credentials của máy Mac này. Hãy chạy `gcloud auth application-default login` trước, hoặc đặt GOOGLE_APPLICATION_CREDENTIALS." + "value" : "Truncate bảng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "使用这台 Mac 的 Application Default Credentials。请先运行 `gcloud auth application-default login`,或设置 GOOGLE_APPLICATION_CREDENTIALS。" + "value" : "清空表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "使用這台 Mac 的 Application Default Credentials。請先執行 `gcloud auth application-default login`,或設定 GOOGLE_APPLICATION_CREDENTIALS。" + "value" : "清空資料表" } } } }, - "VERBOSE (print progress)" : { + "Truncate table '%@'" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "VERBOSE (진행 상황 출력)" + "value" : "'%@' 테이블 비우기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "VERBOSE (ilerlemeyi yazdır)" + "value" : "Truncate tablo '%@'" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "VERBOSE (in tiến trình)" + "value" : "Làm trống bảng '%@'" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "VERBOSE(打印进度)" + "value" : "清空表 '%@'" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "VERBOSE(輸出進度)" + "value" : "清空資料表 '%@'" } } } }, - "Validation Failed" : { + "truncated" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "유효성 검사 실패" + "value" : "잘림" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Doğrulama Başarısız" + "value" : "kısaltıldı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xác thực thất bại" + "value" : "đã cắt ngắn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "验证失败" + "value" : "已截断" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "驗證失敗" + "value" : "已截斷" } } } }, - "Value" : { + "Truncated — read only" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "값" + "value" : "잘림 — 읽기 전용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Değer" + "value" : "Kısaltıldı - salt okunur" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giá trị" + "value" : "Đã cắt bớt — chỉ đọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "值" + "value" : "已截断 - 只读" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "值" + "value" : "已截斷,唯讀" } } } }, - "Value Too Large" : { + "Truncated, read only" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "값이 너무 큼" + "value" : "잘림, 읽기 전용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Değer Çok Büyük" + "value" : "Kısaltıldı, salt okunur" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giá trị quá lớn" + "value" : "Đã cắt bớt, chỉ đọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "值太大" + "value" : "已截断,只读" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "值太大" + "value" : "已截斷,唯讀" } } } }, - "Value excluded from query" : { - "extractionState" : "stale", + "Trust" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리에서 제외된 값" + "value" : "신뢰" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgudan hariç tutulan değer" + "value" : "Güven" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giá trị bị loại khỏi truy vấn" + "value" : "Tin cậy" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "从查询中排除的值" + "value" : "信任" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已從查詢中排除的值" + "value" : "信任" } } } }, - "Value is not in the declared enum." : { + "Trust and Install" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "선언된 enum에 포함되지 않은 값입니다." + "value" : "신뢰하고 설치" + } + } + } + }, + "Trust plugins from %@?" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@의 플러그인을 신뢰하시겠습니까?" + } + } + } + }, + "Trusted Links" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "신뢰할 수 있는 링크" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Değer, bildirilen enum değerleri arasında değil." + "value" : "Güvenilen Bağlantılar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giá trị không nằm trong enum đã khai báo." + "value" : "Liên kết tin cậy" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "该值不在声明的枚举中。" + "value" : "受信任的链接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "該值不在宣告的列舉中。" + "value" : "受信任的連結" } } } }, - "Value is not in the declared set." : { + "Trusted Plugin Developers" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "선언된 집합에 포함되지 않은 값입니다." + "value" : "신뢰하는 플러그인 개발자" + } + } + } + }, + "Try a different search term" : { + "extractionState" : "stale", + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "다른 검색어를 입력해 보십시오" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Değer, bildirilen küme içinde değil." + "value" : "Try a different search term" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giá trị không nằm trong tập đã khai báo." + "value" : "Thử từ khoá tìm kiếm khác" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "该值不在声明的集合中。" + "value" : "尝试其他搜索词" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "該值不在宣告的集合中。" + "value" : "請嘗試其他搜尋字詞" } } } }, - "Value is required" : { + "Try a different search term." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "값이 필요합니다" + "value" : "다른 검색어를 입력해 보십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Değer gereklidir" + "value" : "Farklı bir arama terimi deneyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giá trị là bắt buộc" + "value" : "Thử từ khóa tìm kiếm khác." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "值为必填项" + "value" : "请尝试其他搜索词。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "值為必填" + "value" : "請嘗試其他搜尋詞。" } } } }, - "Value too large to parse" : { + "Try adjusting your search terms\nor date filter." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "구문 분석하기에 값이 너무 큽니다" + "value" : "검색어 또는 날짜 필터를\n조정해 보십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Değer ayrıştırılamayacak kadar büyük" + "value" : "Try adjusting your search terms\nor date filter." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giá trị quá lớn để phân tích" + "value" : "Thử điều chỉnh từ khoá tìm kiếm\nhoặc bộ lọc ngày." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "值太大,无法解析" + "value" : "尝试调整搜索词\n或日期筛选。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "值太大,無法解析" + "value" : "請嘗試調整搜尋字詞\n或日期篩選。" } } } }, - "Values from %d loaded rows" : { + "Try Again" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "불러온 행 %d개의 값" + "value" : "다시 시도" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yüklenen %d satırdan gelen değerler" + "value" : "Tekrar Dene" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giá trị từ %d dòng đã tải" + "value" : "Thử lại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "来自已加载的 %d 行的值" + "value" : "重试" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "來自已載入的 %d 列的值" + "value" : "重試" } } } }, - "Verification Code Rejected" : { - "extractionState" : "stale", + "Try Sample Database" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "인증 코드 거부됨" + "value" : "샘플 데이터베이스 사용해 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Doğrulama Kodu Reddedildi" + "value" : "Örnek Veritabanını Dene" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mã xác minh bị từ chối" + "value" : "Dùng thử cơ sở dữ liệu mẫu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "验证码被拒绝" + "value" : "试用示例数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "驗證碼被拒絕" + "value" : "試用範例資料庫" } } } }, - "Verification Code Required" : { - "extractionState" : "stale", + "Try the sample database, or click + above to add your own." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "인증 코드 필요" + "value" : "샘플 데이터베이스를 사용하거나 위의 +를 클릭하여 데이터베이스를 추가하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Doğrulama Kodu Gerekli" + "value" : "Örnek veritabanını deneyin veya kendi bağlantınızı eklemek için yukarıdaki + düğmesine tıklayın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cần mã xác minh" + "value" : "Dùng thử cơ sở dữ liệu mẫu, hoặc bấm + ở trên để thêm của riêng bạn." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "需要验证码" + "value" : "试用示例数据库,或点按上方的 + 添加你自己的数据库。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "需要驗證碼" + "value" : "試用範例資料庫,或點按上方的 + 來新增你自己的資料庫。" } } } }, - "Verification code rejected. Get a new code from your authenticator app and try again." : { + "Turn a described schema change into migration statements plus the rollback, for this engine" : { + + }, + "Turn a question into SQL" : { + + }, + "Turn loaded query results into native bar, line, area, and scatter charts." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "인증 코드가 거부되었습니다. 인증 앱에서 새 코드를 받아 다시 시도하십시오." + "value" : "불러온 쿼리 결과를 막대, 선, 영역, 분산형 차트로 그립니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Doğrulama kodu reddedildi. Kimlik doğrulayıcı uygulamanızdan yeni bir kod alın ve yeniden deneyin." + "value" : "Yüklenen sorgu sonuçlarını yerel çubuk, çizgi, alan ve dağılım grafiklerine dönüştürün." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mã xác minh bị từ chối. Lấy mã mới từ ứng dụng xác thực và thử lại." + "value" : "Chuyển kết quả truy vấn đã tải thành biểu đồ cột, đường, miền và phân tán theo chuẩn hệ thống." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "验证码被拒绝。请从验证器应用获取新验证码后重试。" + "value" : "将已加载的查询结果转换为原生柱状图、折线图、面积图和散点图。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "驗證碼被拒絕。請從你的驗證器應用程式取得新的驗證碼後再試一次。" + "value" : "將已載入的查詢結果轉換為原生長條圖、折線圖、面積圖和散佈圖。" } } } }, - "Verified" : { + "Turn one table's structure into a runnable checklist of data quality queries" : { + + }, + "Two-Factor Authentication" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "확인됨" + "value" : "2단계 인증" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Verified" + "value" : "İki Aşamalı Doğrulama" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã xác minh" + "value" : "Xác thực hai yếu tố" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已验证" + "value" : "双因素认证" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已驗證" + "value" : "雙重驗證" } } } }, - "Verified by TablePro" : { - "extractionState" : "stale", + "Type" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro에서 확인됨" + "value" : "유형" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Verified by TablePro" + "value" : "Tür" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã xác minh bởi TablePro" + "value" : "Kiểu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已通过 TablePro 验证" + "value" : "类型" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已通過 TablePro 驗證" + "value" : "類型" } } } }, - "Verify CA" : { + "Type %@ in the query to set where the cursor lands after keyword expansion." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "CA 확인" + "value" : "키워드 확장 후 커서가 놓일 위치를 지정하려면 쿼리에 %@을(를) 입력하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "CA Doğrula" + "value" : "İmlecin anahtar kelime genişletmesinden sonra nereye geleceğini belirlemek için sorguya %@ yazın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xác minh CA" + "value" : "Gõ %@ trong truy vấn để chỉ định vị trí con trỏ sau khi từ khóa được mở rộng." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "验证 CA" + "value" : "在查询中输入 %@,用于指定关键字展开后光标停留的位置。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "驗證 CA" + "value" : "在查詢中輸入 %@,用來指定關鍵字展開後游標停留的位置。" } } } }, - "Verify Identity" : { + "Type shortcut…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "신원 확인" + "value" : "단축키 입력…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kimliği Doğrula" + "value" : "Kısayolu yazın…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xác minh danh tính" + "value" : "Nhập phím tắt…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "验证身份" + "value" : "输入快捷键…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "驗證身分" + "value" : "輸入快速鍵…" } } } }, - "Verify certificate and hostname" : { + "Type: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "인증서 및 호스트 이름 확인" + "value" : "유형: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sertifikayı ve sunucu adını doğrula" + "value" : "Tür: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xác minh chứng chỉ và tên máy chủ" + "value" : "Loại: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "验证证书和主机名" + "value" : "类型:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "驗證憑證與主機名稱" + "value" : "類型:%@" } } } }, - "Verify server certificate" : { + "Typography" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "서버 인증서 확인" + "value" : "타이포그래피" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sunucu sertifikasını doğrula" + "value" : "Typography" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xác minh chứng chỉ máy chủ" + "value" : "Kiểu chữ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "验证服务器证书" + "value" : "排版" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "驗證伺服器憑證" + "value" : "排版" } } } }, - "Verify:" : { + "Unable to Load Privileges" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "확인:" + "value" : "권한을 불러올 수 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Doğrula:" + "value" : "Yetkiler Yüklenemedi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xác nhận:" + "value" : "Không tải được quyền" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "确认:" + "value" : "无法加载权限" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "確認:" + "value" : "無法載入權限" } } } }, - "Version" : { + "Unable to Load Users and Roles" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "버전" + "value" : "사용자 및 역할을 불러올 수 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sürüm" + "value" : "Kullanıcılar ve Roller Yüklenemedi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phiên bản" + "value" : "Không tải được người dùng và vai trò" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "版本" + "value" : "无法加载用户和角色" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "版本" + "value" : "無法載入使用者與角色" } } } }, - "Version %@" : { + "Unassigned" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "버전 %@" + "value" : "미지정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sürüm %@" + "value" : "Atanmamış" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phiên bản %@" + "value" : "Chưa gán" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "版本 %@" + "value" : "未分配" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "版本 %@" + "value" : "未指派" } } } }, - "Version %@ (Build %@)" : { - "extractionState" : "stale", + "Unchanged" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Version %1$@ (Build %2$@)" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "버전 %1$@ (빌드 %2$@)" + "value" : "변경 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Version %@ (Build %@)" + "value" : "Değişmedi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phiên bản %1$@ (Bản dựng %2$@)" + "value" : "Không đổi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "版本 %@(构建 %@)" + "value" : "未更改" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "版本 %1$@(組建 %2$@)" + "value" : "未變更" } } } }, - "Version:" : { - "extractionState" : "stale", + "Under MCP Servers click \"+ Add Custom Server\", select the Local tab, paste the JSON below, then click Add Server" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "버전:" + "value" : "MCP 서버에서 \"+ 사용자 지정 서버 추가\"를 클릭하고 로컬 탭을 선택한 다음 아래 JSON을 붙여넣고 서버 추가를 클릭하십시오" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Version:" + "value" : "MCP Servers bölümünde \"+ Add Custom Server\" düğmesine tıklayın, Local sekmesini seçin, aşağıdaki JSON'u yapıştırın, sonra Add Server düğmesine tıklayın" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phiên bản:" + "value" : "Trong mục MCP Servers, bấm \"+ Add Custom Server\", chọn tab Local, dán JSON bên dưới rồi bấm Add Server" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "版本:" + "value" : "在 MCP Servers 下点按 \"+ Add Custom Server\",选择 Local 标签页,粘贴下方的 JSON,然后点按 Add Server" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "版本:" + "value" : "在 MCP Servers 下點按「+ Add Custom Server」,選擇 Local 標籤頁,貼上下方的 JSON,然後點按 Add Server" } } } }, - "View" : { + "Underline" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "보기" + "value" : "밑줄" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Görünüm" + "value" : "Altı Çizili" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xem" + "value" : "Gạch chân" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "视图" + "value" : "下划线" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "檢視" + "value" : "底線" } } } }, - "View Activity…" : { + "Undo" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "활동 보기…" + "value" : "실행 취소" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Etkinliği Görüntüle…" + "value" : "Undo" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xem hoạt động…" + "value" : "Hoàn tác" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "查看活动…" + "value" : "撤销" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "檢視活動…" + "value" : "復原" } } } }, - "View ER Diagram" : { + "Undo Delete" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "ER 다이어그램 보기" + "value" : "삭제 실행 취소" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "ER Diyagramını Görüntüle" + "value" : "Silmeyi Geri Al" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xem sơ đồ ER" + "value" : "Hoàn tác xóa" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "查看 ER 图" + "value" : "撤销删除" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "檢視 ER 圖" + "value" : "復原刪除" } } } }, - "View Mode" : { + "Undo Staged Drop" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "보기 모드" + "value" : "대기 중인 삭제 실행 취소" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Görünüm Modu" + "value" : "Bekleyen Silmeyi Geri Al" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chế độ xem" + "value" : "Hoàn tác thao tác xoá đang chờ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "视图模式" + "value" : "撤销待执行的删除" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "檢視模式" + "value" : "復原待執行的刪除" } } } }, - "View Options" : { + "Unfold" : { + + }, + "Unfold All" : { + + }, + "Unified" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "보기 옵션" + "value" : "통합" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Görünüm Seçenekleri" + "value" : "Tek Sütun" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tuỳ chọn hiển thị" + "value" : "Gộp chung" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示选项" + "value" : "统一视图" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示選項" + "value" : "統一檢視" } } } }, - "View on GitHub" : { - "extractionState" : "stale", + "Uninstall" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "GitHub에서 보기" + "value" : "제거" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "GitHub'da Görüntüle" + "value" : "Kaldır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xem trên GitHub" + "value" : "Gỡ cài đặt" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在 GitHub 上查看" + "value" : "卸载" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在 GitHub 上檢視" + "value" : "解除安裝" } } } }, - "View: %@" : { - "extractionState" : "stale", + "Uninstall %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "보기: %@" + "value" : "%@ 제거" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "View: %@" + "value" : "%@ Kaldır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chế độ xem: %@" + "value" : "Gỡ cài đặt %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "视图:%@" + "value" : "卸载 %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "檢視表:%@" + "value" : "解除安裝 %@" } } } }, - "Views" : { + "Uninstall Failed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "뷰" + "value" : "제거 실패" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Görünümler" + "value" : "Kaldırma Başarısız" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Views" + "value" : "Gỡ cài đặt thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "视图" + "value" : "卸载失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "檢視表" + "value" : "解除安裝失敗" } } } }, - "Vim mode" : { + "Uninstall plugin" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Vim 모드" + "value" : "플러그인 제거" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Vim modu" + "value" : "Eklentiyi kaldır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chế độ Vim" + "value" : "Gỡ cài đặt plugin" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Vim 模式" + "value" : "卸载插件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Vim 模式" + "value" : "解除安裝外掛" } } } }, - "WARNING: Failed to re-enable foreign key checks: %@. Please manually verify FK constraints are enabled." : { - "extractionState" : "stale", + "Uninstall Plugin?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "경고: 외래 키 검사를 다시 활성화하지 못했습니다: %@. FK 제약 조건이 활성화되어 있는지 직접 확인하십시오." + "value" : "플러그인을 제거하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "WARNING: Failed to re-enable foreign key checks: %@. Please manually verify FK constraints are enabled." + "value" : "Eklenti kaldırılsın mı?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "CẢNH BÁO: Bật lại kiểm tra khóa ngoại thất bại: %@. Vui lòng kiểm tra thủ công rằng ràng buộc FK đã được bật." + "value" : "Gỡ cài đặt Plugin?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "警告:重新启用外键检查失败:%@。请手动验证外键约束已启用。" + "value" : "卸载插件?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "警告:重新啟用外鍵檢查失敗:%@。請手動確認外鍵約束已啟用。" + "value" : "解除安裝外掛?" } } } }, - "WARNING: The host key for '%@' has changed!\n\nThis could mean someone is doing something malicious, or the server was reinstalled.\n\nPrevious fingerprint: %@\nCurrent fingerprint: %@" : { + "Unique" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "WARNING: The host key for '%1$@' has changed!\n\nThis could mean someone is doing something malicious, or the server was reinstalled.\n\nPrevious fingerprint: %2$@\nCurrent fingerprint: %3$@" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "경고: '%1$@'의 호스트 키가 변경되었습니다!\n\n누군가 악의적인 작업을 시도하고 있거나 서버가 재설치되었을 수 있습니다.\n\n이전 지문: %2$@\n현재 지문: %3$@" + "value" : "고유" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "UYARI: '%@' sunucusunun anahtarı değişti!\n\nBu, birinin kötü niyetli bir şey yaptığı anlamına gelebilir veya sunucu yeniden kurulmuş olabilir.\n\nÖnceki parmak izi: %@\nGeçerli parmak izi: %@" + "value" : "Unique" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "CẢNH BÁO: Khóa máy chủ của '%@' đã thay đổi!\n\nĐiều này có thể do ai đó đang tấn công, hoặc máy chủ đã được cài đặt lại.\n\nVân tay trước: %@\nVân tay hiện tại: %@" + "value" : "Duy nhất" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "警告:主机 '%@' 的密钥已更改!\n\n这可能意味着有人进行恶意操作,或者服务器已被重新安装。\n\n之前的指纹:%@\n当前指纹:%@" + "value" : "唯一" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "警告:主機 '%1$@' 的主機金鑰已變更!\n\n這可能表示有人正進行惡意操作,或伺服器已重新安裝。\n\n先前的指紋:%2$@\n目前的指紋:%3$@" + "value" : "唯一" } } } }, - "WHERE clause" : { + "UNIQUE" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "WHERE 절" + "value" : "UNIQUE" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "WHERE ifadesi" + "value" : "UNIQUE" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mệnh đề WHERE" + "value" : "UNIQUE" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "WHERE 子句" + "value" : "UNIQUE" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "WHERE 子句" + "value" : "UNIQUE" } } } }, - "WHERE clause..." : { - "extractionState" : "stale", + "Unix epoch seconds" : { + + }, + "Unix Timestamp (milliseconds)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "WHERE 절..." + "value" : "Unix 타임스탬프(밀리초)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "WHERE clause..." + "value" : "Unix Zaman Damgası (milisaniye)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mệnh đề WHERE..." + "value" : "Unix Timestamp (mili giây)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "WHERE 子句..." + "value" : "Unix时间戳(毫秒)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "WHERE 子句..." + "value" : "Unix 時間戳記(毫秒)" } } } }, - "Waiting for your password" : { + "Unix Timestamp (seconds)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "암호 입력 대기 중" + "value" : "Unix 타임스탬프(초)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Parolanız bekleniyor" + "value" : "Unix Zaman Damgası (saniye)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang chờ mật khẩu của bạn" + "value" : "Unix Timestamp (giây)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在等待你的密码" + "value" : "Unix时间戳(秒)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在等待你的密碼" + "value" : "Unix 時間戳記(秒)" } } } }, - "Warehouse" : { + "unknown" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "웨어하우스" + "value" : "알 수 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Warehouse" + "value" : "bilinmiyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Warehouse" + "value" : "không rõ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "仓库" + "value" : "未知" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "倉儲" + "value" : "未知" } } } }, - "Warning" : { + "Unknown" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "경고" + "value" : "알 수 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Uyarı" + "value" : "Bilinmiyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cảnh báo" + "value" : "Không xác định" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "警告" + "value" : "未知" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "警告" + "value" : "未知" } } } }, - "Watch shared folders for connection files." : { + "Unknown client" : { + + }, + "Unknown column(s): %@" : { + + }, + "Unknown deep link host: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "공유 폴더에서 연결 파일을 감시합니다." + "value" : "알 수 없는 딥 링크 호스트: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Paylaşılan klasörleri bağlantı dosyaları için izleyin." + "value" : "Bilinmeyen deep link sunucusu: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Theo dõi thư mục chia sẻ để tìm tệp kết nối." + "value" : "Host deep link không xác định: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "监视共享文件夹中的连接文件。" + "value" : "未知的深层链接主机:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "監看共用資料夾中的連線檔案。" + "value" : "未知的深層連結主機:%@" } } } }, - "Watched folders are scanned for .tablepro files. Connections appear read only in the sidebar." : { + "Unknown error" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "감시 중인 폴더에서 .tablepro 파일을 검색합니다. 연결은 사이드바에 읽기 전용으로 표시됩니다." + "value" : "알 수 없는 오류" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İzlenen klasörler .tablepro dosyaları için taranır. Bağlantılar Sidebar'da salt okunur olarak görünür." + "value" : "Bilinmeyen hata" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Các thư mục theo dõi được quét để tìm file .tablepro. Kết nối hiển thị chỉ đọc trong thanh bên." + "value" : "Lỗi không xác định" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "会扫描受监视文件夹中的 .tablepro 文件。这些连接在侧边栏中以只读方式显示。" + "value" : "未知错误" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "受監視的資料夾會被掃描以尋找 .tablepro 檔案。這些連線會在側邊欄中以唯讀方式顯示。" + "value" : "未知錯誤" } } } }, - "Watched folders are scanned for .tablepro files. Connections appear read-only in the sidebar." : { - "extractionState" : "stale", + "Unknown explain variant '%@'." : { + + }, + "Unknown panel(s): %@" : { + + }, + "Unknown SSH Host" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "감시 중인 폴더에서 .tablepro 파일을 검색합니다. 연결은 사이드바에 읽기 전용으로 표시됩니다." + "value" : "알 수 없는 SSH 호스트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İzlenen klasörler .tablepro dosyaları için taranır. Bağlantılar kenar çubuğunda salt okunur olarak görünür." + "value" : "Bilinmeyen SSH Sunucusu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Các thư mục được theo dõi sẽ quét tệp .tablepro. Kết nối hiển thị chỉ đọc trên thanh bên." + "value" : "Máy chủ SSH không xác định" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "监视的文件夹会扫描 .tablepro 文件。连接在侧边栏中以只读方式显示。" + "value" : "未知 SSH 主机" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "受監看的資料夾會掃描 .tablepro 檔案。連線會在側邊欄中以唯讀方式顯示。" + "value" : "未知的 SSH 主機" } } } }, - "Website" : { - "extractionState" : "stale", + "Unknown URL scheme: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "웹사이트" + "value" : "알 수 없는 URL 스킴: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Website" + "value" : "Bilinmeyen URL şeması: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trang web" + "value" : "URL scheme không xác định: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "网站" + "value" : "未知的 URL scheme:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "網站" + "value" : "未知的 URL scheme:%@" } } } }, - "Welcome to TablePro" : { + "Unlicensed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro에 오신 것을 환영합니다" + "value" : "라이선스 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro'ya Hoş Geldiniz" + "value" : "Unlicensed" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chào mừng đến với TablePro" + "value" : "Chưa có giấy phép" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "欢迎使用 TablePro" + "value" : "未授权" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "歡迎使用 TablePro" + "value" : "未授權" } } } }, - "What you can do" : { + "Unlimited" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사용 가능한 기능" + "value" : "무제한" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Neler yapabilirsiniz" + "value" : "Sınırsız" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bạn có thể làm gì" + "value" : "Không giới hạn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "您可以做什么" + "value" : "无限制" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "你可以做什麼" + "value" : "無限制" } } } }, - "When TablePro starts:" : { + "Unpin" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro 시작 시:" + "value" : "고정 해제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro başlarken:" + "value" : "Sabitlemeyi Kaldır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khi TablePro khởi động:" + "value" : "Bỏ ghim" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro 启动时:" + "value" : "取消固定" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro 啟動時:" + "value" : "取消釘選" } } } }, - "When enabled, clicking a new table replaces the current clean table tab instead of opening a new tab" : { - "extractionState" : "stale", + "Unpin Result" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "활성화하면 새 테이블을 클릭할 때 새 탭을 여는 대신 현재의 변경 사항 없는 테이블 탭을 대체합니다" + "value" : "결과 고정 해제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "When enabled, clicking a new table replaces the current clean table tab instead of opening a new tab" + "value" : "Sonucun Sabitlemesini Kaldır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khi bật, nhấp vào bảng mới sẽ thay thế tab bảng trống hiện tại thay vì mở tab mới" + "value" : "Bỏ ghim kết quả" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "启用后,点击新表将替换当前空白表标签页,而不是打开新标签页" + "value" : "取消固定结果" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "啟用後,點按新的資料表會取代目前的乾淨資料表分頁,而不是開啟新分頁" + "value" : "取消釘選結果" } } } }, - "When enabled, clicking a table in the sidebar will replace the current tab if it has no unsaved changes and you haven't interacted with it (sorted, filtered, etc.)." : { - "extractionState" : "stale", + "Unsaved changes will be lost." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "활성화하면 사이드바에서 테이블을 클릭할 때 현재 탭에 저장하지 않은 변경 사항이 없고 정렬이나 필터링 등의 작업을 하지 않은 경우 해당 탭을 대체합니다." + "value" : "저장하지 않은 변경 사항이 사라집니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "When enabled, clicking a table in the sidebar will replace the current tab if it has no unsaved changes and you haven't interacted with it (sorted, filtered, etc.)." + "value" : "Kaydedilmemiş değişiklikler kaybolacak." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khi bật, nhấp vào bảng trong thanh bên sẽ thay thế tab hiện tại nếu không có thay đổi chưa lưu và bạn chưa tương tác với nó (sắp xếp, lọc, v.v.)." + "value" : "Các thay đổi chưa lưu sẽ bị mất." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "启用后,点击侧边栏中的表将替换当前标签页(如果没有未保存的更改且您未与之交互过,如排序、筛选等)。" + "value" : "未保存的更改将会丢失。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "啟用後,若目前分頁沒有未儲存的變更且你尚未與其互動(排序、篩選等),點按側邊欄中的資料表會取代目前的分頁。" + "value" : "未儲存的變更將會遺失。" } } } }, - "When enabled, this favorite is visible in all connections" : { + "Unset" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "활성화하면 이 즐겨찾기가 모든 연결에 표시됩니다" + "value" : "설정 안 됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "When enabled, this favorite is visible in all connections" + "value" : "Unset" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khi bật, mục yêu thích này hiển thị trong tất cả kết nối" + "value" : "Bỏ đặt" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "启用后,此收藏在所有连接中可见" + "value" : "取消设置" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "啟用後,此我的最愛會在所有連線中顯示" + "value" : "取消設定" } } } }, - "Wide-Column" : { + "Unsigned" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "와이드 컬럼" + "value" : "서명되지 않음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geniş Sütunlu" + "value" : "Unsigned" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Wide-Column" + "value" : "Không dấu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "宽列" + "value" : "无符号" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "寬欄" + "value" : "無符號" } } } }, - "Width" : { - "comment" : "Label for the width of a table.", - "isCommentAutoGenerated" : true, + "Unsupported connection scheme: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "너비" + "value" : "지원되지 않는 연결 스킴: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Genişlik" + "value" : "Desteklenmeyen bağlantı şeması: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chiều rộng" + "value" : "Scheme kết nối không được hỗ trợ: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "宽度" + "value" : "不支持的连接协议:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "寬度" + "value" : "不支援的連線協定:%@" } } } }, - "Will be created when you apply changes" : { + "Unsupported database scheme: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "변경 사항을 적용하면 생성됩니다" + "value" : "지원되지 않는 데이터베이스 스킴: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Değişiklikleri uyguladığınızda oluşturulacak" + "value" : "Desteklenmeyen veritabanı şeması: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sẽ được tạo khi bạn áp dụng thay đổi" + "value" : "Scheme cơ sở dữ liệu không được hỗ trợ: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "应用更改时将会创建" + "value" : "不支持的数据库方案:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "套用變更時將會建立" + "value" : "不支援的資料庫 scheme:%@" } } } }, - "Will be dropped when you apply changes" : { + "Unsupported database type: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "변경 사항을 적용하면 삭제됩니다" + "value" : "지원되지 않는 데이터베이스 유형: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Değişiklikleri uyguladığınızda silinecek" + "value" : "Desteklenmeyen veritabanı türü: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sẽ bị xoá khi bạn áp dụng thay đổi" + "value" : "Kiểu cơ sở dữ liệu không hỗ trợ: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "应用更改时将会删除" + "value" : "不支持的数据库类型:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "套用變更時將會刪除" + "value" : "不支援的資料庫類型:%@" } } } }, - "Window" : { + "Unsupported encryption version %d" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "윈도우" + "value" : "지원되지 않는 암호화 버전 %d" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Pencere" + "value" : "Desteklenmeyen şifreleme sürümü %d" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cửa sổ" + "value" : "Phiên bản mã hoá %d không được hỗ trợ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "窗口" + "value" : "不支持的加密版本%d" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "視窗" + "value" : "不支援的加密版本 %d" } } } }, - "Window Background" : { + "Unsupported encryption version %u" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "윈도우 배경" + "value" : "지원되지 않는 암호화 버전 %u" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Pencere Arka Planı" + "value" : "Desteklenmeyen şifreleme sürümü %u" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nền cửa sổ" + "value" : "Phiên bản mã hóa không được hỗ trợ %u" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "窗口背景" + "value" : "不支持的加密版本 %u" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "視窗背景" + "value" : "不支援的加密版本 %u" } } } }, - "Windows Authentication needs the server's hostname, not an IP address. Kerberos service principals aren't registered against IP addresses." : { + "Unsupported export format." : { + + }, + "Unsupported file format: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Windows 인증에는 IP 주소가 아닌 서버의 호스트 이름이 필요합니다. Kerberos 서비스 주체는 IP 주소에 등록되지 않습니다." + "value" : "지원되지 않는 파일 형식: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Windows Authentication, IP adresini değil sunucunun ana bilgisayar adını ister. Kerberos servis principal'ları IP adreslerine kayıtlı değildir." + "value" : "Desteklenmeyen dosya biçimi: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Windows Authentication cần tên máy chủ, không phải địa chỉ IP. Các service principal của Kerberos không đăng ký theo địa chỉ IP." + "value" : "Định dạng tệp không được hỗ trợ: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Windows 身份验证需要服务器的主机名,而不是 IP 地址。Kerberos 服务主体不会针对 IP 地址注册。" + "value" : "不支持的文件格式:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Windows 驗證需要伺服器的主機名稱,而不是 IP 位址。Kerberos 服務主體不會針對 IP 位址註冊。" + "value" : "不支援的檔案格式:%@" } } } }, - "With Headers" : { + "Unsupported image format" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "헤더 포함" + "value" : "지원되지 않는 이미지 형식" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Başlıklarla" + "value" : "Desteklenmeyen görüntü biçimi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kèm tiêu đề" + "value" : "Định dạng ảnh không được hỗ trợ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "含表头" + "value" : "不支持的图像格式" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "含標題列" + "value" : "不支援的影像格式" } } } }, - "Word wrap" : { + "Unsupported intent: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "자동 줄 바꿈" + "value" : "지원되지 않는 인텐트: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sözcük kaydırma" + "value" : "Desteklenmeyen niyet: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tự động xuống dòng" + "value" : "Intent không hỗ trợ: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "自动换行" + "value" : "不支持的 intent:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "自動換行" + "value" : "不支援的 intent:%@" } } } }, - "Wrap in transaction (BEGIN/COMMIT)" : { + "Unsupported MongoDB method: %@" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "트랜잭션으로 감싸기(BEGIN/COMMIT)" + "value" : "지원되지 않는 MongoDB 메서드: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İşlem içine al (BEGIN/COMMIT)" + "value" : "Unsupported MongoDB method: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bọc trong giao dịch (BEGIN/COMMIT)" + "value" : "Phương thức MongoDB không được hỗ trợ: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "包裹在事务中 (BEGIN/COMMIT)" + "value" : "不支持的 MongoDB 方法:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "包覆於交易中 (BEGIN/COMMIT)" + "value" : "不支援的 MongoDB 方法:%@" } } } }, - "Write Concern" : { - "extractionState" : "stale", + "Unsupported schema operation: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쓰기 고려" + "value" : "지원되지 않는 스키마 작업: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yazma Endişesi" + "value" : "Desteklenmeyen şema işlemi: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Write Concern" + "value" : "Thao tác schema không được hỗ trợ: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Write Concern" + "value" : "不支持的 Schema 操作:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Write Concern" + "value" : "不支援的綱要操作:%@" } } } }, - "Write operations are not permitted for this client" : { + "Unsupported token: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 클라이언트에는 쓰기 작업이 허용되지 않습니다" + "value" : "지원되지 않는 토큰: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu istemci için yazma işlemlerine izin verilmiyor" + "value" : "Desteklenmeyen belirteç: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thao tác ghi không được phép với client này" + "value" : "Token không được hỗ trợ: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此客户端不允许写入操作" + "value" : "不支持的标记:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此用戶端不允許寫入操作" + "value" : "不支援的權杖:%@" } } } }, - "X Axis" : { + "Unterminated comment" : { "localizations" : { "ko" : { "stringUnit" : { - "value" : "X축", - "state" : "translated" + "state" : "translated", + "value" : "종료되지 않은 주석" } }, "tr" : { "stringUnit" : { - "value" : "X Ekseni", - "state" : "translated" + "state" : "translated", + "value" : "Sonlandırılmamış yorum" } }, "vi" : { "stringUnit" : { - "value" : "Trục X", - "state" : "translated" + "state" : "translated", + "value" : "Ghi chú chưa đóng" } }, "zh-Hans" : { "stringUnit" : { - "value" : "X 轴", - "state" : "translated" + "state" : "translated", + "value" : "注释未闭合" } }, "zh-Hant" : { "stringUnit" : { - "value" : "X 軸", - "state" : "translated" + "state" : "translated", + "value" : "註解未結束" } } } }, - "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX" : { + "Untitled" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX" + "value" : "제목 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX" + "value" : "Untitled" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX" + "value" : "Không có tiêu đề" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX" + "value" : "未命名" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX" + "value" : "未命名" } } } }, - "Y Axis" : { + "Update" : { "localizations" : { "ko" : { "stringUnit" : { - "value" : "Y축", - "state" : "translated" + "state" : "translated", + "value" : "업데이트" } }, "tr" : { "stringUnit" : { - "value" : "Y Ekseni", - "state" : "translated" + "state" : "translated", + "value" : "Güncelle" } }, "vi" : { "stringUnit" : { - "value" : "Trục Y", - "state" : "translated" + "state" : "translated", + "value" : "Cập nhật" } }, "zh-Hans" : { "stringUnit" : { - "value" : "Y 轴", - "state" : "translated" + "state" : "translated", + "value" : "更新" } }, "zh-Hant" : { "stringUnit" : { - "value" : "Y 軸", - "state" : "translated" + "state" : "translated", + "value" : "更新" } } } }, - "Yellow" : { + "Update %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "노란색" + "value" : "%@ 업데이트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sarı" + "value" : "%@ Güncelle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Vàng" + "value" : "Cập nhật %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "黄色" + "value" : "更新 %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "黃色" + "value" : "更新 %@" } } } }, - "Yesterday" : { + "Update %@ plugin" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "어제" + "value" : "%@ 플러그인 업데이트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dün" + "value" : "%@ eklentisini güncelle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hôm qua" + "value" : "Cập nhật plugin %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "昨天" + "value" : "更新 %@ 插件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "昨天" + "value" : "更新 %@ 外掛" } } } }, - "You" : { + "Update Now" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "나" + "value" : "지금 업데이트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Siz" + "value" : "Şimdi Güncelle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bạn" + "value" : "Cập nhật ngay" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "你" + "value" : "立即更新" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "你" + "value" : "立即更新" } } } }, - "You can re-enable this in Settings" : { - "extractionState" : "stale", + "Update Plugin" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "설정에서 다시 활성화할 수 있습니다" + "value" : "플러그인 업데이트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bunu Ayarlar'dan tekrar etkinleştirebilirsiniz" + "value" : "Eklentiyi Güncelle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bạn có thể bật lại trong Cài đặt" + "value" : "Cập nhật plugin" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "您可以在设置中重新启用" + "value" : "更新插件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "你可以在「設定」中重新啟用" + "value" : "更新外掛" } } } }, - "You edit these inline in the grid and filter bar. Reset a table here to return it to defaults." : { - "extractionState" : "stale", + "Update row %@ in %@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Update row %1$@ in %2$@" + } + } + } + }, + "Update rows that differ" : { + + }, + "UPDATE Statement(s)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "그리드와 필터 막대에서 인라인으로 편집할 수 있습니다. 테이블을 기본값으로 되돌리려면 여기서 재설정하십시오." + "value" : "UPDATE 문" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bunları doğrudan tabloda ve filtre çubuğunda düzenlersiniz. Bir tabloyu varsayılana döndürmek için buradan sıfırlayın." + "value" : "UPDATE Statement(s)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bạn chỉnh những mục này ngay trong lưới và thanh bộ lọc. Đặt lại một bảng ở đây để đưa nó về mặc định." + "value" : "Câu lệnh UPDATE" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "你可以直接在数据网格和筛选栏中修改这些设置。在这里重置某个表即可恢复默认值。" + "value" : "UPDATE 语句" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "你可以直接在資料格與篩選列中修改這些設定。在這裡重設某個資料表即可回復預設值。" + "value" : "UPDATE 陳述式" } } } }, - "You have no saved queries to publish." : { + "Update TablePro" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "게시할 저장된 쿼리가 없습니다." + "value" : "TablePro 업데이트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yayınlanacak kayıtlı sorgunuz yok." + "value" : "TablePro'yu Güncelle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bạn không có truy vấn đã lưu nào để xuất bản." + "value" : "Cập nhật TablePro" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "你没有可发布的已保存查询。" + "value" : "更新 TablePro" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "你沒有可發佈的已儲存查詢。" + "value" : "更新 TablePro" } } } }, - "You have unsaved changes" : { + "Update to v%@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "저장하지 않은 변경 사항이 있습니다" + "value" : "버전 v%@ 업데이트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kaydedilmemiş değişiklikleriniz var" + "value" : "v%@ sürümüne güncelle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bạn có thay đổi chưa lưu" + "value" : "Cập nhật lên v%@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "您有未保存的更改" + "value" : "更新到 v%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "你有未儲存的變更" + "value" : "更新至 v%@" } } } }, - "You have unsaved changes to the table structure. Refreshing will discard these changes." : { + "Updated" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 구조에 저장하지 않은 변경 사항이 있습니다. 새로 고치면 변경 사항이 사라집니다." + "value" : "업데이트됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tablo yapısında kaydedilmemiş değişiklikleriniz var. Yenileme bu değişiklikleri siler." + "value" : "Updated" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bạn có thay đổi chưa lưu trong cấu trúc bảng. Làm mới sẽ hủy các thay đổi này." + "value" : "Đã cập nhật" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "您有未保存的表结构更改。刷新将丢弃这些更改。" + "value" : "已更新" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "你對資料表結構有未儲存的變更。重新整理會捨棄這些變更。" + "value" : "已更新" } } } }, - "You will be prompted for a verification code each time you connect." : { - "extractionState" : "stale", + "Updated %@ row" : { + + }, + "Updated %@ rows" : { + + }, + "Updated to v%@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결할 때마다 인증 코드를 입력해야 합니다." + "value" : "버전 v%@ 업데이트됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Her bağlandığınızda doğrulama kodu istenecektir." + "value" : "v%@ sürümüne güncellendi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bạn sẽ được yêu cầu nhập mã xác minh mỗi lần kết nối." + "value" : "Đã cập nhật lên v%@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "每次连接时都会要求您输入验证码。" + "value" : "已更新到 v%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "每次連線時都會要求你輸入驗證碼。" + "value" : "已更新至 v%@" } } } }, - "You're all set!" : { + "Updating this plugin didn't finish. TablePro will try again the next time it launches." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 준비가 완료되었습니다!" + "value" : "이 플러그인의 업데이트가 완료되지 않았습니다. 다음에 TablePro를 실행할 때 다시 시도합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Hazırsınız!" + "value" : "Bu eklentinin güncellenmesi tamamlanmadı. TablePro bir sonraki açılışta yeniden deneyecek." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bạn đã sẵn sàng!" + "value" : "Cập nhật plugin này chưa hoàn tất. TablePro sẽ thử lại lần khởi động tiếp theo." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "一切就绪!" + "value" : "此插件更新未完成。TablePro 将在下次启动时重试。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "一切就緒!" + "value" : "此外掛的更新尚未完成。TablePro 會在下次啟動時重試。" } } } }, - "Your Changes" : { + "Updating…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "변경 사항" + "value" : "업데이트 중…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Değişiklikleriniz" + "value" : "Güncelleniyor…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thay đổi của bạn" + "value" : "Đang cập nhật…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "你的更改" + "value" : "正在更新…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "你的變更" + "value" : "正在更新…" } } } }, - "Your changes will be lost if you don't save them." : { + "Upgrade Plan" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "저장하지 않으면 변경 사항이 사라집니다." + "value" : "요금제 업그레이드" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kaydetmezseniz değişiklikleriniz kaybolacaktır." + "value" : "Planı Yükselt" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thay đổi của bạn sẽ bị mất nếu không lưu." + "value" : "Nâng cấp gói" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "如果不保存,您的更改将会丢失。" + "value" : "升级方案" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "若不儲存,你的變更將會遺失。" + "value" : "升級方案" } } } }, - "Your connections file was changed outside TablePro, so this connection's password source was not run. Open the connection and save it again to confirm the change." : { - "comment" : "Error message when the app is not trusted to access the keychain.", - "isCommentAutoGenerated" : true, + "Upper bound, for BETWEEN" : { + + }, + "Uptime" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro 외부에서 연결 파일이 변경되어 이 연결의 암호 소스를 실행하지 않았습니다. 연결을 열고 다시 저장하여 변경 사항을 확인하십시오." + "value" : "가동 시간" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı dosyanız TablePro dışında değiştirildi, bu yüzden bu bağlantının parola kaynağı çalıştırılmadı. Değişikliği onaylamak için bağlantıyı açıp yeniden kaydedin." + "value" : "Çalışma Süresi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tệp kết nối của bạn đã bị thay đổi bên ngoài TablePro, nên nguồn mật khẩu của kết nối này không được chạy. Hãy mở kết nối và lưu lại để xác nhận thay đổi." + "value" : "Thời gian hoạt động" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "你的连接文件在 TablePro 之外被修改过,因此没有运行此连接的密码来源。请打开该连接并重新保存以确认这次更改。" + "value" : "运行时间" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "你的連線檔案在 TablePro 之外被修改過,因此沒有執行此連線的密碼來源。請開啟該連線並重新儲存以確認這次變更。" + "value" : "運作時間" } } } }, - "Your database schema and query data will be sent to the AI provider for analysis. Allow for this connection?" : { + "US Long (12/31/2024 11:59:59 PM)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "분석을 위해 데이터베이스 스키마와 쿼리 데이터가 AI 제공업체로 전송됩니다. 이 연결에 대해 허용하시겠습니까?" + "value" : "미국식 긴 형식(12/31/2024 11:59:59 PM)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı şemanız ve sorgu verileriniz analiz için yapay zeka sağlayıcısına gönderilecek. Bu bağlantı için izin verilsin mi?" + "value" : "US Long (12/31/2024 11:59:59 PM)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lược đồ cơ sở dữ liệu và dữ liệu truy vấn sẽ được gửi đến nhà cung cấp AI để phân tích. Cho phép kết nối này?" + "value" : "Mỹ dài (12/31/2024 11:59:59 PM)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "您的数据库结构和查询数据将被发送给 AI 提供商进行分析。是否允许此连接?" + "value" : "美式长格式 (12/31/2024 11:59:59 PM)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "你的資料庫綱要與查詢資料將傳送給 AI 供應商進行分析。要允許此連線嗎?" + "value" : "美式長格式 (12/31/2024 11:59:59 PM)" } } } }, - "Your executed queries will\nappear here for quick access." : { - "extractionState" : "stale", + "US Short (12/31/2024)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "실행한 쿼리가 빠른 접근을 위해\n여기에 표시됩니다." + "value" : "미국식 짧은 형식(12/31/2024)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Çalıştırdığınız sorgular\nhızlı erişim için burada görünecektir." + "value" : "US Short (12/31/2024)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Các truy vấn đã thực thi sẽ\nxuất hiện ở đây để truy cập nhanh." + "value" : "Mỹ ngắn (12/31/2024)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已执行的查询将\n显示在此处以便快速访问。" + "value" : "美式短格式 (12/31/2024)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "你執行過的查詢將\n顯示於此處以便快速存取。" + "value" : "美式短格式 (12/31/2024)" } } } }, - "Your license has expired" : { + "Use" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "라이선스가 만료되었습니다" + "value" : "사용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Lisansınızın süresi doldu" + "value" : "Kullan" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giấy phép của bạn đã hết hạn" + "value" : "Dùng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "您的许可证已过期" + "value" : "使用" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "你的授權已過期" + "value" : "使用" } } } }, - "Your prompts, schema, and query text reach Anthropic under your consumer plan and its privacy settings, not the API's commercial terms." : { + "Use “%@” anyway" : { + + }, + "Use {{query}} for the current editor query, {{schema}} for the active schema, {{database}} for the active database name, and {{body}} for any text typed after the command." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "프롬프트, 스키마 및 쿼리 텍스트는 API의 상업용 약관이 아닌 소비자 요금제와 해당 개인정보 보호 설정에 따라 Anthropic으로 전송됩니다." + "value" : "현재 편집기 쿼리에는 {{query}}, 활성 스키마에는 {{schema}}, 활성 데이터베이스 이름에는 {{database}}, 명령 뒤에 입력한 텍스트에는 {{body}}를 사용하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İstemleriniz, şemanız ve sorgu metniniz Anthropic'e API'nin ticari koşullarıyla değil, tüketici planınız ve onun gizlilik ayarları kapsamında ulaşır." + "value" : "Geçerli düzenleyici sorgusu için {{query}}, etkin şema için {{schema}}, etkin veritabanı adı için {{database}} ve komuttan sonra yazılan metin için {{body}} kullanın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Câu lệnh, schema và nội dung truy vấn của bạn đến Anthropic theo gói người dùng và các thiết lập riêng tư của gói đó, không phải theo điều khoản thương mại của API." + "value" : "Dùng {{query}} cho truy vấn hiện tại trong trình soạn, {{schema}} cho schema đang hoạt động, {{database}} cho tên cơ sở dữ liệu đang hoạt động, và {{body}} cho văn bản gõ sau lệnh." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "你的提示词、Schema 和查询文本按你的消费者套餐及其隐私设置发送到 Anthropic,而不是按 API 的商业条款。" + "value" : "使用 {{query}} 表示当前编辑器查询,{{schema}} 表示活动 Schema,{{database}} 表示活动数据库名称,{{body}} 表示命令后输入的任意文本。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "你的提示詞、綱要和查詢文字會依你的消費者方案及其隱私設定傳送到 Anthropic,而不是依 API 的商業條款。" + "value" : "使用 {{query}} 代表目前編輯器的查詢,{{schema}} 代表使用中的綱要,{{database}} 代表使用中的資料庫名稱,{{body}} 代表指令後輸入的任何文字。" } } } }, - "Your subscription is governed by Anthropic's Consumer Terms and Usage Policy. Read them and decide whether this use fits. TablePro cannot grant rights under them." : { + "Use % to allow any host." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "구독에는 Anthropic의 소비자 약관 및 사용 정책이 적용됩니다. 해당 내용을 읽고 이 사용 방식이 적합한지 판단하십시오. TablePro는 해당 약관에 따른 권리를 부여할 수 없습니다." + "value" : "모든 호스트를 허용하려면 %를 사용하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Aboneliğiniz Anthropic'in Tüketici Koşulları ve Kullanım Politikası'na tabidir. Bunları okuyun ve bu kullanımın uygun olup olmadığına karar verin. TablePro bu koşullar kapsamında size hak veremez." + "value" : "Herhangi bir sunucuya izin vermek için % kullanın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gói đăng ký của bạn chịu sự điều chỉnh của Điều khoản Người dùng và Chính sách Sử dụng của Anthropic. Hãy đọc và tự quyết định cách dùng này có phù hợp không. TablePro không thể cấp quyền theo các điều khoản đó." + "value" : "Dùng % để cho phép mọi máy chủ." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "你的订阅受 Anthropic 的消费者条款和使用政策约束。请阅读这些条款,自行判断这种用法是否合适。TablePro 无法据此授予你任何权利。" + "value" : "使用 % 表示允许任意主机。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "你的訂閱受 Anthropic 的消費者條款與使用政策約束。請閱讀這些條款,自行判斷這種用法是否合適。TablePro 無法據此授予你任何權利。" + "value" : "使用 % 表示允許任何主機。" } } } }, - "Your team can now see %d shared connections. Passwords were not included." : { + "Use ~/.pgpass" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이제 팀에서 공유 연결 %d개를 볼 수 있습니다. 암호는 포함되지 않았습니다." + "value" : "~/.pgpass 사용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Takımınız artık %d paylaşılan bağlantıyı görebiliyor. Parolalar dahil edilmedi." + "value" : "~/.pgpass kullan" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhóm của bạn giờ có thể thấy %d kết nối được chia sẻ. Mật khẩu không được đưa vào." + "value" : "Sử dụng ~/.pgpass" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "你的团队现在可以看到 %d 个共享连接。密码未被包含。" + "value" : "使用 ~/.pgpass" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "你的團隊現在可以看到 %d 個共享連線。密碼未包含在內。" + "value" : "使用 ~/.pgpass" } } } }, - "Your team will see the names and SQL of %d saved queries. This replaces what you previously published." : { + "Use as Active %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "팀에서 저장된 쿼리 %d개의 이름과 SQL을 볼 수 있습니다. 이전에 게시한 내용은 이 내용으로 대체됩니다." + "value" : "활성 %@(으)로 사용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Takımınız %d kayıtlı sorgunun adlarını ve SQL'ini görecek. Bu, daha önce yayınladıklarınızın yerini alır." + "value" : "Etkin %@ Olarak Kullan" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhóm của bạn sẽ thấy tên và SQL của %d truy vấn đã lưu. Nội dung này thay thế những gì bạn đã xuất bản trước đó." + "value" : "Dùng làm %@ hiện hành" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "你的团队将看到 %d 条已保存查询的名称和 SQL。这会替换你之前发布的内容。" + "value" : "设为当前%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "你的團隊將看到 %d 條已儲存查詢的名稱和 SQL。這會取代你先前發佈的內容。" + "value" : "設為使用中的%@" } } } }, - "Zed" : { + "Use as Active Database" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Zed" + "value" : "활성 데이터베이스로 사용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Zed" + "value" : "Etkin Veritabanı Olarak Kullan" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Zed" + "value" : "Dùng làm cơ sở dữ liệu hoạt động" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Zed" + "value" : "用作活动数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Zed" + "value" : "用作使用中的資料庫" } } } }, - "Zero Fill" : { + "Use as Active Schema" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "0 채우기" + "value" : "활성 스키마로 사용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sıfırla Doldur" + "value" : "Etkin Şema Olarak Kullan" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Điền số 0" + "value" : "Dùng làm schema hoạt động" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "零填充" + "value" : "用作活动 Schema" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "零填補" + "value" : "用作使用中的綱要" } } } }, - "Zoom" : { + "Use at least 8 characters" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "확대/축소" + "value" : "8자 이상 사용하십시오" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yakınlaştır" + "value" : "En az 8 karakter kullanın" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thu phóng" + "value" : "Dùng ít nhất 8 ký tự" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "缩放" + "value" : "请至少使用 8 个字符" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "縮放" + "value" : "請至少使用 8 個字元" } } } }, - "Zoom In" : { + "Use clipboard URL" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "확대" + "value" : "클립보드 URL 사용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yakınlaştır" + "value" : "Panodaki URL'yi kullan" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phóng to" + "value" : "Dùng URL trong clipboard" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "放大" + "value" : "使用剪贴板中的 URL" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "放大" + "value" : "使用剪貼簿中的 URL" } } } }, - "Zoom Out" : { + "Use Default" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "축소" + "value" : "기본값 사용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Uzaklaştır" + "value" : "Varsayılanı Kullan" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thu nhỏ" + "value" : "Mặc định" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "缩小" + "value" : "使用默认" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "縮小" + "value" : "使用預設" } } } }, - "Zoom in" : { + "Use DuckLake" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "확대" + "value" : "DuckLake 사용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yakınlaştır" + "value" : "DuckLake Kullan" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phóng to" + "value" : "Dùng DuckLake" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "放大" + "value" : "使用 DuckLake" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "放大" + "value" : "使用 DuckLake" } } } }, - "Zoom out" : { - "extractionState" : "stale", + "Use environment variables in connection fields." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "축소" + "value" : "연결 필드에서 환경 변수를 사용합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Uzaklaştır" + "value" : "Bağlantı alanlarında ortam değişkenlerini kullanın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thu nhỏ" + "value" : "Sử dụng biến môi trường trong trường kết nối." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "缩小" + "value" : "在连接字段中使用环境变量。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "縮小" + "value" : "在連線欄位中使用環境變數。" } } } }, - "admin" : { + "Use IAM database authentication" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "admin" + "value" : "IAM 데이터베이스 인증 사용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "yönetici" + "value" : "IAM veritabanı kimlik doğrulamasını kullan" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "admin" + "value" : "Dùng xác thực cơ sở dữ liệu IAM" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "admin" + "value" : "使用 IAM 数据库认证" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "admin" + "value" : "使用 IAM 資料庫驗證" } } } }, - "and" : { + "Use Password File" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "그리고" + "value" : "암호 파일 사용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "ve" + "value" : "Parola Dosyası Kullan" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "và" + "value" : "Dùng file mật khẩu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "和" + "value" : "使用密码文件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "且" + "value" : "使用密碼檔案" } } } }, - "avg %@" : { - "comment" : "Average duration, %@ is a duration", + "Use Required for AstraDB, DataStax Astra, and other hosted Cassandra deployments." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "평균 %@" + "value" : "AstraDB, DataStax Astra 및 기타 호스팅된 Cassandra 배포에서는 Required를 사용하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "ort. %@" + "value" : "AstraDB, DataStax Astra ve diğer barındırılan Cassandra dağıtımları için Required kullanın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "trung bình %@" + "value" : "Dùng Required cho AstraDB, DataStax Astra và các triển khai Cassandra được lưu trữ khác." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "平均 %@" + "value" : "对于 AstraDB、DataStax Astra 和其他托管 Cassandra 部署,请使用“必需”。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "平均 %@" + "value" : "對於 AstraDB、DataStax Astra 和其他託管的 Cassandra 部署,請使用「必要」。" } } } }, - "bastion.example.com" : { + "Use Required for ClickHouse Cloud and other managed instances." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "bastion.example.com" + "value" : "ClickHouse Cloud 및 기타 관리형 인스턴스에서는 Required를 사용하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "bastion.example.com" + "value" : "ClickHouse Cloud ve diğer yönetilen örnekler için Required kullanın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "bastion.example.com" + "value" : "Dùng Required cho ClickHouse Cloud và các phiên bản được quản lý khác." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "bastion.example.com" + "value" : "对于 ClickHouse Cloud 和其他托管实例,请使用“必需”。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "bastion.example.com" + "value" : "對於 ClickHouse Cloud 和其他託管執行個體,請使用「必要」。" } } } }, - "between" : { + "Use SSL if available" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사이" + "value" : "사용 가능한 경우 SSL 사용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "between" + "value" : "Varsa SSL kullan" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "giữa" + "value" : "Sử dụng SSL nếu có" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "介于" + "value" : "可用时使用 SSL" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "介於" + "value" : "可用時使用 SSL" } } } }, - "cloud-sql-proxy not found. Install it with `brew install cloud-sql-proxy`, download it above, or choose the binary." : { + "Use the instance's private IP address instead of its public IP." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "cloud-sql-proxy를 찾을 수 없습니다. `brew install cloud-sql-proxy`로 설치하거나 위에서 다운로드하거나 바이너리를 선택하십시오." + "value" : "인스턴스의 공용 IP 대신 비공개 IP 주소를 사용합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "cloud-sql-proxy bulunamadı. `brew install cloud-sql-proxy` ile yükleyin, yukarıdan indirin veya çalıştırılabilir dosyayı seçin." + "value" : "Örneğin genel IP'si yerine özel IP adresini kullanır." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy cloud-sql-proxy. Cài bằng `brew install cloud-sql-proxy`, tải xuống ở trên, hoặc chọn tệp thực thi." + "value" : "Dùng địa chỉ IP riêng của instance thay cho IP công khai." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未找到 cloud-sql-proxy。可用 `brew install cloud-sql-proxy` 安装、在上方下载,或直接选择可执行文件。" + "value" : "使用该实例的专用 IP 地址,而不是公共 IP。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "找不到 cloud-sql-proxy。可用 `brew install cloud-sql-proxy` 安裝、在上方下載,或直接選擇執行檔。" + "value" : "使用該執行個體的專用 IP 位址,而不是公用 IP。" } } } }, - "cloud-sql-proxy was not found. Install it with `brew install cloud-sql-proxy`, or download it in the Cloud SQL Auth Proxy settings." : { + "Use your Cursor subscription with no API key. Requires the Cursor CLI." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "cloud-sql-proxy를 찾을 수 없습니다. `brew install cloud-sql-proxy`로 설치하거나 Cloud SQL Auth Proxy 설정에서 다운로드하십시오." + "value" : "API 키 없이 Cursor 구독을 사용합니다. Cursor CLI가 필요합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "cloud-sql-proxy bulunamadı. `brew install cloud-sql-proxy` ile yükleyin veya Cloud SQL Auth Proxy ayarlarından indirin." + "value" : "API anahtarı olmadan Cursor aboneliğinizi kullanın. Cursor CLI gerektirir." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy cloud-sql-proxy. Cài bằng `brew install cloud-sql-proxy`, hoặc tải xuống trong cài đặt Cloud SQL Auth Proxy." + "value" : "Dùng gói đăng ký Cursor của bạn mà không cần khóa API. Yêu cầu Cursor CLI." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未找到 cloud-sql-proxy。可用 `brew install cloud-sql-proxy` 安装,或在 Cloud SQL Auth Proxy 设置中下载。" + "value" : "无需 API 密钥即可使用你的 Cursor 订阅。需要 Cursor CLI。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "找不到 cloud-sql-proxy。可用 `brew install cloud-sql-proxy` 安裝,或在 Cloud SQL Auth Proxy 設定中下載。" + "value" : "無需 API 金鑰即可使用你的 Cursor 訂閱。需要 Cursor CLI。" } } } }, - "cloudflared failed to start." : { + "Use your SuperGrok or X Premium+ subscription with no API key. Sign-in opens the Grok Build consent screen. This is an unofficial interface that may change." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "cloudflared를 시작하지 못했습니다." + "value" : "API 키 없이 SuperGrok 또는 X Premium+ 구독을 사용합니다. 로그인하면 Grok Build 동의 화면이 열립니다. 이는 변경될 수 있는 비공식 인터페이스입니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "cloudflared başlatılamadı." + "value" : "API anahtarı olmadan SuperGrok veya X Premium+ aboneliğinizi kullanın. Oturum açma, Grok Build onay ekranını açar. Bu, değişebilecek resmi olmayan bir arayüzdür." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "cloudflared không khởi động được." + "value" : "Dùng gói SuperGrok hoặc X Premium+ của bạn mà không cần khóa API. Khi đăng nhập sẽ mở màn hình đồng ý của Grok Build. Đây là giao diện không chính thức và có thể thay đổi." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "cloudflared启动失败。" + "value" : "无需 API 密钥即可使用你的 SuperGrok 或 X Premium+ 订阅。登录时会打开 Grok Build 的授权页面。这是非官方接口,可能会变动。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "cloudflared 啟動失敗。" + "value" : "無需 API 金鑰即可使用你的 SuperGrok 或 X Premium+ 訂閱。登入時會開啟 Grok Build 的授權畫面。這是非官方介面,可能會變動。" } } } }, - "cloudflared failed to start: %@" : { + "User" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "cloudflared를 시작하지 못했습니다: %@" + "value" : "사용자" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "cloudflared başlatılamadı: %@" + "value" : "Kullanıcı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "cloudflared không khởi động được: %@" + "value" : "Người dùng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "cloudflared启动失败:%@" + "value" : "用户" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "cloudflared 啟動失敗:%@" + "value" : "使用者" } } } }, - "cloudflared not found. Install it with `brew install cloudflared`, or choose the binary above." : { + "User and role changes were not authorized" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "cloudflared를 찾을 수 없습니다. `brew install cloudflared`로 설치하거나 위에서 바이너리를 선택하십시오." + "value" : "사용자 및 역할 변경이 승인되지 않았습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "cloudflared bulunamadı. `brew install cloudflared` ile yükleyin veya yukarıdan ikili dosyayı seçin." + "value" : "Kullanıcı ve rol değişikliklerine izin verilmedi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy cloudflared. Cài đặt bằng `brew install cloudflared`, hoặc chọn tệp thực thi ở trên." + "value" : "Các thay đổi người dùng và vai trò không được cho phép" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未找到cloudflared。请使用`brew install cloudflared`安装,或在上方选择其二进制文件。" + "value" : "用户和角色更改未获授权" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "找不到 cloudflared。請使用 `brew install cloudflared` 安裝,或在上方選擇其二進位檔。" + "value" : "使用者與角色變更未獲授權" } } } }, - "cloudflared was not found. Install it with `brew install cloudflared`, or set its path in the connection's Cloudflare Tunnel settings." : { + "User approval timed out after 30 seconds" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "cloudflared를 찾을 수 없습니다. `brew install cloudflared`로 설치하거나 연결의 Cloudflare Tunnel 설정에서 경로를 지정하십시오." + "value" : "사용자 승인이 30초 후 시간 초과되었습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "cloudflared bulunamadı. `brew install cloudflared` ile yükleyin veya bağlantının Cloudflare Tüneli ayarlarında yolunu belirtin." + "value" : "Kullanıcı onayı 30 saniye sonra zaman aşımına uğradı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy cloudflared. Cài đặt bằng `brew install cloudflared`, hoặc đặt đường dẫn trong cài đặt Cloudflare Tunnel của kết nối." + "value" : "Yêu cầu phê duyệt hết hạn sau 30 giây" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未找到cloudflared。请使用`brew install cloudflared`安装,或在该连接的Cloudflare隧道设置中设置其路径。" + "value" : "用户审批在 30 秒后超时" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "找不到 cloudflared。請使用 `brew install cloudflared` 安裝,或在該連線的 Cloudflare 隧道設定中設定其路徑。" + "value" : "使用者核准在 30 秒後逾時" } } } }, - "cloudflared was not found. Set its path below first." : { + "User denied MCP access to this connection" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "cloudflared를 찾을 수 없습니다. 먼저 아래에서 경로를 설정하십시오." + "value" : "사용자가 이 연결에 대한 MCP 접근을 거부했습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "cloudflared bulunamadı. Önce aşağıda yolunu belirtin." + "value" : "Kullanıcı bu bağlantıya MCP erişimini reddetti" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy cloudflared. Hãy đặt đường dẫn bên dưới trước." + "value" : "Người dùng đã từ chối quyền truy cập MCP cho kết nối này" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未找到cloudflared。请先在下方设置其路径。" + "value" : "用户拒绝了此连接的 MCP 访问" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "找不到 cloudflared。請先在下方設定其路徑。" + "value" : "使用者拒絕了此連線的 MCP 存取" } } } }, - "collapse" : { - "extractionState" : "stale", + "User or role name" : { + + }, + "User Sessions" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "접기" + "value" : "사용자 세션" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "daralt" + "value" : "Kullanıcı Oturumları" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "thu gọn" + "value" : "Phiên người dùng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "收起" + "value" : "用户会话" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "收合" + "value" : "使用者工作階段" } } } }, - "connected" : { + "User that ran it" : { + + }, + "User-installed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결됨" + "value" : "사용자 설치" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "bağlı" + "value" : "User-installed" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "đã kết nối" + "value" : "Người dùng cài đặt" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已连接" + "value" : "用户安装" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已連線" + "value" : "使用者安裝" } } } }, - "connecting" : { + "User: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 중" + "value" : "사용자: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "bağlanıyor" + "value" : "Kullanıcı: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "đang kết nối" + "value" : "Người dùng: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在连接" + "value" : "用户:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在連線" + "value" : "使用者:%@" } } } }, - "connection failed" : { + "username" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 실패" + "value" : "사용자 이름" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "bağlantı başarısız" + "value" : "username" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "kết nối thất bại" + "value" : "username" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接失败" + "value" : "username" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線失敗" + "value" : "username" } } } }, - "contains" : { + "Username" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "포함" + "value" : "사용자 이름" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "içerir" + "value" : "Kullanıcı adı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "chứa" + "value" : "Tên người dùng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "包含" + "value" : "用户名" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "包含" + "value" : "使用者名稱" } } } }, - "current" : { - "extractionState" : "stale", + "Users & Roles" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "현재" + "value" : "사용자 및 역할" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "current" + "value" : "Kullanıcılar ve Roller" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "hiện tại" + "value" : "Người dùng và vai trò" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "当前" + "value" : "用户与角色" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "目前" + "value" : "使用者與角色" } } } }, - "database %@" : { + "Users and roles, sorted by name" : { + + }, + "Uses this Mac's Application Default Credentials. Run `gcloud auth application-default login` first, or set GOOGLE_APPLICATION_CREDENTIALS." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 %@" + "value" : "이 Mac의 Application Default Credentials를 사용합니다. 먼저 `gcloud auth application-default login`을 실행하거나 GOOGLE_APPLICATION_CREDENTIALS를 설정하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "veritabanı %@" + "value" : "Bu Mac'teki Application Default Credentials'ı kullanır. Önce `gcloud auth application-default login` çalıştırın veya GOOGLE_APPLICATION_CREDENTIALS ayarlayın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "cơ sở dữ liệu %@" + "value" : "Dùng Application Default Credentials của máy Mac này. Hãy chạy `gcloud auth application-default login` trước, hoặc đặt GOOGLE_APPLICATION_CREDENTIALS." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "数据库 %@" + "value" : "使用这台 Mac 的 Application Default Credentials。请先运行 `gcloud auth application-default login`,或设置 GOOGLE_APPLICATION_CREDENTIALS。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料庫 %@" + "value" : "使用這台 Mac 的 Application Default Credentials。請先執行 `gcloud auth application-default login`,或設定 GOOGLE_APPLICATION_CREDENTIALS。" } } } }, - "database_name" : { - "extractionState" : "stale", + "using %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "database_name" + "value" : "%@ 사용 중" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "database_name" + "value" : "%@ kullanılıyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "database_name" + "value" : "đang dùng %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "database_name" + "value" : "使用 %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "database_name" + "value" : "使用 %@" } } } }, - "db %d" : { + "UTC_TIMESTAMP()" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "db %d" + "value" : "UTC_TIMESTAMP()" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "db %d" + "value" : "UTC_TIMESTAMP()" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "db %d" + "value" : "UTC_TIMESTAMP()" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "db %d" + "value" : "UTC_TIMESTAMP()" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "db %d" + "value" : "UTC_TIMESTAMP()" } } } }, - "disabled" : { + "UUID" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "비활성화됨" + "value" : "UUID" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "devre dışı" + "value" : "UUID" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "đã tắt" + "value" : "UUID" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已禁用" + "value" : "UUID" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已停用" + "value" : "UUID" } } } }, - "disconnected" : { + "UUID of the active connection" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 해제됨" + "value" : "활성 연결의 UUID" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "bağlantı kesildi" + "value" : "Etkin bağlantının UUID'si" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "đã ngắt kết nối" + "value" : "UUID của kết nối đang hoạt động" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已断开连接" + "value" : "活动连接的 UUID" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已中斷連線" + "value" : "使用中連線的 UUID" } } } }, - "does not equal" : { + "UUID of the connection" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "같지 않음" + "value" : "연결의 UUID" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "eşit değil" + "value" : "Bağlantının UUID'si" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "không bằng" + "value" : "UUID của kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "不等于" + "value" : "连接的 UUID" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "不等於" + "value" : "連線的 UUID" } } } }, - "duplicate" : { + "UUID of the connection to disconnect" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "복제" + "value" : "연결을 해제할 연결의 UUID" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "kopya" + "value" : "Bağlantısı kesilecek bağlantının UUID'si" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "bản sao" + "value" : "UUID của kết nối cần ngắt" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "副本" + "value" : "要断开的连接的 UUID" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "副本" + "value" : "要中斷的連線的 UUID" } } } }, - "e.g., Claude Code on VPS" : { + "UUID of the saved connection" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "예: VPS의 Claude Code" + "value" : "저장된 연결의 UUID" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "örn. VPS üzerinde Claude Code" + "value" : "Kaydedilmiş bağlantının UUID'si" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "ví dụ: Claude Code trên VPS" + "value" : "UUID của kết nối đã lưu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "例如,VPS 上的 Claude Code" + "value" : "已保存连接的 UUID" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "例如:VPS 上的 Claude Code" + "value" : "已儲存連線的 UUID" } } } }, - "encoding: %@" : { + "v%@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "인코딩: %@" + "value" : "v%@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "kodlama: %@" + "value" : "v%@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "bảng mã: %@" + "value" : "v%@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "编码:%@" + "value" : "v%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "編碼:%@" + "value" : "v%@" } } } }, - "ends with" : { + "v%@ · %@" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "v%1$@ · %2$@" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다음으로 끝남" + "value" : "v%1$@ · %2$@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "bununla biter" + "value" : "v%@ · %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "kết thúc bằng" + "value" : "v%@ · %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "以...结尾" + "value" : "v%@ · %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "結尾為" + "value" : "v%1$@ · %2$@" } } } }, - "equals" : { + "v%@ available" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "같음" + "value" : "v%@ 사용 가능" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "eşittir" + "value" : "v%@ mevcut" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "bằng" + "value" : "Đã có v%@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "等于" + "value" : "v%@ 可用" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "等於" + "value" : "v%@ 可用" } } } }, - "expand" : { - "extractionState" : "stale", + "v%@ ready to activate" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "펼치기" + "value" : "v%@ 활성화 준비됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "genişlet" + "value" : "v%@ etkinleştirilmeye hazır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "mở rộng" + "value" : "v%@ sẵn sàng kích hoạt" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "展开" + "value" : "v%@ 准备就绪,可激活" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "展開" + "value" : "v%@ 已就緒,可啟用" } } } }, - "export" : { - "extractionState" : "stale", + "v%@+" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "내보내기" + "value" : "v%@+" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "dışa aktar" + "value" : "v%@+" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "xuất" + "value" : "v%@+" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导出" + "value" : "v%@+" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯出" + "value" : "v%@+" } } } }, - "false" : { + "Validation Failed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "false" + "value" : "유효성 검사 실패" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "false" + "value" : "Doğrulama Başarısız" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "false" + "value" : "Xác thực thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "false" + "value" : "验证失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "false" + "value" : "驗證失敗" } } } }, - "favorite" : { - "comment" : "A label indicating that a table is marked as a favorite.", - "isCommentAutoGenerated" : true, + "Value" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "즐겨찾기" + "value" : "값" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "sık kullanılan" + "value" : "Değer" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "yêu thích" + "value" : "Giá trị" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "收藏" + "value" : "值" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "我的最愛" + "value" : "值" } } } }, - "global" : { + "Value as supplied" : { + + }, + "Value escaped for this engine" : { + + }, + "Value excluded from query" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "전역" + "value" : "쿼리에서 제외된 값" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "genel" + "value" : "Sorgudan hariç tutulan değer" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "toàn cục" + "value" : "Giá trị bị loại khỏi truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "全局" + "value" : "从查询中排除的值" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "全域" + "value" : "已從查詢中排除的值" } } } }, - "greater or equal" : { + "Value is not in the declared enum." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "크거나 같음" + "value" : "선언된 enum에 포함되지 않은 값입니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "büyük veya eşit" + "value" : "Değer, bildirilen enum değerleri arasında değil." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "lớn hơn hoặc bằng" + "value" : "Giá trị không nằm trong enum đã khai báo." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "大于或等于" + "value" : "该值不在声明的枚举中。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "大於或等於" + "value" : "該值不在宣告的列舉中。" } } } }, - "greater than" : { + "Value is not in the declared set." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "보다 큼" + "value" : "선언된 집합에 포함되지 않은 값입니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "büyüktür" + "value" : "Değer, bildirilen küme içinde değil." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "lớn hơn" + "value" : "Giá trị không nằm trong tập đã khai báo." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "大于" + "value" : "该值不在声明的集合中。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "大於" + "value" : "該值不在宣告的集合中。" } } } }, - "gzip executable not found" : { + "Value is required" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "gzip 실행 파일을 찾을 수 없음" + "value" : "값이 필요합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "gzip çalıştırılabilir dosyası bulunamadı" + "value" : "Değer gereklidir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy chương trình gzip" + "value" : "Giá trị là bắt buộc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未找到 gzip 可执行文件" + "value" : "值为必填项" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "找不到 gzip 執行檔" + "value" : "值為必填" } } } }, - "history entries" : { - "extractionState" : "stale", + "Value kind differs" : { + + }, + "Value the operator compares against" : { + + }, + "Value Too Large" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기록 항목" + "value" : "값이 너무 큼" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "history entries" + "value" : "Değer Çok Büyük" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "mục lịch sử" + "value" : "Giá trị quá lớn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "条历史记录" + "value" : "值太大" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "筆歷程記錄" + "value" : "值太大" } } } }, - "history entry" : { - "extractionState" : "stale", + "Value too large to parse" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기록 항목" + "value" : "구문 분석하기에 값이 너무 큽니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "history entry" + "value" : "Değer ayrıştırılamayacak kadar büyük" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "mục lịch sử" + "value" : "Giá trị quá lớn để phân tích" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "条历史记录" + "value" : "值太大,无法解析" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "筆歷程記錄" + "value" : "值太大,無法解析" } } } }, - "hostname:%lld" : { - "extractionState" : "stale", + "Values from %d loaded rows" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "hostname:%lld" + "value" : "불러온 행 %d개의 값" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "hostname:%lld" + "value" : "Yüklenen %d satırdan gelen değerler" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "hostname:%lld" + "value" : "Giá trị từ %d dòng đã tải" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "hostname:%lld" + "value" : "来自已加载的 %d 行的值" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "hostname:%lld" + "value" : "來自已載入的 %d 列的值" } } } }, - "iCloud Connected" : { + "Values the context accepts" : { + + }, + "Variant id" : { + + }, + "VERBOSE (print progress)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud 연결됨" + "value" : "VERBOSE (진행 상황 출력)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud Bağlı" + "value" : "VERBOSE (ilerlemeyi yazdır)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã kết nối iCloud" + "value" : "VERBOSE (in tiến trình)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud 已连接" + "value" : "VERBOSE(打印进度)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud 已連線" + "value" : "VERBOSE(輸出進度)" } } } }, - "iCloud Sync" : { + "Verification Code Rejected" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud 동기화" + "value" : "인증 코드 거부됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud Eşitlemesi" + "value" : "Doğrulama Kodu Reddedildi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đồng bộ iCloud" + "value" : "Mã xác minh bị từ chối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud 同步" + "value" : "验证码被拒绝" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud 同步" + "value" : "驗證碼被拒絕" } } } }, - "iCloud Sync is active" : { + "Verification code rejected. Get a new code from your authenticator app and try again." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud 동기화가 활성화됨" + "value" : "인증 코드가 거부되었습니다. 인증 앱에서 새 코드를 받아 다시 시도하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud Eşitlemesi etkin" + "value" : "Doğrulama kodu reddedildi. Kimlik doğrulayıcı uygulamanızdan yeni bir kod alın ve yeniden deneyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đồng bộ iCloud đang hoạt động" + "value" : "Mã xác minh bị từ chối. Lấy mã mới từ ứng dụng xác thực và thử lại." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud 同步已启用" + "value" : "验证码被拒绝。请从验证器应用获取新验证码后重试。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud 同步已啟用" + "value" : "驗證碼被拒絕。請從你的驗證器應用程式取得新的驗證碼後再試一次。" } } } }, - "iCloud Sync:" : { + "Verification Code Required" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud 동기화:" + "value" : "인증 코드 필요" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud Eşitlemesi:" + "value" : "Doğrulama Kodu Gerekli" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đồng bộ iCloud:" + "value" : "Cần mã xác minh" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud 同步:" + "value" : "需要验证码" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud 同步:" + "value" : "需要驗證碼" } } } }, - "iCloud account is not available. Sign in to iCloud in System Settings." : { + "Verified" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud 계정을 사용할 수 없습니다. 시스템 설정에서 iCloud에 로그인하십시오." + "value" : "확인됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud hesabı kullanılamıyor. Sistem Ayarları'ndan iCloud'a giriş yapın." + "value" : "Verified" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tài khoản iCloud không khả dụng. Đăng nhập iCloud trong Cài đặt hệ thống." + "value" : "Đã xác minh" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud 账户不可用。请在系统设置中登录 iCloud。" + "value" : "已验证" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud 帳號無法使用。請在「系統設定」中登入 iCloud。" - } - } - } - }, - "iCloud rejected %d change(s). They stay on this device and will retry: %@" : { - "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "iCloud rejected %1$d change(s). They stay on this device and will retry: %2$@" - } - }, - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "iCloud에서 변경 사항 %d개를 거부했습니다. 변경 사항은 이 기기에 유지되며 다시 시도됩니다: %@" + "value" : "已驗證" } } } }, - "iCloud server error: %@" : { + "Verified by TablePro" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud 서버 오류: %@" + "value" : "TablePro에서 확인됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud sunucu hatası: %@" + "value" : "Verified by TablePro" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lỗi máy chủ iCloud: %@" + "value" : "Đã xác minh bởi TablePro" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud 服务器错误:%@" + "value" : "已通过 TablePro 验证" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud 伺服器錯誤:%@" - } - } - } - }, - "iCloud storage is full. Free up space in iCloud and try again." : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "iCloud 저장 공간이 가득 찼습니다. iCloud에서 공간을 확보한 후 다시 시도하십시오." + "value" : "已通過 TablePro 驗證" } } } }, - "iCloud storage is full. Free up space or reduce the history sync limit." : { - "extractionState" : "stale", + "Verify CA" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud 저장 공간이 가득 찼습니다. 공간을 확보하거나 기록 동기화 제한을 줄이십시오." + "value" : "CA 확인" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud storage is full. Free up space or reduce the history sync limit." + "value" : "CA Doğrula" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bộ nhớ iCloud đã đầy. Giải phóng dung lượng hoặc giảm giới hạn đồng bộ lịch sử." + "value" : "Xác minh CA" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud 储存空间已满。请释放空间或减少历史记录同步上限。" + "value" : "验证 CA" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud 儲存空間已滿。請釋出空間或降低歷程記錄同步上限。" + "value" : "驗證 CA" } } } }, - "in list" : { + "Verify certificate and hostname" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "목록에 있음" + "value" : "인증서 및 호스트 이름 확인" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "listede" + "value" : "Sertifikayı ve sunucu adını doğrula" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "trong danh sách" + "value" : "Xác minh chứng chỉ và tên máy chủ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在列表中" + "value" : "验证证书和主机名" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在清單中" + "value" : "驗證憑證與主機名稱" } } } }, - "is NULL" : { + "Verify Identity" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "NULL임" + "value" : "신원 확인" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "is NULL" + "value" : "Kimliği Doğrula" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "là NULL" + "value" : "Xác minh danh tính" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "为 NULL" + "value" : "验证身份" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "為 NULL" + "value" : "驗證身分" } } } }, - "is empty" : { + "Verify server certificate" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "비어 있음" + "value" : "서버 인증서 확인" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "boş" + "value" : "Sunucu sertifikasını doğrula" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "trống" + "value" : "Xác minh chứng chỉ máy chủ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "为空" + "value" : "验证服务器证书" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "為空" + "value" : "驗證伺服器憑證" } } } }, - "is not NULL" : { + "Verify:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "NULL이 아님" + "value" : "확인:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "is not NULL" + "value" : "Doğrula:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "không phải NULL" + "value" : "Xác nhận:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "不为 NULL" + "value" : "确认:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "不為 NULL" + "value" : "確認:" } } } }, - "is not empty" : { + "Version" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "비어 있지 않음" + "value" : "버전" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "boş değil" + "value" : "Sürüm" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "không trống" + "value" : "Phiên bản" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "不为空" + "value" : "版本" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "不為空" + "value" : "版本" } } } }, - "keyword: %@" : { + "Version %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "키워드: %@" + "value" : "버전 %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "anahtar sözcük: %@" + "value" : "Sürüm %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "từ khoá: %@" + "value" : "Phiên bản %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "关键字:%@" + "value" : "版本 %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "關鍵字:%@" + "value" : "版本 %@" } } } }, - "less or equal" : { + "Version %@ (Build %@)" : { + "extractionState" : "stale", "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Version %1$@ (Build %2$@)" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "작거나 같음" + "value" : "버전 %1$@ (빌드 %2$@)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "küçük veya eşit" + "value" : "Version %@ (Build %@)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "nhỏ hơn hoặc bằng" + "value" : "Phiên bản %1$@ (Bản dựng %2$@)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "小于或等于" + "value" : "版本 %@(构建 %@)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "小於或等於" + "value" : "版本 %1$@(組建 %2$@)" } } } }, - "less than" : { + "Version:" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "보다 작음" + "value" : "버전:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "küçüktür" + "value" : "Version:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "nhỏ hơn" + "value" : "Phiên bản:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "小于" + "value" : "版本:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "小於" + "value" : "版本:" } } } }, - "linked file" : { + "via %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결된 파일" + "value" : "경유: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "bağlı dosya" + "value" : "%@ aracılığıyla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "tệp liên kết" + "value" : "qua %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "链接的文件" + "value" : "通过 %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已連結的檔案" + "value" : "透過 %@" } } } }, - "localhost" : { + "View" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "localhost" + "value" : "보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "localhost" + "value" : "Görünüm" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "localhost" + "value" : "Xem" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "localhost" + "value" : "视图" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "localhost" + "value" : "檢視" } } } }, - "macOS will ask for your login password" : { + "View Account" : { + + }, + "View Activity…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "macOS에서 로그인 암호를 요청합니다" + "value" : "활동 보기…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "macOS giriş parolanızı isteyecek" + "value" : "Etkinliği Görüntüle…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "macOS sẽ hỏi mật khẩu đăng nhập của bạn" + "value" : "Xem hoạt động…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "macOS 将要求输入您的登录密码" + "value" : "查看活动…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "macOS 會要求你輸入登入密碼" + "value" : "檢視活動…" } } } }, - "matches regex" : { + "View body" : { + + }, + "View ER Diagram" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "정규식과 일치" + "value" : "ER 다이어그램 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "regex ile eşleşir" + "value" : "ER Diyagramını Görüntüle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "khớp regex" + "value" : "Xem sơ đồ ER" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "匹配正则" + "value" : "查看 ER 图" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "符合正規表示式" + "value" : "檢視 ER 圖" } } } }, - "max %@" : { - "comment" : "Longest single run, %@ is a duration", + "View Mode" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "최댓값 %@" + "value" : "보기 모드" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "maks. %@" + "value" : "Görünüm Modu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "tối đa %@" + "value" : "Chế độ xem" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "最长 %@" + "value" : "视图模式" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "最長 %@" + "value" : "檢視模式" } } } }, - "name" : { + "View name" : { + + }, + "View on GitHub" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이름" + "value" : "GitHub에서 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "ad" + "value" : "GitHub'da Görüntüle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "tên" + "value" : "Xem trên GitHub" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "名称" + "value" : "在 GitHub 上查看" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "名稱" + "value" : "在 GitHub 上檢視" } } } }, - "not contains" : { + "View Options" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "포함하지 않음" + "value" : "보기 옵션" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "içermez" + "value" : "Görünüm Seçenekleri" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "không chứa" + "value" : "Tuỳ chọn hiển thị" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "不包含" + "value" : "显示选项" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "不包含" + "value" : "顯示選項" } } } }, - "not equals" : { + "View that was read" : { + + }, + "View: %@" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "같지 않음" + "value" : "보기: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "eşit değil" + "value" : "View: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "không bằng" + "value" : "Chế độ xem: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "不等于" + "value" : "视图:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "不等於" + "value" : "檢視表:%@" } } } }, - "not in list" : { + "Views" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "목록에 없음" + "value" : "뷰" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "listede değil" + "value" : "Görünümler" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "không trong danh sách" + "value" : "Views" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "不在列表中" + "value" : "视图" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "不在清單中" + "value" : "檢視表" } } } }, - "on %@" : { - "comment" : "A sentence fragment describing the table on which the operation is performed.", - "isCommentAutoGenerated" : true, + "Vim mode" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@에서" + "value" : "Vim 모드" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ üzerinde" + "value" : "Vim modu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "trên %@" + "value" : "Chế độ Vim" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在 %@ 上" + "value" : "Vim 模式" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在 %@ 上" + "value" : "Vim 模式" } } } }, - "pages" : { + "Waiting for your password" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "페이지" + "value" : "암호 입력 대기 중" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "sayfa" + "value" : "Parolanız bekleniyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "trang" + "value" : "Đang chờ mật khẩu của bạn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "页" + "value" : "正在等待你的密码" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "頁" + "value" : "正在等待你的密碼" } } } }, - "password" : { + "Warehouse" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "암호" + "value" : "웨어하우스" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "şifre" + "value" : "Warehouse" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "mật khẩu" + "value" : "Warehouse" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "密码" + "value" : "仓库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "密碼" + "value" : "倉儲" } } } }, - "pending delete" : { + "Warning" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "삭제 대기 중" + "value" : "경고" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "silinmeyi bekliyor" + "value" : "Uyarı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "chờ xóa" + "value" : "Cảnh báo" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "待删除" + "value" : "警告" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "待刪除" + "value" : "警告" } } } }, - "pending truncate" : { + "WARNING: Failed to re-enable foreign key checks: %@. Please manually verify FK constraints are enabled." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "TRUNCATE 대기 중" + "value" : "경고: 외래 키 검사를 다시 활성화하지 못했습니다: %@. FK 제약 조건이 활성화되어 있는지 직접 확인하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "boşaltılmayı bekliyor" + "value" : "WARNING: Failed to re-enable foreign key checks: %@. Please manually verify FK constraints are enabled." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "chờ truncate" + "value" : "CẢNH BÁO: Bật lại kiểm tra khóa ngoại thất bại: %@. Vui lòng kiểm tra thủ công rằng ràng buộc FK đã được bật." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "待清空" + "value" : "警告:重新启用外键检查失败:%@。请手动验证外键约束已启用。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "待清空" + "value" : "警告:重新啟用外鍵檢查失敗:%@。請手動確認外鍵約束已啟用。" } } } }, - "postgresql://user:password@host:5432/database" : { - "extractionState" : "stale", + "WARNING: The host key for '%@' has changed!\n\nThis could mean someone is doing something malicious, or the server was reinstalled.\n\nPrevious fingerprint: %@\nCurrent fingerprint: %@" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "WARNING: The host key for '%1$@' has changed!\n\nThis could mean someone is doing something malicious, or the server was reinstalled.\n\nPrevious fingerprint: %2$@\nCurrent fingerprint: %3$@" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "postgresql://user:password@host:5432/database" + "value" : "경고: '%1$@'의 호스트 키가 변경되었습니다!\n\n누군가 악의적인 작업을 시도하고 있거나 서버가 재설치되었을 수 있습니다.\n\n이전 지문: %2$@\n현재 지문: %3$@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "postgresql://user:password@host:5432/database" + "value" : "UYARI: '%@' sunucusunun anahtarı değişti!\n\nBu, birinin kötü niyetli bir şey yaptığı anlamına gelebilir veya sunucu yeniden kurulmuş olabilir.\n\nÖnceki parmak izi: %@\nGeçerli parmak izi: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "postgresql://user:password@host:5432/database" + "value" : "CẢNH BÁO: Khóa máy chủ của '%@' đã thay đổi!\n\nĐiều này có thể do ai đó đang tấn công, hoặc máy chủ đã được cài đặt lại.\n\nVân tay trước: %@\nVân tay hiện tại: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "postgresql://user:password@host:5432/database" + "value" : "警告:主机 '%@' 的密钥已更改!\n\n这可能意味着有人进行恶意操作,或者服务器已被重新安装。\n\n之前的指纹:%@\n当前指纹:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "postgresql://user:password@host:5432/database" + "value" : "警告:主機 '%1$@' 的主機金鑰已變更!\n\n這可能表示有人正進行惡意操作,或伺服器已重新安裝。\n\n先前的指紋:%2$@\n目前的指紋:%3$@" } } } }, - "private (%@)" : { + "Warnings" : { + + }, + "Watch shared folders for connection files." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "비공개(%@)" + "value" : "공유 폴더에서 연결 파일을 감시합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "özel (%@)" + "value" : "Paylaşılan klasörleri bağlantı dosyaları için izleyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "private (%@)" + "value" : "Theo dõi thư mục chia sẻ để tìm tệp kết nối." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "私有(%@)" + "value" : "监视共享文件夹中的连接文件。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "私有(%@)" + "value" : "監看共用資料夾中的連線檔案。" } } } }, - "protected" : { + "Watched folders are scanned for .tablepro files. Connections appear read only in the sidebar." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "보호됨" + "value" : "감시 중인 폴더에서 .tablepro 파일을 검색합니다. 연결은 사이드바에 읽기 전용으로 표시됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "korumalı" + "value" : "İzlenen klasörler .tablepro dosyaları için taranır. Bağlantılar Sidebar'da salt okunur olarak görünür." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "protected" + "value" : "Các thư mục theo dõi được quét để tìm file .tablepro. Kết nối hiển thị chỉ đọc trong thanh bên." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "受保护" + "value" : "会扫描受监视文件夹中的 .tablepro 文件。这些连接在侧边栏中以只读方式显示。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "受保護" + "value" : "受監視的資料夾會被掃描以尋找 .tablepro 檔案。這些連線會在側邊欄中以唯讀方式顯示。" } } } }, - "ran %@×" : { - "comment" : "Run count in a detail line, %@ is a count", + "Watched folders are scanned for .tablepro files. Connections appear read-only in the sidebar." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "실행 %@회" + "value" : "감시 중인 폴더에서 .tablepro 파일을 검색합니다. 연결은 사이드바에 읽기 전용으로 표시됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ kez çalıştı" + "value" : "İzlenen klasörler .tablepro dosyaları için taranır. Bağlantılar kenar çubuğunda salt okunur olarak görünür." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "chạy %@ lần" + "value" : "Các thư mục được theo dõi sẽ quét tệp .tablepro. Kết nối hiển thị chỉ đọc trên thanh bên." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "运行 %@ 次" + "value" : "监视的文件夹会扫描 .tablepro 文件。连接在侧边栏中以只读方式显示。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "執行 %@ 次" + "value" : "受監看的資料夾會掃描 .tablepro 檔案。連線會在側邊欄中以唯讀方式顯示。" } } } }, - "review" : { + "Website" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "검토" + "value" : "웹사이트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "incele" + "value" : "Website" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "xem lại" + "value" : "Trang web" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "审查" + "value" : "网站" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "審查" + "value" : "網站" } } } }, - "root" : { - "extractionState" : "stale", + "Welcome to TablePro" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "root" + "value" : "TablePro에 오신 것을 환영합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "root" + "value" : "TablePro'ya Hoş Geldiniz" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "root" + "value" : "Chào mừng đến với TablePro" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "root" + "value" : "欢迎使用 TablePro" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "root" + "value" : "歡迎使用 TablePro" } } } }, - "schema %@" : { + "What a function returns, absent for a procedure" : { + + }, + "What is switched on here is ignored when two structures are compared. These drift between environments by design." : { + + }, + "What matched" : { + + }, + "What ran against %@" : { + + }, + "What ran it" : { + + }, + "What to Compare" : { + + }, + "What to do with the transaction" : { + + }, + "What to drop" : { + + }, + "What will run against %@" : { + + }, + "What you can do" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "스키마 %@" + "value" : "사용 가능한 기능" } }, "tr" : { "stringUnit" : { - "state" : "needs_review", - "value" : "şema %@" + "state" : "translated", + "value" : "Neler yapabilirsiniz" } }, "vi" : { "stringUnit" : { - "state" : "needs_review", - "value" : "schema %@" + "state" : "translated", + "value" : "Bạn có thể làm gì" } }, "zh-Hans" : { "stringUnit" : { - "state" : "needs_review", - "value" : "架构 %@" + "state" : "translated", + "value" : "您可以做什么" } }, "zh-Hant" : { "stringUnit" : { - "state" : "needs_review", - "value" : "綱要 %@" + "state" : "translated", + "value" : "你可以做什麼" } } } }, - "seconds" : { + "When enabled, clicking a new table replaces the current clean table tab instead of opening a new tab" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "초" + "value" : "활성화하면 새 테이블을 클릭할 때 새 탭을 여는 대신 현재의 변경 사항 없는 테이블 탭을 대체합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "saniye" + "value" : "When enabled, clicking a new table replaces the current clean table tab instead of opening a new tab" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "giây" + "value" : "Khi bật, nhấp vào bảng mới sẽ thay thế tab bảng trống hiện tại thay vì mở tab mới" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "秒" + "value" : "启用后,点击新表将替换当前空白表标签页,而不是打开新标签页" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "秒" + "value" : "啟用後,點按新的資料表會取代目前的乾淨資料表分頁,而不是開啟新分頁" } } } }, - "sqlite3 is included with macOS" : { + "When enabled, clicking a table in the sidebar will replace the current tab if it has no unsaved changes and you haven't interacted with it (sorted, filtered, etc.)." : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "sqlite3는 macOS에 포함되어 있습니다" + "value" : "활성화하면 사이드바에서 테이블을 클릭할 때 현재 탭에 저장하지 않은 변경 사항이 없고 정렬이나 필터링 등의 작업을 하지 않은 경우 해당 탭을 대체합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "sqlite3 macOS ile birlikte gelir" + "value" : "When enabled, clicking a table in the sidebar will replace the current tab if it has no unsaved changes and you haven't interacted with it (sorted, filtered, etc.)." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "sqlite3 đã có sẵn trên macOS" + "value" : "Khi bật, nhấp vào bảng trong thanh bên sẽ thay thế tab hiện tại nếu không có thay đổi chưa lưu và bạn chưa tương tác với nó (sắp xếp, lọc, v.v.)." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "sqlite3 已包含在 macOS 中" + "value" : "启用后,点击侧边栏中的表将替换当前标签页(如果没有未保存的更改且您未与之交互过,如排序、筛选等)。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "sqlite3 已內建於 macOS" + "value" : "啟用後,若目前分頁沒有未儲存的變更且你尚未與其互動(排序、篩選等),點按側邊欄中的資料表會取代目前的分頁。" } } } }, - "ssh.example.com" : { + "When enabled, this favorite is visible in all connections" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "ssh.example.com" + "value" : "활성화하면 이 즐겨찾기가 모든 연결에 표시됩니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "ssh.example.com" + "value" : "When enabled, this favorite is visible in all connections" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "ssh.example.com" + "value" : "Khi bật, mục yêu thích này hiển thị trong tất cả kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "ssh.example.com" + "value" : "启用后,此收藏在所有连接中可见" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "ssh.example.com" + "value" : "啟用後,此我的最愛會在所有連線中顯示" } } } }, - "starts with" : { + "When TablePro starts:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다음으로 시작" + "value" : "TablePro 시작 시:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "ile başlar" + "value" : "TablePro başlarken:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "bắt đầu bằng" + "value" : "Khi TablePro khởi động:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "以...开头" + "value" : "TablePro 启动时:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開頭為" + "value" : "TablePro 啟動時:" } } } }, - "statement" : { + "WHERE clause" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "문" + "value" : "WHERE 절" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "statement" + "value" : "WHERE ifadesi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "câu lệnh" + "value" : "Mệnh đề WHERE" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "条语句" + "value" : "WHERE 子句" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "陳述式" + "value" : "WHERE 子句" } } } }, - "statements" : { + "WHERE clause..." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "문" + "value" : "WHERE 절..." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "statements" + "value" : "WHERE clause..." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "câu lệnh" + "value" : "Mệnh đề WHERE..." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "条语句" + "value" : "WHERE 子句..." } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "陳述式" + "value" : "WHERE 子句..." } } } }, - "switch %@" : { - "extractionState" : "stale", + "Whether a session is open" : { + + }, + "Whether it can be killed" : { + + }, + "Whether it can log in" : { + + }, + "Whether it is set" : { + + }, + "Whether it succeeded" : { + + }, + "Whether its query can be cancelled" : { + + }, + "Whether row counts were fetched" : { + + }, + "Whether the column accepts NULL" : { + + }, + "Whether the column is generated" : { + + }, + "Whether the column is part of the primary key" : { + + }, + "Whether the count is an estimate" : { + + }, + "Whether the engine owns this database" : { + + }, + "Whether the index backs the primary key" : { + + }, + "Whether the index enforces uniqueness" : { + + }, + "Whether the limit clipped the matches" : { + + }, + "Whether the object is a view" : { + + }, + "Whether the row limit clipped any export" : { + + }, + "Whether the row limit clipped the result" : { + + }, + "Whether the session is open" : { + + }, + "Whether the tab is selected in its window" : { + + }, + "Whether the trigger is enabled" : { + + }, + "Whether this engine can create databases" : { + + }, + "Whether this engine has maintenance at all" : { + + }, + "Whether this engine has session contexts" : { + + }, + "Whether this export was clipped" : { + + }, + "Whether this is a role" : { + + }, + "Whitespace in text" : { + + }, + "Who the explanation is for: newcomer, analyst, or engineer" : { + + }, + "Wide-Column" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 전환" + "value" : "와이드 컬럼" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ değiştir" + "value" : "Geniş Sütunlu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "chuyển %@" + "value" : "Wide-Column" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "切换 %@" + "value" : "宽列" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "切換 %@" + "value" : "寬欄" } } } }, - "switch database" : { - "extractionState" : "stale", + "Width" : { + "comment" : "Label for the width of a table.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 전환" + "value" : "너비" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "veritabanı değiştir" + "value" : "Genişlik" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "chuyển cơ sở dữ liệu" + "value" : "Chiều rộng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "切换数据库" + "value" : "宽度" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "切換資料庫" + "value" : "寬度" } } } }, - "switch schema" : { - "extractionState" : "stale", + "Will be changed" : { + + }, + "Will be created when you apply changes" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "스키마 전환" + "value" : "변경 사항을 적용하면 생성됩니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "şema değiştir" + "value" : "Değişiklikleri uyguladığınızda oluşturulacak" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "chuyển schema" + "value" : "Sẽ được tạo khi bạn áp dụng thay đổi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "切换 Schema" + "value" : "应用更改时将会创建" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "切換綱要" + "value" : "套用變更時將會建立" } } } }, - "table_name" : { + "Will be dropped when you apply changes" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "table_name" + "value" : "변경 사항을 적용하면 삭제됩니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "table_name" + "value" : "Değişiklikleri uyguladığınızda silinecek" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "table_name" + "value" : "Sẽ bị xoá khi bạn áp dụng thay đổi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "table_name" + "value" : "应用更改时将会删除" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "table_name" + "value" : "套用變更時將會刪除" } } } }, - "tablepro command" : { + "Will not change" : { + + }, + "Will run" : { + + }, + "Window" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "tablepro 명령" + "value" : "윈도우" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "tablepro komutu" + "value" : "Pencere" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "lệnh tablepro" + "value" : "Cửa sổ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "tablepro 命令" + "value" : "窗口" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "tablepro 指令" + "value" : "視窗" } } } }, - "the SOCKS proxy" : { + "Window Background" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SOCKS 프록시" + "value" : "윈도우 배경" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SOCKS proxy" + "value" : "Pencere Arka Planı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "SOCKS proxy" + "value" : "Nền cửa sổ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SOCKS 代理" + "value" : "窗口背景" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SOCKS 代理" + "value" : "視窗背景" } } } }, - "to view data" : { + "Window id, as reported by list_recent_tabs" : { + + }, + "Window id, stable across tools" : { + + }, + "Window that came forward" : { + + }, + "Windows Authentication needs the server's hostname, not an IP address. Kerberos service principals aren't registered against IP addresses." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터 보기" + "value" : "Windows 인증에는 IP 주소가 아닌 서버의 호스트 이름이 필요합니다. Kerberos 서비스 주체는 IP 주소에 등록되지 않습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "veriyi görüntülemek için" + "value" : "Windows Authentication, IP adresini değil sunucunun ana bilgisayar adını ister. Kerberos servis principal'ları IP adreslerine kayıtlı değildir." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "để xem dữ liệu" + "value" : "Windows Authentication cần tên máy chủ, không phải địa chỉ IP. Các service principal của Kerberos không đăng ký theo địa chỉ IP." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "以查看数据" + "value" : "Windows 身份验证需要服务器的主机名,而不是 IP 地址。Kerberos 服务主体不会针对 IP 地址注册。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "以檢視資料" + "value" : "Windows 驗證需要伺服器的主機名稱,而不是 IP 位址。Kerberos 服務主體不會針對 IP 位址註冊。" } } } }, - "total %@" : { - "comment" : "Total duration, %@ is a duration", + "WITH GRANT OPTION" : { + + }, + "With Headers" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "합계 %@" + "value" : "헤더 포함" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "toplam %@" + "value" : "Başlıklarla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "tổng %@" + "value" : "Kèm tiêu đề" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "总计 %@" + "value" : "含表头" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "總計 %@" + "value" : "含標題列" } } } }, - "true" : { + "Word wrap" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "true" + "value" : "자동 줄 바꿈" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "true" + "value" : "Sözcük kaydırma" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "true" + "value" : "Tự động xuống dòng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "true" + "value" : "自动换行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "true" + "value" : "自動換行" } } } }, - "truncated" : { + "Wrap in transaction (BEGIN/COMMIT)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "잘림" + "value" : "트랜잭션으로 감싸기(BEGIN/COMMIT)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "kısaltıldı" + "value" : "İşlem içine al (BEGIN/COMMIT)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "đã cắt ngắn" + "value" : "Bọc trong giao dịch (BEGIN/COMMIT)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已截断" + "value" : "包裹在事务中 (BEGIN/COMMIT)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已截斷" + "value" : "包覆於交易中 (BEGIN/COMMIT)" } } } }, - "unknown" : { + "Write a migration and its rollback" : { + + }, + "Write a query that answers a question, using the real columns of the named tables" : { + + }, + "Write Concern" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "알 수 없음" + "value" : "쓰기 고려" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "bilinmiyor" + "value" : "Yazma Endişesi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "không rõ" + "value" : "Write Concern" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未知" + "value" : "Write Concern" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "未知" + "value" : "Write Concern" } } } }, - "username" : { + "Write operations are not permitted for this client" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사용자 이름" + "value" : "이 클라이언트에는 쓰기 작업이 허용되지 않습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "username" + "value" : "Bu istemci için yazma işlemlerine izin verilmiyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "username" + "value" : "Thao tác ghi không được phép với client này" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "username" + "value" : "此客户端不允许写入操作" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "username" + "value" : "此用戶端不允許寫入操作" } } } }, - "using %@" : { + "Writing to a database needs the tools:write scope." : { + + }, + "X Axis" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 사용 중" + "value" : "X축" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ kullanılıyor" + "value" : "X Ekseni" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "đang dùng %@" + "value" : "Trục X" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "使用 %@" + "value" : "X 轴" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "使用 %@" + "value" : "X 軸" } } } }, - "v%@" : { + "xAI did not return an access token." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "v%@" + "value" : "xAI에서 접근 토큰을 반환하지 않았습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "v%@" + "value" : "xAI bir erişim belirteci döndürmedi." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "v%@" + "value" : "xAI không trả về access token." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "v%@" + "value" : "xAI 未返回访问令牌。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "v%@" + "value" : "xAI 未回傳存取權杖。" } } } }, - "v%@ available" : { + "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "v%@ 사용 가능" + "value" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "v%@ mevcut" + "value" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã có v%@" + "value" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "v%@ 可用" + "value" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "v%@ 可用" + "value" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX" } } } }, - "v%@ ready to activate" : { + "Y Axis" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "v%@ 활성화 준비됨" + "value" : "Y축" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "v%@ etkinleştirilmeye hazır" + "value" : "Y Ekseni" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "v%@ sẵn sàng kích hoạt" + "value" : "Trục Y" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "v%@ 准备就绪,可激活" + "value" : "Y 轴" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "v%@ 已就緒,可啟用" + "value" : "Y 軸" } } } }, - "v%@ · %@" : { + "Yellow" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "v%1$@ · %2$@" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "v%1$@ · %2$@" + "value" : "노란색" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "v%@ · %@" + "value" : "Sarı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "v%@ · %@" + "value" : "Vàng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "v%@ · %@" + "value" : "黄色" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "v%1$@ · %2$@" + "value" : "黃色" } } } }, - "v%@+" : { + "Yesterday" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "v%@+" + "value" : "어제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "v%@+" + "value" : "Dün" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "v%@+" + "value" : "Hôm qua" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "v%@+" + "value" : "昨天" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "v%@+" + "value" : "昨天" } } } }, - "via %@" : { + "You" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "경유: %@" + "value" : "나" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ aracılığıyla" + "value" : "Siz" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "qua %@" + "value" : "Bạn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "通过 %@" + "value" : "你" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "透過 %@" + "value" : "你" } } } }, - "xAI did not return an access token." : { + "You can re-enable this in Settings" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "xAI에서 접근 토큰을 반환하지 않았습니다." + "value" : "설정에서 다시 활성화할 수 있습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "xAI bir erişim belirteci döndürmedi." + "value" : "Bunu Ayarlar'dan tekrar etkinleştirebilirsiniz" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "xAI không trả về access token." + "value" : "Bạn có thể bật lại trong Cài đặt" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "xAI 未返回访问令牌。" + "value" : "您可以在设置中重新启用" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "xAI 未回傳存取權杖。" + "value" : "你可以在「設定」中重新啟用" } } } }, - "~/.pgpass found — matching entry exists" : { + "You edit these inline in the grid and filter bar. Reset a table here to return it to defaults." : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "~/.pgpass 발견 — 일치하는 항목 있음" + "value" : "그리드와 필터 막대에서 인라인으로 편집할 수 있습니다. 테이블을 기본값으로 되돌리려면 여기서 재설정하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "~/.pgpass bulundu — eşleşen giriş var" + "value" : "Bunları doğrudan tabloda ve filtre çubuğunda düzenlersiniz. Bir tabloyu varsayılana döndürmek için buradan sıfırlayın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tìm thấy ~/.pgpass — có entry khớp" + "value" : "Bạn chỉnh những mục này ngay trong lưới và thanh bộ lọc. Đặt lại một bảng ở đây để đưa nó về mặc định." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "~/.pgpass 已找到 - 存在匹配条目" + "value" : "你可以直接在数据网格和筛选栏中修改这些设置。在这里重置某个表即可恢复默认值。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已找到 ~/.pgpass,存在相符的項目" + "value" : "你可以直接在資料格與篩選列中修改這些設定。在這裡重設某個資料表即可回復預設值。" } } } }, - "~/.pgpass found — no matching entry" : { - "extractionState" : "stale", + "You have no saved queries to publish." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "~/.pgpass 발견 — 일치하는 항목 없음" + "value" : "게시할 저장된 쿼리가 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "~/.pgpass bulundu — eşleşen giriş yok" + "value" : "Yayınlanacak kayıtlı sorgunuz yok." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tìm thấy ~/.pgpass — không có entry khớp" + "value" : "Bạn không có truy vấn đã lưu nào để xuất bản." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "~/.pgpass 已找到 - 无匹配条目" + "value" : "你没有可发布的已保存查询。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已找到 ~/.pgpass,但無相符的項目" + "value" : "你沒有可發佈的已儲存查詢。" } } } }, - "~/.pgpass found, matching entry exists" : { + "You have unsaved changes" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "~/.pgpass 발견, 일치하는 항목 있음" + "value" : "저장하지 않은 변경 사항이 있습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "~/.pgpass bulundu, eşleşen kayıt var" + "value" : "Kaydedilmemiş değişiklikleriniz var" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tìm thấy ~/.pgpass, có mục khớp" + "value" : "Bạn có thay đổi chưa lưu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已找到~/.pgpass,存在匹配条目" + "value" : "您有未保存的更改" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已找到 ~/.pgpass,存在相符的項目" + "value" : "你有未儲存的變更" } } } }, - "~/.pgpass found, no matching entry" : { + "You have unsaved changes to the table structure. Refreshing will discard these changes." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "~/.pgpass 발견, 일치하는 항목 없음" + "value" : "테이블 구조에 저장하지 않은 변경 사항이 있습니다. 새로 고치면 변경 사항이 사라집니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "~/.pgpass bulundu, eşleşen kayıt yok" + "value" : "Tablo yapısında kaydedilmemiş değişiklikleriniz var. Yenileme bu değişiklikleri siler." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tìm thấy ~/.pgpass, không có mục khớp" + "value" : "Bạn có thay đổi chưa lưu trong cấu trúc bảng. Làm mới sẽ hủy các thay đổi này." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已找到~/.pgpass,无匹配条目" + "value" : "您有未保存的表结构更改。刷新将丢弃这些更改。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已找到 ~/.pgpass,沒有相符的項目" + "value" : "你對資料表結構有未儲存的變更。重新整理會捨棄這些變更。" } } } }, - "~/.pgpass has incorrect permissions (needs chmod 0600)" : { + "You will be prompted for a verification code each time you connect." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "~/.pgpass 권한이 올바르지 않음(chmod 0600 필요)" + "value" : "연결할 때마다 인증 코드를 입력해야 합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "~/.pgpass yanlış izinlere sahip (chmod 0600 gerekli)" + "value" : "Her bağlandığınızda doğrulama kodu istenecektir." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "~/.pgpass có quyền không đúng (cần chmod 0600)" + "value" : "Bạn sẽ được yêu cầu nhập mã xác minh mỗi lần kết nối." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "~/.pgpass 权限不正确(需要 chmod 0600)" + "value" : "每次连接时都会要求您输入验证码。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "~/.pgpass 權限不正確(需要 chmod 0600)" + "value" : "每次連線時都會要求你輸入驗證碼。" } } } }, - "~/.pgpass not found" : { + "You're all set!" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "~/.pgpass 파일을 찾을 수 없음" + "value" : "모든 준비가 완료되었습니다!" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "~/.pgpass bulunamadı" + "value" : "Hazırsınız!" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy ~/.pgpass" + "value" : "Bạn đã sẵn sàng!" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未找到 ~/.pgpass" + "value" : "一切就绪!" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "找不到 ~/.pgpass" + "value" : "一切就緒!" } } } }, - "~/.ssh/id_rsa" : { + "Your Changes" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "~/.ssh/id_rsa" + "value" : "변경 사항" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "~/.ssh/id_rsa" + "value" : "Değişiklikleriniz" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "~/.ssh/id_rsa" + "value" : "Thay đổi của bạn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "~/.ssh/id_rsa" + "value" : "你的更改" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "~/.ssh/id_rsa" + "value" : "你的變更" } } } }, - "© 2026 Ngo Quoc Dat.\n%@" : { - "extractionState" : "stale", + "Your changes will be lost if you don't save them." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "© 2026 Ngo Quoc Dat.\n%@" + "value" : "저장하지 않으면 변경 사항이 사라집니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "© 2026 Ngo Quoc Dat.\n%@" + "value" : "Kaydetmezseniz değişiklikleriniz kaybolacaktır." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "© 2026 Ngo Quoc Dat.\n%@" + "value" : "Thay đổi của bạn sẽ bị mất nếu không lưu." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "© 2026 Ngo Quoc Dat.\n%@" + "value" : "如果不保存,您的更改将会丢失。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "© 2026 Ngo Quoc Dat.\n%@" + "value" : "若不儲存,你的變更將會遺失。" } } } }, - "·" : { + "Your connections file was changed outside TablePro, so this connection's password source was not run. Open the connection and save it again to confirm the change." : { + "comment" : "Error message when the app is not trusted to access the keychain.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "·" + "value" : "TablePro 외부에서 연결 파일이 변경되어 이 연결의 암호 소스를 실행하지 않았습니다. 연결을 열고 다시 저장하여 변경 사항을 확인하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "·" + "value" : "Bağlantı dosyanız TablePro dışında değiştirildi, bu yüzden bu bağlantının parola kaynağı çalıştırılmadı. Değişikliği onaylamak için bağlantıyı açıp yeniden kaydedin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "·" + "value" : "Tệp kết nối của bạn đã bị thay đổi bên ngoài TablePro, nên nguồn mật khẩu của kết nối này không được chạy. Hãy mở kết nối và lưu lại để xác nhận thay đổi." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "·" + "value" : "你的连接文件在 TablePro 之外被修改过,因此没有运行此连接的密码来源。请打开该连接并重新保存以确认这次更改。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "·" + "value" : "你的連線檔案在 TablePro 之外被修改過,因此沒有執行此連線的密碼來源。請開啟該連線並重新儲存以確認這次變更。" } } } }, - "—" : { - "extractionState" : "stale", + "Your database schema and query data will be sent to the AI provider for analysis. Allow for this connection?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "—" + "value" : "분석을 위해 데이터베이스 스키마와 쿼리 데이터가 AI 제공업체로 전송됩니다. 이 연결에 대해 허용하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "—" + "value" : "Veritabanı şemanız ve sorgu verileriniz analiz için yapay zeka sağlayıcısına gönderilecek. Bu bağlantı için izin verilsin mi?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "—" + "value" : "Lược đồ cơ sở dữ liệu và dữ liệu truy vấn sẽ được gửi đến nhà cung cấp AI để phân tích. Cho phép kết nối này?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "—" + "value" : "您的数据库结构和查询数据将被发送给 AI 提供商进行分析。是否允许此连接?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "—" + "value" : "你的資料庫綱要與查詢資料將傳送給 AI 供應商進行分析。要允許此連線嗎?" } } } }, - "“%@” owns database objects" : { + "Your executed queries will\nappear here for quick access." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 객체의 소유자는 “%@”입니다" + "value" : "실행한 쿼리가 빠른 접근을 위해\n여기에 표시됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "“%@” veritabanı nesnelerinin sahibi" + "value" : "Çalıştırdığınız sorgular\nhızlı erişim için burada görünecektir." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "“%@” đang sở hữu các đối tượng cơ sở dữ liệu" + "value" : "Các truy vấn đã thực thi sẽ\nxuất hiện ở đây để truy cập nhanh." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "“%@” 拥有数据库对象" + "value" : "已执行的查询将\n显示在此处以便快速访问。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "「%@」擁有資料庫物件" + "value" : "你執行過的查詢將\n顯示於此處以便快速存取。" } } } }, - "“%@” will be disconnected and any in-flight requests will be cancelled." : { + "Your license has expired" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "“%@”의 연결이 해제되고 진행 중인 모든 요청이 취소됩니다." + "value" : "라이선스가 만료되었습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "\"%@\" bağlantısı kesilecek ve devam eden tüm istekler iptal edilecek." + "value" : "Lisansınızın süresi doldu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "“%@” sẽ bị ngắt kết nối và mọi yêu cầu đang xử lý sẽ bị hủy." + "value" : "Giấy phép của bạn đã hết hạn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "“%@” 将被断开连接,所有进行中的请求将被取消。" + "value" : "您的许可证已过期" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "「%@」將會中斷連線,所有進行中的請求都會被取消。" + "value" : "你的授權已過期" } } } }, - "“%@” will be permanently deleted. External clients using this token will lose access immediately." : { + "Your prompts, schema, and query text reach Anthropic under your consumer plan and its privacy settings, not the API's commercial terms." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "“%@” 항목이 영구적으로 삭제됩니다. 이 토큰을 사용하는 외부 클라이언트는 즉시 접근 권한을 잃습니다." + "value" : "프롬프트, 스키마 및 쿼리 텍스트는 API의 상업용 약관이 아닌 소비자 요금제와 해당 개인정보 보호 설정에 따라 Anthropic으로 전송됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "\"%@\" kalıcı olarak silinecek. Bu token'ı kullanan harici istemciler erişimi anında kaybedecek." + "value" : "İstemleriniz, şemanız ve sorgu metniniz Anthropic'e API'nin ticari koşullarıyla değil, tüketici planınız ve onun gizlilik ayarları kapsamında ulaşır." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "“%@” sẽ bị xóa vĩnh viễn. Các client bên ngoài đang dùng token này sẽ mất quyền truy cập ngay lập tức." + "value" : "Câu lệnh, schema và nội dung truy vấn của bạn đến Anthropic theo gói người dùng và các thiết lập riêng tư của gói đó, không phải theo điều khoản thương mại của API." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "“%@” 将被永久删除。使用此令牌的外部客户端将立即失去访问权限。" + "value" : "你的提示词、Schema 和查询文本按你的消费者套餐及其隐私设置发送到 Anthropic,而不是按 API 的商业条款。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "「%@」將會永久刪除。使用此權杖的外部用戶端將立即失去存取權限。" + "value" : "你的提示詞、綱要和查詢文字會依你的消費者方案及其隱私設定傳送到 Anthropic,而不是依 API 的商業條款。" } } } }, - "•" : { - "extractionState" : "stale", + "Your subscription is governed by Anthropic's Consumer Terms and Usage Policy. Read them and decide whether this use fits. TablePro cannot grant rights under them." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "•" + "value" : "구독에는 Anthropic의 소비자 약관 및 사용 정책이 적용됩니다. 해당 내용을 읽고 이 사용 방식이 적합한지 판단하십시오. TablePro는 해당 약관에 따른 권리를 부여할 수 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "•" + "value" : "Aboneliğiniz Anthropic'in Tüketici Koşulları ve Kullanım Politikası'na tabidir. Bunları okuyun ve bu kullanımın uygun olup olmadığına karar verin. TablePro bu koşullar kapsamında size hak veremez." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "•" + "value" : "Gói đăng ký của bạn chịu sự điều chỉnh của Điều khoản Người dùng và Chính sách Sử dụng của Anthropic. Hãy đọc và tự quyết định cách dùng này có phù hợp không. TablePro không thể cấp quyền theo các điều khoản đó." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "•" + "value" : "你的订阅受 Anthropic 的消费者条款和使用政策约束。请阅读这些条款,自行判断这种用法是否合适。TablePro 无法据此授予你任何权利。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "•" + "value" : "你的訂閱受 Anthropic 的消費者條款與使用政策約束。請閱讀這些條款,自行判斷這種用法是否合適。TablePro 無法據此授予你任何權利。" } } } }, - "••••••••" : { - "extractionState" : "stale", + "Your team can now see %d shared connections. Passwords were not included." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "••••••••" + "value" : "이제 팀에서 공유 연결 %d개를 볼 수 있습니다. 암호는 포함되지 않았습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "••••••••" + "value" : "Takımınız artık %d paylaşılan bağlantıyı görebiliyor. Parolalar dahil edilmedi." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "••••••••" + "value" : "Nhóm của bạn giờ có thể thấy %d kết nối được chia sẻ. Mật khẩu không được đưa vào." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "••••••••" + "value" : "你的团队现在可以看到 %d 个共享连接。密码未被包含。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "••••••••" + "value" : "你的團隊現在可以看到 %d 個共享連線。密碼未包含在內。" } } } }, - "…and %d more lines" : { + "Your team will see the names and SQL of %d saved queries. This replaces what you previously published." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "…외 %d줄" + "value" : "팀에서 저장된 쿼리 %d개의 이름과 SQL을 볼 수 있습니다. 이전에 게시한 내용은 이 내용으로 대체됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "…ve %d satır daha" + "value" : "Takımınız %d kayıtlı sorgunun adlarını ve SQL'ini görecek. Bu, daha önce yayınladıklarınızın yerini alır." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "…và %d dòng nữa" + "value" : "Nhóm của bạn sẽ thấy tên và SQL của %d truy vấn đã lưu. Nội dung này thay thế những gì bạn đã xuất bản trước đó." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "…还有 %d 行" + "value" : "你的团队将看到 %d 条已保存查询的名称和 SQL。这会替换你之前发布的内容。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "…還有 %d 列" + "value" : "你的團隊將看到 %d 條已儲存查詢的名稱和 SQL。這會取代你先前發佈的內容。" } } } }, - "⌘K" : { + "Zed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "⌘K" + "value" : "Zed" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "⌘K" + "value" : "Zed" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "⌘K" + "value" : "Zed" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "⌘K" + "value" : "Zed" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "⌘K" + "value" : "Zed" } } } }, - "⌘T" : { + "Zero Fill" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "⌘T" + "value" : "0 채우기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "⌘T" + "value" : "Sıfırla Doldur" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "⌘T" + "value" : "Điền số 0" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "⌘T" + "value" : "零填充" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "⌘T" + "value" : "零填補" } } } }, - "Result %d" : { + "Zoom" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "결과 %d" + "value" : "확대/축소" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sonuç %d" + "value" : "Yakınlaştır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết quả %d" + "value" : "Thu phóng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "结果 %d" + "value" : "缩放" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "結果 %d" + "value" : "縮放" } } } }, - "Error %d" : { + "Zoom in" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "오류 %d" + "value" : "확대" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Hata %d" + "value" : "Yakınlaştır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lỗi %d" + "value" : "Phóng to" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "错误 %d" + "value" : "放大" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "錯誤 %d" + "value" : "放大" } } } }, - "Statement %1$d/%2$d failed: %3$@" : { + "Zoom In" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%2$d개 중 %1$d번째 문 실패: %3$@" + "value" : "확대" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%1$d/%2$d numaralı ifade başarısız oldu: %3$@" + "value" : "Yakınlaştır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Câu lệnh %1$d/%2$d thất bại: %3$@" + "value" : "Phóng to" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "第 %1$d/%2$d 条语句失败:%3$@" + "value" : "放大" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "第 %1$d/%2$d 條陳述式失敗:%3$@" + "value" : "放大" } } } }, - "The transaction could not be committed: %@" : { + "Zoom out" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "트랜잭션을 커밋할 수 없습니다: %@" + "value" : "축소" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İşlem kaydedilemedi: %@" + "value" : "Uzaklaştır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể commit giao dịch: %@" + "value" : "Thu nhỏ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "事务无法提交:%@" + "value" : "缩小" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "交易無法提交:%@" + "value" : "縮小" } } } }, - "Moves the editor cursor to the statement that produced this result" : { + "Zoom Out" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 결과를 생성한 문으로 편집기 커서를 이동합니다" + "value" : "축소" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Düzenleyici imlecini bu sonucu üreten ifadeye taşır" + "value" : "Uzaklaştır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Di chuyển con trỏ trình soạn thảo tới câu lệnh đã tạo ra kết quả này" + "value" : "Thu nhỏ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将编辑器光标移到生成此结果的语句" + "value" : "缩小" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將編輯器游標移到產生此結果的陳述式" + "value" : "縮小" } } } diff --git a/TablePro/Views/Compare/CompareApplySheetView.swift b/TablePro/Views/Compare/CompareApplySheetView.swift index 3329c5fd4..e278e5c18 100644 --- a/TablePro/Views/Compare/CompareApplySheetView.swift +++ b/TablePro/Views/Compare/CompareApplySheetView.swift @@ -69,6 +69,12 @@ internal struct CompareApplySheetView: View { Divider() actionRow } + /// Apply is disabled while anything is held back and the action row says to go to Warnings, + /// so the sheet opens on the tab that can actually unblock it. + .onAppear { + guard session.unacknowledgedHazardCount > 0 else { return } + pane = .warnings + } } // MARK: - Headline @@ -86,11 +92,14 @@ internal struct CompareApplySheetView: View { .padding(16) } + /// The count carries the noun and the target name follows it, so the singular cannot come from a + /// plural variation on the format string and is chosen here instead. private var headlineText: String { - String( - format: String(localized: "Apply %1$d statements to %2$@?"), - session.runnableStatementCount, targetName - ) + let count = session.runnableStatementCount + guard count != 1 else { + return String(format: String(localized: "Apply 1 statement to %@?"), targetName) + } + return String(format: String(localized: "Apply %1$d statements to %2$@?"), count, targetName) } private var targetName: String { @@ -172,9 +181,16 @@ internal struct CompareApplySheetView: View { } private var heldBackText: String { - String( + let count = session.unacknowledgedHazardCount + guard count != 1 else { + return String( + format: String(localized: "1 statement stays out of this run and %@ keeps what it has for it."), + targetName + ) + } + return String( format: String(localized: "%1$d statements stay out of this run and %2$@ keeps what it has for them."), - session.unacknowledgedHazardCount, targetName + count, targetName ) } @@ -286,6 +302,9 @@ internal struct CompareApplySheetView: View { // MARK: - Warnings + /// The tab the action row sends people to, so the allowance has to be reachable here. It used to + /// render the hazards read-only while Apply stayed disabled until every one of them was allowed, + /// and the only checkbox that could allow one lived in the script pane behind this sheet. private var warningsPane: some View { Group { if hazardStatements.isEmpty { @@ -295,8 +314,14 @@ internal struct CompareApplySheetView: View { Text(String(format: String(localized: "Nothing in this script destroys data in %@."), targetName)) } } else { - List(hazardStatements) { statement in - hazardRow(statement) + List { + Section { + ForEach(hazardStatements) { statement in + hazardRow(statement) + } + } footer: { + Text("Allowing a statement applies to this run only. It is never saved.") + } } .listStyle(.inset) } @@ -310,13 +335,7 @@ internal struct CompareApplySheetView: View { private func hazardRow(_ statement: SyncStatement) -> some View { VStack(alignment: .leading, spacing: 4) { HStack(spacing: 6) { - Image(systemName: session.executionSettings.canRun(statement) ? "play.circle.fill" : "hand.raised.fill") - .foregroundStyle(session.executionSettings.canRun(statement) - ? CompareStatusStyle.warning - : CompareStatusStyle.error) - Text(statement.summary) - .font(.callout) - .lineLimit(1) + hazardHeadline(statement) Spacer(minLength: 0) Text(session.executionSettings.canRun(statement) ? String(localized: "Will run") @@ -343,6 +362,31 @@ internal struct CompareApplySheetView: View { .padding(.vertical, 2) } + /// Only a statement the classifier refuses by default has an allowance to grant. A hazard that + /// runs anyway gets a label rather than a checkbox, because a checkbox that cannot stop it would + /// say the opposite of what it does. + @ViewBuilder + private func hazardHeadline(_ statement: SyncStatement) -> some View { + if statement.isRefusedByDefault { + Toggle(isOn: CompareHazardAllowance.binding(for: statement, in: session)) { + Text(statement.summary) + .font(.callout) + .lineLimit(1) + } + .toggleStyle(.checkbox) + .accessibilityIdentifier("compare.apply.allow.\(statement.id.uuidString)") + } else { + Label { + Text(statement.summary) + .font(.callout) + .lineLimit(1) + } icon: { + Image(systemName: "play.circle.fill") + } + .foregroundStyle(CompareStatusStyle.warning) + } + } + // MARK: - Actions private var actionRow: some View { diff --git a/TablePro/Views/Compare/CompareDataPlanGrouping.swift b/TablePro/Views/Compare/CompareDataPlanGrouping.swift new file mode 100644 index 000000000..fd3bc49ae --- /dev/null +++ b/TablePro/Views/Compare/CompareDataPlanGrouping.swift @@ -0,0 +1,202 @@ +// +// CompareDataPlanGrouping.swift +// TablePro +// +// Turns the tables a data comparison can walk into the rows a `Table` draws, +// searched and grouped the way the session asks for. +// +// The data list used to read neither: it sorted `session.dataPlans` and ignored +// `searchText` and `grouping` outright while both toolbar controls stayed +// enabled, so typing in the search field and choosing a grouping did nothing at +// all in Data mode. +// +// Pure and free of SwiftUI, so a grouping can be checked without a view. The +// shape mirrors `CompareResultGrouping` deliberately: one list, two row kinds, +// and a header whose members are exactly what a bulk include may touch. +// + +import Foundation + +internal struct CompareDataPlanRow: Identifiable, Hashable { + internal enum Kind: Hashable { + case group(memberIds: [String]) + case plan(DataComparePlan) + } + + internal let id: String + internal let tableName: String + internal let insertCount: Int? + internal let updateCount: Int? + internal let deleteCount: Int? + internal let identicalCount: Int? + internal let kind: Kind + + internal var plan: DataComparePlan? { + guard case .plan(let plan) = kind else { return nil } + return plan + } + + internal var memberIds: [String] { + guard case .group(let ids) = kind else { return [] } + return ids + } + + internal var isGroup: Bool { + plan == nil + } +} + +internal struct CompareDataPlanGroup: Identifiable { + internal let header: CompareDataPlanRow + internal let rows: [CompareDataPlanRow] + + internal var id: String { header.id } +} + +internal enum CompareDataPlanGrouping { + /// A group header shares the table's row type, so its identifier has to be one no plan can + /// produce: a plan identifier is `schema.table` and never carries this prefix. + internal static let groupIdentifierPrefix = "compare-plan-group|" + + internal static func isGroupIdentifier(_ identifier: String) -> Bool { + identifier.hasPrefix(groupIdentifierPrefix) + } + + /// The same substring rule the structure list applies, so one search field means one thing in + /// both modes. + internal static func matching(_ plans: [DataComparePlan], searchText: String) -> [DataComparePlan] { + let query = searchText.trimmingCharacters(in: .whitespaces) + guard !query.isEmpty else { return plans } + return plans.filter { $0.id.localizedCaseInsensitiveContains(query) } + } + + internal static func rows( + from plans: [DataComparePlan], + sortedUsing comparators: [KeyPathComparator] + ) -> [CompareDataPlanRow] { + plans.map(row(for:)).sorted(using: comparators) + } + + internal static func groups( + from plans: [DataComparePlan], + grouping: CompareGrouping, + sortedUsing comparators: [KeyPathComparator] + ) -> [CompareDataPlanGroup] { + switch grouping { + case .byDifference: + let buckets = Dictionary(grouping: plans, by: bucket(for:)) + return Bucket.allCases.compactMap { bucket in + group( + named: bucket.title, + identifier: bucket.identifier, + plans: buckets[bucket] ?? [], + comparators: comparators + ) + } + case .byObjectType: + /// Every plan is a table, so this is one section rather than none. The control stays + /// live and says what it groups by instead of looking broken in one of the two modes. + return [ + group( + named: CompareObjectKind.table.displayName, + identifier: CompareObjectKind.table.rawValue, + plans: plans, + comparators: comparators + ) + ].compactMap { $0 } + case .none: + return [] + } + } + + internal static func planIds( + in selection: Set, + groups: [CompareDataPlanGroup] + ) -> [String] { + var resolved: [String] = [] + for identifier in selection.sorted() { + guard isGroupIdentifier(identifier) else { + resolved.append(identifier) + continue + } + guard let group = groups.first(where: { $0.id == identifier }) else { continue } + resolved.append(contentsOf: group.header.memberIds) + } + return resolved + } + + /// A plan that has not been compared is its own answer, not a synonym for "matches". Folding the + /// two together would report a table nobody has looked at as identical. + private enum Bucket: CaseIterable, Hashable { + case differing + case identical + case notCompared + case uncomparable + + var title: String { + switch self { + case .differing: return String(localized: "Has Differences") + case .identical: return String(localized: "Identical") + case .notCompared: return String(localized: "Not Compared") + case .uncomparable: return String(localized: "Could Not Compare") + } + } + + var identifier: String { + switch self { + case .differing: return "differing" + case .identical: return "identical" + case .notCompared: return "not-compared" + case .uncomparable: return "uncomparable" + } + } + } + + private static func bucket(for plan: DataComparePlan) -> Bucket { + guard plan.isComparable else { return .uncomparable } + guard let summary = plan.summary else { return .notCompared } + return summary.differenceCount > 0 ? .differing : .identical + } + + private static func group( + named name: String, + identifier: String, + plans: [DataComparePlan], + comparators: [KeyPathComparator] + ) -> CompareDataPlanGroup? { + guard !plans.isEmpty else { return nil } + let summaries = plans.compactMap { $0.summary } + let header = CompareDataPlanRow( + id: groupIdentifierPrefix + identifier, + tableName: name, + insertCount: total(of: summaries, \.insertCount), + updateCount: total(of: summaries, \.updateCount), + deleteCount: total(of: summaries, \.deleteCount), + identicalCount: total(of: summaries, \.identicalCount), + kind: .group(memberIds: plans.filter { $0.isComparable }.map { $0.id }) + ) + return CompareDataPlanGroup(header: header, rows: plans.map(row(for:)).sorted(using: comparators)) + } + + private static func row(for plan: DataComparePlan) -> CompareDataPlanRow { + CompareDataPlanRow( + id: plan.id, + tableName: plan.id, + insertCount: plan.summary?.insertCount, + updateCount: plan.summary?.updateCount, + deleteCount: plan.summary?.deleteCount, + identicalCount: plan.summary?.identicalCount, + kind: .plan(plan) + ) + } + + /// Nothing compared means no number, not a zero: the count columns already draw a blank rather + /// than a zero for a table nobody ran, and a header has to say the same thing. + private static func total( + of summaries: [DataDiffSummary], + _ keyPath: KeyPath + ) -> Int? { + guard !summaries.isEmpty else { return nil } + return summaries.reduce(0) { $0 + $1[keyPath: keyPath] } + } +} diff --git a/TablePro/Views/Compare/CompareDataPlansView.swift b/TablePro/Views/Compare/CompareDataPlansView.swift index f837620f5..fdcc29bc8 100644 --- a/TablePro/Views/Compare/CompareDataPlansView.swift +++ b/TablePro/Views/Compare/CompareDataPlansView.swift @@ -8,6 +8,9 @@ // would stream every row of every table before the user had chosen anything, so // the list says why it is empty rather than looking broken. // +// Search and grouping are the session's, not this view's: the same toolbar +// controls drive both modes, so they have to mean the same thing in both. +// import SwiftUI @@ -15,86 +18,114 @@ internal struct CompareDataPlansView: View { @Bindable internal var session: CompareSyncSession internal let onCompare: () -> Void - @State private var sortOrder = [KeyPathComparator(\DataComparePlan.id)] + @State private var sortOrder = [KeyPathComparator(\CompareDataPlanRow.tableName)] @Environment(\.accessibilityDifferentiateWithoutColor) private var differentiateWithoutColor internal var body: some View { + VStack(spacing: 0) { + CompareMessageBanner(session: session) + content + .frame(maxWidth: .infinity, maxHeight: .infinity) + } + } + + @ViewBuilder + private var content: some View { if session.dataPlans.isEmpty { emptyState } else { - plansTable + planList + } + } + + // MARK: - List + + private var planList: some View { + let visible = CompareDataPlanGrouping.matching(session.dataPlans, searchText: session.searchText) + return VStack(spacing: 0) { + selectionHeader + Divider() + if visible.isEmpty { + ContentUnavailableView.search(text: session.searchText) + .frame(maxWidth: .infinity, maxHeight: .infinity) + } else { + plansTable(visible) + } } } - // MARK: - Table + private func plansTable(_ visible: [DataComparePlan]) -> some View { + let groups = CompareDataPlanGrouping.groups( + from: visible, grouping: session.grouping, sortedUsing: sortOrder + ) + let flatRows = CompareDataPlanGrouping.rows(from: visible, sortedUsing: sortOrder) - private var plansTable: some View { - Table( - session.dataPlans.sorted(using: sortOrder), - selection: $session.selectedPlanId, - sortOrder: $sortOrder - ) { - TableColumn("Include") { plan in - Toggle(String(localized: "Include this table in the comparison"), isOn: enabledBinding(plan)) - .labelsHidden() - .toggleStyle(.checkbox) - .disabled(!plan.isComparable) - .help(plan.unavailableReason ?? String(localized: "Include this table in the comparison")) - .accessibilityIdentifier("compare.plans.include.\(plan.id)") + return Table(of: CompareDataPlanRow.self, selection: $session.selectedPlanId, sortOrder: $sortOrder) { + TableColumn("Include") { row in + includeCell(row) } .width(min: 56, ideal: 64) - TableColumn("Table", value: \.id) { plan in - Text(plan.id) + TableColumn("Table", value: \.tableName) { row in + Text(row.tableName) + .fontWeight(row.isGroup ? .semibold : .regular) .lineLimit(1) .truncationMode(.middle) - .help(plan.id) + .help(row.tableName) } - TableColumn("Key") { plan in - keyCell(plan) + TableColumn("Key") { row in + keyCell(row) } - TableColumn("Insert") { plan in - countCell(plan.summary?.insertCount, kind: .insert) + TableColumn("Insert") { row in + countCell(row.insertCount, kind: .insert) } - TableColumn("Update") { plan in - countCell(plan.summary?.updateCount, kind: .update) + TableColumn("Update") { row in + countCell(row.updateCount, kind: .update) } - TableColumn("Delete") { plan in - countCell(plan.summary?.deleteCount, kind: .delete) + TableColumn("Delete") { row in + countCell(row.deleteCount, kind: .delete) } - TableColumn("Same") { plan in - countCell(plan.summary?.identicalCount, kind: .identical) + TableColumn("Same") { row in + countCell(row.identicalCount, kind: .identical) + } + } rows: { + if session.grouping == .none { + ForEach(flatRows) { row in + SwiftUI.TableRow(row) + } + } else { + ForEach(groups) { group in + DisclosureTableRow(group.header) { + ForEach(group.rows) { row in + SwiftUI.TableRow(row) + } + } + } } } - .contextMenu(forSelectionType: DataComparePlan.ID.self) { selection in - planCommands(for: selection) - } - .safeAreaInset(edge: .top, spacing: 0) { - selectionHeader + .contextMenu(forSelectionType: CompareDataPlanRow.ID.self) { selection in + planCommands(for: selection, groups: groups) } } @ViewBuilder - private func planCommands(for selection: Set) -> some View { + private func planCommands(for selection: Set, groups: [CompareDataPlanGroup]) -> some View { + let selected = Set(CompareDataPlanGrouping.planIds(in: selection, groups: groups)) let comparable = session.dataPlans - .filter { selection.contains($0.id) && $0.isComparable } + .filter { selected.contains($0.id) && $0.isComparable } .map { $0.id } Button("Include") { - for id in comparable { - session.setPlanEnabled(true, for: id) - } + setEnabled(true, forIds: comparable) } .disabled(comparable.isEmpty) Button("Exclude") { - for id in comparable { - session.setPlanEnabled(false, for: id) - } + setEnabled(false, forIds: comparable) } .disabled(comparable.isEmpty) Divider() @@ -142,17 +173,57 @@ internal struct CompareDataPlansView: View { session.dataPlans.filter { $0.isEnabled }.count } + /// A total of one has to read "of 1 table". The counted noun follows the second argument, which + /// a plural variation on the format string cannot reach, so the sentence carries its own + /// singular the way the app's other counted confirmations do. private var selectionSummary: String { - String( + let total = session.dataPlans.count + guard total != 1 else { + return String(format: String(localized: "%d of 1 table will be compared."), enabledPlanCount) + } + return String( format: String(localized: "%1$d of %2$d tables will be compared."), - enabledPlanCount, session.dataPlans.count + enabledPlanCount, total ) } // MARK: - Cells + /// A group is three-valued: some of its tables in, some out. macOS has no mixed state for a + /// `Toggle`, so a plain `Bool` would render "five of six" exactly like "none". + @ViewBuilder + private func includeCell(_ row: CompareDataPlanRow) -> some View { + switch row.kind { + case .group(let memberIds): + if !memberIds.isEmpty { + TristateCheckbox( + state: groupInclusionState(memberIds), + accessibilityLabel: String(localized: "Include every table in this group"), + accessibilityValue: groupInclusionValue(memberIds) + ) { + setEnabled(groupInclusionState(memberIds) != .checked, forIds: memberIds) + } + .accessibilityIdentifier("compare.plans.includeGroup.\(row.id)") + } + case .plan(let plan): + Toggle(String(localized: "Include this table in the comparison"), isOn: enabledBinding(plan)) + .labelsHidden() + .toggleStyle(.checkbox) + .disabled(!plan.isComparable) + .help(plan.unavailableReason ?? String(localized: "Include this table in the comparison")) + .accessibilityIdentifier("compare.plans.include.\(plan.id)") + } + } + + @ViewBuilder + private func keyCell(_ row: CompareDataPlanRow) -> some View { + if let plan = row.plan { + planKeyCell(plan) + } + } + @ViewBuilder - private func keyCell(_ plan: DataComparePlan) -> some View { + private func planKeyCell(_ plan: DataComparePlan) -> some View { if let reason = plan.unavailableReason { Label { Text(reason) @@ -187,6 +258,8 @@ internal struct CompareDataPlansView: View { return CompareStatusStyle.tint(for: kind) } + // MARK: - Inclusion + private func enabledBinding(_ plan: DataComparePlan) -> Binding { Binding( get: { plan.isEnabled }, @@ -194,17 +267,50 @@ internal struct CompareDataPlansView: View { ) } + private func setEnabled(_ enabled: Bool, forIds ids: [String]) { + for id in ids { + session.setPlanEnabled(enabled, for: id) + } + } + + private func enabledMemberCount(_ memberIds: [String]) -> Int { + let enabled = Set(session.dataPlans.filter { $0.isEnabled }.map { $0.id }) + return memberIds.filter { enabled.contains($0) }.count + } + + private func groupInclusionState(_ memberIds: [String]) -> TristateCheckbox.State { + let enabled = enabledMemberCount(memberIds) + guard enabled > 0 else { return .unchecked } + return enabled == memberIds.count ? .checked : .mixed + } + + private func groupInclusionValue(_ memberIds: [String]) -> String { + String( + format: String(localized: "%1$d of %2$d included"), + enabledMemberCount(memberIds), memberIds.count + ) + } + // MARK: - Empty state private var emptyState: some View { ContentUnavailableView { Label("No Tables Yet", systemImage: "tablecells") } description: { - Text("Compare lists the tables both sides share. Choose the tables to compare, then press Compare.") + Text(emptyDescription) } actions: { Button("Compare", action: onCompare) .disabled(!session.canCompare) .accessibilityIdentifier("compare.plans.compare") } } + + /// Why Compare is unavailable beats a generic invitation to press it, which is what the HIG asks + /// for when a command cannot be carried out. + private var emptyDescription: String { + session.compareDisabledReason + ?? String( + localized: "Compare lists the tables both sides share. Choose the tables to compare, then press Compare." + ) + } } diff --git a/TablePro/Views/Compare/CompareDetailView.swift b/TablePro/Views/Compare/CompareDetailView.swift index 1f840c241..2ad10e8e6 100644 --- a/TablePro/Views/Compare/CompareDetailView.swift +++ b/TablePro/Views/Compare/CompareDetailView.swift @@ -21,7 +21,11 @@ internal struct CompareDetailView: View { paneSelector Divider() paneContent + .frame(maxWidth: .infinity, maxHeight: .infinity) } + /// Without an infinite frame the stack sizes to its content and the split view centres the + /// whole block, which put the pane switcher halfway down an empty pane. + .frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .top) } private var paneSelector: some View { diff --git a/TablePro/Views/Compare/CompareEndpointMenuBuilder.swift b/TablePro/Views/Compare/CompareEndpointMenuBuilder.swift index c885b08f9..3d793f462 100644 --- a/TablePro/Views/Compare/CompareEndpointMenuBuilder.swift +++ b/TablePro/Views/Compare/CompareEndpointMenuBuilder.swift @@ -88,6 +88,7 @@ internal final class CompareEndpointMenuBuilder: NSObject, NSMenuDelegate { for (side, item) in items { let endpoint = side == .source ? session.source : session.target item.title = endpoint?.qualifiedDescription ?? String(format: chooseFormat, side.title) + item.toolTip = endpoint?.fullDescription ?? side.caption } } @@ -159,17 +160,20 @@ internal final class CompareEndpointMenuBuilder: NSObject, NSMenuDelegate { return } guard !databases.isEmpty else { + let endpoint = CompareSyncEndpoint.from(connection: connection) menu.addItem(pick( - endpoint: CompareSyncEndpoint.from(connection: connection), + endpoint: endpoint, side: side, - title: connection.database ?? connection.name + title: endpoint.databaseLabel.isEmpty ? connection.name : endpoint.databaseLabel, + toolTip: endpoint.fullDescription )) return } for database in databases { let endpoint = CompareSyncEndpoint.from(connection: connection, database: database) if PluginManager.shared.supportsSchemaSwitching(for: connection.type) { - let item = NSMenuItem(title: database, action: nil, keyEquivalent: "") + let item = NSMenuItem(title: endpoint.databaseLabel, action: nil, keyEquivalent: "") + item.toolTip = database let submenu = NSMenu() submenu.delegate = self submenu.identifier = NSUserInterfaceItemIdentifier( @@ -178,7 +182,7 @@ internal final class CompareEndpointMenuBuilder: NSObject, NSMenuDelegate { item.submenu = submenu menu.addItem(item) } else { - menu.addItem(pick(endpoint: endpoint, side: side, title: database)) + menu.addItem(pick(endpoint: endpoint, side: side, title: endpoint.databaseLabel, toolTip: database)) } } } @@ -209,9 +213,15 @@ internal final class CompareEndpointMenuBuilder: NSObject, NSMenuDelegate { } } - private func pick(endpoint: CompareSyncEndpoint, side: Side, title: String) -> NSMenuItem { + private func pick( + endpoint: CompareSyncEndpoint, + side: Side, + title: String, + toolTip: String? = nil + ) -> NSMenuItem { let item = NSMenuItem(title: title, action: #selector(select(_:)), keyEquivalent: "") item.target = self + item.toolTip = toolTip ?? endpoint.fullDescription item.representedObject = CompareEndpointSelection(side: side, endpoint: endpoint) let current = side == .source ? session.source : session.target item.state = current?.id == endpoint.id ? .on : .off diff --git a/TablePro/Views/Compare/CompareProgressView.swift b/TablePro/Views/Compare/CompareProgressView.swift index 998a5c465..3e2ea1882 100644 --- a/TablePro/Views/Compare/CompareProgressView.swift +++ b/TablePro/Views/Compare/CompareProgressView.swift @@ -2,7 +2,7 @@ // CompareProgressView.swift // TablePro // -// What the comparison is doing right now, and how to stop it. +// What the comparison is doing right now, how to stop it, and what it said. // // Cancel updates the button synchronously and never waits on the driver: // `Task.cancel()` is cooperative, so a driver already blocked in a C call @@ -17,17 +17,11 @@ import SwiftUI internal struct CompareProgressView: View { @Bindable internal var session: CompareSyncSession - /// A host that already shows the banner passes `false` rather than repeating it. - internal var showsMessages = true - internal var body: some View { VStack(alignment: .leading, spacing: 8) { if session.isBusy { activityRow } - if showsMessages { - messages - } } } @@ -84,3 +78,77 @@ internal struct CompareProgressView: View { .foregroundStyle(tint) } } + +/// Every error and notice the session raises, at the top of the pane the user is already reading. +/// +/// A message is set exactly when work stops, so anything that renders one only while the session is +/// busy renders it never: a failed comparison, a capability refusal, a cross-engine warning, a +/// cancelled run, a denied Apply authorization and "Nothing is selected to apply." all produced no +/// output at all. It is inline rather than an alert because the HIG reserves an alert for a +/// situation the user must resolve before continuing and allows one at a time, and a restored +/// window can raise several at once. +internal struct CompareMessageBanner: View { + @Bindable internal var session: CompareSyncSession + + @Environment(\.accessibilityDifferentiateWithoutColor) private var differentiateWithoutColor + + internal var body: some View { + if session.errorMessage != nil || session.informationalMessage != nil { + VStack(alignment: .leading, spacing: 6) { + if let message = session.errorMessage { + messageRow( + message, + systemImage: "exclamationmark.triangle.fill", + tint: CompareStatusStyle.error, + identifier: "compare.message.dismissError" + ) { + session.errorMessage = nil + } + } + if let message = session.informationalMessage { + messageRow( + message, + systemImage: "info.circle.fill", + tint: CompareStatusStyle.warning, + identifier: "compare.message.dismissNotice" + ) { + session.informationalMessage = nil + } + } + } + .padding(.horizontal, 12) + .padding(.vertical, 8) + .frame(maxWidth: .infinity, alignment: .leading) + + Divider() + } + } + + private func messageRow( + _ text: String, + systemImage: String, + tint: Color, + identifier: String, + onDismiss: @escaping () -> Void + ) -> some View { + HStack(alignment: .firstTextBaseline, spacing: 8) { + Label { + Text(text) + .textSelection(.enabled) + .fixedSize(horizontal: false, vertical: true) + } icon: { + Image(systemName: systemImage) + } + .foregroundStyle(differentiateWithoutColor ? Color.primary : tint) + + Spacer(minLength: 0) + + Button(String(localized: "Dismiss"), systemImage: "xmark", action: onDismiss) + .labelStyle(.iconOnly) + .buttonStyle(.borderless) + .controlSize(.small) + .accessibilityIdentifier(identifier) + } + .font(.callout) + } +} diff --git a/TablePro/Views/Compare/CompareResultsView.swift b/TablePro/Views/Compare/CompareResultsView.swift index 1c2df19cf..75a22222d 100644 --- a/TablePro/Views/Compare/CompareResultsView.swift +++ b/TablePro/Views/Compare/CompareResultsView.swift @@ -20,6 +20,17 @@ internal struct CompareResultsView: View { @Environment(\.accessibilityDifferentiateWithoutColor) private var differentiateWithoutColor internal var body: some View { + VStack(spacing: 0) { + CompareMessageBanner(session: session) + filterBar + Divider() + content + .frame(maxWidth: .infinity, maxHeight: .infinity) + } + } + + @ViewBuilder + private var content: some View { let visible = session.visibleResults let uncomparable = session.report?.uncomparable ?? [] if session.report == nil { @@ -31,6 +42,21 @@ internal struct CompareResultsView: View { } } + /// Identical objects are hidden by default and the only way back used to be a button inside the + /// empty state, which renders only when nothing differs at all. Nothing ever set it back, so the + /// first press was permanent for the life of the window. + private var filterBar: some View { + HStack(spacing: 8) { + Toggle("Show Identical Objects", isOn: $session.showsIdentical) + .toggleStyle(.checkbox) + .accessibilityIdentifier("compare.results.showIdentical") + Spacer(minLength: 0) + } + .padding(.horizontal, 12) + .padding(.vertical, 6) + .background(.bar) + } + // MARK: - Table private func resultsTable( @@ -116,15 +142,23 @@ internal struct CompareResultsView: View { // MARK: - Cells + /// A group is three-valued, so it cannot be a `Toggle`: macOS has no mixed state for one. Five of + /// six included used to render exactly like none included, and the first click then included the + /// sixth rather than doing anything the checkbox appeared to offer. @ViewBuilder private func includeToggle(for row: CompareResultRow) -> some View { switch row.kind { case .group(let memberIds): - Toggle(String(localized: "Include every object in this group"), isOn: groupInclusion(memberIds)) - .labelsHidden() - .toggleStyle(.checkbox) - .disabled(memberIds.isEmpty) + if !memberIds.isEmpty { + TristateCheckbox( + state: groupInclusionState(memberIds), + accessibilityLabel: String(localized: "Include every object in this group"), + accessibilityValue: groupInclusionValue(memberIds) + ) { + session.setIncluded(groupInclusionState(memberIds) != .checked, forIds: memberIds) + } .accessibilityIdentifier("compare.results.includeGroup.\(row.id)") + } case .object(let result): Toggle(String(localized: "Include this object"), isOn: objectInclusion(result)) .labelsHidden() @@ -167,20 +201,33 @@ internal struct CompareResultsView: View { ) } - private func groupInclusion(_ memberIds: [String]) -> Binding { - Binding( - get: { !memberIds.isEmpty && memberIds.allSatisfy { session.actions[$0, default: .skip] != .skip } }, - set: { session.setIncluded($0, forIds: memberIds) } + private func includedMemberCount(_ memberIds: [String]) -> Int { + memberIds.filter { session.actions[$0, default: .skip] != .skip }.count + } + + private func groupInclusionState(_ memberIds: [String]) -> TristateCheckbox.State { + let included = includedMemberCount(memberIds) + guard included > 0 else { return .unchecked } + return included == memberIds.count ? .checked : .mixed + } + + private func groupInclusionValue(_ memberIds: [String]) -> String { + String( + format: String(localized: "%1$d of %2$d included"), + includedMemberCount(memberIds), memberIds.count ) } // MARK: - Empty states + /// The description says why Compare is unavailable when it is. A generic line over a dimmed + /// button leaves the user with no way to work out what is missing, which the HIG asks an app not + /// to do. private var noReportState: some View { ContentUnavailableView { Label("No Comparison Yet", systemImage: "arrow.left.arrow.right.circle") } description: { - Text("Choose a source and a target, then compare them.") + Text(noReportDescription) } actions: { Button("Compare", action: onCompare) .disabled(!session.canCompare) @@ -188,6 +235,11 @@ internal struct CompareResultsView: View { } } + private var noReportDescription: String { + session.compareDisabledReason + ?? String(localized: "Choose a source and a target, then compare them.") + } + @ViewBuilder private var emptyResultState: some View { if session.report?.differenceCount == 0 { @@ -195,13 +247,6 @@ internal struct CompareResultsView: View { Label("No Differences", systemImage: "equal.circle") } description: { Text("Every object that was compared matches.") - } actions: { - if !session.showsIdentical { - Button("Show Identical Objects") { - session.showsIdentical = true - } - .accessibilityIdentifier("compare.results.showIdentical") - } } } else if !session.searchText.isEmpty { ContentUnavailableView.search(text: session.searchText) diff --git a/TablePro/Views/Compare/CompareRowDiffPane.swift b/TablePro/Views/Compare/CompareRowDiffPane.swift index e4665d69e..80c02feef 100644 --- a/TablePro/Views/Compare/CompareRowDiffPane.swift +++ b/TablePro/Views/Compare/CompareRowDiffPane.swift @@ -153,6 +153,10 @@ internal struct CompareRowDiffPane: View { .padding(.vertical, 8) } + /// The label is the joined key column list, so `.fixedSize()` on the menu overrode both the + /// truncation and the width the pane proposed. A composite key pushed the second menu past the + /// detail pane's minimum width, where it was clipped and could not be opened at all. The label + /// truncates instead and the full list stays reachable through the tooltip. private func columnMenu( title: String, summary: String, @@ -169,8 +173,9 @@ internal struct CompareRowDiffPane: View { } label: { Label(summary, systemImage: systemImage) .lineLimit(1) + .truncationMode(.middle) } - .fixedSize() + .help(summary) .accessibilityIdentifier(identifier) } } @@ -249,13 +254,18 @@ internal struct CompareRowDiffPane: View { ContentUnavailableView { Label("Not Compared Yet", systemImage: "arrow.clockwise") } description: { - Text(plan.unavailableReason ?? notComparedDescription) + Text(notComparedDescription(for: plan)) } } } - private var notComparedDescription: String { - String(localized: "Include this table and compare again to see its rows.") + /// The plan's own refusal first, then whatever is keeping Compare itself unavailable, and only + /// then the generic invitation. A dimmed action with no reason is what the HIG asks an app not + /// to leave a user holding. + private func notComparedDescription(for plan: DataComparePlan) -> String { + plan.unavailableReason + ?? session.compareDisabledReason + ?? String(localized: "Include this table and compare again to see its rows.") } // MARK: - Bindings diff --git a/TablePro/Views/Compare/CompareScriptPane.swift b/TablePro/Views/Compare/CompareScriptPane.swift index 1a97fccf6..184dcac97 100644 --- a/TablePro/Views/Compare/CompareScriptPane.swift +++ b/TablePro/Views/Compare/CompareScriptPane.swift @@ -39,8 +39,18 @@ internal struct CompareScriptPane: View { if heldBackStatements.isEmpty { editor(script: script) } else { - VSplitView { + /// `VSplitView` gets no divider cursor once it is hosted inside SwiftUI: AppKit's + /// cursor-rect system never fires there, so the divider drags while the pointer + /// never changes. `AutosavingSplitView` sits on `ResizeCursorSplitViewController`, + /// which is why every other divider in this window is one. + AutosavingSplitView( + autosaveName: "com.TablePro.CompareSync.script", + isVertical: false, + primaryMinimum: 120, + secondaryMinimum: 160 + ) { hazardList + } secondary: { editor(script: script) } } @@ -113,15 +123,24 @@ internal struct CompareScriptPane: View { session.statements.map { $0.sql }.joined(separator: "\n") } + /// `database` is the whole file path on SQLite and DuckDB, so Save… prefilled + /// `/Users/…/Chinook.sqlite-sync`. `databaseLabel` is the shortened name the rest of the window + /// already shows. private var exportFileName: String { - guard let target = session.target, !target.database.isEmpty else { return "sync" } - return "\(target.database)-sync" + guard let target = session.target, !target.databaseLabel.isEmpty else { return "sync" } + return "\(target.databaseLabel)-sync" } + /// One statement reads "1 statement". The count that carries the noun is the first argument and + /// the second is bare, so the singular is chosen here rather than in the format string. private var statementSummary: String { - String( + let total = session.statements.count + guard total != 1 else { + return String(format: String(localized: "1 statement, %d will run."), session.runnableStatementCount) + } + return String( format: String(localized: "%1$d statements, %2$d will run."), - session.statements.count, session.runnableStatementCount + total, session.runnableStatementCount ) } @@ -147,14 +166,12 @@ internal struct CompareScriptPane: View { } } + /// The one reason Generate Script is unavailable, rather than this pane's own second guess at it. + /// `scriptDisabledReason` already carries the cross-engine refusal, the missing comparison and + /// the empty selection, and it is what the toolbar item's tooltip reads. private var emptyDescription: String { - if session.mode == .structure, !session.canGenerateStructureScript, let notice = session.crossEngineNotice { - return notice - } - guard session.selectedObjectCount > 0 else { - return String(localized: "Include at least one object, then generate the script.") - } - return String(localized: "Generate the script to see exactly what would run.") + session.scriptDisabledReason + ?? String(localized: "Generate the script to see exactly what would run.") } } @@ -164,7 +181,7 @@ internal struct CompareHeldBackStatementRow: View { internal var body: some View { VStack(alignment: .leading, spacing: 4) { - Toggle(isOn: allowanceBinding) { + Toggle(isOn: CompareHazardAllowance.binding(for: statement, in: session)) { Text(statement.summary) .font(.callout) } @@ -195,8 +212,14 @@ internal struct CompareHeldBackStatementRow: View { } .padding(.vertical, 4) } +} - private var allowanceBinding: Binding { +/// One writer for the allowance set, because the script pane and the Apply sheet both offer it. Two +/// copies of the same insert-or-remove is how the two surfaces drift apart, and this set is what +/// stands between a DROP COLUMN and the target. +internal enum CompareHazardAllowance { + @MainActor + internal static func binding(for statement: SyncStatement, in session: CompareSyncSession) -> Binding { Binding( get: { session.executionSettings.allowedHazardStatementIds.contains(statement.id) }, set: { allowed in diff --git a/TablePro/Views/Compare/CompareStatusBar.swift b/TablePro/Views/Compare/CompareStatusBar.swift new file mode 100644 index 000000000..7dee88edf --- /dev/null +++ b/TablePro/Views/Compare/CompareStatusBar.swift @@ -0,0 +1,96 @@ +// +// CompareStatusBar.swift +// TablePro +// +// The window's bottom bar: what the comparison found, and how much of it the +// user has included. +// +// Counts only, never an action. The HIG asks an app to avoid putting critical +// information or actions in a bottom bar and to "use it only to display a small +// amount of information directly related to a window's contents or to a +// selected item within it", with Finder's item and selection counts as the +// example. Compare, Generate Script and Apply stay in the toolbar and in the +// Database > Compare menu, which is also the only place they are reachable when +// the window's bottom edge is off screen. +// +// It keeps the same four cells in both modes. Data mode reuses the structure +// vocabulary because an insert is a row that exists only on the source, so the +// bar never changes shape when the mode does. +// + +import SwiftUI + +internal struct CompareStatusBar: View { + @Bindable internal var session: CompareSyncSession + + @Environment(\.accessibilityDifferentiateWithoutColor) private var differentiateWithoutColor + + internal var body: some View { + HStack(spacing: StatusBarChrome.clusterSpacing) { + content + } + .statusBarChrome() + } + + /// A resting line rather than nothing at all, so the bar does not appear and disappear under the + /// content and shift everything above it the first time a comparison finishes. + @ViewBuilder + private var content: some View { + let counts = session.statusCounts + if counts.isEmpty { + Text("No comparison yet.") + .font(.caption) + .foregroundStyle(.secondary) + .lineLimit(1) + Spacer(minLength: 0) + } else { + ForEach(counts) { entry in + statusCount(entry) + } + Spacer(minLength: StatusBarChrome.clusterSpacing) + includedCount + } + } + + private func statusCount(_ entry: CompareStatusCount) -> some View { + let title = CompareStatusStyle.title(for: entry.status) + return HStack(spacing: 4) { + Image(systemName: CompareStatusStyle.symbolName(for: entry.status)) + .foregroundStyle(tint(for: entry)) + Text(entry.count, format: .number) + .monospacedDigit() + .fontWeight(.semibold) + Text(title) + .foregroundStyle(.secondary) + .lineLimit(1) + } + .font(.caption) + .accessibilityElement(children: .combine) + .accessibilityLabel(title) + .accessibilityValue(Text(entry.count, format: .number)) + .accessibilityIdentifier("compare.status.\(entry.status.rawValue)") + } + + private var includedCount: some View { + Text(includedText) + .font(.caption) + .monospacedDigit() + .foregroundStyle(.secondary) + .lineLimit(1) + .accessibilityIdentifier("compare.status.included") + } + + private var includedText: String { + String(format: String(localized: "%d included"), session.includedCount) + } + + /// Colour is never the only carrier: every cell pairs the tint with the status symbol and its + /// word, and drops the tint when the system asks for shapes instead of colour. A zero reads as a + /// zero rather than as a green success. + private func tint(for entry: CompareStatusCount) -> Color { + let value = entry.count + guard value > 0 else { return .secondary } + guard !differentiateWithoutColor else { return .primary } + return CompareStatusStyle.tint(for: entry.status) + } +} diff --git a/TablePro/Views/Compare/CompareSyncWindowController.swift b/TablePro/Views/Compare/CompareSyncWindowController.swift index fef8748aa..8f742817d 100644 --- a/TablePro/Views/Compare/CompareSyncWindowController.swift +++ b/TablePro/Views/Compare/CompareSyncWindowController.swift @@ -44,6 +44,7 @@ internal final class CompareSyncWindowController: NSWindowController, private lazy var endpointMenus = CompareEndpointMenuBuilder(session: session) { [weak self] in self?.endpointsChanged() } + private weak var modeControl: NSSegmentedControl? internal static func present(prefillSource connectionId: UUID?) { let controller = controllers[connectionId] ?? CompareSyncWindowController(prefillSource: connectionId) @@ -72,6 +73,7 @@ internal final class CompareSyncWindowController: NSWindowController, window.delegate = self window.applyAutosaveName(WindowIdentifier.compareSync) installToolbar(on: window) + installStatusStrip(on: window) } @available(*, unavailable) @@ -101,6 +103,23 @@ internal final class CompareSyncWindowController: NSWindowController, session.source = CompareSyncEndpoint.from(connection: match) } + /// The strip belongs to the window frame, not to the content: it reports what the window is + /// doing, so it stays put while the panes scroll and it is not a row the split view has to + /// budget for. `NSTitlebarAccessoryViewController`'s `.bottom` means the bottom of the + /// *titlebar*, which is exactly this position, directly under the toolbar. + private func installStatusStrip(on window: NSWindow) { + let hosting = NSHostingController(rootView: CompareStatusStrip(session: session)) + hosting.sizingOptions = [.preferredContentSize] + let accessory = NSTitlebarAccessoryViewController() + /// The accessory owns the hosting controller, not just its view. Handing over the bare view + /// leaves nothing retaining the controller, and a deallocated `NSHostingController` stops + /// updating the SwiftUI it was built from. + accessory.addChild(hosting) + accessory.view = hosting.view + accessory.layoutAttribute = .bottom + window.addTitlebarAccessoryViewController(accessory) + } + // MARK: - Toolbar private func installToolbar(on window: NSWindow) { @@ -113,13 +132,18 @@ internal final class CompareSyncWindowController: NSWindowController, window.toolbarStyle = .unified } + /// The HIG's item grouping: what the window is about on the leading edge, view controls in the + /// middle, and the actions on the trailing edge, where "items on the trailing edge remain + /// visible at all window sizes" and where the one primary action belongs. Compare used to sit + /// on the leading edge beside the pickers, which put the primary action in the group reserved + /// for identity and made it the first thing to be clipped. internal func toolbarDefaultItemIdentifiers(_ toolbar: NSToolbar) -> [NSToolbarItem.Identifier] { [ .compareSource, .compareSwap, .compareTarget, - .compareMode, .compareRun, .flexibleSpace, - .compareGrouping, .compareOptions, .compareSearch, - .compareGenerate, .compareApply + .compareMode, .compareGrouping, .compareOptions, .compareSearch, + .space, + .compareGenerate, .compareApply, .compareRun ] } @@ -152,7 +176,8 @@ internal final class CompareSyncWindowController: NSWindowController, label: String(localized: "Compare"), symbol: "arrow.triangle.2.circlepath", action: #selector(runComparison(_:)), - prominent: true + prominent: true, + visibility: .high ) case .compareGenerate: return button( @@ -166,14 +191,16 @@ internal final class CompareSyncWindowController: NSWindowController, itemIdentifier, label: String(localized: "Apply…"), symbol: "square.and.arrow.down.on.square", - action: #selector(applyToTarget(_:)) + action: #selector(applyToTarget(_:)), + visibility: .high ) case .compareOptions: return button( itemIdentifier, label: String(localized: "Options"), symbol: "slider.horizontal.3", - action: #selector(showOptions(_:)) + action: #selector(showOptions(_:)), + visibility: .low ) case .compareGrouping: return groupingItem(itemIdentifier) @@ -184,21 +211,32 @@ internal final class CompareSyncWindowController: NSWindowController, } } + /// `toolTip` is deliberately not the item's own label. The HIG says to "consider offering + /// context-sensitive tooltips" with "different text for a control's different states" and, in + /// the same breath, to "avoid repeating a control's name in its tooltip". Repeating the name is + /// what this did, so a disabled Apply explained nothing. `validateUserInterfaceItem` refreshes + /// the tip from the session's reason every time AppKit validates. private func button( _ identifier: NSToolbarItem.Identifier, label: String, symbol: String, action: Selector, - prominent: Bool = false + prominent: Bool = false, + visibility: NSToolbarItem.VisibilityPriority = .standard ) -> NSToolbarItem { let item = NSToolbarItem(itemIdentifier: identifier) item.label = label item.paletteLabel = label - item.toolTip = label item.image = NSImage(systemSymbolName: symbol, accessibilityDescription: label) item.action = action item.target = self item.isBordered = true + item.visibilityPriority = visibility + item.menuFormRepresentation = NSMenuItem(title: label, action: action, keyEquivalent: "") + item.menuFormRepresentation?.target = self + /// macOS 26 is the first release with a prominent toolbar item style. Before it, weight + /// comes from position and grouping alone: a hand-tinted bezel would be this app inventing + /// chrome, which is what the rebuild set out to remove. if prominent, #available(macOS 26.0, *) { item.style = .prominent } @@ -213,14 +251,42 @@ internal final class CompareSyncWindowController: NSWindowController, action: #selector(modeChanged(_:)) ) control.selectedSegment = CompareSyncMode.allCases.firstIndex(of: session.mode) ?? 0 + modeControl = control let item = NSToolbarItem(itemIdentifier: identifier) - item.label = String(localized: "Compare") + /// Not "Compare": the button beside it already carries that label, and two toolbar items + /// reading the same word cannot be told apart in the overflow menu or by VoiceOver. + item.label = String(localized: "Mode") item.paletteLabel = String(localized: "What to Compare") item.toolTip = String(localized: "Compare structure or data") item.view = control + /// A view-backed item collapses to an inert titled entry in the overflow menu unless it + /// supplies its own. Without this, narrowing the window took Structure and Data away with + /// no way to switch back. + let overflow = NSMenuItem(title: String(localized: "Compare"), action: nil, keyEquivalent: "") + let submenu = NSMenu() + for mode in CompareSyncMode.allCases { + let entry = NSMenuItem(title: mode.displayName, action: #selector(modePicked(_:)), keyEquivalent: "") + entry.target = self + entry.representedObject = mode.rawValue + entry.state = session.mode == mode ? .on : .off + submenu.addItem(entry) + } + overflow.submenu = submenu + item.menuFormRepresentation = overflow return item } + /// The segmented control is seeded once at construction, so anything that writes `session.mode` + /// from elsewhere, loading a saved comparison for instance, used to leave the toolbar showing + /// the other mode while the panes had already switched. + private func syncModeControl() { + guard let index = CompareSyncMode.allCases.firstIndex(of: session.mode) else { return } + if modeControl?.selectedSegment != index { + modeControl?.selectedSegment = index + } + modeControl?.isEnabled = !session.isBusy + } + private func groupingItem(_ identifier: NSToolbarItem.Identifier) -> NSToolbarItem { let item = NSMenuToolbarItem(itemIdentifier: identifier) item.label = String(localized: "Group By") @@ -273,6 +339,16 @@ internal final class CompareSyncWindowController: NSWindowController, endpointsChanged() } + /// Every path that changes an endpoint funnels here, because the toolbar's Source and Target + /// titles are rendered once and do not observe the session. Swap used to leave them naming the + /// old pair while the strip and the subtitle had already flipped, so the toolbar pointed at the + /// wrong database as the one about to be written to. + private func endpointsChanged() { + session.resetComparison() + endpointMenus.refreshTitles() + updateSubtitle() + } + @objc internal func showOptions(_ sender: Any?) { presentOptionsPopover(from: sender) } @@ -284,8 +360,21 @@ internal final class CompareSyncWindowController: NSWindowController, @objc private func modeChanged(_ sender: NSSegmentedControl) { let index = sender.selectedSegment guard CompareSyncMode.allCases.indices.contains(index) else { return } - session.mode = CompareSyncMode.allCases[index] + adopt(CompareSyncMode.allCases[index]) + } + + @objc private func modePicked(_ sender: NSMenuItem) { + guard let raw = sender.representedObject as? String, + let mode = CompareSyncMode(rawValue: raw) else { return } + adopt(mode) + } + + private func adopt(_ mode: CompareSyncMode) { + guard session.mode != mode else { return } + session.mode = mode session.resetComparison() + syncModeControl() + endpointMenus.refreshTitles() } @objc private func groupingChanged(_ sender: NSMenuItem) { @@ -303,9 +392,20 @@ internal final class CompareSyncWindowController: NSWindowController, session.searchText = sender.stringValue } - private func endpointsChanged() { - session.resetComparison() - window?.subtitle = session.directionSentence ?? "" + /// `NSWindow.subtitle` is "a secondary line of text that appears in the title bar": contextual + /// identity for the window, on the row it shares with toolbar items. It carried the whole + /// direction sentence, which restated the status strip word for word and spent titlebar width + /// the HIG reserves for controls. `WindowTitleResolver`, the app's own rule for every other + /// window, puts the compact scope binding there and nothing else. + private func updateSubtitle() { + guard let source = session.source, let target = session.target else { + window?.subtitle = "" + return + } + window?.subtitle = String( + format: String(localized: "%1$@ → %2$@"), + source.scopeDescription, target.scopeDescription + ) } // MARK: - Validation @@ -313,21 +413,46 @@ internal final class CompareSyncWindowController: NSWindowController, /// Every toolbar item is also a menu-bar command, so both validate here. The HIG requires the /// menu-bar mirror; this is the single place that decides whether either is available. internal func validateUserInterfaceItem(_ item: any NSValidatedUserInterfaceItem) -> Bool { - switch item.action { + let reason = disabledReason(for: item.action) + describe(item, reason: reason) + syncModeControl() + return reason == nil + } + + private func disabledReason(for action: Selector?) -> String? { + switch action { case #selector(runComparison(_:)): - return session.canCompare + return session.compareDisabledReason case #selector(generateScript(_:)): - return session.canBuildScript + return session.scriptDisabledReason case #selector(applyToTarget(_:)): - return session.canApply + return session.applyDisabledReason case #selector(swapEndpoints(_:)): - return session.canSwap && !session.isBusy + guard session.canSwap else { return String(localized: "Choose a source or a target first.") } + return session.isBusy ? String(localized: "A comparison is already running.") : nil case #selector(stopComparison(_:)): - return session.isBusy - case #selector(showOptions(_:)): - return true + return session.isBusy ? nil : String(localized: "Nothing is running.") default: - return true + return nil + } + } + + /// The tooltip is the reason when there is one and the item's purpose when there is not, which + /// is what the HIG means by a tooltip carrying "different text for a control's different + /// states" rather than repeating the control's name. + private func describe(_ item: any NSValidatedUserInterfaceItem, reason: String?) { + guard let toolbarItem = item as? NSToolbarItem else { return } + toolbarItem.toolTip = reason ?? purpose(of: toolbarItem.itemIdentifier) + } + + private func purpose(of identifier: NSToolbarItem.Identifier) -> String { + switch identifier { + case .compareRun: return String(localized: "Compare the two databases") + case .compareGenerate: return String(localized: "Build the SQL that brings the target in line") + case .compareApply: return String(localized: "Run the script against the target") + case .compareSwap: return String(localized: "Make the target the source and the source the target") + case .compareOptions: return String(localized: "What to compare, and how") + default: return "" } } @@ -349,18 +474,21 @@ internal final class CompareSyncWindowController: NSWindowController, window.contentViewController?.presentAsSheet(sheet) } + /// The anchor used to be `(sender as? NSToolbarItem)?.view`, which is nil for a plain + /// image-and-action item, so the guard below it returned every time and the whole options + /// popover was unreachable. `PopoverPresenter` takes the item itself, and AppKit resolves the + /// anchor even when the item has been clipped into the overflow menu. private func presentOptionsPopover(from sender: Any?) { - guard let window else { return } - let content = NSHostingController(rootView: CompareOptionsView(session: session).environment(\.appServices, .live)) - content.sizingOptions = [.preferredContentSize] - let popover = NSPopover() - popover.contentViewController = content - popover.contentSize = NSSize(width: 420, height: 520) - popover.behavior = .transient - let anchor = (sender as? NSToolbarItem)?.view - ?? window.toolbar?.items.first { $0.itemIdentifier == .compareOptions }?.view - guard let anchor else { return } - popover.show(relativeTo: anchor.bounds, of: anchor, preferredEdge: .maxY) + let item = (sender as? NSToolbarItem) + ?? window?.toolbar?.items.first { $0.itemIdentifier == .compareOptions } + guard let item else { return } + PopoverPresenter.show( + relativeTo: item, + contentSize: NSSize(width: 420, height: 520) + ) { _ in + CompareOptionsView(session: self.session) + .environment(\.appServices, .live) + } } private func dismissSheet() { diff --git a/TablePro/Views/Compare/CompareWindowContentView.swift b/TablePro/Views/Compare/CompareWindowContentView.swift index d43073cfc..4c90d0852 100644 --- a/TablePro/Views/Compare/CompareWindowContentView.swift +++ b/TablePro/Views/Compare/CompareWindowContentView.swift @@ -19,22 +19,27 @@ internal struct CompareWindowContentView: View { internal var onApply: () -> Void internal var body: some View { - VStack(spacing: 0) { - CompareStatusStrip(session: session) - Divider() - AutosavingSplitView( - autosaveName: "com.TablePro.CompareSync.main", - primaryMinimum: 320, - secondaryMinimum: 360 - ) { - resultsPane - } secondary: { - CompareDetailView( - session: session, - onCompare: onCompare, - onGenerateScript: onGenerateScript - ) - } + AutosavingSplitView( + autosaveName: "com.TablePro.CompareSync.main", + primaryMinimum: 260, + secondaryMinimum: 360, + primaryThicknessFraction: 0.33, + primaryAutomaticMaximum: 576 + ) { + resultsPane + } secondary: { + CompareDetailView( + session: session, + onCompare: onCompare, + onGenerateScript: onGenerateScript + ) + } + /// The HIG's sanctioned use of a bottom bar, and the reason this one carries no action: + /// "use it only to display a small amount of information directly related to a window's + /// contents... For example, Finder uses a bottom bar (called the status bar) to display the + /// total number of items in a window, the number of selected items". + .safeAreaInset(edge: .bottom, spacing: 0) { + CompareStatusBar(session: session) } .frame(minWidth: 720, minHeight: 460) } @@ -82,12 +87,12 @@ internal struct CompareStatusStrip: View { Spacer(minLength: 12) if session.isBusy { - CompareProgressView(session: session, showsMessages: false) + CompareProgressView(session: session) } } .padding(.horizontal, 16) - .padding(.vertical, 8) - .background(.bar) + .padding(.vertical, 6) + .frame(maxWidth: .infinity, alignment: .leading) .accessibilityElement(children: .contain) } diff --git a/TablePro/Views/Components/AutosavingSplitView.swift b/TablePro/Views/Components/AutosavingSplitView.swift index 443dbd79e..378e781a1 100644 --- a/TablePro/Views/Components/AutosavingSplitView.swift +++ b/TablePro/Views/Components/AutosavingSplitView.swift @@ -16,6 +16,14 @@ struct AutosavingSplitView: NSViewControllerRepr var primaryMinimum: CGFloat var primaryMaximum: CGFloat? var secondaryMinimum: CGFloat + + /// The share of the width the primary pane takes before the user has ever dragged the divider. + /// `NSSplitViewItem.contentListWithViewController` sets 0.33 for a list beside a detail view, + /// "akin to Mail's message list", and caps automatic sizing at 576pt so a wide display grows + /// the detail pane rather than the list. Nil keeps the previous behaviour, where the first + /// layout fell out of the minimums. + var primaryThicknessFraction: CGFloat? + var primaryAutomaticMaximum: CGFloat? var primaryHoldingPriority: NSLayoutConstraint.Priority = .splitPaneHolding var collapsesPrimaryWhenTight = false @ViewBuilder let primary: () -> Primary @@ -48,6 +56,12 @@ struct AutosavingSplitView: NSViewControllerRepr if let primaryMaximum { primaryItem.maximumThickness = primaryMaximum } + if let primaryThicknessFraction { + primaryItem.preferredThicknessFraction = primaryThicknessFraction + } + if let primaryAutomaticMaximum { + primaryItem.automaticMaximumThickness = primaryAutomaticMaximum + } let secondaryItem = NSSplitViewItem(viewController: secondaryController) secondaryItem.minimumThickness = secondaryMinimum diff --git a/TableProTests/Core/Compare/CompareDataPlanGroupingTests.swift b/TableProTests/Core/Compare/CompareDataPlanGroupingTests.swift new file mode 100644 index 000000000..8e7b6dd79 --- /dev/null +++ b/TableProTests/Core/Compare/CompareDataPlanGroupingTests.swift @@ -0,0 +1,221 @@ +// +// CompareDataPlanGroupingTests.swift +// TableProTests +// +// The data list built its table straight from `session.dataPlans.sorted(using:)` and read neither +// `searchText` nor `grouping`, while both toolbar controls stayed enabled: typing in the search +// field and choosing a grouping did nothing at all in Data mode. These pin that both now reach the +// list, and that a group header expands to exactly the plans a bulk include should touch. +// + +@testable import TablePro +import XCTest + +final class CompareDataPlanGroupingTests: XCTestCase { + private let comparators = [KeyPathComparator(\CompareDataPlanRow.tableName)] + + private func plan( + _ table: String, + unavailableReason: String? = nil, + summary: DataDiffSummary? = nil + ) -> DataComparePlan { + DataComparePlan( + table: table, + schema: "public", + columns: ["id", "name"], + keyColumns: ["id"], + isEnabled: false, + unavailableReason: unavailableReason, + summary: summary + ) + } + + private func summary(inserts: Int = 0, updates: Int = 0, deletes: Int = 0, identical: Int = 0) -> DataDiffSummary { + DataDiffSummary( + insertCount: inserts, + updateCount: updates, + deleteCount: deletes, + identicalCount: identical, + skippedNullKeyCount: 0, + entries: [], + truncatedEntries: false + ) + } + + // MARK: - Search + + func testSearchMatchesTableNamesCaseInsensitively() { + let matched = CompareDataPlanGrouping.matching( + [plan("orders"), plan("customers"), plan("order_items")], + searchText: "ORDER" + ) + + XCTAssertEqual(matched.map { $0.id }, ["public.orders", "public.order_items"]) + } + + func testAnEmptySearchKeepsEveryPlan() { + let plans = [plan("orders"), plan("customers")] + + XCTAssertEqual(CompareDataPlanGrouping.matching(plans, searchText: " ").count, 2) + XCTAssertEqual(CompareDataPlanGrouping.matching(plans, searchText: "").count, 2) + } + + func testSearchMatchesTheQualifiedName() { + let matched = CompareDataPlanGrouping.matching([plan("orders")], searchText: "public.") + + XCTAssertEqual(matched.count, 1) + } + + // MARK: - Sections + + func testGroupingByDifferenceSeparatesEveryOutcome() { + let groups = CompareDataPlanGrouping.groups( + from: [ + plan("orders", summary: summary(inserts: 3)), + plan("customers", summary: summary(identical: 12)), + plan("audit"), + plan("legacy", unavailableReason: "No primary key.") + ], + grouping: .byDifference, + sortedUsing: comparators + ) + + XCTAssertEqual(groups.count, 4) + XCTAssertEqual(groups.flatMap { $0.rows }.count, 4) + XCTAssertEqual(groups.map { $0.rows.count }, [1, 1, 1, 1]) + } + + /// A plan nobody has run and a plan that matched are different answers. Folding them together + /// would report a table that was never compared as identical. + func testAPlanThatWasNeverComparedIsNotReportedAsIdentical() { + let groups = CompareDataPlanGrouping.groups( + from: [plan("customers", summary: summary(identical: 4)), plan("audit")], + grouping: .byDifference, + sortedUsing: comparators + ) + + XCTAssertEqual(groups.count, 2) + XCTAssertTrue(groups.allSatisfy { $0.rows.count == 1 }, "the two outcomes never share a section") + XCTAssertEqual(Set(groups.map { $0.header.id }).count, 2) + } + + func testAnEmptyBucketProducesNoSection() { + let groups = CompareDataPlanGrouping.groups( + from: [plan("orders", summary: summary(inserts: 1))], + grouping: .byDifference, + sortedUsing: comparators + ) + + XCTAssertEqual(groups.count, 1) + } + + /// Every plan is a table, so this grouping is one section rather than none. The control stays + /// live and says what it grouped by instead of looking broken in one of the two modes. + func testGroupingByObjectTypeProducesOneSection() { + let groups = CompareDataPlanGrouping.groups( + from: [plan("orders"), plan("customers")], + grouping: .byObjectType, + sortedUsing: comparators + ) + + XCTAssertEqual(groups.count, 1) + XCTAssertEqual(groups.first?.rows.count, 2) + } + + func testNoGroupingProducesFlatRows() { + let rows = CompareDataPlanGrouping.rows( + from: [plan("orders"), plan("customers")], sortedUsing: comparators + ) + let groups = CompareDataPlanGrouping.groups( + from: [plan("orders"), plan("customers")], grouping: .none, sortedUsing: comparators + ) + + XCTAssertEqual(rows.map { $0.tableName }, ["public.customers", "public.orders"]) + XCTAssertTrue(rows.allSatisfy { !$0.isGroup }) + XCTAssertTrue(groups.isEmpty) + } + + // MARK: - Bulk include + + func testGroupMembersExcludeUnreadablePlans() { + let groups = CompareDataPlanGrouping.groups( + from: [plan("orders"), plan("legacy", unavailableReason: "No primary key.")], + grouping: .byObjectType, + sortedUsing: comparators + ) + + let members = groups.flatMap { $0.header.memberIds } + XCTAssertEqual(members, ["public.orders"]) + } + + func testSelectingAGroupHeaderExpandsToItsMembers() { + let groups = CompareDataPlanGrouping.groups( + from: [plan("orders"), plan("customers")], + grouping: .byObjectType, + sortedUsing: comparators + ) + let header = groups.first?.header.id ?? "" + + let ids = CompareDataPlanGrouping.planIds(in: [header], groups: groups) + + XCTAssertEqual(ids.sorted(), ["public.customers", "public.orders"]) + } + + func testSelectingPlansPassesTheirOwnIdentifiersThrough() { + let ids = CompareDataPlanGrouping.planIds(in: ["public.orders"], groups: []) + + XCTAssertEqual(ids, ["public.orders"]) + } + + func testAGroupIdentifierCannotCollideWithAPlanIdentifier() { + let groups = CompareDataPlanGrouping.groups( + from: [plan("orders")], grouping: .byObjectType, sortedUsing: comparators + ) + + XCTAssertTrue(CompareDataPlanGrouping.isGroupIdentifier(groups[0].header.id)) + XCTAssertFalse(CompareDataPlanGrouping.isGroupIdentifier(plan("orders").id)) + } + + // MARK: - Header counts + + func testAGroupHeaderSumsItsMembersCounts() { + let groups = CompareDataPlanGrouping.groups( + from: [ + plan("orders", summary: summary(inserts: 2, updates: 1, deletes: 0, identical: 5)), + plan("customers", summary: summary(inserts: 3, updates: 0, deletes: 4, identical: 6)) + ], + grouping: .byObjectType, + sortedUsing: comparators + ) + let header = groups.first?.header + + XCTAssertEqual(header?.insertCount, 5) + XCTAssertEqual(header?.updateCount, 1) + XCTAssertEqual(header?.deleteCount, 4) + XCTAssertEqual(header?.identicalCount, 11) + } + + /// Nothing compared means no number, not a zero: the count columns draw a blank for a table + /// nobody ran, and a header has to say the same thing rather than claim it found none. + func testAGroupWithNothingComparedCarriesNoCounts() { + let groups = CompareDataPlanGrouping.groups( + from: [plan("orders"), plan("customers")], + grouping: .byObjectType, + sortedUsing: comparators + ) + let header = groups.first?.header + + XCTAssertNil(header?.insertCount) + XCTAssertNil(header?.identicalCount) + } + + func testAPlanRowCarriesItsOwnCounts() { + let rows = CompareDataPlanGrouping.rows( + from: [plan("orders", summary: summary(inserts: 2, identical: 7))], sortedUsing: comparators + ) + + XCTAssertEqual(rows.first?.insertCount, 2) + XCTAssertEqual(rows.first?.identicalCount, 7) + XCTAssertNotNil(rows.first?.plan) + } +} diff --git a/TableProTests/Views/Compare/CompareCountedStringTests.swift b/TableProTests/Views/Compare/CompareCountedStringTests.swift new file mode 100644 index 000000000..dedcf7e26 --- /dev/null +++ b/TableProTests/Views/Compare/CompareCountedStringTests.swift @@ -0,0 +1,134 @@ +// +// CompareCountedStringTests.swift +// TableProTests +// + +import Foundation +@testable import TablePro +import Testing + +/// A Compare & Sync window that reads "1 differences" is a defect the compiler cannot see. The +/// string catalog is the only place a plural can live for a string whose whole content is one +/// counted noun: `String(format:)` resolves a plural variation, but only when the catalog declares +/// one. A sentence whose counted noun follows a later argument cannot be reached that way, so those +/// carry their own singular in Swift and are pinned here as separate keys. +@Suite("Compare counted strings") +struct CompareCountedStringTests { + @Test("A single change reads as one change") + func singleChangeReadsAsSingular() { + #expect(String(format: String(localized: "%d changes"), 1) == "1 change") + #expect(String(format: String(localized: "%d changes"), 4) == "4 changes") + } + + @Test("A single byte reads as one byte") + func singleByteReadsAsSingular() { + #expect(String(format: String(localized: "%d bytes"), 1) == "1 byte") + #expect(String(format: String(localized: "%d bytes"), 12) == "12 bytes") + } + + @Test("A single NULL-keyed row reads in the singular") + func singleSkippedRowReadsAsSingular() { + let text = String( + format: String( + localized: "%d rows hold NULL in a key column and were left out. Choose a key with no NULLs to compare them." + ), + 1 + ) + + #expect(text.hasPrefix("1 row holds NULL")) + } + + @Test("A single matching row reads in the singular") + func singleMatchingRowReadsAsSingular() { + let text = String( + format: String( + localized: "%d rows match. Matching rows are counted, not listed, so a difference is never crowded out of this list." + ), + 1 + ) + + #expect(text.hasPrefix("1 row matches.")) + } + + @Test("Every Compare plural lives in the catalog rather than in a Swift branch") + func catalogDeclaresTheComparePlurals() throws { + for key in Self.pluralKeys { + let entry = try Self.catalogEntry(key) + let localizations = try #require(entry["localizations"] as? [String: Any]) + let english = try #require(localizations["en"] as? [String: Any]) + let variations = try #require(english["variations"] as? [String: Any]) + let plural = try #require(variations["plural"] as? [String: Any]) + + #expect(plural["one"] != nil, "\(key) declares no singular") + #expect(plural["other"] != nil, "\(key) declares no plural") + } + } + + /// A plural variation rewrites only the source language. Rewriting the English `stringUnit` into + /// a `%#@substitution@` form instead changes the source every translation is checked against, + /// which is what leaves `StringCatalogIntegrityTests` reporting five offenders on the one string + /// that already does it. + @Test("A Compare plural leaves the English source string alone") + func pluralsDoNotRewriteTheEnglishSourceString() throws { + for key in Self.pluralKeys { + let entry = try Self.catalogEntry(key) + let localizations = try #require(entry["localizations"] as? [String: Any]) + let english = try #require(localizations["en"] as? [String: Any]) + + #expect(english["stringUnit"] == nil, "\(key) rewrote its source string") + #expect(english["substitutions"] == nil, "\(key) rewrote its source string") + } + } + + /// The counted noun follows the second argument in each of these, which a plural variation on + /// the format string cannot reach, so the view picks the singular sentence instead. They are + /// keys of their own and have to stay that way. + @Test("A sentence whose count is not its first argument carries its own singular") + func restructuredSentencesReadCorrectlyAtOne() { + #expect( + String(format: String(localized: "Apply 1 statement to %@?"), "staging") == "Apply 1 statement to staging?" + ) + #expect( + String(format: String(localized: "%d of 1 table will be compared."), 1) == "1 of 1 table will be compared." + ) + #expect( + String(format: String(localized: "1 statement, %d will run."), 0) == "1 statement, 0 will run." + ) + #expect( + String( + format: String(localized: "1 statement stays out of this run and %@ keeps what it has for it."), + "staging" + ) == "1 statement stays out of this run and staging keeps what it has for it." + ) + } + + private static let pluralKeys = [ + "%d changes", + "%d bytes", + "%d rows hold NULL in a key column and were left out. Choose a key with no NULLs to compare them.", + "%d rows match. Matching rows are counted, not listed, so a difference is never crowded out of this list." + ] + + private static func catalogEntry(_ key: String) throws -> [String: Any] { + let url = try repoRoot().appendingPathComponent("TablePro/Resources/Localizable.xcstrings") + let data = try Data(contentsOf: url) + let catalog = try #require(try JSONSerialization.jsonObject(with: data) as? [String: Any]) + let strings = try #require(catalog["strings"] as? [String: Any]) + return try #require(strings[key] as? [String: Any]) + } + + private static func repoRoot() throws -> URL { + var directory = URL(fileURLWithPath: #filePath).deletingLastPathComponent() + for _ in 0 ..< 12 { + if FileManager.default.fileExists(atPath: directory.appendingPathComponent("project.yml").path) { + return directory + } + directory = directory.deletingLastPathComponent() + } + throw CatalogError.repoRootNotFound + } + + private enum CatalogError: Error { + case repoRootNotFound + } +} From 5e52a5c12345a3b4b5aa0ed19d289a9db2348e2b Mon Sep 17 00:00:00 2001 From: Ngo Quoc Dat Date: Sun, 23 Aug 2026 14:01:33 +0700 Subject: [PATCH 7/9] fix(compare): stop the toolbar search field from eating the toolbar (#721) Claude-Session: https://claude.ai/code/session_01QZKyY8vPUn3myu82D145pe --- TablePro/Resources/Localizable.xcstrings | 111 +++++++++++++++++- .../Compare/CompareSyncWindowController.swift | 70 ++++++++--- 2 files changed, 165 insertions(+), 16 deletions(-) diff --git a/TablePro/Resources/Localizable.xcstrings b/TablePro/Resources/Localizable.xcstrings index 25a101bc1..54f16abc8 100644 --- a/TablePro/Resources/Localizable.xcstrings +++ b/TablePro/Resources/Localizable.xcstrings @@ -3605,6 +3605,9 @@ }, "%1$@ %2$@ is dropped and recreated, so anything depending on it fails until it exists again." : { + }, + "%1$@ → %2$@" : { + }, "%1$@ → %2$@ · %3$@ runs before, %4$@ now" : { "comment" : "Regression detail: prior duration, recent duration, prior count, recent count", @@ -3900,6 +3903,9 @@ }, "%1$d of %2$d allowed for this run" : { + }, + "%1$d of %2$d included" : { + }, "%1$d of %2$d rows, %3$d marked for deletion" : { "localizations" : { @@ -4415,6 +4421,9 @@ } } } + }, + "%d included" : { + }, "%d left out" : { @@ -4619,6 +4628,9 @@ } } } + }, + "%d of 1 table will be compared." : { + }, "%d plugin(s) could not be loaded" : { "extractionState" : "stale", @@ -4869,6 +4881,9 @@ } } } + }, + "%d statements would destroy data and are not allowed yet." : { + }, "%d-%d of ? rows" : { "extractionState" : "stale", @@ -7463,6 +7478,15 @@ } } } + }, + "1 statement stays out of this run and %@ keeps what it has for it." : { + + }, + "1 statement would destroy data and is not allowed yet." : { + + }, + "1 statement, %d will run." : { + }, "1 year" : { "localizations" : { @@ -8590,6 +8614,9 @@ } } } + }, + "A comparison is already running." : { + }, "A connection can use one connection method at a time. Disable the other methods to use %@." : { "localizations" : { @@ -9006,6 +9033,9 @@ } } } + }, + "A run is already in progress." : { + }, "A SELECT to export. Use instead of 'tables'." : { @@ -15236,6 +15266,16 @@ } } }, + "Applied to %@ at %@. 1 statement." : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Applied to %1$@ at %2$@. 1 statement." + } + } + } + }, "Applied when opening a table. Click a column header to override." : { "extractionState" : "stale", "localizations" : { @@ -15317,6 +15357,9 @@ }, "Apply %1$d statements to %2$@?" : { + }, + "Apply 1 statement to %@?" : { + }, "Apply a row limit when running queries and cap results at the configured row count" : { "localizations" : { @@ -19265,6 +19308,9 @@ } } } + }, + "Build the SQL that brings the target in line" : { + }, "Building chart" : { "localizations" : { @@ -22874,6 +22920,18 @@ }, "Choose a source and a target, then compare them." : { + }, + "Choose a source or a target first." : { + + }, + "Choose a source to compare from." : { + + }, + "Choose a target to compare against." : { + + }, + "Choose a target to write to." : { + }, "Choose AI provider and model" : { "localizations" : { @@ -27885,6 +27943,12 @@ }, "Compare structure or data between two connections and generate the sync script." : { + }, + "Compare the two databases" : { + + }, + "Compare the two databases first." : { + }, "Compare/Sync with…" : { @@ -27898,6 +27962,9 @@ } } } + }, + "Compared %@. 1 difference. Nothing has been written." : { + }, "Compared columns" : { @@ -56874,6 +56941,9 @@ }, "Generate Script" : { + }, + "Generate the script first." : { + }, "Generate the script to see exactly what would run." : { @@ -58196,6 +58266,9 @@ } } } + }, + "Has Differences" : { + }, "Has unsaved changes" : { "localizations" : { @@ -61496,7 +61569,10 @@ } } }, - "Include at least one object, then generate the script." : { + "Include at least one object to generate a script for it." : { + + }, + "Include at least one table to generate a script for it." : { }, "Include column headers" : { @@ -61676,6 +61752,9 @@ }, "Include Every Table" : { + }, + "Include every table in this group" : { + }, "Include in iCloud Sync" : { "localizations" : { @@ -70415,6 +70494,9 @@ } } } + }, + "Make the target the source and the source the target" : { + }, "Making %@ NOT NULL fails if any existing row holds NULL." : { @@ -77345,6 +77427,9 @@ }, "No Comparison Yet" : { + }, + "No comparison yet." : { + }, "No compatible build is available yet. This plugin will update automatically once one is published." : { "localizations" : { @@ -80770,6 +80855,9 @@ } } } + }, + "No tables were compared. Choose the tables to compare, then press Compare." : { + }, "No Tables Yet" : { @@ -81234,6 +81322,9 @@ }, "Not compared" : { + }, + "Not Compared" : { + }, "Not Compared Yet" : { @@ -82120,6 +82211,9 @@ }, "Nothing in this script destroys data in %@." : { + }, + "Nothing is running." : { + }, "Nothing is selected to apply." : { @@ -102615,6 +102709,9 @@ } } } + }, + "Run the script against the target" : { + }, "Run the statement and report actual timings (default false)" : { @@ -123697,6 +123794,9 @@ }, "The schema change to make, in plain language" : { + }, + "The script already ran. Compare again to see where the target stands." : { + }, "The secret manager did not return valid JSON." : { "localizations" : { @@ -123916,6 +124016,9 @@ } } } + }, + "The source and the target are the same database." : { + }, "The source driver cannot stream rows for a comparison." : { @@ -124837,6 +124940,9 @@ }, "These rows come from a view, which cannot be edited." : { + }, + "These two engines cannot share a script." : { + }, "This %1$@ has no %2$@ yet." : { "localizations" : { @@ -136109,6 +136215,9 @@ }, "What to Compare" : { + }, + "What to compare, and how" : { + }, "What to do with the transaction" : { diff --git a/TablePro/Views/Compare/CompareSyncWindowController.swift b/TablePro/Views/Compare/CompareSyncWindowController.swift index 8f742817d..3ed6cb7de 100644 --- a/TablePro/Views/Compare/CompareSyncWindowController.swift +++ b/TablePro/Views/Compare/CompareSyncWindowController.swift @@ -45,6 +45,7 @@ internal final class CompareSyncWindowController: NSWindowController, self?.endpointsChanged() } private weak var modeControl: NSSegmentedControl? + private weak var searchToolbarItem: NSSearchToolbarItem? internal static func present(prefillSource connectionId: UUID?) { let controller = controllers[connectionId] ?? CompareSyncWindowController(prefillSource: connectionId) @@ -309,17 +310,39 @@ internal final class CompareSyncWindowController: NSWindowController, return item } - private func searchItem(_ identifier: NSToolbarItem.Identifier) -> NSToolbarItem { + /// `NSSearchToolbarItem` stretches past `preferredWidthForSearchField` to absorb whatever slack + /// the toolbar has: measured at 325pt in a 1400pt window against a preferred 240, which is why + /// the field swallowed a third of the toolbar. The preferred width is documented as the width + /// it takes "whenever it gets the keyboard focus", not a cap, so the cap has to be a real + /// constraint on the field. `NSSearchToolbarItem.h`: "If specifying custom width constraints to + /// the search field, they should not conflict with this value", so both are the same number. + /// + /// The field is configured before it is assigned, which is the order the header asks for: + /// "While inside the toolbar item, the field properties and layout constraints are managed by + /// the item. The field should be configured before assigned." + private func searchItem(_ identifier: NSToolbarItem.Identifier) -> NSSearchToolbarItem { + let field = NSSearchField() + field.sendsWholeSearchString = false + field.sendsSearchStringImmediately = true + field.placeholderString = String(localized: "Filter by name") + field.target = self + field.action = #selector(searchChanged(_:)) + field.stringValue = session.searchText + let item = NSSearchToolbarItem(itemIdentifier: identifier) - item.label = String(localized: "Search") - item.paletteLabel = String(localized: "Search") - item.toolTip = String(localized: "Filter results by name") - item.searchField.sendsWholeSearchString = false - item.searchField.target = self - item.searchField.action = #selector(searchChanged(_:)) + item.label = String(localized: "Filter") + item.paletteLabel = String(localized: "Filter") + item.toolTip = String(localized: "Show only the objects whose name contains this text") + item.searchField = field + item.preferredWidthForSearchField = Self.searchFieldWidth + field.widthAnchor.constraint(lessThanOrEqualToConstant: Self.searchFieldWidth).isActive = true + item.visibilityPriority = .low + searchToolbarItem = item return item } + private static let searchFieldWidth: CGFloat = 220 + // MARK: - Actions @objc internal func runComparison(_ sender: Any?) { @@ -357,6 +380,15 @@ internal final class CompareSyncWindowController: NSWindowController, session.cancelRunningWork() } + /// Edit > Find > Find… already owns Command F and routes by nil target, so the Compare window + /// answers that command rather than declaring a second binding for the same idea: two menu + /// items sharing a key equivalent leaves one of them permanently dead. + /// `beginSearchInteraction` is AppKit's own entry point, and it works even once the item has + /// been clipped into the overflow menu. + @objc internal func performFind(_ sender: Any?) { + searchToolbarItem?.beginSearchInteraction() + } + @objc private func modeChanged(_ sender: NSSegmentedControl) { let index = sender.selectedSegment guard CompareSyncMode.allCases.indices.contains(index) else { return } @@ -377,15 +409,17 @@ internal final class CompareSyncWindowController: NSWindowController, endpointMenus.refreshTitles() } + /// Only the Group By menu, found by identifier. Walking every `NSMenuToolbarItem` also reached + /// the Source and Target popups and rewrote their checkmarks from a grouping value. @objc private func groupingChanged(_ sender: NSMenuItem) { guard let raw = sender.representedObject as? String, let grouping = CompareGrouping(rawValue: raw) else { return } session.grouping = grouping - window?.toolbar?.items - .compactMap { $0 as? NSMenuToolbarItem } - .forEach { menuItem in - menuItem.menu.items.forEach { $0.state = ($0.representedObject as? String) == raw ? .on : .off } - } + let item = window?.toolbar?.items.first { $0.itemIdentifier == .compareGrouping } + guard let menu = (item as? NSMenuToolbarItem)?.menu else { return } + for entry in menu.items { + entry.state = (entry.representedObject as? String) == raw ? .on : .off + } } @objc private func searchChanged(_ sender: NSSearchField) { @@ -432,6 +466,8 @@ internal final class CompareSyncWindowController: NSWindowController, return session.isBusy ? String(localized: "A comparison is already running.") : nil case #selector(stopComparison(_:)): return session.isBusy ? nil : String(localized: "Nothing is running.") + case #selector(performFind(_:)): + return searchToolbarItem == nil ? String(localized: "The filter field is not in the toolbar.") : nil default: return nil } @@ -442,17 +478,21 @@ internal final class CompareSyncWindowController: NSWindowController, /// states" rather than repeating the control's name. private func describe(_ item: any NSValidatedUserInterfaceItem, reason: String?) { guard let toolbarItem = item as? NSToolbarItem else { return } - toolbarItem.toolTip = reason ?? purpose(of: toolbarItem.itemIdentifier) + /// An identifier with no purpose of its own keeps whatever tooltip it was built with. The + /// Source and Target items carry the unshortened scope there, and blanking it would undo + /// the only place the full path is still readable. + guard let text = reason ?? purpose(of: toolbarItem.itemIdentifier) else { return } + toolbarItem.toolTip = text } - private func purpose(of identifier: NSToolbarItem.Identifier) -> String { + private func purpose(of identifier: NSToolbarItem.Identifier) -> String? { switch identifier { case .compareRun: return String(localized: "Compare the two databases") case .compareGenerate: return String(localized: "Build the SQL that brings the target in line") case .compareApply: return String(localized: "Run the script against the target") case .compareSwap: return String(localized: "Make the target the source and the source the target") case .compareOptions: return String(localized: "What to compare, and how") - default: return "" + default: return nil } } From eb200a76be19d03f2eef9e42952bd0f925fd240b Mon Sep 17 00:00:00 2001 From: Ngo Quoc Dat Date: Sun, 23 Aug 2026 14:35:57 +0700 Subject: [PATCH 8/9] fix(compare): replace the endpoint menu with a popover chooser that can load --- TablePro/Resources/Localizable.xcstrings | 12 +- .../Compare/CompareEndpointMenuBuilder.swift | 303 ------------------ .../Views/Compare/CompareEndpointPicker.swift | 253 +++++++++++++++ .../Compare/CompareEndpointPickerModel.swift | 106 ++++++ .../CompareEndpointToolbarController.swift | 141 ++++++++ .../Compare/CompareSyncWindowController.swift | 5 +- .../CompareEndpointPickerModelTests.swift | 143 +++++++++ 7 files changed, 656 insertions(+), 307 deletions(-) delete mode 100644 TablePro/Views/Compare/CompareEndpointMenuBuilder.swift create mode 100644 TablePro/Views/Compare/CompareEndpointPicker.swift create mode 100644 TablePro/Views/Compare/CompareEndpointPickerModel.swift create mode 100644 TablePro/Views/Compare/CompareEndpointToolbarController.swift create mode 100644 TableProTests/Core/Compare/CompareEndpointPickerModelTests.swift diff --git a/TablePro/Resources/Localizable.xcstrings b/TablePro/Resources/Localizable.xcstrings index 54f16abc8..8aaf446a3 100644 --- a/TablePro/Resources/Localizable.xcstrings +++ b/TablePro/Resources/Localizable.xcstrings @@ -54236,6 +54236,9 @@ } } } + }, + "Filter by name" : { + }, "Filter by only this row" : { "extractionState" : "stale", @@ -54720,9 +54723,6 @@ } } } - }, - "Filter results by name" : { - }, "Filter roles" : { "localizations" : { @@ -110058,6 +110058,9 @@ } } } + }, + "Show only the objects whose name contains this text" : { + }, "Show password" : { "localizations" : { @@ -122849,6 +122852,9 @@ }, "The export file could not be written." : { + }, + "The filter field is not in the toolbar." : { + }, "The folder \"%@\" will be deleted. Items inside will be moved to the parent level." : { "localizations" : { diff --git a/TablePro/Views/Compare/CompareEndpointMenuBuilder.swift b/TablePro/Views/Compare/CompareEndpointMenuBuilder.swift deleted file mode 100644 index 3d793f462..000000000 --- a/TablePro/Views/Compare/CompareEndpointMenuBuilder.swift +++ /dev/null @@ -1,303 +0,0 @@ -// -// CompareEndpointMenuBuilder.swift -// TablePro -// -// The Source and Target toolbar popups. -// -// An endpoint is a database, not a connection. Picking only a connection is -// what made two databases on one server impossible to compare and left the -// schema unset, so the menu is connection then database then schema, and the -// deeper levels load when their submenu opens rather than on every build. -// - -import AppKit -import SwiftUI - -@MainActor -internal final class CompareEndpointMenuBuilder: NSObject, NSMenuDelegate { - internal enum Side { - case source - case target - - internal var title: String { - switch self { - case .source: return String(localized: "Source") - case .target: return String(localized: "Target") - } - } - - internal var caption: String { - switch self { - case .source: return String(localized: "Will not change") - case .target: return String(localized: "Will be changed") - } - } - - internal var symbol: String { - switch self { - case .source: return "arrow.up.right.square" - case .target: return "arrow.down.right.square" - } - } - - internal var routeToken: String { - self == .source ? "source" : "target" - } - - internal init?(routeToken: String) { - switch routeToken { - case "source": self = .source - case "target": self = .target - default: return nil - } - } - } - - private let session: CompareSyncSession - private let onChange: () -> Void - private let metadata = CompareMetadataService() - - private var items: [Side: NSMenuToolbarItem] = [:] - private var databasesByConnection: [UUID: [String]] = [:] - private var schemasByEndpoint: [String: [String]] = [:] - private var loading: Set = [] - - internal init(session: CompareSyncSession, onChange: @escaping () -> Void) { - self.session = session - self.onChange = onChange - super.init() - } - - internal func item(for side: Side, identifier: NSToolbarItem.Identifier) -> NSToolbarItem { - let item = NSMenuToolbarItem(itemIdentifier: identifier) - item.label = side.title - item.paletteLabel = side.title - item.toolTip = side.caption - item.image = NSImage(systemSymbolName: side.symbol, accessibilityDescription: side.title) - item.showsIndicator = true - let menu = NSMenu() - menu.delegate = self - menu.identifier = NSUserInterfaceItemIdentifier(side.routeToken) - item.menu = menu - items[side] = item - refreshTitles() - return item - } - - internal func refreshTitles() { - for (side, item) in items { - let endpoint = side == .source ? session.source : session.target - item.title = endpoint?.qualifiedDescription ?? String(format: chooseFormat, side.title) - item.toolTip = endpoint?.fullDescription ?? side.caption - } - } - - private var chooseFormat: String { - String(localized: "Choose %@") - } - - // MARK: - Menu construction - - internal func menuNeedsUpdate(_ menu: NSMenu) { - let parts = (menu.identifier?.rawValue ?? "").split(separator: "|").map(String.init) - guard let first = parts.first, let side = Side(routeToken: first) else { return } - if parts.count > 1 { - switch parts[1] { - case "db": - guard parts.count > 2, let connectionId = UUID(uuidString: parts[2]) else { return } - databaseMenuNeedsUpdate(menu, side: side, connectionId: connectionId) - case "schema": - guard parts.count > 3, let connectionId = UUID(uuidString: parts[2]) else { return } - schemaMenuNeedsUpdate( - menu, side: side, connectionId: connectionId, - database: parts[3...].joined(separator: "|") - ) - default: - return - } - return - } - menu.removeAllItems() - let connections = ConnectionStorage.shared.loadConnections() - guard !connections.isEmpty else { - let empty = NSMenuItem(title: String(localized: "No saved connections"), action: nil, keyEquivalent: "") - empty.isEnabled = false - menu.addItem(empty) - return - } - for connection in connections { - menu.addItem(connectionItem(connection, side: side)) - } - } - - private func connectionItem(_ connection: DatabaseConnection, side: Side) -> NSMenuItem { - let item = NSMenuItem(title: connection.name, action: nil, keyEquivalent: "") - item.image = colorSwatch(connection.color) - - if side == .target, connection.safeModeLevel == .readOnly { - item.isEnabled = false - item.toolTip = String(localized: "Read-Only. Choose a different connection to write changes to.") - return item - } - - let submenu = NSMenu() - submenu.delegate = self - submenu.identifier = NSUserInterfaceItemIdentifier( - "\(side.routeToken)|db|\(connection.id.uuidString)" - ) - item.submenu = submenu - return item - } - - private func databaseMenuNeedsUpdate(_ menu: NSMenu, side: Side, connectionId: UUID) { - menu.removeAllItems() - guard let connection = ConnectionStorage.shared.loadConnections().first(where: { $0.id == connectionId }) else { - return - } - guard let databases = databasesByConnection[connectionId] else { - menu.addItem(loadingItem()) - load(databasesFor: connection, menu: menu) - return - } - guard !databases.isEmpty else { - let endpoint = CompareSyncEndpoint.from(connection: connection) - menu.addItem(pick( - endpoint: endpoint, - side: side, - title: endpoint.databaseLabel.isEmpty ? connection.name : endpoint.databaseLabel, - toolTip: endpoint.fullDescription - )) - return - } - for database in databases { - let endpoint = CompareSyncEndpoint.from(connection: connection, database: database) - if PluginManager.shared.supportsSchemaSwitching(for: connection.type) { - let item = NSMenuItem(title: endpoint.databaseLabel, action: nil, keyEquivalent: "") - item.toolTip = database - let submenu = NSMenu() - submenu.delegate = self - submenu.identifier = NSUserInterfaceItemIdentifier( - "\(side.routeToken)|schema|\(connectionId.uuidString)|\(database)" - ) - item.submenu = submenu - menu.addItem(item) - } else { - menu.addItem(pick(endpoint: endpoint, side: side, title: endpoint.databaseLabel, toolTip: database)) - } - } - } - - private func schemaMenuNeedsUpdate(_ menu: NSMenu, side: Side, connectionId: UUID, database: String) { - menu.removeAllItems() - guard let connection = ConnectionStorage.shared.loadConnections().first(where: { $0.id == connectionId }) else { - return - } - let base = CompareSyncEndpoint.from(connection: connection, database: database) - - let key = "\(connectionId.uuidString)|\(database)" - guard let schemas = schemasByEndpoint[key] else { - menu.addItem(loadingItem()) - load(schemasFor: base, connection: connection, key: key, menu: menu) - return - } - /// There is deliberately no "All schemas". Comparing every schema at once reads two - /// schemas' same-named tables as one object, and the generated ALTER carries no schema of - /// its own, so it would land on whichever schema the connection happens to be on. An - /// endpoint on a schema-capable engine names exactly one schema. - guard !schemas.isEmpty else { - menu.addItem(pick(endpoint: base, side: side, title: database)) - return - } - for schema in schemas { - menu.addItem(pick(endpoint: base.withSchema(schema), side: side, title: schema)) - } - } - - private func pick( - endpoint: CompareSyncEndpoint, - side: Side, - title: String, - toolTip: String? = nil - ) -> NSMenuItem { - let item = NSMenuItem(title: title, action: #selector(select(_:)), keyEquivalent: "") - item.target = self - item.toolTip = toolTip ?? endpoint.fullDescription - item.representedObject = CompareEndpointSelection(side: side, endpoint: endpoint) - let current = side == .source ? session.source : session.target - item.state = current?.id == endpoint.id ? .on : .off - return item - } - - private func loadingItem() -> NSMenuItem { - let item = NSMenuItem(title: String(localized: "Loading…"), action: nil, keyEquivalent: "") - item.isEnabled = false - return item - } - - @objc private func select(_ sender: NSMenuItem) { - guard let selection = sender.representedObject as? CompareEndpointSelection else { return } - switch selection.side { - case .source: session.source = selection.endpoint - case .target: session.target = selection.endpoint - } - refreshTitles() - onChange() - } - - // MARK: - Lazy loads - - /// A menu cannot wait on a network read, so the submenu opens showing "Loading…" and is - /// rebuilt once the answer arrives. The load is keyed so a menu opened twice does not run it - /// twice. - private func load(databasesFor connection: DatabaseConnection, menu: NSMenu) { - let key = "db|\(connection.id.uuidString)" - guard loading.insert(key).inserted else { return } - let service = metadata - Task { [weak self] in - let databases = (try? await service.databases(for: connection)) ?? [] - guard let self else { return } - self.loading.remove(key) - self.databasesByConnection[connection.id] = databases - menu.update() - } - } - - private func load( - schemasFor endpoint: CompareSyncEndpoint, - connection: DatabaseConnection, - key: String, - menu: NSMenu - ) { - guard loading.insert("schema|\(key)").inserted else { return } - let service = metadata - Task { [weak self] in - let schemas = (try? await service.schemas(for: endpoint, connection: connection)) ?? [] - guard let self else { return } - self.loading.remove("schema|\(key)") - self.schemasByEndpoint[key] = schemas - menu.update() - } - } - - private func colorSwatch(_ color: ConnectionColor) -> NSImage? { - guard color != .none else { return nil } - let size = NSSize(width: 10, height: 10) - let image = NSImage(size: size) - image.lockFocus() - NSColor(color.color).setFill() - NSBezierPath(ovalIn: NSRect(origin: .zero, size: size)).fill() - image.unlockFocus() - return image - } -} - -private final class CompareEndpointSelection: NSObject { - let side: CompareEndpointMenuBuilder.Side - let endpoint: CompareSyncEndpoint - - init(side: CompareEndpointMenuBuilder.Side, endpoint: CompareSyncEndpoint) { - self.side = side - self.endpoint = endpoint - super.init() - } -} diff --git a/TablePro/Views/Compare/CompareEndpointPicker.swift b/TablePro/Views/Compare/CompareEndpointPicker.swift new file mode 100644 index 000000000..5b1806498 --- /dev/null +++ b/TablePro/Views/Compare/CompareEndpointPicker.swift @@ -0,0 +1,253 @@ +// +// CompareEndpointPicker.swift +// TablePro +// +// Choosing the database a comparison reads or writes. +// +// This was an NSMenu whose submenus fetched on open, which cannot work: +// AppKit runs a tracking session in `NSEventTrackingRunLoopMode`, the main +// actor's executor is not drained in that mode, and a menu's `menuNeedsUpdate` +// runs at most once per session. So the fetch never started while the menu was +// up, and the "Loading…" row it left behind could never be replaced, however +// many times the pointer went away and came back. A popover is the macOS idiom +// for a toolbar control that reveals a chooser, and it runs an ordinary event +// loop where `.task` and a spinner both behave. +// + +import AppKit +import SwiftUI + +internal enum CompareEndpointSide: Hashable { + case source + case target + + internal var title: String { + switch self { + case .source: return String(localized: "Source") + case .target: return String(localized: "Target") + } + } + + internal var caption: String { + switch self { + case .source: return String(localized: "Will not change") + case .target: return String(localized: "Will be changed") + } + } + + internal var symbol: String { + switch self { + case .source: return "arrow.up.right.square" + case .target: return "arrow.down.right.square" + } + } +} + +internal struct CompareEndpointPicker: View { + internal let side: CompareEndpointSide + internal let current: CompareSyncEndpoint? + internal let onPick: (CompareSyncEndpoint) -> Void + internal let dismiss: () -> Void + + internal static let contentSize = NSSize(width: 320, height: 400) + + @State private var model = CompareEndpointPickerModel() + @State private var path: [CompareEndpointRoute] = [] + @State private var connections: [DatabaseConnection] = [] + + internal var body: some View { + NavigationStack(path: $path) { + connectionList + .navigationTitle(side.title) + .navigationDestination(for: CompareEndpointRoute.self) { route in + destination(route) + } + } + .frame(width: Self.contentSize.width, height: Self.contentSize.height) + .onAppear { connections = ConnectionStorage.shared.loadConnections() } + } + + // MARK: - Connections + + private var connectionList: some View { + Group { + if connections.isEmpty { + ContentUnavailableView { + Label("No Saved Connections", systemImage: "externaldrive.badge.questionmark") + } description: { + Text("Add a connection before comparing.") + } + } else { + List(connections) { connection in + connectionRow(connection) + } + .listStyle(.inset) + } + } + } + + @ViewBuilder + private func connectionRow(_ connection: DatabaseConnection) -> some View { + let endpoint = CompareSyncEndpoint.from(connection: connection) + if side == .target, let reason = endpoint.ineligibleAsTargetReason { + Label { + VStack(alignment: .leading, spacing: 1) { + Text(connection.name) + Text(reason) + .font(.caption) + .foregroundStyle(.secondary) + } + } icon: { + swatch(connection.color) + } + .foregroundStyle(.tertiary) + } else { + NavigationLink(value: CompareEndpointRoute.databases(connection.id)) { + Label { + Text(connection.name) + } icon: { + swatch(connection.color) + } + } + } + } + + // MARK: - Databases and schemas + + @ViewBuilder + private func destination(_ route: CompareEndpointRoute) -> some View { + switch route { + case let .databases(connectionId): + if let connection = connections.first(where: { $0.id == connectionId }) { + databaseList(connection) + .navigationTitle(connection.name) + .task { await model.loadDatabases(for: connection) } + } + case let .schemas(endpoint, connectionId): + if let connection = connections.first(where: { $0.id == connectionId }) { + schemaList(endpoint, connection: connection) + .navigationTitle(endpoint.databaseLabel) + .task { await model.loadSchemas(for: endpoint, connection: connection) } + } + } + } + + @ViewBuilder + private func databaseList(_ connection: DatabaseConnection) -> some View { + switch model.databases(for: connection.id) { + case .loading: + loadingPane + case let .failed(message): + failurePane(message) { await model.loadDatabases(for: connection, reload: true) } + case let .loaded(names): + let base = CompareSyncEndpoint.from(connection: connection) + if names.isEmpty { + List { + endpointRow(base, title: base.databaseLabel.isEmpty ? connection.name : base.databaseLabel) + } + .listStyle(.inset) + } else { + List(names, id: \.self) { name in + databaseRow(base.withDatabase(name, label: label(name, connection)), connection: connection) + } + .listStyle(.inset) + } + } + } + + @ViewBuilder + private func databaseRow(_ endpoint: CompareSyncEndpoint, connection: DatabaseConnection) -> some View { + if PluginManager.shared.supportsSchemaSwitching(for: connection.type) { + NavigationLink(value: CompareEndpointRoute.schemas(endpoint, connection.id)) { + Text(endpoint.databaseLabel) + } + } else { + endpointRow(endpoint, title: endpoint.databaseLabel) + } + } + + /// There is deliberately no "All schemas". Comparing every schema at once reads two schemas' + /// same-named tables as one object, and the generated ALTER carries no schema of its own, so it + /// would land on whichever schema the connection happens to be on. + @ViewBuilder + private func schemaList(_ endpoint: CompareSyncEndpoint, connection: DatabaseConnection) -> some View { + switch model.schemas(for: endpoint) { + case .loading: + loadingPane + case let .failed(message): + failurePane(message) { await model.loadSchemas(for: endpoint, connection: connection, reload: true) } + case let .loaded(names): + if names.isEmpty { + ContentUnavailableView { + Label("No Schemas", systemImage: "tray") + } description: { + Text("This database reports no schemas to compare.") + } + } else { + List(names, id: \.self) { name in + endpointRow(endpoint.withSchema(name), title: name) + } + .listStyle(.inset) + } + } + } + + private func endpointRow(_ endpoint: CompareSyncEndpoint, title: String) -> some View { + Button { + onPick(endpoint) + dismiss() + } label: { + HStack { + Text(title) + Spacer(minLength: 8) + if current?.id == endpoint.id { + Image(systemName: "checkmark") + .foregroundStyle(.secondary) + } + } + .contentShape(.rect) + } + .buttonStyle(.plain) + .help(endpoint.fullDescription) + } + + // MARK: - States + + private var loadingPane: some View { + VStack(spacing: 8) { + ProgressView() + .controlSize(.small) + Text("Connecting…") + .font(.callout) + .foregroundStyle(.secondary) + } + .frame(maxWidth: .infinity, maxHeight: .infinity) + } + + private func failurePane(_ message: String, retry: @escaping () async -> Void) -> some View { + ContentUnavailableView { + Label("Cannot Read This Connection", systemImage: "exclamationmark.triangle") + } description: { + Text(message) + } actions: { + Button("Try Again") { + Task { await retry() } + } + } + } + + private func swatch(_ color: ConnectionColor) -> some View { + Circle() + .fill(color == .none ? Color.secondary.opacity(0.35) : color.color) + .frame(width: 10, height: 10) + } + + private func label(_ database: String, _ connection: DatabaseConnection) -> String { + CompareSyncEndpoint.label(for: database, type: connection.type) + } +} + +internal enum CompareEndpointRoute: Hashable { + case databases(UUID) + case schemas(CompareSyncEndpoint, UUID) +} diff --git a/TablePro/Views/Compare/CompareEndpointPickerModel.swift b/TablePro/Views/Compare/CompareEndpointPickerModel.swift new file mode 100644 index 000000000..88e1e87b5 --- /dev/null +++ b/TablePro/Views/Compare/CompareEndpointPickerModel.swift @@ -0,0 +1,106 @@ +// +// CompareEndpointPickerModel.swift +// TablePro +// +// The databases and schemas the endpoint picker browses, loaded on demand and +// kept for as long as the picker's window is open. +// +// Reaching a database means connecting to its server, so a level loads only +// once the user opens it, never because a pointer passed over it. A failure is +// kept as a failure: an empty list and an unreachable server are not the same +// answer, and remembering the second as the first is how a picker tells a user +// their server has no databases. +// + +import Foundation + +internal enum CompareEndpointListState: Equatable { + case loading + case loaded([String]) + case failed(String) +} + +@MainActor +@Observable +internal final class CompareEndpointPickerModel { + private var databaseStates: [UUID: CompareEndpointListState] = [:] + private var schemaStates: [String: CompareEndpointListState] = [:] + @ObservationIgnored private var inFlight: Set = [] + @ObservationIgnored private let databaseLoader: (DatabaseConnection) async throws -> [String] + @ObservationIgnored private let schemaLoader: (CompareSyncEndpoint, DatabaseConnection) async throws -> [String] + + internal convenience init() { + let metadata = CompareMetadataService() + self.init( + databaseLoader: { try await metadata.databases(for: $0) }, + schemaLoader: { try await metadata.schemas(for: $0, connection: $1) } + ) + } + + internal init( + databaseLoader: @escaping (DatabaseConnection) async throws -> [String], + schemaLoader: @escaping (CompareSyncEndpoint, DatabaseConnection) async throws -> [String] + ) { + self.databaseLoader = databaseLoader + self.schemaLoader = schemaLoader + } + + internal func databases(for connectionId: UUID) -> CompareEndpointListState { + databaseStates[connectionId] ?? .loading + } + + internal func schemas(for endpoint: CompareSyncEndpoint) -> CompareEndpointListState { + schemaStates[Self.schemaKey(endpoint)] ?? .loading + } + + internal func loadDatabases(for connection: DatabaseConnection, reload: Bool = false) async { + let key = "db|\(connection.id.uuidString)" + guard shouldLoad(current: databaseStates[connection.id], key: key, reload: reload) else { return } + defer { inFlight.remove(key) } + + beginLoading(&databaseStates[connection.id]) + do { + databaseStates[connection.id] = .loaded(try await databaseLoader(connection)) + } catch { + databaseStates[connection.id] = .failed(error.localizedDescription) + } + } + + internal func loadSchemas( + for endpoint: CompareSyncEndpoint, + connection: DatabaseConnection, + reload: Bool = false + ) async { + let mapKey = Self.schemaKey(endpoint) + guard shouldLoad(current: schemaStates[mapKey], key: "schema|\(mapKey)", reload: reload) else { return } + defer { inFlight.remove("schema|\(mapKey)") } + + beginLoading(&schemaStates[mapKey]) + do { + schemaStates[mapKey] = .loaded(try await schemaLoader(endpoint, connection)) + } catch { + schemaStates[mapKey] = .failed(error.localizedDescription) + } + } + + private func shouldLoad(current: CompareEndpointListState?, key: String, reload: Bool) -> Bool { + if !reload, current != nil, !isFailed(current) { return false } + return inFlight.insert(key).inserted + } + + /// Only a level with nothing to show becomes a spinner. A reload keeps the list it is + /// replacing on screen, so retrying never blanks a pane that already had an answer. + private func beginLoading(_ state: inout CompareEndpointListState?) { + guard state == nil || isFailed(state) else { return } + state = .loading + } + + private func isFailed(_ state: CompareEndpointListState?) -> Bool { + guard case .failed = state else { return false } + return true + } + + private static func schemaKey(_ endpoint: CompareSyncEndpoint) -> String { + "\(endpoint.connectionId.uuidString)\u{1F}\(endpoint.database)" + } +} diff --git a/TablePro/Views/Compare/CompareEndpointToolbarController.swift b/TablePro/Views/Compare/CompareEndpointToolbarController.swift new file mode 100644 index 000000000..e882468c9 --- /dev/null +++ b/TablePro/Views/Compare/CompareEndpointToolbarController.swift @@ -0,0 +1,141 @@ +// +// CompareEndpointToolbarController.swift +// TablePro +// +// The Source and Target toolbar buttons, and the chooser each one reveals. +// +// An endpoint is a database, not a connection. Picking only a connection is +// what made two databases on one server impossible to compare and left the +// schema unset, so the chooser is connection then database then schema. +// + +import AppKit +import SwiftUI + +@MainActor +internal final class CompareEndpointToolbarController: NSObject { + private let session: CompareSyncSession + private let onChange: () -> Void + private let windowProvider: () -> NSWindow? + + private var identifiers: [CompareEndpointSide: NSToolbarItem.Identifier] = [:] + private var popover: NSPopover? + private var closeObserver: (any NSObjectProtocol)? + + internal init( + session: CompareSyncSession, + windowProvider: @escaping () -> NSWindow?, + onChange: @escaping () -> Void + ) { + self.session = session + self.windowProvider = windowProvider + self.onChange = onChange + super.init() + } + + internal func item(for side: CompareEndpointSide, identifier: NSToolbarItem.Identifier) -> NSToolbarItem { + identifiers[side] = identifier + let item = NSToolbarItem(itemIdentifier: identifier) + item.label = side.title + item.paletteLabel = side.title + item.image = NSImage(systemSymbolName: side.symbol, accessibilityDescription: side.title) + item.isBordered = true + item.target = self + item.action = side == .source ? #selector(chooseSource(_:)) : #selector(chooseTarget(_:)) + apply(side, to: item) + return item + } + + /// Resolved from the live toolbar rather than from an item this controller kept. Customize + /// Toolbar asks the delegate for more copies with `willBeInsertedIntoToolbar` false, so a + /// retained reference ends up naming a palette item that was thrown away, and the button the + /// user is looking at keeps its old title forever. + internal func refreshTitles() { + guard let toolbar = windowProvider()?.toolbar else { return } + for (side, identifier) in identifiers { + for item in toolbar.items where item.itemIdentifier == identifier { + apply(side, to: item) + } + } + } + + private func apply(_ side: CompareEndpointSide, to item: NSToolbarItem) { + let endpoint = endpoint(for: side) + item.title = endpoint?.qualifiedDescription ?? String(format: String(localized: "Choose %@"), side.title) + item.toolTip = endpoint?.fullDescription ?? side.caption + } + + private func endpoint(for side: CompareEndpointSide) -> CompareSyncEndpoint? { + side == .source ? session.source : session.target + } + + // MARK: - Presentation + + @objc private func chooseSource(_ sender: Any?) { + present(.source) + } + + @objc private func chooseTarget(_ sender: Any?) { + present(.target) + } + + /// Pressing the button again closes the chooser, which is what a pull-down control does and + /// what the popover's own `.transient` dismissal would otherwise fight. + private func present(_ side: CompareEndpointSide) { + guard popover?.isShown != true else { + dismiss() + return + } + guard let identifier = identifiers[side], + let anchor = ToolbarSwitcherPresenter.anchor(in: windowProvider(), identifier) else { return } + + let shown = PopoverPresenter.show( + relativeTo: anchor, + contentSize: CompareEndpointPicker.contentSize, + behavior: .transient + ) { dismiss in + CompareEndpointPicker( + side: side, + current: self.endpoint(for: side), + onPick: { [weak self] endpoint in self?.pick(endpoint, for: side) }, + dismiss: dismiss + ) + } + popover = shown + /// AppKit closes a transient popover by itself and reports it nowhere else. Without this + /// the controller holds a closed popover, and through it the SwiftUI tree and every + /// database list the chooser loaded, until the next presentation. + closeObserver = NotificationCenter.default.addObserver( + forName: NSPopover.didCloseNotification, + object: shown, + queue: .main + ) { [weak self] _ in + MainActor.assumeIsolated { self?.forgetPopover() } + } + } + + internal func dismiss() { + popover?.performClose(nil) + forgetPopover() + } + + private func forgetPopover() { + if let closeObserver { + NotificationCenter.default.removeObserver(closeObserver) + } + closeObserver = nil + popover = nil + } + + /// Re-picking the endpoint that is already chosen must not reach `onChange`, which resets the + /// comparison: the report, both snapshots, every data plan and the user's per-object choices. + private func pick(_ endpoint: CompareSyncEndpoint, for side: CompareEndpointSide) { + guard self.endpoint(for: side)?.id != endpoint.id else { return } + switch side { + case .source: session.source = endpoint + case .target: session.target = endpoint + } + refreshTitles() + onChange() + } +} diff --git a/TablePro/Views/Compare/CompareSyncWindowController.swift b/TablePro/Views/Compare/CompareSyncWindowController.swift index 3ed6cb7de..5f132143a 100644 --- a/TablePro/Views/Compare/CompareSyncWindowController.swift +++ b/TablePro/Views/Compare/CompareSyncWindowController.swift @@ -41,7 +41,10 @@ internal final class CompareSyncWindowController: NSWindowController, private let session = CompareSyncSession() private lazy var runner = CompareRunner(session: session) - private lazy var endpointMenus = CompareEndpointMenuBuilder(session: session) { [weak self] in + private lazy var endpointMenus = CompareEndpointToolbarController( + session: session, + windowProvider: { [weak self] in self?.window } + ) { [weak self] in self?.endpointsChanged() } private weak var modeControl: NSSegmentedControl? diff --git a/TableProTests/Core/Compare/CompareEndpointPickerModelTests.swift b/TableProTests/Core/Compare/CompareEndpointPickerModelTests.swift new file mode 100644 index 000000000..c6b43a792 --- /dev/null +++ b/TableProTests/Core/Compare/CompareEndpointPickerModelTests.swift @@ -0,0 +1,143 @@ +// +// CompareEndpointPickerModelTests.swift +// TableProTests +// +// The chooser's loading rules. Each of these was a defect in the NSMenu this +// replaced, where a failed connect was cached as an empty database list and +// every submenu open refetched. +// + +@testable import TablePro +import XCTest + +@MainActor +final class CompareEndpointPickerModelTests: XCTestCase { + private struct Unreachable: LocalizedError { + var errorDescription: String? { "Connection refused" } + } + + private func connection(name: String = "Prod") -> DatabaseConnection { + DatabaseConnection(name: name, type: .postgresql) + } + + private func model( + databases: @escaping (DatabaseConnection) async throws -> [String] = { _ in [] }, + schemas: @escaping (CompareSyncEndpoint, DatabaseConnection) async throws -> [String] = { _, _ in [] } + ) -> CompareEndpointPickerModel { + CompareEndpointPickerModel(databaseLoader: databases, schemaLoader: schemas) + } + + func testAnUnopenedConnectionReportsLoadingRatherThanAnEmptyList() { + XCTAssertEqual(model().databases(for: UUID()), .loading) + } + + func testDatabasesAreLoadedOnce() async { + let calls = Counter() + let subject = model(databases: { _ in + calls.increment() + return ["orders"] + }) + let connection = connection() + + await subject.loadDatabases(for: connection) + await subject.loadDatabases(for: connection) + + XCTAssertEqual(calls.value, 1, "reopening the chooser must not refetch") + XCTAssertEqual(subject.databases(for: connection.id), .loaded(["orders"])) + } + + /// A server that refused the connection is not a server with no databases. Caching the failure + /// as `[]` is what told users their database list was empty, with no way to retry. + func testAFailedLoadIsRememberedAsAFailure() async { + let subject = model(databases: { _ in throw Unreachable() }) + let connection = connection() + + await subject.loadDatabases(for: connection) + + XCTAssertEqual(subject.databases(for: connection.id), .failed("Connection refused")) + } + + func testAFailedLoadCanBeRetriedWithoutAskingForAReload() async { + let calls = Counter() + let subject = model(databases: { _ in + calls.increment() + guard calls.value > 1 else { throw Unreachable() } + return ["orders"] + }) + let connection = connection() + + await subject.loadDatabases(for: connection) + await subject.loadDatabases(for: connection) + + XCTAssertEqual(subject.databases(for: connection.id), .loaded(["orders"])) + } + + /// `CLAUDE.md`: a refresh never clears the cache it is refreshing. The list stays on screen + /// while the reload runs, so Try Again cannot blank a pane that already had an answer. + func testAReloadKeepsTheLoadedListUntilTheNewOneArrives() async { + let gate = AsyncGate() + let subject = model(databases: { _ in + await gate.wait() + return ["orders", "audit"] + }) + let connection = connection() + + await gate.open() + await subject.loadDatabases(for: connection) + await gate.close() + + let reload = Task { await subject.loadDatabases(for: connection, reload: true) } + await Task.yield() + XCTAssertEqual(subject.databases(for: connection.id), .loaded(["orders", "audit"])) + + await gate.open() + await reload.value + XCTAssertEqual(subject.databases(for: connection.id), .loaded(["orders", "audit"])) + } + + func testSchemasAreKeyedPerDatabaseRatherThanPerConnection() async { + let subject = model(schemas: { endpoint, _ in [endpoint.database + "_schema"] }) + let connection = connection() + let orders = CompareSyncEndpoint.from(connection: connection, database: "orders") + let audit = CompareSyncEndpoint.from(connection: connection, database: "audit") + + await subject.loadSchemas(for: orders, connection: connection) + await subject.loadSchemas(for: audit, connection: connection) + + XCTAssertEqual(subject.schemas(for: orders), .loaded(["orders_schema"])) + XCTAssertEqual(subject.schemas(for: audit), .loaded(["audit_schema"])) + } +} + +private final class Counter: @unchecked Sendable { + private let lock = NSLock() + private var count = 0 + + var value: Int { + lock.withLock { count } + } + + func increment() { + lock.withLock { count += 1 } + } +} + +private actor AsyncGate { + private var isOpen = false + private var waiters: [CheckedContinuation] = [] + + func open() { + isOpen = true + for waiter in waiters { waiter.resume() } + waiters.removeAll() + } + + func close() { + isOpen = false + } + + func wait() async { + guard !isOpen else { return } + await withCheckedContinuation { waiters.append($0) } + } +} From 853ba3a39c96bb3e06e08509d29bdebfabf8b693 Mon Sep 17 00:00:00 2001 From: Ngo Quoc Dat Date: Sun, 23 Aug 2026 16:19:21 +0700 Subject: [PATCH 9/9] fix(compare): keep the string catalog to this branch's own strings and translate them --- TablePro/InfoPlist.xcstrings | 47 +- TablePro/Resources/Localizable.xcstrings | 57937 ++++++++++----------- 2 files changed, 28843 insertions(+), 29141 deletions(-) diff --git a/TablePro/InfoPlist.xcstrings b/TablePro/InfoPlist.xcstrings index 07479889d..0af4dd1bd 100644 --- a/TablePro/InfoPlist.xcstrings +++ b/TablePro/InfoPlist.xcstrings @@ -1,36 +1,6 @@ { "sourceLanguage" : "en", "strings" : { - "Beancount Ledger" : { - - }, - "CFBundleDisplayName" : { - "comment" : "Bundle display name", - "extractionState" : "extracted_with_value", - "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "TablePro" - } - } - } - }, - "CFBundleName" : { - "comment" : "Bundle name", - "extractionState" : "extracted_with_value", - "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "TablePro" - } - } - } - }, - "DuckDB Database" : { - - }, "NSDesktopFolderUsageDescription" : { "comment" : "Privacy - Desktop Folder Usage Description", "extractionState" : "manual", @@ -102,22 +72,7 @@ } } } - }, - "SQL File" : { - - }, - "SQLite Database" : { - - }, - "TablePro Connection" : { - - }, - "TablePro Filter Row" : { - - }, - "TablePro Plugin" : { - } }, "version" : "1.0" -} \ No newline at end of file +} diff --git a/TablePro/Resources/Localizable.xcstrings b/TablePro/Resources/Localizable.xcstrings index 8aaf446a3..9a1be3aef 100644 --- a/TablePro/Resources/Localizable.xcstrings +++ b/TablePro/Resources/Localizable.xcstrings @@ -98,426 +98,6 @@ } } }, - "--" : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "--" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "--" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "--" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "--" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "--" - } - } - } - }, - "-- … %d more characters not shown; use Copy All for the full output." : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "-- … 나머지 %d자는 표시되지 않음. 전체 출력은 모두 복사를 사용하십시오." - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "-- … %d karakter daha gösterilmiyor; çıktının tamamı için Tümünü Kopyala'yı kullanın." - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "-- … còn %d ký tự nữa không hiển thị; dùng Sao chép tất cả để xem toàn bộ kết quả." - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "-- … 还有%d个字符未显示;使用\"全部复制\"获取完整输出。" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "-- … 還有 %d 個字未顯示;請使用「全部複製」取得完整輸出。" - } - } - } - }, - "—" : { - "extractionState" : "stale", - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "—" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "—" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "—" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "—" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "—" - } - } - } - }, - ", %@" : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : ", %@" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : ", %@" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : ", %@" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : ",%@" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : ",%@" - } - } - } - }, - ", and %lld more" : { - "comment" : "Plural suffix for the number of overflow items.", - "isCommentAutoGenerated" : true, - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : ", 외 %lld개" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : " ve %lld tane daha" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : " và %lld mục nữa" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : ",还有 %lld 项" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : ",還有 %lld 項" - } - } - } - }, - ":" : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : ":" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : ":" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : ":" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : ":" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : ":" - } - } - } - }, - ":%@" : { - "shouldTranslate" : false - }, - "…and %d more lines" : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "…외 %d줄" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "…ve %d satır daha" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "…và %d dòng nữa" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "…还有 %d 行" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "…還有 %d 列" - } - } - } - }, - ".%@" : { - "extractionState" : "stale", - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : ".%@" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : ".%@" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : ".%@" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : ".%@" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : ".%@" - } - } - } - }, - "·" : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "·" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "·" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "·" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "·" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "·" - } - } - } - }, - "''" : { - "extractionState" : "stale", - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "''" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "''" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "''" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "''" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "''" - } - } - } - }, - "'%@' is a reserved Windows device name" : { - "extractionState" : "stale", - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "'%@' 이름은 Windows에서 예약된 장치 이름입니다" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "'%@' ayrılmış bir Windows aygıt adıdır" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "'%@' là tên thiết bị Windows dành riêng" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "'%@' 是 Windows 保留设备名" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "「%@」是 Windows 保留的裝置名稱" - } - } - } - }, - "'since' must not be later than 'until'." : { - - }, - "“%@” owns database objects" : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "데이터베이스 객체의 소유자는 “%@”입니다" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "“%@” veritabanı nesnelerinin sahibi" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "“%@” đang sở hữu các đối tượng cơ sở dữ liệu" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "“%@” 拥有数据库对象" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "「%@」擁有資料庫物件" - } - } - } - }, "\"%@\" was changed since you opened it. Review the diff and choose how to resolve." : { "localizations" : { "ko" : { @@ -621,40 +201,6 @@ } } }, - "“%@” will be disconnected and any in-flight requests will be cancelled." : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "“%@”의 연결이 해제되고 진행 중인 모든 요청이 취소됩니다." - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "\"%@\" bağlantısı kesilecek ve devam eden tüm istekler iptal edilecek." - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "“%@” sẽ bị ngắt kết nối và mọi yêu cầu đang xử lý sẽ bị hủy." - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "“%@” 将被断开连接,所有进行中的请求将被取消。" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "「%@」將會中斷連線,所有進行中的請求都會被取消。" - } - } - } - }, "\"%@\" will be moved to Trash. You can recover it from there." : { "localizations" : { "ko" : { @@ -723,40 +269,6 @@ } } }, - "“%@” will be permanently deleted. External clients using this token will lose access immediately." : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "“%@” 항목이 영구적으로 삭제됩니다. 이 토큰을 사용하는 외부 클라이언트는 즉시 접근 권한을 잃습니다." - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "\"%@\" kalıcı olarak silinecek. Bu token'ı kullanan harici istemciler erişimi anında kaybedecek." - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "“%@” sẽ bị xóa vĩnh viễn. Các client bên ngoài đang dùng token này sẽ mất quyền truy cập ngay lập tức." - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "“%@” 将被永久删除。使用此令牌的外部客户端将立即失去访问权限。" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "「%@」將會永久刪除。使用此權杖的外部用戶端將立即失去存取權限。" - } - } - } - }, "\"%@\" will be removed from the sidebar. Files on disk will not be deleted." : { "localizations" : { "ko" : { @@ -825,685 +337,616 @@ } } }, - "(%@)" : { + "%.3fms" : { + "comment" : "A value of a time in milliseconds.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "(%@)" + "value" : "%.3fms" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "(%@)" + "value" : "%.3fms" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "(%@)" + "value" : "%.3fms" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "(%@)" + "value" : "%.3fms" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "(%@)" + "value" : "%.3fms" } } } }, - "(%lld %@)" : { + "%1$@ %2$@ is dropped and recreated, so anything depending on it fails until it exists again." : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "(%1$lld %2$@)" - } - }, "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "(%1$lld %2$@)" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "(%lld %@)" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "(%1$lld %2$@)" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "(%lld %@)" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "(%1$lld %2$@)" + "value" : "%1$@ %2$@을(를) 삭제한 뒤 다시 만들기 때문에, 이에 의존하는 항목은 다시 만들어질 때까지 실패합니다.", + "state" : "translated" } } } }, - "(%lld active)" : { - "extractionState" : "stale", + "%1$@ (%2$@)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "(%lld개 활성)" + "value" : "%1$@ (%2$@)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "(%lld etkin)" + "value" : "%1$@ (%2$@)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "(%lld đang hoạt động)" + "value" : "%1$@ (%2$@)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "(%lld 活跃)" + "value" : "%1$@(%2$@)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "(%lld 個使用中)" + "value" : "%1$@(%2$@)" } } } }, - "(%lld hidden)" : { - "extractionState" : "stale", + "%1$@ (ORA-%2$ld)." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "(%lld개 숨김)" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "(%lld gizli)" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "(%lld ẩn)" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "(%lld 个已隐藏)" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "(%lld 個已隱藏)" + "value" : "%1$@ (ORA-%2$ld)." } } } }, - "(%lld)" : { + "%1$@ +%2$lld" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "(%lld)" + "value" : "%1$@ +%2$lld" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "(%lld)" + "value" : "%1$@ +%2$lld" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "(%lld)" + "value" : "%1$@ +%2$lld" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "(%lld)" + "value" : "%1$@ +%2$lld" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "(%lld)" + "value" : "%1$@ +%2$lld" } } } }, - "(%lld/%lld)" : { - "extractionState" : "stale", + "%1$@ chart of %2$@ by %3$@ with %4$d points" : { "localizations" : { "en" : { "stringUnit" : { - "state" : "new", - "value" : "(%1$lld/%2$lld)" + "state" : "translated", + "value" : "%1$@ chart of %2$@ by %3$@ with %#@points@" + }, + "substitutions" : { + "points" : { + "argNum" : 4, + "formatSpecifier" : "d", + "variations" : { + "plural" : { + "one" : { + "stringUnit" : { + "state" : "translated", + "value" : "%arg point" + } + }, + "other" : { + "stringUnit" : { + "state" : "translated", + "value" : "%arg points" + } + } + } + } + } } }, "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "(%1$lld/%2$lld)" + "value" : "%3$@ 기준 %2$@의 %1$@ 차트, %#@points@", + "state" : "translated" + }, + "substitutions" : { + "points" : { + "argNum" : 4, + "formatSpecifier" : "d", + "variations" : { + "plural" : { + "other" : { + "stringUnit" : { + "value" : "지점 %arg개", + "state" : "translated" + } + } + } + } + } } }, "tr" : { "stringUnit" : { - "state" : "translated", - "value" : "(%lld/%lld)" + "value" : "%3$@ ölçütüne göre %2$@ için %4$d noktalı %1$@ grafiği", + "state" : "translated" } }, "vi" : { "stringUnit" : { - "state" : "translated", - "value" : "(%lld/%lld)" + "value" : "Biểu đồ %1$@ của %2$@ theo %3$@ với %4$d điểm", + "state" : "translated" } }, "zh-Hans" : { "stringUnit" : { - "state" : "translated", - "value" : "(%lld/%lld)" + "value" : "包含 %4$d 个点的%1$@图:按%3$@显示%2$@", + "state" : "translated" } }, "zh-Hant" : { "stringUnit" : { - "state" : "translated", - "value" : "(%1$lld/%2$lld)" + "value" : "包含 %4$d 個點的%1$@圖:依%3$@顯示%2$@", + "state" : "translated" } } } }, - "(Empty)" : { + "%1$@ of %2$@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "(비어 있음)" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "(Boş)" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "(Trống)" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "(空)" + "value" : "%1$@/%2$@" } - }, - "zh-Hant" : { + } + } + }, + "%1$@ of %2$@ on this page" : { + "localizations" : { + "ko" : { "stringUnit" : { "state" : "translated", - "value" : "(空)" + "value" : "이 페이지에서 %2$@개 중 %1$@개" } } } }, - "(NULL)" : { + "%1$@ on %2$@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "(NULL)" + "value" : "%2$@에서 %1$@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "(NULL)" + "value" : "%2$@ üzerinde %1$@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "(NULL)" + "value" : "%1$@ trên %2$@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "(NULL)" + "value" : "%2$@ 上的 %1$@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "(NULL)" + "value" : "%2$@ 上的 %1$@" } } } }, - "(optional)" : { - "extractionState" : "stale", + "%1$@ was signed by %2$@ (Team ID %3$@) and notarized by Apple. TablePro did not write it.\n\nA database plugin runs as part of TablePro and can read the credentials of every connection you open. Trust this developer only if you would give them that access.\n\nTrusting applies to every plugin this developer signs, now and later. You can withdraw it in Settings > Plugins." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "(선택 사항)" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "(isteğe bağlı)" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "(tùy chọn)" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "(可选)" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "(選填)" + "value" : "플러그인: %1$@. 서명자: %2$@ (팀 ID %3$@). Apple의 공증을 받았습니다. TablePro에서 만든 플러그인이 아닙니다.\n\n데이터베이스 플러그인은 TablePro의 일부로 실행되며 사용자가 여는 모든 연결의 자격 증명을 읽을 수 있습니다. 해당 접근 권한을 부여해도 되는 개발자만 신뢰하십시오.\n\n개발자를 신뢰하면 현재와 이후에 이 개발자가 서명하는 모든 플러그인에 적용됩니다. 설정 > 플러그인에서 언제든지 신뢰를 해제할 수 있습니다." } } } }, - "(showing %d of %d rows)" : { + "%1$@ → %2$@" : { "localizations" : { - "en" : { + "ko" : { "stringUnit" : { - "state" : "new", - "value" : "(showing %1$d of %2$d rows)" + "value" : "%1$@ → %2$@", + "state" : "translated" } - }, + } + } + }, + "%1$@ → %2$@ · %3$@ runs before, %4$@ now" : { + "comment" : "Regression detail: prior duration, recent duration, prior count, recent count", + "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "(%1$d/%2$d행 표시 중)" + "value" : "%1$@ → %2$@ · 이전 실행 %3$@, 현재 %4$@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "(%d / %d satır gösteriliyor)" + "value" : "%1$@ → %2$@ · önce %3$@ çalışma, şimdi %4$@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "(đang hiển thị %d trên %d hàng)" + "value" : "%1$@ → %2$@ · trước %3$@ lần chạy, hiện %4$@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "(显示 %d / %d 行)" + "value" : "%1$@ → %2$@ · 之前 %3$@ 次,现在 %4$@ 次" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "(顯示 %1$d / %2$d 列)" + "value" : "%1$@ → %2$@ · 之前 %3$@ 次,現在 %4$@ 次" } } } }, - "(this Mac)" : { + "%1$@, %2$@" : { + "shouldTranslate" : false + }, + "%1$@: %2$@" : { + "comment" : "A list of failed drops, one per line.", + "isCommentAutoGenerated" : true, "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "(this Mac)" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "(이 Mac)" + "value" : "%1$@: %2$@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "(bu Mac)" + "value" : "%1$@: %2$@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "(máy Mac này)" + "value" : "%1$@: %2$@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "(此 Mac)" + "value" : "%1$@:%2$@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "(這台 Mac)" + "value" : "%1$@:%2$@" } } } }, - "**Available commands:**" : { + "%1$d of %2$d" : { + "comment" : "A description of the current position in a collection of items. The first argument is the current position. The second argument is the total number of items.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "**사용 가능한 명령:**" + "value" : "%1$d/%2$d" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "**Kullanılabilir komutlar:**" + "value" : "%2$d içinden %1$d" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "**Các lệnh khả dụng:**" + "value" : "%1$d trên %2$d" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "**可用命令:**" + "value" : "%1$d / %2$d" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "**可用指令:**" + "value" : "%1$d / %2$d" } } } }, - "/%@" : { + "%1$d of %2$d allowed for this run" : { "localizations" : { "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "/%@" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "/%@" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "/%@" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "/%@" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "/%@" + "value" : "%2$d개 중 %1$d개를 이번 실행에서 허용함", + "state" : "translated" } } } }, - "/%@ · %@" : { + "%1$d of %2$d included" : { "localizations" : { - "en" : { + "ko" : { "stringUnit" : { - "state" : "new", - "value" : "/%1$@ · %2$@" + "value" : "%2$d개 중 %1$d개 포함됨", + "state" : "translated" } - }, + } + } + }, + "%1$d of %2$d rows, %3$d marked for deletion" : { + "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "/%1$@ · %2$@" + "value" : "%2$d행 중 %1$d행, %3$d행 삭제 예정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "/%1$@ · %2$@" + "value" : "%2$d satırdan %1$d tanesi, %3$d tanesi silinmek üzere işaretli" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "/%1$@ · %2$@" + "value" : "%1$d trên %2$d hàng, %3$d hàng được đánh dấu xoá" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "/%1$@ · %2$@" + "value" : "%2$d 行中的 %1$d 行,%3$d 行已标记删除" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "/%1$@ · %2$@" + "value" : "%2$d 列中的 %1$d 列,%3$d 列已標記刪除" } } } }, - "/%@ needs a query: type one in the editor or after the command." : { + "%1$d of %2$d tables will be compared." : { "localizations" : { "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "/%@ 명령에는 쿼리가 필요합니다. 편집기 또는 명령 뒤에 쿼리를 입력하십시오." - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "/%@ bir sorgu gerektirir: düzenleyiciye veya komutun ardına bir sorgu yazın." - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "/%@ cần một truy vấn: nhập vào trình soạn thảo hoặc sau lệnh." + "value" : "%2$d개 테이블 중 %1$d개를 비교합니다.", + "state" : "translated" } - }, - "zh-Hans" : { + } + } + }, + "%1$d statements stay out of this run and %2$@ keeps what it has for them." : { + "localizations" : { + "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "/%@需要一个查询:请在编辑器中或命令后输入。" + "value" : "구문 %1$d개는 이번 실행에서 제외되며, %2$@은(는) 해당 항목을 그대로 유지합니다.", + "state" : "translated" } - }, - "zh-Hant" : { + } + } + }, + "%1$d statements, %2$d will run." : { + "localizations" : { + "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "/%@ 需要一個查詢:請在編輯器中或指令後輸入。" + "value" : "구문 %1$d개 중 %2$d개를 실행합니다.", + "state" : "translated" } } } }, - "/path/to/agent.sock" : { + "%1$lld of %2$lld statements were applied. This connection does not roll back user and role changes." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "/path/to/agent.sock" + "value" : "%1$lld/%2$lld개 SQL 문이 적용되었습니다. 이 연결에서는 사용자 및 역할 변경을 롤백하지 않습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "/path/to/agent.sock" + "value" : "%2$lld ifadeden %1$lld tanesi uygulandı. Bu bağlantı, kullanıcı ve rol değişikliklerini geri almaz." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "/path/to/agent.sock" + "value" : "Đã áp dụng %1$lld trên %2$lld câu lệnh. Kết nối này không hoàn tác các thay đổi người dùng và vai trò." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "/path/to/agent.sock" + "value" : "已应用 %2$lld 条语句中的 %1$lld 条。此连接不会回滚用户和角色更改。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "/path/to/agent.sock" + "value" : "已套用 %2$lld 條陳述式中的 %1$lld 條。此連線不會回復使用者與角色的變更。" } } } }, - "/path/to/ca-cert.pem" : { + "%1$lld statements executed, %2$lld failed" : { + "comment" : "The number of statements that were skipped and the number of statements that failed.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "/path/to/ca-cert.pem" + "value" : "%1$lld개 SQL 문 실행됨, %2$lld개 실패" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "/path/to/ca-cert.pem" + "value" : "%1$lld ifade çalıştırıldı, %2$lld başarısız" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "/đường/dẫn/tới/ca-cert.pem" + "value" : "Đã chạy %1$lld câu lệnh, %2$lld lỗi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "/path/to/ca-cert.pem" + "value" : "已执行 %1$lld 条语句,%2$lld 条失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "/path/to/ca-cert.pem" + "value" : "已執行 %1$lld 條陳述式,%2$lld 條失敗" } } } }, - "/path/to/database.sqlite" : { - "extractionState" : "stale", + "%1$lld users, %2$lld roles" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "/path/to/database.sqlite" + "value" : "사용자 %1$lld명, 역할 %2$lld개" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "/path/to/database.sqlite" + "value" : "%1$lld kullanıcı, %2$lld rol" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "/đường/dẫn/tới/database.sqlite" + "value" : "%1$lld người dùng, %2$lld vai trò" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "/path/to/database.sqlite" + "value" : "%1$lld 个用户,%2$lld 个角色" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "/path/to/database.sqlite" + "value" : "%1$lld 個使用者、%2$lld 個角色" } } } }, - "%.3fms" : { - "comment" : "A value of a time in milliseconds.", - "isCommentAutoGenerated" : true, + "%@ %@" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "%1$@ %2$@" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%.3fms" + "value" : "%1$@ %2$@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%.3fms" + "value" : "%@ %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%.3fms" + "value" : "%@ %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%.3fms" + "value" : "%@ %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%.3fms" + "value" : "%1$@ %2$@" } } } @@ -1697,128 +1140,117 @@ } } }, - "%@ %@" : { + "%@ Preview" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "%1$@ %2$@" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@ %2$@" + "value" : "%@ 미리보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ %@" + "value" : "%@ Önizleme" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%@ %@" + "value" : "Xem trước %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%@ %@" + "value" : "%@ 预览" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@ %2$@" + "value" : "%@ 預覽" } } } }, - "%@ • %@" : { + "%@ Query" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "%1$@ • %2$@" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@ • %2$@" + "value" : "%@ 쿼리" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@ • %2$@" + "value" : "%@ Sorgusu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@ • %2$@" + "value" : "Truy vấn %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@ • %2$@" + "value" : "%@ 查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@ • %2$@" + "value" : "%@ 查詢" } } } }, - "%@ → %@.%@" : { + "%@ Switch Failed" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "%1$@ → %2$@.%3$@" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@ → %2$@.%3$@" + "value" : "%@ 전환 실패" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ → %@.%@" + "value" : "%@ Değiştirilemedi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%@ → %@.%@" + "value" : "Chuyển %@ thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%@ → %@.%@" + "value" : "%@ 切换失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@ → %2$@.%3$@" + "value" : "%@ 切換失敗" } } } }, "%@ cannot be compared, because its driver does not expose metadata." : { - + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "%@은(는) 드라이버가 메타데이터를 제공하지 않아 비교할 수 없습니다.", + "state" : "translated" + } + } + } }, "%@ cannot be empty" : { "localizations" : { @@ -1889,7 +1321,14 @@ } }, "%@ cannot compare two of its own databases at once, because it reads both through one connection. Use a second connection for the target." : { - + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "%@은(는) 하나의 연결로 양쪽을 읽기 때문에 자체 데이터베이스 두 개를 동시에 비교할 수 없습니다. 대상에는 다른 연결을 사용하십시오.", + "state" : "translated" + } + } + } }, "%@ completed" : { "localizations" : { @@ -1960,10 +1399,24 @@ } }, "%@ does not report structure metadata that can be compared." : { - + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "%@은(는) 비교할 수 있는 구조 메타데이터를 제공하지 않습니다.", + "state" : "translated" + } + } + } }, "%@ does not support reading rows in key order, which data compare needs." : { - + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "%@은(는) 데이터 비교에 필요한 키 순서 행 읽기를 지원하지 않습니다.", + "state" : "translated" + } + } + } }, "%@ does not support switching schemas in TablePro." : { "localizations" : { @@ -2220,7 +1673,14 @@ } }, "%@ is no longer a saved connection." : { - + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "%@은(는) 더 이상 저장된 연결이 아닙니다.", + "state" : "translated" + } + } + } }, "%@ is required" : { "localizations" : { @@ -2561,114 +2021,46 @@ } } }, - "%@ Preview" : { + "%@ requires a Pro license" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 미리보기" + "value" : "%@에는 Pro 라이선스가 필요합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ Önizleme" + "value" : "%@ için Pro lisans gereklidir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xem trước %@" + "value" : "%@ yêu cầu giấy phép Pro" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 预览" + "value" : "%@ 需要 Pro 许可证" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 預覽" + "value" : "%@ 需要 Pro 授權" } } } }, - "%@ Query" : { + "%@ requires the %@ plan" : { "localizations" : { - "ko" : { + "en" : { "stringUnit" : { - "state" : "translated", - "value" : "%@ 쿼리" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "%@ Sorgusu" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "Truy vấn %@" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "%@ 查询" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "%@ 查詢" - } - } - } - }, - "%@ requires a Pro license" : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "%@에는 Pro 라이선스가 필요합니다" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "%@ için Pro lisans gereklidir" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "%@ yêu cầu giấy phép Pro" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "%@ 需要 Pro 许可证" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "%@ 需要 Pro 授權" - } - } - } - }, - "%@ requires the %@ plan" : { - "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "%1$@ requires the %2$@ plan" + "state" : "new", + "value" : "%1$@ requires the %2$@ plan" } }, "ko" : { @@ -2702,9 +2094,6 @@ } } } - }, - "%@ row" : { - }, "%@ rows" : { "comment" : "Total rows for a query shape, %@ is a count", @@ -2880,609 +2269,617 @@ } } }, - "%@ Switch Failed" : { + "%@ switches reconnect the session" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 전환 실패" + "value" : "%@ 전환 시 세션이 다시 연결됩니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ Değiştirilemedi" + "value" : "%@ değiştirmek oturumu yeniden bağlar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển %@ thất bại" + "value" : "Chuyển %@ sẽ kết nối lại phiên" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 切换失败" + "value" : "切换%@会重新连接会话" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 切換失敗" + "value" : "切換%@會重新連線工作階段" } } } }, - "%@ switches reconnect the session" : { + "%@ was not found on this system. Install it with `brew install libpq` and link it." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 전환 시 세션이 다시 연결됩니다" + "value" : "이 시스템에서 %@ 프로그램을 찾을 수 없습니다. `brew install libpq`로 설치하고 링크하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ değiştirmek oturumu yeniden bağlar" + "value" : "%@ bu sistemde bulunamadı. `brew install libpq` ile yükleyin ve bağlayın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển %@ sẽ kết nối lại phiên" + "value" : "Không tìm thấy %@ trên hệ thống này. Cài đặt bằng `brew install libpq` rồi liên kết nó." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "切换%@会重新连接会话" + "value" : "在此系统上未找到%@。请使用`brew install libpq`安装并链接它。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "切換%@會重新連線工作階段" + "value" : "在這個系統上找不到 %@。請使用 `brew install libpq` 安裝並連結它。" } } } }, - "%@ was not found on this system. Install it with `brew install libpq` and link it." : { + "%@ • %@" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "%1$@ • %2$@" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 시스템에서 %@ 프로그램을 찾을 수 없습니다. `brew install libpq`로 설치하고 링크하십시오." + "value" : "%1$@ • %2$@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ bu sistemde bulunamadı. `brew install libpq` ile yükleyin ve bağlayın." + "value" : "%1$@ • %2$@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy %@ trên hệ thống này. Cài đặt bằng `brew install libpq` rồi liên kết nó." + "value" : "%1$@ • %2$@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在此系统上未找到%@。请使用`brew install libpq`安装并链接它。" + "value" : "%1$@ • %2$@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在這個系統上找不到 %@。請使用 `brew install libpq` 安裝並連結它。" + "value" : "%1$@ • %2$@" } } } }, - "%@_name" : { + "%@ → %@.%@" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "%1$@ → %2$@.%3$@" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@_name" + "value" : "%1$@ → %2$@.%3$@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@_name" + "value" : "%@ → %@.%@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%@_name" + "value" : "%@ → %@.%@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%@_name" + "value" : "%@ → %@.%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%@_name" + "value" : "%1$@ → %2$@.%3$@" } } } }, - "%@, %@" : { + "%@%@" : { "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { "state" : "new", - "value" : "%1$@, %2$@" + "value" : "%1$@%2$@" } }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@, %2$@" + "value" : "%1$@%2$@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@, %@" + "value" : "%@%@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%@, %@" + "value" : "%@%@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%@, %@" + "value" : "%@%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@, %2$@" + "value" : "%1$@%2$@" } } } }, - "%@, finished" : { - - }, - "%@, pinned" : { + "%@, %@" : { + "extractionState" : "stale", "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "%1$@, %2$@" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@, 고정됨" + "value" : "%1$@, %2$@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@, sabitlendi" + "value" : "%@, %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%@, đã ghim" + "value" : "%@, %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%@,已固定" + "value" : "%@, %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%@,已釘選" + "value" : "%1$@, %2$@" } } } }, - "%@: %@" : { + "%@, pinned" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "%1$@: %2$@" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@: %2$@" + "value" : "%@, 고정됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@: %2$@" + "value" : "%@, sabitlendi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@: %2$@" + "value" : "%@, đã ghim" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@: %2$@" + "value" : "%@,已固定" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@: %2$@" + "value" : "%@,已釘選" } } } }, - "%@: %@, %@" : { + "%@." : { + "extractionState" : "stale", "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "%1$@: %2$@, %3$@" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@: %2$@, %3$@" + "value" : "%@." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@: %@, %@" + "value" : "%@." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%@: %@, %@" + "value" : "%@." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%@:%@、%@" + "value" : "%@." } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%@:%@、%@" + "value" : "%@." } } } }, - "%@: %lld" : { - "extractionState" : "stale", + "%@. %@" : { "localizations" : { "en" : { "stringUnit" : { "state" : "new", - "value" : "%1$@: %2$lld" + "value" : "%1$@. %2$@" } }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@: %2$lld" + "value" : "%1$@. %2$@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@: %lld" + "value" : "%@. %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%@: %lld" + "value" : "%@. %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%@: %lld" + "value" : "%@。%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@: %2$lld" + "value" : "%@。%@" } } } }, - "%@:%@" : { - "extractionState" : "stale", + "%@. %@. %@" : { "localizations" : { "en" : { "stringUnit" : { "state" : "new", - "value" : "%1$@:%2$@" + "value" : "%1$@. %2$@. %3$@" } }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@:%2$@" + "value" : "%1$@. %2$@. %3$@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@:%@" + "value" : "%@. %@. %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%@:%@" + "value" : "%@. %@. %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%@:%@" + "value" : "%@。%@。%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@:%2$@" + "value" : "%@。%@。%@" } } } }, - "%@." : { - "extractionState" : "stale", + "%@/%@ rows" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "%1$@/%2$@ rows" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@." + "value" : "%1$@/%2$@행" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@." + "value" : "%@/%@ satır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%@." + "value" : "%1$@/%2$@ dòng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%@." + "value" : "%@/%@ 行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%@." + "value" : "%1$@/%2$@ 列" } } } }, - "%@. %@" : { + "%@: %@" : { "localizations" : { "en" : { "stringUnit" : { "state" : "new", - "value" : "%1$@. %2$@" + "value" : "%1$@: %2$@" } }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@. %2$@" + "value" : "%1$@: %2$@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@. %@" + "value" : "%1$@: %2$@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%@. %@" + "value" : "%1$@: %2$@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%@。%@" + "value" : "%1$@: %2$@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%@。%@" + "value" : "%1$@: %2$@" } } } }, - "%@. %@. %@" : { + "%@: %@, %@" : { "localizations" : { "en" : { "stringUnit" : { "state" : "new", - "value" : "%1$@. %2$@. %3$@" + "value" : "%1$@: %2$@, %3$@" } }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@. %2$@. %3$@" + "value" : "%1$@: %2$@, %3$@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@. %@. %@" + "value" : "%@: %@, %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%@. %@. %@" + "value" : "%@: %@, %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%@。%@。%@" + "value" : "%@:%@、%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%@。%@。%@" + "value" : "%@:%@、%@" } } } }, - "%@/%@ rows" : { + "%@: %lld" : { + "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { "state" : "new", - "value" : "%1$@/%2$@ rows" + "value" : "%1$@: %2$lld" } }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@/%2$@행" + "value" : "%1$@: %2$lld" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@/%@ satır" + "value" : "%@: %lld" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@/%2$@ dòng" + "value" : "%@: %lld" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%@/%@ 行" + "value" : "%@: %lld" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@/%2$@ 列" + "value" : "%1$@: %2$lld" } } } }, - "%@%@" : { + "%@:%@" : { "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { "state" : "new", - "value" : "%1$@%2$@" + "value" : "%1$@:%2$@" } }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@%2$@" + "value" : "%1$@:%2$@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@%@" + "value" : "%@:%@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%@%@" + "value" : "%@:%@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%@%@" + "value" : "%@:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@%2$@" + "value" : "%1$@:%2$@" } } } }, - "%@×" : { - "comment" : "Number of times a query ran, %@ is a count\nSlowdown multiple, %@ is a number", + "%@_name" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@×" + "value" : "%@_name" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ kez" + "value" : "%@_name" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%@ lần" + "value" : "%@_name" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 次" + "value" : "%@_name" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 次" + "value" : "%@_name" } } } @@ -3555,320 +2952,473 @@ } } }, - "%1$@ … %2$d lines" : { - - }, - "%1$@ (%2$@)" : { + "%@×" : { + "comment" : "Number of times a query ran, %@ is a count\nSlowdown multiple, %@ is a number", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@ (%2$@)" + "value" : "%@×" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@ (%2$@)" + "value" : "%@ kez" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@ (%2$@)" + "value" : "%@ lần" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@(%2$@)" + "value" : "%@ 次" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@(%2$@)" + "value" : "%@ 次" } } } }, - "%1$@ (ORA-%2$ld)." : { - "extractionState" : "stale", + "%d bytes" : { "localizations" : { + "en" : { + "variations" : { + "plural" : { + "one" : { + "stringUnit" : { + "state" : "translated", + "value" : "%d byte" + } + }, + "other" : { + "stringUnit" : { + "state" : "translated", + "value" : "%d bytes" + } + } + } + } + }, "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "%1$@ (ORA-%2$ld)." + "value" : "%d바이트", + "state" : "translated" } } } }, - "%1$@ %2$@ is dropped and recreated, so anything depending on it fails until it exists again." : { - + "%d cells selected, rows %d to %d, columns %d to %d" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "%1$d cells selected, rows %2$d to %3$d, columns %4$d to %5$d" + } + }, + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$d개 셀 선택됨, %2$d~%3$d행, %4$d~%5$d열" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$d hücre seçili, satırlar %2$d - %3$d, sütunlar %4$d - %5$d" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "Đã chọn %1$d ô, hàng %2$d đến %3$d, cột %4$d đến %5$d" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "已选择%1$d个单元格,行%2$d至%3$d,列%4$d至%5$d" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "已選取 %1$d 個儲存格,第 %2$d 列到第 %3$d 列,第 %4$d 欄到第 %5$d 欄" + } + } + } }, - "%1$@ → %2$@" : { - + "%d changes" : { + "localizations" : { + "en" : { + "variations" : { + "plural" : { + "one" : { + "stringUnit" : { + "state" : "translated", + "value" : "%d change" + } + }, + "other" : { + "stringUnit" : { + "state" : "translated", + "value" : "%d changes" + } + } + } + } + }, + "ko" : { + "stringUnit" : { + "value" : "변경 %d개", + "state" : "translated" + } + } + } }, - "%1$@ → %2$@ · %3$@ runs before, %4$@ now" : { - "comment" : "Regression detail: prior duration, recent duration, prior count, recent count", + "%d columns" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@ → %2$@ · 이전 실행 %3$@, 현재 %4$@" + "value" : "%d개 열" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@ → %2$@ · önce %3$@ çalışma, şimdi %4$@" + "value" : "%d sütun" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@ → %2$@ · trước %3$@ lần chạy, hiện %4$@" + "value" : "%d cột" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@ → %2$@ · 之前 %3$@ 次,现在 %4$@ 次" + "value" : "%d列" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@ → %2$@ · 之前 %3$@ 次,現在 %4$@ 次" + "value" : "%d 個欄位" } } } }, - "%1$@ +%2$lld" : { + "%d connected" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@ +%2$lld" + "value" : "%d개 연결됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@ +%2$lld" + "value" : "%d bağlı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@ +%2$lld" + "value" : "%d đã kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@ +%2$lld" + "value" : "已连接%d个" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@ +%2$lld" + "value" : "已連線 %d 個" } } } }, - "%1$@ chart of %2$@ by %3$@ with %4$d points" : { + "%d connections" : { "localizations" : { - "en" : { + "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@ chart of %2$@ by %3$@ with %#@points@" - }, - "substitutions" : { - "points" : { - "argNum" : 4, - "formatSpecifier" : "d", - "variations" : { - "plural" : { - "one" : { - "stringUnit" : { - "state" : "translated", - "value" : "%arg point" - } - }, - "other" : { - "stringUnit" : { - "state" : "translated", - "value" : "%arg points" - } - } - } - } - } + "value" : "%d개 연결" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%d bağlantı" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "%d kết nối" } }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "%d 个连接" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "%d 個連線" + } + } + } + }, + "%d connections found" : { + "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%3$@ 기준 %2$@의 %1$@ 차트, %#@points@" - }, - "substitutions" : { - "points" : { - "argNum" : 4, - "formatSpecifier" : "d", - "variations" : { - "plural" : { - "other" : { - "stringUnit" : { - "state" : "translated", - "value" : "지점 %arg개" - } - } - } - } - } + "value" : "%d개 연결 발견" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%3$@ ölçütüne göre %2$@ için %4$d noktalı %1$@ grafiği" + "value" : "%d bağlantı bulundu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Biểu đồ %1$@ của %2$@ theo %3$@ với %4$d điểm" + "value" : "Tìm thấy %d kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "包含 %4$d 个点的%1$@图:按%3$@显示%2$@" + "value" : "找到 %d 个连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "包含 %4$d 個點的%1$@圖:依%3$@顯示%2$@" + "value" : "找到 %d 個連線" } } } }, - "%1$@ in %2$@" : { - - }, - "%1$@ of %2$@" : { + "%d connections were imported." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@/%2$@" + "value" : "%d개 연결을 가져왔습니다." + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%d bağlantı içe aktarıldı." + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "Đã nhập %d kết nối." + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "已导入%d个连接。" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "已匯入 %d 個連線。" } } } }, - "%1$@ of %2$@ on this page" : { + "%d elements" : { + "comment" : "A label showing the number of elements in an array. The argument is the number of elements in the array.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 페이지에서 %2$@개 중 %1$@개" + "value" : "%d개 요소" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%d öğe" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "%d phần tử" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "%d 个元素" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "%d 個元素" } } } }, - "%1$@ on %2$@" : { + "%d favorites will be permanently deleted." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%2$@에서 %1$@" + "value" : "%d개 즐겨찾기가 영구적으로 삭제됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%2$@ üzerinde %1$@" + "value" : "%d favori kalıcı olarak silinecek." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@ trên %2$@" + "value" : "%d mục yêu thích sẽ bị xoá vĩnh viễn." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%2$@ 上的 %1$@" + "value" : "%d 个收藏将被永久删除。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%2$@ 上的 %1$@" + "value" : "%d 個我的最愛將會永久刪除。" } } } }, - "%1$@ was signed by %2$@ (Team ID %3$@) and notarized by Apple. TablePro did not write it.\n\nA database plugin runs as part of TablePro and can read the credentials of every connection you open. Trust this developer only if you would give them that access.\n\nTrusting applies to every plugin this developer signs, now and later. You can withdraw it in Settings > Plugins." : { + "%d filters applied" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플러그인: %1$@. 서명자: %2$@ (팀 ID %3$@). Apple의 공증을 받았습니다. TablePro에서 만든 플러그인이 아닙니다.\n\n데이터베이스 플러그인은 TablePro의 일부로 실행되며 사용자가 여는 모든 연결의 자격 증명을 읽을 수 있습니다. 해당 접근 권한을 부여해도 되는 개발자만 신뢰하십시오.\n\n개발자를 신뢰하면 현재와 이후에 이 개발자가 서명하는 모든 플러그인에 적용됩니다. 설정 > 플러그인에서 언제든지 신뢰를 해제할 수 있습니다." + "value" : "필터 %d개 적용됨" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%d filtre uygulandı" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "Đã áp dụng %d bộ lọc" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "已应用 %d 个筛选条件" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "已套用 %d 個篩選條件" } } } }, - "%1$@, %2$@" : { - "shouldTranslate" : false + "%d included" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "%d개 포함됨", + "state" : "translated" + } + } + } }, - "%1$@, returns %2$@" : { - + "%d left out" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "%d개 제외됨", + "state" : "translated" + } + } + } }, - "%1$@: %2$@" : { - "comment" : "A list of failed drops, one per line.", - "isCommentAutoGenerated" : true, + "%d more" : { "localizations" : { "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "%1$@: %2$@" + "value" : "%d개 더", + "state" : "translated" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@: %2$@" + "value" : "%d daha" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@: %2$@" + "value" : "thêm %d" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@:%2$@" + "value" : "还有 %d 个" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@:%2$@" + "value" : "還有 %d 個" } } } }, - "%1$d of %2$d" : { - "comment" : "A description of the current position in a collection of items. The first argument is the current position. The second argument is the total number of items.", - "isCommentAutoGenerated" : true, + "%d of %d" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "%1$d of %2$d" + } + }, "ko" : { "stringUnit" : { "state" : "translated", @@ -3878,7 +3428,7 @@ "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%2$d içinden %1$d" + "value" : "%1$d / %2$d" } }, "vi" : { @@ -3890,177 +3440,313 @@ "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%1$d / %2$d" + "value" : "第%1$d个,共%2$d个" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%1$d / %2$d" + "value" : "第 %1$d 個,共 %2$d 個" } } } }, - "%1$d of %2$d allowed for this run" : { - - }, - "%1$d of %2$d included" : { - - }, - "%1$d of %2$d rows, %3$d marked for deletion" : { + "%d of %d columns visible" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "%1$d of %2$d columns visible" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%2$d행 중 %1$d행, %3$d행 삭제 예정" + "value" : "%1$d/%2$d개 열 표시 중" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%2$d satırdan %1$d tanesi, %3$d tanesi silinmek üzere işaretli" + "value" : "%2$d sütundan %1$d tanesi görünür" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%1$d trên %2$d hàng, %3$d hàng được đánh dấu xoá" + "value" : "Hiển thị %1$d trên %2$d cột" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%2$d 行中的 %1$d 行,%3$d 行已标记删除" + "value" : "显示%1$d列,共%2$d列" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%2$d 列中的 %1$d 列,%3$d 列已標記刪除" + "value" : "顯示 %1$d 個欄位,共 %2$d 個" } } } }, - "%1$d of %2$d tables will be compared." : { - + "%d of %d rows" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "%1$d of %2$d rows" + } + }, + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$d/%2$d행" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%d / %d satır" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "%d trên %d hàng" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "%d / %d 行" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$d / %2$d 列" + } + } + } }, - "%1$d statements stay out of this run and %2$@ keeps what it has for them." : { - + "%d of %d rows selected" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "%1$d of %2$d rows selected" + } + }, + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$d/%2$d행 선택됨" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%d / %d satır seçildi" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "Đã chọn %d trên %d dòng" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "已选择%d/%d行" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "已選取 %1$d / %2$d 列" + } + } + } }, - "%1$d statements, %2$d will run." : { - + "%d of 1 table will be compared." : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "테이블 1개 중 %d개를 비교합니다.", + "state" : "translated" + } + } + } }, - "%1$lld of %2$lld statements were applied. This connection does not roll back user and role changes." : { + "%d plugin(s) could not be loaded" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$lld/%2$lld개 SQL 문이 적용되었습니다. 이 연결에서는 사용자 및 역할 변경을 롤백하지 않습니다." + "value" : "%d개 플러그인을 불러올 수 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%2$lld ifadeden %1$lld tanesi uygulandı. Bu bağlantı, kullanıcı ve rol değişikliklerini geri almaz." + "value" : "%d eklenti yüklenemedi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã áp dụng %1$lld trên %2$lld câu lệnh. Kết nối này không hoàn tác các thay đổi người dùng và vai trò." + "value" : "Không thể tải %d plugin" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已应用 %2$lld 条语句中的 %1$lld 条。此连接不会回滚用户和角色更改。" + "value" : "%d 个插件无法加载" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已套用 %2$lld 條陳述式中的 %1$lld 條。此連線不會回復使用者與角色的變更。" + "value" : "%d 個外掛無法載入" } } } }, - "%1$lld statements executed, %2$lld failed" : { - "comment" : "The number of statements that were skipped and the number of statements that failed.", - "isCommentAutoGenerated" : true, + "%d plugins could not be loaded." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$lld개 SQL 문 실행됨, %2$lld개 실패" + "value" : "%d개 플러그인을 불러올 수 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%1$lld ifade çalıştırıldı, %2$lld başarısız" + "value" : "%d eklenti yüklenemedi." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã chạy %1$lld câu lệnh, %2$lld lỗi" + "value" : "Không thể tải %d plugin." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已执行 %1$lld 条语句,%2$lld 条失败" + "value" : "%d个插件无法加载。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已執行 %1$lld 條陳述式,%2$lld 條失敗" + "value" : "%d 個外掛無法載入。" } } } }, - "%1$lld users, %2$lld roles" : { + "%d plugins need an update to load." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사용자 %1$lld명, 역할 %2$lld개" + "value" : "%d개 플러그인을 불러오려면 업데이트해야 합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%1$lld kullanıcı, %2$lld rol" + "value" : "%d eklentinin yüklenmesi için güncelleme gerekiyor." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%1$lld người dùng, %2$lld vai trò" + "value" : "%d plugin cần cập nhật để tải." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%1$lld 个用户,%2$lld 个角色" + "value" : "%d个插件需要更新才能加载。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%1$lld 個使用者、%2$lld 個角色" + "value" : "%d 個外掛需要更新才能載入。" } } } }, - "%1$lldh %2$02lldm" : { - + "%d rows" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%d개 행" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%d satır" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "%d hàng" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "%d 行" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "%d 列" + } + } + } }, - "%1$lldm %2$02llds" : { - + "%d rows hold NULL in a key column and were left out. Choose a key with no NULLs to compare them." : { + "localizations" : { + "en" : { + "variations" : { + "plural" : { + "one" : { + "stringUnit" : { + "state" : "translated", + "value" : "%d row holds NULL in a key column and was left out. Choose a key with no NULLs to compare it." + } + }, + "other" : { + "stringUnit" : { + "state" : "translated", + "value" : "%d rows hold NULL in a key column and were left out. Choose a key with no NULLs to compare them." + } + } + } + } + }, + "ko" : { + "stringUnit" : { + "value" : "%d개 행은 키 열이 NULL이라 제외되었습니다. 비교하려면 NULL이 없는 키를 선택하십시오.", + "state" : "translated" + } + } + } }, - "%d bytes" : { + "%d rows match. Matching rows are counted, not listed, so a difference is never crowded out of this list." : { "localizations" : { "en" : { "variations" : { @@ -4068,5117 +3754,6158 @@ "one" : { "stringUnit" : { "state" : "translated", - "value" : "%d byte" + "value" : "%d row matches. Matching rows are counted, not listed, so a difference is never crowded out of this list." } }, "other" : { "stringUnit" : { "state" : "translated", - "value" : "%d bytes" + "value" : "%d rows match. Matching rows are counted, not listed, so a difference is never crowded out of this list." } } } } + }, + "ko" : { + "stringUnit" : { + "value" : "%d개 행이 일치합니다. 일치하는 행은 목록에 넣지 않고 개수만 세므로, 차이점이 목록에서 밀려나지 않습니다.", + "state" : "translated" + } } } }, - "%d cells selected, rows %d to %d, columns %d to %d" : { + "%d selected" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%d개 선택됨" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%d seçili" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "Đã chọn %d" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "已选择%d个" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "已選取 %d 個" + } + } + } + }, + "%d skipped" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "%d개 건너뜀", + "state" : "translated" + } + }, + "tr" : { + "stringUnit" : { + "value" : "%d atlandı", + "state" : "translated" + } + }, + "vi" : { + "stringUnit" : { + "value" : "đã bỏ qua %d", + "state" : "translated" + } + }, + "zh-Hans" : { + "stringUnit" : { + "value" : "已跳过 %d 行", + "state" : "translated" + } + }, + "zh-Hant" : { + "stringUnit" : { + "value" : "已略過 %d 列", + "state" : "translated" + } + } + } + }, + "%d statements would destroy data and are not allowed yet." : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "구문 %d개가 데이터를 파괴하며 아직 허용되지 않았습니다.", + "state" : "translated" + } + } + } + }, + "%d-%d of %@%@ rows" : { "localizations" : { "en" : { "stringUnit" : { "state" : "new", - "value" : "%1$d cells selected, rows %2$d to %3$d, columns %4$d to %5$d" + "value" : "%1$d-%2$d of %3$@%4$@ rows" } }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$d개 셀 선택됨, %2$d~%3$d행, %4$d~%5$d열" + "value" : "%1$d-%2$d / %3$@%4$@행" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%1$d hücre seçili, satırlar %2$d - %3$d, sütunlar %4$d - %5$d" + "value" : "%d-%d / %@%@ satır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã chọn %1$d ô, hàng %2$d đến %3$d, cột %4$d đến %5$d" + "value" : "%d-%d trên %@%@ dòng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已选择%1$d个单元格,行%2$d至%3$d,列%4$d至%5$d" + "value" : "%d-%d / %@%@行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已選取 %1$d 個儲存格,第 %2$d 列到第 %3$d 列,第 %4$d 欄到第 %5$d 欄" + "value" : "%1$d-%2$d / %3$@%4$@ 列" } } } }, - "%d changes" : { + "%d-%d of ? rows" : { "localizations" : { "en" : { - "variations" : { - "plural" : { - "one" : { - "stringUnit" : { - "state" : "translated", - "value" : "%d change" - } - }, - "other" : { - "stringUnit" : { - "state" : "translated", - "value" : "%d changes" - } - } - } + "stringUnit" : { + "state" : "new", + "value" : "%1$d-%2$d of ? rows" + } + }, + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$d-%2$d / ?행" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$d-%2$d / ? satır" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$d-%2$d trên ? hàng" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "第%1$d-%2$d行,共?行" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$d-%2$d / ? 列" } } } }, - "%d columns" : { + "%dm %ds" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "%1$dm %2$ds" + } + }, + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$d분 %2$d초" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%dd %ds" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "%dm %ds" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "%d分%d秒" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$d 分 %2$d 秒" + } + } + } + }, + "%lld" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld" + } + } + } + }, + "%lld / %lld" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld / %lld" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld / %lld" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld / %lld" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld / %lld" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld / %lld" + } + } + } + }, + "%lld / ~%lld" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld / ~%lld" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld / ~%lld" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld / ~%lld" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld / ~%lld" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld / ~%lld" + } + } + } + }, + "%lld ^[columns](inflect: true)" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld개 열" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld sütun" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld cột" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld列" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld 個欄位" + } + } + } + }, + "%lld ^[rows](inflect: true)" : { + "comment" : "A label displaying the number of rows in a database table. The argument is the number of rows in the table.", + "isCommentAutoGenerated" : true, + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld행" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld satır" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld dòng" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld 行" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld 列" + } + } + } + }, + "%lld bytes" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld바이트" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld bayt" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld byte" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld 字节" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld 位元組" + } + } + } + }, + "%lld connection(s) use this profile. They will fall back to no SSH tunnel." : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld connection(s) use this profile. They will fall back to no SSH tunnel." + } + }, + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld개 연결이 이 프로필을 사용합니다. SSH 터널을 사용하지 않도록 전환됩니다." + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld bağlantı bu profili kullanıyor. SSH tüneli olmadan bağlanmaya geri dönecekler." + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld kết nối đang sử dụng hồ sơ này. Chúng sẽ chuyển về không dùng SSH tunnel." + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld 个连接正在使用此配置。它们将回退为不使用 SSH 隧道。" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld 個連線正在使用此設定檔。它們將改為不使用 SSH 隧道。" + } + } + } + }, + "%lld connections were imported." : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%d개 열" + "value" : "%lld개 연결을 가져왔습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%d sütun" + "value" : "%lld bağlantı içe aktarıldı." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%d cột" + "value" : "%lld kết nối đã được nhập." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%d列" + "value" : "已导入 %lld 个连接。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%d 個欄位" + "value" : "已匯入 %lld 個連線。" } } } }, - "%d connected" : { + "%lld in / %lld out tokens" : { + "extractionState" : "stale", "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "%1$lld in / %2$lld out tokens" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%d개 연결됨" + "value" : "입력 토큰 %1$lld개 / 출력 토큰 %2$lld개" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%d bağlı" + "value" : "%lld giriş / %lld çıkış belirteç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%d đã kết nối" + "value" : "%1$lld vào / %2$lld ra token" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已连接%d个" + "value" : "%lld 输入 / %lld 输出 token" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已連線 %d 個" + "value" : "%1$lld 輸入 / %2$lld 輸出 token" } } } }, - "%d connections" : { + "%lld in · %lld out" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "%1$lld in · %2$lld out" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%d개 연결" + "value" : "입력 %1$lld · 출력 %2$lld" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%d bağlantı" + "value" : "%lld giriş · %lld çıkış" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%d kết nối" + "value" : "%lld vào · %lld ra" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%d 个连接" + "value" : "%lld 输入 · %lld 输出" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%d 個連線" + "value" : "%1$lld 輸入 · %2$lld 輸出" } } } }, - "%d connections found" : { + "%lld inside" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%d개 연결 발견" + "value" : "%lld개 포함" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%d bağlantı bulundu" + "value" : "içinde %lld" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tìm thấy %d kết nối" + "value" : "%lld bên trong" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "找到 %d 个连接" + "value" : "内含 %lld 个" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "找到 %d 個連線" + "value" : "內含 %lld 個" } } } }, - "%d connections were imported." : { + "%lld matches" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%d개 연결을 가져왔습니다." + "value" : "일치 항목 %lld개" + } + } + } + }, + "%lld matching rows" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "일치하는 행 %lld개" + } + } + } + }, + "%lld objects" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld개 객체" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%d bağlantı içe aktarıldı." + "value" : "%lld nesne" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã nhập %d kết nối." + "value" : "%lld đối tượng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已导入%d个连接。" + "value" : "%lld 个对象" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已匯入 %d 個連線。" + "value" : "%lld 個物件" + } + } + } + }, + "%lld objects selected" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld개 객체 선택됨" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld nesne seçildi" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "Đã chọn %lld đối tượng" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "已选择 %lld 个对象" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "已選取 %lld 個物件" + } + } + } + }, + "%lld of %lld" : { + "extractionState" : "stale", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "%1$lld of %2$lld" + } + }, + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$lld/%2$lld" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld / %lld" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$lld / %2$lld" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld / %lld" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$lld / %2$lld" + } + } + } + }, + "%lld of %lld ^[rows](inflect: true)" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$lld/%2$lld행" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld / %lld satır" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld trên %lld dòng" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld / %lld 行" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$lld / %2$lld 列" + } + } + } + }, + "%lld of %lld ^[rows](inflect: true) selected" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$lld/%2$lld행 선택됨" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld / %lld satır seçildi" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "Đã chọn %lld trên %lld dòng" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "已选择%lld/%lld行" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "已選取 %1$lld / %2$lld 列" + } + } + } + }, + "%lld of %lld rows selected" : { + "extractionState" : "stale", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "%1$lld of %2$lld rows selected" + } + }, + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$lld/%2$lld행 선택됨" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld / %lld satır seçildi" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "Đã chọn %1$lld trong %2$lld dòng" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "已选择 %lld / %lld 行" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "已選取 %1$lld / %2$lld 列" + } + } + } + }, + "%lld of %lld selected" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "%1$lld of %2$lld selected" + } + }, + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$lld/%2$lld개 선택됨" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld / %lld seçili" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld / %lld đã chọn" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "已选择 %lld / %lld" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "已選取 %1$lld / %2$lld" + } + } + } + }, + "%lld pending changes" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld개 보류 중인 변경 사항" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld bekleyen değişiklik" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld thay đổi đang chờ" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld 项待应用的更改" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld 項待套用的變更" + } + } + } + }, + "%lld privileges" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld개 권한" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld yetki" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld quyền" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld 项权限" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld 項權限" + } + } + } + }, + "%lld pt" : { + "extractionState" : "stale", + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lldpt" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld punto" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld pt" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld pt" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld pt" + } + } + } + }, + "%lld roles own database objects" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld개 역할이 데이터베이스 객체를 소유함" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld rol veritabanı nesnelerinin sahibi" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld vai trò đang sở hữu các đối tượng cơ sở dữ liệu" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld 个角色拥有数据库对象" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld 個角色擁有資料庫物件" + } + } + } + }, + "%lld row%@ affected" : { + "extractionState" : "stale", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "%1$lld row%2$@ affected" + } + }, + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$lld개 행%2$@에 영향" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld satır%@ etkilendi" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld dòng%@ bị ảnh hưởng" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld 行%@受影响" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "已影響 %1$lld 列%2$@" + } + } + } + }, + "%lld row%@ to export" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "%1$lld row%2$@ to export" + } + }, + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$lld개 행%2$@ 내보내기" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld satır%@ dışa aktarılacak" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld hàng%@ để export" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld 行%@待导出" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "待匯出 %1$lld 列%2$@" + } + } + } + }, + "%lld row(s) affected" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld개 행에 영향" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld satır etkilendi" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld dòng bị ảnh hưởng" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld 行受影响" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "已影響 %lld 列" + } + } + } + }, + "%lld rows" : { + "comment" : "Row count in query history, %lld is the number of rows", + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld개 행" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld satır" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld dòng" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld 行" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld 列" + } + } + } + }, + "%lld seconds" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld초" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld saniye" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld giây" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld 秒" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld 秒" + } + } + } + }, + "%lld selected" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld개 선택됨" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld seçili" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "Đã chọn %lld" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "已选择%lld个" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "已選取 %lld 個" + } + } + } + }, + "%lld skipped (no options)" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld개 건너뜀(옵션 없음)" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld atlandı (no seçenek)" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld bị bỏ qua (không có tùy chọn)" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld 已跳过(无选项)" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "已略過 %lld 個(無選項)" + } + } + } + }, + "%lld sources" : { + "comment" : "Count of selected query history sources", + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld개 소스" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld kaynak" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld nguồn" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld 个来源" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld 個來源" + } + } + } + }, + "%lld statements" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld개 SQL 문" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld ifade" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld câu lệnh" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld 条语句" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld 條陳述式" + } + } + } + }, + "%lld statements executed" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld개 SQL 문 실행됨" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld ifade çalıştırıldı" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "Đã thực thi %lld câu lệnh" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "已执行 %lld 条语句" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "已執行 %lld 條陳述式" } } } }, - "%d elements" : { - "comment" : "A label showing the number of elements in an array. The argument is the number of elements in the array.", - "isCommentAutoGenerated" : true, + "%lld statements executed, %lld failed" : { + "extractionState" : "stale", "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "%1$lld statements executed, %2$lld failed" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%d개 요소" + "value" : "%1$lld개 SQL 문 실행됨, %2$lld개 실패" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%d öğe" + "value" : "%lld ifade çalıştırıldı, %lld başarısız" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%d phần tử" + "value" : "Đã thực thi %lld câu lệnh, %lld thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%d 个元素" + "value" : "已执行 %lld 条语句,%lld 条失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%d 個元素" + "value" : "已執行 %1$lld 條陳述式,%2$lld 條失敗" } } } }, - "%d exported row(s)" : { - - }, - "%d favorites will be permanently deleted." : { + "%lld suggestions available" : { + "comment" : "A description of the number of suggestions available. The argument is the number of suggestions.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%d개 즐겨찾기가 영구적으로 삭제됩니다." + "value" : "%lld개 제안 사용 가능" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%d favori kalıcı olarak silinecek." + "value" : "%lld öneri var" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%d mục yêu thích sẽ bị xoá vĩnh viễn." + "value" : "Có %lld gợi ý" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%d 个收藏将被永久删除。" + "value" : "有 %lld 条建议" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%d 個我的最愛將會永久刪除。" + "value" : "有 %lld 條建議" } } } }, - "%d filters applied" : { + "%lld table%@ to export" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "%1$lld table%2$@ to export" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터 %d개 적용됨" + "value" : "%1$lld개 테이블%2$@ 내보내기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%d filtre uygulandı" + "value" : "%lld tablo%@ dışa aktarılacak" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã áp dụng %d bộ lọc" + "value" : "%lld bảng%@ để xuất" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已应用 %d 个筛选条件" + "value" : "%lld 个表%@待导出" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已套用 %d 個篩選條件" + "value" : "待匯出 %1$lld 個資料表%2$@" } } } }, - "%d included" : { - - }, - "%d left out" : { - - }, - "%d lines" : { - - }, - "%d more" : { + "%lld tables" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%d개 더" + "value" : "%lld개 테이블" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%d daha" + "value" : "%lld tablo" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "thêm %d" + "value" : "%lld bảng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "还有 %d 个" + "value" : "%lld 个表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "還有 %d 個" + "value" : "%lld 個資料表" } } } }, - "%d more lines" : { - - }, - "%d of %d" : { + "%lld tables, %lld relationships" : { "localizations" : { "en" : { "stringUnit" : { "state" : "new", - "value" : "%1$d of %2$d" + "value" : "%1$lld tables, %2$lld relationships" } }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$d/%2$d" + "value" : "%1$lld개 테이블, %2$lld개 관계" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%1$d / %2$d" + "value" : "%lld tablo, %lld ilişki" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%1$d trên %2$d" + "value" : "%lld bảng, %lld quan hệ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "第%1$d个,共%2$d个" + "value" : "%lld 个表,%lld 个关系" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "第 %1$d 個,共 %2$d 個" + "value" : "%1$lld 個資料表,%2$lld 個關聯" } } } }, - "%d of %d columns visible" : { + "%lld%%" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "%1$d of %2$d columns visible" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$d/%2$d개 열 표시 중" + "value" : "%lld%%" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%2$d sütundan %1$d tanesi görünür" + "value" : "%lld%%" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiển thị %1$d trên %2$d cột" + "value" : "%lld%%" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示%1$d列,共%2$d列" + "value" : "%lld%%" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示 %1$d 個欄位,共 %2$d 個" + "value" : "%lld%%" } } } }, - "%d of %d rows" : { + "%lld-%lld of %lld ^[rows](inflect: true)" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "%1$d of %2$d rows" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$d/%2$d행" + "value" : "%1$lld-%2$lld / %3$lld행" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%d / %d satır" + "value" : "%lld-%lld / %lld satır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%d trên %d hàng" + "value" : "%lld-%lld trên %lld dòng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%d / %d 行" + "value" : "%lld-%lld / %lld行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%1$d / %2$d 列" + "value" : "%1$lld-%2$lld / %3$lld 列" } } } }, - "%d of %d rows selected" : { - "extractionState" : "stale", + "%lld-%lld of ~%lld ^[rows](inflect: true)" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "%1$d of %2$d rows selected" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$d/%2$d행 선택됨" + "value" : "%1$lld-%2$lld / ~%3$lld행" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%d / %d satır seçildi" + "value" : "%lld-%lld / ~%lld satır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã chọn %d trên %d dòng" + "value" : "%lld-%lld trên ~%lld dòng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已选择%d/%d行" + "value" : "%lld-%lld / ~%lld行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已選取 %1$d / %2$d 列" + "value" : "%1$lld-%2$lld / ~%3$lld 列" } } } }, - "%d of 1 table will be compared." : { - - }, - "%d plugin(s) could not be loaded" : { - "extractionState" : "stale", + "%lld." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%d개 플러그인을 불러올 수 없음" + "value" : "%lld." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%d eklenti yüklenemedi" + "value" : "%lld." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể tải %d plugin" + "value" : "%lld." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%d 个插件无法加载" + "value" : "%lld." } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%d 個外掛無法載入" + "value" : "%lld." } } } }, - "%d plugins could not be loaded." : { + "%lld/5" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%d개 플러그인을 불러올 수 없습니다." + "value" : "%lld/5" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%d eklenti yüklenemedi." + "value" : "%lld/5" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể tải %d plugin." + "value" : "%lld/5" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%d个插件无法加载。" + "value" : "%lld/5" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%d 個外掛無法載入。" + "value" : "%lld/5" } } } }, - "%d plugins need an update to load." : { + "%lldm %llds" : { + "extractionState" : "stale", "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "%1$lldm %2$llds" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%d개 플러그인을 불러오려면 업데이트해야 합니다." + "value" : "%1$lld분 %2$lld초" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%d eklentinin yüklenmesi için güncelleme gerekiyor." + "value" : "%lldm %llds" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%d plugin cần cập nhật để tải." + "value" : "%lldm %llds" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%d个插件需要更新才能加载。" + "value" : "%lldm %llds" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%d 個外掛需要更新才能載入。" + "value" : "%1$lld 分 %2$lld 秒" } } } }, - "%d rows" : { + "'%@' is a reserved Windows device name" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%d개 행" + "value" : "'%@' 이름은 Windows에서 예약된 장치 이름입니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%d satır" + "value" : "'%@' ayrılmış bir Windows aygıt adıdır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%d hàng" + "value" : "'%@' là tên thiết bị Windows dành riêng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%d 行" + "value" : "'%@' 是 Windows 保留设备名" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%d 列" - } - } - } - }, - "%d rows hold NULL in a key column and were left out. Choose a key with no NULLs to compare them." : { - "localizations" : { - "en" : { - "variations" : { - "plural" : { - "one" : { - "stringUnit" : { - "state" : "translated", - "value" : "%d row holds NULL in a key column and was left out. Choose a key with no NULLs to compare it." - } - }, - "other" : { - "stringUnit" : { - "state" : "translated", - "value" : "%d rows hold NULL in a key column and were left out. Choose a key with no NULLs to compare them." - } - } - } - } - } - } - }, - "%d rows match. Matching rows are counted, not listed, so a difference is never crowded out of this list." : { - "localizations" : { - "en" : { - "variations" : { - "plural" : { - "one" : { - "stringUnit" : { - "state" : "translated", - "value" : "%d row matches. Matching rows are counted, not listed, so a difference is never crowded out of this list." - } - }, - "other" : { - "stringUnit" : { - "state" : "translated", - "value" : "%d rows match. Matching rows are counted, not listed, so a difference is never crowded out of this list." - } - } - } + "value" : "「%@」是 Windows 保留的裝置名稱" } } } }, - "%d selected" : { + "''" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%d개 선택됨" + "value" : "''" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%d seçili" + "value" : "''" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã chọn %d" + "value" : "''" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已选择%d个" + "value" : "''" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已選取 %d 個" + "value" : "''" } } } }, - "%d skipped" : { + "(%@)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%d개 건너뜀" + "value" : "(%@)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%d atlandı" + "value" : "(%@)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "đã bỏ qua %d" + "value" : "(%@)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已跳过 %d 行" + "value" : "(%@)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已略過 %d 列" + "value" : "(%@)" } } } }, - "%d statements would destroy data and are not allowed yet." : { - - }, - "%d-%d of ? rows" : { - "extractionState" : "stale", + "(%lld %@)" : { "localizations" : { "en" : { "stringUnit" : { "state" : "new", - "value" : "%1$d-%2$d of ? rows" + "value" : "(%1$lld %2$@)" } }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$d-%2$d / ?행" + "value" : "(%1$lld %2$@)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%1$d-%2$d / ? satır" + "value" : "(%lld %@)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%1$d-%2$d trên ? hàng" + "value" : "(%1$lld %2$@)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "第%1$d-%2$d行,共?行" + "value" : "(%lld %@)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%1$d-%2$d / ? 列" + "value" : "(%1$lld %2$@)" } } } }, - "%d-%d of %@%@ rows" : { + "(%lld active)" : { "extractionState" : "stale", "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "%1$d-%2$d of %3$@%4$@ rows" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$d-%2$d / %3$@%4$@행" + "value" : "(%lld개 활성)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%d-%d / %@%@ satır" + "value" : "(%lld etkin)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%d-%d trên %@%@ dòng" + "value" : "(%lld đang hoạt động)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%d-%d / %@%@行" + "value" : "(%lld 活跃)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%1$d-%2$d / %3$@%4$@ 列" + "value" : "(%lld 個使用中)" } } } }, - "%dm %ds" : { + "(%lld hidden)" : { + "extractionState" : "stale", "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "%1$dm %2$ds" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$d분 %2$d초" + "value" : "(%lld개 숨김)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%dd %ds" + "value" : "(%lld gizli)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%dm %ds" + "value" : "(%lld ẩn)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%d分%d秒" + "value" : "(%lld 个已隐藏)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%1$d 分 %2$d 秒" + "value" : "(%lld 個已隱藏)" } } } }, - "%lld" : { + "(%lld)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%lld" + "value" : "(%lld)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%lld" + "value" : "(%lld)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%lld" + "value" : "(%lld)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%lld" + "value" : "(%lld)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%lld" + "value" : "(%lld)" } } } }, - "%lld / %lld" : { + "(%lld/%lld)" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "(%1$lld/%2$lld)" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%lld / %lld" + "value" : "(%1$lld/%2$lld)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%lld / %lld" + "value" : "(%lld/%lld)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%lld / %lld" + "value" : "(%lld/%lld)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%lld / %lld" + "value" : "(%lld/%lld)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%lld / %lld" + "value" : "(%1$lld/%2$lld)" } } } }, - "%lld / ~%lld" : { + "(Empty)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%lld / ~%lld" + "value" : "(비어 있음)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%lld / ~%lld" + "value" : "(Boş)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%lld / ~%lld" + "value" : "(Trống)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%lld / ~%lld" + "value" : "(空)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%lld / ~%lld" + "value" : "(空)" } } } }, - "%lld ^[columns](inflect: true)" : { + "(NULL)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%lld개 열" + "value" : "(NULL)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%lld sütun" + "value" : "(NULL)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%lld cột" + "value" : "(NULL)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%lld列" + "value" : "(NULL)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%lld 個欄位" + "value" : "(NULL)" } } } }, - "%lld ^[rows](inflect: true)" : { - "comment" : "A label displaying the number of rows in a database table. The argument is the number of rows in the table.", - "isCommentAutoGenerated" : true, + "(optional)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%lld행" + "value" : "(선택 사항)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%lld satır" + "value" : "(isteğe bağlı)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%lld dòng" + "value" : "(tùy chọn)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%lld 行" + "value" : "(可选)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%lld 列" + "value" : "(選填)" } } } }, - "%lld bytes" : { + "(showing %d of %d rows)" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "(showing %1$d of %2$d rows)" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%lld바이트" + "value" : "(%1$d/%2$d행 표시 중)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%lld bayt" + "value" : "(%d / %d satır gösteriliyor)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%lld byte" + "value" : "(đang hiển thị %d trên %d hàng)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%lld 字节" + "value" : "(显示 %d / %d 行)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%lld 位元組" + "value" : "(顯示 %1$d / %2$d 列)" } } } }, - "%lld connection(s) use this profile. They will fall back to no SSH tunnel." : { + "(this Mac)" : { "localizations" : { "en" : { "stringUnit" : { "state" : "translated", - "value" : "%lld connection(s) use this profile. They will fall back to no SSH tunnel." + "value" : "(this Mac)" } }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%lld개 연결이 이 프로필을 사용합니다. SSH 터널을 사용하지 않도록 전환됩니다." + "value" : "(이 Mac)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%lld bağlantı bu profili kullanıyor. SSH tüneli olmadan bağlanmaya geri dönecekler." + "value" : "(bu Mac)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%lld kết nối đang sử dụng hồ sơ này. Chúng sẽ chuyển về không dùng SSH tunnel." + "value" : "(máy Mac này)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%lld 个连接正在使用此配置。它们将回退为不使用 SSH 隧道。" + "value" : "(此 Mac)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%lld 個連線正在使用此設定檔。它們將改為不使用 SSH 隧道。" + "value" : "(這台 Mac)" } } } }, - "%lld connections were imported." : { - "extractionState" : "stale", + "**Available commands:**" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%lld개 연결을 가져왔습니다." + "value" : "**사용 가능한 명령:**" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%lld bağlantı içe aktarıldı." + "value" : "**Kullanılabilir komutlar:**" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%lld kết nối đã được nhập." + "value" : "**Các lệnh khả dụng:**" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已导入 %lld 个连接。" + "value" : "**可用命令:**" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已匯入 %lld 個連線。" + "value" : "**可用指令:**" } } } }, - "%lld in · %lld out" : { + "+%lld" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "%1$lld in · %2$lld out" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "입력 %1$lld · 출력 %2$lld" + "value" : "+%lld" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%lld giriş · %lld çıkış" + "value" : "+%lld" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%lld vào · %lld ra" + "value" : "+%lld" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%lld 输入 · %lld 输出" + "value" : "+%lld" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%1$lld 輸入 · %2$lld 輸出" + "value" : "+%lld" } } } }, - "%lld in / %lld out tokens" : { - "extractionState" : "stale", + ", %@" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "%1$lld in / %2$lld out tokens" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "입력 토큰 %1$lld개 / 출력 토큰 %2$lld개" + "value" : ", %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%lld giriş / %lld çıkış belirteç" + "value" : ", %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%1$lld vào / %2$lld ra token" + "value" : ", %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%lld 输入 / %lld 输出 token" + "value" : ",%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%1$lld 輸入 / %2$lld 輸出 token" + "value" : ",%@" } } } }, - "%lld inside" : { + ", and %lld more" : { + "comment" : "Plural suffix for the number of overflow items.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%lld개 포함" + "value" : ", 외 %lld개" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "içinde %lld" + "value" : " ve %lld tane daha" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%lld bên trong" + "value" : " và %lld mục nữa" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "内含 %lld 个" + "value" : ",还有 %lld 项" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "內含 %lld 個" - } - } - } - }, - "%lld matches" : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "일치 항목 %lld개" - } - } - } - }, - "%lld matching rows" : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "일치하는 행 %lld개" + "value" : ",還有 %lld 項" } } } }, - "%lld minutes" : { - - }, - "%lld objects" : { + "--" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%lld개 객체" + "value" : "--" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%lld nesne" + "value" : "--" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%lld đối tượng" + "value" : "--" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%lld 个对象" + "value" : "--" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%lld 個物件" + "value" : "--" } } } }, - "%lld objects selected" : { + "-- … %d more characters not shown; use Copy All for the full output." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%lld개 객체 선택됨" + "value" : "-- … 나머지 %d자는 표시되지 않음. 전체 출력은 모두 복사를 사용하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%lld nesne seçildi" + "value" : "-- … %d karakter daha gösterilmiyor; çıktının tamamı için Tümünü Kopyala'yı kullanın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã chọn %lld đối tượng" + "value" : "-- … còn %d ký tự nữa không hiển thị; dùng Sao chép tất cả để xem toàn bộ kết quả." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已选择 %lld 个对象" + "value" : "-- … 还有%d个字符未显示;使用\"全部复制\"获取完整输出。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已選取 %lld 個物件" + "value" : "-- … 還有 %d 個字未顯示;請使用「全部複製」取得完整輸出。" } } } }, - "%lld of %lld" : { + ".%@" : { "extractionState" : "stale", "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "%1$lld of %2$lld" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$lld/%2$lld" + "value" : ".%@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%lld / %lld" + "value" : ".%@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%1$lld / %2$lld" + "value" : ".%@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%lld / %lld" + "value" : ".%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%1$lld / %2$lld" + "value" : ".%@" } } } }, - "%lld of %lld ^[rows](inflect: true)" : { + "/%@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$lld/%2$lld행" + "value" : "/%@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%lld / %lld satır" + "value" : "/%@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%lld trên %lld dòng" + "value" : "/%@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%lld / %lld 行" + "value" : "/%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%1$lld / %2$lld 列" + "value" : "/%@" } } } }, - "%lld of %lld ^[rows](inflect: true) selected" : { + "/%@ needs a query: type one in the editor or after the command." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$lld/%2$lld행 선택됨" + "value" : "/%@ 명령에는 쿼리가 필요합니다. 편집기 또는 명령 뒤에 쿼리를 입력하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%lld / %lld satır seçildi" + "value" : "/%@ bir sorgu gerektirir: düzenleyiciye veya komutun ardına bir sorgu yazın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã chọn %lld trên %lld dòng" + "value" : "/%@ cần một truy vấn: nhập vào trình soạn thảo hoặc sau lệnh." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已选择%lld/%lld行" + "value" : "/%@需要一个查询:请在编辑器中或命令后输入。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已選取 %1$lld / %2$lld 列" + "value" : "/%@ 需要一個查詢:請在編輯器中或指令後輸入。" } } } }, - "%lld of %lld rows selected" : { - "extractionState" : "stale", + "/%@ · %@" : { "localizations" : { "en" : { "stringUnit" : { "state" : "new", - "value" : "%1$lld of %2$lld rows selected" + "value" : "/%1$@ · %2$@" } }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$lld/%2$lld행 선택됨" + "value" : "/%1$@ · %2$@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%lld / %lld satır seçildi" + "value" : "/%1$@ · %2$@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã chọn %1$lld trong %2$lld dòng" + "value" : "/%1$@ · %2$@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已选择 %lld / %lld 行" + "value" : "/%1$@ · %2$@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已選取 %1$lld / %2$lld 列" + "value" : "/%1$@ · %2$@" } } } }, - "%lld of %lld selected" : { + "/path/to/agent.sock" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "%1$lld of %2$lld selected" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$lld/%2$lld개 선택됨" + "value" : "/path/to/agent.sock" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%lld / %lld seçili" + "value" : "/path/to/agent.sock" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%lld / %lld đã chọn" + "value" : "/path/to/agent.sock" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已选择 %lld / %lld" + "value" : "/path/to/agent.sock" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已選取 %1$lld / %2$lld" + "value" : "/path/to/agent.sock" } } } }, - "%lld pending changes" : { + "/path/to/ca-cert.pem" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%lld개 보류 중인 변경 사항" + "value" : "/path/to/ca-cert.pem" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%lld bekleyen değişiklik" + "value" : "/path/to/ca-cert.pem" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%lld thay đổi đang chờ" + "value" : "/đường/dẫn/tới/ca-cert.pem" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%lld 项待应用的更改" + "value" : "/path/to/ca-cert.pem" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%lld 項待套用的變更" + "value" : "/path/to/ca-cert.pem" } } } }, - "%lld privileges" : { + "/path/to/database.sqlite" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%lld개 권한" + "value" : "/path/to/database.sqlite" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%lld yetki" + "value" : "/path/to/database.sqlite" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%lld quyền" + "value" : "/đường/dẫn/tới/database.sqlite" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%lld 项权限" + "value" : "/path/to/database.sqlite" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%lld 項權限" + "value" : "/path/to/database.sqlite" } } } }, - "%lld pt" : { + "0" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%lldpt" + "value" : "0" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%lld punto" + "value" : "0" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%lld pt" + "value" : "0" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%lld pt" + "value" : "0" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%lld pt" + "value" : "0" } } } }, - "%lld roles own database objects" : { + "1" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%lld개 역할이 데이터베이스 객체를 소유함" + "value" : "1" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%lld rol veritabanı nesnelerinin sahibi" + "value" : "1" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%lld vai trò đang sở hữu các đối tượng cơ sở dữ liệu" + "value" : "1" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%lld 个角色拥有数据库对象" + "value" : "1" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%lld 個角色擁有資料庫物件" + "value" : "1" } } } }, - "%lld row(s) affected" : { + "1 John Doe john@example.com NULL" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%lld개 행에 영향" + "value" : "1 John Doe john@example.com NULL" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%lld satır etkilendi" + "value" : "1 John Doe john@example.com NULL" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%lld dòng bị ảnh hưởng" + "value" : "1 John Doe john@example.com NULL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%lld 行受影响" + "value" : "1 John Doe john@example.com NULL" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已影響 %lld 列" + "value" : "1 John Doe john@example.com NULL" } } } }, - "%lld row%@ affected" : { + "1 (no batching)" : { "extractionState" : "stale", "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "%1$lld row%2$@ affected" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$lld개 행%2$@에 영향" + "value" : "1 (배치 처리 없음)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%lld satır%@ etkilendi" + "value" : "1 (toplu işlem yok)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%lld dòng%@ bị ảnh hưởng" + "value" : "1 (không gom nhóm)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%lld 行%@受影响" + "value" : "1(不分批)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已影響 %1$lld 列%2$@" + "value" : "1(不分批)" } } } }, - "%lld row%@ to export" : { + "1 connection found" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "%1$lld row%2$@ to export" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$lld개 행%2$@ 내보내기" + "value" : "1개 연결 발견" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%lld satır%@ dışa aktarılacak" + "value" : "1 bağlantı bulundu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%lld hàng%@ để export" + "value" : "Tìm thấy 1 kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%lld 行%@待导出" + "value" : "找到 1 个连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "待匯出 %1$lld 列%2$@" + "value" : "找到 1 個連線" } } } }, - "%lld rows" : { - "comment" : "Row count in query history, %lld is the number of rows", + "1 connection was imported." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%lld개 행" + "value" : "1개 연결을 가져왔습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%lld satır" + "value" : "1 bağlantı içe aktarıldı." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%lld dòng" + "value" : "1 kết nối đã được nhập." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%lld 行" + "value" : "已导入 1 个连接。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%lld 列" + "value" : "已匯入 1 個連線。" } } } }, - "%lld seconds" : { + "1 day" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%lld초" + "value" : "1일" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%lld saniye" + "value" : "1 gün" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%lld giây" + "value" : "1 ngày" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%lld 秒" + "value" : "1 天" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%lld 秒" + "value" : "1 天" } } } }, - "%lld selected" : { + "1 of %lld conflicts" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%lld개 선택됨" + "value" : "%lld개 충돌 중 1개" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%lld seçili" + "value" : "1 / %lld çakışma" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã chọn %lld" + "value" : "1 trong %lld xung đột" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已选择%lld个" + "value" : "第 1 个冲突,共 %lld 个" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已選取 %lld 個" + "value" : "第 1 個衝突,共 %lld 個" } } } }, - "%lld skipped (no options)" : { + "1 plugin could not be loaded." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%lld개 건너뜀(옵션 없음)" + "value" : "1개 플러그인을 불러올 수 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%lld atlandı (no seçenek)" + "value" : "1 eklenti yüklenemedi." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%lld bị bỏ qua (không có tùy chọn)" + "value" : "Không thể tải 1 plugin." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%lld 已跳过(无选项)" + "value" : "1个插件无法加载。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已略過 %lld 個(無選項)" + "value" : "1 個外掛無法載入。" } } } }, - "%lld sources" : { - "comment" : "Count of selected query history sources", + "1 plugin needs an update to load." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%lld개 소스" + "value" : "1개 플러그인을 불러오려면 업데이트해야 합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%lld kaynak" + "value" : "1 eklentinin yüklenmesi için güncelleme gerekiyor." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%lld nguồn" + "value" : "1 plugin cần cập nhật để tải." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%lld 个来源" + "value" : "1个插件需要更新才能加载。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%lld 個來源" + "value" : "1 個外掛需要更新才能載入。" } } } }, - "%lld statements" : { + "1 statement stays out of this run and %@ keeps what it has for it." : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "구문 1개는 이번 실행에서 제외되며, %@은(는) 해당 항목을 그대로 유지합니다.", + "state" : "translated" + } + } + } + }, + "1 statement would destroy data and is not allowed yet." : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "구문 1개가 데이터를 파괴하며 아직 허용되지 않았습니다.", + "state" : "translated" + } + } + } + }, + "1 statement, %d will run." : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "구문 1개 중 %d개를 실행합니다.", + "state" : "translated" + } + } + } + }, + "1 year" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%lld개 SQL 문" + "value" : "1년" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%lld ifade" + "value" : "1 yıl" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%lld câu lệnh" + "value" : "1 năm" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%lld 条语句" + "value" : "1 年" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%lld 條陳述式" + "value" : "1 年" } } } }, - "%lld statements executed" : { + "1,000" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%lld개 SQL 문 실행됨" + "value" : "1,000" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%lld ifade çalıştırıldı" + "value" : "1.000" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã thực thi %lld câu lệnh" + "value" : "1,000" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已执行 %lld 条语句" + "value" : "1,000" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已執行 %lld 條陳述式" + "value" : "1,000" } } } }, - "%lld statements executed, %lld failed" : { - "extractionState" : "stale", + "1,000 rows" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "%1$lld statements executed, %2$lld failed" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$lld개 SQL 문 실행됨, %2$lld개 실패" + "value" : "1,000개 행" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%lld ifade çalıştırıldı, %lld başarısız" + "value" : "1.000 satır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã thực thi %lld câu lệnh, %lld thất bại" + "value" : "1.000 dòng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已执行 %lld 条语句,%lld 条失败" + "value" : "1,000 行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已執行 %1$lld 條陳述式,%2$lld 條失敗" + "value" : "1,000 列" } } } }, - "%lld suggestions available" : { - "comment" : "A description of the number of suggestions available. The argument is the number of suggestions.", - "isCommentAutoGenerated" : true, + "1,000,000" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%lld개 제안 사용 가능" + "value" : "1,000,000" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%lld öneri var" + "value" : "1.000.000" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Có %lld gợi ý" + "value" : "1.000.000" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "有 %lld 条建议" + "value" : "1,000,000" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "有 %lld 條建議" + "value" : "1,000,000" } } } }, - "%lld table%@ to export" : { + "10,000" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "%1$lld table%2$@ to export" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$lld개 테이블%2$@ 내보내기" + "value" : "10,000" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%lld tablo%@ dışa aktarılacak" + "value" : "10.000" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%lld bảng%@ để xuất" + "value" : "10,000" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%lld 个表%@待导出" + "value" : "10,000" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "待匯出 %1$lld 個資料表%2$@" + "value" : "10,000" } } } }, - "%lld tables" : { - "extractionState" : "stale", + "10,000 rows" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%lld개 테이블" + "value" : "10,000개 행" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%lld tablo" + "value" : "10.000 satır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%lld bảng" + "value" : "10.000 dòng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%lld 个表" + "value" : "10,000 行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%lld 個資料表" + "value" : "10,000 列" } } } }, - "%lld tables, %lld relationships" : { + "100" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "%1$lld tables, %2$lld relationships" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$lld개 테이블, %2$lld개 관계" + "value" : "100" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%lld tablo, %lld ilişki" + "value" : "100" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%lld bảng, %lld quan hệ" + "value" : "100" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%lld 个表,%lld 个关系" + "value" : "100" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%1$lld 個資料表,%2$lld 個關聯" + "value" : "100" } } } }, - "%lld-%lld of %lld ^[rows](inflect: true)" : { + "100 rows" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$lld-%2$lld / %3$lld행" + "value" : "100개 행" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%lld-%lld / %lld satır" + "value" : "100 satır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%lld-%lld trên %lld dòng" + "value" : "100 dòng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%lld-%lld / %lld行" + "value" : "100 行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%1$lld-%2$lld / %3$lld 列" + "value" : "100 列" } } } }, - "%lld-%lld of ~%lld ^[rows](inflect: true)" : { + "100,000" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$lld-%2$lld / ~%3$lld행" + "value" : "100,000" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%lld-%lld / ~%lld satır" + "value" : "100.000" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%lld-%lld trên ~%lld dòng" + "value" : "100.000" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%lld-%lld / ~%lld行" + "value" : "100,000" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%1$lld-%2$lld / ~%3$lld 列" + "value" : "100,000" } } } }, - "%lld." : { + "2" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%lld." + "value" : "2" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%lld." + "value" : "2" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%lld." + "value" : "2" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%lld." + "value" : "2" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%lld." + "value" : "2" } } } }, - "%lld/5" : { - "extractionState" : "stale", + "2 spaces" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%lld/5" + "value" : "공백 2개" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%lld/5" + "value" : "2 boşluk" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%lld/5" + "value" : "2 dấu cách" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%lld/5" + "value" : "2 个空格" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%lld/5" + "value" : "2 個空格" } } } }, - "%lld%%" : { + "22" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%lld%%" + "value" : "22" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%lld%%" + "value" : "22" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%lld%%" + "value" : "22" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%lld%%" + "value" : "22" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%lld%%" + "value" : "22" } } } }, - "%lldm %llds" : { + "3" : { "extractionState" : "stale", "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "%1$lldm %2$llds" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$lld분 %2$lld초" + "value" : "3" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%lldm %llds" + "value" : "3" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%lldm %llds" + "value" : "3" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%lldm %llds" + "value" : "3" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%1$lld 分 %2$lld 秒" + "value" : "3" } } } }, - "%llds" : { - - }, - "•" : { - "extractionState" : "stale", + "30 days" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "•" + "value" : "30일" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "•" + "value" : "30 gün" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "•" + "value" : "30 ngày" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "•" + "value" : "30 天" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "•" + "value" : "30 天" } } } }, - "••••••••" : { - "extractionState" : "stale", + "30s" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "••••••••" + "value" : "30초" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "••••••••" + "value" : "30s" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "••••••••" + "value" : "30 giây" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "••••••••" + "value" : "30秒" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "••••••••" + "value" : "30 秒" } } } }, - "© 2026 Ngo Quoc Dat.\n%@" : { - "extractionState" : "stale", + "4 spaces" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "© 2026 Ngo Quoc Dat.\n%@" + "value" : "공백 4개" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "© 2026 Ngo Quoc Dat.\n%@" + "value" : "4 boşluk" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "© 2026 Ngo Quoc Dat.\n%@" + "value" : "4 dấu cách" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "© 2026 Ngo Quoc Dat.\n%@" + "value" : "4 个空格" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "© 2026 Ngo Quoc Dat.\n%@" + "value" : "4 個空格" } } } }, - "+%lld" : { + "5,000" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "+%lld" + "value" : "5,000" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "+%lld" + "value" : "5.000" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "+%lld" + "value" : "5,000" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "+%lld" + "value" : "5,000" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "+%lld" + "value" : "5,000" } } } }, - "<1 ms" : { - "comment" : "Query duration under one millisecond", + "5,000 rows" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "<1 ms" + "value" : "5,000개 행" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "<1 ms" + "value" : "5.000 satır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "<1 ms" + "value" : "5.000 dòng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "<1 毫秒" + "value" : "5,000 行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "<1 毫秒" + "value" : "5,000 列" } } } }, - "<1ms" : { + "50,000" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "<1ms" + "value" : "50,000" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "<1ms" + "value" : "50.000" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "<1ms" + "value" : "50.000" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "<1ms" + "value" : "50,000" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "<1ms" + "value" : "50,000" } } } }, - "=" : { - "extractionState" : "stale", + "500" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "=" + "value" : "500" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "=" + "value" : "500" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "=" + "value" : "500" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "=" + "value" : "500" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "=" + "value" : "500" } } } }, - "~/.pgpass found — matching entry exists" : { - "extractionState" : "stale", + "500 rows" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "~/.pgpass 발견 — 일치하는 항목 있음" + "value" : "500개 행" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "~/.pgpass bulundu — eşleşen giriş var" + "value" : "500 satır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tìm thấy ~/.pgpass — có entry khớp" + "value" : "500 dòng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "~/.pgpass 已找到 - 存在匹配条目" + "value" : "500 行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已找到 ~/.pgpass,存在相符的項目" + "value" : "500 列" } } } }, - "~/.pgpass found — no matching entry" : { - "extractionState" : "stale", + "500,000" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "~/.pgpass 발견 — 일치하는 항목 없음" + "value" : "500,000" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "~/.pgpass bulundu — eşleşen giriş yok" + "value" : "500.000" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tìm thấy ~/.pgpass — không có entry khớp" + "value" : "500.000" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "~/.pgpass 已找到 - 无匹配条目" + "value" : "500,000" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已找到 ~/.pgpass,但無相符的項目" + "value" : "500,000" } } } }, - "~/.pgpass found, matching entry exists" : { + "6" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "~/.pgpass 발견, 일치하는 항목 있음" + "value" : "6" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "~/.pgpass bulundu, eşleşen kayıt var" + "value" : "6" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tìm thấy ~/.pgpass, có mục khớp" + "value" : "6" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已找到~/.pgpass,存在匹配条目" + "value" : "6" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已找到 ~/.pgpass,存在相符的項目" + "value" : "6" } } } }, - "~/.pgpass found, no matching entry" : { + "60 days" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "~/.pgpass 발견, 일치하는 항목 없음" + "value" : "60일" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "~/.pgpass bulundu, eşleşen kayıt yok" + "value" : "60 gün" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tìm thấy ~/.pgpass, không có mục khớp" + "value" : "60 ngày" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已找到~/.pgpass,无匹配条目" + "value" : "60 天" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已找到 ~/.pgpass,沒有相符的項目" + "value" : "60 天" } } } }, - "~/.pgpass has incorrect permissions (needs chmod 0600)" : { + "60s" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "~/.pgpass 권한이 올바르지 않음(chmod 0600 필요)" + "value" : "60초" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "~/.pgpass yanlış izinlere sahip (chmod 0600 gerekli)" + "value" : "60s" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "~/.pgpass có quyền không đúng (cần chmod 0600)" + "value" : "60 giây" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "~/.pgpass 权限不正确(需要 chmod 0600)" + "value" : "60秒" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "~/.pgpass 權限不正確(需要 chmod 0600)" + "value" : "60 秒" } } } }, - "~/.pgpass not found" : { + "7 days" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "~/.pgpass 파일을 찾을 수 없음" + "value" : "7일" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "~/.pgpass bulunamadı" + "value" : "7 gün" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy ~/.pgpass" + "value" : "7 ngày" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未找到 ~/.pgpass" + "value" : "7 天" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "找不到 ~/.pgpass" + "value" : "7 天" } } } }, - "~/.ssh/id_rsa" : { + "8" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "~/.ssh/id_rsa" + "value" : "8" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "~/.ssh/id_rsa" + "value" : "8" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "~/.ssh/id_rsa" + "value" : "8" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "~/.ssh/id_rsa" + "value" : "8" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "~/.ssh/id_rsa" + "value" : "8" } } } }, - "⌘K" : { + "8 spaces" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "⌘K" + "value" : "공백 8개" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "⌘K" + "value" : "8 boşluk" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "⌘K" + "value" : "8 dấu cách" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "⌘K" + "value" : "8 个空格" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "⌘K" + "value" : "8 個空格" } } } }, - "⌘T" : { + "8+ characters" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "⌘T" + "value" : "8자 이상" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "⌘T" + "value" : "8+ karakter" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "⌘T" + "value" : "8+ ký tự" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "⌘T" + "value" : "至少8个字符" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "⌘T" + "value" : "至少 8 個字" } } } }, - "0" : { - "extractionState" : "stale", + "90 days" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "0" + "value" : "90일" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "0" + "value" : "90 gün" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "0" + "value" : "90 ngày" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "0" + "value" : "90 天" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "0" + "value" : "90 天" } } } }, - "1" : { - "extractionState" : "stale", + ":" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "1" + "value" : ":" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "1" + "value" : ":" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "1" + "value" : ":" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "1" + "value" : ":" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "1" + "value" : ":" } } } }, - "1 John Doe john@example.com NULL" : { - "extractionState" : "stale", + ":%@" : { + "shouldTranslate" : false + }, + "<1 ms" : { + "comment" : "Query duration under one millisecond", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "1 John Doe john@example.com NULL" + "value" : "<1 ms" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "1 John Doe john@example.com NULL" + "value" : "<1 ms" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "1 John Doe john@example.com NULL" + "value" : "<1 ms" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "1 John Doe john@example.com NULL" + "value" : "<1 毫秒" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "1 John Doe john@example.com NULL" + "value" : "<1 毫秒" } } } }, - "1 (no batching)" : { - "extractionState" : "stale", + "<1ms" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "1 (배치 처리 없음)" + "value" : "<1ms" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "1 (toplu işlem yok)" + "value" : "<1ms" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "1 (không gom nhóm)" + "value" : "<1ms" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "1(不分批)" + "value" : "<1ms" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "1(不分批)" + "value" : "<1ms" } } } }, - "1 connection found" : { + "=" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "1개 연결 발견" + "value" : "=" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "1 bağlantı bulundu" + "value" : "=" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tìm thấy 1 kết nối" + "value" : "=" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "找到 1 个连接" + "value" : "=" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "找到 1 個連線" + "value" : "=" } } } }, - "1 connection was imported." : { + "A Cloudflare tunnel already exists for connection: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "1개 연결을 가져왔습니다." + "value" : "%@ 연결에 대한 Cloudflare 터널이 이미 있습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "1 bağlantı içe aktarıldı." + "value" : "Bu bağlantı için zaten bir Cloudflare tüneli var: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "1 kết nối đã được nhập." + "value" : "Đã có Cloudflare tunnel cho kết nối: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已导入 1 个连接。" + "value" : "该连接已存在Cloudflare隧道:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已匯入 1 個連線。" + "value" : "這個連線已存在 Cloudflare 隧道:%@" } } } }, - "1 day" : { + "A built-in plugin \"%@\" already provides this bundle ID" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "1일" + "value" : "기본 제공 플러그인 \"%@\"에서 이미 이 번들 ID를 제공합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "1 gün" + "value" : "A built-giriş plugin \"%@\" already provides this bundle ID" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "1 ngày" + "value" : "Plugin tích hợp \"%@\" đã cung cấp bundle ID này" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "1 天" + "value" : "内置插件 \"%@\" 已提供此 bundle ID" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "1 天" + "value" : "內建外掛「%@」已提供此 bundle ID" } } } }, - "1 of %lld conflicts" : { - "extractionState" : "stale", + "A column left out of the comparison is still written on insert and update. Changing either list needs another comparison." : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "비교에서 제외한 열도 삽입과 업데이트에는 그대로 기록됩니다. 두 목록 중 하나를 바꾸면 다시 비교해야 합니다.", + "state" : "translated" + } + } + } + }, + "A command named \"/%@\" already exists." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%lld개 충돌 중 1개" + "value" : "\"/%@\" 명령이 이미 있습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "1 / %lld çakışma" + "value" : "\"/%@\" adında bir komut zaten var." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "1 trong %lld xung đột" + "value" : "Lệnh có tên \"/%@\" đã tồn tại." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "第 1 个冲突,共 %lld 个" + "value" : "名为\"/%@\"的命令已存在。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "第 1 個衝突,共 %lld 個" + "value" : "名為「/%@」的指令已存在。" } } } }, - "1 plugin could not be loaded." : { + "A comparison is already running." : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "비교가 이미 실행 중입니다.", + "state" : "translated" + } + } + } + }, + "A connection can use one connection method at a time. Disable the other methods to use %@." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "1개 플러그인을 불러올 수 없습니다." + "value" : "한 연결에서는 한 번에 하나의 연결 방식만 사용할 수 있습니다. %@ 방식을 사용하려면 다른 방식을 비활성화하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "1 eklenti yüklenemedi." + "value" : "Bir bağlantı aynı anda tek bir bağlantı yöntemi kullanabilir. %@ kullanmak için diğer yöntemleri kapatın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể tải 1 plugin." + "value" : "Mỗi kết nối chỉ dùng được một phương thức kết nối tại một thời điểm. Tắt các phương thức khác để dùng %@." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "1个插件无法加载。" + "value" : "一个连接同时只能使用一种连接方式。要使用 %@,请先关闭其他方式。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "1 個外掛無法載入。" + "value" : "一個連線同時只能使用一種連線方式。要使用 %@,請先關閉其他方式。" } } } }, - "1 plugin needs an update to load." : { + "A connection can use one tunnel at a time. Disable the SSH Tunnel to use a Cloudflare Tunnel." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "1개 플러그인을 불러오려면 업데이트해야 합니다." + "value" : "한 연결에서는 한 번에 하나의 터널만 사용할 수 있습니다. Cloudflare 터널을 사용하려면 SSH 터널을 비활성화하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "1 eklentinin yüklenmesi için güncelleme gerekiyor." + "value" : "Bir bağlantı aynı anda yalnızca bir tünel kullanabilir. Cloudflare Tüneli kullanmak için SSH Tünelini devre dışı bırakın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "1 plugin cần cập nhật để tải." + "value" : "Mỗi kết nối chỉ dùng được một tunnel. Tắt SSH Tunnel để dùng Cloudflare Tunnel." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "1个插件需要更新才能加载。" + "value" : "一个连接一次只能使用一个隧道。请停用SSH隧道以使用Cloudflare隧道。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "1 個外掛需要更新才能載入。" + "value" : "一個連線一次只能使用一個隧道。請停用 SSH 隧道以使用 Cloudflare 隧道。" } } } }, - "1 statement stays out of this run and %@ keeps what it has for it." : { - - }, - "1 statement would destroy data and is not allowed yet." : { - - }, - "1 statement, %d will run." : { - - }, - "1 year" : { + "A connection can use only one connection method at a time. Enabled: %@." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "1년" + "value" : "한 연결에서는 한 번에 하나의 연결 방식만 사용할 수 있습니다. 활성화됨: %@." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "1 yıl" + "value" : "Bir bağlantı aynı anda yalnızca bir bağlantı yöntemi kullanabilir. Etkin: %@." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "1 năm" + "value" : "Mỗi kết nối chỉ dùng được một phương thức kết nối tại một thời điểm. Đang bật: %@." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "1 年" + "value" : "一个连接同时只能使用一种连接方式。已启用:%@。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "1 年" + "value" : "一個連線同時只能使用一種連線方式。已啟用:%@。" } } } }, - "1,000" : { + "A connection cannot use SSH and Cloudflare tunnels at the same time." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "1,000" + "value" : "한 연결에서 SSH와 Cloudflare 터널을 동시에 사용할 수 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "1.000" + "value" : "Bir bağlantı SSH ve Cloudflare tünellerini aynı anda kullanamaz." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "1,000" + "value" : "Kết nối không thể dùng SSH tunnel và Cloudflare tunnel cùng lúc." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "1,000" + "value" : "连接不能同时使用SSH隧道和Cloudflare隧道。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "1,000" + "value" : "連線無法同時使用 SSH 隧道和 Cloudflare 隧道。" } } } }, - "1,000 rows" : { + "A connection with this name, host, and type already exists." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "1,000개 행" + "value" : "이름, 호스트 및 유형이 같은 연결이 이미 있습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "1.000 satır" + "value" : "Bu ad, sunucu ve tür ile bir bağlantı zaten var." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "1.000 dòng" + "value" : "Đã tồn tại một kết nối với tên, host và kiểu này." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "1,000 行" + "value" : "已存在同名、同主机和同类型的连接。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "1,000 列" + "value" : "已存在同名稱、同主機與同類型的連線。" } } } }, - "1,000,000" : { + "A different file already exists at %@." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "1,000,000" + "value" : "%@ 위치에 다른 파일이 이미 있습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "1.000.000" + "value" : "%@ konumunda zaten farklı bir dosya var." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "1.000.000" + "value" : "Đã có một tệp khác tại %@." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "1,000,000" + "value" : "%@ 处已存在另一个文件。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "1,000,000" + "value" : "%@ 已存在另一個檔案。" } } } }, - "2" : { - "extractionState" : "stale", + "A fast, lightweight native macOS database client" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "2" + "value" : "빠르고 가벼운 macOS 네이티브 데이터베이스 클라이언트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "2" + "value" : "Hızlı, hafif yerel macOS veritabanı istemcisi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "2" + "value" : "Ứng dụng quản lý cơ sở dữ liệu gốc macOS nhanh và nhẹ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "2" + "value" : "快速、轻量的原生 macOS 数据库客户端" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "2" + "value" : "快速、輕量的原生 macOS 資料庫用戶端" } } } }, - "2 spaces" : { + "A key from the xAI Console bills xAI API credits. Grok 4.5 and Grok 4.3 are available." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "공백 2개" + "value" : "xAI Console 키를 사용하면 xAI API 크레딧이 차감됩니다. Grok 4.5와 Grok 4.3을 사용할 수 있습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "2 boşluk" + "value" : "xAI Console'dan alınan bir anahtar xAI API kredilerinden düşer. Grok 4.5 ve Grok 4.3 kullanılabilir." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "2 dấu cách" + "value" : "Khóa lấy từ xAI Console sẽ tính phí vào tín dụng API của xAI. Có sẵn Grok 4.5 và Grok 4.3." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "2 个空格" + "value" : "使用 xAI Console 的密钥会扣除 xAI API 额度。可用 Grok 4.5 和 Grok 4.3。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "2 個空格" + "value" : "使用 xAI Console 的金鑰會扣除 xAI API 額度。可使用 Grok 4.5 和 Grok 4.3。" } } } }, - "3" : { - "extractionState" : "stale", + "A new password will be set when you apply changes." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "3" + "value" : "변경 사항을 적용하면 새 비밀번호가 설정됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "3" + "value" : "Değişiklikleri uyguladığınızda yeni bir parola ayarlanacak." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "3" + "value" : "Mật khẩu mới sẽ được đặt khi bạn áp dụng thay đổi." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "3" + "value" : "应用更改时将设置新密码。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "3" + "value" : "套用變更時會設定新密碼。" } } } }, - "4 spaces" : { + "A newer TablePro is required to load this plugin." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "공백 4개" + "value" : "이 플러그인을 불러오려면 최신 버전의 TablePro가 필요합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "4 boşluk" + "value" : "Bu eklentiyi yüklemek için daha yeni bir TablePro gerekiyor." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "4 dấu cách" + "value" : "Cần phiên bản TablePro mới hơn để tải plugin này." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "4 个空格" + "value" : "需要更新版本的TablePro才能加载此插件。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "4 個空格" + "value" : "需要更新版本的 TablePro 才能載入這個外掛。" } } } }, - "5,000" : { + "A newer version of TablePro is required for this plugin. Update TablePro to keep using it." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "5,000" + "value" : "이 플러그인을 사용하려면 최신 버전의 TablePro가 필요합니다. 계속 사용하려면 TablePro를 업데이트하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "5.000" + "value" : "Bu eklenti için TablePro'nun daha yeni bir sürümü gerekiyor. Kullanmaya devam etmek için TablePro'yu güncelleyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "5,000" + "value" : "Plugin này cần phiên bản TablePro mới hơn. Cập nhật TablePro để tiếp tục sử dụng." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "5,000" + "value" : "此插件需要更新版本的TablePro。请更新TablePro以继续使用。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "5,000" + "value" : "這個外掛需要更新版本的 TablePro。請更新 TablePro 以繼續使用。" } } } }, - "5,000 rows" : { + "A query is still running. Disconnecting cancels it." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "5,000개 행" + "value" : "쿼리가 아직 실행 중입니다. 연결을 끊으면 취소됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "5.000 satır" + "value" : "Bir sorgu hâlâ çalışıyor. Bağlantıyı kesmek onu iptal eder." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "5.000 dòng" + "value" : "Một truy vấn vẫn đang chạy. Ngắt kết nối sẽ huỷ nó." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "5,000 行" + "value" : "仍有查询在运行。断开连接会取消它。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "5,000 列" + "value" : "仍有查詢在執行。中斷連線會取消它。" } } } }, - "6" : { + "A run is already in progress." : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "실행이 이미 진행 중입니다.", + "state" : "translated" + } + } + } + }, + "A service account key is required" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "6" + "value" : "서비스 계정 키가 필요합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "6" + "value" : "Servis hesabı anahtarı gerekli" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "6" + "value" : "Cần có khóa tài khoản dịch vụ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "6" + "value" : "需要服务账号密钥" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "6" + "value" : "需要服務帳號金鑰" } } } }, - "7 days" : { + "A superuser bypasses all permission checks." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "7일" + "value" : "슈퍼유저는 모든 권한 검사를 우회합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "7 gün" + "value" : "Superuser tüm izin denetimlerini atlar." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "7 ngày" + "value" : "Superuser bỏ qua mọi kiểm tra quyền." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "7 天" + "value" : "超级用户会跳过所有权限检查。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "7 天" + "value" : "超級使用者會略過所有權限檢查。" } } } }, - "8" : { + "A sync conflict was detected and needs to be resolved." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "8" + "value" : "동기화 충돌이 감지되어 해결이 필요합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "8" + "value" : "Bir eşitleme çakışması tespit edildi ve çözülmesi gerekiyor." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "8" + "value" : "Phát hiện xung đột đồng bộ và cần được giải quyết." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "8" + "value" : "检测到同步冲突,需要解决。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "8" + "value" : "偵測到同步衝突,需要解決。" } } } }, - "8 spaces" : { + "A sync is still running" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "동기화가 아직 실행 중입니다", + "state" : "translated" + } + } + } + }, + "A transaction cannot be combined with skip and continue: together they would leave the target half applied." : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "트랜잭션은 건너뛰고 계속하기와 함께 쓸 수 없습니다. 두 가지를 함께 쓰면 대상이 절반만 적용된 상태로 남습니다.", + "state" : "translated" + } + } + } + }, + "A user or role with this name already exists." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "공백 8개" + "value" : "같은 이름의 사용자 또는 역할이 이미 있습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "8 boşluk" + "value" : "Bu adda bir kullanıcı veya rol zaten var." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "8 dấu cách" + "value" : "Đã có người dùng hoặc vai trò trùng tên." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "8 个空格" + "value" : "已存在同名的用户或角色。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "8 個空格" + "value" : "已存在同名的使用者或角色。" } } } }, - "8+ characters" : { + "ACTIVE CONNECTIONS" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "8자 이상" + "value" : "활성 연결" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "8+ karakter" + "value" : "AKTİF BAĞLANTILAR" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "8+ ký tự" + "value" : "KẾT NỐI ĐANG HOẠT ĐỘNG" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "至少8个字符" + "value" : "活跃连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "至少 8 個字" + "value" : "使用中的連線" } } } }, - "10,000" : { + "AI" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "10,000" + "value" : "AI" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "10.000" + "value" : "AI" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "10,000" + "value" : "AI" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "10,000" + "value" : "AI" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "10,000" + "value" : "AI" } } } }, - "10,000 rows" : { + "AI Chat" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "10,000개 행" + "value" : "AI 채팅" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "10.000 satır" + "value" : "Yapay Zeka Sohbeti" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "10.000 dòng" + "value" : "AI Chat" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "10,000 行" + "value" : "AI 对话" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "10,000 列" + "value" : "AI 對話" } } } }, - "22" : { + "AI Not Configured" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "22" + "value" : "AI가 설정되지 않음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "22" + "value" : "AI Yapılandırılmadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "22" + "value" : "AI chưa được cấu hình" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "22" + "value" : "AI 未配置" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "22" + "value" : "AI 尚未設定" } } } }, - "30 days" : { + "AI Policy" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "30일" + "value" : "AI 정책" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "30 gün" + "value" : "Yapay Zeka İlkesi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "30 ngày" + "value" : "Chính sách AI" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "30 天" + "value" : "AI 策略" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "30 天" + "value" : "AI 政策" } } } }, - "30s" : { + "AI Policy controls in-app AI agents. External Clients controls Raycast, Cursor, Claude Desktop, and other MCP clients. Effective scope is the minimum of the requesting token's scope and the External Clients level." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "30초" + "value" : "AI 정책은 앱 내 AI 에이전트를 제어합니다. 외부 클라이언트는 Raycast, Cursor, Claude Desktop 및 기타 MCP 클라이언트를 제어합니다. 유효 범위는 요청 토큰의 범위와 외부 클라이언트 수준 중 더 제한적인 범위입니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "30s" + "value" : "AI Politikası uygulama içi AI ajanlarını kontrol eder. Harici İstemciler ise Raycast, Cursor, Claude Desktop ve diğer MCP istemcilerini kontrol eder. Etkin kapsam, talep eden token'ın kapsamı ile Harici İstemciler düzeyinin minimumudur." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "30 giây" + "value" : "AI Policy kiểm soát các AI agent trong ứng dụng. External Clients kiểm soát Raycast, Cursor, Claude Desktop và các MCP client khác. Phạm vi thực tế là mức thấp hơn giữa phạm vi của token yêu cầu và mức External Clients." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "30秒" + "value" : "AI 策略控制应用内 AI 代理。外部客户端控制 Raycast、Cursor、Claude Desktop 及其他 MCP 客户端。实际权限取请求令牌权限与外部客户端级别中的较低值。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "30 秒" + "value" : "AI 政策控制應用程式內的 AI 代理程式。外部用戶端控制 Raycast、Cursor、Claude Desktop 及其他 MCP 用戶端。實際範圍取請求權杖範圍與外部用戶端層級兩者中較低者。" } } } }, - "50,000" : { + "AI Provider" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "50,000" + "value" : "AI 제공업체" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "50.000" + "value" : "Yapay Zeka Sağlayıcısı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "50.000" + "value" : "Nhà cung cấp AI" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "50,000" + "value" : "AI 提供商" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "50,000" + "value" : "AI 供應商" } } } }, - "60 days" : { + "AI Rules" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "60일" + "value" : "AI 규칙" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "60 gün" + "value" : "Yapay zeka kuralları" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "60 ngày" + "value" : "Quy tắc AI" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "60 天" + "value" : "AI规则" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "60 天" + "value" : "AI 規則" } } } }, - "60s" : { + "AI Walkthrough" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "60초" + "value" : "AI 단계별 안내" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "60s" + "value" : "AI Adım Adım Anlatım" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "60 giây" + "value" : "Hướng dẫn AI" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "60秒" + "value" : "AI 分步讲解" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "60 秒" + "value" : "AI 逐步解說" } } } }, - "90 days" : { + "AI access is disabled for this connection" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "90일" + "value" : "이 연결에서는 AI 접근이 비활성화되어 있습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "90 gün" + "value" : "Bu bağlantı için AI erişimi devre dışı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "90 ngày" + "value" : "Quyền truy cập AI bị tắt cho kết nối này" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "90 天" + "value" : "此连接的 AI 访问已禁用" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "90 天" + "value" : "此連線的 AI 存取已停用" } } } }, - "100" : { + "AI access policies are configured per-connection in each connection's settings." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "100" + "value" : "AI 접근 정책은 각 연결의 설정에서 연결별로 구성합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "100" + "value" : "AI erişim politikaları her bağlantının ayarlarında ayrı ayrı yapılandırılır." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "100" + "value" : "Chính sách truy cập AI được cấu hình riêng cho từng kết nối trong phần cài đặt." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "100" + "value" : "AI 访问策略在每个连接的设置中单独配置。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "100" + "value" : "AI 存取原則在每個連線的設定中個別設定。" } } } }, - "100 rows" : { + "AI and MCP" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "100개 행" + "value" : "AI 및 MCP" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "100 satır" + "value" : "AI ve MCP" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "100 dòng" + "value" : "AI và MCP" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "100 行" + "value" : "AI 与 MCP" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "100 列" + "value" : "AI 與 MCP" } } } }, - "100,000" : { + "AI is disabled for this connection." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "100,000" + "value" : "이 연결에서는 AI가 비활성화되어 있습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "100.000" + "value" : "Bu bağlantı için yapay zeka devre dışı." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "100.000" + "value" : "AI bị tắt cho kết nối này." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "100,000" + "value" : "此连接已禁用 AI。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "100,000" + "value" : "此連線已停用 AI。" } } } }, - "500" : { + "AI made too many tool calls in one response. Try simplifying the request." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "500" + "value" : "AI가 한 응답에서 도구를 너무 많이 호출했습니다. 요청을 더 간단하게 작성해 보십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "500" + "value" : "Yapay zeka tek yanıtta çok fazla araç çağrısı yaptı. İsteği sadeleştirmeyi deneyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "500" + "value" : "AI gọi quá nhiều công cụ trong một phản hồi. Hãy thử đơn giản hóa yêu cầu." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "500" + "value" : "AI在一次回复中调用了过多工具。请尝试简化请求。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "500" + "value" : "AI 在一次回應中呼叫了過多工具。請嘗試簡化請求。" } } } }, - "500 rows" : { + "AI responses may be inaccurate" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "500개 행" + "value" : "AI 응답은 부정확할 수 있습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "500 satır" + "value" : "Yapay zeka yanıtları hatalı olabilir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "500 dòng" + "value" : "Phản hồi của AI có thể không chính xác" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "500 行" + "value" : "AI回复可能不准确" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "500 列" + "value" : "AI 回應可能不準確" } } } }, - "500,000" : { + "AI-Powered Assistant" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "500,000" + "value" : "AI 기반 어시스턴트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "500.000" + "value" : "AI Destekli Asistan" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "500.000" + "value" : "Trợ lý AI" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "500,000" + "value" : "AI 助手" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "500,000" + "value" : "AI 助理" } } } }, - "A built-in plugin \"%@\" already provides this bundle ID" : { + "AI-generated. Review before applying." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기본 제공 플러그인 \"%@\"에서 이미 이 번들 ID를 제공합니다" + "value" : "AI가 생성했습니다. 적용하기 전에 검토하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "A built-giriş plugin \"%@\" already provides this bundle ID" + "value" : "Yapay zeka üretti. Uygulamadan önce gözden geçirin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Plugin tích hợp \"%@\" đã cung cấp bundle ID này" + "value" : "Do AI tạo. Hãy xem lại trước khi áp dụng." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "内置插件 \"%@\" 已提供此 bundle ID" + "value" : "由 AI 生成。应用前请先检查。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "內建外掛「%@」已提供此 bundle ID" + "value" : "由 AI 產生。套用前請先檢查。" } } } }, - "A Cloudflare tunnel already exists for connection: %@" : { + "AI-powered SQL completions appear as ghost text while typing. Press Tab to accept, Escape to dismiss." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 연결에 대한 Cloudflare 터널이 이미 있습니다." + "value" : "AI 기반 SQL 자동 완성이 입력하는 동안 고스트 텍스트로 표시됩니다. Tab 키를 눌러 적용하고 Escape 키를 눌러 닫으십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu bağlantı için zaten bir Cloudflare tüneli var: %@" + "value" : "Yapay zeka destekli SQL tamamlamaları yazarken hayalet metin olarak görünür. Kabul etmek için Tab, kapatmak için Escape." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã có Cloudflare tunnel cho kết nối: %@" + "value" : "Gợi ý SQL bằng AI xuất hiện dưới dạng văn bản mờ khi gõ. Nhấn Tab để chấp nhận, Escape để bỏ qua." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "该连接已存在Cloudflare隧道:%@" + "value" : "AI 驱动的 SQL 补全在输入时以虚影文本显示。按 Tab 接受,按 Escape 关闭。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "這個連線已存在 Cloudflare 隧道:%@" + "value" : "AI 驅動的 SQL 補全會在輸入時以淡色文字顯示。按 Tab 接受,按 Escape 關閉。" } } } }, - "A column left out of the comparison is still written on insert and update. Changing either list needs another comparison." : { - - }, - "A command named \"/%@\" already exists." : { + "ALL DATABASES" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "\"/%@\" 명령이 이미 있습니다." + "value" : "모든 데이터베이스" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "\"/%@\" adında bir komut zaten var." + "value" : "TÜM VERİTABANLARI" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lệnh có tên \"/%@\" đã tồn tại." + "value" : "TẤT CẢ CƠ SỞ DỮ LIỆU" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "名为\"/%@\"的命令已存在。" + "value" : "所有数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "名為「/%@」的指令已存在。" + "value" : "所有資料庫" } } } }, - "A comparison is already running." : { - - }, - "A connection can use one connection method at a time. Disable the other methods to use %@." : { + "ALL SCHEMAS" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "한 연결에서는 한 번에 하나의 연결 방식만 사용할 수 있습니다. %@ 방식을 사용하려면 다른 방식을 비활성화하십시오." + "value" : "모든 스키마" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bir bağlantı aynı anda tek bir bağlantı yöntemi kullanabilir. %@ kullanmak için diğer yöntemleri kapatın." + "value" : "TÜM ŞEMALAR" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mỗi kết nối chỉ dùng được một phương thức kết nối tại một thời điểm. Tắt các phương thức khác để dùng %@." + "value" : "TẤT CẢ SCHEMA" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "一个连接同时只能使用一种连接方式。要使用 %@,请先关闭其他方式。" + "value" : "所有 SCHEMA" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "一個連線同時只能使用一種連線方式。要使用 %@,請先關閉其他方式。" + "value" : "所有綱要" } } } }, - "A connection can use one tunnel at a time. Disable the SSH Tunnel to use a Cloudflare Tunnel." : { - "extractionState" : "stale", + "ANALYZE (update statistics after vacuum)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "한 연결에서는 한 번에 하나의 터널만 사용할 수 있습니다. Cloudflare 터널을 사용하려면 SSH 터널을 비활성화하십시오." + "value" : "ANALYZE (vacuum 후 통계 업데이트)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bir bağlantı aynı anda yalnızca bir tünel kullanabilir. Cloudflare Tüneli kullanmak için SSH Tünelini devre dışı bırakın." + "value" : "ANALYZE (vacuum sonrası istatistikleri güncelle)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mỗi kết nối chỉ dùng được một tunnel. Tắt SSH Tunnel để dùng Cloudflare Tunnel." + "value" : "ANALYZE (cập nhật thống kê sau vacuum)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "一个连接一次只能使用一个隧道。请停用SSH隧道以使用Cloudflare隧道。" + "value" : "ANALYZE(vacuum 后更新统计信息)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "一個連線一次只能使用一個隧道。請停用 SSH 隧道以使用 Cloudflare 隧道。" + "value" : "ANALYZE(vacuum 後更新統計資訊)" } } } }, - "A connection can use only one connection method at a time. Enabled: %@." : { + "AND" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "한 연결에서는 한 번에 하나의 연결 방식만 사용할 수 있습니다. 활성화됨: %@." + "value" : "AND" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bir bağlantı aynı anda yalnızca bir bağlantı yöntemi kullanabilir. Etkin: %@." + "value" : "VE" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mỗi kết nối chỉ dùng được một phương thức kết nối tại một thời điểm. Đang bật: %@." + "value" : "AND" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "一个连接同时只能使用一种连接方式。已启用:%@。" + "value" : "AND" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "一個連線同時只能使用一種連線方式。已啟用:%@。" + "value" : "AND" } } } }, - "A connection cannot use SSH and Cloudflare tunnels at the same time." : { - "extractionState" : "stale", + "ANTHROPIC_API_KEY and ANTHROPIC_AUTH_TOKEN are removed from the tool's environment, so replies always draw on the subscription." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "한 연결에서 SSH와 Cloudflare 터널을 동시에 사용할 수 없습니다." + "value" : "도구의 환경에서 ANTHROPIC_API_KEY와 ANTHROPIC_AUTH_TOKEN이 제거되므로 응답에는 항상 구독이 사용됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bir bağlantı SSH ve Cloudflare tünellerini aynı anda kullanamaz." + "value" : "ANTHROPIC_API_KEY ve ANTHROPIC_AUTH_TOKEN aracın ortamından kaldırılır, bu yüzden yanıtlar her zaman abonelikten düşer." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối không thể dùng SSH tunnel và Cloudflare tunnel cùng lúc." + "value" : "ANTHROPIC_API_KEY và ANTHROPIC_AUTH_TOKEN bị loại khỏi môi trường của công cụ, nên các câu trả lời luôn dùng gói đăng ký." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接不能同时使用SSH隧道和Cloudflare隧道。" + "value" : "ANTHROPIC_API_KEY 和 ANTHROPIC_AUTH_TOKEN 会从该工具的环境变量中移除,因此回复始终消耗订阅额度。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線無法同時使用 SSH 隧道和 Cloudflare 隧道。" + "value" : "ANTHROPIC_API_KEY 和 ANTHROPIC_AUTH_TOKEN 會從該工具的環境變數中移除,因此回覆一律消耗訂閱額度。" } } } }, - "A connection with this name, host, and type already exists." : { + "API Key" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이름, 호스트 및 유형이 같은 연결이 이미 있습니다." + "value" : "API 키" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu ad, sunucu ve tür ile bir bağlantı zaten var." + "value" : "API Anahtarı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã tồn tại một kết nối với tên, host và kiểu này." + "value" : "API Key" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已存在同名、同主机和同类型的连接。" + "value" : "API Key" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已存在同名稱、同主機與同類型的連線。" + "value" : "API Key" } } } }, - "a destructive statement" : { - - }, - "A different file already exists at %@." : { + "API Token" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "API Token" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 위치에 다른 파일이 이미 있습니다." + "value" : "API 토큰" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ konumunda zaten farklı bir dosya var." + "value" : "API Token" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã có một tệp khác tại %@." + "value" : "API Token" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 处已存在另一个文件。" + "value" : "API Token" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 已存在另一個檔案。" + "value" : "API Token" } } } }, - "A fast, lightweight native macOS database client" : { + "API Token Required" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "빠르고 가벼운 macOS 네이티브 데이터베이스 클라이언트" + "value" : "API 토큰 필요" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Hızlı, hafif yerel macOS veritabanı istemcisi" + "value" : "API Anahtarı Gerekli" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ứng dụng quản lý cơ sở dữ liệu gốc macOS nhanh và nhẹ" + "value" : "Yêu cầu mã API" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "快速、轻量的原生 macOS 数据库客户端" + "value" : "需要 API 令牌" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "快速、輕量的原生 macOS 資料庫用戶端" + "value" : "需要 API 權杖" } } } }, - "A key from the xAI Console bills xAI API credits. Grok 4.5 and Grok 4.3 are available." : { + "API key is required" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "xAI Console 키를 사용하면 xAI API 크레딧이 차감됩니다. Grok 4.5와 Grok 4.3을 사용할 수 있습니다." + "value" : "API 키가 필요합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "xAI Console'dan alınan bir anahtar xAI API kredilerinden düşer. Grok 4.5 ve Grok 4.3 kullanılabilir." + "value" : "API anahtarı gerekli" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khóa lấy từ xAI Console sẽ tính phí vào tín dụng API của xAI. Có sẵn Grok 4.5 và Grok 4.3." + "value" : "Yêu cầu khóa API" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "使用 xAI Console 的密钥会扣除 xAI API 额度。可用 Grok 4.5 和 Grok 4.3。" + "value" : "需要 API 密钥" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "使用 xAI Console 的金鑰會扣除 xAI API 額度。可使用 Grok 4.5 和 Grok 4.3。" + "value" : "需要 API key" } } } }, - "A new password will be set when you apply changes." : { + "API key set" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "변경 사항을 적용하면 새 비밀번호가 설정됩니다." + "value" : "API 키 설정됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Değişiklikleri uyguladığınızda yeni bir parola ayarlanacak." + "value" : "API anahtarı ayarlı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mật khẩu mới sẽ được đặt khi bạn áp dụng thay đổi." + "value" : "Đã đặt API key" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "应用更改时将设置新密码。" + "value" : "已设置 API 密钥" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "套用變更時會設定新密碼。" + "value" : "已設定 API key" } } } }, - "A newer TablePro is required to load this plugin." : { + "API token" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 플러그인을 불러오려면 최신 버전의 TablePro가 필요합니다." + "value" : "API 토큰" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu eklentiyi yüklemek için daha yeni bir TablePro gerekiyor." + "value" : "API anahtarı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cần phiên bản TablePro mới hơn để tải plugin này." + "value" : "Mã API" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "需要更新版本的TablePro才能加载此插件。" + "value" : "API 令牌" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "需要更新版本的 TablePro 才能載入這個外掛。" + "value" : "API 權杖" } } } }, - "A newer version of TablePro is required for this plugin. Update TablePro to keep using it." : { + "AUTO" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 플러그인을 사용하려면 최신 버전의 TablePro가 필요합니다. 계속 사용하려면 TablePro를 업데이트하십시오." + "value" : "자동" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu eklenti için TablePro'nun daha yeni bir sürümü gerekiyor. Kullanmaya devam etmek için TablePro'yu güncelleyin." + "value" : "OTO" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Plugin này cần phiên bản TablePro mới hơn. Cập nhật TablePro để tiếp tục sử dụng." + "value" : "TỰ ĐỘNG" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此插件需要更新版本的TablePro。请更新TablePro以继续使用。" + "value" : "自动" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "這個外掛需要更新版本的 TablePro。請更新 TablePro 以繼續使用。" + "value" : "自動" } } } }, - "a query" : { - - }, - "A query is still running. Disconnecting cancels it." : { + "AWS Region" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "AWS Region" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리가 아직 실행 중입니다. 연결을 끊으면 취소됩니다." + "value" : "AWS 리전" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bir sorgu hâlâ çalışıyor. Bağlantıyı kesmek onu iptal eder." + "value" : "AWS Bölgesi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Một truy vấn vẫn đang chạy. Ngắt kết nối sẽ huỷ nó." + "value" : "AWS Region" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "仍有查询在运行。断开连接会取消它。" + "value" : "AWS 区域" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "仍有查詢在執行。中斷連線會取消它。" + "value" : "AWS 區域" } } } }, - "A run is already in progress." : { - - }, - "A SELECT to export. Use instead of 'tables'." : { - - }, - "A service account key is required" : { + "AWS SSO Sign-In Failed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "서비스 계정 키가 필요합니다" + "value" : "AWS SSO 로그인 실패" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Servis hesabı anahtarı gerekli" + "value" : "AWS SSO oturumu açılamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cần có khóa tài khoản dịch vụ" + "value" : "Đăng nhập AWS SSO thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "需要服务账号密钥" + "value" : "AWS SSO登录失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "需要服務帳號金鑰" + "value" : "AWS SSO 登入失敗" } } } }, - "A superuser bypasses all permission checks." : { + "AWS SSO Sign-In Required" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "슈퍼유저는 모든 권한 검사를 우회합니다." + "value" : "AWS SSO 로그인 필요" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Superuser tüm izin denetimlerini atlar." + "value" : "AWS SSO ile oturum açma gerekli" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Superuser bỏ qua mọi kiểm tra quyền." + "value" : "Yêu cầu đăng nhập AWS SSO" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "超级用户会跳过所有权限检查。" + "value" : "需要AWS SSO登录" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "超級使用者會略過所有權限檢查。" + "value" : "需要 AWS SSO 登入" } } } }, - "A sync conflict was detected and needs to be resolved." : { - "extractionState" : "stale", + "AWS SSO sign-in finished. Test the connection again." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "동기화 충돌이 감지되어 해결이 필요합니다." + "value" : "AWS SSO 로그인이 완료되었습니다. 연결을 다시 테스트하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bir eşitleme çakışması tespit edildi ve çözülmesi gerekiyor." + "value" : "AWS SSO oturum açma tamamlandı. Bağlantıyı yeniden test edin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phát hiện xung đột đồng bộ và cần được giải quyết." + "value" : "Đã hoàn tất đăng nhập AWS SSO. Hãy kiểm tra lại kết nối." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "检测到同步冲突,需要解决。" + "value" : "AWS SSO登录已完成。请再次测试连接。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "偵測到同步衝突,需要解決。" + "value" : "AWS SSO 登入已完成。請再次測試連線。" } } } }, - "A sync is still running" : { - - }, - "A transaction cannot be combined with skip and continue: together they would leave the target half applied." : { - - }, - "A user or role with this name already exists." : { + "AWS managed key-value/document store" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "같은 이름의 사용자 또는 역할이 이미 있습니다." + "value" : "AWS 관리형 키-값/문서 저장소" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu adda bir kullanıcı veya rol zaten var." + "value" : "AWS'nin yönettiği anahtar-değer/belge deposu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã có người dùng hoặc vai trò trùng tên." + "value" : "Kho key-value/tài liệu do AWS quản lý" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已存在同名的用户或角色。" + "value" : "AWS托管的键值/文档存储" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已存在同名的使用者或角色。" + "value" : "AWS 託管的鍵值/文件儲存" } } } @@ -9603,9 +10330,6 @@ } } } - }, - "Acknowledgements" : { - }, "Action" : { "localizations" : { @@ -9743,40 +10467,6 @@ } } }, - "Activate a Team license to publish to the team library." : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "팀 라이브러리에 게시하려면 Team 라이선스를 활성화하십시오." - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "Takım kitaplığına yayınlamak için bir Team lisansı etkinleştirin." - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "Kích hoạt giấy phép Team để xuất bản lên thư viện nhóm." - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "激活 Team 许可证后才能发布到团队库。" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "啟用 Team 授權後才能發佈到團隊庫。" - } - } - } - }, "Activate License" : { "localizations" : { "ko" : { @@ -9845,40 +10535,6 @@ } } }, - "Activate next time you launch TablePro" : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "다음 TablePro 실행 시 활성화" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "TablePro'yu bir sonraki başlatışınızda etkinleştir" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "Kích hoạt lần khởi chạy TablePro tiếp theo" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "下次启动TablePro时激活" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "下次啟動 TablePro 時啟用" - } - } - } - }, "Activate Now" : { "localizations" : { "ko" : { @@ -9913,150 +10569,184 @@ } } }, - "Activation Failed" : { + "Activate a Team license to publish to the team library." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "활성화 실패" + "value" : "팀 라이브러리에 게시하려면 Team 라이선스를 활성화하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Etkinleştirme Başarısız" + "value" : "Takım kitaplığına yayınlamak için bir Team lisansı etkinleştirin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kích hoạt thất bại" + "value" : "Kích hoạt giấy phép Team để xuất bản lên thư viện nhóm." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "激活失败" + "value" : "激活 Team 许可证后才能发布到团队库。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "啟用失敗" + "value" : "啟用 Team 授權後才能發佈到團隊庫。" } } } }, - "Activations (%lld of %lld)" : { + "Activate next time you launch TablePro" : { "localizations" : { - "en" : { + "ko" : { "stringUnit" : { - "state" : "new", - "value" : "Activations (%1$lld of %2$lld)" + "state" : "translated", + "value" : "다음 TablePro 실행 시 활성화" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "TablePro'yu bir sonraki başlatışınızda etkinleştir" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "Kích hoạt lần khởi chạy TablePro tiếp theo" } }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "下次启动TablePro时激活" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "下次啟動 TablePro 時啟用" + } + } + } + }, + "Activation Failed" : { + "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "활성화(%1$lld/%2$lld)" + "value" : "활성화 실패" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Etkinleştirmeler (%lld / %lld)" + "value" : "Etkinleştirme Başarısız" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kích hoạt (%1$lld / %2$lld)" + "value" : "Kích hoạt thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "激活数(%lld / %lld)" + "value" : "激活失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "啟用數(%1$lld / %2$lld)" + "value" : "啟用失敗" } } } }, - "Active" : { + "Activations (%lld of %lld)" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Activations (%1$lld of %2$lld)" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "활성" + "value" : "활성화(%1$lld/%2$lld)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Etkin" + "value" : "Etkinleştirmeler (%lld / %lld)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang hoạt động" + "value" : "Kích hoạt (%1$lld / %2$lld)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "活跃" + "value" : "激活数(%lld / %lld)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "使用中" + "value" : "啟用數(%1$lld / %2$lld)" } } } }, - "Active Connections" : { - "extractionState" : "stale", + "Active" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "활성 연결" + "value" : "활성" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Aktif Bağlantılar" + "value" : "Etkin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối đang hoạt động" + "value" : "Đang hoạt động" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "活跃连接" + "value" : "活跃" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "使用中的連線" + "value" : "使用中" } } } }, - "ACTIVE CONNECTIONS" : { + "Active Connections" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { @@ -10067,13 +10757,13 @@ "tr" : { "stringUnit" : { "state" : "translated", - "value" : "AKTİF BAĞLANTILAR" + "value" : "Aktif Bağlantılar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "KẾT NỐI ĐANG HOẠT ĐỘNG" + "value" : "Kết nối đang hoạt động" } }, "zh-Hans" : { @@ -10294,70 +10984,70 @@ } } }, - "Activity is retained for 90 days." : { + "Activity Log" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "활동은 90일간 보관됩니다." + "value" : "활동 로그" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Etkinlikler 90 gün boyunca saklanır." + "value" : "Etkinlik Günlüğü" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hoạt động được lưu trong 90 ngày." + "value" : "Nhật ký hoạt động" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "活动记录保留 90 天。" + "value" : "活动日志" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "活動記錄保留 90 天。" + "value" : "活動記錄" } } } }, - "Activity Log" : { + "Activity is retained for 90 days." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "활동 로그" + "value" : "활동은 90일간 보관됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Etkinlik Günlüğü" + "value" : "Etkinlikler 90 gün boyunca saklanır." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhật ký hoạt động" + "value" : "Hoạt động được lưu trong 90 ngày." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "活动日志" + "value" : "活动记录保留 90 天。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "活動記錄" + "value" : "活動記錄保留 90 天。" } } } @@ -10607,74 +11297,6 @@ } } }, - "Add as Copy" : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "복사본으로 추가" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "Kopya Olarak Ekle" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "Thêm dưới dạng bản sao" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "作为副本添加" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "新增為副本" - } - } - } - }, - "Add at least one column with a name and type" : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "이름과 유형이 지정된 열을 하나 이상 추가하십시오" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "En az bir ad ve türe sahip sütun ekleyin" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "Thêm ít nhất một cột có tên và kiểu dữ liệu" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "请至少添加一个包含名称和类型的列" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "請至少新增一個含名稱與型別的欄位" - } - } - } - }, "Add Check Constraint" : { "localizations" : { "ko" : { @@ -10777,75 +11399,6 @@ } } }, - "Add columns first" : { - "extractionState" : "stale", - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "먼저 열을 추가하십시오" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "Önce sütun ekleyin" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "Thêm cột trước" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "请先添加列" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "請先新增欄位" - } - } - } - }, - "Add columns to see the CREATE TABLE statement" : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "CREATE TABLE 문을 보려면 열을 추가하십시오" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "CREATE TABLE ifadesini görmek için sütun ekleyin" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "Thêm cột để xem câu lệnh CREATE TABLE" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "添加列以查看 CREATE TABLE 语句" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "新增欄位以查看 CREATE TABLE 陳述式" - } - } - } - }, "Add Command" : { "localizations" : { "ko" : { @@ -10984,7 +11537,7 @@ } } }, - "Add filter" : { + "Add Filter" : { "localizations" : { "ko" : { "stringUnit" : { @@ -10995,7 +11548,7 @@ "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtre ekle" + "value" : "Filtre Ekle" } }, "vi" : { @@ -11018,1102 +11571,1171 @@ } } }, - "Add Filter" : { + "Add Filter (Cmd+Shift+F)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터 추가" + "value" : "필터 추가(Cmd+Shift+F)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtre Ekle" + "value" : "Filtre Ekle (Cmd+Shift+F)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thêm bộ lọc" + "value" : "Thêm bộ lọc (Cmd+Shift+F)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "添加筛选" + "value" : "添加筛选 (Cmd+Shift+F)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增篩選" + "value" : "新增篩選 (Cmd+Shift+F)" } } } }, - "Add Filter (Cmd+Shift+F)" : { - "extractionState" : "stale", + "Add Folder…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터 추가(Cmd+Shift+F)" + "value" : "폴더 추가…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtre Ekle (Cmd+Shift+F)" + "value" : "Klasör Ekle…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thêm bộ lọc (Cmd+Shift+F)" + "value" : "Thêm Thư mục…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "添加筛选 (Cmd+Shift+F)" + "value" : "添加文件夹…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增篩選 (Cmd+Shift+F)" + "value" : "新增資料夾…" } } } }, - "Add filter row" : { + "Add Foreign Key" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터 행 추가" + "value" : "외래 키 추가" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtre satırı ekle" + "value" : "Yabancı Anahtar Ekle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thêm dòng bộ lọc" + "value" : "Thêm khóa ngoại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "添加筛选行" + "value" : "添加外键" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增篩選列" + "value" : "新增外鍵" } } } }, - "Add Folder…" : { + "Add Host" : { + "comment" : "Label for the \"Add Host\" button in the host list field row.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "폴더 추가…" + "value" : "호스트 추가" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Klasör Ekle…" + "value" : "Sunucu Ekle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thêm Thư mục…" + "value" : "Thêm máy chủ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "添加文件夹…" + "value" : "添加主机" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增資料夾…" + "value" : "加入主機" } } } }, - "Add Foreign Key" : { + "Add Index" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "외래 키 추가" + "value" : "인덱스 추가" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yabancı Anahtar Ekle" + "value" : "İndeks Ekle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thêm khóa ngoại" + "value" : "Thêm chỉ mục" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "添加外键" + "value" : "添加索引" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增外鍵" + "value" : "新增索引" } } } }, - "Add from Existing" : { + "Add Jump Host" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기존 항목에서 추가" + "value" : "점프 호스트 추가" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Mevcuttan Ekle" + "value" : "Atlama Sunucusu Ekle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thêm từ nguồn có sẵn" + "value" : "Thêm Jump Host" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "从已有来源添加" + "value" : "添加跳板机" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "從現有來源新增" + "value" : "新增跳板主機" } } } }, - "Add Host" : { - "comment" : "Label for the \"Add Host\" button in the host list field row.", - "isCommentAutoGenerated" : true, + "Add Linked SQL Folder..." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "호스트 추가" + "value" : "연결된 SQL 폴더 추가..." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sunucu Ekle" + "value" : "Bağlı SQL Klasörü Ekle..." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thêm máy chủ" + "value" : "Thêm thư mục SQL liên kết..." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "添加主机" + "value" : "添加链接的SQL文件夹..." } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "加入主機" + "value" : "新增連結的 SQL 資料夾…" } } } }, - "Add Index" : { + "Add Linked SQL Folder…" : { + "comment" : "Text for a menu item that adds a linked SQL folder.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "인덱스 추가" + "value" : "연결된 SQL 폴더 추가…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İndeks Ekle" + "value" : "Bağlı SQL Klasörü Ekle…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thêm chỉ mục" + "value" : "Thêm thư mục SQL liên kết…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "添加索引" + "value" : "添加关联 SQL 文件夹…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增索引" + "value" : "加入連結的 SQL 資料夾…" } } } }, - "Add indexes to improve query performance on frequently searched columns" : { + "Add Provider" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "자주 검색하는 열의 쿼리 성능을 높이려면 인덱스를 추가하십시오" + "value" : "프로바이더 추가" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sık aranan sütunlarda sorgu performansını artırmak için indeks ekleyin" + "value" : "Sağlayıcı Ekle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thêm chỉ mục để cải thiện hiệu suất truy vấn trên các cột thường xuyên tìm kiếm" + "value" : "Thêm nhà cung cấp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "添加索引以提升常用搜索列的查询性能" + "value" : "添加提供商" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "為常搜尋的欄位新增索引以提升查詢效能" + "value" : "新增供應商" } } } }, - "Add Jump Host" : { + "Add Provider…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "점프 호스트 추가" + "value" : "프로바이더 추가…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Atlama Sunucusu Ekle" + "value" : "Sağlayıcı Ekle…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thêm Jump Host" + "value" : "Thêm nhà cung cấp…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "添加跳板机" + "value" : "添加提供方…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增跳板主機" + "value" : "新增供應商…" } } } }, - "Add Linked SQL Folder..." : { - "extractionState" : "stale", + "Add Row" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결된 SQL 폴더 추가..." + "value" : "행 추가" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlı SQL Klasörü Ekle..." + "value" : "Satır Ekle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thêm thư mục SQL liên kết..." + "value" : "Thêm dòng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "添加链接的SQL文件夹..." + "value" : "添加行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增連結的 SQL 資料夾…" + "value" : "新增列" } } } }, - "Add Linked SQL Folder…" : { - "comment" : "Text for a menu item that adds a linked SQL folder.", + "Add Theme" : { + "comment" : "Add Theme", "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결된 SQL 폴더 추가…" + "value" : "테마 추가" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlı SQL Klasörü Ekle…" + "value" : "Tema Ekle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thêm thư mục SQL liên kết…" + "value" : "Thêm giao diện" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "添加关联 SQL 文件夹…" + "value" : "添加主题" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "加入連結的 SQL 資料夾…" + "value" : "加入佈景主題" } } } }, - "Add provider" : { - "extractionState" : "stale", + "Add as Copy" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "프로바이더 추가" + "value" : "복사본으로 추가" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sağlayıcı ekle" + "value" : "Kopya Olarak Ekle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thêm nhà cung cấp" + "value" : "Thêm dưới dạng bản sao" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "添加提供商" + "value" : "作为副本添加" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增供應商" + "value" : "新增為副本" } } } }, - "Add Provider" : { + "Add at least one column with a name and type" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "이름과 유형이 지정된 열을 하나 이상 추가하십시오" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "En az bir ad ve türe sahip sütun ekleyin" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "Thêm ít nhất một cột có tên và kiểu dữ liệu" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "请至少添加一个包含名称和类型的列" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "請至少新增一個含名稱與型別的欄位" + } + } + } + }, + "Add columns first" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "프로바이더 추가" + "value" : "먼저 열을 추가하십시오" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sağlayıcı Ekle" + "value" : "Önce sütun ekleyin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thêm nhà cung cấp" + "value" : "Thêm cột trước" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "添加提供商" + "value" : "请先添加列" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增供應商" + "value" : "請先新增欄位" } } } }, - "Add Provider…" : { + "Add columns to see the CREATE TABLE statement" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "프로바이더 추가…" + "value" : "CREATE TABLE 문을 보려면 열을 추가하십시오" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sağlayıcı Ekle…" + "value" : "CREATE TABLE ifadesini görmek için sütun ekleyin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thêm nhà cung cấp…" + "value" : "Thêm cột để xem câu lệnh CREATE TABLE" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "添加提供方…" + "value" : "添加列以查看 CREATE TABLE 语句" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增供應商…" + "value" : "新增欄位以查看 CREATE TABLE 陳述式" } } } }, - "Add Row" : { + "Add filter" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "행 추가" + "value" : "필터 추가" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satır Ekle" + "value" : "Filtre ekle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thêm dòng" + "value" : "Thêm bộ lọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "添加行" + "value" : "添加筛选" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增列" + "value" : "新增篩選" } } } }, - "Add tags" : { + "Add filter row" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "태그 추가" + "value" : "필터 행 추가" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Etiket ekle" + "value" : "Filtre satırı ekle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thêm thẻ" + "value" : "Thêm dòng bộ lọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "添加标签" + "value" : "添加筛选行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增標籤" + "value" : "新增篩選列" } } } }, - "Add the JSON below inside the file and save" : { + "Add from Existing" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "아래 JSON을 파일에 추가하고 저장하십시오" + "value" : "기존 항목에서 추가" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Aşağıdaki JSON'u dosyaya ekleyin ve kaydedin" + "value" : "Mevcuttan Ekle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thêm JSON dưới đây vào tệp và lưu lại" + "value" : "Thêm từ nguồn có sẵn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将下方 JSON 添加到文件中并保存" + "value" : "从已有来源添加" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將下方 JSON 加入檔案中並儲存" + "value" : "從現有來源新增" } } } }, - "Add Theme" : { - "comment" : "Add Theme", - "isCommentAutoGenerated" : true, + "Add indexes to improve query performance on frequently searched columns" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테마 추가" + "value" : "자주 검색하는 열의 쿼리 성능을 높이려면 인덱스를 추가하십시오" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tema Ekle" + "value" : "Sık aranan sütunlarda sorgu performansını artırmak için indeks ekleyin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thêm giao diện" + "value" : "Thêm chỉ mục để cải thiện hiệu suất truy vấn trên các cột thường xuyên tìm kiếm" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "添加主题" + "value" : "添加索引以提升常用搜索列的查询性能" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "加入佈景主題" + "value" : "為常搜尋的欄位新增索引以提升查詢效能" } } } }, - "Add to Favorites" : { - "comment" : "A label that describes an action to add an item to a user's favorites.", - "isCommentAutoGenerated" : true, + "Add provider" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "즐겨찾기에 추가" + "value" : "프로바이더 추가" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sık Kullanılanlara Ekle" + "value" : "Sağlayıcı ekle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thêm vào Yêu thích" + "value" : "Thêm nhà cung cấp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "添加到收藏" + "value" : "添加提供商" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "加入我的最愛" + "value" : "新增供應商" } } } }, - "Add validation rules to ensure data integrity" : { + "Add tags" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터 무결성을 보장하려면 유효성 검사 규칙을 추가하십시오" + "value" : "태그 추가" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veri bütünlüğünü sağlamak için doğrulama kuralları ekleyin" + "value" : "Etiket ekle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thêm quy tắc xác thực để đảm bảo tính toàn vẹn dữ liệu" + "value" : "Thêm thẻ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "添加验证规则以确保数据完整性" + "value" : "添加标签" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增驗證規則以確保資料完整性" + "value" : "新增標籤" } } } }, - "Added" : { + "Add the JSON below inside the file and save" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "추가됨" + "value" : "아래 JSON을 파일에 추가하고 저장하십시오" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklendi" + "value" : "Aşağıdaki JSON'u dosyaya ekleyin ve kaydedin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã thêm" + "value" : "Thêm JSON dưới đây vào tệp và lưu lại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新增" + "value" : "将下方 JSON 添加到文件中并保存" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增" + "value" : "將下方 JSON 加入檔案中並儲存" } } } }, - "Address" : { + "Add to Favorites" : { + "comment" : "A label that describes an action to add an item to a user's favorites.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "주소" + "value" : "즐겨찾기에 추가" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Adres" + "value" : "Sık Kullanılanlara Ekle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Địa chỉ" + "value" : "Thêm vào Yêu thích" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "地址" + "value" : "添加到收藏" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "位址" + "value" : "加入我的最愛" } } } }, - "Adds a narrow strip on the window's leading edge listing every connection and database you have open, so one click switches to it." : { + "Add validation rules to ensure data integrity" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열어 둔 모든 연결과 데이터베이스를 나열하는 좁은 막대를 윈도우 왼쪽 가장자리에 추가하여 클릭 한 번으로 전환할 수 있습니다." + "value" : "데이터 무결성을 보장하려면 유효성 검사 규칙을 추가하십시오" } }, "tr" : { "stringUnit" : { - "state" : "needs_review", - "value" : "Pencerenin sol kenarında açık her bağlantıyı ve veritabanını listeleyen dar bir şerit ekler; tek tıkla geçiş yaparsınız." + "state" : "translated", + "value" : "Veri bütünlüğünü sağlamak için doğrulama kuralları ekleyin" } }, "vi" : { "stringUnit" : { - "state" : "needs_review", - "value" : "Thêm một dải hẹp ở cạnh trái cửa sổ liệt kê mọi kết nối và cơ sở dữ liệu đang mở, chỉ cần một cú nhấp để chuyển sang." + "state" : "translated", + "value" : "Thêm quy tắc xác thực để đảm bảo tính toàn vẹn dữ liệu" } }, "zh-Hans" : { "stringUnit" : { - "state" : "needs_review", - "value" : "在窗口前缘添加一条窄栏,列出所有已打开的连接和数据库,单击即可切换。" + "state" : "translated", + "value" : "添加验证规则以确保数据完整性" } }, "zh-Hant" : { "stringUnit" : { - "state" : "needs_review", - "value" : "在視窗前緣加入一條窄列,列出所有已開啟的連線與資料庫,單擊即可切換。" + "state" : "translated", + "value" : "新增驗證規則以確保資料完整性" } } } }, - "Adds a Recent section at the top of the Tables sidebar with the last tables you opened per connection and database." : { + "Added" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 및 데이터베이스별로 최근에 연 테이블을 표시하는 최근 항목 섹션을 테이블 사이드바 상단에 추가합니다." + "value" : "추가됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tablolar kenar çubuğunun üstüne, her bağlantı ve veritabanı için en son açtığınız tabloları gösteren bir Son Kullanılanlar bölümü ekler." + "value" : "Eklendi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thêm mục Gần đây ở đầu thanh bên Bảng, hiển thị các bảng bạn mở gần nhất theo từng kết nối và cơ sở dữ liệu." + "value" : "Đã thêm" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在表侧边栏顶部添加“最近”区域,按连接和数据库显示你最近打开的表。" + "value" : "新增" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在資料表側邊欄頂端加入「最近」區塊,依連線與資料庫顯示你最近開啟的資料表。" + "value" : "新增" } } } }, - "Adjust Limit" : { + "Address" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "제한 조정" + "value" : "주소" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Limiti Ayarla" + "value" : "Adres" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Điều chỉnh giới hạn" + "value" : "Địa chỉ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "调整限制" + "value" : "地址" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "調整上限" + "value" : "位址" } } } }, - "admin" : { + "Adds a Recent section at the top of the Tables sidebar with the last tables you opened per connection and database." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "admin" + "value" : "연결 및 데이터베이스별로 최근에 연 테이블을 표시하는 최근 항목 섹션을 테이블 사이드바 상단에 추가합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "yönetici" + "value" : "Tablolar kenar çubuğunun üstüne, her bağlantı ve veritabanı için en son açtığınız tabloları gösteren bir Son Kullanılanlar bölümü ekler." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "admin" + "value" : "Thêm mục Gần đây ở đầu thanh bên Bảng, hiển thị các bảng bạn mở gần nhất theo từng kết nối và cơ sở dữ liệu." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "admin" + "value" : "在表侧边栏顶部添加“最近”区域,按连接和数据库显示你最近打开的表。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "admin" + "value" : "在資料表側邊欄頂端加入「最近」區塊,依連線與資料庫顯示你最近開啟的資料表。" } } } }, - "Administration" : { + "Adds a narrow strip on the window's leading edge listing every connection and database you have open, so one click switches to it." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "관리" + "value" : "열어 둔 모든 연결과 데이터베이스를 나열하는 좁은 막대를 윈도우 왼쪽 가장자리에 추가하여 클릭 한 번으로 전환할 수 있습니다." } }, "tr" : { + "stringUnit" : { + "state" : "needs_review", + "value" : "Pencerenin sol kenarında açık her bağlantıyı ve veritabanını listeleyen dar bir şerit ekler; tek tıkla geçiş yaparsınız." + } + }, + "vi" : { + "stringUnit" : { + "state" : "needs_review", + "value" : "Thêm một dải hẹp ở cạnh trái cửa sổ liệt kê mọi kết nối và cơ sở dữ liệu đang mở, chỉ cần một cú nhấp để chuyển sang." + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "needs_review", + "value" : "在窗口前缘添加一条窄栏,列出所有已打开的连接和数据库,单击即可切换。" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "needs_review", + "value" : "在視窗前緣加入一條窄列,列出所有已開啟的連線與資料庫,單擊即可切換。" + } + } + } + }, + "Adjust Limit" : { + "localizations" : { + "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Yönetim" + "value" : "제한 조정" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Limiti Ayarla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Quản trị" + "value" : "Điều chỉnh giới hạn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "管理" + "value" : "调整限制" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "管理" + "value" : "調整上限" } } } }, - "Advanced" : { + "Administration" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "고급" + "value" : "관리" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Gelişmiş" + "value" : "Yönetim" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nâng cao" + "value" : "Quản trị" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "高级" + "value" : "管理" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "進階" + "value" : "管理" } } } }, - "Advanced object-relational SQL" : { + "Advanced" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "고급 객체 관계형 SQL" + "value" : "고급" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Gelişmiş nesne-ilişkisel SQL" + "value" : "Gelişmiş" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "SQL quan hệ-đối tượng nâng cao" + "value" : "Nâng cao" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "高级对象关系型SQL" + "value" : "高级" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "進階的物件關聯式 SQL" + "value" : "進階" } } } }, - "Agent" : { + "Advanced object-relational SQL" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "에이전트" + "value" : "고급 객체 관계형 SQL" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ajan" + "value" : "Gelişmiş nesne-ilişkisel SQL" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Agent" + "value" : "SQL quan hệ-đối tượng nâng cao" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Agent" + "value" : "高级对象关系型SQL" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Agent" + "value" : "進階的物件關聯式 SQL" } } } }, - "Agent mode calls tools in a loop until it finishes or hits this limit, then pauses so you can continue. Raising it costs more tokens per reply." : { + "Agent" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "에이전트 모드는 완료되거나 이 제한에 도달할 때까지 도구를 반복 호출한 후, 계속할 수 있도록 일시 정지합니다. 제한을 높이면 응답당 더 많은 토큰이 소모됩니다." + "value" : "에이전트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Agent modu, iş bitene veya bu limite ulaşılana kadar araçları döngüde çağırır, sonra devam edebilmeniz için duraklar. Limiti yükseltmek yanıt başına daha fazla token harcar." + "value" : "Ajan" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chế độ agent gọi công cụ theo vòng lặp cho đến khi xong hoặc chạm giới hạn này, rồi tạm dừng để bạn tiếp tục. Tăng giới hạn sẽ tốn nhiều token hơn cho mỗi câu trả lời." + "value" : "Agent" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Agent 模式会循环调用工具,直到完成或达到此上限,然后暂停等你继续。上限越高,每条回复消耗的 token 越多。" + "value" : "Agent" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Agent 模式會循環呼叫工具,直到完成或達到此上限,然後暫停等你繼續。上限越高,每則回覆消耗的 token 越多。" + "value" : "Agent" } } } @@ -12152,11503 +12774,11340 @@ } } }, - "Agent: full tool access including destructive DDL. Safe mode still gates execution." : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "에이전트: 파괴적인 DDL을 포함한 모든 도구에 접근할 수 있습니다. 안전 모드에서도 실행을 제한합니다." - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "Ajan: yıkıcı DDL dahil tüm araçlara erişim. Güvenli mod yürütmeyi yine de denetler." - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "Agent: toàn quyền dùng công cụ, gồm cả DDL phá hủy. Chế độ an toàn vẫn kiểm soát việc thực thi." - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "Agent:可使用全部工具,包括破坏性DDL。安全模式仍会控制执行。" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "Agent:可使用全部工具,包括破壞性的 DDL。安全模式仍會控管執行。" - } - } - } - }, - "AI" : { + "Agent mode calls tools in a loop until it finishes or hits this limit, then pauses so you can continue. Raising it costs more tokens per reply." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "AI" + "value" : "에이전트 모드는 완료되거나 이 제한에 도달할 때까지 도구를 반복 호출한 후, 계속할 수 있도록 일시 정지합니다. 제한을 높이면 응답당 더 많은 토큰이 소모됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "AI" + "value" : "Agent modu, iş bitene veya bu limite ulaşılana kadar araçları döngüde çağırır, sonra devam edebilmeniz için duraklar. Limiti yükseltmek yanıt başına daha fazla token harcar." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "AI" + "value" : "Chế độ agent gọi công cụ theo vòng lặp cho đến khi xong hoặc chạm giới hạn này, rồi tạm dừng để bạn tiếp tục. Tăng giới hạn sẽ tốn nhiều token hơn cho mỗi câu trả lời." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "AI" + "value" : "Agent 模式会循环调用工具,直到完成或达到此上限,然后暂停等你继续。上限越高,每条回复消耗的 token 越多。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "AI" + "value" : "Agent 模式會循環呼叫工具,直到完成或達到此上限,然後暫停等你繼續。上限越高,每則回覆消耗的 token 越多。" } } } }, - "AI access is disabled for this connection" : { + "Agent: full tool access including destructive DDL. Safe mode still gates execution." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 연결에서는 AI 접근이 비활성화되어 있습니다" + "value" : "에이전트: 파괴적인 DDL을 포함한 모든 도구에 접근할 수 있습니다. 안전 모드에서도 실행을 제한합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu bağlantı için AI erişimi devre dışı" + "value" : "Ajan: yıkıcı DDL dahil tüm araçlara erişim. Güvenli mod yürütmeyi yine de denetler." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Quyền truy cập AI bị tắt cho kết nối này" + "value" : "Agent: toàn quyền dùng công cụ, gồm cả DDL phá hủy. Chế độ an toàn vẫn kiểm soát việc thực thi." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此连接的 AI 访问已禁用" + "value" : "Agent:可使用全部工具,包括破坏性DDL。安全模式仍会控制执行。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此連線的 AI 存取已停用" + "value" : "Agent:可使用全部工具,包括破壞性的 DDL。安全模式仍會控管執行。" } } } }, - "AI access policies are configured per-connection in each connection's settings." : { + "Alert" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "AI 접근 정책은 각 연결의 설정에서 연결별로 구성합니다." + "value" : "알림" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "AI erişim politikaları her bağlantının ayarlarında ayrı ayrı yapılandırılır." + "value" : "Uyarı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chính sách truy cập AI được cấu hình riêng cho từng kết nối trong phần cài đặt." + "value" : "Cảnh báo" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "AI 访问策略在每个连接的设置中单独配置。" + "value" : "警告" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "AI 存取原則在每個連線的設定中個別設定。" + "value" : "警示" } } } }, - "AI access policy" : { - - }, - "AI and MCP" : { + "Alert (Full)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "AI 및 MCP" + "value" : "알림(전체)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "AI ve MCP" + "value" : "Uyarı (Tam)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "AI và MCP" + "value" : "Cảnh báo (Đầy đủ)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "AI 与 MCP" + "value" : "警告(完整)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "AI 與 MCP" + "value" : "警示(完整)" } } } }, - "AI and MCP queries" : { - - }, - "AI Chat" : { + "Algorithm" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "AI 채팅" + "value" : "알고리즘" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yapay Zeka Sohbeti" + "value" : "Algoritma" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "AI Chat" + "value" : "Thuật toán" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "AI 对话" + "value" : "算法" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "AI 對話" + "value" : "演算法" } } } }, - "AI is disabled for this connection." : { + "All" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 연결에서는 AI가 비활성화되어 있습니다." + "value" : "전체" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu bağlantı için yapay zeka devre dışı." + "value" : "Tümü" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "AI bị tắt cho kết nối này." + "value" : "Tất cả" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此连接已禁用 AI。" + "value" : "全部" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此連線已停用 AI。" + "value" : "全部" } } } }, - "AI made too many tool calls in one response. Try simplifying the request." : { - "extractionState" : "stale", + "All %d rows selected" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "AI가 한 응답에서 도구를 너무 많이 호출했습니다. 요청을 더 간단하게 작성해 보십시오." + "value" : "%d개 행 모두 선택됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yapay zeka tek yanıtta çok fazla araç çağrısı yaptı. İsteği sadeleştirmeyi deneyin." + "value" : "Tüm %d satır seçildi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "AI gọi quá nhiều công cụ trong một phản hồi. Hãy thử đơn giản hóa yêu cầu." + "value" : "Đã chọn tất cả %d dòng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "AI在一次回复中调用了过多工具。请尝试简化请求。" + "value" : "已选择全部%d行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "AI 在一次回應中呼叫了過多工具。請嘗試簡化請求。" + "value" : "已選取全部 %d 列" } } } }, - "AI Not Configured" : { + "All %lld ^[rows](inflect: true) selected" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "AI가 설정되지 않음" + "value" : "%lld개 행 모두 선택됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "AI Yapılandırılmadı" + "value" : "Tüm %lld satır seçildi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "AI chưa được cấu hình" + "value" : "Đã chọn tất cả %lld dòng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "AI 未配置" + "value" : "已选择全部%lld行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "AI 尚未設定" + "value" : "已選取全部 %lld 列" } } } }, - "AI Policy" : { + "All %lld rows selected" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "AI 정책" + "value" : "%lld개 행 모두 선택됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yapay Zeka İlkesi" + "value" : "All %lld satır seçildi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chính sách AI" + "value" : "Đã chọn tất cả %lld dòng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "AI 策略" + "value" : "已选择全部 %lld 行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "AI 政策" + "value" : "已選取全部 %lld 列" } } } }, - "AI Policy controls in-app AI agents. External Clients controls Raycast, Cursor, Claude Desktop, and other MCP clients. Effective scope is the minimum of the requesting token's scope and the External Clients level." : { + "All (%lld)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "AI 정책은 앱 내 AI 에이전트를 제어합니다. 외부 클라이언트는 Raycast, Cursor, Claude Desktop 및 기타 MCP 클라이언트를 제어합니다. 유효 범위는 요청 토큰의 범위와 외부 클라이언트 수준 중 더 제한적인 범위입니다." + "value" : "전체(%lld)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "AI Politikası uygulama içi AI ajanlarını kontrol eder. Harici İstemciler ise Raycast, Cursor, Claude Desktop ve diğer MCP istemcilerini kontrol eder. Etkin kapsam, talep eden token'ın kapsamı ile Harici İstemciler düzeyinin minimumudur." + "value" : "Tümü (%lld)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "AI Policy kiểm soát các AI agent trong ứng dụng. External Clients kiểm soát Raycast, Cursor, Claude Desktop và các MCP client khác. Phạm vi thực tế là mức thấp hơn giữa phạm vi của token yêu cầu và mức External Clients." + "value" : "Tất cả (%lld)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "AI 策略控制应用内 AI 代理。外部客户端控制 Raycast、Cursor、Claude Desktop 及其他 MCP 客户端。实际权限取请求令牌权限与外部客户端级别中的较低值。" + "value" : "全部(%lld)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "AI 政策控制應用程式內的 AI 代理程式。外部用戶端控制 Raycast、Cursor、Claude Desktop 及其他 MCP 用戶端。實際範圍取請求權杖範圍與外部用戶端層級兩者中較低者。" + "value" : "全部(%lld)" } } } }, - "AI Provider" : { - "extractionState" : "stale", + "All Connections" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "AI 제공업체" + "value" : "모든 연결" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yapay Zeka Sağlayıcısı" + "value" : "Tüm Bağlantılar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhà cung cấp AI" + "value" : "Tất cả kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "AI 提供商" + "value" : "所有连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "AI 供應商" + "value" : "所有連線" } } } }, - "AI responses may be inaccurate" : { + "All Environments" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "AI 응답은 부정확할 수 있습니다" + "value" : "모든 환경" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yapay zeka yanıtları hatalı olabilir" + "value" : "Tüm Ortamlar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phản hồi của AI có thể không chính xác" + "value" : "Tất cả môi trường" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "AI回复可能不准确" + "value" : "所有环境" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "AI 回應可能不準確" + "value" : "所有環境" } } } }, - "AI Rules" : { + "All Objects" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "AI 규칙" + "value" : "모든 객체" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yapay zeka kuralları" + "value" : "Tüm Nesneler" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Quy tắc AI" + "value" : "Tất cả đối tượng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "AI规则" + "value" : "所有对象" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "AI 規則" + "value" : "所有物件" } } } }, - "AI Walkthrough" : { + "All Rows" : { "localizations" : { "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "AI 단계별 안내" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "AI Adım Adım Anlatım" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "Hướng dẫn AI" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "AI 分步讲解" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "AI 逐步解說" + "value" : "모든 행", + "state" : "translated" } } } }, - "AI-generated. Review before applying." : { + "All Time" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "AI가 생성했습니다. 적용하기 전에 검토하십시오." + "value" : "전체 기간" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yapay zeka üretti. Uygulamadan önce gözden geçirin." + "value" : "Tümü" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Do AI tạo. Hãy xem lại trước khi áp dụng." + "value" : "Tất cả" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "由 AI 生成。应用前请先检查。" + "value" : "所有时间" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "由 AI 產生。套用前請先檢查。" + "value" : "全部時間" } } } }, - "AI-Powered Assistant" : { + "All Types" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "AI 기반 어시스턴트" + "value" : "모든 유형" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "AI Destekli Asistan" + "value" : "Tüm Türler" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trợ lý AI" + "value" : "Tất cả kiểu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "AI 助手" + "value" : "所有类型" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "AI 助理" + "value" : "所有類型" } } } }, - "AI-powered SQL completions appear as ghost text while typing. Press Tab to accept, Escape to dismiss." : { - "extractionState" : "stale", + "All categories" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "AI 기반 SQL 자동 완성이 입력하는 동안 고스트 텍스트로 표시됩니다. Tab 키를 눌러 적용하고 Escape 키를 눌러 닫으십시오." + "value" : "모든 카테고리" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yapay zeka destekli SQL tamamlamaları yazarken hayalet metin olarak görünür. Kabul etmek için Tab, kapatmak için Escape." + "value" : "Tüm kategoriler" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gợi ý SQL bằng AI xuất hiện dưới dạng văn bản mờ khi gõ. Nhấn Tab để chấp nhận, Escape để bỏ qua." + "value" : "Tất cả danh mục" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "AI 驱动的 SQL 补全在输入时以虚影文本显示。按 Tab 接受,按 Escape 关闭。" + "value" : "所有分类" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "AI 驅動的 SQL 補全會在輸入時以淡色文字顯示。按 Tab 接受,按 Escape 關閉。" + "value" : "所有類別" } } } }, - "Alert" : { + "All columns" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "알림" + "value" : "모든 열" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Uyarı" + "value" : "Tüm sütunlar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cảnh báo" + "value" : "Tất cả cột" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "警告" + "value" : "所有列" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "警示" + "value" : "所有欄位" } } } }, - "Alert (Full)" : { + "All columns visible" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "알림(전체)" + "value" : "모든 열 표시 중" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Uyarı (Tam)" + "value" : "Tüm sütunlar görünür" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cảnh báo (Đầy đủ)" + "value" : "Hiện tất cả cột" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "警告(完整)" + "value" : "显示所有列" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "警示(完整)" + "value" : "顯示所有欄" } } } }, - "Algorithm" : { + "All rights reserved." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "알고리즘" + "value" : "모든 권리 보유." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Algoritma" + "value" : "Tüm hakları saklıdır." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thuật toán" + "value" : "Đã đăng ký bản quyền." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "算法" + "value" : "保留所有权利。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "演算法" + "value" : "保留所有權利。" } } } }, - "All" : { + "All rows" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "전체" + "value" : "모든 행" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tümü" + "value" : "Tüm satırlar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tất cả" + "value" : "Tất cả dòng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "全部" + "value" : "所有行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "全部" + "value" : "所有列" } } } }, - "All (%lld)" : { + "All rows…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "전체(%lld)" + "value" : "모든 행…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tümü (%lld)" + "value" : "Tüm satırlar…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tất cả (%lld)" + "value" : "Tất cả các hàng…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "全部(%lld)" + "value" : "所有行…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "全部(%lld)" + "value" : "所有列…" } } } }, - "All %d rows selected" : { - "extractionState" : "stale", + "All selected connections were skipped." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%d개 행 모두 선택됨" + "value" : "선택한 모든 연결을 건너뛰었습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm %d satır seçildi" + "value" : "Seçilen tüm bağlantılar atlandı." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã chọn tất cả %d dòng" + "value" : "Tất cả kết nối đã chọn đã bị bỏ qua." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已选择全部%d行" + "value" : "所有选中的连接均已跳过。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已選取全部 %d 列" + "value" : "所有選取的連線都已略過。" } } } }, - "All %lld ^[rows](inflect: true) selected" : { + "All tables and data will be permanently deleted." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%lld개 행 모두 선택됨" + "value" : "모든 테이블과 데이터가 영구적으로 삭제됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm %lld satır seçildi" + "value" : "Tüm tablolar ve veriler kalıcı olarak silinecek." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã chọn tất cả %lld dòng" + "value" : "Tất cả bảng và dữ liệu sẽ bị xoá vĩnh viễn." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已选择全部%lld行" + "value" : "所有表和数据将被永久删除。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已選取全部 %lld 列" + "value" : "所有資料表與資料將被永久刪除。" } } } }, - "All %lld rows selected" : { - "extractionState" : "stale", + "All time" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%lld개 행 모두 선택됨" + "value" : "전체 기간" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "All %lld satır seçildi" + "value" : "Tüm zamanlar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã chọn tất cả %lld dòng" + "value" : "Mọi thời điểm" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已选择全部 %lld 行" + "value" : "全部时间" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已選取全部 %lld 列" + "value" : "全部時間" } } } }, - "All categories" : { + "All tokens" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 카테고리" + "value" : "모든 토큰" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm kategoriler" + "value" : "Tüm token'lar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tất cả danh mục" + "value" : "Tất cả token" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "所有分类" + "value" : "所有令牌" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "所有類別" + "value" : "所有權杖" } } } }, - "All columns" : { + "Allow" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 열" + "value" : "허용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm sütunlar" + "value" : "İzin Ver" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tất cả cột" + "value" : "Cho phép" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "所有列" + "value" : "允许" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "所有欄位" + "value" : "允許" } } } }, - "All columns visible" : { + "Allow %@ to access TablePro?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 열 표시 중" + "value" : "%@의 TablePro 접근을 허용하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm sütunlar görünür" + "value" : "%@ uygulamasının TablePro'ya erişmesine izin verilsin mi?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiện tất cả cột" + "value" : "Cho phép %@ truy cập TablePro?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示所有列" + "value" : "允许 %@ 访问 TablePro?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示所有欄" + "value" : "允許 %@ 存取 TablePro?" } } } }, - "All Connections" : { + "Allow AI Access" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 연결" + "value" : "AI 접근 허용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm Bağlantılar" + "value" : "Yapay Zeka Erişimine İzin Ver" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tất cả kết nối" + "value" : "Cho phép truy cập AI" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "所有连接" + "value" : "允许 AI 访问" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "所有連線" + "value" : "允許 AI 存取" } } } }, - "ALL DATABASES" : { - "extractionState" : "stale", + "Allow every held-back statement on the Warnings tab, or exclude the objects that produced them, before applying." : { "localizations" : { "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "모든 데이터베이스" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "TÜM VERİTABANLARI" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "TẤT CẢ CƠ SỞ DỮ LIỆU" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "所有数据库" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "所有資料庫" + "value" : "적용하기 전에 경고 탭에서 보류된 구문을 모두 허용하거나, 해당 구문을 만든 객체를 제외하십시오.", + "state" : "translated" } } } }, - "All Environments" : { + "Allow remote connections" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 환경" + "value" : "원격 연결 허용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm Ortamlar" + "value" : "Uzak bağlantılara izin ver" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tất cả môi trường" + "value" : "Cho phép kết nối từ xa" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "所有环境" + "value" : "允许远程连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "所有環境" + "value" : "允許遠端連線" } } } }, - "All Objects" : { + "Allowed Connections" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 객체" + "value" : "허용된 연결" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm Nesneler" + "value" : "İzin Verilen Bağlantılar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tất cả đối tượng" + "value" : "Kết nối được phép" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "所有对象" + "value" : "允许的连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "所有物件" + "value" : "允許的連線" } } } }, - "All rights reserved." : { - "extractionState" : "stale", + "Allowing a statement applies to this run only. It is never saved." : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "구문 허용은 이번 실행에만 적용되며 저장되지 않습니다.", + "state" : "translated" + } + } + } + }, + "Also handles" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 권리 보유." + "value" : "다음 항목도 처리" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm hakları saklıdır." + "value" : "Ayrıca işler" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã đăng ký bản quyền." + "value" : "Cũng xử lý" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "保留所有权利。" + "value" : "兼容类型" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "保留所有權利。" + "value" : "同時支援" } } } }, - "All rows" : { + "Also handles:" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 행" + "value" : "다음 항목도 처리:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm satırlar" + "value" : "Ayrıca işler:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tất cả dòng" + "value" : "Cũng hỗ trợ:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "所有行" + "value" : "还支持:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "所有列" + "value" : "同時支援:" } } } }, - "All Rows" : { - - }, - "All rows…" : { + "Alternate Row" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 행…" + "value" : "교차 행" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm satırlar…" + "value" : "Alternatif Satır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tất cả các hàng…" + "value" : "Dòng xen kẽ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "所有行…" + "value" : "交替行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "所有列…" + "value" : "交替列" } } } }, - "ALL SCHEMAS" : { + "Always" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 스키마" + "value" : "항상" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "TÜM ŞEMALAR" + "value" : "Her Zaman" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "TẤT CẢ SCHEMA" + "value" : "Luôn luôn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "所有 SCHEMA" + "value" : "始终" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "所有綱要" + "value" : "永遠" } } } }, - "All selected connections were skipped." : { + "Always Allow" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "선택한 모든 연결을 건너뛰었습니다." + "value" : "항상 허용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Seçilen tüm bağlantılar atlandı." + "value" : "Her Zaman İzin Ver" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tất cả kết nối đã chọn đã bị bỏ qua." + "value" : "Luôn cho phép" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "所有选中的连接均已跳过。" + "value" : "始终允许" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "所有選取的連線都已略過。" + "value" : "永遠允許" } } } }, - "All tables and data will be permanently deleted." : { + "Always Hide" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 테이블과 데이터가 영구적으로 삭제됩니다." + "value" : "항상 가리기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm tablolar ve veriler kalıcı olarak silinecek." + "value" : "Her Zaman Gizle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tất cả bảng và dữ liệu sẽ bị xoá vĩnh viễn." + "value" : "Luôn ẩn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "所有表和数据将被永久删除。" + "value" : "始终隐藏" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "所有資料表與資料將被永久刪除。" + "value" : "永遠隱藏" } } } }, - "All time" : { + "Always Show" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "전체 기간" + "value" : "항상 표시" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm zamanlar" + "value" : "Her Zaman Göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mọi thời điểm" + "value" : "Luôn hiện" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "全部时间" + "value" : "始终显示" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "全部時間" + "value" : "永遠顯示" } } } }, - "All Time" : { + "Always allow %@ for this connection" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "전체 기간" + "value" : "이 연결에서 %@ 항상 허용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tümü" + "value" : "Bu bağlantıda %@ için her zaman izin ver" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tất cả" + "value" : "Luôn cho phép %@ với kết nối này" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "所有时间" + "value" : "对此连接始终允许%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "全部時間" + "value" : "對這個連線一律允許 %@" } } } }, - "All tokens" : { + "Always count" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 토큰" + "value" : "항상 집계" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm token'lar" + "value" : "Her zaman say" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tất cả token" + "value" : "Luôn đếm" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "所有令牌" + "value" : "始终计数" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "所有權杖" + "value" : "永遠計數" } } } }, - "All Types" : { + "Always for this connection" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 유형" + "value" : "이 연결에서 항상" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm Türler" + "value" : "Bu bağlantı için her zaman" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tất cả kiểu" + "value" : "Luôn với kết nối này" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "所有类型" + "value" : "始终用于此连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "所有類型" + "value" : "一律用於這個連線" } } } }, - "Allow" : { + "Amazon's columnar warehouse on Postgres" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "허용" + "value" : "Postgres 기반 Amazon의 열 지향 데이터 웨어하우스" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İzin Ver" + "value" : "Amazon'un Postgres tabanlı sütunsal veri ambarı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cho phép" + "value" : "Kho dữ liệu dạng cột của Amazon trên nền Postgres" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "允许" + "value" : "Amazon基于Postgres的列式数据仓库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "允許" - } - } - } - }, - "Allow %@ on '%@'?" : { - "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Allow %1$@ on '%2$@'?" + "value" : "Amazon 基於 Postgres 的欄式資料倉儲" } } } }, - "Allow %@ to access TablePro?" : { + "An MCP client wants to access '%@' (%@). Allow?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@의 TablePro 접근을 허용하시겠습니까?" + "value" : "MCP 클라이언트가 '%@' (%@)에 접근하려고 합니다. 허용하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ uygulamasının TablePro'ya erişmesine izin verilsin mi?" + "value" : "Bir MCP istemcisi '%@' (%@) erişmek istiyor. İzin verilsin mi?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cho phép %@ truy cập TablePro?" + "value" : "Một MCP client muốn truy cập '%@' (%@). Cho phép?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "允许 %@ 访问 TablePro?" + "value" : "MCP 客户端请求访问 '%@'(%@)。是否允许?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "允許 %@ 存取 TablePro?" + "value" : "有 MCP 用戶端想要存取「%@」(%@)。是否允許?" } } } }, - "Allow AI Access" : { + "An external app is asking for an API token. Review the permissions before approving." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "AI 접근 허용" + "value" : "외부 앱에서 API 토큰을 요청합니다. 승인하기 전에 권한을 검토하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yapay Zeka Erişimine İzin Ver" + "value" : "Harici bir uygulama API token'ı istiyor. Onaylamadan önce izinleri inceleyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cho phép truy cập AI" + "value" : "Một ứng dụng bên ngoài đang yêu cầu API token. Hãy xem lại quyền trước khi chấp thuận." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "允许 AI 访问" + "value" : "外部应用正在请求 API 令牌。请在批准前审核权限。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "允許 AI 存取" + "value" : "有外部應用程式正在請求 API 權杖。請在核准前審查權限。" } } } }, - "Allow every held-back statement on the Warnings tab, or exclude the objects that produced them, before applying." : { - - }, - "Allow remote connections" : { + "An external link wants to add a database connection:\n\nName: %@\n%@" : { "extractionState" : "stale", "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "An external link wants to add a database connection:\n\nName: %1$@\n%2$@" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "원격 연결 허용" + "value" : "외부 링크에서 데이터베이스 연결을 추가하려고 합니다:\n\n이름: %1$@\n%2$@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Uzak bağlantılara izin ver" + "value" : "Bir harici bağlantı veritabanı bağlantısı eklemek istiyor:\n\nAd: %@\n%@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cho phép kết nối từ xa" + "value" : "Một liên kết bên ngoài muốn thêm kết nối cơ sở dữ liệu:\n\nTên: %@\n%@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "允许远程连接" + "value" : "外部链接想要添加数据库连接:\n\n名称:%@\n%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "允許遠端連線" + "value" : "有外部連結想要新增資料庫連線:\n\n名稱:%1$@\n%2$@" } } } }, - "Allowed Connections" : { + "An external link wants to apply a filter:\n\n%@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "허용된 연결" + "value" : "외부 링크에서 필터를 적용하려고 합니다:\n\n%@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İzin Verilen Bağlantılar" + "value" : "Harici bir bağlantı filtre uygulamak istiyor:\n\n%@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối được phép" + "value" : "Một liên kết bên ngoài muốn áp dụng bộ lọc:\n\n%@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "允许的连接" + "value" : "外部链接要应用筛选条件:\n\n%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "允許的連線" + "value" : "有外部連結想要套用篩選:\n\n%@" } } } }, - "Allowed values" : { - - }, - "Allowing a statement applies to this run only. It is never saved." : { - - }, - "Also handles" : { + "An external link wants to connect to a %@ database:\n\n%@\n\nConnect only if you trust the source of this link." : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "An external link wants to connect to a %1$@ database:\n\n%2$@\n\nConnect only if you trust the source of this link." + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다음 항목도 처리" + "value" : "외부 링크에서 %1$@ 데이터베이스에 연결하려고 합니다:\n\n%2$@\n\n이 링크의 출처를 신뢰하는 경우에만 연결하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ayrıca işler" + "value" : "Harici bir bağlantı %1$@ veritabanına bağlanmak istiyor:\n\n%2$@\n\nYalnızca bu bağlantının kaynağına güveniyorsanız bağlanın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cũng xử lý" + "value" : "Một liên kết bên ngoài muốn kết nối tới cơ sở dữ liệu %1$@:\n\n%2$@\n\nChỉ kết nối nếu bạn tin tưởng nguồn của liên kết này." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "兼容类型" + "value" : "一个外部链接想要连接到 %1$@ 数据库:\n\n%2$@\n\n只有在你信任此链接来源时才连接。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "同時支援" + "value" : "一個外部連結想要連線到 %1$@ 資料庫:\n\n%2$@\n\n只有在你信任這個連結的來源時才連線。" } } } }, - "Also handles:" : { - "extractionState" : "stale", + "An external link wants to open a query on \"%@\":\n\n%@" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "An external link wants to open a query on \"%1$@\":\n\n%2$@" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다음 항목도 처리:" + "value" : "외부 링크에서 \"%1$@\"의 쿼리를 열려고 합니다:\n\n%2$@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ayrıca işler:" + "value" : "Harici bir bağlantı \"%@\" üzerinde bir sorgu açmak istiyor:\n\n%@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cũng hỗ trợ:" + "value" : "Một liên kết bên ngoài muốn mở truy vấn trên \"%@\":\n\n%@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "还支持:" + "value" : "外部链接希望在 \"%@\" 上打开查询:\n\n%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "同時支援:" + "value" : "有外部連結想要在「%1$@」上開啟查詢:\n\n%2$@" } } } }, - "Alternate Row" : { + "An external link wants to open a query on connection \"%@\":\n\n%@" : { + "extractionState" : "stale", "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "An external link wants to open a query on connection \"%1$@\":\n\n%2$@" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "교차 행" + "value" : "외부 링크에서 \"%1$@\" 연결의 쿼리를 열려고 합니다:\n\n%2$@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Alternatif Satır" + "value" : "Bir harici bağlantı \"%@\" bağlantısında sorgu açmak istiyor:\n\n%@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dòng xen kẽ" + "value" : "Một liên kết bên ngoài muốn mở truy vấn trên kết nối \"%@\":\n\n%@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "交替行" + "value" : "外部链接想要在连接\"%@\"上打开查询:\n\n%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "交替列" + "value" : "有外部連結想要在連線「%1$@」上開啟查詢:\n\n%2$@" } } } }, - "Always" : { - "extractionState" : "stale", + "An operation is already running." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "항상" + "value" : "이미 작업이 실행 중입니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Her Zaman" + "value" : "Zaten bir işlem yürütülüyor." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Luôn luôn" + "value" : "Một thao tác đang chạy." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "始终" + "value" : "已有操作正在运行。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "永遠" + "value" : "已有操作正在執行。" } } } }, - "Always 'connected' on success" : { - - }, - "Always 'created' on success" : { - - }, - "Always 'disconnected' on success" : { - - }, - "Always 'dropped' on success" : { - - }, - "Always 'focused' on success" : { - - }, - "Always 'opened' on success" : { - - }, - "Always 'switched' on success" : { - - }, - "Always Allow" : { + "An unknown sync error occurred: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "항상 허용" + "value" : "알 수 없는 동기화 오류가 발생했습니다: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Her Zaman İzin Ver" + "value" : "Bilinmeyen bir eşitleme hatası oluştu: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Luôn cho phép" + "value" : "Đã xảy ra lỗi đồng bộ không xác định: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "始终允许" + "value" : "发生未知同步错误:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "永遠允許" + "value" : "發生未知的同步錯誤:%@" } } } }, - "Always allow %@ for this connection" : { + "Analytical" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 연결에서 %@ 항상 허용" + "value" : "분석용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu bağlantıda %@ için her zaman izin ver" + "value" : "Analitik" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Luôn cho phép %@ với kết nối này" + "value" : "Phân tích" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "对此连接始终允许%@" + "value" : "分析型" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "對這個連線一律允許 %@" + "value" : "分析型" } } } }, - "Always count" : { + "Animations" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "항상 집계" + "value" : "애니메이션" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Her zaman say" + "value" : "Animasyonlar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Luôn đếm" + "value" : "Hiệu ứng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "始终计数" + "value" : "动画" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "永遠計數" + "value" : "動畫" } } } }, - "Always for this connection" : { + "Another install is already in progress for this plugin" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 연결에서 항상" + "value" : "이 플러그인의 다른 설치가 이미 진행 중입니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu bağlantı için her zaman" + "value" : "Bu eklenti için zaten bir yükleme sürüyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Luôn với kết nối này" + "value" : "Đang có một quá trình cài đặt khác cho plugin này" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "始终用于此连接" + "value" : "此插件已有另一个安装正在进行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "一律用於這個連線" + "value" : "這個外掛已有另一個安裝正在進行" } } } }, - "Always Hide" : { + "Any Column" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "항상 가리기" + "value" : "어느 열이든" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Her Zaman Gizle" + "value" : "Herhangi Bir Sütun" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Luôn ẩn" + "value" : "Bất kỳ cột nào" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "始终隐藏" + "value" : "任意列" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "永遠隱藏" + "value" : "任一欄位" } } } }, - "Always Show" : { + "Any Outcome" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "항상 표시" + "value" : "결과 무관" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Her Zaman Göster" + "value" : "Her Sonuç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Luôn hiện" + "value" : "Mọi kết quả" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "始终显示" + "value" : "任意结果" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "永遠顯示" + "value" : "任何結果" } } } }, - "Amazon's columnar warehouse on Postgres" : { + "App" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Postgres 기반 Amazon의 열 지향 데이터 웨어하우스" + "value" : "앱" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Amazon'un Postgres tabanlı sütunsal veri ambarı" + "value" : "Uygulama" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kho dữ liệu dạng cột của Amazon trên nền Postgres" + "value" : "Ứng dụng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Amazon基于Postgres的列式数据仓库" + "value" : "应用" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Amazon 基於 Postgres 的欄式資料倉儲" + "value" : "App" } } } }, - "an explain" : { - - }, - "an export" : { - - }, - "An external app is asking for an API token. Review the permissions before approving." : { + "Appearance" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "외부 앱에서 API 토큰을 요청합니다. 승인하기 전에 권한을 검토하십시오." + "value" : "모양" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Harici bir uygulama API token'ı istiyor. Onaylamadan önce izinleri inceleyin." + "value" : "Görünüm" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Một ứng dụng bên ngoài đang yêu cầu API token. Hãy xem lại quyền trước khi chấp thuận." + "value" : "Giao diện" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "外部应用正在请求 API 令牌。请在批准前审核权限。" + "value" : "外观" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "有外部應用程式正在請求 API 權杖。請在核准前審查權限。" + "value" : "外觀" } } } }, - "An external link wants to add a database connection:\n\nName: %@\n%@" : { + "Appearance:" : { "extractionState" : "stale", "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "An external link wants to add a database connection:\n\nName: %1$@\n%2$@" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "외부 링크에서 데이터베이스 연결을 추가하려고 합니다:\n\n이름: %1$@\n%2$@" + "value" : "모양:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bir harici bağlantı veritabanı bağlantısı eklemek istiyor:\n\nAd: %@\n%@" + "value" : "Görünüm:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Một liên kết bên ngoài muốn thêm kết nối cơ sở dữ liệu:\n\nTên: %@\n%@" + "value" : "Giao diện:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "外部链接想要添加数据库连接:\n\n名称:%@\n%@" + "value" : "外观:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "有外部連結想要新增資料庫連線:\n\n名稱:%1$@\n%2$@" + "value" : "外觀:" } } } }, - "An external link wants to apply a filter:\n\n%@" : { + "Application Default Credentials" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "외부 링크에서 필터를 적용하려고 합니다:\n\n%@" + "value" : "애플리케이션 기본 사용자 인증 정보" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Harici bir bağlantı filtre uygulamak istiyor:\n\n%@" + "value" : "Application Default Credentials" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Một liên kết bên ngoài muốn áp dụng bộ lọc:\n\n%@" + "value" : "Application Default Credentials" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "外部链接要应用筛选条件:\n\n%@" + "value" : "Application Default Credentials" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "有外部連結想要套用篩選:\n\n%@" + "value" : "Application Default Credentials" } } } }, - "An external link wants to connect to a %@ database:\n\n%@\n\nConnect only if you trust the source of this link." : { + "Applied" : { + "extractionState" : "stale", "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "An external link wants to connect to a %1$@ database:\n\n%2$@\n\nConnect only if you trust the source of this link." - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "외부 링크에서 %1$@ 데이터베이스에 연결하려고 합니다:\n\n%2$@\n\n이 링크의 출처를 신뢰하는 경우에만 연결하십시오." + "value" : "적용됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Harici bir bağlantı %1$@ veritabanına bağlanmak istiyor:\n\n%2$@\n\nYalnızca bu bağlantının kaynağına güveniyorsanız bağlanın." + "value" : "Uygulandı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Một liên kết bên ngoài muốn kết nối tới cơ sở dữ liệu %1$@:\n\n%2$@\n\nChỉ kết nối nếu bạn tin tưởng nguồn của liên kết này." + "value" : "Đã áp dụng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "一个外部链接想要连接到 %1$@ 数据库:\n\n%2$@\n\n只有在你信任此链接来源时才连接。" + "value" : "已应用" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "一個外部連結想要連線到 %1$@ 資料庫:\n\n%2$@\n\n只有在你信任這個連結的來源時才連線。" + "value" : "已套用" } } } }, - "An external link wants to open a query on \"%@\":\n\n%@" : { + "Applied to %@ at %@. %d statements." : { "localizations" : { "en" : { "stringUnit" : { "state" : "new", - "value" : "An external link wants to open a query on \"%1$@\":\n\n%2$@" + "value" : "Applied to %1$@ at %2$@. %3$d statements." } }, "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "외부 링크에서 \"%1$@\"의 쿼리를 열려고 합니다:\n\n%2$@" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "Harici bir bağlantı \"%@\" üzerinde bir sorgu açmak istiyor:\n\n%@" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "Một liên kết bên ngoài muốn mở truy vấn trên \"%@\":\n\n%@" + "value" : "%2$@에 %1$@(으)로 적용했습니다. 구문 %3$d개.", + "state" : "translated" } - }, - "zh-Hans" : { + } + } + }, + "Applied to %@ at %@. 1 statement." : { + "localizations" : { + "en" : { "stringUnit" : { - "state" : "translated", - "value" : "外部链接希望在 \"%@\" 上打开查询:\n\n%@" + "state" : "new", + "value" : "Applied to %1$@ at %2$@. 1 statement." } }, - "zh-Hant" : { + "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "有外部連結想要在「%1$@」上開啟查詢:\n\n%2$@" + "value" : "%2$@에 %1$@(으)로 적용했습니다. 구문 1개.", + "state" : "translated" } } } }, - "An external link wants to open a query on connection \"%@\":\n\n%@" : { + "Applied when opening a table. Click a column header to override." : { "extractionState" : "stale", "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "An external link wants to open a query on connection \"%1$@\":\n\n%2$@" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "외부 링크에서 \"%1$@\" 연결의 쿼리를 열려고 합니다:\n\n%2$@" + "value" : "테이블을 열 때 적용됩니다. 재정의하려면 열 헤더를 클릭하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bir harici bağlantı \"%@\" bağlantısında sorgu açmak istiyor:\n\n%@" + "value" : "Tablo açılırken uygulanır. Geçersiz kılmak için bir sütun başlığına tıklayın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Một liên kết bên ngoài muốn mở truy vấn trên kết nối \"%@\":\n\n%@" + "value" : "Áp dụng khi mở bảng. Bấm vào tiêu đề cột để ghi đè." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "外部链接想要在连接\"%@\"上打开查询:\n\n%@" + "value" : "在打开表时应用。点按列标题可覆盖。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "有外部連結想要在連線「%1$@」上開啟查詢:\n\n%2$@" + "value" : "在開啟資料表時套用。點按欄位標題可覆寫。" } } } }, - "An MCP client wants to access '%@' (%@). Allow?" : { + "Apply" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "MCP 클라이언트가 '%@' (%@)에 접근하려고 합니다. 허용하시겠습니까?" + "value" : "적용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bir MCP istemcisi '%@' (%@) erişmek istiyor. İzin verilsin mi?" + "value" : "Uygula" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Một MCP client muốn truy cập '%@' (%@). Cho phép?" + "value" : "Áp dụng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "MCP 客户端请求访问 '%@'(%@)。是否允许?" + "value" : "应用" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "有 MCP 用戶端想要存取「%@」(%@)。是否允許?" + "value" : "套用" } } } }, - "An operation is already running." : { + "Apply %1$d statements to %2$@?" : { "localizations" : { "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "이미 작업이 실행 중입니다." - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "Zaten bir işlem yürütülüyor." + "value" : "구문 %1$d개를 %2$@에 적용하시겠습니까?", + "state" : "translated" } - }, - "vi" : { + } + } + }, + "Apply %@ sync to %@" : { + "localizations" : { + "en" : { "stringUnit" : { - "state" : "translated", - "value" : "Một thao tác đang chạy." + "state" : "new", + "value" : "Apply %1$@ sync to %2$@" } }, - "zh-Hans" : { + "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "已有操作正在运行。" + "value" : "%@ 동기화를 %@에 적용", + "state" : "translated" } - }, - "zh-Hant" : { + } + } + }, + "Apply 1 statement to %@?" : { + "localizations" : { + "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "已有操作正在執行。" + "value" : "구문 1개를 %@에 적용하시겠습니까?", + "state" : "translated" } } } }, - "An unknown sync error occurred: %@" : { + "Apply All" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "알 수 없는 동기화 오류가 발생했습니다: %@" + "value" : "모두 적용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bilinmeyen bir eşitleme hatası oluştu: %@" + "value" : "Tümünü Uygula" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã xảy ra lỗi đồng bộ không xác định: %@" + "value" : "Áp dụng tất cả" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "发生未知同步错误:%@" + "value" : "全部应用" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "發生未知的同步錯誤:%@" + "value" : "全部套用" } } } }, - "Analytical" : { + "Apply Changes" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "분석용" + "value" : "변경 사항 적용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Analitik" + "value" : "Değişiklikleri Uygula" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phân tích" + "value" : "Áp dụng thay đổi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "分析型" + "value" : "应用更改" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "分析型" + "value" : "套用變更" } } } }, - "ANALYZE (update statistics after vacuum)" : { + "Apply Filter" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "ANALYZE (vacuum 후 통계 업데이트)" + "value" : "필터 적용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "ANALYZE (vacuum sonrası istatistikleri güncelle)" + "value" : "Filtre Uygula" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "ANALYZE (cập nhật thống kê sau vacuum)" + "value" : "Áp dụng bộ lọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "ANALYZE(vacuum 后更新统计信息)" + "value" : "应用筛选" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "ANALYZE(vacuum 後更新統計資訊)" + "value" : "套用篩選" } } } }, - "and" : { + "Apply Filter from Link" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "그리고" + "value" : "링크의 필터 적용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "ve" + "value" : "Bağlantıdan Filtre Uygula" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "và" + "value" : "Áp dụng bộ lọc từ liên kết" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "和" + "value" : "从链接应用筛选" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "且" + "value" : "從連結套用篩選" } } } }, - "AND" : { - "extractionState" : "stale", + "Apply Only This Filter" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "AND" + "value" : "이 필터만 적용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "VE" + "value" : "Yalnızca Bu Filtreyi Uygula" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "AND" + "value" : "Chỉ áp dụng bộ lọc này" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "AND" + "value" : "仅应用此筛选" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "AND" + "value" : "僅套用此篩選" } } } }, - "Animations" : { - "extractionState" : "stale", + "Apply Schema Changes" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "애니메이션" + "value" : "스키마 변경 사항 적용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Animasyonlar" + "value" : "Şema Değişikliklerini Uygula" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiệu ứng" + "value" : "Áp dụng thay đổi schema" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "动画" + "value" : "应用Schema更改" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "動畫" + "value" : "套用綱要變更" } } } }, - "Anonymous (loopback)" : { - - }, - "Another install is already in progress for this plugin" : { + "Apply This Filter" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 플러그인의 다른 설치가 이미 진행 중입니다" + "value" : "이 필터 적용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu eklenti için zaten bir yükleme sürüyor" + "value" : "Bu Filtreyi Uygula" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang có một quá trình cài đặt khác cho plugin này" + "value" : "Áp dụng bộ lọc này" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此插件已有另一个安装正在进行" + "value" : "应用此筛选" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "這個外掛已有另一個安裝正在進行" + "value" : "套用此篩選" } } } }, - "ANTHROPIC_API_KEY and ANTHROPIC_AUTH_TOKEN are removed from the tool's environment, so replies always draw on the subscription." : { + "Apply User and Role Changes" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "도구의 환경에서 ANTHROPIC_API_KEY와 ANTHROPIC_AUTH_TOKEN이 제거되므로 응답에는 항상 구독이 사용됩니다." + "value" : "사용자 및 역할 변경 사항 적용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "ANTHROPIC_API_KEY ve ANTHROPIC_AUTH_TOKEN aracın ortamından kaldırılır, bu yüzden yanıtlar her zaman abonelikten düşer." + "value" : "Kullanıcı ve Rol Değişikliklerini Uygula" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "ANTHROPIC_API_KEY và ANTHROPIC_AUTH_TOKEN bị loại khỏi môi trường của công cụ, nên các câu trả lời luôn dùng gói đăng ký." + "value" : "Áp dụng thay đổi người dùng và vai trò" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "ANTHROPIC_API_KEY 和 ANTHROPIC_AUTH_TOKEN 会从该工具的环境变量中移除,因此回复始终消耗订阅额度。" + "value" : "应用用户和角色更改" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "ANTHROPIC_API_KEY 和 ANTHROPIC_AUTH_TOKEN 會從該工具的環境變數中移除,因此回覆一律消耗訂閱額度。" + "value" : "套用使用者與角色變更" } } } }, - "Any Column" : { + "Apply a row limit when running queries and cap results at the configured row count" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "어느 열이든" + "value" : "쿼리 실행 시 행 제한을 적용하고 결과를 설정된 행 수로 제한" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Herhangi Bir Sütun" + "value" : "Sorguları çalıştırırken satır limiti uygula ve sonuçları ayarlanan satır sayısıyla sınırla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bất kỳ cột nào" + "value" : "Áp dụng giới hạn dòng khi chạy truy vấn và giới hạn kết quả ở số dòng đã cấu hình" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "任意列" + "value" : "运行查询时应用行数限制,并将结果限制在配置的行数内" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "任一欄位" + "value" : "執行查詢時套用列數上限,並將結果限制在設定的列數內" } } } }, - "any element" : { - - }, - "Any element of %@ may match this row on its own" : { - - }, - "Any Outcome" : { + "Apply active filters (Cmd+Return)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "결과 무관" + "value" : "활성 필터 적용(Cmd+Return)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Her Sonuç" + "value" : "Etkin filtreleri uygula (Cmd+Return)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mọi kết quả" + "value" : "Áp dụng các bộ lọc đang bật (Cmd+Return)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "任意结果" + "value" : "应用启用的筛选 (Cmd+Return)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "任何結果" + "value" : "套用啟用的篩選(Cmd+Return)" } } } }, - "API Key" : { + "Apply filters" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "API 키" + "value" : "필터 적용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "API Anahtarı" + "value" : "Filtreleri uygula" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "API Key" + "value" : "Áp dụng bộ lọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "API Key" + "value" : "应用筛选" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "API Key" + "value" : "套用篩選" } } } }, - "API key is required" : { + "Apply only this filter" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "API 키가 필요합니다" + "value" : "이 필터만 적용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "API anahtarı gerekli" + "value" : "Yalnızca bu filtreyi uygula" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Yêu cầu khóa API" + "value" : "Chỉ áp dụng bộ lọc này" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "需要 API 密钥" + "value" : "仅应用此筛选" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "需要 API key" + "value" : "僅套用這個篩選" } } } }, - "API key set" : { + "Apply suggested SQL?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "API 키 설정됨" + "value" : "제안된 SQL을 적용하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "API anahtarı ayarlı" + "value" : "Önerilen SQL uygulansın mı?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã đặt API key" + "value" : "Áp dụng SQL được đề xuất?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已设置 API 密钥" + "value" : "应用建议的 SQL?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已設定 API key" + "value" : "要套用建議的 SQL 嗎?" } } } }, - "API token" : { + "Apply this filter" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "API 토큰" + "value" : "이 필터 적용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "API anahtarı" + "value" : "Bu filtreyi uygula" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mã API" + "value" : "Áp dụng bộ lọc này" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "API 令牌" + "value" : "应用此筛选" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "API 權杖" + "value" : "套用此篩選" } } } }, - "API Token" : { + "Apply to %@" : { "localizations" : { - "en" : { + "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "API Token" + "value" : "%@에 적용", + "state" : "translated" } - }, + } + } + }, + "Apply to Editor" : { + "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "API 토큰" + "value" : "편집기에 적용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "API Token" + "value" : "Düzenleyiciye Uygula" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "API Token" + "value" : "Áp dụng vào trình soạn thảo" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "API Token" + "value" : "应用到编辑器" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "API Token" + "value" : "套用到編輯器" } } } }, - "API Token Required" : { + "Apply to Target…" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "대상에 적용…", + "state" : "translated" + } + } + } + }, + "Applying or clearing filters will reload data and discard all unsaved changes." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "API 토큰 필요" + "value" : "필터를 적용하거나 지우면 데이터를 다시 불러오고 저장하지 않은 모든 변경 사항이 폐기됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "API Anahtarı Gerekli" + "value" : "Filtre uygulamak veya temizlemek veriyi yeniden yükler ve tüm kaydedilmemiş değişiklikleri siler." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Yêu cầu mã API" + "value" : "Áp dụng hoặc xóa bộ lọc sẽ tải lại dữ liệu và hủy tất cả thay đổi chưa lưu." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "需要 API 令牌" + "value" : "应用或清除筛选条件将重新加载数据并丢弃所有未保存的更改。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "需要 API 權杖" + "value" : "套用或清除篩選條件將重新載入資料並捨棄所有未儲存的變更。" } } } }, - "App" : { + "Applying to %@…" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "%@에 적용하는 중…", + "state" : "translated" + } + } + } + }, + "Apply…" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "적용…", + "state" : "translated" + } + } + } + }, + "Approve" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "앱" + "value" : "승인" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Uygulama" + "value" : "Onayla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ứng dụng" + "value" : "Chấp thuận" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "应用" + "value" : "批准" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "App" + "value" : "核准" } } } }, - "Appearance" : { + "Approve Integration" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모양" + "value" : "통합 승인" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Görünüm" + "value" : "Entegrasyonu Onayla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giao diện" + "value" : "Chấp thuận tích hợp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "外观" + "value" : "批准集成" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "外觀" + "value" : "核准整合" } } } }, - "Appearance:" : { - "extractionState" : "stale", + "Are you sure you want to cancel the running query for this session?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모양:" + "value" : "이 세션에서 실행 중인 쿼리를 취소하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Görünüm:" + "value" : "Bu oturumun çalışan sorgusunu iptal etmek istediğinizden emin misiniz?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giao diện:" + "value" : "Bạn có chắc muốn huỷ truy vấn đang chạy cho phiên này?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "外观:" + "value" : "确定要取消此会话正在运行的查询吗?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "外觀:" + "value" : "確定要取消此工作階段正在執行的查詢嗎?" } } } }, - "Application Default Credentials" : { + "Are you sure you want to delete \"%@\"?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "애플리케이션 기본 사용자 인증 정보" + "value" : "\"%@\"을(를) 삭제하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Application Default Credentials" + "value" : "\"%@\" öğesini silmek istediğinize emin misiniz?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Application Default Credentials" + "value" : "Bạn có chắc muốn xóa \"%@\" không?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Application Default Credentials" + "value" : "确定要删除 \"%@\" 吗?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Application Default Credentials" + "value" : "確定要刪除「%@」嗎?" } } } }, - "Applied" : { - "extractionState" : "stale", + "Are you sure you want to delete \"%@\"? Saved queries linked to this connection will also be deleted." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "적용됨" + "value" : "\"%@\"을(를) 삭제하시겠습니까? 이 연결에 링크된 저장된 쿼리도 삭제됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Uygulandı" + "value" : "\"%@\" öğesini silmek istediğinizden emin misiniz? Bu bağlantıya bağlı kayıtlı sorgular da silinecek." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã áp dụng" + "value" : "Bạn có chắc muốn xóa \"%@\"? Các truy vấn đã lưu liên kết với kết nối này cũng sẽ bị xóa." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已应用" + "value" : "确定要删除“%@”吗?与此连接关联的已保存查询也将被删除。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已套用" - } - } - } - }, - "Applied to %@ at %@. %d statements." : { - "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Applied to %1$@ at %2$@. %3$d statements." - } - } - } - }, - "Applied to %@ at %@. 1 statement." : { - "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Applied to %1$@ at %2$@. 1 statement." + "value" : "確定要刪除「%@」嗎?與此連線關聯的已儲存查詢也會一併刪除。" } } } }, - "Applied when opening a table. Click a column header to override." : { - "extractionState" : "stale", + "Are you sure you want to delete %lld connections? Saved queries linked to these connections will also be deleted. This cannot be undone." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블을 열 때 적용됩니다. 재정의하려면 열 헤더를 클릭하십시오." + "value" : "%lld개의 연결을 삭제하시겠습니까? 이 연결들에 링크된 저장된 쿼리도 삭제됩니다. 이 작업은 취소할 수 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tablo açılırken uygulanır. Geçersiz kılmak için bir sütun başlığına tıklayın." + "value" : "%lld bağlantıyı silmek istediğinizden emin misiniz? Bu bağlantılara bağlı kayıtlı sorgular da silinecek. Bu işlem geri alınamaz." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Áp dụng khi mở bảng. Bấm vào tiêu đề cột để ghi đè." + "value" : "Bạn có chắc muốn xóa %lld kết nối? Các truy vấn đã lưu liên kết với những kết nối này cũng sẽ bị xóa. Không thể hoàn tác." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在打开表时应用。点按列标题可覆盖。" + "value" : "确定要删除 %lld 个连接吗?与这些连接关联的已保存查询也将被删除。此操作无法撤销。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在開啟資料表時套用。點按欄位標題可覆寫。" + "value" : "確定要刪除 %lld 個連線嗎?與這些連線關聯的已儲存查詢也會一併刪除。此操作無法復原。" } } } }, - "Apply" : { + "Are you sure you want to delete %lld connections? This cannot be undone." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "적용" + "value" : "%lld개의 연결을 삭제하시겠습니까? 이 작업은 취소할 수 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Uygula" + "value" : "%lld bağlantıyı silmek istediğinizden emin misiniz? Bu işlem geri alınamaz." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Áp dụng" + "value" : "Bạn có chắc muốn xóa %lld kết nối? Hành động này không thể hoàn tác." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "应用" + "value" : "确定要删除 %lld 个连接吗?此操作无法撤销。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "套用" - } - } - } - }, - "Apply %@ sync to %@" : { - "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Apply %1$@ sync to %2$@" + "value" : "確定要刪除 %lld 個連線嗎?此操作無法復原。" } } } }, - "Apply %1$d statements to %2$@?" : { - - }, - "Apply 1 statement to %@?" : { - - }, - "Apply a row limit when running queries and cap results at the configured row count" : { + "Are you sure you want to delete the group \"%@\"? Connections in this group will be moved to the top level." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 실행 시 행 제한을 적용하고 결과를 설정된 행 수로 제한" + "value" : "\"%@\" 그룹을 삭제하시겠습니까? 이 그룹의 연결은 최상위 수준으로 이동됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorguları çalıştırırken satır limiti uygula ve sonuçları ayarlanan satır sayısıyla sınırla" + "value" : "\"%@\" grubunu silmek istediğinize emin misiniz? Bu gruptaki bağlantılar üst seviyeye taşınacaktır." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Áp dụng giới hạn dòng khi chạy truy vấn và giới hạn kết quả ở số dòng đã cấu hình" + "value" : "Bạn có chắc muốn xóa nhóm \"%@\"? Các kết nối trong nhóm này sẽ được chuyển lên cấp cao nhất." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "运行查询时应用行数限制,并将结果限制在配置的行数内" + "value" : "确定要删除分组 \"%@\" 吗?该分组中的连接将移至顶层。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "執行查詢時套用列數上限,並將結果限制在設定的列數內" + "value" : "確定要刪除群組「%@」嗎?此群組中的連線將移至頂層。" } } } }, - "Apply active filters (Cmd+Return)" : { + "Are you sure you want to delete this connection? This cannot be undone." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "활성 필터 적용(Cmd+Return)" + "value" : "이 연결을 삭제하시겠습니까? 이 작업은 취소할 수 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Etkin filtreleri uygula (Cmd+Return)" + "value" : "Bu bağlantıyı silmek istediğinize emin misiniz? Bu işlem geri alınamaz." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Áp dụng các bộ lọc đang bật (Cmd+Return)" + "value" : "Bạn có chắc muốn xóa kết nối này? Thao tác này không thể hoàn tác." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "应用启用的筛选 (Cmd+Return)" + "value" : "确定要删除此连接吗?此操作无法撤消。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "套用啟用的篩選(Cmd+Return)" + "value" : "確定要刪除此連線嗎?此操作無法復原。" } } } }, - "Apply All" : { + "Are you sure you want to disconnect from this database?" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모두 적용" + "value" : "이 데이터베이스와의 연결을 해제하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tümünü Uygula" + "value" : "Bu veritabanından bağlantıyı kesmek istediğinize emin misiniz?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Áp dụng tất cả" + "value" : "Bạn có chắc muốn ngắt kết nối khỏi cơ sở dữ liệu này không?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "全部应用" + "value" : "确定要断开与此数据库的连接吗?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "全部套用" + "value" : "確定要中斷與此資料庫的連線嗎?" } } } }, - "Apply Changes" : { + "Are you sure you want to execute this query?\n\n%@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "변경 사항 적용" + "value" : "이 쿼리를 실행하시겠습니까?\n\n%@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Değişiklikleri Uygula" + "value" : "Bu sorguyu çalıştırmak istediğinize emin misiniz?\n\n%@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Áp dụng thay đổi" + "value" : "Bạn có chắc chắn muốn thực thi truy vấn này?\n\n%@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "应用更改" + "value" : "确定要执行此查询吗?\n\n%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "套用變更" + "value" : "確定要執行此查詢嗎?\n\n%@" } } } }, - "Apply Filter" : { + "Are you sure you want to terminate this session? Any running queries will be aborted." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터 적용" + "value" : "이 세션을 종료하시겠습니까? 실행 중인 모든 쿼리가 중단됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtre Uygula" + "value" : "Bu oturumu sonlandırmak istediğinizden emin misiniz? Çalışan sorgular iptal edilecek." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Áp dụng bộ lọc" + "value" : "Bạn có chắc muốn kết thúc phiên này? Mọi truy vấn đang chạy sẽ bị huỷ." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "应用筛选" + "value" : "确定要终止此会话吗?正在运行的查询将被中止。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "套用篩選" + "value" : "確定要終止此工作階段嗎?正在執行的查詢將被中止。" } } } }, - "Apply Filter from Link" : { + "Area" : { "localizations" : { "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "링크의 필터 적용" + "value" : "영역", + "state" : "translated" } }, "tr" : { "stringUnit" : { - "state" : "translated", - "value" : "Bağlantıdan Filtre Uygula" + "value" : "Alan", + "state" : "translated" } }, "vi" : { "stringUnit" : { - "state" : "translated", - "value" : "Áp dụng bộ lọc từ liên kết" + "value" : "Miền", + "state" : "translated" } }, "zh-Hans" : { "stringUnit" : { - "state" : "translated", - "value" : "从链接应用筛选" + "value" : "面积", + "state" : "translated" } }, "zh-Hant" : { "stringUnit" : { - "state" : "translated", - "value" : "從連結套用篩選" + "value" : "面積", + "state" : "translated" } } } }, - "Apply filters" : { - "extractionState" : "stale", + "As Copy" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터 적용" + "value" : "복사본으로" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtreleri uygula" + "value" : "Kopya Olarak" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Áp dụng bộ lọc" + "value" : "Dạng Bản sao" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "应用筛选" + "value" : "作为副本" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "套用篩選" + "value" : "作為副本" } } } }, - "Apply only this filter" : { - "extractionState" : "stale", + "Ask" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 필터만 적용" + "value" : "질문" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yalnızca bu filtreyi uygula" + "value" : "Sor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chỉ áp dụng bộ lọc này" + "value" : "Ask" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "仅应用此筛选" + "value" : "Ask" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "僅套用這個篩選" + "value" : "Ask" } } } }, - "Apply Only This Filter" : { + "Ask AI about your database" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 필터만 적용" + "value" : "AI에게 데이터베이스에 대해 질문" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yalnızca Bu Filtreyi Uygula" + "value" : "Veritabanınız hakkında yapay zekaya sorun" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chỉ áp dụng bộ lọc này" + "value" : "Hỏi AI về cơ sở dữ liệu của bạn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "仅应用此筛选" + "value" : "向 AI 询问您的数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "僅套用此篩選" + "value" : "向 AI 詢問你的資料庫" } } } }, - "Apply Schema Changes" : { + "Ask AI to Fix" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "스키마 변경 사항 적용" + "value" : "AI에게 수정 요청" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Şema Değişikliklerini Uygula" + "value" : "Düzeltmesi için Yapay Zekaya Sor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Áp dụng thay đổi schema" + "value" : "Nhờ AI sửa lỗi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "应用Schema更改" + "value" : "让 AI 修复" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "套用綱要變更" + "value" : "讓 AI 修正" } } } }, - "Apply suggested SQL?" : { + "Ask Each Time" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "제안된 SQL을 적용하시겠습니까?" + "value" : "매번 묻기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Önerilen SQL uygulansın mı?" + "value" : "Her Seferinde Sor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Áp dụng SQL được đề xuất?" + "value" : "Hỏi mỗi lần" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "应用建议的 SQL?" + "value" : "每次询问" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "要套用建議的 SQL 嗎?" + "value" : "每次詢問" } } } }, - "Apply this filter" : { - "extractionState" : "stale", + "Ask about step %d" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 필터 적용" + "value" : "%d단계에 대해 질문" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu filtreyi uygula" + "value" : "%d. adım hakkında soru sor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Áp dụng bộ lọc này" + "value" : "Hỏi về bước %d" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "应用此筛选" + "value" : "询问第 %d 步" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "套用此篩選" + "value" : "詢問第 %d 步" } } } }, - "Apply This Filter" : { - "extractionState" : "stale", + "Ask about this change" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 필터 적용" + "value" : "이 변경 사항에 대해 질문" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu Filtreyi Uygula" + "value" : "Bu değişiklik hakkında soru sor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Áp dụng bộ lọc này" + "value" : "Hỏi về thay đổi này" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "应用此筛选" + "value" : "询问此更改" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "套用此篩選" + "value" : "詢問這項變更" } } } }, - "Apply to %@" : { - - }, - "Apply to Editor" : { + "Ask about this change…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "편집기에 적용" + "value" : "이 변경 사항에 대해 질문…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Düzenleyiciye Uygula" + "value" : "Bu değişiklik hakkında soru sor…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Áp dụng vào trình soạn thảo" + "value" : "Hỏi về thay đổi này…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "应用到编辑器" + "value" : "询问此更改…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "套用到編輯器" + "value" : "詢問這項變更…" } } } }, - "Apply to Target…" : { - - }, - "Apply User and Role Changes" : { + "Ask about your database…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사용자 및 역할 변경 사항 적용" + "value" : "데이터베이스에 대해 질문…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kullanıcı ve Rol Değişikliklerini Uygula" + "value" : "Veritabanınız hakkında sorun…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Áp dụng thay đổi người dùng và vai trò" + "value" : "Hỏi về cơ sở dữ liệu của bạn…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "应用用户和角色更改" + "value" : "询问您的数据库…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "套用使用者與角色變更" + "value" : "詢問關於你的資料庫的問題…" } } } }, - "Apply…" : { - - }, - "Applying or clearing filters will reload data and discard all unsaved changes." : { + "Ask for API token on every connection" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터를 적용하거나 지우면 데이터를 다시 불러오고 저장하지 않은 모든 변경 사항이 폐기됩니다." + "value" : "연결할 때마다 API 토큰 요청" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtre uygulamak veya temizlemek veriyi yeniden yükler ve tüm kaydedilmemiş değişiklikleri siler." + "value" : "Her bağlantıda API anahtarı sor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Áp dụng hoặc xóa bộ lọc sẽ tải lại dữ liệu và hủy tất cả thay đổi chưa lưu." + "value" : "Hỏi mã API mỗi lần kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "应用或清除筛选条件将重新加载数据并丢弃所有未保存的更改。" + "value" : "每次连接时询问 API 令牌" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "套用或清除篩選條件將重新載入資料並捨棄所有未儲存的變更。" + "value" : "每次連線時詢問 API 權杖" } } } }, - "Applying to %@…" : { - - }, - "Approve" : { + "Ask for password on every connection" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "승인" + "value" : "연결할 때마다 암호 요청" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Onayla" + "value" : "Her bağlantıda şifre sor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chấp thuận" + "value" : "Hỏi mật khẩu mỗi lần kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "批准" + "value" : "每次连接时询问密码" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "核准" + "value" : "每次連線時詢問密碼" } } } }, - "Approve Integration" : { + "Ask: read-only schema lookups. AI can browse but not run queries." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "통합 승인" + "value" : "질문: 읽기 전용 스키마 조회만 가능합니다. AI는 탐색할 수 있지만 쿼리를 실행할 수 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Entegrasyonu Onayla" + "value" : "Sor: salt okunur şema sorgulamaları. Yapay zeka göz atabilir ama sorgu çalıştıramaz." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chấp thuận tích hợp" + "value" : "Ask: chỉ tra cứu schema ở chế độ chỉ đọc. AI có thể duyệt nhưng không chạy truy vấn." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "批准集成" + "value" : "Ask:只读Schema查看。AI可以浏览但不能运行查询。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "核准整合" + "value" : "Ask:唯讀的綱要查看。AI 可以瀏覽但不能執行查詢。" } } } }, - "Approximate row count, when requested" : { - - }, - "Are you sure you want to cancel the running query for this session?" : { + "Attach context" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 세션에서 실행 중인 쿼리를 취소하시겠습니까?" + "value" : "컨텍스트 첨부" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu oturumun çalışan sorgusunu iptal etmek istediğinizden emin misiniz?" + "value" : "Bağlam ekle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bạn có chắc muốn huỷ truy vấn đang chạy cho phiên này?" + "value" : "Đính kèm ngữ cảnh" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "确定要取消此会话正在运行的查询吗?" + "value" : "附加上下文" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "確定要取消此工作階段正在執行的查詢嗎?" + "value" : "附加內容" } } } }, - "Are you sure you want to delete \"%@\"?" : { + "Attachments" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "\"%@\"을(를) 삭제하시겠습니까?" + "value" : "첨부 파일" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "\"%@\" öğesini silmek istediğinize emin misiniz?" + "value" : "Ekler" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bạn có chắc muốn xóa \"%@\" không?" + "value" : "Tệp đính kèm" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "确定要删除 \"%@\" 吗?" + "value" : "附件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "確定要刪除「%@」嗎?" + "value" : "附件" } } } }, - "Are you sure you want to delete \"%@\"? Saved queries linked to this connection will also be deleted." : { + "Attributes" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "\"%@\"을(를) 삭제하시겠습니까? 이 연결에 링크된 저장된 쿼리도 삭제됩니다." + "value" : "속성" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "\"%@\" öğesini silmek istediğinizden emin misiniz? Bu bağlantıya bağlı kayıtlı sorgular da silinecek." + "value" : "Öznitelikler" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bạn có chắc muốn xóa \"%@\"? Các truy vấn đã lưu liên kết với kết nối này cũng sẽ bị xóa." + "value" : "Thuộc tính" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "确定要删除“%@”吗?与此连接关联的已保存查询也将被删除。" + "value" : "属性" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "確定要刪除「%@」嗎?與此連線關聯的已儲存查詢也會一併刪除。" + "value" : "屬性" } } } }, - "Are you sure you want to delete %lld connections? Saved queries linked to these connections will also be deleted. This cannot be undone." : { + "Auth" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%lld개의 연결을 삭제하시겠습니까? 이 연결들에 링크된 저장된 쿼리도 삭제됩니다. 이 작업은 취소할 수 없습니다." + "value" : "인증" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%lld bağlantıyı silmek istediğinizden emin misiniz? Bu bağlantılara bağlı kayıtlı sorgular da silinecek. Bu işlem geri alınamaz." + "value" : "Kimlik Doğrulama" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bạn có chắc muốn xóa %lld kết nối? Các truy vấn đã lưu liên kết với những kết nối này cũng sẽ bị xóa. Không thể hoàn tác." + "value" : "Xác thực" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "确定要删除 %lld 个连接吗?与这些连接关联的已保存查询也将被删除。此操作无法撤销。" + "value" : "认证" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "確定要刪除 %lld 個連線嗎?與這些連線關聯的已儲存查詢也會一併刪除。此操作無法復原。" + "value" : "驗證" } } } }, - "Are you sure you want to delete %lld connections? This cannot be undone." : { + "Auth Level" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%lld개의 연결을 삭제하시겠습니까? 이 작업은 취소할 수 없습니다." + "value" : "인증 수준" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%lld bağlantıyı silmek istediğinizden emin misiniz? Bu işlem geri alınamaz." + "value" : "Kimlik Doğrulama Düzeyi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bạn có chắc muốn xóa %lld kết nối? Hành động này không thể hoàn tác." + "value" : "Cấp xác thực" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "确定要删除 %lld 个连接吗?此操作无法撤销。" + "value" : "认证级别" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "確定要刪除 %lld 個連線嗎?此操作無法復原。" + "value" : "驗證層級" } } } }, - "Are you sure you want to delete the group \"%@\"? Connections in this group will be moved to the top level." : { + "Auth Method" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Auth Method" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "\"%@\" 그룹을 삭제하시겠습니까? 이 그룹의 연결은 최상위 수준으로 이동됩니다." + "value" : "인증 방식" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "\"%@\" grubunu silmek istediğinize emin misiniz? Bu gruptaki bağlantılar üst seviyeye taşınacaktır." + "value" : "Kimlik Doğrulama Yöntemi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bạn có chắc muốn xóa nhóm \"%@\"? Các kết nối trong nhóm này sẽ được chuyển lên cấp cao nhất." + "value" : "Phương thức xác thực" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "确定要删除分组 \"%@\" 吗?该分组中的连接将移至顶层。" + "value" : "认证方式" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "確定要刪除群組「%@」嗎?此群組中的連線將移至頂層。" + "value" : "驗證方式" } } } }, - "Are you sure you want to delete this connection? This cannot be undone." : { - "extractionState" : "stale", + "Authenticate to execute database operations" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 연결을 삭제하시겠습니까? 이 작업은 취소할 수 없습니다." + "value" : "데이터베이스 작업을 실행하려면 인증하십시오" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu bağlantıyı silmek istediğinize emin misiniz? Bu işlem geri alınamaz." + "value" : "Veritabanı işlemlerini çalıştırmak için kimlik doğrulayın" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bạn có chắc muốn xóa kết nối này? Thao tác này không thể hoàn tác." + "value" : "Xác thực để thực thi thao tác cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "确定要删除此连接吗?此操作无法撤消。" + "value" : "验证身份以执行数据库操作" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "確定要刪除此連線嗎?此操作無法復原。" + "value" : "驗證身分以執行資料庫操作" } } } }, - "Are you sure you want to disconnect from this database?" : { - "extractionState" : "stale", + "Authenticating %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 데이터베이스와의 연결을 해제하시겠습니까?" + "value" : "%@ 인증 중" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu veritabanından bağlantıyı kesmek istediğinize emin misiniz?" + "value" : "%@ kimliği doğrulanıyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bạn có chắc muốn ngắt kết nối khỏi cơ sở dữ liệu này không?" + "value" : "Đang xác thực %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "确定要断开与此数据库的连接吗?" + "value" : "正在验证 %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "確定要中斷與此資料庫的連線嗎?" + "value" : "正在驗證 %@" } } } }, - "Are you sure you want to execute this query?\n\n%@" : { + "Authentication" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 쿼리를 실행하시겠습니까?\n\n%@" + "value" : "인증" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu sorguyu çalıştırmak istediğinize emin misiniz?\n\n%@" + "value" : "Kimlik Doğrulama" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bạn có chắc chắn muốn thực thi truy vấn này?\n\n%@" + "value" : "Xác thực" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "确定要执行此查询吗?\n\n%@" + "value" : "身份验证" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "確定要執行此查詢嗎?\n\n%@" + "value" : "身分驗證" } } } }, - "Are you sure you want to terminate this session? Any running queries will be aborted." : { + "Authentication Method" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 세션을 종료하시겠습니까? 실행 중인 모든 쿼리가 중단됩니다." + "value" : "인증 방식" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu oturumu sonlandırmak istediğinizden emin misiniz? Çalışan sorgular iptal edilecek." + "value" : "Kimlik doğrulama yöntemi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bạn có chắc muốn kết thúc phiên này? Mọi truy vấn đang chạy sẽ bị huỷ." + "value" : "Phương thức xác thực" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "确定要终止此会话吗?正在运行的查询将被中止。" + "value" : "身份验证方式" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "確定要終止此工作階段嗎?正在執行的查詢將被中止。" + "value" : "身分驗證方式" } } } }, - "Area" : { + "Authentication failed. Check your API key." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "영역" + "value" : "인증에 실패했습니다. API 키를 확인하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Alan" + "value" : "Kimlik doğrulama başarısız. API anahtarınızı kontrol edin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Miền" + "value" : "Xác thực thất bại. Kiểm tra API key của bạn." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "面积" + "value" : "身份验证失败。请检查您的 API key。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "面積" + "value" : "身分驗證失敗。請檢查你的 API key。" } } } }, - "Argument list the engine reports, such as (date), when it reports one" : { - - }, - "Array element scope" : { - - }, - "As Copy" : { + "Authentication failed: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "복사본으로" + "value" : "인증 실패: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kopya Olarak" + "value" : "Kimlik doğrulama başarısız: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dạng Bản sao" + "value" : "Xác thực thất bại: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "作为副本" + "value" : "身份验证失败:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "作為副本" + "value" : "身分驗證失敗:%@" } } } }, - "Ask" : { + "Authentication is required for this operation" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "질문" + "value" : "이 작업에는 인증이 필요합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sor" + "value" : "Bu işlem için kimlik doğrulama gerekiyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ask" + "value" : "Thao tác này yêu cầu xác thực" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Ask" + "value" : "此操作需要身份验证" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Ask" + "value" : "這項操作需要身分驗證" } } } }, - "Ask about step %d" : { + "Authentication required" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%d단계에 대해 질문" + "value" : "인증 필요" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%d. adım hakkında soru sor" + "value" : "Kimlik doğrulama gerekli" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hỏi về bước %d" + "value" : "Yêu cầu xác thực" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "询问第 %d 步" + "value" : "需要认证" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "詢問第 %d 步" + "value" : "需要身分驗證" } } } }, - "Ask about this change" : { + "Authentication required to execute operations" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 변경 사항에 대해 질문" + "value" : "작업을 실행하려면 인증이 필요합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu değişiklik hakkında soru sor" + "value" : "İşlemleri çalıştırmak için kimlik doğrulama gerekli" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hỏi về thay đổi này" + "value" : "Cần xác thực để thực thi thao tác" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "询问此更改" + "value" : "执行操作需要身份验证" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "詢問這項變更" + "value" : "執行操作需要身分驗證" } } } }, - "Ask about this change…" : { + "Authentication required to execute write operations" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 변경 사항에 대해 질문…" + "value" : "쓰기 작업을 실행하려면 인증이 필요합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu değişiklik hakkında soru sor…" + "value" : "Yazma işlemlerini çalıştırmak için kimlik doğrulama gerekli" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hỏi về thay đổi này…" + "value" : "Cần xác thực để thực thi thao tác ghi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "询问此更改…" + "value" : "执行写入操作需要身份验证" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "詢問這項變更…" + "value" : "執行寫入操作需要身分驗證" } } } }, - "Ask about your database…" : { + "Author" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스에 대해 질문…" + "value" : "작성자" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanınız hakkında sorun…" + "value" : "Yazar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hỏi về cơ sở dữ liệu của bạn…" + "value" : "Tác giả" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "询问您的数据库…" + "value" : "作者" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "詢問關於你的資料庫的問題…" + "value" : "作者" } } } }, - "Ask AI about your database" : { + "Auto" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "AI에게 데이터베이스에 대해 질문" + "value" : "자동" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanınız hakkında yapay zekaya sorun" + "value" : "Otomatik" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hỏi AI về cơ sở dữ liệu của bạn" + "value" : "Tự động" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "向 AI 询问您的数据库" + "value" : "自动" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "向 AI 詢問你的資料庫" + "value" : "自動" } } } }, - "Ask AI to Fix" : { - "extractionState" : "stale", + "Auto Generate" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "AI에게 수정 요청" + "value" : "자동 생성" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Düzeltmesi için Yapay Zekaya Sor" + "value" : "Otomatik Oluştur" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhờ AI sửa lỗi" + "value" : "Tự động tạo" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "让 AI 修复" + "value" : "自动生成" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "讓 AI 修正" + "value" : "自動產生" } } } }, - "Ask Each Time" : { + "Auto Inc" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "매번 묻기" + "value" : "자동 증가" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Her Seferinde Sor" + "value" : "Oto Artış" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hỏi mỗi lần" + "value" : "Tự tăng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "每次询问" + "value" : "自增" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "每次詢問" + "value" : "自動遞增" } } } }, - "Ask for API token on every connection" : { - "extractionState" : "stale", + "Auto Increment" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결할 때마다 API 토큰 요청" + "value" : "자동 증가" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Her bağlantıda API anahtarı sor" + "value" : "Otomatik Artış" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hỏi mã API mỗi lần kết nối" + "value" : "Tự động tăng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "每次连接时询问 API 令牌" + "value" : "自动递增" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "每次連線時詢問 API 權杖" + "value" : "自動遞增" } } } }, - "Ask for password on every connection" : { - "extractionState" : "stale", + "Auto cleanup" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결할 때마다 암호 요청" + "value" : "자동 정리" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Her bağlantıda şifre sor" + "value" : "Otomatik temizleme" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hỏi mật khẩu mỗi lần kết nối" + "value" : "Tự động dọn dẹp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "每次连接时询问密码" + "value" : "自动清理" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "每次連線時詢問密碼" + "value" : "自動清理" } } } }, - "Ask the engine for the plan of a statement and return both the raw plan text and, where TablePro can parse it, a node tree with costs and row estimates. Setting 'analyze' runs the statement for real, so an analyzed write needs tools:write and Safe Mode approval." : { - - }, - "Ask: read-only schema lookups. AI can browse but not run queries." : { + "Auto cleanup on startup" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "질문: 읽기 전용 스키마 조회만 가능합니다. AI는 탐색할 수 있지만 쿼리를 실행할 수 없습니다." + "value" : "시작 시 자동 정리" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sor: salt okunur şema sorgulamaları. Yapay zeka göz atabilir ama sorgu çalıştıramaz." + "value" : "Başlangıçta otomatik temizlik" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ask: chỉ tra cứu schema ở chế độ chỉ đọc. AI có thể duyệt nhưng không chạy truy vấn." + "value" : "Tự động dọn dẹp khi khởi động" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Ask:只读Schema查看。AI可以浏览但不能运行查询。" + "value" : "启动时自动清理" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Ask:唯讀的綱要查看。AI 可以瀏覽但不能執行查詢。" + "value" : "啟動時自動清理" } } } }, - "Attach context" : { + "Auto-detects from ~/.ssh/config and default key locations." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "컨텍스트 첨부" + "value" : "~/.ssh/config 및 기본 키 위치에서 자동으로 감지합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlam ekle" + "value" : "~/.ssh/config ve varsayılan anahtar konumlarından otomatik algılanır." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đính kèm ngữ cảnh" + "value" : "Tự động phát hiện từ ~/.ssh/config và các vị trí key mặc định." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "附加上下文" + "value" : "自动从 ~/.ssh/config 和默认密钥位置检测。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "附加內容" + "value" : "自動從 ~/.ssh/config 和預設金鑰位置偵測。" } } } }, - "Attachments" : { + "Auto-increment seed" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "자동 증가 시작값", + "state" : "translated" + } + } + } + }, + "Auto-indent" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "첨부 파일" + "value" : "자동 들여쓰기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ekler" + "value" : "Otomatik girinti" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tệp đính kèm" + "value" : "Tự động thụt lề" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "附件" + "value" : "自动缩进" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "附件" + "value" : "自動縮排" } } } }, - "Attribute key" : { - - }, - "Attribute label" : { - - }, - "Attributes" : { + "Auto-show inspector on row select" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "속성" + "value" : "행 선택 시 인스펙터 자동 표시" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Öznitelikler" + "value" : "Satır seçiminde denetçiyi otomatik göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thuộc tính" + "value" : "Tự động hiện thanh kiểm tra khi chọn dòng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "属性" + "value" : "选中行时自动显示检查器" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "屬性" + "value" : "選取列時自動顯示檢閱器" } } } }, - "Audience" : { - - }, - "Auth" : { + "Auto-uppercase keywords" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "인증" + "value" : "키워드 자동 대문자 변환" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kimlik Doğrulama" + "value" : "Anahtar kelimeleri otomatik büyük yaz" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xác thực" + "value" : "Tự động viết hoa từ khóa" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "认证" + "value" : "自动大写关键字" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "驗證" + "value" : "關鍵字自動轉大寫" } } } }, - "Auth Level" : { + "Automatic" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "인증 수준" + "value" : "자동" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kimlik Doğrulama Düzeyi" + "value" : "Otomatik" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cấp xác thực" + "value" : "Tự động" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "认证级别" + "value" : "自动" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "驗證層級" + "value" : "自動" } } } }, - "Auth Method" : { + "Automatically check for updates" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Auth Method" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "인증 방식" + "value" : "업데이트 자동 확인" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kimlik Doğrulama Yöntemi" + "value" : "Güncellemeleri otomatik kontrol et" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phương thức xác thực" + "value" : "Tự động kiểm tra cập nhật" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "认证方式" + "value" : "自动检查更新" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "驗證方式" + "value" : "自動檢查更新" } } } }, - "Authenticate to execute database operations" : { + "Available after SET ROLE %@." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 작업을 실행하려면 인증하십시오" + "value" : "SET ROLE %@ 후 사용할 수 있습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı işlemlerini çalıştırmak için kimlik doğrulayın" + "value" : "SET ROLE %@ sonrasında kullanılabilir." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xác thực để thực thi thao tác cơ sở dữ liệu" + "value" : "Có sẵn sau khi SET ROLE %@." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "验证身份以执行数据库操作" + "value" : "执行 SET ROLE %@ 后可用。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "驗證身分以執行資料庫操作" + "value" : "執行 SET ROLE %@ 後可用。" } } } }, - "Authenticating %@" : { + "Available in all connections" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 인증 중" + "value" : "모든 연결에서 사용 가능" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ kimliği doğrulanıyor" + "value" : "Tüm bağlantılarda kullanılabilir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang xác thực %@" + "value" : "Có trong mọi kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在验证 %@" + "value" : "在所有连接中可用" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在驗證 %@" + "value" : "在所有連線中可用" } } } }, - "Authentication" : { + "Average" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "인증" + "value" : "평균" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kimlik Doğrulama" + "value" : "Ortalama" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xác thực" + "value" : "Trung bình" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "身份验证" + "value" : "平均" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "身分驗證" + "value" : "平均" } } } }, - "Authentication failed: %@" : { + "Average Time" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "인증 실패: %@" + "value" : "평균 시간" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kimlik doğrulama başarısız: %@" + "value" : "Ortalama Süre" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xác thực thất bại: %@" + "value" : "Thời gian trung bình" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "身份验证失败:%@" + "value" : "平均耗时" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "身分驗證失敗:%@" + "value" : "平均耗時" } } } }, - "Authentication failed. Check your API key." : { + "Avg Row" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "인증에 실패했습니다. API 키를 확인하십시오." + "value" : "평균 행" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kimlik doğrulama başarısız. API anahtarınızı kontrol edin." + "value" : "Ort. Satır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xác thực thất bại. Kiểm tra API key của bạn." + "value" : "TB dòng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "身份验证失败。请检查您的 API key。" + "value" : "平均行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "身分驗證失敗。請檢查你的 API key。" + "value" : "平均列" } } } }, - "Authentication is required for this operation" : { + "Back" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 작업에는 인증이 필요합니다" + "value" : "뒤로" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu işlem için kimlik doğrulama gerekiyor" + "value" : "Geri" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thao tác này yêu cầu xác thực" + "value" : "Quay lại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此操作需要身份验证" + "value" : "返回" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "這項操作需要身分驗證" + "value" : "返回" } } } }, - "Authentication Method" : { + "Background" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "인증 방식" + "value" : "배경" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kimlik doğrulama yöntemi" + "value" : "Arka Plan" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phương thức xác thực" + "value" : "Nền" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "身份验证方式" + "value" : "背景" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "身分驗證方式" + "value" : "背景" } } } }, - "Authentication required" : { + "Backslash \\" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "인증 필요" + "value" : "백슬래시 \\" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kimlik doğrulama gerekli" + "value" : "Ters Eğik Çizgi \\" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Yêu cầu xác thực" + "value" : "Gạch chéo ngược \\" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "需要认证" + "value" : "反斜杠 \\" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "需要身分驗證" + "value" : "反斜線 \\" } } } }, - "Authentication required to execute operations" : { - "extractionState" : "stale", + "Backup Database" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "작업을 실행하려면 인증이 필요합니다" + "value" : "데이터베이스 백업" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İşlemleri çalıştırmak için kimlik doğrulama gerekli" + "value" : "Veritabanını Yedekle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cần xác thực để thực thi thao tác" + "value" : "Sao lưu cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "执行操作需要身份验证" + "value" : "备份数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "執行操作需要身分驗證" + "value" : "備份資料庫" } } } }, - "Authentication required to execute write operations" : { + "Backup Dump Cancelled" : { + "comment" : "A title for a backup result sheet that was cancelled.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쓰기 작업을 실행하려면 인증이 필요합니다" + "value" : "백업 덤프 취소됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yazma işlemlerini çalıştırmak için kimlik doğrulama gerekli" + "value" : "Yedek dökümü iptal edildi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cần xác thực để thực thi thao tác ghi" + "value" : "Đã hủy dump sao lưu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "执行写入操作需要身份验证" + "value" : "备份转储已取消" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "執行寫入操作需要身分驗證" + "value" : "資料庫備份已取消" } } } }, - "Author" : { + "Backup Dump Complete" : { + "comment" : "A title for a backup result sheet when the backup was successful.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "작성자" + "value" : "백업 덤프 완료" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yazar" + "value" : "Yedek dökümü tamamlandı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tác giả" + "value" : "Hoàn tất dump sao lưu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "作者" + "value" : "备份转储完成" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "作者" + "value" : "資料庫備份完成" } } } }, - "Auto" : { + "Backup Dump Failed" : { + "comment" : "A title for a backup result sheet when the backup failed.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "자동" + "value" : "백업 덤프 실패" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Otomatik" + "value" : "Yedek dökümü başarısız oldu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tự động" + "value" : "Dump sao lưu thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "自动" + "value" : "备份转储失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "自動" + "value" : "資料庫備份失敗" } } } }, - "AUTO" : { + "Backup Dump…" : { + "comment" : "A button that triggers a backup dump.", "extractionState" : "stale", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "자동" + "value" : "백업 덤프…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "OTO" + "value" : "Yedek Dökümü…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "TỰ ĐỘNG" + "value" : "Dump sao lưu…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "自动" + "value" : "备份转储…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "自動" + "value" : "正在備份資料庫…" } } } }, - "Auto cleanup" : { + "Badge Background" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "자동 정리" + "value" : "배지 배경" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Otomatik temizleme" + "value" : "Rozet Arka Planı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tự động dọn dẹp" + "value" : "Nền huy hiệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "自动清理" + "value" : "徽章背景" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "自動清理" + "value" : "標記背景" } } } }, - "Auto cleanup on startup" : { - "extractionState" : "stale", + "Badges" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "시작 시 자동 정리" + "value" : "배지" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Başlangıçta otomatik temizlik" + "value" : "Rozetler" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tự động dọn dẹp khi khởi động" + "value" : "Huy hiệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "启动时自动清理" + "value" : "徽章" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "啟動時自動清理" + "value" : "徽章" } } } }, - "Auto Generate" : { + "Bar" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "자동 생성" + "value" : "막대" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Otomatik Oluştur" + "value" : "Çubuk" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tự động tạo" + "value" : "Thanh" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "自动生成" + "value" : "条形" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "自動產生" + "value" : "長條" } } } }, - "Auto Inc" : { - "extractionState" : "stale", + "Base32-encoded secret from your authenticator setup" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "자동 증가" + "value" : "인증 앱 설정의 Base32 인코딩 비밀 키" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Oto Artış" + "value" : "Authenticator kurulumunuzdaki Base32 kodlu gizli anahtar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tự tăng" + "value" : "Mã bí mật mã hóa Base32 từ thiết lập xác thực của bạn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "自增" + "value" : "来自身份验证器设置的 Base32 编码密钥" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "自動遞增" + "value" : "來自你的驗證器設定的 Base32 編碼金鑰" } } } }, - "Auto Increment" : { + "Between %@ and %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "자동 증가" + "value" : "%@에서 %@ 사이" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Otomatik Artış" + "value" : "%@ ile %@ arasında" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tự động tăng" + "value" : "Từ %@ đến %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "自动递增" + "value" : "介于 %@ 和 %@ 之间" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "自動遞增" + "value" : "介於 %@ 和 %@ 之間" } } } }, - "Auto-detects from ~/.ssh/config and default key locations." : { + "Billing:" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Billing:" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "~/.ssh/config 및 기본 키 위치에서 자동으로 감지합니다." + "value" : "결제:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "~/.ssh/config ve varsayılan anahtar konumlarından otomatik algılanır." + "value" : "Faturalandırma:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tự động phát hiện từ ~/.ssh/config và các vị trí key mặc định." + "value" : "Thanh toán:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "自动从 ~/.ssh/config 和默认密钥位置检测。" + "value" : "账单:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "自動從 ~/.ssh/config 和預設金鑰位置偵測。" + "value" : "帳單:" } } } }, - "Auto-increment seed" : { - + "Binary content" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "이진 콘텐츠", + "state" : "translated" + } + } + } }, - "Auto-indent" : { + "Block" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "자동 들여쓰기" + "value" : "블록" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Otomatik girinti" + "value" : "Blok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tự động thụt lề" + "value" : "Khối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "自动缩进" + "value" : "块状" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "自動縮排" + "value" : "區塊" } } } }, - "Auto-show inspector on row select" : { + "Block Size" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "행 선택 시 인스펙터 자동 표시" + "value" : "블록 크기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satır seçiminde denetçiyi otomatik göster" + "value" : "Blok Boyutu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tự động hiện thanh kiểm tra khi chọn dòng" + "value" : "Kích thước khối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选中行时自动显示检查器" + "value" : "块大小" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選取列時自動顯示檢閱器" + "value" : "區塊大小" } } } }, - "Auto-uppercase keywords" : { + "Blocked" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "키워드 자동 대문자 변환" + "value" : "차단됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Anahtar kelimeleri otomatik büyük yaz" + "value" : "Engellendi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tự động viết hoa từ khóa" + "value" : "Đã chặn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "自动大写关键字" + "value" : "已阻止" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "關鍵字自動轉大寫" + "value" : "已封鎖" } } } }, - "Automatic" : { + "Blue" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "자동" + "value" : "파란색" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Otomatik" + "value" : "Mavi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tự động" + "value" : "Xanh dương" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "自动" + "value" : "蓝色" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "自動" + "value" : "藍色" } } } }, - "Automatically check for updates" : { + "Body" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "업데이트 자동 확인" + "value" : "본문" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Güncellemeleri otomatik kontrol et" + "value" : "Gövde" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tự động kiểm tra cập nhật" + "value" : "Nội dung" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "自动检查更新" + "value" : "正文" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "自動檢查更新" + "value" : "內文" } } } }, - "Available after SET ROLE %@." : { + "Bool False" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SET ROLE %@ 후 사용할 수 있습니다." + "value" : "불리언 False" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SET ROLE %@ sonrasında kullanılabilir." + "value" : "Bool Yanlış" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Có sẵn sau khi SET ROLE %@." + "value" : "Bool False" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "执行 SET ROLE %@ 后可用。" + "value" : "布尔值 False" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "執行 SET ROLE %@ 後可用。" + "value" : "布林值 False" } } } }, - "Available in all connections" : { + "Bool True" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 연결에서 사용 가능" + "value" : "불리언 True" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm bağlantılarda kullanılabilir" + "value" : "Bool Doğru" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Có trong mọi kết nối" + "value" : "Bool True" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在所有连接中可用" + "value" : "布尔值 True" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在所有連線中可用" + "value" : "布林值 True" } } } }, - "Average" : { + "Boolean" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "평균" + "value" : "불리언" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ortalama" + "value" : "Boolean" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trung bình" + "value" : "Boolean" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "平均" + "value" : "布尔值" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "平均" + "value" : "布林值" } } } }, - "Average row length" : { - - }, - "Average Time" : { + "Border" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "평균 시간" + "value" : "테두리" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ortalama Süre" + "value" : "Kenarlık" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thời gian trung bình" + "value" : "Viền" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "平均耗时" + "value" : "边框" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "平均耗時" + "value" : "邊框" } } } }, - "avg %@" : { - "comment" : "Average duration, %@ is a duration", + "Brief summary of the issue" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "평균 %@" + "value" : "문제에 대한 간략한 요약" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "ort. %@" + "value" : "Sorunun kısa özeti" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "trung bình %@" + "value" : "Tóm tắt ngắn gọn về vấn đề" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "平均 %@" + "value" : "问题的简要描述" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "平均 %@" + "value" : "問題的簡要說明" } } } }, - "Avg Row" : { + "Bring All to Front" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "평균 행" + "value" : "모두 앞으로 가져오기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ort. Satır" + "value" : "Tümünü Öne Getir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "TB dòng" + "value" : "Đưa tất cả ra phía trước" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "平均行" + "value" : "全部置于最前" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "平均列" + "value" : "全部移至最前" } } } }, - "AWS managed key-value/document store" : { + "Browse" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "AWS 관리형 키-값/문서 저장소" + "value" : "찾아보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "AWS'nin yönettiği anahtar-değer/belge deposu" + "value" : "Gözat" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kho key-value/tài liệu do AWS quản lý" + "value" : "Duyệt" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "AWS托管的键值/文档存储" + "value" : "浏览" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "AWS 託管的鍵值/文件儲存" + "value" : "瀏覽" } } } }, - "AWS Region" : { + "Browse, edit, and manage your data with ease" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "AWS Region" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "AWS 리전" + "value" : "데이터를 간편하게 탐색, 편집 및 관리" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "AWS Bölgesi" + "value" : "Verilerinizi kolayca görüntüleyin, düzenleyin ve yönetin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "AWS Region" + "value" : "Duyệt, chỉnh sửa và quản lý dữ liệu dễ dàng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "AWS 区域" + "value" : "轻松浏览、编辑和管理数据" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "AWS 區域" + "value" : "輕鬆瀏覽、編輯和管理你的資料" } } } }, - "AWS SSO Sign-In Failed" : { + "Browser Sign-In" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "AWS SSO 로그인 실패" + "value" : "브라우저 로그인" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "AWS SSO oturumu açılamadı" + "value" : "Tarayıcıyla oturum açma" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đăng nhập AWS SSO thất bại" + "value" : "Đăng nhập bằng trình duyệt" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "AWS SSO登录失败" + "value" : "浏览器登录" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "AWS SSO 登入失敗" + "value" : "瀏覽器登入" } } } }, - "AWS SSO sign-in finished. Test the connection again." : { + "Browse…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "AWS SSO 로그인이 완료되었습니다. 연결을 다시 테스트하십시오." + "value" : "찾아보기…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "AWS SSO oturum açma tamamlandı. Bağlantıyı yeniden test edin." + "value" : "Gözat…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã hoàn tất đăng nhập AWS SSO. Hãy kiểm tra lại kết nối." + "value" : "Duyệt…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "AWS SSO登录已完成。请再次测试连接。" + "value" : "浏览…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "AWS SSO 登入已完成。請再次測試連線。" + "value" : "瀏覽…" } } } }, - "AWS SSO Sign-In Required" : { + "Build the SQL that brings the target in line" : { "localizations" : { "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "AWS SSO 로그인 필요" + "value" : "대상을 맞추는 SQL 생성", + "state" : "translated" + } + } + } + }, + "Building chart" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "차트 생성 중", + "state" : "translated" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "AWS SSO ile oturum açma gerekli" + "value" : "Grafik oluşturuluyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Yêu cầu đăng nhập AWS SSO" + "value" : "Đang tạo biểu đồ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "需要AWS SSO登录" + "value" : "正在生成图表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "需要 AWS SSO 登入" + "value" : "正在產生圖表" } } } }, - "Back" : { + "Built-in" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "뒤로" + "value" : "내장" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geri" + "value" : "Yerleşik" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Quay lại" + "value" : "Tích hợp sẵn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "返回" + "value" : "内置" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "返回" + "value" : "內建" } } } }, - "Background" : { + "Built-in CLI" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "배경" + "value" : "내장 CLI" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Arka Plan" + "value" : "Yerleşik CLI" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nền" + "value" : "CLI tích hợp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "背景" + "value" : "内置 CLI" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "背景" + "value" : "內建 CLI" } } } }, - "Backslash \\" : { + "Built-in plugins cannot be uninstalled" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "백슬래시 \\" + "value" : "내장 플러그인은 제거할 수 없습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ters Eğik Çizgi \\" + "value" : "Yerleşik eklentiler kaldırılamaz" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gạch chéo ngược \\" + "value" : "Không thể gỡ cài đặt plugin tích hợp sẵn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "反斜杠 \\" + "value" : "无法卸载内置插件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "反斜線 \\" + "value" : "無法解除安裝內建外掛" } } } }, - "Backup Database" : { + "Bulk actions" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 백업" + "value" : "일괄 작업" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanını Yedekle" + "value" : "Toplu işlemler" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao lưu cơ sở dữ liệu" + "value" : "Thao tác hàng loạt" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "备份数据库" + "value" : "批量操作" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "備份資料庫" + "value" : "批次操作" } } } }, - "Backup Dump Cancelled" : { - "comment" : "A title for a backup result sheet that was cancelled.", - "isCommentAutoGenerated" : true, + "Bundle ID" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "백업 덤프 취소됨" + "value" : "Bundle ID" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yedek dökümü iptal edildi" + "value" : "Paket Kimliği" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã hủy dump sao lưu" + "value" : "Bundle ID" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "备份转储已取消" + "value" : "Bundle ID" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料庫備份已取消" + "value" : "Bundle ID" } } } }, - "Backup Dump Complete" : { - "comment" : "A title for a backup result sheet when the backup was successful.", - "isCommentAutoGenerated" : true, + "Bundle ID:" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "백업 덤프 완료" + "value" : "Bundle ID:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yedek dökümü tamamlandı" + "value" : "Paket Kimliği:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hoàn tất dump sao lưu" + "value" : "Bundle ID:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "备份转储完成" + "value" : "Bundle ID:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料庫備份完成" + "value" : "Bundle ID:" } } } }, - "Backup Dump Failed" : { - "comment" : "A title for a backup result sheet when the backup failed.", - "isCommentAutoGenerated" : true, + "Bytes Received" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "백업 덤프 실패" + "value" : "수신 바이트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yedek dökümü başarısız oldu" + "value" : "Alınan Bayt" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dump sao lưu thất bại" + "value" : "Byte nhận" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "备份转储失败" + "value" : "接收字节" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料庫備份失敗" + "value" : "接收位元組" } } } }, - "Backup Dump…" : { - "comment" : "A button that triggers a backup dump.", - "isCommentAutoGenerated" : true, + "Bytes Sent" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "백업 덤프…" + "value" : "송신 바이트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yedek Dökümü…" + "value" : "Gönderilen Bayt" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dump sao lưu…" + "value" : "Byte gửi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "备份转储…" + "value" : "发送字节" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在備份資料庫…" + "value" : "傳送位元組" } } } }, - "Backup finished" : { - - }, - "Backups" : { - - }, - "Badge Background" : { + "C++ rewrite of Cassandra, faster" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "배지 배경" + "value" : "Cassandra를 C++로 재작성한 더 빠른 데이터베이스" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Rozet Arka Planı" + "value" : "Cassandra'nın C++ ile yeniden yazımı, daha hızlı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nền huy hiệu" + "value" : "Bản viết lại Cassandra bằng C++, nhanh hơn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "徽章背景" + "value" : "Cassandra的C++重写版,速度更快" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "標記背景" + "value" : "Cassandra 的 C++ 重寫版,速度更快" } } } }, - "Badges" : { + "CA Cert" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "배지" + "value" : "CA 인증서" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Rozetler" + "value" : "CA Sertifikası" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Huy hiệu" + "value" : "Chứng chỉ CA" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "徽章" + "value" : "CA 证书" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "徽章" + "value" : "CA 憑證" } } } }, - "Bar" : { + "CA Certificate" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "막대" + "value" : "CA 인증서" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Çubuk" + "value" : "CA Sertifikası" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thanh" + "value" : "Chứng chỉ CA" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "条形" + "value" : "CA 证书" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "長條" + "value" : "CA 憑證" } } } }, - "Base32-encoded secret from your authenticator setup" : { + "CA certificate is required for verification modes" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "인증 앱 설정의 Base32 인코딩 비밀 키" + "value" : "검증 모드에는 CA 인증서가 필요합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Authenticator kurulumunuzdaki Base32 kodlu gizli anahtar" + "value" : "Doğrulama modları için CA sertifikası gerekli" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mã bí mật mã hóa Base32 từ thiết lập xác thực của bạn" + "value" : "Cần chứng chỉ CA cho các chế độ xác minh" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "来自身份验证器设置的 Base32 编码密钥" + "value" : "验证模式需要CA证书" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "來自你的驗證器設定的 Base32 編碼金鑰" + "value" : "驗證模式需要 CA 憑證" } } } }, - "bastion.example.com" : { + "CA certificate not found: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "bastion.example.com" + "value" : "CA 인증서를 찾을 수 없습니다: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "bastion.example.com" + "value" : "CA sertifikası bulunamadı: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "bastion.example.com" + "value" : "Không tìm thấy chứng chỉ CA: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "bastion.example.com" + "value" : "未找到CA证书:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "bastion.example.com" + "value" : "找不到 CA 憑證:%@" } } } }, - "BEFORE, AFTER, or INSTEAD OF" : { - - }, - "Begin, commit, or roll back a transaction on the connection's shared session. The transaction stays open across calls until committed or rolled back, and it is the same session the user's own tabs run on, so leave nothing open. Needs tools:write." : { - - }, - "between" : { + "CHANGED" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사이" + "value" : "변경됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "between" + "value" : "DEĞİŞTİRİLDİ" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "giữa" + "value" : "ĐÃ THAY ĐỔI" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "介于" + "value" : "已更改" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "介於" + "value" : "已變更" } } } }, - "Between %@ and %@" : { + "CLI Connection Name" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@에서 %@ 사이" + "value" : "CLI 연결 이름" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ ile %@ arasında" + "value" : "CLI bağlantı adı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Từ %@ đến %@" + "value" : "Tên kết nối CLI" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "介于 %@ 和 %@ 之间" + "value" : "CLI连接名称" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "介於 %@ 和 %@ 之間" + "value" : "CLI 連線名稱" } } } }, - "Billing:" : { + "CLI Paths" : { + "extractionState" : "stale", "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Billing:" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "결제:" + "value" : "CLI 경로" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Faturalandırma:" + "value" : "CLI Yolları" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thanh toán:" + "value" : "Đường dẫn CLI" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "账单:" + "value" : "CLI 路径" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "帳單:" + "value" : "CLI 路徑" } } } }, - "Binary content" : { - - }, - "Block" : { + "CLI tool \"%@\" not found in PATH" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "블록" + "value" : "PATH에서 CLI 도구 \"%@\"을(를) 찾을 수 없습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Blok" + "value" : "CLI aracı \"%@\" PATH içinde bulunamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khối" + "value" : "Không tìm thấy công cụ CLI \"%@\" trong PATH" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "块状" + "value" : "在 PATH 中未找到 CLI 工具 \"%@\"" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "區塊" + "value" : "在 PATH 中找不到 CLI 工具「%@」" } } } }, - "Block Size" : { + "CMD" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "블록 크기" + "value" : "CMD" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Blok Boyutu" + "value" : "CMD" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kích thước khối" + "value" : "CMD" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "块大小" + "value" : "CMD" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "區塊大小" + "value" : "CMD" } } } }, - "Blocked" : { + "COMMENT" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "차단됨" + "value" : "COMMENT" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Engellendi" + "value" : "COMMENT" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã chặn" + "value" : "COMMENT" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已阻止" + "value" : "COMMENT" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已封鎖" + "value" : "COMMENT" } } } }, - "Blue" : { + "CREATE statement" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "CREATE 구문", + "state" : "translated" + } + } + } + }, + "CRITICAL: Transaction rollback failed - database may be in inconsistent state: %@" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "파란색" + "value" : "심각: 트랜잭션 롤백 실패 - 데이터베이스가 일관되지 않은 상태일 수 있음: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Mavi" + "value" : "CRITICAL: Transaction rollback failed - database may be giriş inconsistent state: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xanh dương" + "value" : "NGHIÊM TRỌNG: Hoàn tác giao dịch thất bại - cơ sở dữ liệu có thể ở trạng thái không nhất quán: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "蓝色" + "value" : "严重:事务回滚失败 - 数据库可能处于不一致状态:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "藍色" + "value" : "嚴重:交易還原失敗 - 資料庫可能處於不一致狀態:%@" } } } }, - "Body" : { - "extractionState" : "stale", + "CSV" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "본문" + "value" : "CSV" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Gövde" + "value" : "CSV" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nội dung" + "value" : "CSV" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正文" + "value" : "CSV" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "內文" + "value" : "CSV" } } } }, - "Bool False" : { + "CSV Properties" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "불리언 False" + "value" : "CSV 속성" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bool Yanlış" + "value" : "CSV Özellikleri" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bool False" + "value" : "Thuộc tính CSV" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "布尔值 False" + "value" : "CSV 属性" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "布林值 False" + "value" : "CSV 屬性" } } } }, - "Bool True" : { + "CSV with Headers" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "불리언 True" + "value" : "헤더 포함 CSV" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bool Doğru" + "value" : "Başlıklı CSV" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bool True" + "value" : "CSV kèm tiêu đề" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "布尔值 True" + "value" : "带标题行的 CSV" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "布林值 True" + "value" : "含標題列的 CSV" } } } }, - "Boolean" : { + "CSV/JSON Editing" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "불리언" + "value" : "CSV/JSON 편집" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Boolean" + "value" : "CSV/JSON Düzenleme" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Boolean" + "value" : "Chỉnh sửa CSV/JSON" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "布尔值" + "value" : "CSV/JSON 编辑" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "布林值" + "value" : "CSV/JSON 編輯" } } } }, - "Border" : { + "CURDATE()" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테두리" + "value" : "CURDATE()" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kenarlık" + "value" : "CURDATE()" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Viền" + "value" : "CURDATE()" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "边框" + "value" : "CURDATE()" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "邊框" + "value" : "CURDATE()" } } } }, - "Brief summary of the issue" : { + "CURRENT_TIMESTAMP()" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "문제에 대한 간략한 요약" + "value" : "CURRENT_TIMESTAMP()" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorunun kısa özeti" + "value" : "CURRENT_TIMESTAMP()" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tóm tắt ngắn gọn về vấn đề" + "value" : "CURRENT_TIMESTAMP()" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "问题的简要描述" + "value" : "CURRENT_TIMESTAMP()" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "問題的簡要說明" + "value" : "CURRENT_TIMESTAMP()" } } } }, - "Bring All to Front" : { + "CURTIME()" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모두 앞으로 가져오기" + "value" : "CURTIME()" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tümünü Öne Getir" + "value" : "CURTIME()" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đưa tất cả ra phía trước" + "value" : "CURTIME()" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "全部置于最前" + "value" : "CURTIME()" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "全部移至最前" + "value" : "CURTIME()" } } } }, - "Bring an open tab to the front, using a tab id from list_recent_tabs." : { - - }, - "Browse" : { + "Cache Hit Ratio" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "찾아보기" + "value" : "캐시 적중률" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Gözat" + "value" : "Önbellek İsabet Oranı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Duyệt" + "value" : "Tỷ lệ trúng cache" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "浏览" + "value" : "缓存命中率" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "瀏覽" + "value" : "快取命中率" } } } }, - "Browse Table" : { - - }, - "Browse, edit, and manage your data with ease" : { + "Cache Size" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터를 간편하게 탐색, 편집 및 관리" + "value" : "캐시 크기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Verilerinizi kolayca görüntüleyin, düzenleyin ve yönetin" + "value" : "Önbellek Boyutu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Duyệt, chỉnh sửa và quản lý dữ liệu dễ dàng" + "value" : "Kích thước cache" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "轻松浏览、编辑和管理数据" + "value" : "缓存大小" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "輕鬆瀏覽、編輯和管理你的資料" + "value" : "快取大小" } } } }, - "Browse…" : { + "Calling" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "찾아보기…" + "value" : "호출 중" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Gözat…" + "value" : "Çağrılıyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Duyệt…" + "value" : "Đang gọi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "浏览…" + "value" : "调用中" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "瀏覽…" + "value" : "呼叫中" } } } }, - "Browser Sign-In" : { + "Can grant these privileges to others." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "브라우저 로그인" + "value" : "이 권한을 다른 사용자에게 부여할 수 있습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tarayıcıyla oturum açma" + "value" : "Bu yetkileri başkalarına verebilir." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đăng nhập bằng trình duyệt" + "value" : "Có thể cấp các quyền này cho người khác." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "浏览器登录" + "value" : "可以将这些权限授予他人。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "瀏覽器登入" + "value" : "可以將這些權限授予他人。" } } } }, - "Build the SQL that brings the target in line" : { - - }, - "Building chart" : { + "Can grant to others" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "차트 생성 중" + "value" : "다른 사용자에게 부여 가능" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Grafik oluşturuluyor" + "value" : "Başkalarına verebilir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang tạo biểu đồ" + "value" : "Có thể cấp cho người khác" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在生成图表" + "value" : "可授予他人" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在產生圖表" + "value" : "可授予他人" } } } }, - "Built-in" : { + "Can log in" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "내장" + "value" : "로그인 가능" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yerleşik" + "value" : "Oturum açabilir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tích hợp sẵn" + "value" : "Có thể đăng nhập" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "内置" + "value" : "可以登录" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "內建" + "value" : "可以登入" } } } }, - "Built-in CLI" : { + "Cancel" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "내장 CLI" + "value" : "취소" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yerleşik CLI" + "value" : "İptal" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "CLI tích hợp" + "value" : "Hủy" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "内置 CLI" + "value" : "取消" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "內建 CLI" + "value" : "取消" } } } }, - "Built-in plugins cannot be uninstalled" : { + "Cancel Backup Dump" : { + "comment" : "A button that cancels a backup.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "내장 플러그인은 제거할 수 없습니다" + "value" : "백업 덤프 취소" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yerleşik eklentiler kaldırılamaz" + "value" : "Yedek Dökümünü İptal Et" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể gỡ cài đặt plugin tích hợp sẵn" + "value" : "Hủy dump sao lưu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法卸载内置插件" + "value" : "取消备份转储" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法解除安裝內建外掛" + "value" : "取消資料庫備份" } } } }, - "Bulk actions" : { + "Cancel Backup Dump?" : { + "comment" : "A confirmation dialog for cancelling a backup.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "일괄 작업" + "value" : "백업 덤프를 취소하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Toplu işlemler" + "value" : "Yedek dökümü iptal edilsin mi?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thao tác hàng loạt" + "value" : "Hủy dump sao lưu?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "批量操作" + "value" : "要取消备份转储吗?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "批次操作" + "value" : "要取消資料庫備份嗎?" } } } }, - "Bundle ID" : { + "Cancel Query" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Bundle ID" + "value" : "쿼리 취소" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Paket Kimliği" + "value" : "Sorguyu İptal Et" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bundle ID" + "value" : "Huỷ truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Bundle ID" + "value" : "取消查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Bundle ID" + "value" : "取消查詢" } } } }, - "Bundle ID:" : { - "extractionState" : "stale", + "Cancel Query (⌘.)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Bundle ID:" + "value" : "쿼리 취소(⌘.)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Paket Kimliği:" + "value" : "Sorguyu İptal Et (⌘.)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bundle ID:" + "value" : "Huỷ truy vấn (⌘.)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Bundle ID:" + "value" : "取消查询 (⌘.)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Bundle ID:" + "value" : "取消查詢 (⌘.)" } } } }, - "Bytes Received" : { + "Cancel Restore Dump" : { + "comment" : "A button that cancels a restore dump.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "수신 바이트" + "value" : "복원 덤프 취소" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Alınan Bayt" + "value" : "Döküm Geri Yüklemeyi İptal Et" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Byte nhận" + "value" : "Hủy khôi phục dump" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "接收字节" + "value" : "取消恢复转储" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "接收位元組" + "value" : "取消還原備份" } } } }, - "Bytes Sent" : { + "Cancel Restore Dump?" : { + "comment" : "A confirmation prompt for cancelling a restore operation.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "송신 바이트" + "value" : "복원 덤프를 취소하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Gönderilen Bayt" + "value" : "Döküm geri yükleme iptal edilsin mi?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Byte gửi" + "value" : "Hủy khôi phục dump?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "发送字节" + "value" : "要取消恢复转储吗?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "傳送位元組" + "value" : "要取消還原備份嗎?" } } } }, - "C++ rewrite of Cassandra, faster" : { + "Cancel query for session %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Cassandra를 C++로 재작성한 더 빠른 데이터베이스" + "value" : "세션 %@의 쿼리 취소" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Cassandra'nın C++ ile yeniden yazımı, daha hızlı" + "value" : "%@ oturumunun sorgusunu iptal et" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bản viết lại Cassandra bằng C++, nhanh hơn" + "value" : "Huỷ truy vấn cho phiên %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Cassandra的C++重写版,速度更快" + "value" : "取消会话 %@ 的查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Cassandra 的 C++ 重寫版,速度更快" + "value" : "取消工作階段 %@ 的查詢" } } } }, - "CA Cert" : { - "extractionState" : "stale", + "Cancelled" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "CA 인증서" + "value" : "취소됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "CA Sertifikası" + "value" : "İptal edildi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chứng chỉ CA" + "value" : "Đã hủy" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "CA 证书" + "value" : "已取消" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "CA 憑證" + "value" : "已取消" } } } }, - "CA Certificate" : { + "Cancelled before the script finished." : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "스크립트가 끝나기 전에 취소되었습니다.", + "state" : "translated" + } + } + } + }, + "Cancelled by user." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "CA 인증서" + "value" : "사용자가 취소했습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "CA Sertifikası" + "value" : "Kullanıcı tarafından iptal edildi." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chứng chỉ CA" + "value" : "Đã hủy bởi người dùng." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "CA 证书" + "value" : "已被用户取消。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "CA 憑證" + "value" : "已由使用者取消。" } } } }, - "CA certificate is required for verification modes" : { + "Cancelling…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "검증 모드에는 CA 인증서가 필요합니다" + "value" : "취소 중…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Doğrulama modları için CA sertifikası gerekli" + "value" : "İptal ediliyor…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cần chứng chỉ CA cho các chế độ xác minh" + "value" : "Đang hủy…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "验证模式需要CA证书" + "value" : "正在取消…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "驗證模式需要 CA 憑證" + "value" : "正在取消…" } } } }, - "CA certificate not found: %@" : { - "extractionState" : "stale", + "Cannot Save Command" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "CA 인증서를 찾을 수 없습니다: %@" + "value" : "명령을 저장할 수 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "CA sertifikası bulunamadı: %@" + "value" : "Komut kaydedilemiyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy chứng chỉ CA: %@" + "value" : "Không thể lưu lệnh" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未找到CA证书:%@" + "value" : "无法保存命令" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "找不到 CA 憑證:%@" + "value" : "無法儲存指令" } } } }, - "Cache Hit Ratio" : { + "Cannot Show DDL" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "캐시 적중률" + "value" : "DDL을 표시할 수 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Önbellek İsabet Oranı" + "value" : "DDL gösterilemiyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tỷ lệ trúng cache" + "value" : "Không thể hiển thị DDL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "缓存命中率" + "value" : "无法显示DDL" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "快取命中率" + "value" : "無法顯示 DDL" } } } }, - "Cache Size" : { + "Cannot connect to Ollama at %@. Is Ollama running?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "캐시 크기" + "value" : "%@에서 Ollama에 연결할 수 없습니다. Ollama가 실행 중입니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Önbellek Boyutu" + "value" : "%@ adresindeki Ollama'ya bağlanılamıyor. Ollama çalışıyor mu?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kích thước cache" + "value" : "Không thể kết nối đến Ollama tại %@. Ollama có đang chạy không?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "缓存大小" + "value" : "无法连接到 %@ 上的 Ollama。Ollama 是否正在运行?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "快取大小" + "value" : "無法連線到 %@ 上的 Ollama。Ollama 是否正在執行?" } } } }, - "Calling" : { + "Cannot execute write queries: TablePro's Safe Mode is set to read-only for this connection" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "호출 중" + "value" : "쓰기 쿼리를 실행할 수 없음: 이 연결에 대한 TablePro의 안전 모드가 읽기 전용으로 설정되어 있습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Çağrılıyor" + "value" : "Yazma sorguları çalıştırılamıyor: Bu bağlantı için TablePro'nun Safe Mode ayarı salt okunur" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang gọi" + "value" : "Không thể chạy truy vấn ghi: Chế độ an toàn của TablePro đang đặt kết nối này ở chế độ chỉ đọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "调用中" + "value" : "无法执行写入查询:TablePro 的安全模式已将此连接设为只读" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "呼叫中" + "value" : "無法執行寫入查詢:TablePro 的安全模式已將此連線設為唯讀" } } } }, - "Can grant these privileges to others." : { + "Cannot execute write queries: connection is read-only" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 권한을 다른 사용자에게 부여할 수 있습니다." + "value" : "쓰기 쿼리를 실행할 수 없습니다. 연결이 읽기 전용입니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu yetkileri başkalarına verebilir." + "value" : "Yazma sorguları çalıştırılamıyor: bağlantı salt okunur" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Có thể cấp các quyền này cho người khác." + "value" : "Không thể thực thi truy vấn ghi: kết nối chỉ đọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "可以将这些权限授予他人。" + "value" : "无法执行写入查询:连接为只读" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "可以將這些權限授予他人。" + "value" : "無法執行寫入查詢:連線為唯讀" } } } }, - "Can grant to others" : { + "Cannot format empty SQL" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다른 사용자에게 부여 가능" + "value" : "빈 SQL은 포맷할 수 없습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Başkalarına verebilir" + "value" : "Boş SQL biçimlendirilemez" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Có thể cấp cho người khác" + "value" : "Không thể định dạng SQL trống" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "可授予他人" + "value" : "无法格式化空 SQL" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "可授予他人" + "value" : "無法格式化空白的 SQL" } } } }, - "Can log in" : { + "Cannot save changes: connection is read-only" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "로그인 가능" + "value" : "변경 사항을 저장할 수 없습니다. 연결이 읽기 전용입니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Oturum açabilir" + "value" : "Değişiklikler kaydedilemiyor: bağlantı salt okunur" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Có thể đăng nhập" + "value" : "Không thể lưu thay đổi: kết nối ở chế độ chỉ đọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "可以登录" + "value" : "无法保存更改:连接为只读" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "可以登入" + "value" : "無法儲存變更:連線為唯讀" } } } }, - "Cancel" : { + "Cannot save schema changes: TablePro's Safe Mode is set to read-only for this connection." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "취소" + "value" : "스키마 변경 사항을 저장할 수 없습니다. 이 연결에 대한 TablePro의 안전 모드가 읽기 전용으로 설정되어 있습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İptal" + "value" : "Şema değişiklikleri kaydedilemiyor: Bu bağlantı için TablePro'nun Safe Mode ayarı salt okunur." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hủy" + "value" : "Không thể lưu thay đổi schema: Chế độ an toàn của TablePro đang đặt kết nối này ở chế độ chỉ đọc." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "取消" + "value" : "无法保存 Schema 更改:TablePro 的安全模式已将此连接设为只读。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "取消" + "value" : "無法儲存綱要變更:TablePro 的安全模式已將此連線設為唯讀。" } } } }, - "Cancel Backup Dump" : { - "comment" : "A button that cancels a backup.", - "isCommentAutoGenerated" : true, + "Cannot save schema changes: connection is read only." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "백업 덤프 취소" + "value" : "스키마 변경 사항을 저장할 수 없습니다. 연결이 읽기 전용입니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yedek Dökümünü İptal Et" + "value" : "Şema değişiklikleri kaydedilemiyor: bağlantı salt okunur." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hủy dump sao lưu" + "value" : "Không thể lưu thay đổi schema: kết nối chỉ đọc." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "取消备份转储" + "value" : "无法保存Schema更改:连接为只读。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "取消資料庫備份" + "value" : "無法儲存綱要變更:連線為唯讀。" } } } }, - "Cancel Backup Dump?" : { - "comment" : "A confirmation dialog for cancelling a backup.", - "isCommentAutoGenerated" : true, + "Cannot save schema changes: connection is read-only." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "백업 덤프를 취소하시겠습니까?" + "value" : "스키마 변경 사항을 저장할 수 없습니다. 연결이 읽기 전용입니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yedek dökümü iptal edilsin mi?" + "value" : "Şema değişiklikleri kaydedilemez: bağlantı salt okunur." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hủy dump sao lưu?" + "value" : "Không thể lưu thay đổi schema: kết nối chỉ đọc." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "要取消备份转储吗?" + "value" : "无法保存 schema 更改:连接为只读。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "要取消資料庫備份嗎?" + "value" : "無法儲存綱要變更:連線為唯讀。" } } } }, - "Cancel Query" : { + "Cannot use %@ and %@ at the same time" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Cannot use %1$@ and %2$@ at the same time" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 취소" + "value" : "%1$@ 및 %2$@ 동시 사용은 지원되지 않습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorguyu İptal Et" + "value" : "%1$@ ve %2$@ aynı anda kullanılamaz" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Huỷ truy vấn" + "value" : "Không thể dùng đồng thời %1$@ và %2$@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "取消查询" + "value" : "不能同时使用 %1$@ 和 %2$@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "取消查詢" + "value" : "不能同時使用 %1$@ 和 %2$@" } } } }, - "Cancel Query (⌘.)" : { + "Cannot use SSH Tunnel and Cloudflare Tunnel at the same time" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 취소(⌘.)" + "value" : "SSH 터널과 Cloudflare 터널은 동시에 사용할 수 없습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorguyu İptal Et (⌘.)" + "value" : "SSH Tüneli ile Cloudflare Tüneli aynı anda kullanılamaz" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Huỷ truy vấn (⌘.)" + "value" : "Không thể dùng SSH Tunnel và Cloudflare Tunnel cùng lúc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "取消查询 (⌘.)" + "value" : "不能同时使用SSH隧道和Cloudflare隧道" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "取消查詢 (⌘.)" + "value" : "無法同時使用 SSH 隧道與 Cloudflare 隧道" } } } }, - "Cancel query for session %@" : { + "Cap user query results at the configured row count" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "세션 %@의 쿼리 취소" + "value" : "사용자 쿼리 결과를 설정된 행 수로 제한" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ oturumunun sorgusunu iptal et" + "value" : "Kullanıcı sorgu sonuçlarını ayarlanan satır sayısıyla sınırla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Huỷ truy vấn cho phiên %@" + "value" : "Giới hạn kết quả truy vấn theo số hàng đã cấu hình" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "取消会话 %@ 的查询" + "value" : "将用户查询结果限制在配置的行数内" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "取消工作階段 %@ 的查詢" + "value" : "將使用者查詢結果限制在設定的列數內" } } } }, - "Cancel Restore Dump" : { - "comment" : "A button that cancels a restore dump.", - "isCommentAutoGenerated" : true, + "Capabilities" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "복원 덤프 취소" + "value" : "기능" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Döküm Geri Yüklemeyi İptal Et" + "value" : "Yetenekler" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hủy khôi phục dump" + "value" : "Khả năng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "取消恢复转储" + "value" : "功能" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "取消還原備份" + "value" : "功能" } } } }, - "Cancel Restore Dump?" : { - "comment" : "A confirmation prompt for cancelling a restore operation.", - "isCommentAutoGenerated" : true, + "Capabilities:" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "복원 덤프를 취소하시겠습니까?" + "value" : "기능:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Döküm geri yükleme iptal edilsin mi?" + "value" : "Yetenekler:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hủy khôi phục dump?" + "value" : "Tính năng:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "要取消恢复转储吗?" + "value" : "功能:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "要取消還原備份嗎?" + "value" : "功能:" } } } }, - "cancel stops the query, kill ends the session (default cancel)" : { - - }, - "Cancel the running query on a server session, or kill the session outright. Takes a process id from get_server_dashboard. Needs tools:write and the user's approval." : { - - }, - "Cancelled" : { + "Capped results show a Fetch All button to load the full set" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "취소됨" + "value" : "제한된 결과에는 전체 데이터를 불러오는 '모두 가져오기' 버튼이 표시됩니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İptal edildi" + "value" : "Sınırlanmış sonuçlar, tüm seti yüklemek için Tümünü Getir düğmesi gösterir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã hủy" + "value" : "Kết quả bị giới hạn sẽ hiển thị nút Tải tất cả để lấy toàn bộ dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已取消" + "value" : "受限结果会显示\"获取全部\"按钮以加载完整数据集" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已取消" + "value" : "受限結果會顯示「擷取全部」按鈕以載入完整資料集" } } } }, - "Cancelled before the script finished." : { - - }, - "Cancelled by user." : { + "Caption" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사용자가 취소했습니다." + "value" : "캡션" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kullanıcı tarafından iptal edildi." + "value" : "Başlık" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã hủy bởi người dùng." + "value" : "Chú thích" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已被用户取消。" + "value" : "标题说明" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已由使用者取消。" + "value" : "標題說明" } } } }, - "cancelling a server query" : { - - }, - "Cancelling…" : { + "Capture Window" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "취소 중…" + "value" : "윈도우 캡처" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İptal ediliyor…" + "value" : "Pencere Yakala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang hủy…" + "value" : "Chụp cửa sổ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在取消…" + "value" : "捕获窗口" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在取消…" + "value" : "擷取視窗" } } } }, - "Cannot connect to Ollama at %@. Is Ollama running?" : { + "Card Background" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@에서 Ollama에 연결할 수 없습니다. Ollama가 실행 중입니까?" + "value" : "카드 배경" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ adresindeki Ollama'ya bağlanılamıyor. Ollama çalışıyor mu?" + "value" : "Kart Arka Planı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể kết nối đến Ollama tại %@. Ollama có đang chạy không?" + "value" : "Nền thẻ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法连接到 %@ 上的 Ollama。Ollama 是否正在运行?" + "value" : "卡片背景" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法連線到 %@ 上的 Ollama。Ollama 是否正在執行?" + "value" : "卡片背景" } } } }, - "Cannot execute write queries: connection is read-only" : { - "extractionState" : "stale", + "Cascade" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쓰기 쿼리를 실행할 수 없습니다. 연결이 읽기 전용입니다." + "value" : "연쇄 적용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yazma sorguları çalıştırılamıyor: bağlantı salt okunur" + "value" : "Basamaklı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể thực thi truy vấn ghi: kết nối chỉ đọc" + "value" : "Cascade" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法执行写入查询:连接为只读" + "value" : "Cascade" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法執行寫入查詢:連線為唯讀" + "value" : "Cascade" } } } }, - "Cannot execute write queries: TablePro's Safe Mode is set to read-only for this connection" : { + "Category" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쓰기 쿼리를 실행할 수 없음: 이 연결에 대한 TablePro의 안전 모드가 읽기 전용으로 설정되어 있습니다" + "value" : "카테고리" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yazma sorguları çalıştırılamıyor: Bu bağlantı için TablePro'nun Safe Mode ayarı salt okunur" + "value" : "Kategori" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể chạy truy vấn ghi: Chế độ an toàn của TablePro đang đặt kết nối này ở chế độ chỉ đọc" + "value" : "Danh mục" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法执行写入查询:TablePro 的安全模式已将此连接设为只读" + "value" : "分类" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法執行寫入查詢:TablePro 的安全模式已將此連線設為唯讀" + "value" : "分類" } } } }, - "Cannot format empty SQL" : { + "Category: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "빈 SQL은 포맷할 수 없습니다" + "value" : "카테고리: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Boş SQL biçimlendirilemez" + "value" : "Kategori: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể định dạng SQL trống" + "value" : "Danh mục: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法格式化空 SQL" + "value" : "类别:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法格式化空白的 SQL" + "value" : "類別:%@" } } } }, - "Cannot save changes: connection is read-only" : { + "Cell Renderer" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "변경 사항을 저장할 수 없습니다. 연결이 읽기 전용입니다." + "value" : "셀 렌더러" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Değişiklikler kaydedilemiyor: bağlantı salt okunur" + "value" : "Hücre Oluşturucu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể lưu thay đổi: kết nối ở chế độ chỉ đọc" + "value" : "Trình hiển thị ô" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法保存更改:连接为只读" + "value" : "单元格渲染器" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法儲存變更:連線為唯讀" + "value" : "儲存格繪製器" } } } }, - "Cannot Save Command" : { + "Cell Value" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "명령을 저장할 수 없음" + "value" : "셀 값" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Komut kaydedilemiyor" + "value" : "Hücre Değeri" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể lưu lệnh" + "value" : "Giá trị ô" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法保存命令" + "value" : "单元格值" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法儲存指令" + "value" : "儲存格值" } } } }, - "Cannot save schema changes: connection is read only." : { - "extractionState" : "stale", + "Cell selection cleared" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "스키마 변경 사항을 저장할 수 없습니다. 연결이 읽기 전용입니다." + "value" : "셀 선택이 해제되었습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Şema değişiklikleri kaydedilemiyor: bağlantı salt okunur." + "value" : "Hücre seçimi temizlendi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể lưu thay đổi schema: kết nối chỉ đọc." + "value" : "Đã bỏ chọn ô" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法保存Schema更改:连接为只读。" + "value" : "已清除单元格选择" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法儲存綱要變更:連線為唯讀。" + "value" : "已清除儲存格選取" } } } }, - "Cannot save schema changes: connection is read-only." : { - "extractionState" : "stale", + "Certificate" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "스키마 변경 사항을 저장할 수 없습니다. 연결이 읽기 전용입니다." + "value" : "인증서" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Şema değişiklikleri kaydedilemez: bağlantı salt okunur." + "value" : "Sertifika" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể lưu thay đổi schema: kết nối chỉ đọc." + "value" : "Chứng chỉ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法保存 schema 更改:连接为只读。" + "value" : "证书" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法儲存綱要變更:連線為唯讀。" + "value" : "憑證" } } } }, - "Cannot save schema changes: TablePro's Safe Mode is set to read-only for this connection." : { + "Certificate Trust" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "스키마 변경 사항을 저장할 수 없습니다. 이 연결에 대한 TablePro의 안전 모드가 읽기 전용으로 설정되어 있습니다." + "value" : "인증서 신뢰" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Şema değişiklikleri kaydedilemiyor: Bu bağlantı için TablePro'nun Safe Mode ayarı salt okunur." + "value" : "Sertifika güveni" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể lưu thay đổi schema: Chế độ an toàn của TablePro đang đặt kết nối này ở chế độ chỉ đọc." + "value" : "Tin cậy chứng chỉ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法保存 Schema 更改:TablePro 的安全模式已将此连接设为只读。" + "value" : "证书信任" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法儲存綱要變更:TablePro 的安全模式已將此連線設為唯讀。" + "value" : "憑證信任" } } } }, - "Cannot Show DDL" : { - "extractionState" : "stale", + "Change" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "DDL을 표시할 수 없음" + "value" : "변경" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "DDL gösterilemiyor" + "value" : "Değişiklik" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể hiển thị DDL" + "value" : "Thay đổi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法显示DDL" + "value" : "更改" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法顯示 DDL" + "value" : "變更" } } } }, - "Cannot use %@ and %@ at the same time" : { + "Change Attributes" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Cannot use %1$@ and %2$@ at the same time" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@ 및 %2$@ 동시 사용은 지원되지 않습니다" + "value" : "속성 변경" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@ ve %2$@ aynı anda kullanılamaz" + "value" : "Öznitelikleri Değiştir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể dùng đồng thời %1$@ và %2$@" + "value" : "Thay đổi thuộc tính" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "不能同时使用 %1$@ 和 %2$@" + "value" : "更改属性" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "不能同時使用 %1$@ 和 %2$@" + "value" : "變更屬性" } } } }, - "Cannot use SSH Tunnel and Cloudflare Tunnel at the same time" : { - "extractionState" : "stale", + "Change Color" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 터널과 Cloudflare 터널은 동시에 사용할 수 없습니다" + "value" : "색상 변경" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH Tüneli ile Cloudflare Tüneli aynı anda kullanılamaz" + "value" : "Rengi Değiştir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể dùng SSH Tunnel và Cloudflare Tunnel cùng lúc" + "value" : "Đổi màu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "不能同时使用SSH隧道和Cloudflare隧道" + "value" : "更改颜色" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法同時使用 SSH 隧道與 Cloudflare 隧道" + "value" : "變更顏色" } } } }, - "Cap user query results at the configured row count" : { + "Change File" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사용자 쿼리 결과를 설정된 행 수로 제한" + "value" : "파일 변경" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kullanıcı sorgu sonuçlarını ayarlanan satır sayısıyla sınırla" + "value" : "Dosyayı Değiştir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giới hạn kết quả truy vấn theo số hàng đã cấu hình" + "value" : "Đổi tệp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将用户查询结果限制在配置的行数内" + "value" : "更改文件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將使用者查詢結果限制在設定的列數內" + "value" : "變更檔案" } } } }, - "Capabilities" : { + "Change File…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기능" + "value" : "파일 변경…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yetenekler" + "value" : "Dosyayı Değiştir…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khả năng" + "value" : "Đổi tệp…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "功能" + "value" : "更改文件…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "功能" + "value" : "變更檔案…" } } } }, - "Capabilities:" : { - "extractionState" : "stale", + "Change Password" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기능:" + "value" : "암호 변경" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yetenekler:" + "value" : "Parolayı Değiştir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tính năng:" + "value" : "Đổi mật khẩu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "功能:" + "value" : "更改密码" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "功能:" + "value" : "更改密碼" } } } }, - "Capped results show a Fetch All button to load the full set" : { - "extractionState" : "stale", + "Change Password for %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "제한된 결과에는 전체 데이터를 불러오는 '모두 가져오기' 버튼이 표시됩니다" + "value" : "%@ 암호 변경" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sınırlanmış sonuçlar, tüm seti yüklemek için Tümünü Getir düğmesi gösterir" + "value" : "%@ İçin Parolayı Değiştir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết quả bị giới hạn sẽ hiển thị nút Tải tất cả để lấy toàn bộ dữ liệu" + "value" : "Đổi mật khẩu cho %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "受限结果会显示\"获取全部\"按钮以加载完整数据集" + "value" : "更改 %@ 的密码" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "受限結果會顯示「擷取全部」按鈕以載入完整資料集" + "value" : "更改 %@ 的密碼" } } } }, - "Caption" : { - "extractionState" : "stale", + "Change Password…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "캡션" + "value" : "암호 변경…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Başlık" + "value" : "Parolayı Değiştir…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chú thích" + "value" : "Đổi mật khẩu…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "标题说明" + "value" : "更改密码…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "標題說明" + "value" : "更改密碼…" } } } }, - "Capture Window" : { - "extractionState" : "stale", + "Change Primary Key" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "윈도우 캡처" + "value" : "기본 키 변경" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Pencere Yakala" + "value" : "Birincil Anahtarı Değiştir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chụp cửa sổ" + "value" : "Đổi khoá chính" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "捕获窗口" + "value" : "更改主键" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "擷取視窗" + "value" : "變更主鍵" } } } }, - "Card Background" : { + "Change Type" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "카드 배경" + "value" : "유형 변경" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kart Arka Planı" + "value" : "Türü Değiştir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nền thẻ" + "value" : "Đổi kiểu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "卡片背景" + "value" : "更改类型" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "卡片背景" + "value" : "更改類型" } } } }, - "Cascade" : { + "Change password for %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연쇄 적용" + "value" : "%@ 암호 변경" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Basamaklı" + "value" : "%@ için parolayı değiştir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cascade" + "value" : "Đổi mật khẩu cho %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Cascade" + "value" : "更改 %@ 的密码" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Cascade" + "value" : "更改 %@ 的密碼" + } + } + } + }, + "Change the filter to see the other rows." : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "다른 행을 보려면 필터를 변경하십시오.", + "state" : "translated" } } } }, - "Case-insensitive substring to look for" : { - - }, - "Category" : { + "Changed" : { + "comment" : "Text for a split diff marker that indicates a change in a split diff.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "카테고리" + "value" : "변경됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kategori" + "value" : "Değişti" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Danh mục" + "value" : "Đã thay đổi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "分类" + "value" : "已更改" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "分類" + "value" : "已變更" } } } }, - "Category: %@" : { + "Changes" : { "localizations" : { "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "카테고리: %@" + "value" : "변경 사항", + "state" : "translated" } - }, - "tr" : { + } + } + }, + "Changing %@ from %@ to %@ can truncate existing values." : { + "localizations" : { + "en" : { "stringUnit" : { - "state" : "translated", - "value" : "Kategori: %@" + "state" : "new", + "value" : "Changing %1$@ from %2$@ to %3$@ can truncate existing values." } }, - "vi" : { + "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "Danh mục: %@" + "value" : "%@을(를) %@에서 %@(으)로 변경하면 기존 값이 잘릴 수 있습니다.", + "state" : "translated" } - }, - "zh-Hans" : { + } + } + }, + "Changing the collation of %@ can change sort order and uniqueness." : { + "localizations" : { + "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "类别:%@" + "value" : "%@의 콜레이션을 변경하면 정렬 순서와 고유성이 달라질 수 있습니다.", + "state" : "translated" } - }, - "zh-Hant" : { + } + } + }, + "Changing the primary key rebuilds the table and can fail on duplicate values." : { + "localizations" : { + "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "類別:%@" + "value" : "기본 키를 변경하면 테이블을 다시 만들며, 값이 중복되면 실패할 수 있습니다.", + "state" : "translated" } } } }, - "Cell Renderer" : { + "Character Set" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "셀 렌더러" + "value" : "문자 집합" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Hücre Oluşturucu" + "value" : "Karakter Kümesi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trình hiển thị ô" + "value" : "Bộ ký tự" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "单元格渲染器" + "value" : "字符集" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "儲存格繪製器" + "value" : "字集" } } } }, - "Cell selection cleared" : { + "Charset (e.g., utf8mb4)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "셀 선택이 해제되었습니다" + "value" : "문자 집합(예: utf8mb4)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Hücre seçimi temizlendi" + "value" : "Karakter seti (örn. utf8mb4)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã bỏ chọn ô" + "value" : "Bộ ký tự (vd: utf8mb4)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已清除单元格选择" + "value" : "字符集(如 utf8mb4)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已清除儲存格選取" + "value" : "字集(如 utf8mb4)" } } } }, - "Cell Value" : { - "extractionState" : "stale", + "Charset:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "셀 값" + "value" : "문자 집합:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Hücre Değeri" + "value" : "Karakter Seti:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giá trị ô" + "value" : "Bảng mã:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "单元格值" + "value" : "字符集:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "儲存格值" + "value" : "字集:" } } } }, - "Cell value: string, number, boolean, or null" : { - - }, - "Certificate" : { + "Chart" : { "localizations" : { "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "인증서" + "value" : "차트", + "state" : "translated" } }, "tr" : { "stringUnit" : { - "state" : "translated", - "value" : "Sertifika" + "value" : "Grafik", + "state" : "translated" } }, "vi" : { "stringUnit" : { - "state" : "translated", - "value" : "Chứng chỉ" + "value" : "Biểu đồ", + "state" : "translated" } }, "zh-Hans" : { "stringUnit" : { - "state" : "translated", - "value" : "证书" + "value" : "图表", + "state" : "translated" } }, "zh-Hant" : { "stringUnit" : { - "state" : "translated", - "value" : "憑證" + "value" : "圖表", + "state" : "translated" } } } }, - "Certificate Trust" : { + "Chart Type" : { "localizations" : { "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "인증서 신뢰" + "value" : "차트 종류", + "state" : "translated" } }, "tr" : { "stringUnit" : { - "state" : "translated", - "value" : "Sertifika güveni" + "value" : "Grafik Türü", + "state" : "translated" } }, "vi" : { "stringUnit" : { - "state" : "translated", - "value" : "Tin cậy chứng chỉ" + "value" : "Loại biểu đồ", + "state" : "translated" } }, "zh-Hans" : { "stringUnit" : { - "state" : "translated", - "value" : "证书信任" + "value" : "图表类型", + "state" : "translated" } }, "zh-Hant" : { "stringUnit" : { - "state" : "translated", - "value" : "憑證信任" + "value" : "圖表類型", + "state" : "translated" } } } }, - "Change" : { + "Chart data scope" : { "localizations" : { "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "변경" + "value" : "차트 데이터 범위", + "state" : "translated" } }, "tr" : { "stringUnit" : { - "state" : "translated", - "value" : "Değişiklik" + "value" : "Grafik veri kapsamı", + "state" : "translated" } }, "vi" : { "stringUnit" : { - "state" : "translated", - "value" : "Thay đổi" + "value" : "Phạm vi dữ liệu biểu đồ", + "state" : "translated" } }, "zh-Hans" : { "stringUnit" : { - "state" : "translated", - "value" : "更改" + "value" : "图表数据范围", + "state" : "translated" } }, "zh-Hant" : { "stringUnit" : { - "state" : "translated", - "value" : "變更" + "value" : "圖表資料範圍", + "state" : "translated" } } } }, - "Change Attributes" : { + "Charting the first %1$@ of %2$@ loaded rows" : { "localizations" : { "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "속성 변경" + "value" : "불러온 %2$@행 중 처음 %1$@행을 차트로 표시 중", + "state" : "translated" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Öznitelikleri Değiştir" + "value" : "Yüklenen %2$@ satırın ilk %1$@ tanesi grafiğe alınıyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thay đổi thuộc tính" + "value" : "Đang vẽ %1$d trong số %2$@ hàng đã tải đầu tiên" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "更改属性" + "value" : "绘制已加载 %2$@ 行中的前 %1$@ 行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "變更屬性" + "value" : "繪製已載入 %2$@ 列中的前 %1$@ 列" } } } }, - "Change Color" : { + "Charts draw the rows the result pane has loaded. Grid selection, Find, hidden columns, and value filters do not change the chart." : { "localizations" : { "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "색상 변경" + "value" : "차트는 결과 창이 불러온 행을 그립니다. 그리드 선택, 찾기, 숨긴 열, 값 필터는 차트를 바꾸지 않습니다.", + "state" : "translated" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Rengi Değiştir" + "value" : "Grafikler sonuç bölmesinin yüklediği satırları çizer. Tablo seçimi, Bul, gizli sütunlar ve değer filtreleri grafiği değiştirmez." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đổi màu" + "value" : "Biểu đồ vẽ các hàng mà khung kết quả đã tải. Lựa chọn trong lưới, Tìm, cột ẩn và bộ lọc giá trị không làm thay đổi biểu đồ." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "更改颜色" + "value" : "图表绘制结果面板已加载的行。网格选择、查找、隐藏列和值过滤器不会改变图表。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "變更顏色" + "value" : "圖表繪製結果面板已載入的列。表格選取、尋找、隱藏欄和值篩選器不會改變圖表。" } } } }, - "Change File" : { - "extractionState" : "stale", + "Charts need a numeric column for the Y axis. This result has none." : { "localizations" : { "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "파일 변경" + "value" : "차트에는 Y축으로 쓸 숫자 열이 필요합니다. 이 결과에는 없습니다.", + "state" : "translated" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dosyayı Değiştir" + "value" : "Grafikler Y ekseni için sayısal bir sütuna ihtiyaç duyar. Bu sonuçta yok." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đổi tệp" + "value" : "Biểu đồ cần một cột số cho trục Y. Kết quả này không có cột nào." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "更改文件" + "value" : "图表的 Y 轴需要一个数值列,此结果没有。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "變更檔案" + "value" : "圖表的 Y 軸需要一個數值欄,此結果沒有。" } } } }, - "Change File…" : { + "Chat" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "파일 변경…" + "value" : "채팅" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dosyayı Değiştir…" + "value" : "Sohbet" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đổi tệp…" + "value" : "Chat" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "更改文件…" + "value" : "对话" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "變更檔案…" + "value" : "對話" } } } }, - "Change Password" : { + "ChatGPT did not return an access token." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "암호 변경" + "value" : "ChatGPT가 액세스 토큰을 반환하지 않았습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Parolayı Değiştir" + "value" : "ChatGPT bir erişim belirteci döndürmedi." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đổi mật khẩu" + "value" : "ChatGPT không trả về mã truy cập." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "更改密码" + "value" : "ChatGPT 未返回访问令牌。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "更改密碼" + "value" : "ChatGPT 未回傳存取權杖。" } } } }, - "Change password for %@" : { + "Check Status" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Check Status" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 암호 변경" + "value" : "상태 확인" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ için parolayı değiştir" + "value" : "Durumu Kontrol Et" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đổi mật khẩu cho %@" + "value" : "Kiểm tra trạng thái" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "更改 %@ 的密码" + "value" : "检查状态" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "更改 %@ 的密碼" + "value" : "檢查狀態" } } } }, - "Change Password for %@" : { + "Check for Updates…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 암호 변경" + "value" : "업데이트 확인…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ İçin Parolayı Değiştir" + "value" : "Güncellemeleri Kontrol Et…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đổi mật khẩu cho %@" + "value" : "Kiểm tra cập nhật…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "更改 %@ 的密码" + "value" : "检查更新…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "更改 %@ 的密碼" + "value" : "檢查更新…" } } } }, - "Change Password…" : { + "Check mode:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "암호 변경…" + "value" : "검사 모드:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Parolayı Değiştir…" + "value" : "Kontrol modu:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đổi mật khẩu…" + "value" : "Chế độ kiểm tra:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "更改密码…" + "value" : "检查模式:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "更改密碼…" + "value" : "檢查模式:" } } } }, - "Change Primary Key" : { + "Check the tunnel host and your network, then try again." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기본 키 변경" + "value" : "터널 호스트와 네트워크를 확인한 후 다시 시도하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Birincil Anahtarı Değiştir" + "value" : "Tünel sunucusunu ve ağınızı kontrol edip tekrar deneyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đổi khoá chính" + "value" : "Kiểm tra máy chủ tunnel và mạng của bạn, rồi thử lại." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "更改主键" + "value" : "请检查隧道主机和网络,然后重试。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "變更主鍵" + "value" : "請檢查隧道主機與網路,然後再試一次。" } } } }, - "Change the filter to see the other rows." : { - - }, - "Change Type" : { + "Checking for the Claude Code command line tool…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "유형 변경" + "value" : "Claude Code 명령줄 도구 확인 중…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Türü Değiştir" + "value" : "Claude Code komut satırı aracı denetleniyor…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đổi kiểu" + "value" : "Đang kiểm tra công cụ dòng lệnh Claude Code…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "更改类型" + "value" : "正在检查 Claude Code 命令行工具…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "更改類型" + "value" : "正在檢查 Claude Code 命令列工具…" } } } }, - "Changed" : { - "comment" : "Text for a split diff marker that indicates a change in a split diff.", - "isCommentAutoGenerated" : true, + "Checking owned objects…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "변경됨" + "value" : "소유 객체 확인 중…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Değişti" + "value" : "Sahip olunan nesneler denetleniyor…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã thay đổi" + "value" : "Đang kiểm tra các đối tượng sở hữu…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已更改" + "value" : "正在检查拥有的对象…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已變更" + "value" : "正在檢查擁有的物件…" } } } }, - "CHANGED" : { + "Checking your credentials" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "변경됨" + "value" : "자격 증명 확인 중" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "DEĞİŞTİRİLDİ" + "value" : "Kimlik bilgileriniz kontrol ediliyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "ĐÃ THAY ĐỔI" + "value" : "Đang kiểm tra thông tin đăng nhập" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已更改" + "value" : "正在检查你的凭据" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已變更" - } - } - } - }, - "Changes" : { - - }, - "Changes applied" : { - - }, - "Changes saved" : { - - }, - "Changing %@ from %@ to %@ can truncate existing values." : { - "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Changing %1$@ from %2$@ to %3$@ can truncate existing values." + "value" : "正在檢查你的憑證" } } } }, - "Changing the collation of %@ can change sort order and uniqueness." : { - - }, - "Changing the primary key rebuilds the table and can fail on duplicate values." : { - - }, - "Character Set" : { - "extractionState" : "stale", + "Chinook (Sample)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "문자 집합" + "value" : "Chinook(샘플)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Karakter Kümesi" + "value" : "Chinook (Örnek)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bộ ký tự" + "value" : "Chinook (Mẫu)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "字符集" + "value" : "Chinook(示例)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "字集" + "value" : "Chinook(範例)" } } } }, - "Charset (e.g., utf8mb4)" : { - "extractionState" : "stale", + "Choose" : { + "comment" : "Button text for choosing a backup file.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "문자 집합(예: utf8mb4)" + "value" : "선택" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Karakter seti (örn. utf8mb4)" + "value" : "Seç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bộ ký tự (vd: utf8mb4)" + "value" : "Chọn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "字符集(如 utf8mb4)" + "value" : "选择" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "字集(如 utf8mb4)" + "value" : "選擇" } } } }, - "Charset:" : { + "Choose %@" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "%@ 선택", + "state" : "translated" + } + } + } + }, + "Choose AI provider and model" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "문자 집합:" + "value" : "AI 제공업체 및 모델 선택" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Karakter Seti:" + "value" : "Yapay zeka sağlayıcısını ve modeli seçin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bảng mã:" + "value" : "Chọn nhà cung cấp và mô hình AI" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "字符集:" + "value" : "选择AI提供商和模型" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "字集:" + "value" : "選擇 AI 供應商與模型" } } } }, - "Chart" : { + "Choose Another Folder…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "차트" + "value" : "다른 폴더 선택…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Grafik" + "value" : "Başka Bir Klasör Seç…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Biểu đồ" + "value" : "Chọn thư mục khác…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "图表" + "value" : "选择其他文件夹…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "圖表" + "value" : "選擇其他資料夾…" } } } }, - "Chart data scope" : { + "Choose Column" : { "localizations" : { "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "차트 데이터 범위" + "value" : "열 선택", + "state" : "translated" } }, "tr" : { "stringUnit" : { - "state" : "translated", - "value" : "Grafik veri kapsamı" + "value" : "Sütun Seç", + "state" : "translated" } }, "vi" : { "stringUnit" : { - "state" : "translated", - "value" : "Phạm vi dữ liệu biểu đồ" + "value" : "Chọn cột", + "state" : "translated" } }, "zh-Hans" : { "stringUnit" : { - "state" : "translated", - "value" : "图表数据范围" + "value" : "选择列", + "state" : "translated" } }, "zh-Hant" : { "stringUnit" : { - "state" : "translated", - "value" : "圖表資料範圍" + "value" : "選擇欄", + "state" : "translated" } } } }, - "Chart Type" : { + "Choose Destination…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "차트 종류" + "value" : "대상 선택…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Grafik Türü" + "value" : "Hedef Seç…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Loại biểu đồ" + "value" : "Chọn nơi lưu…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "图表类型" + "value" : "选择目标位置…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "圖表類型" + "value" : "選擇目的地…" } } } }, - "Charting the first %1$@ of %2$@ loaded rows" : { + "Choose Dump File" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "불러온 %2$@행 중 처음 %1$@행을 차트로 표시 중" + "value" : "덤프 파일 선택" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yüklenen %2$@ satırın ilk %1$@ tanesi grafiğe alınıyor" + "value" : "Döküm Dosyası Seç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang vẽ %1$d trong số %2$@ hàng đã tải đầu tiên" + "value" : "Chọn tệp dump" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "绘制已加载 %2$@ 行中的前 %1$@ 行" + "value" : "选择转储文件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "繪製已載入 %2$@ 列中的前 %1$@ 列" + "value" : "選擇備份檔" } } } }, - "Charts draw the rows the result pane has loaded. Grid selection, Find, hidden columns, and value filters do not change the chart." : { + "Choose Folder" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "차트는 결과 창이 불러온 행을 그립니다. 그리드 선택, 찾기, 숨긴 열, 값 필터는 차트를 바꾸지 않습니다." + "value" : "폴더 선택" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Grafikler sonuç bölmesinin yüklediği satırları çizer. Tablo seçimi, Bul, gizli sütunlar ve değer filtreleri grafiği değiştirmez." + "value" : "Klasör Seç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Biểu đồ vẽ các hàng mà khung kết quả đã tải. Lựa chọn trong lưới, Tìm, cột ẩn và bộ lọc giá trị không làm thay đổi biểu đồ." + "value" : "Chọn thư mục" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "图表绘制结果面板已加载的行。网格选择、查找、隐藏列和值过滤器不会改变图表。" + "value" : "选择文件夹" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "圖表繪製結果面板已載入的列。表格選取、尋找、隱藏欄和值篩選器不會改變圖表。" + "value" : "選擇資料夾" } } } }, - "Charts need a numeric column for the Y axis. This result has none." : { + "Choose Type" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "차트에는 Y축으로 쓸 숫자 열이 필요합니다. 이 결과에는 없습니다." + "value" : "유형 선택" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Grafikler Y ekseni için sayısal bir sütuna ihtiyaç duyar. Bu sonuçta yok." + "value" : "Tür Seç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Biểu đồ cần một cột số cho trục Y. Kết quả này không có cột nào." + "value" : "Chọn kiểu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "图表的 Y 轴需要一个数值列,此结果没有。" + "value" : "选择类型" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "圖表的 Y 軸需要一個數值欄,此結果沒有。" + "value" : "選擇類型" } } } }, - "Chat" : { - "extractionState" : "stale", + "Choose a %@ export file to import" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "채팅" + "value" : "가져올 %@ 내보내기 파일 선택" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sohbet" + "value" : "İçe aktarılacak bir %@ dışa aktarma dosyası seçin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chat" + "value" : "Chọn tệp xuất %@ để nhập" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "对话" + "value" : "选择要导入的%@导出文件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "對話" + "value" : "選擇要匯入的 %@ 匯出檔案" } } } }, - "ChatGPT did not return an access token." : { + "Choose a Database" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "ChatGPT가 액세스 토큰을 반환하지 않았습니다." + "value" : "데이터베이스 선택" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "ChatGPT bir erişim belirteci döndürmedi." + "value" : "Bir veritabanı seçin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "ChatGPT không trả về mã truy cập." + "value" : "Chọn cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "ChatGPT 未返回访问令牌。" + "value" : "选择数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "ChatGPT 未回傳存取權杖。" + "value" : "選擇資料庫" } } } }, - "Check a query for correctness, cost, and risk against the live schema before running it" : { - - }, - "Check for Updates…" : { + "Choose a certificate or key file" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "업데이트 확인…" + "value" : "인증서 또는 키 파일 선택" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Güncellemeleri Kontrol Et…" + "value" : "Sertifika veya anahtar dosyası seçin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kiểm tra cập nhật…" + "value" : "Chọn tệp chứng chỉ hoặc key" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "检查更新…" + "value" : "选择证书或密钥文件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "檢查更新…" + "value" : "選擇憑證或金鑰檔案" } } } }, - "Check mode:" : { + "Choose a fetched model" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "검사 모드:" + "value" : "불러온 모델 선택" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kontrol modu:" + "value" : "Getirilen bir model seçin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chế độ kiểm tra:" + "value" : "Chọn một model đã tải" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "检查模式:" + "value" : "选择已获取的模型" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "檢查模式:" + "value" : "選擇已擷取的模型" } } } }, - "Check Status" : { + "Choose a folder containing .sql files" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Check Status" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "상태 확인" + "value" : ".sql 파일이 포함된 폴더 선택" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Durumu Kontrol Et" + "value" : ".sql dosyaları içeren bir klasör seçin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kiểm tra trạng thái" + "value" : "Chọn thư mục chứa tệp .sql" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "检查状态" + "value" : "选择包含.sql文件的文件夹" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "檢查狀態" + "value" : "選擇包含 .sql 檔案的資料夾" } } } }, - "Check the tunnel host and your network, then try again." : { + "Choose a folder to watch for .tablepro connection files" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "터널 호스트와 네트워크를 확인한 후 다시 시도하십시오." + "value" : ".tablepro 연결 파일을 감시할 폴더 선택" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tünel sunucusunu ve ağınızı kontrol edip tekrar deneyin." + "value" : ".tablepro bağlantı dosyalarını izlemek için bir klasör seçin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kiểm tra máy chủ tunnel và mạng của bạn, rồi thử lại." + "value" : "Chọn thư mục để theo dõi tệp kết nối .tablepro" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "请检查隧道主机和网络,然后重试。" + "value" : "选择要监视 .tablepro 连接文件的文件夹" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "請檢查隧道主機與網路,然後再試一次。" + "value" : "選擇要監看 .tablepro 連線檔案的資料夾" } } } }, - "Checking for the Claude Code command line tool…" : { + "Choose a key column before comparing data." : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "데이터를 비교하기 전에 키 열을 선택하십시오.", + "state" : "translated" + } + } + } + }, + "Choose a location to save the diagram as PNG." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Claude Code 명령줄 도구 확인 중…" + "value" : "다이어그램을 PNG로 저장할 위치를 선택하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Claude Code komut satırı aracı denetleniyor…" + "value" : "Diyagramı PNG olarak kaydetmek için bir konum seçin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang kiểm tra công cụ dòng lệnh Claude Code…" + "value" : "Chọn vị trí để lưu sơ đồ dưới dạng PNG." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在检查 Claude Code 命令行工具…" + "value" : "选择位置将图表保存为 PNG。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在檢查 Claude Code 命令列工具…" + "value" : "選擇位置以將圖表儲存為 PNG。" } } } }, - "Checking owned objects…" : { + "Choose a private key file" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "소유 객체 확인 중…" + "value" : "개인 키 파일 선택" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sahip olunan nesneler denetleniyor…" + "value" : "Özel anahtar dosyası seçin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang kiểm tra các đối tượng sở hữu…" + "value" : "Chọn tệp private key" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在检查拥有的对象…" + "value" : "选择私钥文件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在檢查擁有的物件…" + "value" : "選擇私密金鑰檔案" } } } }, - "Checking your credentials" : { + "Choose a project folder to read its database settings." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "자격 증명 확인 중" + "value" : "데이터베이스 설정을 읽을 프로젝트 폴더를 선택하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kimlik bilgileriniz kontrol ediliyor" + "value" : "Veritabanı ayarlarını okumak için bir proje klasörü seçin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang kiểm tra thông tin đăng nhập" + "value" : "Chọn một thư mục dự án để đọc cài đặt cơ sở dữ liệu trong đó." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在检查你的凭据" + "value" : "选择一个项目文件夹以读取其中的数据库设置。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在檢查你的憑證" + "value" : "選擇一個專案資料夾以讀取其中的資料庫設定。" } } } }, - "Chinook (Sample)" : { + "Choose a query from the list\nto see its full content here." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Chinook(샘플)" + "value" : "목록에서 쿼리를 선택하면\n여기에 전체 내용이 표시됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Chinook (Örnek)" + "value" : "Tam içeriğini burada görmek için\nlisteden bir sorgu seçin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chinook (Mẫu)" + "value" : "Chọn một truy vấn từ danh sách\nđể xem nội dung đầy đủ tại đây." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Chinook(示例)" + "value" : "从列表中选择一个查询\n以在此处查看其完整内容。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Chinook(範例)" + "value" : "從清單中選擇一個查詢\n以在此處查看其完整內容。" } } } }, - "Choose" : { - "comment" : "Button text for choosing a backup file.", - "isCommentAutoGenerated" : true, + "Choose a section from the sidebar." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "선택" + "value" : "사이드바에서 섹션을 선택하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Seç" + "value" : "Sidebar'dan bir bölüm seçin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn" + "value" : "Chọn một mục từ thanh bên." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选择" + "value" : "从侧边栏选择一个部分。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選擇" + "value" : "從側邊欄選擇一個區段。" } } } }, - "Choose %@" : { - - }, - "Choose a %@ export file to import" : { + "Choose a shared folder for your team's connection catalog. Teammates add this folder under Settings > Linked Folders to see published connections." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "가져올 %@ 내보내기 파일 선택" + "value" : "팀의 연결 카탈로그를 위한 공유 폴더를 선택하십시오. 팀원은 설정 > 연결된 폴더에서 이 폴더를 추가하여 게시된 연결을 볼 수 있습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İçe aktarılacak bir %@ dışa aktarma dosyası seçin" + "value" : "Takımınızın bağlantı kataloğu için paylaşılan bir klasör seçin. Takım arkadaşlarınız yayınlanan bağlantıları görmek için bu klasörü Ayarlar > Bağlı Klasörler altına ekler." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn tệp xuất %@ để nhập" + "value" : "Chọn một thư mục dùng chung cho danh mục kết nối của nhóm. Đồng đội thêm thư mục này trong Cài đặt > Thư mục liên kết để xem các kết nối đã xuất bản." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选择要导入的%@导出文件" + "value" : "为团队的连接目录选择一个共享文件夹。队友在“设置 > 关联文件夹”中添加此文件夹即可看到已发布的连接。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選擇要匯入的 %@ 匯出檔案" + "value" : "為團隊的連線目錄選擇一個共用資料夾。隊友在「設定 > 連結資料夾」中加入此資料夾即可看到已發佈的連線。" } } } }, - "Choose a certificate or key file" : { + "Choose a source and a target first." : { "localizations" : { "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "인증서 또는 키 파일 선택" + "value" : "먼저 원본과 대상을 선택하십시오.", + "state" : "translated" } - }, - "tr" : { + } + } + }, + "Choose a source and a target, then compare them." : { + "localizations" : { + "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "Sertifika veya anahtar dosyası seçin" + "value" : "원본과 대상을 선택한 다음 비교하십시오.", + "state" : "translated" } - }, - "vi" : { + } + } + }, + "Choose a source or a target first." : { + "localizations" : { + "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "Chọn tệp chứng chỉ hoặc key" + "value" : "먼저 원본 또는 대상을 선택하십시오.", + "state" : "translated" } - }, - "zh-Hans" : { + } + } + }, + "Choose a source to compare from." : { + "localizations" : { + "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "选择证书或密钥文件" + "value" : "비교할 원본을 선택하십시오.", + "state" : "translated" } - }, - "zh-Hant" : { + } + } + }, + "Choose a target to compare against." : { + "localizations" : { + "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "選擇憑證或金鑰檔案" + "value" : "비교 대상을 선택하십시오.", + "state" : "translated" } } } }, - "Choose a Database" : { + "Choose a target to write to." : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "기록할 대상을 선택하십시오.", + "state" : "translated" + } + } + } + }, + "Choose an export file to import" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 선택" + "value" : "가져올 내보내기 파일 선택" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bir veritabanı seçin" + "value" : "İçe aktarılacak bir dışa aktarma dosyası seçin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn cơ sở dữ liệu" + "value" : "Chọn tệp xuất để nhập" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选择数据库" + "value" : "选择要导入的导出文件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選擇資料庫" + "value" : "選擇要匯入的匯出檔案" } } } }, - "Choose a fetched model" : { - "extractionState" : "stale", + "Choose port automatically" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "불러온 모델 선택" + "value" : "포트 자동 선택" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Getirilen bir model seçin" + "value" : "Portu otomatik seç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn một model đã tải" + "value" : "Tự động chọn cổng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选择已获取的模型" + "value" : "自动选择端口" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選擇已擷取的模型" + "value" : "自動選擇連接埠" } } } }, - "Choose a folder containing .sql files" : { + "Choose what happens to them when the role is dropped." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : ".sql 파일이 포함된 폴더 선택" + "value" : "역할을 삭제할 때 해당 객체를 어떻게 처리할지 선택하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : ".sql dosyaları içeren bir klasör seçin" + "value" : "Rol silindiğinde bunlara ne olacağını seçin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn thư mục chứa tệp .sql" + "value" : "Chọn điều xảy ra với chúng khi vai trò bị xoá." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选择包含.sql文件的文件夹" + "value" : "选择删除该角色时如何处理它们。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選擇包含 .sql 檔案的資料夾" + "value" : "選擇刪除該角色時如何處理它們。" } } } }, - "Choose a folder to watch for .tablepro connection files" : { + "Choose where to save the dump of “%@”." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : ".tablepro 연결 파일을 감시할 폴더 선택" + "value" : "“%@”의 덤프를 저장할 위치를 선택하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : ".tablepro bağlantı dosyalarını izlemek için bir klasör seçin" + "value" : "“%@” dökümünün nereye kaydedileceğini seçin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn thư mục để theo dõi tệp kết nối .tablepro" + "value" : "Chọn nơi lưu bản dump của “%@”." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选择要监视 .tablepro 连接文件的文件夹" + "value" : "选择“%@”转储文件的保存位置。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選擇要監看 .tablepro 連線檔案的資料夾" + "value" : "選擇要將「%@」的備份檔儲存至何處。" } } } }, - "Choose a key column before comparing data." : { - - }, - "Choose a location to save the diagram as PNG." : { + "Choose which columns the grid shows" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다이어그램을 PNG로 저장할 위치를 선택하십시오." + "value" : "표에 표시할 열을 선택합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Diyagramı PNG olarak kaydetmek için bir konum seçin." + "value" : "Tabloda gösterilecek sütunları seçin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn vị trí để lưu sơ đồ dưới dạng PNG." + "value" : "Chọn cột hiển thị trong bảng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选择位置将图表保存为 PNG。" + "value" : "选择表格显示的列" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選擇位置以將圖表儲存為 PNG。" + "value" : "選擇表格顯示的欄" } } } }, - "Choose a private key file" : { + "Choose your client and follow the steps to connect it to TablePro." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "개인 키 파일 선택" + "value" : "클라이언트를 선택하고 단계에 따라 TablePro에 연결하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Özel anahtar dosyası seçin" + "value" : "İstemcinizi seçin ve TablePro'ya bağlamak için adımları izleyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn tệp private key" + "value" : "Chọn client của bạn và làm theo các bước để kết nối với TablePro." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选择私钥文件" + "value" : "选择您的客户端并按步骤将其连接到TablePro。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選擇私密金鑰檔案" + "value" : "選擇你的用戶端,並依照步驟將它連線到 TablePro。" } } } }, - "Choose a project folder to read its database settings." : { + "Choose…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 설정을 읽을 프로젝트 폴더를 선택하십시오." + "value" : "선택…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı ayarlarını okumak için bir proje klasörü seçin." + "value" : "Seç…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn một thư mục dự án để đọc cài đặt cơ sở dữ liệu trong đó." + "value" : "Chọn…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选择一个项目文件夹以读取其中的数据库设置。" + "value" : "选择…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選擇一個專案資料夾以讀取其中的資料庫設定。" + "value" : "選擇…" } } } }, - "Choose a query from the list\nto see its full content here." : { - "extractionState" : "stale", + "Claude Code" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "목록에서 쿼리를 선택하면\n여기에 전체 내용이 표시됩니다." + "value" : "Claude Code" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tam içeriğini burada görmek için\nlisteden bir sorgu seçin." + "value" : "Claude Code" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn một truy vấn từ danh sách\nđể xem nội dung đầy đủ tại đây." + "value" : "Claude Code" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "从列表中选择一个查询\n以在此处查看其完整内容。" + "value" : "Claude Code" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "從清單中選擇一個查詢\n以在此處查看其完整內容。" + "value" : "Claude Code" } } } }, - "Choose a section from the sidebar." : { + "Claude Code %@ is too old. Version %@ or newer is required." : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Claude Code %1$@ is too old. Version %2$@ or newer is required." + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사이드바에서 섹션을 선택하십시오." + "value" : "Claude Code 버전이 너무 오래되었습니다(%1$@). %2$@ 이상이 필요합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sidebar'dan bir bölüm seçin." + "value" : "Claude Code %1$@ çok eski. %2$@ veya daha yeni bir sürüm gerekir." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn một mục từ thanh bên." + "value" : "Claude Code %1$@ đã quá cũ. Cần phiên bản %2$@ trở lên." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "从侧边栏选择一个部分。" + "value" : "Claude Code %1$@ 版本过旧。需要 %2$@ 或更高版本。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "從側邊欄選擇一個區段。" + "value" : "Claude Code %1$@ 版本過舊。需要 %2$@ 或更新的版本。" } } } }, - "Choose a shared folder for your team's connection catalog. Teammates add this folder under Settings > Linked Folders to see published connections." : { + "Claude Code is installed but not signed in." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "팀의 연결 카탈로그를 위한 공유 폴더를 선택하십시오. 팀원은 설정 > 연결된 폴더에서 이 폴더를 추가하여 게시된 연결을 볼 수 있습니다." + "value" : "Claude Code가 설치되어 있지만 로그인되어 있지 않습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Takımınızın bağlantı kataloğu için paylaşılan bir klasör seçin. Takım arkadaşlarınız yayınlanan bağlantıları görmek için bu klasörü Ayarlar > Bağlı Klasörler altına ekler." + "value" : "Claude Code yüklü ancak oturum açılmamış." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn một thư mục dùng chung cho danh mục kết nối của nhóm. Đồng đội thêm thư mục này trong Cài đặt > Thư mục liên kết để xem các kết nối đã xuất bản." + "value" : "Claude Code đã được cài nhưng chưa đăng nhập." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "为团队的连接目录选择一个共享文件夹。队友在“设置 > 关联文件夹”中添加此文件夹即可看到已发布的连接。" + "value" : "已安装 Claude Code,但尚未登录。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "為團隊的連線目錄選擇一個共用資料夾。隊友在「設定 > 連結資料夾」中加入此資料夾即可看到已發佈的連線。" + "value" : "已安裝 Claude Code,但尚未登入。" } } } }, - "Choose a source and a target first." : { - - }, - "Choose a source and a target, then compare them." : { - - }, - "Choose a source or a target first." : { - - }, - "Choose a source to compare from." : { - - }, - "Choose a target to compare against." : { - - }, - "Choose a target to write to." : { - - }, - "Choose AI provider and model" : { + "Claude Code is not installed." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "AI 제공업체 및 모델 선택" + "value" : "Claude Code가 설치되어 있지 않습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yapay zeka sağlayıcısını ve modeli seçin" + "value" : "Claude Code yüklü değil." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn nhà cung cấp và mô hình AI" + "value" : "Claude Code chưa được cài đặt." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选择AI提供商和模型" + "value" : "尚未安装 Claude Code。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選擇 AI 供應商與模型" + "value" : "尚未安裝 Claude Code。" } } } }, - "Choose an export file to import" : { + "Claude Code reported an error." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "가져올 내보내기 파일 선택" + "value" : "Claude Code에서 오류를 보고했습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İçe aktarılacak bir dışa aktarma dosyası seçin" + "value" : "Claude Code bir hata bildirdi." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn tệp xuất để nhập" + "value" : "Claude Code báo lỗi." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选择要导入的导出文件" + "value" : "Claude Code 报告了一个错误。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選擇要匯入的匯出檔案" + "value" : "Claude Code 回報了一個錯誤。" } } } }, - "Choose Another Folder…" : { + "Claude Desktop" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다른 폴더 선택…" + "value" : "Claude Desktop" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Başka Bir Klasör Seç…" + "value" : "Claude Desktop" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn thư mục khác…" + "value" : "Claude Desktop" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选择其他文件夹…" + "value" : "Claude Desktop" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選擇其他資料夾…" + "value" : "Claude Desktop" } } } }, - "Choose Column" : { + "Clear" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열 선택" + "value" : "지우기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sütun Seç" + "value" : "Temizle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn cột" + "value" : "Xóa" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选择列" + "value" : "清除" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選擇欄" + "value" : "清除" } } } }, - "Choose Destination…" : { + "Clear All" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "대상 선택…" + "value" : "모두 지우기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Hedef Seç…" + "value" : "Tümünü Temizle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn nơi lưu…" + "value" : "Xóa tất cả" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选择目标位置…" + "value" : "全部清除" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選擇目的地…" + "value" : "全部清除" } } } }, - "Choose Dump File" : { + "Clear All Conversations?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "덤프 파일 선택" + "value" : "모든 대화를 지우겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Döküm Dosyası Seç" + "value" : "Tüm Konuşmalar Temizlensin mi?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn tệp dump" + "value" : "Xóa tất cả hội thoại?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选择转储文件" + "value" : "清除所有对话?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選擇備份檔" + "value" : "清除所有對話?" } } } }, - "Choose Folder" : { + "Clear All History?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "폴더 선택" + "value" : "모든 기록을 지우겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Klasör Seç" + "value" : "Tüm Geçmiş Temizlensin mi?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn thư mục" + "value" : "Xóa toàn bộ lịch sử?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选择文件夹" + "value" : "清除全部历史?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選擇資料夾" + "value" : "清除全部歷程記錄?" } } } }, - "Choose port automatically" : { + "Clear All Value Filters" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "포트 자동 선택" + "value" : "모든 값 필터 지우기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Portu otomatik seç" + "value" : "Tüm Değer Filtrelerini Temizle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tự động chọn cổng" + "value" : "Xóa tất cả bộ lọc giá trị" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "自动选择端口" + "value" : "清除所有值筛选" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "自動選擇連接埠" + "value" : "清除所有值篩選" } } } }, - "Choose Type" : { + "Clear Conversation" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "유형 선택" + "value" : "대화 지우기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tür Seç" + "value" : "Sohbeti Temizle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn kiểu" + "value" : "Xóa hội thoại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选择类型" + "value" : "清除对话" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選擇類型" + "value" : "清除對話" } } } }, - "Choose what happens to them when the role is dropped." : { + "Clear Filters" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "역할을 삭제할 때 해당 객체를 어떻게 처리할지 선택하십시오." + "value" : "필터 지우기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Rol silindiğinde bunlara ne olacağını seçin." + "value" : "Filtreleri Temizle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn điều xảy ra với chúng khi vai trò bị xoá." + "value" : "Xóa bộ lọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选择删除该角色时如何处理它们。" + "value" : "清除筛选" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選擇刪除該角色時如何處理它們。" + "value" : "清除篩選" } } } }, - "Choose where to save the dump of “%@”." : { + "Clear History" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "“%@”의 덤프를 저장할 위치를 선택하십시오." + "value" : "기록 지우기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "“%@” dökümünün nereye kaydedileceğini seçin." + "value" : "Geçmişi Temizle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn nơi lưu bản dump của “%@”." + "value" : "Xoá lịch sử" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选择“%@”转储文件的保存位置。" + "value" : "清除历史" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選擇要將「%@」的備份檔儲存至何處。" + "value" : "清除記錄" } } } }, - "Choose which columns the grid shows" : { + "Clear History…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "표에 표시할 열을 선택합니다" + "value" : "기록 지우기…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tabloda gösterilecek sütunları seçin" + "value" : "Geçmişi Temizle…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn cột hiển thị trong bảng" + "value" : "Xóa lịch sử…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选择表格显示的列" + "value" : "清除历史…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選擇表格顯示的欄" + "value" : "清除歷程記錄…" } } } }, - "Choose your client and follow the steps to connect it to TablePro." : { + "Clear Query" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "클라이언트를 선택하고 단계에 따라 TablePro에 연결하십시오." + "value" : "쿼리 지우기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İstemcinizi seçin ve TablePro'ya bağlamak için adımları izleyin." + "value" : "Sorguyu Temizle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn client của bạn và làm theo các bước để kết nối với TablePro." + "value" : "Xoá truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选择您的客户端并按步骤将其连接到TablePro。" + "value" : "清除查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選擇你的用戶端,並依照步驟將它連線到 TablePro。" + "value" : "清除查詢" } } } }, - "Choose…" : { + "Clear Query (⌘+Delete)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "선택…" + "value" : "쿼리 지우기(⌘+Delete)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Seç…" + "value" : "Sorguyu Temizle (⌘+Delete)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn…" + "value" : "Xóa truy vấn (⌘+Delete)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选择…" + "value" : "清除查询 (⌘+Delete)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選擇…" + "value" : "清除查詢 (⌘+Delete)" } } } }, - "Claude Code" : { + "Clear Query History?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Claude Code" + "value" : "쿼리 기록을 지우겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Claude Code" + "value" : "Sorgu geçmişi temizlensin mi?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Claude Code" + "value" : "Xoá lịch sử truy vấn?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Claude Code" + "value" : "要清除查询历史吗?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Claude Code" + "value" : "要清除查詢歷史嗎?" } } } }, - "Claude Code %@ is too old. Version %@ or newer is required." : { + "Clear Recent Tables" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Claude Code %1$@ is too old. Version %2$@ or newer is required." - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Claude Code 버전이 너무 오래되었습니다(%1$@). %2$@ 이상이 필요합니다." + "value" : "최근 테이블 지우기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Claude Code %1$@ çok eski. %2$@ veya daha yeni bir sürüm gerekir." + "value" : "Son Tabloları Temizle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Claude Code %1$@ đã quá cũ. Cần phiên bản %2$@ trở lên." + "value" : "Xóa bảng gần đây" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Claude Code %1$@ 版本过旧。需要 %2$@ 或更高版本。" + "value" : "清除最近的表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Claude Code %1$@ 版本過舊。需要 %2$@ 或更新的版本。" + "value" : "清除最近的資料表" } } } }, - "Claude Code is installed but not signed in." : { + "Clear Recents" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Claude Code가 설치되어 있지만 로그인되어 있지 않습니다." + "value" : "최근 항목 지우기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Claude Code yüklü ancak oturum açılmamış." + "value" : "Sonları Temizle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Claude Code đã được cài nhưng chưa đăng nhập." + "value" : "Xoá gần đây" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已安装 Claude Code,但尚未登录。" + "value" : "清除最近记录" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已安裝 Claude Code,但尚未登入。" + "value" : "清除最近項目" } } } }, - "Claude Code is not installed." : { + "Clear Results" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Claude Code가 설치되어 있지 않습니다." + "value" : "결과 지우기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Claude Code yüklü değil." + "value" : "Sonuçları Temizle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Claude Code chưa được cài đặt." + "value" : "Xóa kết quả" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "尚未安装 Claude Code。" + "value" : "清除结果" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "尚未安裝 Claude Code。" + "value" : "清除結果" } } } }, - "Claude Code reported an error." : { + "Clear Search" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Claude Code에서 오류를 보고했습니다." + "value" : "검색 지우기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Claude Code bir hata bildirdi." + "value" : "Aramayı Temizle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Claude Code báo lỗi." + "value" : "Xóa tìm kiếm" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Claude Code 报告了一个错误。" + "value" : "清除搜索" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Claude Code 回報了一個錯誤。" + "value" : "清除搜尋" } } } }, - "Claude Desktop" : { + "Clear Selection" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Claude Desktop" + "value" : "선택 해제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Claude Desktop" + "value" : "Seçimi Temizle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Claude Desktop" + "value" : "Bỏ chọn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Claude Desktop" + "value" : "取消选择" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Claude Desktop" + "value" : "清除選取範圍" } } } }, - "Clear" : { + "Clear Value Filter" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "지우기" + "value" : "값 필터 지우기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Temizle" + "value" : "Değer Filtresini Temizle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa" + "value" : "Xóa bộ lọc giá trị" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "清除" + "value" : "清除值筛选" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "清除" + "value" : "清除值篩選" } } } @@ -23687,5430 +24146,5504 @@ } } }, - "Clear All" : { + "Clear all history" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모두 지우기" + "value" : "모든 기록 지우기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tümünü Temizle" + "value" : "Tüm geçmişi temizle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa tất cả" + "value" : "Xoá toàn bộ lịch sử" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "全部清除" + "value" : "清除全部历史" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "全部清除" + "value" : "清除全部歷程記錄" } } } }, - "Clear All Conversations?" : { + "Clear all query history" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 대화를 지우겠습니까?" + "value" : "모든 쿼리 기록 지우기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm Konuşmalar Temizlensin mi?" + "value" : "Tüm sorgu geçmişini temizle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa tất cả hội thoại?" + "value" : "Xóa toàn bộ lịch sử truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "清除所有对话?" + "value" : "清除全部查询历史" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "清除所有對話?" + "value" : "清除全部查詢歷程記錄" } } } }, - "Clear all history" : { + "Clear applied filters without removing filter rows" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "필터 행은 유지하고 적용된 필터만 지우기" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Filtre satırlarını kaldırmadan uygulanan filtreleri temizle" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "Xóa các bộ lọc đã áp dụng mà không gỡ các dòng bộ lọc" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "清除已应用的筛选,但不移除筛选行" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "清除已套用的篩選,但不移除篩選列" + } + } + } + }, + "Clear search" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 기록 지우기" + "value" : "검색 지우기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm geçmişi temizle" + "value" : "Aramayı temizle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xoá toàn bộ lịch sử" + "value" : "Xóa tìm kiếm" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "清除全部历史" + "value" : "清除搜索" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "清除全部歷程記錄" + "value" : "清除搜尋" } } } }, - "Clear All History?" : { + "Clear table filter" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 기록을 지우겠습니까?" + "value" : "테이블 필터 지우기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm Geçmiş Temizlensin mi?" + "value" : "Tablo filtresini temizle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa toàn bộ lịch sử?" + "value" : "Xóa bộ lọc bảng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "清除全部历史?" + "value" : "清除表筛选" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "清除全部歷程記錄?" + "value" : "清除資料表篩選" } } } }, - "Clear all query history" : { + "Clear the queries shown here" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 쿼리 기록 지우기" + "value" : "여기에 표시된 쿼리 지우기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm sorgu geçmişini temizle" + "value" : "Burada gösterilen sorguları temizle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa toàn bộ lịch sử truy vấn" + "value" : "Xoá các truy vấn đang hiển thị ở đây" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "清除全部查询历史" + "value" : "清除此处显示的查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "清除全部查詢歷程記錄" + "value" : "清除此處顯示的查詢" } } } }, - "Clear All Value Filters" : { + "Click \"+ Add new global MCP server\"" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 값 필터 지우기" + "value" : "\"+ Add new global MCP server\"를 클릭하십시오" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm Değer Filtrelerini Temizle" + "value" : "\"+ Add new global MCP server\" tıklayın" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa tất cả bộ lọc giá trị" + "value" : "Nhấn \"+ Add new global MCP server\"" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "清除所有值筛选" + "value" : "点击 \"+ Add new global MCP server\"" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "清除所有值篩選" + "value" : "點按「+ Add new global MCP server」" } } } }, - "Clear applied filters without removing filter rows" : { + "Click \"Edit Config\" to open claude_desktop_config.json" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터 행은 유지하고 적용된 필터만 지우기" + "value" : "\"Edit Config\"를 클릭하여 claude_desktop_config.json을 여십시오" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtre satırlarını kaldırmadan uygulanan filtreleri temizle" + "value" : "claude_desktop_config.json dosyasını açmak için \"Edit Config\" tıklayın" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa các bộ lọc đã áp dụng mà không gỡ các dòng bộ lọc" + "value" : "Nhấn \"Edit Config\" để mở claude_desktop_config.json" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "清除已应用的筛选,但不移除筛选行" + "value" : "点击 \"Edit Config\" 打开 claude_desktop_config.json" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "清除已套用的篩選,但不移除篩選列" + "value" : "點按「Edit Config」以開啟 claude_desktop_config.json" } } } }, - "Clear Conversation" : { - "extractionState" : "stale", + "Click + to add a relationship between this table and another" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "대화 지우기" + "value" : "+를 클릭하여 이 테이블과 다른 테이블 간의 관계를 추가하십시오" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sohbeti Temizle" + "value" : "Bu tablo ile başka bir tablo arasında ilişki eklemek için + tıklayın" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa hội thoại" + "value" : "Nhấn + để thêm mối quan hệ giữa bảng này và bảng khác" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "清除对话" + "value" : "点击 + 添加此表与其他表之间的关系" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "清除對話" + "value" : "點按 + 以新增此資料表與另一個資料表之間的關聯" } } } }, - "Clear Filters" : { + "Click + to create your first connection" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터 지우기" + "value" : "+를 클릭하여 첫 번째 연결을 만드십시오" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtreleri Temizle" + "value" : "İlk bağlantınızı oluşturmak için + tıklayın" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa bộ lọc" + "value" : "Nhấn + để tạo kết nối đầu tiên" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "清除筛选" + "value" : "点击 + 创建您的第一个连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "清除篩選" + "value" : "點按 + 以建立你的第一個連線" } } } }, - "Clear History" : { + "Click a table" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기록 지우기" + "value" : "테이블을 클릭하십시오" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geçmişi Temizle" + "value" : "Bir tabloya tıklayın" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xoá lịch sử" + "value" : "Nhấn vào một bảng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "清除历史" + "value" : "点击一个表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "清除記錄" + "value" : "點按一個資料表" } } } }, - "Clear History…" : { + "Click the menu in the Agent Panel header and choose Settings" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기록 지우기…" + "value" : "에이전트 패널 헤더의 메뉴를 클릭하고 설정을 선택하십시오" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geçmişi Temizle…" + "value" : "Ajan paneli başlığındaki menüye tıklayın ve Ayarlar'ı seçin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa lịch sử…" + "value" : "Bấm vào menu trên tiêu đề bảng Agent rồi chọn Cài đặt" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "清除历史…" + "value" : "点按Agent面板标题栏中的菜单并选择\"设置\"" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "清除歷程記錄…" + "value" : "點按 Agent 面板標題列中的選單,然後選擇「設定」" } } } }, - "Clear Query" : { + "Click to load models" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 지우기" + "value" : "모델을 불러오려면 클릭하십시오" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorguyu Temizle" + "value" : "Modelleri yüklemek için tıklayın" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xoá truy vấn" + "value" : "Nhấp để tải danh sách model" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "清除查询" + "value" : "点击加载模型" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "清除查詢" + "value" : "點按以載入模型" } } } }, - "Clear Query (⌘+Delete)" : { + "Click to show all tables with metadata" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 지우기(⌘+Delete)" + "value" : "메타데이터가 포함된 모든 테이블을 표시하려면 클릭하십시오" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorguyu Temizle (⌘+Delete)" + "value" : "Tüm tabloları meta verilerle göstermek için tıklayın" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa truy vấn (⌘+Delete)" + "value" : "Nhấn để hiện tất cả bảng với siêu dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "清除查询 (⌘+Delete)" + "value" : "点击显示所有表及其元数据" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "清除查詢 (⌘+Delete)" + "value" : "點按以顯示所有資料表及其中繼資料" } } } }, - "Clear Query History?" : { + "Client" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 기록을 지우겠습니까?" + "value" : "클라이언트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgu geçmişi temizlensin mi?" + "value" : "İstemci" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xoá lịch sử truy vấn?" + "value" : "Client" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "要清除查询历史吗?" + "value" : "客户端" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "要清除查詢歷史嗎?" + "value" : "用戶端" } } } }, - "Clear Recent Tables" : { + "Client Cert" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "최근 테이블 지우기" + "value" : "클라이언트 인증서" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Son Tabloları Temizle" + "value" : "İstemci Sertifikası" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa bảng gần đây" + "value" : "Chứng chỉ máy khách" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "清除最近的表" + "value" : "客户端证书" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "清除最近的資料表" + "value" : "用戶端憑證" } } } }, - "Clear Recents" : { + "Client Certificate" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "최근 항목 지우기" + "value" : "클라이언트 인증서" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sonları Temizle" + "value" : "İstemci Sertifikası" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xoá gần đây" + "value" : "Chứng chỉ máy khách" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "清除最近记录" + "value" : "客户端证书" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "清除最近項目" + "value" : "用戶端憑證" } } } }, - "Clear Results" : { + "Client Certificates" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "결과 지우기" + "value" : "클라이언트 인증서" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sonuçları Temizle" + "value" : "İstemci sertifikaları" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa kết quả" + "value" : "Chứng chỉ client" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "清除结果" + "value" : "客户端证书" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "清除結果" + "value" : "用戶端憑證" } } } }, - "Clear search" : { + "Client Certificates (Optional)" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "검색 지우기" + "value" : "클라이언트 인증서(선택 사항)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Aramayı temizle" + "value" : "İstemci Sertifikaları (İsteğe Bağlı)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa tìm kiếm" + "value" : "Chứng chỉ máy khách (Tùy chọn)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "清除搜索" + "value" : "客户端证书(可选)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "清除搜尋" + "value" : "用戶端憑證(選填)" } } } }, - "Clear Search" : { - "extractionState" : "stale", + "Client ID" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "검색 지우기" + "value" : "클라이언트 ID" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Aramayı Temizle" + "value" : "Client ID" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa tìm kiếm" + "value" : "Client ID" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "清除搜索" + "value" : "客户端ID" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "用戶端 ID" + } + } + } + }, + "Client Key" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "클라이언트 키" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "İstemci Anahtarı" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "Khóa máy khách" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "客户端密钥" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "用戶端金鑰" + } + } + } + }, + "Client Secret" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "클라이언트 시크릿" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Client Secret" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "Client Secret" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "客户端密钥" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "清除搜尋" + "value" : "用戶端金鑰" } } } }, - "Clear Selection" : { + "Client certificate not found: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "선택 해제" + "value" : "클라이언트 인증서를 찾을 수 없습니다: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Seçimi Temizle" + "value" : "İstemci sertifikası bulunamadı: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bỏ chọn" + "value" : "Không tìm thấy chứng chỉ client: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "取消选择" + "value" : "未找到客户端证书:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "清除選取範圍" + "value" : "找不到用戶端憑證:%@" } } } }, - "Clear table filter" : { - "extractionState" : "stale", + "Client key is required when client certificate is set" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 필터 지우기" + "value" : "클라이언트 인증서가 설정된 경우 클라이언트 키가 필요합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tablo filtresini temizle" + "value" : "İstemci sertifikası ayarlandığında istemci anahtarı gerekli" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa bộ lọc bảng" + "value" : "Cần khóa client khi đã đặt chứng chỉ client" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "清除表筛选" + "value" : "设置客户端证书时需要客户端私钥" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "清除資料表篩選" + "value" : "設定用戶端憑證時需要用戶端金鑰" } } } }, - "Clear the queries shown here" : { + "Client key not found: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "여기에 표시된 쿼리 지우기" + "value" : "클라이언트 키를 찾을 수 없습니다: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Burada gösterilen sorguları temizle" + "value" : "İstemci anahtarı bulunamadı: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xoá các truy vấn đang hiển thị ở đây" + "value" : "Không tìm thấy khóa client: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "清除此处显示的查询" + "value" : "未找到客户端私钥:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "清除此處顯示的查詢" + "value" : "找不到用戶端金鑰:%@" } } } }, - "Clear Value Filter" : { + "Client:" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "값 필터 지우기" + "value" : "클라이언트:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Değer Filtresini Temizle" + "value" : "İstemci:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa bộ lọc giá trị" + "value" : "Client:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "清除值筛选" + "value" : "客户端:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "清除值篩選" + "value" : "用戶端:" } } } }, - "CLI Connection Name" : { + "Clients will appear here while they have an active MCP session." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "CLI 연결 이름" + "value" : "활성 MCP 세션이 있는 클라이언트가 여기에 표시됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "CLI bağlantı adı" + "value" : "Etkin bir MCP oturumu olan istemciler burada görünür." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên kết nối CLI" + "value" : "Các client sẽ hiển thị ở đây khi có phiên MCP đang hoạt động." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "CLI连接名称" + "value" : "客户端在拥有活跃的MCP会话期间会显示在这里。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "CLI 連線名稱" + "value" : "用戶端在擁有作用中的 MCP 工作階段期間會顯示在這裡。" } } } }, - "CLI Paths" : { - "extractionState" : "stale", + "Clipboard is empty or contains no text data." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "CLI 경로" + "value" : "클립보드가 비어 있거나 텍스트 데이터가 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "CLI Yolları" + "value" : "Pano boş veya metin verisi içermiyor." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đường dẫn CLI" + "value" : "Bộ nhớ tạm trống hoặc không chứa dữ liệu văn bản." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "CLI 路径" + "value" : "剪贴板为空或不包含文本数据。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "CLI 路徑" + "value" : "剪貼簿為空白或不包含文字資料。" } } } }, - "CLI tool \"%@\" not found in PATH" : { - "extractionState" : "stale", + "Close" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "PATH에서 CLI 도구 \"%@\"을(를) 찾을 수 없습니다" + "value" : "닫기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "CLI aracı \"%@\" PATH içinde bulunamadı" + "value" : "Kapat" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy công cụ CLI \"%@\" trong PATH" + "value" : "Đóng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在 PATH 中未找到 CLI 工具 \"%@\"" + "value" : "关闭" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在 PATH 中找不到 CLI 工具「%@」" + "value" : "關閉" } } } }, - "Click \"+ Add new global MCP server\"" : { + "Close (ESC)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "\"+ Add new global MCP server\"를 클릭하십시오" + "value" : "닫기(ESC)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "\"+ Add new global MCP server\" tıklayın" + "value" : "Kapat (ESC)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhấn \"+ Add new global MCP server\"" + "value" : "Đóng (ESC)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "点击 \"+ Add new global MCP server\"" + "value" : "关闭 (ESC)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "點按「+ Add new global MCP server」" + "value" : "關閉 (ESC)" } } } }, - "Click \"Edit Config\" to open claude_desktop_config.json" : { + "Close All Tabs" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "\"Edit Config\"를 클릭하여 claude_desktop_config.json을 여십시오" + "value" : "모든 탭 닫기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "claude_desktop_config.json dosyasını açmak için \"Edit Config\" tıklayın" + "value" : "Tüm Sekmeleri Kapat" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhấn \"Edit Config\" để mở claude_desktop_config.json" + "value" : "Đóng tất cả tab" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "点击 \"Edit Config\" 打开 claude_desktop_config.json" + "value" : "关闭所有标签页" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "點按「Edit Config」以開啟 claude_desktop_config.json" + "value" : "關閉所有分頁" } } } }, - "Click + to add a relationship between this table and another" : { + "Close Connection" : { + "comment" : "Text for the menu item that closes the current connection.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "+를 클릭하여 이 테이블과 다른 테이블 간의 관계를 추가하십시오" + "value" : "연결 닫기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu tablo ile başka bir tablo arasında ilişki eklemek için + tıklayın" + "value" : "Bağlantıyı Kapat" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhấn + để thêm mối quan hệ giữa bảng này và bảng khác" + "value" : "Đóng kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "点击 + 添加此表与其他表之间的关系" + "value" : "关闭连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "點按 + 以新增此資料表與另一個資料表之間的關聯" + "value" : "關閉連線" } } } }, - "Click + to create your first connection" : { - "extractionState" : "stale", + "Close Other Tabs" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "+를 클릭하여 첫 번째 연결을 만드십시오" + "value" : "다른 탭 닫기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İlk bağlantınızı oluşturmak için + tıklayın" + "value" : "Diğer Sekmeleri Kapat" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhấn + để tạo kết nối đầu tiên" + "value" : "Đóng các tab khác" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "点击 + 创建您的第一个连接" + "value" : "关闭其他标签页" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "點按 + 以建立你的第一個連線" + "value" : "關閉其他分頁" } } } }, - "Click a table" : { + "Close Others" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블을 클릭하십시오" + "value" : "다른 항목 닫기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bir tabloya tıklayın" + "value" : "Diğerlerini Kapat" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhấn vào một bảng" + "value" : "Đóng các tab khác" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "点击一个表" + "value" : "关闭其他" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "點按一個資料表" + "value" : "關閉其他" } } } }, - "Click the menu in the Agent Panel header and choose Settings" : { + "Close Result Tab" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "에이전트 패널 헤더의 메뉴를 클릭하고 설정을 선택하십시오" + "value" : "결과 탭 닫기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ajan paneli başlığındaki menüye tıklayın ve Ayarlar'ı seçin" + "value" : "Sonuç Sekmesini Kapat" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bấm vào menu trên tiêu đề bảng Agent rồi chọn Cài đặt" + "value" : "Đóng tab kết quả" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "点按Agent面板标题栏中的菜单并选择\"设置\"" + "value" : "关闭结果标签页" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "點按 Agent 面板標題列中的選單,然後選擇「設定」" + "value" : "關閉結果分頁" } } } }, - "Click to load models" : { - "extractionState" : "stale", + "Close Tab" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모델을 불러오려면 클릭하십시오" + "value" : "탭 닫기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Modelleri yüklemek için tıklayın" + "value" : "Sekmeyi Kapat" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhấp để tải danh sách model" + "value" : "Đóng tab" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "点击加载模型" + "value" : "关闭标签页" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "點按以載入模型" + "value" : "關閉分頁" } } } }, - "Click to show all tables with metadata" : { - "extractionState" : "stale", + "Close Tabs for Other Databases" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "메타데이터가 포함된 모든 테이블을 표시하려면 클릭하십시오" + "value" : "다른 데이터베이스의 탭 닫기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm tabloları meta verilerle göstermek için tıklayın" + "value" : "Diğer Veritabanlarının Sekmelerini Kapat" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhấn để hiện tất cả bảng với siêu dữ liệu" + "value" : "Đóng tab của các cơ sở dữ liệu khác" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "点击显示所有表及其元数据" + "value" : "关闭其他数据库的标签页" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "點按以顯示所有資料表及其中繼資料" + "value" : "關閉其他資料庫的分頁" } } } }, - "Client" : { + "Close Tabs for Other Schemas" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "클라이언트" + "value" : "다른 스키마의 탭 닫기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İstemci" + "value" : "Diğer Şemaların Sekmelerini Kapat" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Client" + "value" : "Đóng tab của các schema khác" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "客户端" + "value" : "关闭其他 Schema 的标签页" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "用戶端" + "value" : "關閉其他綱要的分頁" } } } }, - "Client Cert" : { - "extractionState" : "stale", + "Close Window" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "클라이언트 인증서" + "value" : "윈도우 닫기" + } + } + } + }, + "Close active connections to apply." : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "적용하려면 활성 연결을 닫으십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İstemci Sertifikası" + "value" : "Uygulamak için etkin bağlantıları kapatın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chứng chỉ máy khách" + "value" : "Đóng các kết nối đang hoạt động để áp dụng." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "客户端证书" + "value" : "关闭活跃连接后生效。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "用戶端憑證" + "value" : "關閉作用中的連線以套用。" } } } }, - "Client Certificate" : { + "Close parameter panel" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "클라이언트 인증서" + "value" : "매개변수 패널 닫기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İstemci Sertifikası" + "value" : "Parametre panelini kapat" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chứng chỉ máy khách" + "value" : "Đóng bảng tham số" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "客户端证书" + "value" : "关闭参数面板" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "用戶端憑證" + "value" : "關閉參數面板" } } } }, - "Client certificate not found: %@" : { + "Close preview" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "클라이언트 인증서를 찾을 수 없습니다: %@" + "value" : "미리보기 닫기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İstemci sertifikası bulunamadı: %@" + "value" : "Önizlemeyi kapat" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy chứng chỉ client: %@" + "value" : "Đóng xem trước" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未找到客户端证书:%@" + "value" : "关闭预览" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "找不到用戶端憑證:%@" + "value" : "關閉預覽" } } } }, - "Client Certificates" : { + "Close result tab" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "클라이언트 인증서" + "value" : "결과 탭 닫기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İstemci sertifikaları" + "value" : "Sonuç sekmesini kapat" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chứng chỉ client" + "value" : "Đóng tab kết quả" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "客户端证书" + "value" : "关闭结果标签页" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "用戶端憑證" + "value" : "關閉結果分頁" } } } }, - "Client Certificates (Optional)" : { - "extractionState" : "stale", + "Close the open Sample connection before resetting it." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "클라이언트 인증서(선택 사항)" + "value" : "재설정하기 전에 열려 있는 Sample 연결을 닫으십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İstemci Sertifikaları (İsteğe Bağlı)" + "value" : "Sıfırlamadan önce açık olan Örnek bağlantısını kapatın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chứng chỉ máy khách (Tùy chọn)" + "value" : "Đóng kết nối Mẫu đang mở trước khi đặt lại." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "客户端证书(可选)" + "value" : "重置前请先关闭已打开的示例连接。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "用戶端憑證(選填)" + "value" : "重設前請先關閉已開啟的範例連線。" } } } }, - "Client ID" : { + "Close “%@”" : { + "comment" : "The title of a menu item that closes a connection. The argument is the name of the connection.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "클라이언트 ID" + "value" : "“%@” 닫기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Client ID" + "value" : "“%@” Bağlantısını Kapat" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Client ID" + "value" : "Đóng “%@”" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "客户端ID" + "value" : "关闭“%@”" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "用戶端 ID" + "value" : "關閉「%@」" } } } }, - "Client Key" : { + "Closing now stops the run between statements. Statements that already ran stay applied." : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "지금 닫으면 구문 사이에서 실행이 중단됩니다. 이미 실행된 구문은 적용된 상태로 남습니다.", + "state" : "translated" + } + } + } + }, + "Closing this tab will discard all unsaved changes." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "클라이언트 키" + "value" : "이 탭을 닫으면 저장하지 않은 모든 변경 사항이 폐기됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İstemci Anahtarı" + "value" : "Bu sekmeyi kapatmak tüm kaydedilmemiş değişiklikleri siler." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khóa máy khách" + "value" : "Đóng tab này sẽ hủy tất cả thay đổi chưa lưu." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "客户端密钥" + "value" : "关闭此标签页将丢弃所有未保存的更改。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "用戶端金鑰" + "value" : "關閉此分頁將捨棄所有未儲存的變更。" } } } }, - "Client key is required when client certificate is set" : { + "Cloud Native" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "클라이언트 인증서가 설정된 경우 클라이언트 키가 필요합니다" + "value" : "클라우드 네이티브" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İstemci sertifikası ayarlandığında istemci anahtarı gerekli" + "value" : "Bulut tabanlı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cần khóa client khi đã đặt chứng chỉ client" + "value" : "Cloud Native" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "设置客户端证书时需要客户端私钥" + "value" : "云原生" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "設定用戶端憑證時需要用戶端金鑰" + "value" : "雲端原生" } } } }, - "Client key not found: %@" : { - "extractionState" : "stale", + "Cloud SQL Auth Proxy" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "클라이언트 키를 찾을 수 없습니다: %@" + "value" : "Cloud SQL Auth Proxy" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İstemci anahtarı bulunamadı: %@" + "value" : "Cloud SQL Kimlik Doğrulama Proxy'si" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy khóa client: %@" + "value" : "Cloud SQL Auth Proxy" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未找到客户端私钥:%@" + "value" : "Cloud SQL Auth Proxy" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "找不到用戶端金鑰:%@" + "value" : "Cloud SQL Auth Proxy" } } } }, - "Client Secret" : { + "Cloud SQL Auth Proxy disconnected. Click to reconnect." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "클라이언트 시크릿" + "value" : "Cloud SQL Auth Proxy의 연결이 끊어졌습니다. 클릭하여 다시 연결하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Client Secret" + "value" : "Cloud SQL Auth Proxy bağlantısı kesildi. Yeniden bağlanmak için tıklayın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Client Secret" + "value" : "Cloud SQL Auth Proxy đã ngắt kết nối. Nhấn để kết nối lại." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "客户端密钥" + "value" : "Cloud SQL Auth Proxy 已断开。点按可重新连接。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "用戶端金鑰" + "value" : "Cloud SQL Auth Proxy 已中斷連線。點按即可重新連線。" } } } }, - "Client:" : { - "extractionState" : "stale", + "Cloud SQL Instance" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "클라이언트:" + "value" : "Cloud SQL 인스턴스" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İstemci:" + "value" : "Cloud SQL Örneği" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Client:" + "value" : "Phiên bản Cloud SQL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "客户端:" + "value" : "Cloud SQL 实例" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "用戶端:" + "value" : "Cloud SQL 執行個體" } } } }, - "Clients will appear here while they have an active MCP session." : { + "Cloud data warehouse" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "활성 MCP 세션이 있는 클라이언트가 여기에 표시됩니다." + "value" : "클라우드 데이터 웨어하우스" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Etkin bir MCP oturumu olan istemciler burada görünür." + "value" : "Bulut veri ambarı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Các client sẽ hiển thị ở đây khi có phiên MCP đang hoạt động." + "value" : "Kho dữ liệu đám mây" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "客户端在拥有活跃的MCP会话期间会显示在这里。" + "value" : "云数据仓库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "用戶端在擁有作用中的 MCP 工作階段期間會顯示在這裡。" + "value" : "雲端資料倉儲" } } } }, - "Clipboard is empty or contains no text data." : { + "Cloudflare Access needs a browser sign-in. Sign in at %@, then reconnect." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "클립보드가 비어 있거나 텍스트 데이터가 없습니다." + "value" : "Cloudflare Access에 브라우저 로그인이 필요합니다. %@에서 로그인한 후 다시 연결하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Pano boş veya metin verisi içermiyor." + "value" : "Cloudflare Access tarayıcıyla oturum açmayı gerektiriyor. %@ adresinde oturum açın, sonra yeniden bağlanın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bộ nhớ tạm trống hoặc không chứa dữ liệu văn bản." + "value" : "Cloudflare Access cần đăng nhập qua trình duyệt. Đăng nhập tại %@, rồi kết nối lại." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "剪贴板为空或不包含文本数据。" + "value" : "Cloudflare Access需要浏览器登录。请在%@登录,然后重新连接。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "剪貼簿為空白或不包含文字資料。" + "value" : "Cloudflare Access 需要瀏覽器登入。請在 %@ 登入,然後重新連線。" } } } }, - "Close" : { + "Cloudflare Tunnel" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "닫기" + "value" : "Cloudflare 터널" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kapat" + "value" : "Cloudflare Tüneli" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đóng" + "value" : "Cloudflare Tunnel" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "关闭" + "value" : "Cloudflare隧道" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "關閉" + "value" : "Cloudflare 隧道" } } } }, - "Close “%@”" : { - "comment" : "The title of a menu item that closes a connection. The argument is the name of the connection.", - "isCommentAutoGenerated" : true, + "Cloudflare hostname is required" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "“%@” 닫기" + "value" : "Cloudflare 호스트 이름이 필요합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "“%@” Bağlantısını Kapat" + "value" : "Cloudflare sunucu adı gerekli" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đóng “%@”" + "value" : "Cần hostname Cloudflare" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "关闭“%@”" + "value" : "需要Cloudflare主机名" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "關閉「%@」" + "value" : "需要 Cloudflare 主機名稱" } } } }, - "Close (ESC)" : { - "extractionState" : "stale", + "Cloudflare tunnel disconnected. Click to reconnect." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "닫기(ESC)" + "value" : "Cloudflare 터널의 연결이 끊어졌습니다. 클릭하여 다시 연결하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kapat (ESC)" + "value" : "Cloudflare tüneli kesildi. Yeniden bağlanmak için tıklayın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đóng (ESC)" + "value" : "Cloudflare tunnel đã ngắt kết nối. Bấm để kết nối lại." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "关闭 (ESC)" + "value" : "Cloudflare隧道已断开。点按以重新连接。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "關閉 (ESC)" + "value" : "Cloudflare 隧道已中斷。點按以重新連線。" } } } }, - "Close active connections to apply." : { + "Cluster" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "적용하려면 활성 연결을 닫으십시오." + "value" : "클러스터" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Uygulamak için etkin bağlantıları kapatın." + "value" : "Cluster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đóng các kết nối đang hoạt động để áp dụng." + "value" : "Cluster" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "关闭活跃连接后生效。" + "value" : "集群" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "關閉作用中的連線以套用。" + "value" : "叢集" } } } }, - "Close All Tabs" : { + "Cluster Seed Nodes" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 탭 닫기" + "value" : "클러스터 시드 노드" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm Sekmeleri Kapat" + "value" : "Cluster Tohum Düğümleri" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đóng tất cả tab" + "value" : "Nút khởi tạo Cluster" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "关闭所有标签页" + "value" : "集群种子节点" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "關閉所有分頁" + "value" : "叢集種子節點" } } } }, - "Close Connection" : { - "comment" : "Text for the menu item that closes the current connection.", - "isCommentAutoGenerated" : true, + "Code expired" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 닫기" + "value" : "코드 만료됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantıyı Kapat" + "value" : "Kod süresi doldu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đóng kết nối" + "value" : "Mã đã hết hạn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "关闭连接" + "value" : "代码已过期" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "關閉連線" + "value" : "驗證碼已過期" } } } }, - "Close Other Tabs" : { + "Code expires in %d seconds" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다른 탭 닫기" + "value" : "코드가 %d초 후 만료됩니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Diğer Sekmeleri Kapat" + "value" : "Kod %d saniye içinde sona erer" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đóng các tab khác" + "value" : "Mã hết hạn sau %d giây" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "关闭其他标签页" + "value" : "代码将在 %d 秒后过期" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "關閉其他分頁" + "value" : "驗證碼將在 %d 秒後過期" } } } }, - "Close Others" : { + "Collapse All" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다른 항목 닫기" + "value" : "모두 축소" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Diğerlerini Kapat" + "value" : "Tümünü Daralt" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đóng các tab khác" + "value" : "Thu gọn tất cả" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "关闭其他" + "value" : "全部折叠" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "關閉其他" + "value" : "全部收合" } } } }, - "Close parameter panel" : { + "Collapse Junction Tables" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "매개변수 패널 닫기" + "value" : "조인 테이블 축소" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Parametre panelini kapat" + "value" : "Bağlantı Tablolarını Daralt" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đóng bảng tham số" + "value" : "Thu gọn bảng trung gian" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "关闭参数面板" + "value" : "折叠关联表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "關閉參數面板" + "value" : "摺疊關聯資料表" } } } }, - "Close preview" : { - "extractionState" : "stale", + "Collapse junction tables into many-to-many relationships" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "미리보기 닫기" + "value" : "조인 테이블을 다대다 관계로 축소" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Önizlemeyi kapat" + "value" : "Bağlantı tablolarını çoktan çoğa ilişkilere daralt" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đóng xem trước" + "value" : "Thu gọn bảng trung gian thành quan hệ nhiều-nhiều" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "关闭预览" + "value" : "将关联表折叠为多对多关系" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "關閉預覽" + "value" : "將關聯資料表摺疊為多對多關聯" } } } }, - "Close result tab" : { + "Collation" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "결과 탭 닫기" + "value" : "정렬 규칙" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sonuç sekmesini kapat" + "value" : "Karşılaştırma" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đóng tab kết quả" + "value" : "Đối chiếu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "关闭结果标签页" + "value" : "排序规则" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "關閉結果分頁" + "value" : "定序" } } } }, - "Close Result Tab" : { + "Collation and character set" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "콜레이션 및 문자 집합", + "state" : "translated" + } + } + } + }, + "Collation or character set change" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "콜레이션 또는 문자 집합 변경", + "state" : "translated" + } + } + } + }, + "Collation:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "결과 탭 닫기" + "value" : "정렬 규칙:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sonuç Sekmesini Kapat" + "value" : "Harmanlama:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đóng tab kết quả" + "value" : "Đối chiếu:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "关闭结果标签页" + "value" : "排序规则:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "關閉結果分頁" + "value" : "定序:" } } } }, - "Close Tab" : { + "Colon :" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "탭 닫기" + "value" : "콜론 :" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sekmeyi Kapat" + "value" : "İki Nokta :" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đóng tab" + "value" : "Dấu hai chấm :" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "关闭标签页" + "value" : "冒号 :" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "關閉分頁" + "value" : "冒號 :" } } } }, - "Close Tabs for Other Databases" : { + "Color" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다른 데이터베이스의 탭 닫기" + "value" : "색상" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Diğer Veritabanlarının Sekmelerini Kapat" + "value" : "Renk" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đóng tab của các cơ sở dữ liệu khác" + "value" : "Màu sắc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "关闭其他数据库的标签页" + "value" : "颜色" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "關閉其他資料庫的分頁" + "value" : "顏色" } } } }, - "Close Tabs for Other Schemas" : { + "Color %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다른 스키마의 탭 닫기" + "value" : "색상 %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Diğer Şemaların Sekmelerini Kapat" + "value" : "Renk %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đóng tab của các schema khác" + "value" : "Màu %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "关闭其他 Schema 的标签页" + "value" : "颜色 %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "關閉其他綱要的分頁" + "value" : "顏色 %@" } } } }, - "Close the open Sample connection before resetting it." : { + "Colors" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "재설정하기 전에 열려 있는 Sample 연결을 닫으십시오." + "value" : "색상" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sıfırlamadan önce açık olan Örnek bağlantısını kapatın." + "value" : "Renkler" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đóng kết nối Mẫu đang mở trước khi đặt lại." + "value" : "Màu sắc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重置前请先关闭已打开的示例连接。" + "value" : "颜色" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重設前請先關閉已開啟的範例連線。" - } - } - } - }, - "Close the open session for a connection." : { - - }, - "Close Window" : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "윈도우 닫기" + "value" : "顏色" } } } }, - "Closing now stops the run between statements. Statements that already ran stay applied." : { - - }, - "Closing this tab will discard all unsaved changes." : { - "extractionState" : "stale", + "Column" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 탭을 닫으면 저장하지 않은 모든 변경 사항이 폐기됩니다." + "value" : "열" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu sekmeyi kapatmak tüm kaydedilmemiş değişiklikleri siler." + "value" : "Sütun" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đóng tab này sẽ hủy tất cả thay đổi chưa lưu." + "value" : "Cột" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "关闭此标签页将丢弃所有未保存的更改。" + "value" : "列" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "關閉此分頁將捨棄所有未儲存的變更。" + "value" : "欄位" } } } }, - "Cloud data warehouse" : { + "Column Details" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "클라우드 데이터 웨어하우스" + "value" : "열 세부사항" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bulut veri ambarı" + "value" : "Sütun Ayrıntıları" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kho dữ liệu đám mây" + "value" : "Chi tiết cột" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "云数据仓库" + "value" : "列详情" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "雲端資料倉儲" + "value" : "欄位詳細資料" } } } }, - "Cloud Native" : { + "Column Name" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "클라우드 네이티브" + "value" : "열 이름" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bulut tabanlı" + "value" : "Sütun Adı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cloud Native" + "value" : "Tên cột" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "云原生" + "value" : "列名" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "雲端原生" + "value" : "欄位名稱" } } } }, - "Cloud SQL Auth Proxy" : { + "Column Reorder Failed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Cloud SQL Auth Proxy" + "value" : "열 순서 변경 실패" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Cloud SQL Kimlik Doğrulama Proxy'si" + "value" : "Sütun Yeniden Sıralama Başarısız" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cloud SQL Auth Proxy" + "value" : "Sắp xếp lại cột thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Cloud SQL Auth Proxy" + "value" : "列重排序失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Cloud SQL Auth Proxy" + "value" : "欄位重新排序失敗" } } } }, - "Cloud SQL Auth Proxy disconnected. Click to reconnect." : { + "Column count mismatch on line %d: expected %d columns, found %d." : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Column count mismatch on line %1$d: expected %2$d columns, found %3$d." + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Cloud SQL Auth Proxy의 연결이 끊어졌습니다. 클릭하여 다시 연결하십시오." + "value" : "%1$d번째 줄의 열 수가 일치하지 않습니다. 예상: %2$d개, 실제: %3$d개." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Cloud SQL Auth Proxy bağlantısı kesildi. Yeniden bağlanmak için tıklayın." + "value" : "%d. satırda sütun sayısı uyuşmuyor: %d sütun bekleniyordu, %d bulundu." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cloud SQL Auth Proxy đã ngắt kết nối. Nhấn để kết nối lại." + "value" : "Số cột không khớp ở dòng %d: cần %d cột, tìm thấy %d." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Cloud SQL Auth Proxy 已断开。点按可重新连接。" + "value" : "第%d行列数不匹配:期望%d列,实际%d列。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Cloud SQL Auth Proxy 已中斷連線。點按即可重新連線。" + "value" : "第 %1$d 行欄位數不符:預期 %2$d 個欄位,實際 %3$d 個。" } } } }, - "Cloud SQL Instance" : { + "Column count mismatch on line %lld: expected %lld columns, found %lld." : { + "extractionState" : "stale", "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Column count mismatch on line %1$lld: expected %2$lld columns, found %3$lld." + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Cloud SQL 인스턴스" + "value" : "%1$lld번째 줄의 열 수가 일치하지 않습니다. 예상: %2$lld개, 실제: %3$lld개." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Cloud SQL Örneği" + "value" : "Satır %lld'de sütun sayısı uyuşmazlığı: %lld sütun bekleniyordu, %lld bulundu." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phiên bản Cloud SQL" + "value" : "Số cột không khớp ở dòng %1$lld: mong đợi %2$lld cột, tìm thấy %3$lld." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Cloud SQL 实例" + "value" : "第 %lld 行列数不匹配:期望 %lld 列,实际 %lld 列。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Cloud SQL 執行個體" + "value" : "第 %1$lld 行欄位數不符:預期 %2$lld 個欄位,實際 %3$lld 個。" } } } }, - "cloud-sql-proxy not found. Install it with `brew install cloud-sql-proxy`, download it above, or choose the binary." : { + "Column name" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "cloud-sql-proxy를 찾을 수 없습니다. `brew install cloud-sql-proxy`로 설치하거나 위에서 다운로드하거나 바이너리를 선택하십시오." + "value" : "열 이름" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "cloud-sql-proxy bulunamadı. `brew install cloud-sql-proxy` ile yükleyin, yukarıdan indirin veya çalıştırılabilir dosyayı seçin." + "value" : "Sütun adı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy cloud-sql-proxy. Cài bằng `brew install cloud-sql-proxy`, tải xuống ở trên, hoặc chọn tệp thực thi." + "value" : "Tên cột" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未找到 cloud-sql-proxy。可用 `brew install cloud-sql-proxy` 安装、在上方下载,或直接选择可执行文件。" + "value" : "列名" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "找不到 cloud-sql-proxy。可用 `brew install cloud-sql-proxy` 安裝、在上方下載,或直接選擇執行檔。" + "value" : "欄位名稱" } } } }, - "cloud-sql-proxy was not found. Install it with `brew install cloud-sql-proxy`, or download it in the Cloud SQL Auth Proxy settings." : { + "Column names must be unique." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "cloud-sql-proxy를 찾을 수 없습니다. `brew install cloud-sql-proxy`로 설치하거나 Cloud SQL Auth Proxy 설정에서 다운로드하십시오." + "value" : "열 이름은 고유해야 합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "cloud-sql-proxy bulunamadı. `brew install cloud-sql-proxy` ile yükleyin veya Cloud SQL Auth Proxy ayarlarından indirin." + "value" : "Sütun adları benzersiz olmalıdır." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy cloud-sql-proxy. Cài bằng `brew install cloud-sql-proxy`, hoặc tải xuống trong cài đặt Cloud SQL Auth Proxy." + "value" : "Tên cột không được trùng nhau." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未找到 cloud-sql-proxy。可用 `brew install cloud-sql-proxy` 安装,或在 Cloud SQL Auth Proxy 设置中下载。" + "value" : "列名必须唯一。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "找不到 cloud-sql-proxy。可用 `brew install cloud-sql-proxy` 安裝,或在 Cloud SQL Auth Proxy 設定中下載。" + "value" : "欄位名稱必須是唯一的。" } } } }, - "Cloudflare Access needs a browser sign-in. Sign in at %@, then reconnect." : { + "Column order" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "열 순서", + "state" : "translated" + } + } + } + }, + "Column order differs. No statement is generated for reordering columns." : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "열 순서가 다릅니다. 열 순서를 바꾸는 구문은 생성되지 않습니다.", + "state" : "translated" + } + } + } + }, + "Column reorder failed: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Cloudflare Access에 브라우저 로그인이 필요합니다. %@에서 로그인한 후 다시 연결하십시오." + "value" : "열 순서 변경 실패: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Cloudflare Access tarayıcıyla oturum açmayı gerektiriyor. %@ adresinde oturum açın, sonra yeniden bağlanın." + "value" : "Sütun yeniden sıralama başarısız: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cloudflare Access cần đăng nhập qua trình duyệt. Đăng nhập tại %@, rồi kết nối lại." + "value" : "Sắp xếp lại cột thất bại: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Cloudflare Access需要浏览器登录。请在%@登录,然后重新连接。" + "value" : "列重排序失败:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Cloudflare Access 需要瀏覽器登入。請在 %@ 登入,然後重新連線。" + "value" : "欄位重新排序失敗:%@" } } } }, - "Cloudflare hostname is required" : { + "Column reorder is not supported for this database type" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Cloudflare 호스트 이름이 필요합니다" + "value" : "이 데이터베이스 유형에서는 열 순서 변경을 지원하지 않습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Cloudflare sunucu adı gerekli" + "value" : "Bu veritabanı türü için sütun yeniden sıralama desteklenmiyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cần hostname Cloudflare" + "value" : "Sắp xếp lại cột không được hỗ trợ cho loại cơ sở dữ liệu này" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "需要Cloudflare主机名" + "value" : "此数据库类型不支持列重排序" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "需要 Cloudflare 主機名稱" + "value" : "此資料庫類型不支援欄位重新排序" } } } }, - "Cloudflare Tunnel" : { + "Column-oriented OLAP for big data" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Cloudflare 터널" + "value" : "빅데이터용 열 지향 OLAP" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Cloudflare Tüneli" + "value" : "Büyük veri için sütun yönelimli OLAP" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cloudflare Tunnel" + "value" : "OLAP dạng cột cho dữ liệu lớn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Cloudflare隧道" + "value" : "面向大数据的列式OLAP" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Cloudflare 隧道" + "value" : "適用於大數據的欄式 OLAP" } } } }, - "Cloudflare tunnel disconnected. Click to reconnect." : { + "Column: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Cloudflare 터널의 연결이 끊어졌습니다. 클릭하여 다시 연결하십시오." + "value" : "열: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Cloudflare tüneli kesildi. Yeniden bağlanmak için tıklayın." + "value" : "Sütun: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cloudflare tunnel đã ngắt kết nối. Bấm để kết nối lại." + "value" : "Cột: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Cloudflare隧道已断开。点按以重新连接。" + "value" : "列:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Cloudflare 隧道已中斷。點按以重新連線。" + "value" : "欄位:%@" } } } }, - "cloudflared failed to start: %@" : { + "Columns" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "cloudflared를 시작하지 못했습니다: %@" + "value" : "열" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "cloudflared başlatılamadı: %@" + "value" : "Sütunlar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "cloudflared không khởi động được: %@" + "value" : "Cột" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "cloudflared启动失败:%@" + "value" : "列" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "cloudflared 啟動失敗:%@" + "value" : "欄位" } } } }, - "cloudflared failed to start." : { + "Columns (comma-separated)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "cloudflared를 시작하지 못했습니다." + "value" : "열(쉼표로 구분)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "cloudflared başlatılamadı." + "value" : "Sütunlar (virgülle ayrılmış)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "cloudflared không khởi động được." + "value" : "Các cột (phân tách bằng dấu phẩy)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "cloudflared启动失败。" + "value" : "列(逗号分隔)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "cloudflared 啟動失敗。" + "value" : "欄位(以逗號分隔)" } } } }, - "cloudflared not found. Install it with `brew install cloudflared`, or choose the binary above." : { + "Comfortable" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "cloudflared를 찾을 수 없습니다. `brew install cloudflared`로 설치하거나 위에서 바이너리를 선택하십시오." + "value" : "여유롭게" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "cloudflared bulunamadı. `brew install cloudflared` ile yükleyin veya yukarıdan ikili dosyayı seçin." + "value" : "Rahat" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy cloudflared. Cài đặt bằng `brew install cloudflared`, hoặc chọn tệp thực thi ở trên." + "value" : "Thoải mái" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未找到cloudflared。请使用`brew install cloudflared`安装,或在上方选择其二进制文件。" + "value" : "舒适" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "找不到 cloudflared。請使用 `brew install cloudflared` 安裝,或在上方選擇其二進位檔。" + "value" : "寬鬆" } } } }, - "cloudflared was not found. Install it with `brew install cloudflared`, or set its path in the connection's Cloudflare Tunnel settings." : { + "Comma ," : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "cloudflared를 찾을 수 없습니다. `brew install cloudflared`로 설치하거나 연결의 Cloudflare Tunnel 설정에서 경로를 지정하십시오." + "value" : "쉼표 ," } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "cloudflared bulunamadı. `brew install cloudflared` ile yükleyin veya bağlantının Cloudflare Tüneli ayarlarında yolunu belirtin." + "value" : "Virgül ," } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy cloudflared. Cài đặt bằng `brew install cloudflared`, hoặc đặt đường dẫn trong cài đặt Cloudflare Tunnel của kết nối." + "value" : "Dấu phẩy ," } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未找到cloudflared。请使用`brew install cloudflared`安装,或在该连接的Cloudflare隧道设置中设置其路径。" + "value" : "逗号 ," } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "找不到 cloudflared。請使用 `brew install cloudflared` 安裝,或在該連線的 Cloudflare 隧道設定中設定其路徑。" + "value" : "逗號 ," } } } }, - "cloudflared was not found. Set its path below first." : { + "Comma-separated values. Compatible with Excel and most tools." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "cloudflared를 찾을 수 없습니다. 먼저 아래에서 경로를 설정하십시오." + "value" : "쉼표로 구분된 값입니다. Excel 및 대부분의 도구와 호환됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "cloudflared bulunamadı. Önce aşağıda yolunu belirtin." + "value" : "Virgülle ayrılmış değerler. Excel ve çoğu araçla uyumlu." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy cloudflared. Hãy đặt đường dẫn bên dưới trước." + "value" : "Giá trị phân cách bằng dấu phẩy. Tương thích với Excel và hầu hết các công cụ." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未找到cloudflared。请先在下方设置其路径。" + "value" : "逗号分隔值。兼容 Excel 和大多数工具。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "找不到 cloudflared。請先在下方設定其路徑。" + "value" : "逗號分隔值。相容於 Excel 與大多數工具。" } } } }, - "Cluster" : { + "Command Line" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "클러스터" + "value" : "명령줄" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Cluster" + "value" : "Komut Satırı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cluster" + "value" : "Dòng lệnh" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "集群" + "value" : "命令行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "叢集" + "value" : "命令列" } } } }, - "Cluster Seed Nodes" : { + "Command Preview" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "클러스터 시드 노드" + "value" : "명령 미리보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Cluster Tohum Düğümleri" + "value" : "Komut Önizleme" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nút khởi tạo Cluster" + "value" : "Xem trước lệnh" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "集群种子节点" + "value" : "命令预览" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "叢集種子節點" + "value" : "指令預覽" } } } }, - "CMD" : { - "extractionState" : "stale", + "Command line tool failed: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "CMD" + "value" : "명령줄 도구 실패: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "CMD" + "value" : "Komut satırı aracı başarısız oldu: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "CMD" + "value" : "Công cụ dòng lệnh thất bại: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "CMD" + "value" : "命令行工具失败:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "CMD" + "value" : "命令列工具失敗:%@" } } } }, - "Code expired" : { + "Comment" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "코드 만료됨" + "value" : "주석" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kod süresi doldu" + "value" : "Yorum" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mã đã hết hạn" + "value" : "Ghi chú" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "代码已过期" + "value" : "注释" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "驗證碼已過期" + "value" : "註解" } } } }, - "Code expires in %d seconds" : { + "Comments" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "코드가 %d초 후 만료됩니다" + "value" : "주석" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kod %d saniye içinde sona erer" + "value" : "Yorumlar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mã hết hạn sau %d giây" + "value" : "Ghi chú" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "代码将在 %d 秒后过期" + "value" : "注释" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "驗證碼將在 %d 秒後過期" + "value" : "註解" } } } }, - "Code folding" : { - + "Comments and owners" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "주석 및 소유자", + "state" : "translated" + } + } + } }, - "collapse" : { - "extractionState" : "stale", + "Compact" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "접기" + "value" : "컴팩트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "daralt" + "value" : "Kompakt" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "thu gọn" + "value" : "Thu gọn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "收起" + "value" : "紧凑" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "收合" + "value" : "緊湊" } } } }, - "Collapse All" : { + "Compact Mode" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모두 축소" + "value" : "컴팩트 모드" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tümünü Daralt" + "value" : "Kompakt Mod" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thu gọn tất cả" + "value" : "Chế độ thu gọn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "全部折叠" + "value" : "紧凑模式" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "全部收合" + "value" : "緊湊模式" } } } }, - "Collapse Junction Tables" : { + "Compare" : { "localizations" : { "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "조인 테이블 축소" + "value" : "비교", + "state" : "translated" } - }, - "tr" : { + } + } + }, + "Compare %@ and write changes to %@." : { + "localizations" : { + "en" : { "stringUnit" : { - "state" : "translated", - "value" : "Bağlantı Tablolarını Daralt" + "state" : "new", + "value" : "Compare %1$@ and write changes to %2$@." } }, - "vi" : { + "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "Thu gọn bảng trung gian" + "value" : "%@을(를) 비교하고 변경 사항을 %@에 기록합니다.", + "state" : "translated" } - }, - "zh-Hans" : { + } + } + }, + "Compare & Sync" : { + "localizations" : { + "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "折叠关联表" + "value" : "비교 및 동기화", + "state" : "translated" } - }, - "zh-Hant" : { + } + } + }, + "Compare & Sync Databases…" : { + "localizations" : { + "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "摺疊關聯資料表" + "value" : "데이터베이스 비교 및 동기화…", + "state" : "translated" } } } }, - "Collapse junction tables into many-to-many relationships" : { + "Compare & Sync requires a license" : { "localizations" : { "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "조인 테이블을 다대다 관계로 축소" + "value" : "비교 및 동기화에는 라이선스가 필요합니다", + "state" : "translated" } - }, - "tr" : { + } + } + }, + "Compare Now" : { + "localizations" : { + "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "Bağlantı tablolarını çoktan çoğa ilişkilere daralt" + "value" : "지금 비교", + "state" : "translated" } - }, - "vi" : { + } + } + }, + "Compare lists the tables both sides share. Choose the tables to compare, then press Compare." : { + "localizations" : { + "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "Thu gọn bảng trung gian thành quan hệ nhiều-nhiều" + "value" : "비교는 양쪽이 공유하는 테이블을 나열합니다. 비교할 테이블을 선택한 다음 비교를 누르십시오.", + "state" : "translated" } - }, - "zh-Hans" : { + } + } + }, + "Compare structure or data" : { + "localizations" : { + "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "将关联表折叠为多对多关系" + "value" : "구조 또는 데이터 비교", + "state" : "translated" } - }, - "zh-Hant" : { + } + } + }, + "Compare structure or data between two connections and generate the sync script." : { + "localizations" : { + "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "將關聯資料表摺疊為多對多關聯" + "value" : "두 연결 사이의 구조 또는 데이터를 비교하고 동기화 스크립트를 생성합니다.", + "state" : "translated" } } } }, - "Collation" : { + "Compare the two databases" : { "localizations" : { "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "정렬 규칙" + "value" : "두 데이터베이스 비교", + "state" : "translated" } - }, - "tr" : { + } + } + }, + "Compare the two databases first." : { + "localizations" : { + "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "Karşılaştırma" + "value" : "먼저 두 데이터베이스를 비교하십시오.", + "state" : "translated" } - }, - "vi" : { + } + } + }, + "Compare/Sync with…" : { + "localizations" : { + "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "Đối chiếu" + "value" : "다음과 비교/동기화…", + "state" : "translated" } - }, - "zh-Hans" : { + } + } + }, + "Compared %@. %d differences. Nothing has been written." : { + "localizations" : { + "en" : { "stringUnit" : { - "state" : "translated", - "value" : "排序规则" + "state" : "new", + "value" : "Compared %1$@. %2$d differences. Nothing has been written." } }, - "zh-Hant" : { + "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "定序" + "value" : "%1$@을(를) 비교했습니다. 차이점 %2$d개. 아무것도 기록되지 않았습니다.", + "state" : "translated" } } } }, - "Collation and character set" : { - - }, - "Collation or character set change" : { - - }, - "Collation:" : { + "Compared %@. 1 difference. Nothing has been written." : { "localizations" : { "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "정렬 규칙:" + "value" : "%@을(를) 비교했습니다. 차이점 1개. 아무것도 기록되지 않았습니다.", + "state" : "translated" } - }, - "tr" : { + } + } + }, + "Compared columns" : { + "localizations" : { + "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "Harmanlama:" + "value" : "비교한 열", + "state" : "translated" } - }, - "vi" : { + } + } + }, + "Comparing only. Nothing has been written." : { + "localizations" : { + "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "Đối chiếu:" + "value" : "비교만 했습니다. 아무것도 기록되지 않았습니다.", + "state" : "translated" } - }, - "zh-Hans" : { + } + } + }, + "Comparison Options…" : { + "localizations" : { + "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "排序规则:" + "value" : "비교 옵션…", + "state" : "translated" } - }, - "zh-Hant" : { + } + } + }, + "Comparison cancelled." : { + "localizations" : { + "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "定序:" + "value" : "비교가 취소되었습니다.", + "state" : "translated" } } } }, - "Colon :" : { + "Complete Sign In" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "콜론 :" + "value" : "로그인 완료" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İki Nokta :" + "value" : "Oturum Açmayı Tamamla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dấu hai chấm :" + "value" : "Hoàn tất đăng nhập" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "冒号 :" + "value" : "完成登录" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "冒號 :" + "value" : "完成登入" } } } }, - "Color" : { + "Compress the file using Gzip" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "색상" + "value" : "Gzip으로 파일 압축" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Renk" + "value" : "Dosyayı Gzip ile sıkıştır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Màu sắc" + "value" : "Nén tệp bằng Gzip" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "颜色" + "value" : "使用 Gzip 压缩文件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顏色" + "value" : "使用 Gzip 壓縮檔案" } } } }, - "Color %@" : { + "Compression failed with exit status %d" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "색상 %@" + "value" : "압축 실패(종료 상태 %d)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Renk %@" + "value" : "Sıkıştırma %d çıkış koduyla başarısız oldu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Màu %@" + "value" : "Nén thất bại với mã thoát %d" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "颜色 %@" + "value" : "压缩失败,退出状态 %d" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顏色 %@" + "value" : "壓縮失敗,結束狀態 %d" } } } }, - "Colors" : { + "Condition" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "색상" + "value" : "조건" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Renkler" + "value" : "Koşul" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Màu sắc" + "value" : "Điều kiện" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "颜色" + "value" : "条件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顏色" + "value" : "條件" } } } }, - "Column" : { + "Config Host" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열" + "value" : "구성 호스트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sütun" + "value" : "Yapılandırma Sunucusu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cột" + "value" : "Máy chủ cấu hình" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "列" + "value" : "配置主机" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "欄位" + "value" : "設定主機" } } } }, - "Column comment" : { - - }, - "Column count mismatch on line %d: expected %d columns, found %d." : { + "Configure an AI provider in Settings to start chatting." : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Column count mismatch on line %1$d: expected %2$d columns, found %3$d." - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$d번째 줄의 열 수가 일치하지 않습니다. 예상: %2$d개, 실제: %3$d개." + "value" : "채팅을 시작하려면 설정에서 AI 제공업체를 구성하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%d. satırda sütun sayısı uyuşmuyor: %d sütun bekleniyordu, %d bulundu." + "value" : "Sohbet başlatmak için Ayarlar'dan bir yapay zeka sağlayıcısı yapılandırın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Số cột không khớp ở dòng %d: cần %d cột, tìm thấy %d." + "value" : "Cấu hình nhà cung cấp AI trong Cài đặt để bắt đầu trò chuyện." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "第%d行列数不匹配:期望%d列,实际%d列。" + "value" : "在设置中配置 AI 提供商以开始对话。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "第 %1$d 行欄位數不符:預期 %2$d 個欄位,實際 %3$d 個。" + "value" : "在設定中設定 AI 供應商以開始對話。" } } } }, - "Column count mismatch on line %lld: expected %lld columns, found %lld." : { - "extractionState" : "stale", + "Configure an active provider to enable inline suggestions." : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Column count mismatch on line %1$lld: expected %2$lld columns, found %3$lld." - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$lld번째 줄의 열 수가 일치하지 않습니다. 예상: %2$lld개, 실제: %3$lld개." + "value" : "인라인 제안을 사용하려면 활성 제공업체를 구성하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satır %lld'de sütun sayısı uyuşmazlığı: %lld sütun bekleniyordu, %lld bulundu." + "value" : "Satır içi önerileri etkinleştirmek için aktif bir sağlayıcı yapılandırın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Số cột không khớp ở dòng %1$lld: mong đợi %2$lld cột, tìm thấy %3$lld." + "value" : "Cấu hình một nhà cung cấp đang hoạt động để bật gợi ý nội tuyến." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "第 %lld 行列数不匹配:期望 %lld 列,实际 %lld 列。" + "value" : "配置活动提供方以启用内联建议。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "第 %1$lld 行欄位數不符:預期 %2$lld 個欄位,實際 %3$lld 個。" + "value" : "設定一個啟用中的供應商以開啟行內建議。" } } } }, - "Column default expression" : { - - }, - "Column Details" : { - "extractionState" : "stale", + "Confirm" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열 세부사항" + "value" : "확인" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sütun Ayrıntıları" + "value" : "Onayla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chi tiết cột" + "value" : "Xác nhận" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "列详情" + "value" : "确认" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "欄位詳細資料" + "value" : "確認" } } } }, - "Column name" : { + "Confirm Destructive Operation" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열 이름" + "value" : "파괴적 작업 확인" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sütun adı" + "value" : "Yıkıcı İşlemi Onayla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên cột" + "value" : "Xác nhận thao tác phá hủy" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "列名" + "value" : "确认破坏性操作" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "欄位名稱" + "value" : "確認破壞性操作" } } } }, - "Column Name" : { - "extractionState" : "stale", + "Confirm Writes" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열 이름" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "Sütun Adı" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "Tên cột" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "列名" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "欄位名稱" + "value" : "쓰기 확인" } } } }, - "Column names in result order" : { - - }, - "Column names must be unique." : { + "Confirm passphrase" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열 이름은 고유해야 합니다." + "value" : "패스프레이즈 확인" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sütun adları benzersiz olmalıdır." + "value" : "Parolayı onayla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên cột không được trùng nhau." + "value" : "Xác nhận cụm mật khẩu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "列名必须唯一。" + "value" : "确认密码短语" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "欄位名稱必須是唯一的。" + "value" : "確認密碼短語" } } } }, - "Column names, matching each row's value order" : { - - }, - "Column order" : { - - }, - "Column order differs. No statement is generated for reordering columns." : { - - }, - "Column Reorder Failed" : { + "Confirmation is required for this operation" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열 순서 변경 실패" + "value" : "이 작업은 확인이 필요합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sütun Yeniden Sıralama Başarısız" + "value" : "Bu işlem için onay gerekiyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sắp xếp lại cột thất bại" + "value" : "Thao tác này yêu cầu xác nhận" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "列重排序失败" + "value" : "此操作需要确认" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "欄位重新排序失敗" + "value" : "此操作需要確認" } } } }, - "Column reorder failed: %@" : { + "Connect" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열 순서 변경 실패: %@" + "value" : "연결" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sütun yeniden sıralama başarısız: %@" + "value" : "Bağlan" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sắp xếp lại cột thất bại: %@" + "value" : "Kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "列重排序失败:%@" + "value" : "连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "欄位重新排序失敗:%@" + "value" : "連線" } } } }, - "Column reorder is not supported for this database type" : { + "Connect %d Connections" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 데이터베이스 유형에서는 열 순서 변경을 지원하지 않습니다" + "value" : "%d개 연결에 접속" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu veritabanı türü için sütun yeniden sıralama desteklenmiyor" + "value" : "%d Bağlantıyı Bağla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sắp xếp lại cột không được hỗ trợ cho loại cơ sở dữ liệu này" + "value" : "Kết nối %d kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此数据库类型不支持列重排序" + "value" : "连接%d个连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此資料庫類型不支援欄位重新排序" + "value" : "連線 %d 個連線" } } } }, - "Column to filter on" : { - - }, - "Column to sort on" : { - - }, - "Column type, for a column match" : { - - }, - "Column-oriented OLAP for big data" : { + "Connect %lld Connections" : { + "extractionState" : "stale", "localizations" : { + "en" : { + "variations" : { + "plural" : { + "one" : { + "stringUnit" : { + "state" : "translated", + "value" : "Connect %lld Connection" + } + }, + "other" : { + "stringUnit" : { + "state" : "translated", + "value" : "Connect %lld Connections" + } + } + } + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "빅데이터용 열 지향 OLAP" + "value" : "%lld개 연결에 접속" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Büyük veri için sütun yönelimli OLAP" + "value" : "%lld Bağlantıyı Bağla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "OLAP dạng cột cho dữ liệu lớn" + "value" : "Kết nối %lld Kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "面向大数据的列式OLAP" + "value" : "连接 %lld 个连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "適用於大數據的欄式 OLAP" + "value" : "連線 %lld 個連線" } } } }, - "Column: %@" : { + "Connect Anyway" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열: %@" + "value" : "그래도 연결" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sütun: %@" + "value" : "Yine de Bağlan" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cột: %@" + "value" : "Vẫn kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "列:%@" + "value" : "仍然连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "欄位:%@" + "value" : "仍要連線" } } } }, - "Columns" : { + "Connect a Client" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열" + "value" : "클라이언트 연결" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sütunlar" + "value" : "Bir İstemci Bağla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cột" + "value" : "Kết nối client" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "列" + "value" : "连接客户端" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "欄位" + "value" : "連線用戶端" } } } }, - "Columns (comma-separated)" : { - "extractionState" : "stale", + "Connect a Client…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열(쉼표로 구분)" + "value" : "클라이언트 연결…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sütunlar (virgülle ayrılmış)" + "value" : "İstemci Bağla…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Các cột (phân tách bằng dấu phẩy)" + "value" : "Kết nối client…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "列(逗号分隔)" + "value" : "连接客户端…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "欄位(以逗號分隔)" + "value" : "連線用戶端…" } } } }, - "Columns in declaration order" : { - - }, - "Columns to select. Omit for all." : { - - }, - "Columns, indexes, foreign keys and an approximate row count for one table." : { - - }, - "Comfortable" : { + "Connect over private IP" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "여유롭게" + "value" : "비공개 IP로 연결" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Rahat" + "value" : "Özel IP üzerinden bağlan" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thoải mái" + "value" : "Kết nối qua IP riêng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "舒适" + "value" : "通过专用 IP 连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "寬鬆" + "value" : "透過專用 IP 連線" } } } }, - "Comma ," : { + "Connect to a saved database" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쉼표 ," + "value" : "저장된 데이터베이스에 연결" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Virgül ," + "value" : "Kayıtlı bir veritabanına bağlan" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dấu phẩy ," + "value" : "Kết nối tới cơ sở dữ liệu đã lưu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "逗号 ," + "value" : "连接到已保存的数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "逗號 ," + "value" : "連線到已儲存的資料庫" } } } }, - "Comma-separated tables to use. All loaded tables when omitted" : { - - }, - "Comma-separated values. Compatible with Excel and most tools." : { + "Connect to load the database list." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쉼표로 구분된 값입니다. Excel 및 대부분의 도구와 호환됩니다." + "value" : "데이터베이스 목록을 불러오려면 연결하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Virgülle ayrılmış değerler. Excel ve çoğu araçla uyumlu." + "value" : "Veritabanı listesini yüklemek için bağlanın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giá trị phân cách bằng dấu phẩy. Tương thích với Excel và hầu hết các công cụ." + "value" : "Kết nối để tải danh sách cơ sở dữ liệu." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "逗号分隔值。兼容 Excel 和大多数工具。" + "value" : "连接以加载数据库列表。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "逗號分隔值。相容於 Excel 與大多數工具。" + "value" : "連線以載入資料庫清單。" } } } }, - "Command Line" : { + "Connect to popular databases with full feature support" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "명령줄" + "value" : "모든 기능을 지원하는 인기 데이터베이스에 연결" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Komut Satırı" + "value" : "Tam özellik desteğiyle popüler veritabanlarına bağlanın" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dòng lệnh" + "value" : "Kết nối với các cơ sở dữ liệu phổ biến với đầy đủ tính năng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "命令行" + "value" : "连接主流数据库,功能全面" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "命令列" + "value" : "連線主流資料庫,功能完整支援" } } } }, - "Command line tool failed: %@" : { + "Connect to the database before starting this operation." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "명령줄 도구 실패: %@" + "value" : "이 작업을 시작하기 전에 데이터베이스에 연결하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Komut satırı aracı başarısız oldu: %@" + "value" : "Bu işlemi başlatmadan önce veritabanına bağlanın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Công cụ dòng lệnh thất bại: %@" + "value" : "Kết nối tới cơ sở dữ liệu trước khi bắt đầu thao tác này." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "命令行工具失败:%@" + "value" : "开始此操作前请先连接数据库。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "命令列工具失敗:%@" + "value" : "開始此操作前請先連線資料庫。" } } } }, - "Command Preview" : { - "extractionState" : "stale", + "Connect to the internet to verify your license." : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Connect to the internet to verify your license." + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "명령 미리보기" + "value" : "라이선스를 확인하려면 인터넷에 연결하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Komut Önizleme" + "value" : "Lisansınızı doğrulamak için internete bağlanın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xem trước lệnh" + "value" : "Kết nối internet để xác minh giấy phép của bạn." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "命令预览" + "value" : "请连接互联网以验证您的许可证。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "指令預覽" + "value" : "請連線到網際網路以驗證你的授權。" } } } }, - "Comment" : { + "Connected" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "주석" + "value" : "연결됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yorum" + "value" : "Bağlı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ghi chú" + "value" : "Đã kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "注释" + "value" : "已连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "註解" + "value" : "已連線" } } } }, - "COMMENT" : { + "Connected Clients" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "COMMENT" + "value" : "연결된 클라이언트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "COMMENT" + "value" : "Bağlı İstemciler" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "COMMENT" + "value" : "Client đã kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "COMMENT" + "value" : "已连接客户端" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "COMMENT" + "value" : "已連線的用戶端" } } } }, - "Comments" : { + "Connected Threads" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "주석" + "value" : "연결된 스레드" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yorumlar" + "value" : "Bağlı İş Parçacıkları" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ghi chú" + "value" : "Luồng đã kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "注释" + "value" : "已连接线程" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "註解" + "value" : "已連線的執行緒" } } } }, - "Comments and owners" : { - - }, - "Compact" : { + "Connecting" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "컴팩트" + "value" : "연결 중" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kompakt" + "value" : "Bağlanıyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thu gọn" + "value" : "Đang kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "紧凑" + "value" : "连接中" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "緊湊" + "value" : "連線中" } } } }, - "Compact Mode" : { + "Connecting to %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "컴팩트 모드" + "value" : "%@에 연결 중" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kompakt Mod" + "value" : "%@ bağlantısı kuruluyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chế độ thu gọn" + "value" : "Đang kết nối tới %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "紧凑模式" + "value" : "正在连接%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "緊湊模式" - } - } - } - }, - "Compare" : { - - }, - "Compare & Sync" : { - - }, - "Compare & Sync Databases…" : { - - }, - "Compare & Sync requires a license" : { - - }, - "Compare %@ and write changes to %@." : { - "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Compare %1$@ and write changes to %2$@." - } - } - } - }, - "Compare lists the tables both sides share. Choose the tables to compare, then press Compare." : { - - }, - "Compare Now" : { - - }, - "Compare structure or data" : { - - }, - "Compare structure or data between two connections and generate the sync script." : { - - }, - "Compare the two databases" : { - - }, - "Compare the two databases first." : { - - }, - "Compare/Sync with…" : { - - }, - "Compared %@. %d differences. Nothing has been written." : { - "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Compared %1$@. %2$d differences. Nothing has been written." + "value" : "正在連線到 %@" } } } }, - "Compared %@. 1 difference. Nothing has been written." : { - - }, - "Compared columns" : { - - }, - "Comparing only. Nothing has been written." : { - - }, - "Comparison cancelled." : { - - }, - "Comparison operator" : { - - }, - "Comparison Options…" : { - - }, - "Complete Sign In" : { + "Connecting to '%@' timed out." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "로그인 완료" + "value" : "'%@' 연결 시간이 초과되었습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Oturum Açmayı Tamamla" + "value" : "'%@' bağlantısı zaman aşımına uğradı." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hoàn tất đăng nhập" + "value" : "Kết nối tới '%@' đã hết thời gian chờ." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "完成登录" + "value" : "连接'%@'超时。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "完成登入" + "value" : "連線到 '%@' 已逾時。" } } } }, - "Compress the file using Gzip" : { - "extractionState" : "stale", + "Connecting…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Gzip으로 파일 압축" + "value" : "연결 중…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dosyayı Gzip ile sıkıştır" + "value" : "Bağlanıyor…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nén tệp bằng Gzip" + "value" : "Đang kết nối…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "使用 Gzip 压缩文件" + "value" : "连接中…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "使用 Gzip 壓縮檔案" + "value" : "連線中…" } } } }, - "Compression failed with exit status %d" : { + "Connection" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "압축 실패(종료 상태 %d)" + "value" : "연결" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sıkıştırma %d çıkış koduyla başarısız oldu" + "value" : "Bağlantı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nén thất bại với mã thoát %d" + "value" : "Kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "压缩失败,退出状态 %d" + "value" : "连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "壓縮失敗,結束狀態 %d" + "value" : "連線" } } } }, - "Condition" : { + "Connection \"%@\" has a script that will run before connecting:\n\n%@" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Connection \"%1$@\" has a script that will run before connecting:\n\n%2$@" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "조건" + "value" : "연결 \"%1$@\"에는 연결 전에 실행될 스크립트가 있습니다:\n\n%2$@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Koşul" + "value" : "\"%@\" bağlantısının bağlanmadan önce çalışacak bir betiği var:\n\n%@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Điều kiện" + "value" : "Kết nối \"%@\" có một script sẽ chạy trước khi kết nối:\n\n%@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "条件" + "value" : "连接\"%@\"有一个将在连接前运行的脚本:\n\n%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "條件" + "value" : "連線「%1$@」有一個將在連線前執行的指令碼:\n\n%2$@" } } } }, - "Config Host" : { + "Connection Access" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "구성 호스트" + "value" : "연결 접근 권한" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yapılandırma Sunucusu" + "value" : "Bağlantı Erişimi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Máy chủ cấu hình" + "value" : "Quyền truy cập kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "配置主机" + "value" : "连接访问权限" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "設定主機" + "value" : "連線存取權限" } } } }, - "Configure an active provider to enable inline suggestions." : { + "Connection Failed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "인라인 제안을 사용하려면 활성 제공업체를 구성하십시오." + "value" : "연결 실패" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satır içi önerileri etkinleştirmek için aktif bir sağlayıcı yapılandırın." + "value" : "Bağlantı Başarısız" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cấu hình một nhà cung cấp đang hoạt động để bật gợi ý nội tuyến." + "value" : "Kết nối thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "配置活动提供方以启用内联建议。" + "value" : "连接失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "設定一個啟用中的供應商以開啟行內建議。" + "value" : "連線失敗" } } } }, - "Configure an AI provider in Settings to start chatting." : { + "Connection Mode" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "채팅을 시작하려면 설정에서 AI 제공업체를 구성하십시오." + "value" : "연결 모드" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sohbet başlatmak için Ayarlar'dan bir yapay zeka sağlayıcısı yapılandırın." + "value" : "Bağlantı Modu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cấu hình nhà cung cấp AI trong Cài đặt để bắt đầu trò chuyện." + "value" : "Chế độ kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在设置中配置 AI 提供商以开始对话。" + "value" : "连接模式" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在設定中設定 AI 供應商以開始對話。" + "value" : "連線模式" } } } }, - "Confirm" : { + "Connection Not Found" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "확인" + "value" : "연결을 찾을 수 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Onayla" + "value" : "Bağlantı Bulunamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xác nhận" + "value" : "Không tìm thấy kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "确认" + "value" : "未找到连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "確認" + "value" : "找不到連線" } } } }, - "Confirm Destructive Operation" : { + "Connection Options" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "파괴적 작업 확인" + "value" : "연결 옵션" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yıkıcı İşlemi Onayla" + "value" : "Bağlantı seçenekleri" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xác nhận thao tác phá hủy" + "value" : "Tùy chọn kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "确认破坏性操作" + "value" : "连接选项" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "確認破壞性操作" + "value" : "連線選項" } } } }, - "Confirm passphrase" : { + "Connection Status" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "패스프레이즈 확인" + "value" : "연결 상태" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Parolayı onayla" + "value" : "Bağlantı Durumu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xác nhận cụm mật khẩu" + "value" : "Trạng thái kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "确认密码短语" + "value" : "连接状态" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "確認密碼短語" + "value" : "連線狀態" } } } }, - "Confirm Writes" : { + "Connection Switcher" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쓰기 확인" - } - } - } - }, - "Confirmation is required for this operation" : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "이 작업은 확인이 필요합니다" + "value" : "연결 전환기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu işlem için onay gerekiyor" + "value" : "Bağlantı Değiştirici" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thao tác này yêu cầu xác nhận" + "value" : "Chuyển đổi kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此操作需要确认" + "value" : "切换连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此操作需要確認" + "value" : "切換連線" } } } }, - "Connect" : { + "Connection Test Failed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결" + "value" : "연결 테스트 실패" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlan" + "value" : "Bağlantı Testi Başarısız" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối" + "value" : "Kiểm tra kết nối thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接" + "value" : "连接测试失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線" + "value" : "連線測試失敗" } } } }, - "Connect %d Connections" : { + "Connection Type" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%d개 연결에 접속" + "value" : "연결 유형" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%d Bağlantıyı Bağla" + "value" : "Bağlantı Türü" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối %d kết nối" + "value" : "Loại kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接%d个连接" + "value" : "连接类型" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線 %d 個連線" + "value" : "連線類型" } } } }, - "Connect %lld Connections" : { - "extractionState" : "stale", + "Connection URL" : { "localizations" : { - "en" : { - "variations" : { - "plural" : { - "one" : { - "stringUnit" : { - "state" : "translated", - "value" : "Connect %lld Connection" - } - }, - "other" : { - "stringUnit" : { - "state" : "translated", - "value" : "Connect %lld Connections" - } - } - } - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%lld개 연결에 접속" + "value" : "연결 URL" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%lld Bağlantıyı Bağla" + "value" : "Bağlantı URL'si" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối %lld Kết nối" + "value" : "URL kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接 %lld 个连接" + "value" : "连接 URL" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線 %lld 個連線" + "value" : "連線 URL" } } } }, - "Connect a Client" : { + "Connection URL cannot be empty" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "클라이언트 연결" + "value" : "연결 URL은 비워 둘 수 없습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bir İstemci Bağla" + "value" : "Bağlantı URL'si boş olamaz" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối client" + "value" : "URL kết nối không được để trống" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接客户端" + "value" : "连接 URL 不能为空" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線用戶端" + "value" : "連線 URL 不能為空" } } } }, - "Connect a Client…" : { + "Connection URL must include a host" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "클라이언트 연결…" + "value" : "연결 URL에 호스트가 포함되어야 합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İstemci Bağla…" + "value" : "Bağlantı URL'si bir sunucu içermeli" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối client…" + "value" : "URL kết nối phải bao gồm host" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接客户端…" + "value" : "连接 URL 必须包含主机" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線用戶端…" + "value" : "連線 URL 必須包含主機" } } } }, - "Connect Anyway" : { + "Connection failed: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "그래도 연결" + "value" : "연결 실패: %@" + } + } + } + }, + "Connection is read only for external clients" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "외부 클라이언트에서 이 연결은 읽기 전용입니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yine de Bağlan" + "value" : "Bağlantı dış istemciler için salt okunur" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Vẫn kết nối" + "value" : "Kết nối chỉ đọc với client bên ngoài" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "仍然连接" + "value" : "连接对外部客户端为只读" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "仍要連線" + "value" : "連線對外部用戶端為唯讀" } } } }, - "Connect over private IP" : { + "Connection is read-only for external clients" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "비공개 IP로 연결" + "value" : "외부 클라이언트에서 이 연결은 읽기 전용입니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Özel IP üzerinden bağlan" + "value" : "Bağlantı harici istemciler için salt okunurdur" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối qua IP riêng" + "value" : "Kết nối ở chế độ chỉ đọc với client bên ngoài" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "通过专用 IP 连接" + "value" : "对外部客户端而言,该连接为只读" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "透過專用 IP 連線" + "value" : "此連線對外部用戶端為唯讀" } } } }, - "Connect to a saved database" : { + "Connection is read-only. Destructive operations are not permitted." : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "저장된 데이터베이스에 연결" + "value" : "연결이 읽기 전용입니다. 파괴적 작업은 허용되지 않습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kayıtlı bir veritabanına bağlan" + "value" : "Bağlantı salt okunur. Yıkıcı işlemlere izin verilmez." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối tới cơ sở dữ liệu đã lưu" + "value" : "Kết nối chỉ đọc. Không cho phép các thao tác phá hủy." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接到已保存的数据库" + "value" : "连接为只读。不允许破坏性操作。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線到已儲存的資料庫" + "value" : "連線為唯讀。不允許破壞性操作。" } } } }, - "Connect to load the database list." : { + "Connection is read-only. Set safe mode to Confirm Writes or higher to allow this tool." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 목록을 불러오려면 연결하십시오." + "value" : "연결이 읽기 전용입니다. 이 도구를 사용하려면 안전 모드를 쓰기 확인 이상으로 설정하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı listesini yüklemek için bağlanın." + "value" : "Bağlantı salt okunur. Bu araca izin vermek için güvenli modu Yazmaları Onayla veya üstüne ayarlayın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối để tải danh sách cơ sở dữ liệu." + "value" : "Kết nối chỉ đọc. Đặt chế độ an toàn thành Xác nhận ghi hoặc cao hơn để cho phép công cụ này." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接以加载数据库列表。" + "value" : "连接为只读。请将安全模式设为\"确认写入\"或更高级别以允许此工具。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線以載入資料庫清單。" + "value" : "連線為唯讀。請將安全模式設為「確認寫入」或更高層級以允許此工具。" } } } }, - "Connect to popular databases with full feature support" : { + "Connection limit" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 기능을 지원하는 인기 데이터베이스에 연결" + "value" : "연결 제한" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tam özellik desteğiyle popüler veritabanlarına bağlanın" + "value" : "Bağlantı limiti" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối với các cơ sở dữ liệu phổ biến với đầy đủ tính năng" + "value" : "Giới hạn kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接主流数据库,功能全面" + "value" : "连接数限制" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線主流資料庫,功能完整支援" + "value" : "連線數上限" } } } }, - "Connect to the database before starting this operation." : { + "Connection lost" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 작업을 시작하기 전에 데이터베이스에 연결하십시오." + "value" : "연결 끊김" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu işlemi başlatmadan önce veritabanına bağlanın." + "value" : "Bağlantı kesildi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối tới cơ sở dữ liệu trước khi bắt đầu thao tác này." + "value" : "Mất kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "开始此操作前请先连接数据库。" + "value" : "连接丢失" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開始此操作前請先連線資料庫。" + "value" : "連線中斷" } } } }, - "Connect to the internet to verify your license." : { + "Connection name" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Connect to the internet to verify your license." - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "라이선스를 확인하려면 인터넷에 연결하십시오." + "value" : "연결 이름" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Lisansınızı doğrulamak için internete bağlanın." + "value" : "Bağlantı adı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối internet để xác minh giấy phép của bạn." + "value" : "Tên kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "请连接互联网以验证您的许可证。" + "value" : "连接名称" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "請連線到網際網路以驗證你的授權。" + "value" : "連線名稱" } } } }, - "connected" : { + "Connection name is required" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결됨" + "value" : "연결 이름이 필요합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "bağlı" + "value" : "Bağlantı adı gerekli" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "đã kết nối" + "value" : "Cần tên kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已连接" + "value" : "连接名称为必填项" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已連線" + "value" : "連線名稱為必填項目" } } } }, - "Connected" : { + "Connection not found" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결됨" + "value" : "연결을 찾을 수 없습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlı" + "value" : "Bağlantı bulunamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã kết nối" + "value" : "Không tìm thấy kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已连接" + "value" : "未找到连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已連線" + "value" : "找不到連線" } } } }, - "Connected Clients" : { + "Connection policy" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결된 클라이언트" + "value" : "연결 정책" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlı İstemciler" + "value" : "Bağlantı politikası" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Client đã kết nối" + "value" : "Chính sách kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已连接客户端" + "value" : "连接策略" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已連線的用戶端" + "value" : "連線原則" } } } }, - "Connected Threads" : { + "Connection status" : { + "comment" : "Toolbar item tooltip for the status section of the toolbar.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결된 스레드" + "value" : "연결 상태" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlı İş Parçacıkları" + "value" : "Bağlantı durumu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Luồng đã kết nối" + "value" : "Trạng thái kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已连接线程" + "value" : "连接状态" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已連線的執行緒" + "value" : "連線狀態" } } } }, - "connecting" : { + "Connection succeeded" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 중" + "value" : "연결 성공" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "bağlanıyor" + "value" : "Bağlantı başarılı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "đang kết nối" + "value" : "Kết nối thành công" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在连接" + "value" : "连接成功" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在連線" + "value" : "連線成功" } } } }, - "Connecting" : { - "extractionState" : "stale", + "Connection successful" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 중" + "value" : "연결 성공" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlanıyor" + "value" : "Bağlantı başarılı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang kết nối" + "value" : "Kết nối thành công" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接中" + "value" : "连接成功" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線中" + "value" : "連線成功" } } } }, - "Connecting to '%@' timed out." : { + "Connection test failed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "'%@' 연결 시간이 초과되었습니다." + "value" : "연결 테스트 실패" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "'%@' bağlantısı zaman aşımına uğradı." + "value" : "Bağlantı testi başarısız" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối tới '%@' đã hết thời gian chờ." + "value" : "Kiểm tra kết nối thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接'%@'超时。" + "value" : "连接测试失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線到 '%@' 已逾時。" + "value" : "連線測試失敗" } } } }, - "Connecting to %@" : { + "Connection: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@에 연결 중" + "value" : "연결: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ bağlantısı kuruluyor" + "value" : "Bağlantı: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang kết nối tới %@" + "value" : "Kết nối: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在连接%@" + "value" : "连接:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在連線到 %@" + "value" : "連線:%@" } } } }, - "Connecting…" : { - "extractionState" : "stale", + "Connection: %@, %@" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Connection: %1$@, %2$@" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 중…" + "value" : "연결: %1$@, %2$@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlanıyor…" + "value" : "Bağlantı: %1$@, %2$@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang kết nối…" + "value" : "Kết nối: %1$@, %2$@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接中…" + "value" : "连接:%1$@,%2$@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線中…" + "value" : "連線:%1$@, %2$@" } } } }, - "Connection" : { + "Connections" : { "localizations" : { "ko" : { "stringUnit" : { @@ -29121,7 +29654,7 @@ "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı" + "value" : "Bağlantılar" } }, "vi" : { @@ -29144,108923 +29677,108137 @@ } } }, - "Connection \"%@\" has a script that will run before connecting:\n\n%@" : { + "Connections found in %@" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Connection \"%1$@\" has a script that will run before connecting:\n\n%2$@" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 \"%1$@\"에는 연결 전에 실행될 스크립트가 있습니다:\n\n%2$@" + "value" : "%@에서 찾은 연결" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "\"%@\" bağlantısının bağlanmadan önce çalışacak bir betiği var:\n\n%@" + "value" : "%@ içinde bulunan bağlantılar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối \"%@\" có một script sẽ chạy trước khi kết nối:\n\n%@" + "value" : "Các kết nối tìm thấy trong %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接\"%@\"有一个将在连接前运行的脚本:\n\n%@" + "value" : "在 %@ 中找到的连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線「%1$@」有一個將在連線前執行的指令碼:\n\n%2$@" + "value" : "在 %@ 中找到的連線" } } } }, - "Connection Access" : { + "Connections:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 접근 권한" + "value" : "연결:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı Erişimi" + "value" : "Bağlantılar:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Quyền truy cập kết nối" + "value" : "Kết nối:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接访问权限" + "value" : "连接:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線存取權限" + "value" : "連線:" } } } }, - "Connection display name" : { - - }, - "connection failed" : { + "Constraint name" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 실패" + "value" : "제약 조건 이름" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "bağlantı başarısız" + "value" : "Kısıt adı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "kết nối thất bại" + "value" : "Tên ràng buộc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接失败" + "value" : "约束名称" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線失敗" + "value" : "約束名稱" } } } }, - "Connection Failed" : { + "Container service name, may be unreachable" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 실패" + "value" : "컨테이너 서비스 이름이므로 연결할 수 없을 수 있습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı Başarısız" + "value" : "Container servis adı, erişilemeyebilir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối thất bại" + "value" : "Tên dịch vụ container, có thể không truy cập được" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接失败" + "value" : "容器服务名称,可能无法访问" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線失敗" + "value" : "容器服務名稱,可能無法連線" } } } }, - "Connection failed: %@" : { - "extractionState" : "stale", + "Context" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 실패: %@" + "value" : "컨텍스트" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Bağlam" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ngữ cảnh" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "上下文" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "內容脈絡" } } } }, - "Connection is read only for external clients" : { + "Continue" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "외부 클라이언트에서 이 연결은 읽기 전용입니다" + "value" : "계속" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı dış istemciler için salt okunur" + "value" : "Devam" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối chỉ đọc với client bên ngoài" + "value" : "Tiếp tục" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接对外部客户端为只读" + "value" : "继续" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線對外部用戶端為唯讀" + "value" : "繼續" } } } }, - "Connection is read-only for external clients" : { - "extractionState" : "stale", + "Control Background" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "외부 클라이언트에서 이 연결은 읽기 전용입니다" + "value" : "컨트롤 배경" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı harici istemciler için salt okunurdur" + "value" : "Kontrol Arka Planı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối ở chế độ chỉ đọc với client bên ngoài" + "value" : "Nền điều khiển" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "对外部客户端而言,该连接为只读" + "value" : "控件背景" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此連線對外部用戶端為唯讀" + "value" : "控制項背景" } } } }, - "Connection is read-only. Destructive operations are not permitted." : { - "extractionState" : "stale", + "Controls how external clients (Raycast, Cursor, Claude Desktop) access this connection. Tokens cannot exceed this level even with full-access scope." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결이 읽기 전용입니다. 파괴적 작업은 허용되지 않습니다." + "value" : "외부 클라이언트(Raycast, Cursor, Claude Desktop)가 이 연결에 접근하는 방식을 제어합니다. full-access 범위의 토큰도 이 수준을 초과할 수 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı salt okunur. Yıkıcı işlemlere izin verilmez." + "value" : "Harici istemcilerin (Raycast, Cursor, Claude Desktop) bu bağlantıya nasıl erişeceğini kontrol eder. Token'lar tam erişim kapsamına sahip olsa bile bu düzeyi aşamaz." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối chỉ đọc. Không cho phép các thao tác phá hủy." + "value" : "Kiểm soát cách các client bên ngoài (Raycast, Cursor, Claude Desktop) truy cập kết nối này. Token không thể vượt quá mức này kể cả khi có phạm vi truy cập đầy đủ." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接为只读。不允许破坏性操作。" + "value" : "控制外部客户端(Raycast、Cursor、Claude Desktop)如何访问该连接。即使具有完全访问权限,令牌也无法超出此级别。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線為唯讀。不允許破壞性操作。" + "value" : "控制外部用戶端(Raycast、Cursor、Claude Desktop)如何存取此連線。即使具有完整存取範圍,權杖也無法超出此層級。" } } } }, - "Connection is read-only. Set safe mode to Confirm Writes or higher to allow this tool." : { + "Conversation History" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결이 읽기 전용입니다. 이 도구를 사용하려면 안전 모드를 쓰기 확인 이상으로 설정하십시오." + "value" : "대화 기록" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı salt okunur. Bu araca izin vermek için güvenli modu Yazmaları Onayla veya üstüne ayarlayın." + "value" : "Sohbet Geçmişi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối chỉ đọc. Đặt chế độ an toàn thành Xác nhận ghi hoặc cao hơn để cho phép công cụ này." + "value" : "Lịch sử hội thoại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接为只读。请将安全模式设为\"确认写入\"或更高级别以允许此工具。" + "value" : "对话历史" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線為唯讀。請將安全模式設為「確認寫入」或更高層級以允許此工具。" + "value" : "對話記錄" } } } }, - "Connection it ran on" : { - - }, - "Connection limit" : { + "Conversation history" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 제한" + "value" : "대화 기록" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı limiti" + "value" : "Konuşma geçmişi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giới hạn kết nối" + "value" : "Lịch sử hội thoại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接数限制" + "value" : "对话历史" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線數上限" + "value" : "對話記錄" } } } }, - "Connection lost" : { + "Convert NULL to EMPTY" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 끊김" + "value" : "NULL을 EMPTY로 변환" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı kesildi" + "value" : "NULL'u BOŞ yap" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mất kết nối" + "value" : "Chuyển NULL thành RỖNG" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接丢失" + "value" : "将 NULL 转换为空" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線中斷" + "value" : "將 NULL 轉換為空" } } } }, - "Connection Mode" : { + "Convert NULL to empty" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 모드" + "value" : "NULL을 빈 값으로 변환" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı Modu" + "value" : "NULL'u boş yap" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chế độ kết nối" + "value" : "Chuyển NULL thành rỗng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接模式" + "value" : "将 NULL 转换为空" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線模式" + "value" : "將 NULL 轉換為空" } } } }, - "Connection name" : { + "Convert line break to space" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 이름" + "value" : "줄바꿈을 공백으로 변환" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı adı" + "value" : "Satır sonunu boşluğa çevir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên kết nối" + "value" : "Chuyển xuống dòng thành dấu cách" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接名称" + "value" : "将换行转换为空格" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線名稱" + "value" : "將換行轉換為空格" } } } }, - "Connection name is required" : { + "Coordination & Config" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 이름이 필요합니다" + "value" : "조정 및 구성" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı adı gerekli" + "value" : "Koordinasyon ve yapılandırma" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cần tên kết nối" + "value" : "Điều phối & cấu hình" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接名称为必填项" + "value" : "协调与配置" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線名稱為必填項目" + "value" : "協調與設定" } } } }, - "Connection not found" : { + "Copied" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결을 찾을 수 없습니다" + "value" : "복사됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı bulunamadı" + "value" : "Kopyalandı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy kết nối" + "value" : "Đã sao chép" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未找到连接" + "value" : "已复制" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "找不到連線" + "value" : "已複製" } } } }, - "Connection Not Found" : { - "extractionState" : "stale", + "Copied to clipboard" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결을 찾을 수 없음" + "value" : "클립보드에 복사됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı Bulunamadı" + "value" : "Panoya kopyalandı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy kết nối" + "value" : "Đã sao chép" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未找到连接" + "value" : "已复制到剪贴板" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "找不到連線" + "value" : "已複製到剪貼簿" } } } }, - "Connection Options" : { + "Copied!" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 옵션" + "value" : "복사됨!" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı seçenekleri" + "value" : "Kopyalandı!" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tùy chọn kết nối" + "value" : "Đã sao chép!" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接选项" + "value" : "已复制!" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線選項" + "value" : "已複製!" } } } }, - "Connection policy" : { + "Copilot language server binary not found" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 정책" + "value" : "Copilot 언어 서버 바이너리를 찾을 수 없습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı politikası" + "value" : "Copilot dil sunucusu ikili dosyası bulunamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chính sách kết nối" + "value" : "Không tìm thấy binary của Copilot language server" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接策略" + "value" : "未找到 Copilot 语言服务器可执行文件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線原則" + "value" : "找不到 Copilot 語言伺服器執行檔" } } } }, - "Connection status" : { - "comment" : "Toolbar item tooltip for the status section of the toolbar.", - "isCommentAutoGenerated" : true, + "Copilot server is not running" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 상태" + "value" : "Copilot 서버가 실행 중이 아닙니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı durumu" + "value" : "Copilot sunucusu çalışmıyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trạng thái kết nối" + "value" : "Copilot server không chạy" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接状态" + "value" : "Copilot 服务器未运行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線狀態" + "value" : "Copilot 伺服器未執行" } } } }, - "Connection Status" : { - "extractionState" : "stale", + "Copilot subscription inactive" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 상태" + "value" : "Copilot 구독이 비활성 상태입니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı Durumu" + "value" : "Copilot aboneliği aktif değil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trạng thái kết nối" + "value" : "Gói Copilot không hoạt động" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接状态" + "value" : "Copilot 订阅未激活" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線狀態" + "value" : "Copilot 訂閱未啟用" } } } }, - "Connection succeeded" : { + "Copy" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 성공" + "value" : "복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı başarılı" + "value" : "Kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối thành công" + "value" : "Sao chép" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接成功" + "value" : "复制" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線成功" + "value" : "複製" } } } }, - "Connection successful" : { + "Copy %lld Names" : { + "comment" : "A button that copies the names of the selected containers to the clipboard.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 성공" + "value" : "이름 %lld개 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı başarılı" + "value" : "%lld Adı Kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối thành công" + "value" : "Sao chép %lld tên" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接成功" + "value" : "复制 %lld 个名称" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線成功" + "value" : "複製 %lld 個名稱" } } } }, - "Connection Switcher" : { - "extractionState" : "stale", + "Copy All" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 전환기" + "value" : "모두 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı Değiştirici" + "value" : "Tümünü Kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển đổi kết nối" + "value" : "Sao chép tất cả" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "切换连接" + "value" : "全部复制" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "切換連線" + "value" : "全部複製" } } } }, - "Connection test failed" : { + "Copy As" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 테스트 실패" + "value" : "형식으로 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı testi başarısız" + "value" : "Farklı Kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kiểm tra kết nối thất bại" + "value" : "Sao chép dưới dạng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接测试失败" + "value" : "复制为" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線測試失敗" + "value" : "複製為" } } } }, - "Connection Test Failed" : { + "Copy Column Name" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 테스트 실패" + "value" : "열 이름 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı Testi Başarısız" + "value" : "Sütun Adını Kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kiểm tra kết nối thất bại" + "value" : "Sao chép tên cột" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接测试失败" + "value" : "复制列名" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線測試失敗" + "value" : "複製欄位名稱" } } } }, - "Connection the tab belongs to" : { - - }, - "Connection the transaction runs on" : { - - }, - "Connection the window shows" : { - - }, - "Connection Type" : { + "Copy Column Values" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 유형" + "value" : "열 값 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı Türü" + "value" : "Sütun Değerlerini Kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Loại kết nối" + "value" : "Sao chép giá trị cột" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接类型" + "value" : "复制列值" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線類型" + "value" : "複製欄位值" } } } }, - "Connection URL" : { + "Copy Connection ID" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 URL" + "value" : "연결 ID 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı URL'si" + "value" : "Bağlantı Kimliğini Kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "URL kết nối" + "value" : "Sao chép ID kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接 URL" + "value" : "复制连接ID" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線 URL" + "value" : "複製連線 ID" } } } }, - "Connection URL cannot be empty" : { + "Copy Connection String" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 URL은 비워 둘 수 없습니다" + "value" : "연결 문자열 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı URL'si boş olamaz" + "value" : "Bağlantı Dizgisini Kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "URL kết nối không được để trống" + "value" : "Sao chép connection string" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接 URL 不能为空" + "value" : "复制连接字符串" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線 URL 不能為空" + "value" : "複製連線字串" } } } }, - "Connection URL must include a host" : { + "Copy Definition" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 URL에 호스트가 포함되어야 합니다" + "value" : "정의 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı URL'si bir sunucu içermeli" + "value" : "Tanımı Kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "URL kết nối phải bao gồm host" + "value" : "Sao chép định nghĩa" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接 URL 必须包含主机" + "value" : "复制定义" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線 URL 必須包含主機" + "value" : "複製定義" } } } }, - "Connection UUID" : { - - }, - "Connection: %@" : { + "Copy Details" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결: %@" + "value" : "세부사항 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı: %@" + "value" : "Ayrıntıları Kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối: %@" + "value" : "Sao chép chi tiết" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接:%@" + "value" : "复制详细信息" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線:%@" + "value" : "複製詳細資訊" } } } }, - "Connection: %@, %@" : { + "Copy Diagnostic Info" : { "localizations" : { - "en" : { + "ko" : { "stringUnit" : { - "state" : "new", - "value" : "Connection: %1$@, %2$@" + "state" : "translated", + "value" : "진단 정보 복사" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Tanılama Bilgilerini Kopyala" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sao chép thông tin chẩn đoán" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "复制诊断信息" } }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "複製診斷資訊" + } + } + } + }, + "Copy EXPLAIN output to clipboard" : { + "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결: %1$@, %2$@" + "value" : "EXPLAIN 출력을 클립보드에 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı: %1$@, %2$@" + "value" : "EXPLAIN çıktısını panoya kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối: %1$@, %2$@" + "value" : "Sao chép kết quả EXPLAIN vào clipboard" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接:%1$@,%2$@" + "value" : "将 EXPLAIN 输出复制到剪贴板" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線:%1$@, %2$@" + "value" : "將 EXPLAIN 輸出複製到剪貼簿" } } } }, - "Connections" : { + "Copy Errors to Clipboard" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결" + "value" : "오류를 클립보드에 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantılar" + "value" : "Hataları Panoya Kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối" + "value" : "Sao chép lỗi vào clipboard" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接" + "value" : "复制错误到剪贴板" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線" + "value" : "將錯誤複製到剪貼簿" } } } }, - "Connections found in %@" : { + "Copy ID" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@에서 찾은 연결" + "value" : "ID 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ içinde bulunan bağlantılar" + "value" : "ID Kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Các kết nối tìm thấy trong %@" + "value" : "Sao chép ID" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在 %@ 中找到的连接" + "value" : "复制 ID" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在 %@ 中找到的連線" + "value" : "複製 ID" } } } }, - "Connections the client may use, ordered by name" : { - - }, - "Connections:" : { + "Copy JSON" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결:" + "value" : "JSON 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantılar:" + "value" : "JSON Kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối:" + "value" : "Sao chép JSON" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接:" + "value" : "复制 JSON" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線:" + "value" : "複製 JSON" } } } }, - "Constraint name" : { + "Copy Key" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "제약 조건 이름" + "value" : "키 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kısıt adı" + "value" : "Anahtarı Kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên ràng buộc" + "value" : "Sao chép khoá" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "约束名称" + "value" : "复制键" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "約束名稱" + "value" : "複製鍵" } } } }, - "Container service name, may be unreachable" : { + "Copy Key Path" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "컨테이너 서비스 이름이므로 연결할 수 없을 수 있습니다" + "value" : "키 경로 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Container servis adı, erişilemeyebilir" + "value" : "Anahtar Yolunu Kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên dịch vụ container, có thể không truy cập được" + "value" : "Sao chép đường dẫn khoá" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "容器服务名称,可能无法访问" + "value" : "复制键路径" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "容器服務名稱,可能無法連線" + "value" : "複製鍵路徑" } } } }, - "contains" : { + "Copy Name" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "포함" + "value" : "이름 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "içerir" + "value" : "Adı Kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "chứa" + "value" : "Sao chép tên" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "包含" + "value" : "复制名称" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "包含" + "value" : "複製名稱" } } } }, - "Context" : { + "Copy Namespace Prefix" : { + "comment" : "A button that copies the namespace prefix to the clipboard.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "컨텍스트" + "value" : "네임스페이스 접두사 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlam" + "value" : "Namespace Önekini Kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ngữ cảnh" + "value" : "Sao chép tiền tố namespace" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "上下文" + "value" : "复制命名空间前缀" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "內容脈絡" + "value" : "複製命名空間前綴" } } } }, - "Context id" : { - - }, - "Context label" : { - - }, - "Continue" : { + "Copy Node Details" : { + "comment" : "A tooltip that describes the action of copying the details of a query plan node to the clipboard.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "계속" + "value" : "노드 세부사항 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Devam" + "value" : "Düğüm Ayrıntılarını Kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tiếp tục" + "value" : "Sao chép chi tiết nút" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "继续" + "value" : "复制节点详情" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "繼續" + "value" : "複製節點詳細資訊" } } } }, - "Control Background" : { + "Copy Operation" : { + "comment" : "A button that copies the operation of a query plan node to the clipboard.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "컨트롤 배경" + "value" : "연산 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kontrol Arka Planı" + "value" : "İşlemi Kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nền điều khiển" + "value" : "Sao chép thao tác" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "控件背景" + "value" : "复制操作" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "控制項背景" + "value" : "複製操作" } } } }, - "Controls how external clients (Raycast, Cursor, Claude Desktop) access this connection. Tokens cannot exceed this level even with full-access scope." : { + "Copy Path" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "외부 클라이언트(Raycast, Cursor, Claude Desktop)가 이 연결에 접근하는 방식을 제어합니다. full-access 범위의 토큰도 이 수준을 초과할 수 없습니다." + "value" : "경로 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Harici istemcilerin (Raycast, Cursor, Claude Desktop) bu bağlantıya nasıl erişeceğini kontrol eder. Token'lar tam erişim kapsamına sahip olsa bile bu düzeyi aşamaz." + "value" : "Yolu Kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kiểm soát cách các client bên ngoài (Raycast, Cursor, Claude Desktop) truy cập kết nối này. Token không thể vượt quá mức này kể cả khi có phạm vi truy cập đầy đủ." + "value" : "Sao chép đường dẫn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "控制外部客户端(Raycast、Cursor、Claude Desktop)如何访问该连接。即使具有完全访问权限,令牌也无法超出此级别。" + "value" : "复制路径" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "控制外部用戶端(Raycast、Cursor、Claude Desktop)如何存取此連線。即使具有完整存取範圍,權杖也無法超出此層級。" + "value" : "複製路徑" } } } }, - "Conversation history" : { + "Copy Privileges" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "대화 기록" + "value" : "권한 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Konuşma geçmişi" + "value" : "Yetkileri Kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lịch sử hội thoại" + "value" : "Sao chép quyền" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "对话历史" + "value" : "复制权限" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "對話記錄" + "value" : "複製權限" } } } }, - "Conversation History" : { - "extractionState" : "stale", + "Copy Privileges From…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "대화 기록" + "value" : "다음에서 권한 복사…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sohbet Geçmişi" + "value" : "Yetkileri Şuradan Kopyala…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lịch sử hội thoại" + "value" : "Sao chép quyền từ…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "对话历史" + "value" : "从以下项复制权限…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "對話記錄" + "value" : "從以下項目複製權限…" } } } }, - "Convert line break to space" : { - "extractionState" : "stale", + "Copy Privileges from %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "줄바꿈을 공백으로 변환" + "value" : "%@에서 권한 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satır sonunu boşluğa çevir" + "value" : "Yetkileri %@ Kaynağından Kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển xuống dòng thành dấu cách" + "value" : "Sao chép quyền từ %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将换行转换为空格" + "value" : "从 %@ 复制权限" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將換行轉換為空格" + "value" : "從 %@ 複製權限" } } } }, - "Convert NULL to empty" : { - "extractionState" : "stale", + "Copy Query" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "NULL을 빈 값으로 변환" + "value" : "쿼리 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "NULL'u boş yap" + "value" : "Sorguyu Kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển NULL thành rỗng" + "value" : "Sao chép truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将 NULL 转换为空" + "value" : "复制查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將 NULL 轉換為空" + "value" : "複製查詢" } } } }, - "Convert NULL to EMPTY" : { - "extractionState" : "stale", + "Copy Rows" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "NULL을 EMPTY로 변환" + "value" : "행 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "NULL'u BOŞ yap" + "value" : "Satırları Kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển NULL thành RỖNG" + "value" : "Sao chép hàng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将 NULL 转换为空" + "value" : "复制行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將 NULL 轉換為空" + "value" : "複製列" } } } }, - "Coordination & Config" : { + "Copy SQL" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "조정 및 구성" + "value" : "SQL 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Koordinasyon ve yapılandırma" + "value" : "SQL Kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Điều phối & cấu hình" + "value" : "Sao chép SQL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "协调与配置" + "value" : "复制 SQL" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "協調與設定" + "value" : "複製 SQL" } } } }, - "Copied" : { + "Copy Special" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "복사됨" + "value" : "특수 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kopyalandı" + "value" : "Özel Kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã sao chép" + "value" : "Sao chép đặc biệt" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已复制" + "value" : "特殊复制" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已複製" + "value" : "特殊複製" } } } }, - "Copied to clipboard" : { + "Copy TablePro Link" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "클립보드에 복사됨" + "value" : "TablePro 링크 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Panoya kopyalandı" + "value" : "TablePro Bağlantısını Kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã sao chép" + "value" : "Sao chép liên kết TablePro" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已复制到剪贴板" + "value" : "复制 TablePro 链接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已複製到剪貼簿" + "value" : "複製 TablePro 連結" } } } }, - "Copied!" : { + "Copy Token" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "복사됨!" + "value" : "토큰 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kopyalandı!" + "value" : "Token Kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã sao chép!" + "value" : "Sao chép token" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已复制!" + "value" : "复制令牌" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已複製!" + "value" : "複製權杖" } } } }, - "Copilot language server binary not found" : { + "Copy Value" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Copilot 언어 서버 바이너리를 찾을 수 없습니다" + "value" : "값 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Copilot dil sunucusu ikili dosyası bulunamadı" + "value" : "Değeri Kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy binary của Copilot language server" + "value" : "Sao chép giá trị" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未找到 Copilot 语言服务器可执行文件" + "value" : "复制值" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "找不到 Copilot 語言伺服器執行檔" + "value" : "複製值" } } } }, - "Copilot server is not running" : { + "Copy as" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Copilot 서버가 실행 중이 아닙니다" + "value" : "다음 형식으로 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Copilot sunucusu çalışmıyor" + "value" : "Şu şekilde kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Copilot server không chạy" + "value" : "Sao chép dạng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Copilot 服务器未运行" + "value" : "复制为" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Copilot 伺服器未執行" + "value" : "複製為" } } } }, - "Copilot subscription inactive" : { + "Copy as Hex" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Copilot 구독이 비활성 상태입니다" + "value" : "16진수로 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Copilot aboneliği aktif değil" + "value" : "Hex Olarak Kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gói Copilot không hoạt động" + "value" : "Sao chép dạng Hex" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Copilot 订阅未激活" + "value" : "复制为十六进制" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Copilot 訂閱未啟用" + "value" : "複製為十六進位" } } } }, - "Copy" : { + "Copy as Import Link" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "복사" + "value" : "가져오기 링크로 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kopyala" + "value" : "İçe Aktarma Bağlantısı Olarak Kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép" + "value" : "Sao chép dạng Liên kết Nhập" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制" + "value" : "复制为导入链接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製" + "value" : "複製為匯入連結" } } } }, - "Copy %lld Names" : { - "comment" : "A button that copies the names of the selected containers to the clipboard.", - "isCommentAutoGenerated" : true, + "Copy as JSON" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이름 %lld개 복사" + "value" : "JSON으로 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%lld Adı Kopyala" + "value" : "JSON Olarak Kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép %lld tên" + "value" : "Sao chép dạng JSON" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制 %lld 个名称" + "value" : "复制为 JSON" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製 %lld 個名稱" + "value" : "複製為 JSON" } } } }, - "Copy All" : { + "Copy as URL" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모두 복사" + "value" : "URL로 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tümünü Kopyala" + "value" : "URL olarak kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép tất cả" + "value" : "Sao chép dạng URL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "全部复制" + "value" : "复制为 URL" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "全部複製" + "value" : "複製為 URL" } } } }, - "Copy as" : { + "Copy error message" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다음 형식으로 복사" + "value" : "오류 메시지 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Şu şekilde kopyala" + "value" : "Hata mesajını kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép dạng" + "value" : "Sao chép thông báo lỗi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制为" + "value" : "复制错误信息" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製為" + "value" : "複製錯誤訊息" } } } }, - "Copy As" : { + "Copy install command" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "형식으로 복사" + "value" : "설치 명령 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Farklı Kopyala" + "value" : "Kurulum komutunu kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép dưới dạng" + "value" : "Sao chép lệnh cài đặt" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制为" + "value" : "复制安装命令" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製為" + "value" : "複製安裝指令" } } } }, - "Copy as Hex" : { + "Copy privileges to %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "16진수로 복사" + "value" : "%@에 권한 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Hex Olarak Kopyala" + "value" : "Yetkileri %@ hedefine kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép dạng Hex" + "value" : "Sao chép quyền sang %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制为十六进制" + "value" : "将权限复制到 %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製為十六進位" + "value" : "將權限複製到 %@" } } } }, - "Copy as Import Link" : { - "extractionState" : "stale", + "Copy the full error to the clipboard" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "가져오기 링크로 복사" + "value" : "전체 오류를 클립보드에 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İçe Aktarma Bağlantısı Olarak Kopyala" + "value" : "Hatanın tamamını panoya kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép dạng Liên kết Nhập" + "value" : "Sao chép toàn bộ lỗi vào bộ nhớ tạm" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制为导入链接" + "value" : "将完整错误复制到剪贴板" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製為匯入連結" + "value" : "將完整錯誤複製到剪貼簿" } } } }, - "Copy as JSON" : { + "Copy this statement to clipboard" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "JSON으로 복사" + "value" : "이 명령문을 클립보드에 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "JSON Olarak Kopyala" + "value" : "Bu ifadeyi panoya kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép dạng JSON" + "value" : "Sao chép câu lệnh này vào bộ nhớ tạm" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制为 JSON" + "value" : "将此语句复制到剪贴板" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製為 JSON" + "value" : "將此陳述式複製到剪貼簿" } } } }, - "Copy as URL" : { - "extractionState" : "stale", + "Copy to clipboard" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "URL로 복사" + "value" : "클립보드에 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "URL olarak kopyala" + "value" : "Panoya kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép dạng URL" + "value" : "Sao chép vào clipboard" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制为 URL" + "value" : "复制到剪贴板" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製為 URL" + "value" : "複製到剪貼簿" } } } }, - "Copy Column Name" : { + "Copy token" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열 이름 복사" + "value" : "토큰 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sütun Adını Kopyala" + "value" : "Token kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép tên cột" + "value" : "Sao chép token" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制列名" + "value" : "复制令牌" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製欄位名稱" + "value" : "複製權杖" } } } }, - "Copy Column Values" : { + "Copy with Headers" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열 값 복사" + "value" : "헤더와 함께 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sütun Değerlerini Kopyala" + "value" : "Başlıklarla Kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép giá trị cột" + "value" : "Sao chép kèm tiêu đề" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制列值" + "value" : "复制(含表头)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製欄位值" + "value" : "複製(含標題)" } } } }, - "Copy Connection ID" : { + "Copy with Signature" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 ID 복사" + "value" : "시그니처 포함 복사" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı Kimliğini Kopyala" + "value" : "İmzayla Kopyala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép ID kết nối" + "value" : "Sao chép kèm chữ ký" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制连接ID" + "value" : "带签名复制" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製連線 ID" + "value" : "連同簽章一起複製" } } } }, - "Copy Connection String" : { + "Corner Radius" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 문자열 복사" + "value" : "모서리 반경" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı Dizgisini Kopyala" + "value" : "Köşe Yarıçapı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép connection string" + "value" : "Bo góc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制连接字符串" + "value" : "圆角半径" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製連線字串" + "value" : "圓角半徑" } } } }, - "Copy Definition" : { + "Cost" : { + "comment" : "Label for the cost column in the query plan.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "정의 복사" + "value" : "비용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tanımı Kopyala" + "value" : "Maliyet" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép định nghĩa" + "value" : "Chi phí" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制定义" + "value" : "成本" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製定義" + "value" : "成本" } } } }, - "Copy Details" : { + "Could Not Compare" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "비교할 수 없음", + "state" : "translated" + } + } + } + }, + "Could Not Open File" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "세부사항 복사" + "value" : "파일을 열 수 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ayrıntıları Kopyala" + "value" : "Dosya Açılamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép chi tiết" + "value" : "Không thể mở tệp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制详细信息" + "value" : "无法打开文件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製詳細資訊" + "value" : "無法開啟檔案" } } } }, - "Copy Diagnostic Info" : { + "Could Not Open Query" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "진단 정보 복사" + "value" : "쿼리를 열 수 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tanılama Bilgilerini Kopyala" + "value" : "Sorgu Açılamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép thông tin chẩn đoán" + "value" : "Không thể mở truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制诊断信息" + "value" : "无法打开查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製診斷資訊" + "value" : "無法開啟查詢" } } } }, - "Copy Error" : { - - }, - "Copy error message" : { + "Could Not Open Sample" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "오류 메시지 복사" + "value" : "샘플을 열 수 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Hata mesajını kopyala" + "value" : "Örnek açılamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép thông báo lỗi" + "value" : "Không thể mở Mẫu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制错误信息" + "value" : "无法打开示例" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製錯誤訊息" + "value" : "無法開啟範例" } } } }, - "Copy Errors to Clipboard" : { - "extractionState" : "stale", + "Could Not Open Table" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "오류를 클립보드에 복사" + "value" : "테이블을 열 수 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Hataları Panoya Kopyala" + "value" : "Tablo Açılamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép lỗi vào clipboard" + "value" : "Không thể mở bảng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制错误到剪贴板" + "value" : "无法打开表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將錯誤複製到剪貼簿" + "value" : "無法開啟資料表" } } } }, - "Copy EXPLAIN output to clipboard" : { + "Could Not Reset Sample" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "EXPLAIN 출력을 클립보드에 복사" + "value" : "샘플을 초기화할 수 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "EXPLAIN çıktısını panoya kopyala" + "value" : "Örnek sıfırlanamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép kết quả EXPLAIN vào clipboard" + "value" : "Không thể đặt lại Mẫu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将 EXPLAIN 输出复制到剪贴板" + "value" : "无法重置示例" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將 EXPLAIN 輸出複製到剪貼簿" + "value" : "無法重設範例" } } } }, - "Copy ID" : { + "Could not build the CREATE TABLE statement" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "ID 복사" + "value" : "CREATE TABLE 문을 작성할 수 없습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "ID Kopyala" + "value" : "CREATE TABLE ifadesi oluşturulamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép ID" + "value" : "Không thể tạo câu lệnh CREATE TABLE" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制 ID" + "value" : "无法生成CREATE TABLE语句" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製 ID" + "value" : "無法建立 CREATE TABLE 陳述式" } } } }, - "Copy install command" : { + "Could not complete Oracle native network encryption with this server. It may require an encryption or checksum algorithm the driver does not support." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "설치 명령 복사" + "value" : "이 서버와 Oracle 네이티브 네트워크 암호화를 완료할 수 없습니다. 서버에서 드라이버가 지원하지 않는 암호화 또는 체크섬 알고리즘을 요구할 수 있습니다." + } + } + } + }, + "Could not connect through the SOCKS proxy at %@:%@. %@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Could not connect through the SOCKS proxy at %1$@:%2$@. %3$@" + } + }, + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%1$@:%2$@의 SOCKS 프록시를 통해 연결할 수 없습니다. %3$@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kurulum komutunu kopyala" + "value" : "%1$@:%2$@ adresindeki SOCKS proxy üzerinden bağlanılamadı. %3$@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép lệnh cài đặt" + "value" : "Không thể kết nối qua SOCKS proxy tại %1$@:%2$@. %3$@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制安装命令" + "value" : "无法通过 %1$@:%2$@ 的 SOCKS 代理连接。%3$@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製安裝指令" + "value" : "無法透過 %1$@:%2$@ 的 SOCKS 代理連線。%3$@" } } } }, - "Copy JSON" : { + "Could not connect to %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "JSON 복사" + "value" : "%@에 연결할 수 없습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "JSON Kopyala" + "value" : "%@ bağlantısı kurulamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép JSON" + "value" : "Không thể kết nối tới %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制 JSON" + "value" : "无法连接到 %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製 JSON" + "value" : "無法連線到 %@" } } } }, - "Copy Key" : { + "Could not create destination file" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "키 복사" + "value" : "대상 파일을 생성할 수 없습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Anahtarı Kopyala" + "value" : "Hedef dosya oluşturulamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép khoá" + "value" : "Không thể tạo tệp đích" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制键" + "value" : "无法创建目标文件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製鍵" + "value" : "無法建立目的檔案" } } } }, - "Copy Key Path" : { + "Could not decode image" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "키 경로 복사" + "value" : "이미지를 디코딩할 수 없습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Anahtar Yolunu Kopyala" + "value" : "Görüntünün kodu çözülemedi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép đường dẫn khoá" + "value" : "Không thể giải mã hình ảnh" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制键路径" + "value" : "无法解码图像" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製鍵路徑" + "value" : "無法解碼影像" } } } }, - "Copy Name" : { + "Could not encode image" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이름 복사" + "value" : "이미지를 인코딩할 수 없습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Adı Kopyala" + "value" : "Görüntü kodlanamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép tên" + "value" : "Không thể mã hóa hình ảnh" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制名称" + "value" : "无法编码图像" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製名稱" + "value" : "無法編碼影像" } } } }, - "Copy Namespace Prefix" : { - "comment" : "A button that copies the namespace prefix to the clipboard.", - "isCommentAutoGenerated" : true, + "Could not export activity log" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "네임스페이스 접두사 복사" + "value" : "활동 로그를 내보낼 수 없습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Namespace Önekini Kopyala" + "value" : "Etkinlik günlüğü dışa aktarılamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép tiền tố namespace" + "value" : "Không thể xuất nhật ký hoạt động" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制命名空间前缀" + "value" : "无法导出活动日志" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製命名空間前綴" + "value" : "無法匯出活動記錄" } } } }, - "Copy Node Details" : { - "comment" : "A tooltip that describes the action of copying the details of a query plan node to the clipboard.", + "Could not export the diagram" : { + "comment" : "Title of an error sheet that appears when the user tries to export the ER diagram but the image could not be created.", "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "노드 세부사항 복사" + "value" : "다이어그램을 내보낼 수 없습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Düğüm Ayrıntılarını Kopyala" + "value" : "Diyagram dışa aktarılamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép chi tiết nút" + "value" : "Không thể xuất sơ đồ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制节点详情" + "value" : "无法导出图表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製節點詳細資訊" + "value" : "無法匯出圖表" } } } }, - "Copy Operation" : { - "comment" : "A button that copies the operation of a query plan node to the clipboard.", + "Could not export the schema" : { + "comment" : "Title of an alert that appears when an error occurs while exporting the schema.", "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연산 복사" + "value" : "스키마를 내보낼 수 없습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İşlemi Kopyala" + "value" : "Şema dışa aktarılamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép thao tác" + "value" : "Không thể xuất schema" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制操作" + "value" : "无法导出 Schema" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製操作" + "value" : "無法匯出綱要" } } } }, - "Copy Path" : { + "Could not export the theme" : { + "comment" : "Title of an error sheet when exporting a theme fails.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "경로 복사" + "value" : "테마를 내보낼 수 없습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yolu Kopyala" + "value" : "Tema dışa aktarılamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép đường dẫn" + "value" : "Không thể xuất giao diện" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制路径" + "value" : "无法导出主题" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製路徑" + "value" : "無法匯出佈景主題" } } } }, - "Copy Privileges" : { + "Could not fetch plugin registry" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "권한 복사" + "value" : "플러그인 레지스트리를 가져올 수 없습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yetkileri Kopyala" + "value" : "Eklenti kaydı alınamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép quyền" + "value" : "Không thể tải danh sách plugin" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制权限" + "value" : "无法获取插件注册表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製權限" + "value" : "無法取得外掛註冊" } } } }, - "Copy Privileges from %@" : { + "Could not find %@ data files" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@에서 권한 복사" + "value" : "%@ 데이터 파일을 찾을 수 없습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yetkileri %@ Kaynağından Kopyala" + "value" : "%@ veri dosyaları bulunamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép quyền từ %@" + "value" : "Không tìm thấy tệp dữ liệu %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "从 %@ 复制权限" + "value" : "找不到 %@ 数据文件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "從 %@ 複製權限" + "value" : "找不到 %@ 資料檔案" } } } }, - "Copy Privileges From…" : { + "Could not generate SQL for changes." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다음에서 권한 복사…" + "value" : "변경 사항에 대한 SQL을 생성할 수 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yetkileri Şuradan Kopyala…" + "value" : "Değişiklikler için SQL oluşturulamadı." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép quyền từ…" + "value" : "Không thể tạo SQL cho các thay đổi." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "从以下项复制权限…" + "value" : "无法为更改生成 SQL。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "從以下項目複製權限…" + "value" : "無法為變更產生 SQL。" } } } }, - "Copy privileges to %@" : { + "Could not install the sample database: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@에 권한 복사" + "value" : "샘플 데이터베이스를 설치할 수 없습니다: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yetkileri %@ hedefine kopyala" + "value" : "Örnek veritabanı yüklenemedi: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép quyền sang %@" + "value" : "Không thể cài đặt cơ sở dữ liệu mẫu: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将权限复制到 %@" + "value" : "无法安装示例数据库:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將權限複製到 %@" + "value" : "無法安裝範例資料庫:%@" } } } }, - "Copy Query" : { + "Could not open a local port for the SOCKS proxy: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 복사" + "value" : "SOCKS 프록시용 로컬 포트를 열 수 없습니다: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorguyu Kopyala" + "value" : "SOCKS proxy için yerel bir port açılamadı: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép truy vấn" + "value" : "Không thể mở cổng cục bộ cho SOCKS proxy: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制查询" + "value" : "无法为 SOCKS 代理打开本地端口:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製查詢" + "value" : "無法為 SOCKS 代理開啟本機連接埠:%@" } } } }, - "Copy Rows" : { + "Could not parse database URL: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "행 복사" + "value" : "데이터베이스 URL을 구문 분석할 수 없습니다: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satırları Kopyala" + "value" : "Veritabanı URL'si ayrıştırılamadı: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép hàng" + "value" : "Không thể phân tích URL cơ sở dữ liệu: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制行" + "value" : "无法解析数据库 URL:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製列" + "value" : "無法解析資料庫 URL:%@" } } } }, - "Copy Special" : { + "Could not reach the license server. Check your internet connection and try again." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "특수 복사" + "value" : "라이선스 서버에 연결할 수 없습니다. 인터넷 연결을 확인한 후 다시 시도하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Özel Kopyala" + "value" : "Lisans sunucusuna ulaşılamadı. İnternet bağlantınızı kontrol edip tekrar deneyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép đặc biệt" + "value" : "Không thể kết nối đến máy chủ giấy phép. Kiểm tra kết nối internet và thử lại." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "特殊复制" + "value" : "无法连接许可证服务器。请检查网络连接后重试。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "特殊複製" + "value" : "無法連線授權伺服器。請檢查網際網路連線後再試一次。" } } } }, - "Copy SQL" : { - "extractionState" : "stale", + "Could not read password file: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SQL 복사" + "value" : "암호 파일을 읽을 수 없습니다: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SQL Kopyala" + "value" : "Parola dosyası okunamadı: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép SQL" + "value" : "Không thể đọc tệp mật khẩu: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制 SQL" + "value" : "无法读取密码文件:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製 SQL" + "value" : "無法讀取密碼檔案:%@" } } } }, - "Copy Table Name" : { - - }, - "Copy TablePro Link" : { + "Could not read the file. It may have been deleted or moved." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro 링크 복사" + "value" : "파일을 읽을 수 없습니다. 파일이 삭제되었거나 이동되었을 수 있습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro Bağlantısını Kopyala" + "value" : "Dosya okunamadı. Silinmiş veya taşınmış olabilir." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép liên kết TablePro" + "value" : "Không thể đọc tệp. Tệp có thể đã bị xóa hoặc di chuyển." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制 TablePro 链接" + "value" : "无法读取文件。文件可能已被删除或移动。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製 TablePro 連結" + "value" : "無法讀取檔案。檔案可能已被刪除或移動。" } } } }, - "Copy the full error to the clipboard" : { + "Could not read the server response. Try again in a moment." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "전체 오류를 클립보드에 복사" + "value" : "서버 응답을 읽을 수 없습니다. 잠시 후 다시 시도하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Hatanın tamamını panoya kopyala" + "value" : "Sunucu yanıtı okunamadı. Biraz sonra tekrar deneyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép toàn bộ lỗi vào bộ nhớ tạm" + "value" : "Không thể đọc phản hồi từ máy chủ. Vui lòng thử lại sau." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将完整错误复制到剪贴板" + "value" : "无法读取服务器响应。请稍后重试。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將完整錯誤複製到剪貼簿" + "value" : "無法讀取伺服器回應。請稍後再試一次。" } } } }, - "Copy this statement to clipboard" : { - "extractionState" : "stale", + "Could not remove %@." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 명령문을 클립보드에 복사" + "value" : "%@을(를) 제거할 수 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu ifadeyi panoya kopyala" + "value" : "%@ kaldırılamadı." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép câu lệnh này vào bộ nhớ tạm" + "value" : "Không thể gỡ %@." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将此语句复制到剪贴板" + "value" : "无法移除 %@。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將此陳述式複製到剪貼簿" + "value" : "無法移除 %@。" } } } }, - "Copy to clipboard" : { + "Could not save the connection. Check disk space and permissions, then try again." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "클립보드에 복사" + "value" : "연결을 저장할 수 없습니다. 디스크 공간과 권한을 확인한 후 다시 시도하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Panoya kopyala" + "value" : "Bağlantı kaydedilemedi. Disk alanını ve izinleri denetleyin, sonra yeniden deneyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép vào clipboard" + "value" : "Không thể lưu kết nối. Kiểm tra dung lượng đĩa và quyền truy cập, rồi thử lại." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制到剪贴板" + "value" : "无法保存连接。请检查磁盘空间和权限,然后重试。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製到剪貼簿" + "value" : "無法儲存連線。請檢查磁碟空間與權限,然後再試一次。" } } } }, - "Copy token" : { + "Could not start a new TablePro instance. Quit and reopen manually." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "토큰 복사" + "value" : "새 TablePro 인스턴스를 시작할 수 없습니다. 앱을 종료한 후 직접 다시 여십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Token kopyala" + "value" : "Yeni bir TablePro örneği başlatılamadı. Uygulamadan çıkıp elle yeniden açın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép token" + "value" : "Không thể khởi chạy phiên TablePro mới. Hãy thoát và mở lại thủ công." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制令牌" + "value" : "无法启动新的TablePro实例。请手动退出并重新打开。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製權杖" + "value" : "無法啟動新的 TablePro 實例。請手動結束並重新開啟。" } } } }, - "Copy Token" : { + "Could not start the sign-in listener. Please try again." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "토큰 복사" + "value" : "로그인 리스너를 시작할 수 없습니다. 다시 시도하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Token Kopyala" + "value" : "Oturum açma dinleyicisi başlatılamadı. Lütfen tekrar deneyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép token" + "value" : "Không thể khởi động trình lắng nghe đăng nhập. Vui lòng thử lại." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制令牌" + "value" : "无法启动登录监听器。请重试。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製權杖" + "value" : "無法啟動登入監聽器。請再試一次。" } } } }, - "Copy Value" : { + "Could not switch to database %@ before applying schema changes: %@" : { + "extractionState" : "stale", "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Could not switch to database %1$@ before applying schema changes: %2$@" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "값 복사" + "value" : "스키마 변경 사항을 적용하기 전에 데이터베이스 %1$@(으)로 전환할 수 없습니다: %2$@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Değeri Kopyala" + "value" : "Şema değişiklikleri uygulanmadan önce %1$@ veritabanına geçilemedi: %2$@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép giá trị" + "value" : "Không thể chuyển sang cơ sở dữ liệu %1$@ trước khi áp dụng thay đổi schema: %2$@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制值" + "value" : "应用 Schema 更改前无法切换到数据库 %1$@:%2$@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製值" + "value" : "套用綱要變更前無法切換到資料庫 %1$@:%2$@" } } } }, - "Copy with Headers" : { + "Could not write %@." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "헤더와 함께 복사" + "value" : "%@을(를) 쓸 수 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Başlıklarla Kopyala" + "value" : "%@ yazılamadı." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép kèm tiêu đề" + "value" : "Không thể ghi %@." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制(含表头)" + "value" : "无法写入 %@。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製(含標題)" + "value" : "無法寫入 %@。" } } } }, - "Copy with Signature" : { + "Could not write the Google Cloud service account key to a temporary file." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "시그니처 포함 복사" + "value" : "Google Cloud 서비스 계정 키를 임시 파일에 쓸 수 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İmzayla Kopyala" + "value" : "Google Cloud servis hesabı anahtarı geçici bir dosyaya yazılamadı." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sao chép kèm chữ ký" + "value" : "Không thể ghi khóa tài khoản dịch vụ Google Cloud vào tệp tạm." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "带签名复制" + "value" : "无法将 Google Cloud 服务账号密钥写入临时文件。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連同簽章一起複製" + "value" : "無法將 Google Cloud 服務帳號金鑰寫入暫存檔案。" } } } }, - "Corner Radius" : { - "extractionState" : "stale", + "Could not write to file. Check that the file is writable." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모서리 반경" + "value" : "파일에 쓸 수 없습니다. 파일에 쓰기 권한이 있는지 확인하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Köşe Yarıçapı" + "value" : "Dosyaya yazılamadı. Dosyanın yazılabilir olduğunu denetleyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bo góc" + "value" : "Không thể ghi vào tệp. Hãy kiểm tra xem tệp có cho phép ghi không." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "圆角半径" + "value" : "无法写入文件。请检查文件是否可写。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "圓角半徑" + "value" : "無法寫入檔案。請檢查檔案是否可寫入。" } } } }, - "Cost" : { - "comment" : "Label for the cost column in the query plan.", - "isCommentAutoGenerated" : true, + "Couldn't publish to the team catalog" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "비용" + "value" : "팀 카탈로그에 게시할 수 없습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Maliyet" + "value" : "Takım kataloğuna yayınlanamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chi phí" + "value" : "Không thể xuất bản lên danh mục nhóm" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "成本" + "value" : "无法发布到团队目录" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "成本" + "value" : "無法發佈到團隊目錄" } } } }, - "Could not build an INSERT for %@" : { - - }, - "Could not build an INSERT for the mapped columns" : { - - }, - "Could not build the CREATE TABLE statement" : { + "Couldn't publish to the team library" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "CREATE TABLE 문을 작성할 수 없습니다" + "value" : "팀 라이브러리에 게시할 수 없습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "CREATE TABLE ifadesi oluşturulamadı" + "value" : "Takım kitaplığına yayınlanamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể tạo câu lệnh CREATE TABLE" + "value" : "Không thể xuất bản lên thư viện nhóm" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法生成CREATE TABLE语句" + "value" : "无法发布到团队库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法建立 CREATE TABLE 陳述式" - } - } - } - }, - "Could Not Compare" : { - - }, - "Could not complete Oracle native network encryption with this server. It may require an encryption or checksum algorithm the driver does not support." : { - "extractionState" : "stale", - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "이 서버와 Oracle 네이티브 네트워크 암호화를 완료할 수 없습니다. 서버에서 드라이버가 지원하지 않는 암호화 또는 체크섬 알고리즘을 요구할 수 있습니다." + "value" : "無法發佈到團隊庫" } } } }, - "Could not connect through the SOCKS proxy at %@:%@. %@" : { + "Couldn't reach the plugin registry. Check your connection and try again." : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Could not connect through the SOCKS proxy at %1$@:%2$@. %3$@" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@:%2$@의 SOCKS 프록시를 통해 연결할 수 없습니다. %3$@" + "value" : "플러그인 레지스트리에 연결할 수 없습니다. 연결을 확인한 후 다시 시도하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@:%2$@ adresindeki SOCKS proxy üzerinden bağlanılamadı. %3$@" + "value" : "Eklenti deposuna ulaşılamadı. Bağlantınızı denetleyip tekrar deneyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể kết nối qua SOCKS proxy tại %1$@:%2$@. %3$@" + "value" : "Không thể truy cập kho plugin. Kiểm tra kết nối và thử lại." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法通过 %1$@:%2$@ 的 SOCKS 代理连接。%3$@" + "value" : "无法访问插件注册表。请检查网络连接后重试。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法透過 %1$@:%2$@ 的 SOCKS 代理連線。%3$@" + "value" : "無法連上外掛註冊來源。請檢查連線後再試一次。" } } } }, - "Could not connect to %@" : { + "Count Exactly" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@에 연결할 수 없습니다" + "value" : "정확히 계산" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ bağlantısı kurulamadı" + "value" : "Tam say" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể kết nối tới %@" + "value" : "Đếm chính xác" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法连接到 %@" + "value" : "精确计数" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法連線到 %@" + "value" : "精確計算" } } } }, - "Could not create destination file" : { + "Count all rows" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "대상 파일을 생성할 수 없습니다" + "value" : "모든 행 수 계산" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Hedef dosya oluşturulamadı" + "value" : "Tüm satırları say" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể tạo tệp đích" + "value" : "Đếm tất cả hàng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法创建目标文件" + "value" : "统计全部行数" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法建立目的檔案" + "value" : "計算所有列數" } } } }, - "Could not decode image" : { + "Count exactly" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이미지를 디코딩할 수 없습니다" + "value" : "정확히 계산" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Görüntünün kodu çözülemedi" + "value" : "Tam say" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể giải mã hình ảnh" + "value" : "Đếm chính xác" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法解码图像" + "value" : "精确计数" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法解碼影像" + "value" : "精確計算" } } } }, - "Could not encode image" : { + "Count rows if estimate less than:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이미지를 인코딩할 수 없습니다" + "value" : "예상치가 다음보다 작으면 행 수 계산:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Görüntü kodlanamadı" + "value" : "Tahmin şundan az ise satırları say:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể mã hóa hình ảnh" + "value" : "Đếm dòng nếu ước tính nhỏ hơn:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法编码图像" + "value" : "估算值小于此值时计数行:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法編碼影像" + "value" : "估算值小於此值時計算列數:" } } } }, - "Could not export activity log" : { + "Counting rows" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "활동 로그를 내보낼 수 없습니다" + "value" : "행 수 계산 중" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Etkinlik günlüğü dışa aktarılamadı" + "value" : "Satırlar sayılıyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể xuất nhật ký hoạt động" + "value" : "Đang đếm dòng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法导出活动日志" + "value" : "正在统计行数" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法匯出活動記錄" + "value" : "正在計算列數" } } } }, - "Could not export the diagram" : { - "comment" : "Title of an error sheet that appears when the user tries to export the ER diagram but the image could not be created.", - "isCommentAutoGenerated" : true, + "Counting…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다이어그램을 내보낼 수 없습니다" + "value" : "계산 중…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Diyagram dışa aktarılamadı" + "value" : "Sayılıyor…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể xuất sơ đồ" + "value" : "Đang đếm…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法导出图表" + "value" : "统计中…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法匯出圖表" + "value" : "計算中…" } } } }, - "Could not export the schema" : { - "comment" : "Title of an alert that appears when an error occurs while exporting the schema.", - "isCommentAutoGenerated" : true, + "Create" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "스키마를 내보낼 수 없습니다" + "value" : "생성" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Şema dışa aktarılamadı" + "value" : "Oluştur" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể xuất schema" + "value" : "Tạo" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法导出 Schema" + "value" : "创建" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法匯出綱要" + "value" : "建立" } } } }, - "Could not export the theme" : { - "comment" : "Title of an error sheet when exporting a theme fails.", - "isCommentAutoGenerated" : true, + "Create %1$@ %2$@" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "%1$@ %2$@ 생성", + "state" : "translated" + } + } + } + }, + "Create %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테마를 내보낼 수 없습니다" + "value" : "%@ 생성" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tema dışa aktarılamadı" + "value" : "%@ Oluştur" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể xuất giao diện" + "value" : "Tạo %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法导出主题" + "value" : "创建 %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法匯出佈景主題" + "value" : "建立 %@" } } } }, - "Could not fetch plugin registry" : { - "extractionState" : "stale", + "Create Connection…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플러그인 레지스트리를 가져올 수 없습니다" + "value" : "연결 생성…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklenti kaydı alınamadı" + "value" : "Bağlantı Oluştur…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể tải danh sách plugin" + "value" : "Tạo kết nối…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法获取插件注册表" + "value" : "创建连接…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法取得外掛註冊" + "value" : "建立連線…" } } } }, - "Could not find %@ data files" : { + "Create Database" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 데이터 파일을 찾을 수 없습니다" + "value" : "데이터베이스 생성" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ veri dosyaları bulunamadı" + "value" : "Veritabanı Oluştur" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy tệp dữ liệu %@" + "value" : "Tạo cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "找不到 %@ 数据文件" + "value" : "创建数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "找不到 %@ 資料檔案" + "value" : "建立資料庫" } } } }, - "Could not generate SQL for changes." : { + "Create New Group" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "변경 사항에 대한 SQL을 생성할 수 없습니다." + "value" : "새 그룹 생성" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Değişiklikler için SQL oluşturulamadı." + "value" : "Yeni Grup Oluştur" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể tạo SQL cho các thay đổi." + "value" : "Tạo nhóm mới" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法为更改生成 SQL。" + "value" : "创建新分组" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法為變更產生 SQL。" + "value" : "建立新群組" } } } }, - "Could not install the sample database: %@" : { + "Create New Group…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "샘플 데이터베이스를 설치할 수 없습니다: %@" + "value" : "새 그룹 생성…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Örnek veritabanı yüklenemedi: %@" + "value" : "Yeni Grup Oluştur…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể cài đặt cơ sở dữ liệu mẫu: %@" + "value" : "Tạo nhóm mới…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法安装示例数据库:%@" + "value" : "创建新分组…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法安裝範例資料庫:%@" + "value" : "建立新群組…" } } } }, - "Could not open a local port for the SOCKS proxy: %@" : { + "Create New Profile…" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Create New Profile…" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SOCKS 프록시용 로컬 포트를 열 수 없습니다: %@" + "value" : "새 프로필 생성…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SOCKS proxy için yerel bir port açılamadı: %@" + "value" : "Yeni Profil Oluştur…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể mở cổng cục bộ cho SOCKS proxy: %@" + "value" : "Tạo hồ sơ mới…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法为 SOCKS 代理打开本地端口:%@" + "value" : "新建配置…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法為 SOCKS 代理開啟本機連接埠:%@" + "value" : "建立新設定檔…" } } } }, - "Could Not Open File" : { + "Create New Table..." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "파일을 열 수 없음" + "value" : "새 테이블 생성..." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dosya Açılamadı" + "value" : "Yeni Tablo Oluştur..." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể mở tệp" + "value" : "Tạo bảng mới..." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法打开文件" + "value" : "新建表..." } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法開啟檔案" + "value" : "建立新資料表..." } } } }, - "Could Not Open Query" : { + "Create New Tag" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리를 열 수 없음" + "value" : "새 태그 생성" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgu Açılamadı" + "value" : "Yeni Etiket Oluştur" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể mở truy vấn" + "value" : "Tạo thẻ mới" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法打开查询" + "value" : "创建新标签" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法開啟查詢" + "value" : "建立新標籤" } } } }, - "Could Not Open Sample" : { + "Create New Tag…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "샘플을 열 수 없음" + "value" : "새 태그 생성…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Örnek açılamadı" + "value" : "Yeni Etiket Oluştur…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể mở Mẫu" + "value" : "Tạo thẻ mới…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法打开示例" + "value" : "创建新标签…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法開啟範例" + "value" : "建立新標籤…" } } } }, - "Could Not Open Table" : { + "Create New View..." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블을 열 수 없음" + "value" : "새 뷰 생성..." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tablo Açılamadı" + "value" : "Yeni Görünüm Oluştur..." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể mở bảng" + "value" : "Tạo view mới..." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法打开表" + "value" : "创建新视图..." } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法開啟資料表" + "value" : "建立新檢視表..." } } } }, - "Could not parse database URL: %@" : { + "Create New View…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 URL을 구문 분석할 수 없습니다: %@" + "value" : "새 뷰 생성…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı URL'si ayrıştırılamadı: %@" + "value" : "Yeni Görünüm Oluştur…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể phân tích URL cơ sở dữ liệu: %@" + "value" : "Tạo view mới…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法解析数据库 URL:%@" + "value" : "新建视图…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法解析資料庫 URL:%@" + "value" : "建立新的檢視表…" } } } }, - "Could not reach the license server. Check your internet connection and try again." : { + "Create Table" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "라이선스 서버에 연결할 수 없습니다. 인터넷 연결을 확인한 후 다시 시도하십시오." + "value" : "테이블 생성" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Lisans sunucusuna ulaşılamadı. İnternet bağlantınızı kontrol edip tekrar deneyin." + "value" : "Tablo Oluştur" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể kết nối đến máy chủ giấy phép. Kiểm tra kết nối internet và thử lại." + "value" : "Tạo bảng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法连接许可证服务器。请检查网络连接后重试。" + "value" : "创建表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法連線授權伺服器。請檢查網際網路連線後再試一次。" + "value" : "建立資料表" } } } }, - "Could not read password file: %@" : { + "Create Table Failed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "암호 파일을 읽을 수 없습니다: %@" + "value" : "테이블 생성 실패" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Parola dosyası okunamadı: %@" + "value" : "Tablo Oluşturma Başarısız" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể đọc tệp mật khẩu: %@" + "value" : "Tạo bảng thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法读取密码文件:%@" + "value" : "创建表失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法讀取密碼檔案:%@" + "value" : "建立資料表失敗" } } } }, - "Could not read the file. It may have been deleted or moved." : { + "Create Trigger" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "파일을 읽을 수 없습니다. 파일이 삭제되었거나 이동되었을 수 있습니다." + "value" : "트리거 생성" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dosya okunamadı. Silinmiş veya taşınmış olabilir." + "value" : "Tetikleyici Oluştur" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể đọc tệp. Tệp có thể đã bị xóa hoặc di chuyển." + "value" : "Tạo trigger" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法读取文件。文件可能已被删除或移动。" + "value" : "创建触发器" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法讀取檔案。檔案可能已被刪除或移動。" + "value" : "建立觸發器" } } } }, - "Could not read the server response. Try again in a moment." : { + "Create a connection to get started" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "서버 응답을 읽을 수 없습니다. 잠시 후 다시 시도하십시오." + "value" : "시작하려면 연결을 생성하십시오" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sunucu yanıtı okunamadı. Biraz sonra tekrar deneyin." + "value" : "Başlamak için bir bağlantı oluşturun" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể đọc phản hồi từ máy chủ. Vui lòng thử lại sau." + "value" : "Tạo kết nối để bắt đầu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法读取服务器响应。请稍后重试。" + "value" : "创建连接以开始使用" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法讀取伺服器回應。請稍後再試一次。" + "value" : "建立連線以開始使用" } } } }, - "Could not remove %@." : { + "Create a connection to get started with\nyour databases." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@을(를) 제거할 수 없습니다." + "value" : "데이터베이스 사용을 시작하려면\n연결을 생성하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ kaldırılamadı." + "value" : "Veritabanlarınızla başlamak için\nbir bağlantı oluşturun." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể gỡ %@." + "value" : "Tạo kết nối để bắt đầu sử dụng\ncơ sở dữ liệu của bạn." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法移除 %@。" + "value" : "创建连接以开始使用\n您的数据库。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法移除 %@。" + "value" : "建立連線以開始使用\n你的資料庫。" } } } }, - "Could Not Reset Sample" : { + "Create a new table or view" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "샘플을 초기화할 수 없음" + "value" : "새 테이블 또는 뷰 생성" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Örnek sıfırlanamadı" + "value" : "Yeni bir tablo veya görünüm oluştur" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể đặt lại Mẫu" + "value" : "Tạo bảng hoặc view mới" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法重置示例" + "value" : "新建表或视图" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法重設範例" + "value" : "建立新的資料表或檢視表" } } } }, - "Could not save the connection. Check disk space and permissions, then try again." : { + "Create all columns" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결을 저장할 수 없습니다. 디스크 공간과 권한을 확인한 후 다시 시도하십시오." + "value" : "모든 열 생성" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı kaydedilemedi. Disk alanını ve izinleri denetleyin, sonra yeniden deneyin." + "value" : "Tüm sütunları oluştur" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể lưu kết nối. Kiểm tra dung lượng đĩa và quyền truy cập, rồi thử lại." + "value" : "Tạo tất cả các cột" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法保存连接。请检查磁盘空间和权限,然后重试。" + "value" : "创建所有列" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法儲存連線。請檢查磁碟空間與權限,然後再試一次。" + "value" : "建立所有欄位" } } } }, - "Could not start a new TablePro instance. Quit and reopen manually." : { + "Create connection..." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 TablePro 인스턴스를 시작할 수 없습니다. 앱을 종료한 후 직접 다시 여십시오." + "value" : "연결 생성..." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni bir TablePro örneği başlatılamadı. Uygulamadan çıkıp elle yeniden açın." + "value" : "Bağlantı oluştur..." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể khởi chạy phiên TablePro mới. Hãy thoát và mở lại thủ công." + "value" : "Tạo kết nối..." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法启动新的TablePro实例。请手动退出并重新打开。" + "value" : "创建连接..." } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法啟動新的 TablePro 實例。請手動結束並重新開啟。" + "value" : "建立連線..." } } } }, - "Could not start the sign-in listener. Please try again." : { + "Create new database" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "로그인 리스너를 시작할 수 없습니다. 다시 시도하십시오." + "value" : "새 데이터베이스 생성" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Oturum açma dinleyicisi başlatılamadı. Lütfen tekrar deneyin." + "value" : "Yeni veritabanı oluştur" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể khởi động trình lắng nghe đăng nhập. Vui lòng thử lại." + "value" : "Tạo cơ sở dữ liệu mới" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法启动登录监听器。请重试。" + "value" : "创建新数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法啟動登入監聽器。請再試一次。" + "value" : "建立新資料庫" } } } }, - "Could not switch to database %@ before applying schema changes: %@" : { - "extractionState" : "stale", + "Create table %@" : { "localizations" : { - "en" : { + "ko" : { "stringUnit" : { - "state" : "new", - "value" : "Could not switch to database %1$@ before applying schema changes: %2$@" + "value" : "테이블 %@ 생성", + "state" : "translated" } - }, + } + } + }, + "Create your own slash commands. Use {{query}}, {{schema}}, {{database}}, or {{body}} in the template to insert chat context at runtime." : { + "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "스키마 변경 사항을 적용하기 전에 데이터베이스 %1$@(으)로 전환할 수 없습니다: %2$@" + "value" : "나만의 슬래시 명령을 만드십시오. 템플릿에서 {{query}}, {{schema}}, {{database}} 또는 {{body}}를 사용하면 실행 시 채팅 컨텍스트가 삽입됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Şema değişiklikleri uygulanmadan önce %1$@ veritabanına geçilemedi: %2$@" + "value" : "Kendi eğik çizgi komutlarınızı oluşturun. Sohbet bağlamını çalışma zamanında eklemek için şablonda {{query}}, {{schema}}, {{database}} veya {{body}} kullanın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể chuyển sang cơ sở dữ liệu %1$@ trước khi áp dụng thay đổi schema: %2$@" + "value" : "Tạo lệnh slash của riêng bạn. Dùng {{query}}, {{schema}}, {{database}} hoặc {{body}} trong mẫu để chèn ngữ cảnh trò chuyện khi chạy." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "应用 Schema 更改前无法切换到数据库 %1$@:%2$@" + "value" : "创建您自己的斜杠命令。在模板中使用 {{query}}、{{schema}}、{{database}} 或 {{body}},即可在运行时插入聊天上下文。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "套用綱要變更前無法切換到資料庫 %1$@:%2$@" + "value" : "建立你自己的斜線指令。在範本中使用 {{query}}、{{schema}}、{{database}} 或 {{body}},即可在執行時插入聊天上下文。" } } } }, - "Could not write %@." : { + "Created" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@을(를) 쓸 수 없습니다." + "value" : "생성일" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ yazılamadı." + "value" : "Oluşturuldu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể ghi %@." + "value" : "Đã tạo" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法写入 %@。" + "value" : "已创建" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法寫入 %@。" + "value" : "已建立" } } } }, - "Could not write the Google Cloud service account key to a temporary file." : { + "Created as GitHub issue #%d" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Google Cloud 서비스 계정 키를 임시 파일에 쓸 수 없습니다." + "value" : "GitHub 이슈 #%d(으)로 생성됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Google Cloud servis hesabı anahtarı geçici bir dosyaya yazılamadı." + "value" : "GitHub issue #%d olarak oluşturuldu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể ghi khóa tài khoản dịch vụ Google Cloud vào tệp tạm." + "value" : "Đã tạo thành GitHub issue #%d" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法将 Google Cloud 服务账号密钥写入临时文件。" + "value" : "已创建为 GitHub issue #%d" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法將 Google Cloud 服務帳號金鑰寫入暫存檔案。" + "value" : "已建立為 GitHub issue #%d" } } } }, - "Could not write to file. Check that the file is writable." : { + "Creating Backup Dump" : { + "comment" : "A title for a backup progress sheet.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "파일에 쓸 수 없습니다. 파일에 쓰기 권한이 있는지 확인하십시오." + "value" : "백업 덤프 생성 중" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dosyaya yazılamadı. Dosyanın yazılabilir olduğunu denetleyin." + "value" : "Yedek Dökümü Oluşturuluyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể ghi vào tệp. Hãy kiểm tra xem tệp có cho phép ghi không." + "value" : "Đang tạo bản dump sao lưu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法写入文件。请检查文件是否可写。" + "value" : "正在创建备份转储" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法寫入檔案。請檢查檔案是否可寫入。" + "value" : "正在建立資料庫備份" } } } }, - "Couldn't publish to the team catalog" : { + "Creating…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "팀 카탈로그에 게시할 수 없습니다" + "value" : "생성 중…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Takım kataloğuna yayınlanamadı" + "value" : "Oluşturuluyor…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể xuất bản lên danh mục nhóm" + "value" : "Đang tạo…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法发布到团队目录" + "value" : "创建中…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法發佈到團隊目錄" + "value" : "建立中…" } } } }, - "Couldn't publish to the team library" : { + "Credentials" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "팀 라이브러리에 게시할 수 없습니다" + "value" : "자격 증명" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Takım kitaplığına yayınlanamadı" + "value" : "Kimlik Bilgileri" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể xuất bản lên thư viện nhóm" + "value" : "Thông tin đăng nhập" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法发布到团队库" + "value" : "凭据" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法發佈到團隊庫" + "value" : "認證資訊" } } } }, - "Couldn't reach the plugin registry. Check your connection and try again." : { + "Critical" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플러그인 레지스트리에 연결할 수 없습니다. 연결을 확인한 후 다시 시도하십시오." + "value" : "심각" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklenti deposuna ulaşılamadı. Bağlantınızı denetleyip tekrar deneyin." + "value" : "Kritik" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể truy cập kho plugin. Kiểm tra kết nối và thử lại." + "value" : "Quan trọng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法访问插件注册表。请检查网络连接后重试。" + "value" : "关键" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法連上外掛註冊來源。請檢查連線後再試一次。" + "value" : "關鍵" } } } }, - "Count all rows" : { + "Critical cost" : { + "comment" : "Accessibility label for the critical cost severity.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 행 수 계산" + "value" : "심각한 비용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm satırları say" + "value" : "Kritik maliyet" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đếm tất cả hàng" + "value" : "Chi phí nghiêm trọng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "统计全部行数" + "value" : "严重成本" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "計算所有列數" + "value" : "嚴重成本" } } } }, - "Count every row rather than estimating" : { - - }, - "Count exactly" : { - "extractionState" : "stale", + "Current %1$@: %2$@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "정확히 계산" + "value" : "현재 %1$@: %2$@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tam say" + "value" : "Geçerli %1$@: %2$@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đếm chính xác" + "value" : "%1$@ hiện tại: %2$@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "精确计数" + "value" : "当前 %1$@:%2$@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "精確計算" + "value" : "目前 %1$@:%2$@" } } } }, - "Count Exactly" : { + "Current %1$@: %2$@ (read only)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "정확히 계산" + "value" : "현재 %1$@: %2$@ (읽기 전용)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tam say" + "value" : "Geçerli %1$@: %2$@ (salt okunur)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đếm chính xác" + "value" : "%1$@ hiện tại: %2$@ (chỉ đọc)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "精确计数" + "value" : "当前 %1$@:%2$@(只读)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "精確計算" + "value" : "目前 %1$@:%2$@(唯讀)" } } } }, - "Count Rows" : { - - }, - "Count rows if estimate less than:" : { + "Current %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "예상치가 다음보다 작으면 행 수 계산:" + "value" : "현재 %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tahmin şundan az ise satırları say:" + "value" : "Geçerli %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đếm dòng nếu ước tính nhỏ hơn:" + "value" : "%@ hiện tại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "估算值小于此值时计数行:" + "value" : "当前%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "估算值小於此值時計算列數:" + "value" : "目前的%@" } } } }, - "Count rows in a table. Without filters it returns the engine's fast estimate unless 'exact' is set; with filters it always counts for real." : { - - }, - "Counting rows" : { + "Current %@: %@ (read only, ⌘K to %@)" : { + "extractionState" : "stale", "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Current %1$@: %2$@ (read only, ⌘K to %3$@)" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "행 수 계산 중" + "value" : "현재 %1$@: %2$@ (읽기 전용, ⌘K로 %3$@)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satırlar sayılıyor" + "value" : "Geçerli %1$@: %2$@ (salt okunur, %3$@ için ⌘K)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang đếm dòng" + "value" : "%1$@ hiện tại: %2$@ (chỉ đọc, ⌘K để %3$@)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在统计行数" + "value" : "当前%1$@:%2$@(只读,⌘K 可%3$@)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在計算列數" + "value" : "目前的 %1$@:%2$@(唯讀,⌘K 可%3$@)" } } } }, - "Counting…" : { + "Current %@: %@ (⌘K to %@)" : { + "extractionState" : "stale", "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Current %1$@: %2$@ (⌘K to %3$@)" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "계산 중…" + "value" : "현재 %1$@: %2$@ (⌘K로 %3$@)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sayılıyor…" + "value" : "Geçerli %1$@: %2$@ (%3$@ için ⌘K)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang đếm…" + "value" : "%1$@ hiện tại: %2$@ (⌘K để %3$@)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "统计中…" + "value" : "当前%1$@:%2$@(⌘K 可%3$@)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "計算中…" + "value" : "目前的 %1$@:%2$@(⌘K 可%3$@)" } } } }, - "Create" : { + "Current Line" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "생성" + "value" : "현재 줄" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Oluştur" + "value" : "Mevcut Satır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tạo" + "value" : "Dòng hiện tại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "创建" + "value" : "当前行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "建立" + "value" : "目前的列" } } } }, - "Create %@" : { + "Current Query" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 생성" + "value" : "현재 쿼리" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ Oluştur" + "value" : "Geçerli Sorgu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tạo %@" + "value" : "Truy vấn hiện tại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "创建 %@" + "value" : "当前查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "建立 %@" + "value" : "目前查詢" } } } }, - "Create %1$@ %2$@" : { - - }, - "Create a connection to get started" : { - "extractionState" : "stale", + "Current database" : { + "comment" : "A description of a database that is currently selected.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "시작하려면 연결을 생성하십시오" + "value" : "현재 데이터베이스" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Başlamak için bir bağlantı oluşturun" + "value" : "Geçerli veritabanı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tạo kết nối để bắt đầu" + "value" : "Cơ sở dữ liệu hiện tại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "创建连接以开始使用" + "value" : "当前数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "建立連線以開始使用" + "value" : "目前的資料庫" } } } }, - "Create a connection to get started with\nyour databases." : { + "Current database: %@ (read-only, ⌘K to switch)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 사용을 시작하려면\n연결을 생성하십시오." + "value" : "현재 데이터베이스: %@ (읽기 전용, 전환하려면 ⌘K)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanlarınızla başlamak için\nbir bağlantı oluşturun." + "value" : "Mevcut veritabanı: %@ (salt okunur, değiştirmek için ⌘K)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tạo kết nối để bắt đầu sử dụng\ncơ sở dữ liệu của bạn." + "value" : "Cơ sở dữ liệu hiện tại: %@ (chỉ đọc, ⌘K để chuyển)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "创建连接以开始使用\n您的数据库。" + "value" : "当前数据库:%@(只读,⌘K 切换)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "建立連線以開始使用\n你的資料庫。" + "value" : "目前的資料庫:%@(唯讀,⌘K 切換)" } } } }, - "Create a database using the engine's own form options. Call describe_create_database_options first to see which options this engine takes. Needs tools:write and the user's approval." : { - - }, - "Create a new table or view" : { + "Current database: %@ (⌘K to switch)" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 테이블 또는 뷰 생성" + "value" : "현재 데이터베이스: %@ (전환하려면 ⌘K)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni bir tablo veya görünüm oluştur" + "value" : "Mevcut veritabanı: %@ (değiştirmek için ⌘K)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tạo bảng hoặc view mới" + "value" : "Cơ sở dữ liệu hiện tại: %@ (⌘K để chuyển)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建表或视图" + "value" : "当前数据库:%@(⌘K 切换)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "建立新的資料表或檢視表" + "value" : "目前的資料庫:%@(⌘K 切換)" } } } }, - "Create all columns" : { + "Current schema" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 열 생성" + "value" : "현재 스키마" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm sütunları oluştur" + "value" : "Geçerli şema" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tạo tất cả các cột" + "value" : "Schema hiện tại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "创建所有列" + "value" : "当前 Schema" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "建立所有欄位" + "value" : "目前的綱要" } } } }, - "Create connection..." : { + "Current schema: %@ (read-only, ⌘K to switch)" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 생성..." + "value" : "현재 스키마: %@ (읽기 전용, 전환하려면 ⌘K)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı oluştur..." + "value" : "Mevcut şema: %@ (salt okunur, değiştirmek için ⌘K)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tạo kết nối..." + "value" : "Schema hiện tại: %@ (chỉ đọc, ⌘K để chuyển)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "创建连接..." + "value" : "当前 schema:%@(只读,⌘K 切换)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "建立連線..." + "value" : "目前的綱要:%@(唯讀,⌘K 切換)" } } } }, - "Create Connection…" : { + "Current schema: %@ (⌘K to switch)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 생성…" + "value" : "현재 스키마: %@ (전환하려면 ⌘K)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı Oluştur…" + "value" : "Mevcut şema: %@ (değiştirmek için ⌘K)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tạo kết nối…" + "value" : "Schema hiện tại: %@ (⌘K để chuyển)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "创建连接…" + "value" : "当前 schema:%@(⌘K 切换)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "建立連線…" + "value" : "目前的綱要:%@(⌘K 切換)" } } } }, - "Create Database" : { + "Cursor" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 생성" + "value" : "Cursor" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı Oluştur" + "value" : "İmleç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tạo cơ sở dữ liệu" + "value" : "Con trỏ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "创建数据库" + "value" : "光标" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "建立資料庫" + "value" : "游標" } } } }, - "Create new database" : { - "extractionState" : "stale", + "Cursor CLI failed: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 데이터베이스 생성" + "value" : "Cursor CLI 실패: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni veritabanı oluştur" + "value" : "Cursor CLI başarısız oldu: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tạo cơ sở dữ liệu mới" + "value" : "Cursor CLI thất bại: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "创建新数据库" + "value" : "Cursor CLI 失败:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "建立新資料庫" + "value" : "Cursor CLI 失敗:%@" } } } }, - "Create New Group" : { + "Cursor blink" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 그룹 생성" + "value" : "커서 깜박임" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni Grup Oluştur" + "value" : "İmleç yanıp sönme" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tạo nhóm mới" + "value" : "Nhấp nháy con trỏ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "创建新分组" + "value" : "光标闪烁" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "建立新群組" + "value" : "游標閃爍" } } } }, - "Create New Group…" : { + "Cursor position %d exceeds SQL length (%d)" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Cursor position %1$d exceeds SQL length (%2$d)" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 그룹 생성…" + "value" : "커서 위치 %1$d이(가) SQL 길이(%2$d)를 초과합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni Grup Oluştur…" + "value" : "İmleç konumu %d, SQL uzunluğunu (%d) aşıyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tạo nhóm mới…" + "value" : "Vị trí con trỏ %d vượt quá độ dài SQL (%d)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "创建新分组…" + "value" : "光标位置%d超出SQL长度(%d)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "建立新群組…" + "value" : "游標位置 %1$d 超出 SQL 長度(%2$d)" } } } }, - "Create New Profile…" : { + "Cursor position %lld exceeds SQL length (%lld)" : { + "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { - "state" : "translated", - "value" : "Create New Profile…" + "state" : "new", + "value" : "Cursor position %1$lld exceeds SQL length (%2$lld)" } }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 프로필 생성…" + "value" : "커서 위치 %1$lld이(가) SQL 길이(%2$lld)를 초과합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni Profil Oluştur…" + "value" : "İmleç konumu %lld, SQL uzunluğunu (%lld) aşıyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tạo hồ sơ mới…" + "value" : "Vị trí con trỏ %1$lld vượt quá độ dài SQL (%2$lld)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建配置…" + "value" : "光标位置 %lld 超出 SQL 长度(%lld)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "建立新設定檔…" + "value" : "游標位置 %1$lld 超出 SQL 長度(%2$lld)" } } } }, - "Create New Table..." : { - "extractionState" : "stale", + "Cursor sign-in failed." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 테이블 생성..." + "value" : "Cursor 로그인에 실패했습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni Tablo Oluştur..." + "value" : "Cursor girişi başarısız oldu." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tạo bảng mới..." + "value" : "Đăng nhập Cursor thất bại." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建表..." + "value" : "Cursor 登录失败。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "建立新資料表..." + "value" : "Cursor 登入失敗。" } } } }, - "Create New Tag" : { + "Cursor style:" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 태그 생성" + "value" : "커서 스타일:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni Etiket Oluştur" + "value" : "İmleç stili:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tạo thẻ mới" + "value" : "Kiểu con trỏ:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "创建新标签" + "value" : "光标样式:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "建立新標籤" + "value" : "游標樣式:" } } } }, - "Create New Tag…" : { + "Custom" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 태그 생성…" + "value" : "사용자 지정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni Etiket Oluştur…" + "value" : "Özel" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tạo thẻ mới…" + "value" : "Tùy chỉnh" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "创建新标签…" + "value" : "自定义" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "建立新標籤…" + "value" : "自訂" } } } }, - "Create New View..." : { - "extractionState" : "stale", + "Custom Endpoint" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Custom Endpoint" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 뷰 생성..." + "value" : "사용자 지정 엔드포인트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni Görünüm Oluştur..." + "value" : "Özel Uç Nokta" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tạo view mới..." + "value" : "Endpoint tùy chỉnh" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "创建新视图..." + "value" : "自定义端点" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "建立新檢視表..." + "value" : "自訂端點" } } } }, - "Create New View…" : { + "Custom Path" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 뷰 생성…" + "value" : "사용자 지정 경로" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni Görünüm Oluştur…" + "value" : "Özel Yol" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tạo view mới…" + "value" : "Đường dẫn tùy chỉnh" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建视图…" + "value" : "自定义路径" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "建立新的檢視表…" + "value" : "自訂路徑" } } } }, - "CREATE statement" : { - - }, - "CREATE statement, when the engine can produce one" : { - - }, - "Create Table" : { + "Custom Slash Commands" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 생성" + "value" : "사용자 지정 슬래시 명령" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tablo Oluştur" + "value" : "Özel Eğik Çizgi Komutları" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tạo bảng" + "value" : "Lệnh slash tùy chỉnh" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "创建表" + "value" : "自定义斜杠命令" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "建立資料表" + "value" : "自訂斜線指令" } } } }, - "Create table %@" : { - - }, - "Create Table Failed" : { + "Custom guidance the AI sees on every chat turn for this connection. Use it for table conventions, naming, columns to avoid (PII, soft-deleted rows), join hints, or business rules the schema doesn't show." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 생성 실패" + "value" : "이 연결에서 채팅을 주고받을 때마다 AI에 제공되는 사용자 지정 지침입니다. 테이블 규칙, 명명 규칙, 피해야 할 열(PII, 소프트 삭제된 행), 조인 힌트 또는 스키마에 표시되지 않는 비즈니스 규칙을 입력하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tablo Oluşturma Başarısız" + "value" : "Bu bağlantı için yapay zekanın her sohbet turunda gördüğü özel yönerge. Tablo kuralları, adlandırma, kaçınılması gereken sütunlar (PII, geçici silinmiş satırlar), join ipuçları veya şemanın göstermediği iş kuralları için kullanın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tạo bảng thất bại" + "value" : "Hướng dẫn tùy chỉnh mà AI thấy ở mỗi lượt trò chuyện cho kết nối này. Dùng cho quy ước bảng, cách đặt tên, các cột cần tránh (PII, hàng đã xóa mềm), gợi ý join, hoặc quy tắc nghiệp vụ mà schema không thể hiện." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "创建表失败" + "value" : "AI 在此连接的每轮聊天中都会看到的自定义指引。可用于说明表约定、命名规范、应避免的列(PII、软删除行)、联结提示,或 Schema 中未体现的业务规则。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "建立資料表失敗" + "value" : "AI 在此連線的每一輪聊天中都會看到的自訂指引。可用於說明資料表慣例、命名規則、應避免的欄位(PII、軟刪除的列)、JOIN 提示,或綱要未顯示的商業規則。" } } } }, - "Create Trigger" : { + "Customization" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "트리거 생성" + "value" : "사용자화" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tetikleyici Oluştur" + "value" : "Özelleştirme" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tạo trigger" + "value" : "Tùy chỉnh" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "创建触发器" + "value" : "自定义" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "建立觸發器" + "value" : "自訂" } } } }, - "Create your own slash commands. Use {{query}}, {{schema}}, {{database}}, or {{body}} in the template to insert chat context at runtime." : { + "Customize Toolbar…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "나만의 슬래시 명령을 만드십시오. 템플릿에서 {{query}}, {{schema}}, {{database}} 또는 {{body}}를 사용하면 실행 시 채팅 컨텍스트가 삽입됩니다." + "value" : "도구 막대 사용자화…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kendi eğik çizgi komutlarınızı oluşturun. Sohbet bağlamını çalışma zamanında eklemek için şablonda {{query}}, {{schema}}, {{database}} veya {{body}} kullanın." + "value" : "Araç Çubuğunu Özelleştir…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tạo lệnh slash của riêng bạn. Dùng {{query}}, {{schema}}, {{database}} hoặc {{body}} trong mẫu để chèn ngữ cảnh trò chuyện khi chạy." + "value" : "Tuỳ chỉnh thanh công cụ…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "创建您自己的斜杠命令。在模板中使用 {{query}}、{{schema}}、{{database}} 或 {{body}},即可在运行时插入聊天上下文。" + "value" : "自定工具栏…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "建立你自己的斜線指令。在範本中使用 {{query}}、{{schema}}、{{database}} 或 {{body}},即可在執行時插入聊天上下文。" + "value" : "自定工具列…" } } } }, - "Created" : { + "Custom…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "생성일" + "value" : "사용자 지정…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Oluşturuldu" + "value" : "Özel…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã tạo" + "value" : "Tùy chỉnh…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已创建" + "value" : "自定义…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已建立" + "value" : "自訂…" } } } }, - "Created as GitHub issue #%d" : { - "extractionState" : "stale", + "Cut" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "GitHub 이슈 #%d(으)로 생성됨" + "value" : "오려두기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "GitHub issue #%d olarak oluşturuldu" + "value" : "Kes" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã tạo thành GitHub issue #%d" + "value" : "Cắt" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已创建为 GitHub issue #%d" + "value" : "剪切" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已建立為 GitHub issue #%d" + "value" : "剪下" } } } }, - "creating a database" : { - - }, - "Creating Backup Dump" : { - "comment" : "A title for a backup progress sheet.", - "isCommentAutoGenerated" : true, + "DEFAULT" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "백업 덤프 생성 중" + "value" : "DEFAULT" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yedek Dökümü Oluşturuluyor" + "value" : "VARSAYILAN" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang tạo bản dump sao lưu" + "value" : "MẶC ĐỊNH" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在创建备份转储" + "value" : "默认" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在建立資料庫備份" + "value" : "預設" } } } }, - "Creating…" : { + "Dark" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "생성 중…" + "value" : "다크" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Oluşturuluyor…" + "value" : "Koyu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang tạo…" + "value" : "Tối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "创建中…" + "value" : "深色" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "建立中…" + "value" : "深色" } } } }, - "Credentials" : { + "Dashboard" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "자격 증명" + "value" : "대시보드" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kimlik Bilgileri" + "value" : "Pano" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thông tin đăng nhập" + "value" : "Bảng điều khiển" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "凭据" + "value" : "仪表盘" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "認證資訊" + "value" : "儀表板" } } } }, - "Critical" : { + "Dashboard Not Available" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "심각" + "value" : "대시보드를 사용할 수 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kritik" + "value" : "Pano Kullanılamıyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Quan trọng" + "value" : "Bảng điều khiển không khả dụng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "关键" + "value" : "仪表盘不可用" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "關鍵" + "value" : "儀表板無法使用" } } } }, - "Critical cost" : { - "comment" : "Accessibility label for the critical cost severity.", - "isCommentAutoGenerated" : true, + "Data" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "심각한 비용" + "value" : "데이터" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kritik maliyet" + "value" : "Veri" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chi phí nghiêm trọng" + "value" : "Dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "严重成本" + "value" : "数据" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "嚴重成本" + "value" : "資料" } } } }, - "CRITICAL: Transaction rollback failed - database may be in inconsistent state: %@" : { - "extractionState" : "stale", + "Data Comparison" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "데이터 비교", + "state" : "translated" + } + } + } + }, + "Data Grid" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "심각: 트랜잭션 롤백 실패 - 데이터베이스가 일관되지 않은 상태일 수 있음: %@" + "value" : "데이터 그리드" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "CRITICAL: Transaction rollback failed - database may be giriş inconsistent state: %@" + "value" : "Veri Tablosu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "NGHIÊM TRỌNG: Hoàn tác giao dịch thất bại - cơ sở dữ liệu có thể ở trạng thái không nhất quán: %@" + "value" : "Lưới dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "严重:事务回滚失败 - 数据库可能处于不一致状态:%@" + "value" : "数据网格" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "嚴重:交易還原失敗 - 資料庫可能處於不一致狀態:%@" + "value" : "資料格" } } } }, - "CSV" : { + "Data Grid Font" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "CSV" + "value" : "데이터 그리드 글꼴" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "CSV" + "value" : "Veri Tablosu Yazı Tipi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "CSV" + "value" : "Phông chữ bảng dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "CSV" + "value" : "数据表格字体" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "CSV" + "value" : "資料格字型" } } } }, - "CSV Properties" : { + "Data Size" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "CSV 속성" + "value" : "데이터 크기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "CSV Özellikleri" + "value" : "Veri Boyutu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thuộc tính CSV" + "value" : "Kích thước dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "CSV 属性" + "value" : "数据大小" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "CSV 屬性" + "value" : "資料大小" } } } }, - "CSV with Headers" : { + "Data Type:" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "헤더 포함 CSV" + "value" : "데이터 유형:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Başlıklı CSV" + "value" : "Veri Türü:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "CSV kèm tiêu đề" + "value" : "Kiểu dữ liệu:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "带标题行的 CSV" + "value" : "数据类型:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "含標題列的 CSV" + "value" : "資料型別:" } } } }, - "CSV/JSON Editing" : { + "Data grid" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "CSV/JSON 편집" + "value" : "데이터 그리드" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "CSV/JSON Düzenleme" + "value" : "Veri tablosu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chỉnh sửa CSV/JSON" + "value" : "Lưới dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "CSV/JSON 编辑" + "value" : "数据网格" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "CSV/JSON 編輯" + "value" : "資料格" } } } }, - "CURDATE()" : { - "extractionState" : "stale", + "Data loss" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "데이터 손실", + "state" : "translated" + } + } + } + }, + "Database" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "CURDATE()" + "value" : "데이터베이스" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "CURDATE()" + "value" : "Veritabanı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "CURDATE()" + "value" : "Cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "CURDATE()" + "value" : "数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "CURDATE()" + "value" : "資料庫" } } } }, - "current" : { - "extractionState" : "stale", + "Database Alias" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "현재" + "value" : "데이터베이스 별칭" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "current" + "value" : "Veritabanı Takma Adı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "hiện tại" + "value" : "Bí danh cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "当前" + "value" : "数据库别名" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "目前" + "value" : "資料庫別名" } } } }, - "Current %@" : { + "Database Driver" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "현재 %@" + "value" : "데이터베이스 드라이버" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geçerli %@" + "value" : "Veritabanı Sürücüsü" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%@ hiện tại" + "value" : "Trình điều khiển cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "当前%@" + "value" : "数据库驱动" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "目前的%@" + "value" : "資料庫驅動程式" } } } }, - "Current %@: %@ (⌘K to %@)" : { - "extractionState" : "stale", + "Database Drivers" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Current %1$@: %2$@ (⌘K to %3$@)" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "현재 %1$@: %2$@ (⌘K로 %3$@)" + "value" : "데이터베이스 드라이버" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geçerli %1$@: %2$@ (%3$@ için ⌘K)" + "value" : "Veritabanı Sürücüleri" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@ hiện tại: %2$@ (⌘K để %3$@)" + "value" : "Trình điều khiển cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "当前%1$@:%2$@(⌘K 可%3$@)" + "value" : "数据库驱动" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "目前的 %1$@:%2$@(⌘K 可%3$@)" + "value" : "資料庫驅動程式" } } } }, - "Current %@: %@ (read only, ⌘K to %@)" : { - "extractionState" : "stale", + "Database File" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Current %1$@: %2$@ (read only, ⌘K to %3$@)" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "현재 %1$@: %2$@ (읽기 전용, ⌘K로 %3$@)" + "value" : "데이터베이스 파일" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geçerli %1$@: %2$@ (salt okunur, %3$@ için ⌘K)" + "value" : "Veritabanı Dosyası" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@ hiện tại: %2$@ (chỉ đọc, ⌘K để %3$@)" + "value" : "Tệp cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "当前%1$@:%2$@(只读,⌘K 可%3$@)" + "value" : "数据库文件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "目前的 %1$@:%2$@(唯讀,⌘K 可%3$@)" + "value" : "資料庫檔案" } } } }, - "Current %1$@: %2$@" : { + "Database Index" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "현재 %1$@: %2$@" + "value" : "데이터베이스 인덱스" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geçerli %1$@: %2$@" + "value" : "Veritabanı İndeksi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@ hiện tại: %2$@" + "value" : "Chỉ mục cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "当前 %1$@:%2$@" + "value" : "数据库索引" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "目前 %1$@:%2$@" + "value" : "資料庫索引" } } } }, - "Current %1$@: %2$@ (read only)" : { + "Database Index: %lld" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "현재 %1$@: %2$@ (읽기 전용)" + "value" : "데이터베이스 인덱스: %lld" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geçerli %1$@: %2$@ (salt okunur)" + "value" : "Veritabanı İndeksi: %lld" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@ hiện tại: %2$@ (chỉ đọc)" + "value" : "Chỉ mục cơ sở dữ liệu: %lld" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "当前 %1$@:%2$@(只读)" + "value" : "数据库索引: %lld" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "目前 %1$@:%2$@(唯讀)" + "value" : "資料庫索引:%lld" } } } }, - "Current database" : { - "comment" : "A description of a database that is currently selected.", - "isCommentAutoGenerated" : true, + "Database Name" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "현재 데이터베이스" + "value" : "데이터베이스 이름" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geçerli veritabanı" + "value" : "Veritabanı Adı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cơ sở dữ liệu hiện tại" + "value" : "Tên cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "当前数据库" + "value" : "数据库名称" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "目前的資料庫" + "value" : "資料庫名稱" } } } }, - "Current database: %@ (⌘K to switch)" : { - "extractionState" : "stale", + "Database Schema" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "현재 데이터베이스: %@ (전환하려면 ⌘K)" + "value" : "데이터베이스 스키마" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Mevcut veritabanı: %@ (değiştirmek için ⌘K)" + "value" : "Veritabanı Şeması" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cơ sở dữ liệu hiện tại: %@ (⌘K để chuyển)" + "value" : "Schema cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "当前数据库:%@(⌘K 切换)" + "value" : "数据库 Schema" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "目前的資料庫:%@(⌘K 切換)" + "value" : "資料庫綱要" } } } }, - "Current database: %@ (read-only, ⌘K to switch)" : { - "extractionState" : "stale", + "Database Size" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "현재 데이터베이스: %@ (읽기 전용, 전환하려면 ⌘K)" + "value" : "데이터베이스 크기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Mevcut veritabanı: %@ (salt okunur, değiştirmek için ⌘K)" + "value" : "Veritabanı Boyutu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cơ sở dữ liệu hiện tại: %@ (chỉ đọc, ⌘K để chuyển)" + "value" : "Kích thước cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "当前数据库:%@(只读,⌘K 切换)" + "value" : "数据库大小" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "目前的資料庫:%@(唯讀,⌘K 切換)" + "value" : "資料庫大小" } } } }, - "Current Line" : { + "Database Switch Failed" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "현재 줄" + "value" : "데이터베이스 전환 실패" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Mevcut Satır" + "value" : "Veritabanı Değiştirme Başarısız" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dòng hiện tại" + "value" : "Chuyển cơ sở dữ liệu thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "当前行" + "value" : "切换数据库失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "目前的列" + "value" : "切換資料庫失敗" } } } }, - "Current Query" : { + "Database Switcher" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "현재 쿼리" + "value" : "데이터베이스 전환기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geçerli Sorgu" + "value" : "Veritabanı Değiştirici" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Truy vấn hiện tại" + "value" : "Chuyển đổi cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "当前查询" + "value" : "数据库切换器" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "目前查詢" + "value" : "資料庫切換器" } } } }, - "Current schema" : { - "extractionState" : "stale", + "Database Type" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "현재 스키마" + "value" : "데이터베이스 유형" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geçerli şema" + "value" : "Veritabanı Türü" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Schema hiện tại" + "value" : "Loại Database" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "当前 Schema" + "value" : "数据库类型" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "目前的綱要" + "value" : "資料庫類型" } } } }, - "Current schema: %@ (⌘K to switch)" : { + "Database Type:" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "현재 스키마: %@ (전환하려면 ⌘K)" + "value" : "데이터베이스 유형:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Mevcut şema: %@ (değiştirmek için ⌘K)" + "value" : "Veritabanı Türü:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Schema hiện tại: %@ (⌘K để chuyển)" + "value" : "Loại cơ sở dữ liệu:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "当前 schema:%@(⌘K 切换)" + "value" : "数据库类型:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "目前的綱要:%@(⌘K 切換)" + "value" : "資料庫類型:" } } } }, - "Current schema: %@ (read-only, ⌘K to switch)" : { - "extractionState" : "stale", + "Database URL" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "현재 스키마: %@ (읽기 전용, 전환하려면 ⌘K)" + "value" : "데이터베이스 URL" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Mevcut şema: %@ (salt okunur, değiştirmek için ⌘K)" + "value" : "Veritabanı URL" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Schema hiện tại: %@ (chỉ đọc, ⌘K để chuyển)" + "value" : "URL cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "当前 schema:%@(只读,⌘K 切换)" + "value" : "数据库 URL" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "目前的綱要:%@(唯讀,⌘K 切換)" + "value" : "資料庫 URL" } } } }, - "Current statement" : { - - }, - "Current value" : { - - }, - "CURRENT_TIMESTAMP()" : { - "extractionState" : "stale", + "Database file not found: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "CURRENT_TIMESTAMP()" + "value" : "데이터베이스 파일을 찾을 수 없습니다: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "CURRENT_TIMESTAMP()" + "value" : "Veritabanı dosyası bulunamadı: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "CURRENT_TIMESTAMP()" + "value" : "Không tìm thấy tệp cơ sở dữ liệu: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "CURRENT_TIMESTAMP()" + "value" : "未找到数据库文件: %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "CURRENT_TIMESTAMP()" + "value" : "找不到資料庫檔案:%@" } } } }, - "Cursor" : { + "Database file path is required" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Cursor" + "value" : "데이터베이스 파일 경로가 필요합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İmleç" + "value" : "Veritabanı dosya yolu gereklidir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Con trỏ" + "value" : "Cần đường dẫn tệp cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "光标" + "value" : "必须填写数据库文件路径" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "游標" + "value" : "必須填寫資料庫檔案路徑" } } } }, - "Cursor blink" : { + "Database name" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "커서 깜박임" + "value" : "데이터베이스 이름" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İmleç yanıp sönme" + "value" : "Veritabanı adı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhấp nháy con trỏ" + "value" : "Tên cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "光标闪烁" + "value" : "数据库名称" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "游標閃爍" + "value" : "資料庫名稱" } } } }, - "Cursor CLI failed: %@" : { + "Database name (uses connection's current database if omitted)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Cursor CLI 실패: %@" + "value" : "데이터베이스 이름(생략하면 연결의 현재 데이터베이스 사용)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Cursor CLI başarısız oldu: %@" + "value" : "Veritabanı adı (boş bırakılırsa bağlantının geçerli veritabanı kullanılır)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cursor CLI thất bại: %@" + "value" : "Tên cơ sở dữ liệu (nếu bỏ trống sẽ dùng cơ sở dữ liệu hiện tại của kết nối)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Cursor CLI 失败:%@" + "value" : "数据库名称(留空时使用连接的当前数据库)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Cursor CLI 失敗:%@" + "value" : "資料庫名稱(留空時使用連線目前的資料庫)" } } } }, - "Cursor position %d exceeds SQL length (%d)" : { + "Database name (uses current if omitted)" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Cursor position %1$d exceeds SQL length (%2$d)" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "커서 위치 %1$d이(가) SQL 길이(%2$d)를 초과합니다" + "value" : "데이터베이스 이름(생략하면 현재 데이터베이스 사용)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İmleç konumu %d, SQL uzunluğunu (%d) aşıyor" + "value" : "Veritabanı adı (boş bırakılırsa geçerli olan kullanılır)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Vị trí con trỏ %d vượt quá độ dài SQL (%d)" + "value" : "Tên cơ sở dữ liệu (nếu bỏ trống sẽ dùng cơ sở dữ liệu hiện tại)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "光标位置%d超出SQL长度(%d)" + "value" : "数据库名称(留空时使用当前数据库)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "游標位置 %1$d 超出 SQL 長度(%2$d)" + "value" : "資料庫名稱(留空時使用目前的資料庫)" } } } }, - "Cursor position %lld exceeds SQL length (%lld)" : { - "extractionState" : "stale", + "Database name is required" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Cursor position %1$lld exceeds SQL length (%2$lld)" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "커서 위치 %1$lld이(가) SQL 길이(%2$lld)를 초과합니다" + "value" : "데이터베이스 이름이 필요합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İmleç konumu %lld, SQL uzunluğunu (%lld) aşıyor" + "value" : "Veritabanı adı gereklidir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Vị trí con trỏ %1$lld vượt quá độ dài SQL (%2$lld)" + "value" : "Cần tên cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "光标位置 %lld 超出 SQL 长度(%lld)" + "value" : "必须填写数据库名称" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "游標位置 %1$lld 超出 SQL 長度(%2$lld)" + "value" : "必須填寫資料庫名稱" } } } }, - "Cursor sign-in failed." : { + "Database name to switch to" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Cursor 로그인에 실패했습니다." + "value" : "전환할 데이터베이스 이름" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Cursor girişi başarısız oldu." + "value" : "Geçiş yapılacak veritabanı adı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đăng nhập Cursor thất bại." + "value" : "Tên cơ sở dữ liệu cần chuyển sang" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Cursor 登录失败。" + "value" : "要切换到的数据库名称" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Cursor 登入失敗。" + "value" : "要切換到的資料庫名稱" } } } }, - "Cursor style:" : { - "extractionState" : "stale", + "Database type \"%@\" is not installed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "커서 스타일:" + "value" : "다음 데이터베이스 유형이 설치되어 있지 않습니다: \"%@\"" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İmleç stili:" + "value" : "\"%@\" veritabanı türü yüklü değil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kiểu con trỏ:" + "value" : "Loại cơ sở dữ liệu \"%@\" chưa được cài đặt" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "光标样式:" + "value" : "数据库类型 \"%@\" 未安装" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "游標樣式:" + "value" : "資料庫類型「%@」未安裝" } } } }, - "CURTIME()" : { + "Database type: %@" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "CURTIME()" + "value" : "데이터베이스 유형: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "CURTIME()" + "value" : "Veritabanı türü: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "CURTIME()" + "value" : "Loại cơ sở dữ liệu: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "CURTIME()" + "value" : "数据库类型: %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "CURTIME()" + "value" : "資料庫類型:%@" } } } }, - "Custom" : { + "Database/Schema:" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사용자 지정" + "value" : "데이터베이스/스키마:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Özel" + "value" : "Veritabanı/Şema:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tùy chỉnh" + "value" : "Cơ sở dữ liệu/Schema:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "自定义" + "value" : "数据库/Schema:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "自訂" + "value" : "資料庫/綱要:" } } } }, - "Custom Endpoint" : { + "Database: %@" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Custom Endpoint" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사용자 지정 엔드포인트" + "value" : "데이터베이스: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Özel Uç Nokta" + "value" : "Veritabanı: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Endpoint tùy chỉnh" + "value" : "Cơ sở dữ liệu: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "自定义端点" + "value" : "数据库: %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "自訂端點" + "value" : "資料庫:%@" } } } }, - "Custom guidance the AI sees on every chat turn for this connection. Use it for table conventions, naming, columns to avoid (PII, soft-deleted rows), join hints, or business rules the schema doesn't show." : { + "Databases" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 연결에서 채팅을 주고받을 때마다 AI에 제공되는 사용자 지정 지침입니다. 테이블 규칙, 명명 규칙, 피해야 할 열(PII, 소프트 삭제된 행), 조인 힌트 또는 스키마에 표시되지 않는 비즈니스 규칙을 입력하십시오." + "value" : "데이터베이스" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu bağlantı için yapay zekanın her sohbet turunda gördüğü özel yönerge. Tablo kuralları, adlandırma, kaçınılması gereken sütunlar (PII, geçici silinmiş satırlar), join ipuçları veya şemanın göstermediği iş kuralları için kullanın." + "value" : "Veritabanları" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hướng dẫn tùy chỉnh mà AI thấy ở mỗi lượt trò chuyện cho kết nối này. Dùng cho quy ước bảng, cách đặt tên, các cột cần tránh (PII, hàng đã xóa mềm), gợi ý join, hoặc quy tắc nghiệp vụ mà schema không thể hiện." + "value" : "Cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "AI 在此连接的每轮聊天中都会看到的自定义指引。可用于说明表约定、命名规范、应避免的列(PII、软删除行)、联结提示,或 Schema 中未体现的业务规则。" + "value" : "数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "AI 在此連線的每一輪聊天中都會看到的自訂指引。可用於說明資料表慣例、命名規則、應避免的欄位(PII、軟刪除的列)、JOIN 提示,或綱要未顯示的商業規則。" + "value" : "資料庫" } } } }, - "Custom Path" : { + "Date" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사용자 지정 경로" + "value" : "날짜" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Özel Yol" + "value" : "Tarih" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đường dẫn tùy chỉnh" + "value" : "Ngày" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "自定义路径" + "value" : "日期" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "自訂路徑" + "value" : "日期" } } } }, - "Custom Slash Commands" : { + "Date Range" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사용자 지정 슬래시 명령" + "value" : "날짜 범위" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Özel Eğik Çizgi Komutları" + "value" : "Tarih Aralığı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lệnh slash tùy chỉnh" + "value" : "Khoảng thời gian" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "自定义斜杠命令" + "value" : "日期范围" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "自訂斜線指令" + "value" : "日期範圍" } } } }, - "Custom…" : { + "Date format:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사용자 지정…" + "value" : "날짜 형식:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Özel…" + "value" : "Tarih biçimi:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tùy chỉnh…" + "value" : "Định dạng ngày:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "自定义…" + "value" : "日期格式:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "自訂…" + "value" : "日期格式:" } } } }, - "Customization" : { + "Deactivate" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사용자화" + "value" : "비활성화" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Özelleştirme" + "value" : "Devre Dışı Bırak" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tùy chỉnh" + "value" : "Hủy kích hoạt" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "自定义" + "value" : "停用" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "自訂" + "value" : "停用" } } } }, - "Customize Toolbar…" : { + "Deactivate License?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "도구 막대 사용자화…" + "value" : "라이선스를 비활성화하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Araç Çubuğunu Özelleştir…" + "value" : "Lisans Devre Dışı Bırakılsın mı?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tuỳ chỉnh thanh công cụ…" + "value" : "Hủy kích hoạt giấy phép?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "自定工具栏…" + "value" : "停用许可证?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "自定工具列…" + "value" : "停用授權?" } } } }, - "Cut" : { + "Deactivated" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "오려두기" + "value" : "비활성화됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kes" + "value" : "Devre Dışı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cắt" + "value" : "Đã hủy kích hoạt" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "剪切" + "value" : "已停用" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "剪下" + "value" : "已停用" } } } }, - "Dark" : { + "Deactivate…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다크" + "value" : "비활성화…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Koyu" + "value" : "Devre Dışı Bırak…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tối" + "value" : "Hủy kích hoạt…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "深色" + "value" : "停用…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "深色" + "value" : "停用…" } } } }, - "Dashboard" : { + "Deactivation Failed" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "대시보드" + "value" : "비활성화 실패" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Pano" + "value" : "Devre Dışı Bırakma Başarısız" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bảng điều khiển" + "value" : "Hủy kích hoạt thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "仪表盘" + "value" : "停用失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "儀表板" + "value" : "停用失敗" } } } }, - "Dashboard Not Available" : { + "Debounce: %d ms" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "대시보드를 사용할 수 없음" + "value" : "디바운스: %d ms" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Pano Kullanılamıyor" + "value" : "Bekleme: %d ms" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bảng điều khiển không khả dụng" + "value" : "Debounce: %d ms" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "仪表盘不可用" + "value" : "防抖:%d 毫秒" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "儀表板無法使用" + "value" : "去抖動:%d 毫秒" } } } }, - "Data" : { + "Decimal" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터" + "value" : "10진수" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veri" + "value" : "Ondalık" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dữ liệu" + "value" : "Thập phân" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "数据" + "value" : "十进制" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料" + "value" : "十進位" } } } }, - "Data Comparison" : { - - }, - "Data grid" : { + "Decompression failed with exit status %d" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터 그리드" + "value" : "종료 상태 %d(으)로 압축 해제에 실패했습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veri tablosu" + "value" : "Açma %d çıkış koduyla başarısız oldu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lưới dữ liệu" + "value" : "Giải nén thất bại với mã thoát %d" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "数据网格" + "value" : "解压失败,退出状态 %d" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料格" + "value" : "解壓縮失敗,結束狀態 %d" } } } }, - "Data Grid" : { + "Decrease Text Size" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터 그리드" + "value" : "텍스트 크기 줄이기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veri Tablosu" + "value" : "Metin Boyutunu Küçült" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lưới dữ liệu" + "value" : "Giảm cỡ chữ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "数据网格" + "value" : "减小文字大小" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料格" + "value" : "縮小文字大小" } } } }, - "Data Grid Font" : { + "Decrease font size" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터 그리드 글꼴" + "value" : "글꼴 크기 줄이기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veri Tablosu Yazı Tipi" + "value" : "Yazı boyutunu küçült" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phông chữ bảng dữ liệu" + "value" : "Giảm cỡ chữ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "数据表格字体" + "value" : "减小字号" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料格字型" - } - } - } - }, - "Data loss" : { - - }, - "Data quality audit for %@ on %@" : { - "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Data quality audit for %1$@ on %2$@" + "value" : "縮小字型大小" } } } }, - "Data Size" : { + "Decrypt" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터 크기" + "value" : "복호화" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veri Boyutu" + "value" : "Şifre Çöz" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kích thước dữ liệu" + "value" : "Giải mã" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "数据大小" + "value" : "解密" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料大小" + "value" : "解密" } } } }, - "Data Type:" : { - "extractionState" : "stale", + "Decryption failed: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터 유형:" + "value" : "복호화 실패: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veri Türü:" + "value" : "Şifre çözme başarısız: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kiểu dữ liệu:" + "value" : "Giải mã thất bại: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "数据类型:" + "value" : "解密失败:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料型別:" + "value" : "解密失敗:%@" } } } }, - "Database" : { + "Default" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스" + "value" : "기본값" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı" + "value" : "Varsayılan" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cơ sở dữ liệu" + "value" : "Mặc định" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "数据库" + "value" : "默认" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料庫" + "value" : "預設" } } } }, - "database %@" : { + "Default Column" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 %@" + "value" : "기본 열" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "veritabanı %@" + "value" : "Varsayılan Sütun" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "cơ sở dữ liệu %@" + "value" : "Cột mặc định" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "数据库 %@" + "value" : "默认列" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料庫 %@" + "value" : "預設欄位" } } } }, - "Database Alias" : { + "Default Operator" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 별칭" + "value" : "기본 연산자" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı Takma Adı" + "value" : "Varsayılan Operatör" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bí danh cơ sở dữ liệu" + "value" : "Toán tử mặc định" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "数据库别名" + "value" : "默认运算符" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料庫別名" + "value" : "預設運算子" } } } }, - "Database Driver" : { + "Default Port" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 드라이버" + "value" : "기본 포트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı Sürücüsü" + "value" : "Varsayılan Port" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trình điều khiển cơ sở dữ liệu" + "value" : "Cổng mặc định" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "数据库驱动" + "value" : "默认端口" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料庫驅動程式" + "value" : "預設連接埠" } } } }, - "Database Drivers" : { + "Default Port:" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 드라이버" + "value" : "기본 포트:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı Sürücüleri" + "value" : "Varsayılan Port:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trình điều khiển cơ sở dữ liệu" + "value" : "Cổng mặc định:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "数据库驱动" + "value" : "默认端口:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料庫驅動程式" + "value" : "預設連接埠:" } } } }, - "Database engine" : { - - }, - "Database Favorites:" : { - - }, - "Database File" : { + "Default Value" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 파일" + "value" : "기본값" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı Dosyası" + "value" : "Varsayılan Değer" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tệp cơ sở dữ liệu" + "value" : "Giá trị mặc định" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "数据库文件" + "value" : "默认值" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料庫檔案" + "value" : "預設值" } } } }, - "Database file not found: %@" : { + "Default connection policy" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 파일을 찾을 수 없습니다: %@" + "value" : "기본 연결 정책" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı dosyası bulunamadı: %@" + "value" : "Varsayılan bağlantı ilkesi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy tệp cơ sở dữ liệu: %@" + "value" : "Chính sách kết nối mặc định" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未找到数据库文件: %@" + "value" : "默认连接策略" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "找不到資料庫檔案:%@" + "value" : "預設連線原則" } } } }, - "Database file path is required" : { + "Default layout for new connections:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 파일 경로가 필요합니다" + "value" : "새 연결의 기본 레이아웃:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı dosya yolu gereklidir" + "value" : "Yeni bağlantılar için varsayılan düzen:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cần đường dẫn tệp cơ sở dữ liệu" + "value" : "Bố cục mặc định cho kết nối mới:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "必须填写数据库文件路径" + "value" : "新连接的默认布局:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "必須填寫資料庫檔案路徑" + "value" : "新連線的預設版面配置:" } } } }, - "Database Index" : { + "Default page size:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 인덱스" + "value" : "기본 페이지 크기:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı İndeksi" + "value" : "Varsayılan sayfa boyutu:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chỉ mục cơ sở dữ liệu" + "value" : "Kích thước trang mặc định:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "数据库索引" + "value" : "默认页面大小:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料庫索引" + "value" : "預設頁面大小:" } } } }, - "Database Index: %lld" : { - "extractionState" : "stale", + "Default row limit" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 인덱스: %lld" + "value" : "기본 행 제한" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı İndeksi: %lld" + "value" : "Varsayılan satır limiti" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chỉ mục cơ sở dữ liệu: %lld" + "value" : "Giới hạn dòng mặc định" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "数据库索引: %lld" + "value" : "默认行数限制" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料庫索引:%lld" + "value" : "預設列數上限" } } } }, - "Database it lives in" : { - - }, - "Database it ran against" : { - - }, - "Database it ran on" : { - - }, - "Database List" : { - - }, - "Database name" : { + "Default row sort is applied when a table first opens. Click a column header to override it." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 이름" + "value" : "테이블을 처음 열면 기본 행 정렬이 적용됩니다. 열 머리글을 클릭하면 재정의할 수 있습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı adı" + "value" : "Varsayılan satır sıralaması, bir tablo ilk açıldığında uygulanır. Geçersiz kılmak için bir sütun başlığına tıklayın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên cơ sở dữ liệu" + "value" : "Sắp xếp dòng mặc định được áp dụng khi bảng mở lần đầu. Nhấp vào tiêu đề cột để ghi đè." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "数据库名称" + "value" : "首次打开表时应用默认行排序。点击列标题可覆盖它。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料庫名稱" + "value" : "首次開啟資料表時套用預設列排序。點擊欄標題可覆寫它。" } } } }, - "Database Name" : { - "extractionState" : "stale", + "Default row sort:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 이름" + "value" : "기본 행 정렬:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı Adı" + "value" : "Varsayılan satır sıralaması:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên cơ sở dữ liệu" + "value" : "Sắp xếp hàng mặc định:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "数据库名称" + "value" : "默认行排序:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料庫名稱" + "value" : "預設的列排序:" } } } }, - "Database name (uses connection's current database if omitted)" : { - "extractionState" : "stale", + "Default token" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 이름(생략하면 연결의 현재 데이터베이스 사용)" + "value" : "기본 토큰" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı adı (boş bırakılırsa bağlantının geçerli veritabanı kullanılır)" + "value" : "Varsayılan token" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên cơ sở dữ liệu (nếu bỏ trống sẽ dùng cơ sở dữ liệu hiện tại của kết nối)" + "value" : "Token mặc định" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "数据库名称(留空时使用连接的当前数据库)" + "value" : "默认令牌" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料庫名稱(留空時使用連線目前的資料庫)" + "value" : "預設權杖" } } } }, - "Database name (uses current if omitted)" : { + "Default value" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 이름(생략하면 현재 데이터베이스 사용)" + "value" : "기본값" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı adı (boş bırakılırsa geçerli olan kullanılır)" + "value" : "Varsayılan değer" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên cơ sở dữ liệu (nếu bỏ trống sẽ dùng cơ sở dữ liệu hiện tại)" + "value" : "Giá trị mặc định" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "数据库名称(留空时使用当前数据库)" + "value" : "默认值" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料庫名稱(留空時使用目前的資料庫)" + "value" : "預設值" } } } }, - "Database name is required" : { + "Default view:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 이름이 필요합니다" + "value" : "기본 보기:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı adı gereklidir" + "value" : "Varsayılan görünüm:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cần tên cơ sở dữ liệu" + "value" : "Chế độ xem mặc định:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "必须填写数据库名称" + "value" : "默认视图:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "必須填寫資料庫名稱" + "value" : "預設檢視:" } } } }, - "Database name to switch to" : { + "Default:" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "전환할 데이터베이스 이름" + "value" : "기본값:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geçiş yapılacak veritabanı adı" + "value" : "Varsayılan:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên cơ sở dữ liệu cần chuyển sang" + "value" : "Mặc định:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "要切换到的数据库名称" + "value" : "默认:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "要切換到的資料庫名稱" + "value" : "預設:" } } } }, - "Database name. Uses the connection's current database when omitted." : { - - }, - "Database names a connection can reach." : { - - }, - "Database names this connection can reach" : { - + "Definition" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "정의", + "state" : "translated" + } + } + } }, - "Database names, sorted" : { - + "Definitions" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "정의", + "state" : "translated" + } + } + } }, - "Database now selected" : { - + "Definitions Compare Structure" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "정의는 구조를 비교합니다", + "state" : "translated" + } + } + } }, - "Database Schema" : { + "Delete" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 스키마" + "value" : "삭제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı Şeması" + "value" : "Sil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Schema cơ sở dữ liệu" + "value" : "Xóa" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "数据库 Schema" + "value" : "删除" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料庫綱要" + "value" : "刪除" } } } }, - "Database Size" : { + "Delete \"%@\"" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 크기" + "value" : "\"%@\" 삭제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı Boyutu" + "value" : "\"%@\" Sil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kích thước cơ sở dữ liệu" + "value" : "Xóa \"%@\"" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "数据库大小" + "value" : "删除「%@」" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料庫大小" + "value" : "刪除「%@」" } } } }, - "Database Switch Failed" : { - "extractionState" : "stale", + "Delete %d Connections" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 전환 실패" + "value" : "연결 %d개 삭제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı Değiştirme Başarısız" + "value" : "%d Bağlantıyı Sil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển cơ sở dữ liệu thất bại" + "value" : "Xoá %d kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "切换数据库失败" + "value" : "删除%d个连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "切換資料庫失敗" + "value" : "刪除 %d 個連線" } } } }, - "Database Switcher" : { + "Delete %lld Connections" : { "extractionState" : "stale", "localizations" : { + "en" : { + "variations" : { + "plural" : { + "one" : { + "stringUnit" : { + "state" : "translated", + "value" : "Delete %lld Connection" + } + }, + "other" : { + "stringUnit" : { + "state" : "translated", + "value" : "Delete %lld Connections" + } + } + } + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 전환기" + "value" : "연결 %lld개 삭제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı Değiştirici" + "value" : "%lld Bağlantıyı Sil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển đổi cơ sở dữ liệu" + "value" : "Xóa %lld Kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "数据库切换器" + "value" : "删除 %lld 个连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料庫切換器" + "value" : "刪除 %lld 個連線" } } } }, - "Database that was created" : { - - }, - "Database that was dropped" : { - - }, - "Database the listing covers" : { - - }, - "Database the schemas belong to" : { - - }, - "Database the session is on" : { - - }, - "Database the session opened on" : { - - }, - "Database the statement ran against" : { - - }, - "Database the tab is on" : { - - }, - "Database the table lives in" : { - - }, - "Database to read. Uses the connection's current database when omitted" : { - - }, - "Database to report on. Omit for all." : { - - }, - "Database Type" : { + "Delete %lld columns?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 유형" + "value" : "열 %lld개를 삭제하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı Türü" + "value" : "%lld sütun silinsin mi?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Loại Database" + "value" : "Xóa %lld cột?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "数据库类型" + "value" : "删除 %lld 列?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料庫類型" + "value" : "要刪除 %lld 個欄位嗎?" } } } }, - "Database type \"%@\" is not installed" : { - "extractionState" : "stale", + "Delete %lld rows?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다음 데이터베이스 유형이 설치되어 있지 않습니다: \"%@\"" + "value" : "행 %lld개를 삭제하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "\"%@\" veritabanı türü yüklü değil" + "value" : "%lld satır silinsin mi?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Loại cơ sở dữ liệu \"%@\" chưa được cài đặt" + "value" : "Xóa %lld dòng?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "数据库类型 \"%@\" 未安装" + "value" : "删除 %lld 行?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料庫類型「%@」未安裝" + "value" : "要刪除 %lld 列嗎?" } } } }, - "Database Type:" : { + "Delete (⌫)" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 유형:" + "value" : "삭제(⌫)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı Türü:" + "value" : "Sil (⌫)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Loại cơ sở dữ liệu:" + "value" : "Xóa (⌫)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "数据库类型:" + "value" : "删除 (⌫)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料庫類型:" + "value" : "刪除 (⌫)" } } } }, - "Database type: %@" : { + "Delete Check Constraint" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 유형: %@" + "value" : "CHECK 제약 조건 삭제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı türü: %@" + "value" : "Kontrol Kısıtını Sil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Loại cơ sở dữ liệu: %@" + "value" : "Xóa ràng buộc kiểm tra" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "数据库类型: %@" + "value" : "删除检查约束" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料庫類型:%@" + "value" : "刪除檢查約束" } } } }, - "Database URL" : { + "Delete Column" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 URL" + "value" : "열 삭제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı URL" + "value" : "Sütunu Sil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "URL cơ sở dữ liệu" + "value" : "Xóa cột" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "数据库 URL" + "value" : "删除列" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料庫 URL" + "value" : "刪除欄位" } } } }, - "database_name" : { - "extractionState" : "stale", + "Delete Columns" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "database_name" + "value" : "열 삭제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "database_name" + "value" : "Sütunları Sil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "database_name" + "value" : "Xóa cột" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "database_name" + "value" : "删除列" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "database_name" + "value" : "刪除欄位" } } } }, - "Database: %@" : { + "Delete Connection" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스: %@" + "value" : "연결 삭제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı: %@" + "value" : "Bağlantıyı Sil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cơ sở dữ liệu: %@" + "value" : "Xóa kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "数据库: %@" + "value" : "删除连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料庫:%@" + "value" : "刪除連線" } } } }, - "Database/Schema:" : { - "extractionState" : "stale", + "Delete Favorite?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스/스키마:" + "value" : "즐겨찾기를 삭제하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı/Şema:" + "value" : "Favoriyi Sil?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cơ sở dữ liệu/Schema:" + "value" : "Xoá mục yêu thích?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "数据库/Schema:" + "value" : "删除收藏?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料庫/綱要:" + "value" : "刪除我的最愛?" } } } }, - "Databases" : { + "Delete Folder" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스" + "value" : "폴더 삭제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanları" + "value" : "Klasörü Sil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cơ sở dữ liệu" + "value" : "Xoá thư mục" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "数据库" + "value" : "删除文件夹" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料庫" + "value" : "刪除資料夾" } } } }, - "Databases of %@" : { - - }, - "Databases, sorted by name" : { - - }, - "Date" : { + "Delete Folder?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "날짜" + "value" : "폴더를 삭제하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tarih" + "value" : "Klasör Silinsin mi?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ngày" + "value" : "Xoá thư mục?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "日期" + "value" : "删除文件夹?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "日期" + "value" : "刪除資料夾?" } } } }, - "Date format:" : { + "Delete Foreign Key" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "날짜 형식:" + "value" : "외래 키 삭제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tarih biçimi:" + "value" : "Yabancı Anahtarı Sil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Định dạng ngày:" + "value" : "Xóa khóa ngoại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "日期格式:" + "value" : "删除外键" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "日期格式:" + "value" : "刪除外鍵" } } } }, - "Date Range" : { + "Delete Group" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "날짜 범위" + "value" : "그룹 삭제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tarih Aralığı" + "value" : "Grubu Sil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khoảng thời gian" + "value" : "Xóa nhóm" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "日期范围" + "value" : "删除分组" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "日期範圍" + "value" : "刪除群組" } } } }, - "db %d" : { + "Delete Index" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "db %d" + "value" : "인덱스 삭제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "db %d" + "value" : "İndeksi Sil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "db %d" + "value" : "Xóa chỉ mục" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "db %d" + "value" : "删除索引" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "db %d" + "value" : "刪除索引" } } } }, - "Deactivate" : { + "Delete Line" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "비활성화" + "value" : "줄 삭제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Devre Dışı Bırak" + "value" : "Satırı Sil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hủy kích hoạt" + "value" : "Xóa dòng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "停用" + "value" : "删除行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "停用" + "value" : "刪除行" } } } }, - "Deactivate License?" : { + "Delete Preset" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "라이선스를 비활성화하시겠습니까?" + "value" : "프리셋 삭제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Lisans Devre Dışı Bırakılsın mı?" + "value" : "Ön Ayarı Sil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hủy kích hoạt giấy phép?" + "value" : "Xóa mẫu đặt trước" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "停用许可证?" + "value" : "删除预设" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "停用授權?" + "value" : "刪除預設組合" } } } }, - "Deactivate…" : { + "Delete Profile" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Delete Profile" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "비활성화…" + "value" : "프로필 삭제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Devre Dışı Bırak…" + "value" : "Profili Sil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hủy kích hoạt…" + "value" : "Xoá hồ sơ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "停用…" + "value" : "删除配置" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "停用…" + "value" : "刪除設定檔" } } } }, - "Deactivated" : { + "Delete Row" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "비활성화됨" + "value" : "행 삭제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Devre Dışı" + "value" : "Satırı Sil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã hủy kích hoạt" + "value" : "Xoá dòng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已停用" + "value" : "删除行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已停用" + "value" : "刪除列" } } } }, - "Deactivation Failed" : { - "extractionState" : "stale", + "Delete Rows" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "비활성화 실패" + "value" : "행 삭제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Devre Dışı Bırakma Başarısız" + "value" : "Satırları Sil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hủy kích hoạt thất bại" + "value" : "Xoá dòng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "停用失败" + "value" : "删除行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "停用失敗" + "value" : "刪除列" } } } }, - "Debounce: %d ms" : { + "Delete SSH Profile?" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Delete SSH Profile?" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "디바운스: %d ms" + "value" : "SSH 프로필을 삭제하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bekleme: %d ms" + "value" : "SSH Profili Silinsin mi?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Debounce: %d ms" + "value" : "Xoá hồ sơ SSH?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "防抖:%d 毫秒" + "value" : "删除 SSH 配置?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "去抖動:%d 毫秒" + "value" : "刪除 SSH 設定檔?" } } } }, - "Decimal" : { - "extractionState" : "stale", + "Delete Selected" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "10진수" + "value" : "선택 항목 삭제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ondalık" + "value" : "Seçileni Sil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thập phân" + "value" : "Xóa mục đã chọn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "十进制" + "value" : "删除所选" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "十進位" + "value" : "刪除所選" } } } }, - "Declared column type" : { - - }, - "Decompression failed with exit status %d" : { + "Delete Theme" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "종료 상태 %d(으)로 압축 해제에 실패했습니다" + "value" : "테마 삭제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Açma %d çıkış koduyla başarısız oldu" + "value" : "Temayı Sil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giải nén thất bại với mã thoát %d" + "value" : "Xoá chủ đề" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "解压失败,退出状态 %d" + "value" : "删除主题" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "解壓縮失敗,結束狀態 %d" + "value" : "刪除主題" } } } }, - "Decrease font size" : { + "Delete Word Backward" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "글꼴 크기 줄이기" + "value" : "이전 단어 삭제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yazı boyutunu küçült" + "value" : "Önceki Kelimeyi Sil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giảm cỡ chữ" + "value" : "Xoá từ liền trước" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "减小字号" + "value" : "删除前一个单词" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "縮小字型大小" + "value" : "刪除前一個單字" } } } }, - "Decrease Text Size" : { + "Delete Word Forward" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "텍스트 크기 줄이기" + "value" : "다음 단어 삭제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Metin Boyutunu Küçült" + "value" : "Sonraki Kelimeyi Sil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giảm cỡ chữ" + "value" : "Xoá từ liền sau" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "减小文字大小" + "value" : "删除后一个单词" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "縮小文字大小" + "value" : "刪除後一個單字" } } } }, - "Decrypt" : { + "Delete is off by default, so a first run cannot remove a row from the target." : { "localizations" : { "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "복호화" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "Şifre Çöz" + "value" : "삭제는 기본적으로 꺼져 있으므로, 첫 실행에서는 대상의 행을 제거할 수 없습니다.", + "state" : "translated" } - }, - "vi" : { + } + } + }, + "Delete row %@ from %@" : { + "localizations" : { + "en" : { "stringUnit" : { - "state" : "translated", - "value" : "Giải mã" + "state" : "new", + "value" : "Delete row %1$@ from %2$@" } }, - "zh-Hans" : { + "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "解密" + "value" : "%2$@에서 행 %1$@ 삭제", + "state" : "translated" } - }, - "zh-Hant" : { + } + } + }, + "Delete rows the source does not have" : { + "localizations" : { + "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "解密" + "value" : "원본에 없는 행 삭제", + "state" : "translated" } } } }, - "Decryption failed: %@" : { - "extractionState" : "stale", + "Delete this column?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "복호화 실패: %@" + "value" : "이 열을 삭제하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Şifre çözme başarısız: %@" + "value" : "Bu sütun silinsin mi?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giải mã thất bại: %@" + "value" : "Xóa cột này?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "解密失败:%@" + "value" : "删除此列?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "解密失敗:%@" + "value" : "要刪除這個欄位嗎?" } } } }, - "Default" : { + "Delete this row?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기본값" + "value" : "이 행을 삭제하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Varsayılan" + "value" : "Bu satır silinsin mi?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mặc định" + "value" : "Xóa dòng này?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "默认" + "value" : "删除此行?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "預設" + "value" : "要刪除這一列嗎?" } } } }, - "DEFAULT" : { + "Delete to Beginning of Line" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "DEFAULT" + "value" : "줄 시작까지 삭제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "VARSAYILAN" + "value" : "Satır Başına Kadar Sil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "MẶC ĐỊNH" + "value" : "Xoá đến đầu dòng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "默认" + "value" : "删除到行首" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "預設" + "value" : "刪除到行首" } } } }, - "Default collation" : { - - }, - "Default Column" : { + "Delete token?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기본 열" + "value" : "토큰을 삭제하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Varsayılan Sütun" + "value" : "Token silinsin mi?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cột mặc định" + "value" : "Xóa token?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "默认列" + "value" : "删除令牌?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "預設欄位" + "value" : "刪除權杖?" } } } }, - "Default connection policy" : { - "extractionState" : "stale", + "Deleted" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기본 연결 정책" + "value" : "삭제됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Varsayılan bağlantı ilkesi" + "value" : "Silindi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chính sách kết nối mặc định" + "value" : "Đã xoá" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "默认连接策略" + "value" : "已删除" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "預設連線原則" + "value" : "已刪除" } } } }, - "Default layout for new connections:" : { + "Deleted Text" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 연결의 기본 레이아웃:" + "value" : "삭제된 텍스트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni bağlantılar için varsayılan düzen:" + "value" : "Silinen Metin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bố cục mặc định cho kết nối mới:" + "value" : "Văn bản đã xoá" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新连接的默认布局:" + "value" : "已删除文本" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新連線的預設版面配置:" + "value" : "已刪除文字" } } } }, - "Default Operator" : { + "Deleted connection (%@)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기본 연산자" + "value" : "연결 삭제됨(%@)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Varsayılan Operatör" + "value" : "Silinen bağlantı (%@)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Toán tử mặc định" + "value" : "Đã xóa kết nối (%@)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "默认运算符" + "value" : "已删除的连接(%@)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "預設運算子" + "value" : "已刪除的連線 (%@)" } } } }, - "Default page size:" : { + "Delete…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기본 페이지 크기:" + "value" : "삭제…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Varsayılan sayfa boyutu:" + "value" : "Sil…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kích thước trang mặc định:" + "value" : "Xóa…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "默认页面大小:" + "value" : "删除…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "預設頁面大小:" + "value" : "刪除…" } } } }, - "Default Port" : { + "Deleting row %@ from %@ permanently removes it." : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Deleting row %1$@ from %2$@ permanently removes it." + } + }, + "ko" : { + "stringUnit" : { + "value" : "%2$@에서 행 %1$@을(를) 삭제하면 영구적으로 제거됩니다.", + "state" : "translated" + } + } + } + }, + "Delimiter" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기본 포트" + "value" : "구분자" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Varsayılan Port" + "value" : "Ayırıcı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cổng mặc định" + "value" : "Dấu phân cách" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "默认端口" + "value" : "分隔符" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "預設連接埠" + "value" : "分隔符號" } } } }, - "Default Port:" : { - "extractionState" : "stale", + "Denied" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기본 포트:" + "value" : "거부됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Varsayılan Port:" + "value" : "Reddedildi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cổng mặc định:" + "value" : "Đã từ chối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "默认端口:" + "value" : "已拒绝" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "預設連接埠:" + "value" : "已拒絕" } } } }, - "Default row limit" : { + "Deny" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기본 행 제한" + "value" : "거부" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Varsayılan satır limiti" + "value" : "Reddet" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giới hạn dòng mặc định" + "value" : "Từ chối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "默认行数限制" + "value" : "拒绝" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "預設列數上限" + "value" : "拒絕" } } } }, - "Default row sort is applied when a table first opens. Click a column header to override it." : { + "Describe Table" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블을 처음 열면 기본 행 정렬이 적용됩니다. 열 머리글을 클릭하면 재정의할 수 있습니다." + "value" : "테이블 설명" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Varsayılan satır sıralaması, bir tablo ilk açıldığında uygulanır. Geçersiz kılmak için bir sütun başlığına tıklayın." + "value" : "Tabloyu Açıkla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sắp xếp dòng mặc định được áp dụng khi bảng mở lần đầu. Nhấp vào tiêu đề cột để ghi đè." + "value" : "Mô tả bảng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "首次打开表时应用默认行排序。点击列标题可覆盖它。" + "value" : "描述表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "首次開啟資料表時套用預設列排序。點擊欄標題可覆寫它。" + "value" : "描述資料表" } } } }, - "Default row sort:" : { + "Describe the columns of a table or view." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기본 행 정렬:" + "value" : "테이블 또는 뷰의 열을 설명합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Varsayılan satır sıralaması:" + "value" : "Bir tablonun veya görünümün sütunlarını açıklar." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sắp xếp hàng mặc định:" + "value" : "Mô tả các cột của một bảng hoặc view." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "默认行排序:" + "value" : "描述表或视图的列。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "預設的列排序:" + "value" : "描述資料表或檢視表的欄位。" } } } }, - "Default token" : { + "Description" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기본 토큰" + "value" : "설명" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Varsayılan token" + "value" : "Açıklama" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Token mặc định" + "value" : "Mô tả" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "默认令牌" + "value" : "描述" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "預設權杖" + "value" : "描述" } } } }, - "Default value" : { + "Deselect All" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기본값" + "value" : "전체 선택 해제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Varsayılan değer" + "value" : "Tümünü Bırak" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giá trị mặc định" + "value" : "Bỏ chọn tất cả" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "默认值" + "value" : "取消全选" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "預設值" + "value" : "取消全選" } } } }, - "Default Value" : { - "extractionState" : "stale", + "Destination:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기본값" + "value" : "대상:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Varsayılan Değer" + "value" : "Hedef:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giá trị mặc định" + "value" : "Đích:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "默认值" + "value" : "目标:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "預設值" + "value" : "目的地:" } } } }, - "Default view:" : { + "Destructive Changes" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기본 보기:" + "value" : "파괴적 변경" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Varsayılan görünüm:" + "value" : "Yıkıcı Değişiklikler" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chế độ xem mặc định:" + "value" : "Thay đổi có thể mất dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "默认视图:" + "value" : "破坏性更改" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "預設檢視:" + "value" : "破壞性變更" } } } }, - "Default:" : { - "extractionState" : "stale", + "Destructive operations are not permitted for this client" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기본값:" + "value" : "이 클라이언트에서는 파괴적 작업이 허용되지 않습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Varsayılan:" + "value" : "Bu istemci için yıkıcı işlemlere izin verilmiyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mặc định:" + "value" : "Client này không được phép thực hiện thao tác phá hủy" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "默认:" + "value" : "此客户端不允许执行破坏性操作" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "預設:" + "value" : "此用戶端不允許執行破壞性操作" } } } }, - "Definition" : { - - }, - "Definitions" : { - - }, - "Definitions Compare Structure" : { - - }, - "Delete" : { + "Detach" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "삭제" + "value" : "분리" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sil" + "value" : "Ayır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa" + "value" : "Tách rời" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除" + "value" : "分离" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除" + "value" : "分離" } } } }, - "Delete \"%@\"" : { + "Detach Partition" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "\"%@\" 삭제" + "value" : "파티션 분리" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "\"%@\" Sil" + "value" : "Bölümü Ayır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa \"%@\"" + "value" : "Tách rời phân vùng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除「%@」" + "value" : "分离分区" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除「%@」" + "value" : "分離分割區" } } } }, - "Delete (⌫)" : { - "extractionState" : "stale", + "Detach Partition?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "삭제(⌫)" + "value" : "파티션을 분리하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sil (⌫)" + "value" : "Bölüm Ayrılsın mı?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa (⌫)" + "value" : "Tách rời phân vùng?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除 (⌫)" + "value" : "分离分区?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除 (⌫)" + "value" : "要分離分割區嗎?" } } } }, - "Delete %d Connections" : { + "Detach selected partition" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 %d개 삭제" + "value" : "선택한 파티션 분리" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%d Bağlantıyı Sil" + "value" : "Seçili bölümü ayır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xoá %d kết nối" + "value" : "Tách rời phân vùng đã chọn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除%d个连接" + "value" : "分离选定的分区" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除 %d 個連線" + "value" : "分離選取的分割區" } } } }, - "Delete %lld columns?" : { + "Detail" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "세부사항", + "state" : "translated" + } + } + } + }, + "Details" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열 %lld개를 삭제하시겠습니까?" + "value" : "세부사항" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%lld sütun silinsin mi?" + "value" : "Ayrıntılar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa %lld cột?" + "value" : "Chi tiết" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除 %lld 列?" + "value" : "详情" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "要刪除 %lld 個欄位嗎?" + "value" : "詳細資訊" } } } }, - "Delete %lld Connections" : { - "extractionState" : "stale", + "Details: %@" : { "localizations" : { - "en" : { - "variations" : { - "plural" : { - "one" : { - "stringUnit" : { - "state" : "translated", - "value" : "Delete %lld Connection" - } - }, - "other" : { - "stringUnit" : { - "state" : "translated", - "value" : "Delete %lld Connections" - } - } - } - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 %lld개 삭제" + "value" : "세부사항: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%lld Bağlantıyı Sil" + "value" : "Ayrıntılar: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa %lld Kết nối" + "value" : "Chi tiết: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除 %lld 个连接" + "value" : "详细信息:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除 %lld 個連線" + "value" : "詳細資訊:%@" } } } }, - "Delete %lld rows?" : { + "Detected" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "행 %lld개를 삭제하시겠습니까?" + "value" : "감지됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%lld satır silinsin mi?" + "value" : "Algılandı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa %lld dòng?" + "value" : "Đã phát hiện" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除 %lld 行?" + "value" : "已检测到" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "要刪除 %lld 列嗎?" + "value" : "已偵測到" } } } }, - "Delete Check Constraint" : { - "extractionState" : "stale", + "Development" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "CHECK 제약 조건 삭제" + "value" : "개발" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kontrol Kısıtını Sil" + "value" : "Geliştirme" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa ràng buộc kiểm tra" + "value" : "Phát triển" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除检查约束" + "value" : "开发" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除檢查約束" + "value" : "開發" } } } }, - "Delete Column" : { + "Diagnostic Info" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열 삭제" + "value" : "진단 정보" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sütunu Sil" + "value" : "Tanılama Bilgileri" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa cột" + "value" : "Thông tin chẩn đoán" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除列" + "value" : "诊断信息" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除欄位" + "value" : "診斷資訊" } } } }, - "Delete Columns" : { + "Diagram" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열 삭제" + "value" : "다이어그램" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sütunları Sil" + "value" : "Diyagram" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa cột" + "value" : "Sơ đồ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除列" + "value" : "图表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除欄位" + "value" : "圖表" } } } }, - "Delete Connection" : { + "Diff layout" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 삭제" + "value" : "차이 비교 레이아웃" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantıyı Sil" + "value" : "Fark düzeni" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa kết nối" + "value" : "Bố cục so sánh" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除连接" + "value" : "差异布局" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除連線" + "value" : "差異版面" } } } }, - "Delete Favorite?" : { + "Difference" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "차이점", + "state" : "translated" + } + } + } + }, + "Differs" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "다름", + "state" : "translated" + } + } + } + }, + "Digits" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "즐겨찾기를 삭제하시겠습니까?" + "value" : "자릿수" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Favoriyi Sil?" + "value" : "Rakamlar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xoá mục yêu thích?" + "value" : "Số chữ số" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除收藏?" + "value" : "位数" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除我的最愛?" + "value" : "位數" } } } }, - "Delete Folder" : { + "Disable" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "폴더 삭제" + "value" : "비활성화" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Klasörü Sil" + "value" : "Devre Dışı Bırak" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xoá thư mục" + "value" : "Tắt" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除文件夹" + "value" : "禁用" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除資料夾" + "value" : "停用" } } } }, - "Delete Folder?" : { + "Disable %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "폴더를 삭제하시겠습니까?" + "value" : "%@ 비활성화" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Klasör Silinsin mi?" + "value" : "%@ Kapat" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xoá thư mục?" + "value" : "Tắt %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除文件夹?" + "value" : "关闭 %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除資料夾?" + "value" : "關閉 %@" } } } }, - "Delete Foreign Key" : { + "Disable SSH Tunnel" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "외래 키 삭제" + "value" : "SSH 터널 비활성화" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yabancı Anahtarı Sil" + "value" : "SSH Tünelini Devre Dışı Bırak" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa khóa ngoại" + "value" : "Tắt SSH Tunnel" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除外键" + "value" : "禁用 SSH 隧道" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除外鍵" + "value" : "停用 SSH 隧道" } } } }, - "Delete Group" : { + "Disable foreign key checks" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "그룹 삭제" + "value" : "외래 키 검사 비활성화" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Grubu Sil" + "value" : "Yabancı anahtar kontrollerini kapat" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa nhóm" + "value" : "Tắt kiểm tra khóa ngoại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除分组" + "value" : "禁用外键检查" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除群組" + "value" : "停用外鍵檢查" } } } }, - "Delete Index" : { + "Disabled" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "인덱스 삭제" + "value" : "비활성화됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İndeksi Sil" + "value" : "Devre Dışı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa chỉ mục" + "value" : "Đã tắt" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除索引" + "value" : "已禁用" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除索引" + "value" : "已停用" } } } }, - "Delete is off by default, so a first run cannot remove a row from the target." : { - - }, - "Delete Line" : { + "Discard" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "줄 삭제" + "value" : "폐기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satırı Sil" + "value" : "Vazgeç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa dòng" + "value" : "Hủy bỏ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除行" + "value" : "丢弃" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除行" + "value" : "捨棄" } } } }, - "Delete Preset" : { + "Discard Changes?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "프리셋 삭제" + "value" : "변경 사항을 폐기하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ön Ayarı Sil" + "value" : "Değişiklikler Atılsın mı?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa mẫu đặt trước" + "value" : "Hủy bỏ thay đổi?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除预设" + "value" : "丢弃更改?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除預設組合" + "value" : "要捨棄變更嗎?" } } } }, - "Delete Profile" : { + "Discard Unsaved Changes?" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Delete Profile" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "프로필 삭제" + "value" : "저장하지 않은 변경 사항을 폐기하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Profili Sil" + "value" : "Kaydedilmemiş Değişiklikler Atılsın mı?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xoá hồ sơ" + "value" : "Hủy bỏ thay đổi chưa lưu?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除配置" + "value" : "丢弃未保存的更改?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除設定檔" + "value" : "要捨棄未儲存的變更嗎?" } } } }, - "Delete Row" : { + "Disconnect" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "행 삭제" + "value" : "연결 해제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satırı Sil" + "value" : "Bağlantıyı Kes" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xoá dòng" + "value" : "Ngắt kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除行" + "value" : "断开连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除列" - } - } - } - }, - "Delete row %@ from %@" : { - "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Delete row %1$@ from %2$@" + "value" : "中斷連線" } } } }, - "Delete Rows" : { + "Disconnect client?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "행 삭제" + "value" : "클라이언트 연결을 해제하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satırları Sil" + "value" : "İstemcinin bağlantısı kesilsin mi?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xoá dòng" + "value" : "Ngắt kết nối client?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除行" + "value" : "断开客户端连接?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除列" + "value" : "要中斷用戶端連線嗎?" } } } }, - "Delete rows the source does not have" : { - - }, - "Delete Selected" : { + "Disconnect from a database" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "선택 항목 삭제" + "value" : "데이터베이스 연결 해제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Seçileni Sil" + "value" : "Bir veritabanı bağlantısını kes" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa mục đã chọn" + "value" : "Ngắt kết nối khỏi cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除所选" + "value" : "断开数据库连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除所選" + "value" : "中斷與資料庫的連線" } } } }, - "Delete SSH Profile?" : { + "Disconnect from “%@”?" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Delete SSH Profile?" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 프로필을 삭제하시겠습니까?" + "value" : "“%@” 연결을 해제하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH Profili Silinsin mi?" + "value" : "“%@” bağlantısı kesilsin mi?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xoá hồ sơ SSH?" + "value" : "Ngắt kết nối khỏi “%@”?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除 SSH 配置?" + "value" : "要断开与“%@”的连接吗?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除 SSH 設定檔?" + "value" : "要中斷與「%@」的連線嗎?" } } } }, - "Delete Theme" : { + "Disconnect the selected client" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테마 삭제" + "value" : "선택한 클라이언트 연결 해제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Temayı Sil" + "value" : "Seçili istemcinin bağlantısını kes" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xoá chủ đề" + "value" : "Ngắt kết nối client đã chọn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除主题" + "value" : "断开所选客户端的连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除主題" + "value" : "中斷所選用戶端的連線" } } } }, - "Delete this column?" : { + "Disconnected" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 열을 삭제하시겠습니까?" + "value" : "연결이 해제되었습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu sütun silinsin mi?" + "value" : "Bağlantı Kesildi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa cột này?" + "value" : "Đã ngắt kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除此列?" + "value" : "已断开连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "要刪除這個欄位嗎?" + "value" : "已中斷連線" } } } }, - "Delete this row?" : { + "Disconnected from %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 행을 삭제하시겠습니까?" + "value" : "%@ 연결이 해제되었습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu satır silinsin mi?" + "value" : "%@ bağlantısı kesildi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa dòng này?" + "value" : "Đã ngắt kết nối khỏi %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除此行?" + "value" : "已断开与 %@ 的连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "要刪除這一列嗎?" + "value" : "已中斷與 %@ 的連線" } } } }, - "Delete to Beginning of Line" : { + "Disk Usage" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "줄 시작까지 삭제" + "value" : "디스크 사용량" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satır Başına Kadar Sil" + "value" : "Disk Kullanımı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xoá đến đầu dòng" + "value" : "Sử dụng ổ đĩa" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除到行首" + "value" : "磁盘使用量" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除到行首" + "value" : "磁碟使用量" } } } }, - "Delete token?" : { + "Dismiss" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "토큰을 삭제하시겠습니까?" + "value" : "닫기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Token silinsin mi?" + "value" : "Kapat" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa token?" + "value" : "Bỏ qua" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除令牌?" + "value" : "关闭" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除權杖?" + "value" : "關閉" } } } }, - "Delete Word Backward" : { + "Dismiss error" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이전 단어 삭제" + "value" : "오류 닫기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Önceki Kelimeyi Sil" + "value" : "Hatayı kapat" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xoá từ liền trước" + "value" : "Bỏ qua lỗi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除前一个单词" + "value" : "关闭错误" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除前一個單字" + "value" : "關閉錯誤" } } } }, - "Delete Word Forward" : { + "Display" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다음 단어 삭제" + "value" : "표시" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sonraki Kelimeyi Sil" + "value" : "Görüntüle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xoá từ liền sau" + "value" : "Hiển thị" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除后一个单词" + "value" : "显示" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除後一個單字" + "value" : "顯示" } } } }, - "Delete…" : { + "Display As" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "삭제…" + "value" : "표시 형식" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sil…" + "value" : "Farklı Görüntüle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa…" + "value" : "Hiển thị dạng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除…" + "value" : "显示为" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除…" + "value" : "顯示為" } } } }, - "Deleted" : { + "Distributed SQL query engine for data lakes" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "삭제됨" + "value" : "데이터 레이크용 분산 SQL 쿼리 엔진" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Silindi" + "value" : "Veri gölleri için dağıtık SQL sorgu motoru" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã xoá" + "value" : "Công cụ truy vấn SQL phân tán cho data lake" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已删除" + "value" : "面向数据湖的分布式 SQL 查询引擎" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已刪除" + "value" : "適用於資料湖的分散式 SQL 查詢引擎" } } } }, - "Deleted connection (%@)" : { + "Distributed SQL, PostgreSQL-compatible" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 삭제됨(%@)" + "value" : "PostgreSQL 호환 분산 SQL" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Silinen bağlantı (%@)" + "value" : "Dağıtık SQL, PostgreSQL uyumlu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã xóa kết nối (%@)" + "value" : "SQL phân tán, tương thích PostgreSQL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已删除的连接(%@)" + "value" : "分布式 SQL,兼容 PostgreSQL" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已刪除的連線 (%@)" + "value" : "分散式 SQL,相容 PostgreSQL" } } } }, - "Deleted Text" : { + "Distributed SQLite by Turso" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "삭제된 텍스트" + "value" : "Turso의 분산형 SQLite" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Silinen Metin" + "value" : "Turso'dan dağıtık SQLite" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Văn bản đã xoá" + "value" : "SQLite phân tán của Turso" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已删除文本" + "value" : "Turso 出品的分布式 SQLite" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已刪除文字" - } - } - } - }, - "Deleting row %@ from %@ permanently removes it." : { - "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Deleting row %1$@ from %2$@ permanently removes it." + "value" : "Turso 推出的分散式 SQLite" } } } }, - "Delimiter" : { + "Distributed key-value store for service discovery" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "구분자" + "value" : "서비스 검색용 분산 키-값 저장소" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ayırıcı" + "value" : "Servis keşfi için dağıtık anahtar-değer deposu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dấu phân cách" + "value" : "Kho key-value phân tán cho service discovery" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "分隔符" + "value" : "用于服务发现的分布式键值存储" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "分隔符號" + "value" : "用於服務探索的分散式鍵值儲存" } } } }, - "Denied" : { + "Distributed wide-column store" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "거부됨" + "value" : "분산 와이드 컬럼 저장소" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Reddedildi" + "value" : "Dağıtık geniş sütunlu depo" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã từ chối" + "value" : "Kho wide-column phân tán" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已拒绝" + "value" : "分布式宽列存储" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已拒絕" + "value" : "分散式寬欄儲存" } } } }, - "Deny" : { + "Do Not Decode" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "거부" + "value" : "디코딩 안 함" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Reddet" + "value" : "Kodu Çözme" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Từ chối" + "value" : "Không giải mã" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "拒绝" + "value" : "不解码" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "拒絕" + "value" : "不解碼" } } } }, - "Describe Create Database Options" : { - - }, - "Describe one table: columns, indexes, foreign keys, DDL, and an approximate row count. Every part is read against the same database and schema." : { - - }, - "Describe Table" : { + "Do not show this again" : { + "comment" : "Title of the checkbox that can be checked to suppress the warning dialog.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 설명" + "value" : "다시 표시하지 않기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tabloyu Açıkla" + "value" : "Bunu bir daha gösterme" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mô tả bảng" + "value" : "Không hiện lại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "描述表" + "value" : "不再显示" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "描述資料表" + "value" : "不再顯示" } } } }, - "Describe the columns of a table or view." : { + "Do you want to save changes?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 또는 뷰의 열을 설명합니다." + "value" : "변경 사항을 저장하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bir tablonun veya görünümün sütunlarını açıklar." + "value" : "Değişiklikleri kaydetmek istiyor musunuz?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mô tả các cột của một bảng hoặc view." + "value" : "Bạn có muốn lưu thay đổi?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "描述表或视图的列。" + "value" : "是否保存更改?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "描述資料表或檢視表的欄位。" + "value" : "是否要儲存變更?" } } } }, - "Description" : { + "Document" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "설명" + "value" : "문서" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Açıklama" + "value" : "Belge" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mô tả" + "value" : "Document" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "描述" + "value" : "文档" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "描述" + "value" : "文件" } } } }, - "Deselect All" : { + "Document Inspector" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "전체 선택 해제" + "value" : "문서 검사기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tümünü Bırak" + "value" : "Belge Denetçisi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bỏ chọn tất cả" + "value" : "Trình kiểm tra document" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "取消全选" + "value" : "文档检查器" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "取消全選" + "value" : "文件檢閱器" } } } }, - "Destination:" : { + "Documentation" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "대상:" + "value" : "도움말 문서" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Hedef:" + "value" : "Belgeler" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đích:" + "value" : "Tài liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "目标:" + "value" : "文档" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "目的地:" + "value" : "文件" } } } }, - "Destructive Changes" : { + "Don't Allow" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "파괴적 변경" + "value" : "허용 안 함" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yıkıcı Değişiklikler" + "value" : "İzin Verme" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thay đổi có thể mất dữ liệu" + "value" : "Không cho phép" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "破坏性更改" + "value" : "不允许" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "破壞性變更" + "value" : "不允許" } } } }, - "Destructive operations are not permitted for this client" : { + "Don't Save" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 클라이언트에서는 파괴적 작업이 허용되지 않습니다" + "value" : "저장 안 함" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu istemci için yıkıcı işlemlere izin verilmiyor" + "value" : "Kaydetme" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Client này không được phép thực hiện thao tác phá hủy" + "value" : "Không lưu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此客户端不允许执行破坏性操作" + "value" : "不保存" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此用戶端不允許執行破壞性操作" + "value" : "不要儲存" } } } }, - "Detach" : { + "Don't Sort" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "분리" + "value" : "정렬 안 함" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ayır" + "value" : "Sıralama" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tách rời" + "value" : "Không sắp xếp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "分离" + "value" : "不排序" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "分離" + "value" : "不排序" } } } }, - "Detach Partition" : { + "Don't show this again" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "파티션 분리" + "value" : "다시 표시하지 않기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bölümü Ayır" + "value" : "Bunu bir daha gösterme" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tách rời phân vùng" + "value" : "Không hiện lại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "分离分区" + "value" : "不再显示" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "分離分割區" + "value" : "不再顯示" } } } }, - "Detach Partition?" : { + "Done" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "파티션을 분리하시겠습니까?" + "value" : "완료" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bölüm Ayrılsın mı?" + "value" : "Tamam" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tách rời phân vùng?" + "value" : "Xong" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "分离分区?" + "value" : "完成" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "要分離分割區嗎?" + "value" : "完成" } } } }, - "Detach selected partition" : { + "Double Quote \"" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "선택한 파티션 분리" + "value" : "큰따옴표 \"" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Seçili bölümü ayır" + "value" : "Çift Tırnak \"" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tách rời phân vùng đã chọn" + "value" : "Dấu nháy kép \"" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "分离选定的分区" + "value" : "双引号 \"" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "分離選取的分割區" + "value" : "雙引號 \"" } } } }, - "Detail" : { - - }, - "Details" : { + "Doubled Quote" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "세부사항" + "value" : "큰따옴표 이중 처리" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ayrıntılar" + "value" : "Çiftlenmiş Tırnak" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chi tiết" + "value" : "Nháy kép lặp lại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "详情" + "value" : "重复引号" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "詳細資訊" + "value" : "重複引號" } } } }, - "Details: %@" : { + "Download cloud-sql-proxy…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "세부사항: %@" + "value" : "cloud-sql-proxy 다운로드…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ayrıntılar: %@" + "value" : "cloud-sql-proxy indir…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chi tiết: %@" + "value" : "Tải cloud-sql-proxy…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "详细信息:%@" + "value" : "下载 cloud-sql-proxy…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "詳細資訊:%@" + "value" : "下載 cloud-sql-proxy…" } } } }, - "Detected" : { + "Downloading plugin" : { + "comment" : "A description of a progress bar that shows a download in progress.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "감지됨" + "value" : "플러그인 다운로드 중" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Algılandı" + "value" : "Eklenti indiriliyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã phát hiện" + "value" : "Đang tải plugin" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已检测到" + "value" : "正在下载插件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已偵測到" + "value" : "正在下載外掛" } } } }, - "Development" : { + "Downloads" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "개발" + "value" : "다운로드" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geliştirme" + "value" : "İndirmeler" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phát triển" + "value" : "Lượt tải" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "开发" + "value" : "下载次数" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開發" + "value" : "下載次數" } } } }, - "Diagnostic Info" : { + "Drag to reorder this filter" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "진단 정보" + "value" : "드래그하여 이 필터의 순서 변경" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tanılama Bilgileri" + "value" : "Bu filtreyi yeniden sıralamak için sürükleyin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thông tin chẩn đoán" + "value" : "Kéo để sắp xếp lại bộ lọc này" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "诊断信息" + "value" : "拖动以重新排列此筛选条件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "診斷資訊" + "value" : "拖曳以重新排列這個篩選條件" } } } }, - "Diagram" : { + "Driver Options" : { + "comment" : "A section for driver-specific options.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다이어그램" + "value" : "드라이버 옵션" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Diyagram" + "value" : "Sürücü Seçenekleri" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sơ đồ" + "value" : "Tuỳ chọn driver" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "图表" + "value" : "驱动选项" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "圖表" + "value" : "驅動程式選項" } } } }, - "Diff layout" : { + "Driver plugin not loaded. Open Settings to update." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "차이 비교 레이아웃" + "value" : "드라이버 플러그인을 불러오지 못했습니다. 설정을 열어 업데이트하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Fark düzeni" + "value" : "Sürücü eklentisi yüklenmedi. Güncellemek için Ayarlar'ı açın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bố cục so sánh" + "value" : "Plugin driver chưa được tải. Mở Cài đặt để cập nhật." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "差异布局" + "value" : "驱动插件未加载。请打开设置进行更新。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "差異版面" + "value" : "驅動程式外掛未載入。請開啟設定進行更新。" } } } }, - "Difference" : { - - }, - "Differs" : { - - }, - "Digits" : { + "Drop" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "자릿수" + "value" : "삭제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Rakamlar" + "value" : "Bırak" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Số chữ số" + "value" : "Xóa" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "位数" + "value" : "删除" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "位數" + "value" : "刪除" } } } }, - "Direct partitions" : { - + "Drop %1$@ %2$@" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "%1$@ %2$@ 삭제", + "state" : "translated" + } + } + } }, - "Disable" : { + "Drop %1$@ “%2$@”?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "비활성화" + "value" : "%1$@ “%2$@”을(를) 삭제하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Devre Dışı Bırak" + "value" : "%1$@ “%2$@” bırakılsın mı?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tắt" + "value" : "Xóa %1$@ “%2$@”?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "禁用" + "value" : "删除%1$@“%2$@”?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "停用" + "value" : "刪除%1$@「%2$@」?" } } } }, - "Disable %@" : { + "Drop %1$@ “%2$@”…" : { + "comment" : "The text of the menu item for dropping a single database. The argument is the name of the database.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 비활성화" + "value" : "%1$@ “%2$@” 삭제…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ Kapat" + "value" : "%1$@ “%2$@” Sil…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tắt %@" + "value" : "Xoá %1$@ “%2$@”…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "关闭 %@" + "value" : "删除%1$@“%2$@”…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "關閉 %@" + "value" : "刪除%1$@「%2$@」…" } } } }, - "Disable foreign key checks" : { - "extractionState" : "stale", + "Drop %1$lld %2$@" : { + "comment" : "The text of the button that confirms the user's intention to drop multiple objects. The first argument is the pluralized name of the object. The second argument is the number of objects to be dropped.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "외래 키 검사 비활성화" + "value" : "%1$lld개의 %2$@ 삭제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yabancı anahtar kontrollerini kapat" + "value" : "%1$lld %2$@ Sil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tắt kiểm tra khóa ngoại" + "value" : "Xoá %1$lld %2$@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "禁用外键检查" + "value" : "删除 %1$lld 个%2$@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "停用外鍵檢查" + "value" : "刪除 %1$lld 個%2$@" } } } }, - "Disable SSH Tunnel" : { - "extractionState" : "stale", + "Drop %1$lld %2$@?" : { + "comment" : "The title of a confirmation alert when dropping multiple databases. The first argument is the number of databases being dropped. The second argument is the pluralized name of the database type.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 터널 비활성화" + "value" : "%1$lld개의 %2$@을(를) 삭제하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH Tünelini Devre Dışı Bırak" + "value" : "%1$lld %2$@ silinsin mi?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tắt SSH Tunnel" + "value" : "Xoá %1$lld %2$@?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "禁用 SSH 隧道" + "value" : "要删除 %1$lld 个%2$@吗?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "停用 SSH 隧道" + "value" : "要刪除 %1$lld 個%2$@嗎?" } } } }, - "disabled" : { + "Drop %1$lld %2$@…" : { + "comment" : "Text for the \"Drop\" menu item.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "비활성화됨" + "value" : "%1$lld개의 %2$@ 삭제…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "devre dışı" + "value" : "%1$lld %2$@ Sil…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "đã tắt" + "value" : "Xoá %1$lld %2$@…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已禁用" + "value" : "删除 %1$lld 个%2$@…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已停用" + "value" : "刪除 %1$lld 個%2$@…" } } } }, - "Disabled" : { + "Drop %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "비활성화됨" + "value" : "%@ 삭제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Devre Dışı" + "value" : "%@ Bırak" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã tắt" + "value" : "Xóa %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已禁用" + "value" : "删除 %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已停用" + "value" : "刪除 %@" } } } }, - "Discard" : { + "Drop %@…" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "폐기" + "value" : "%@ 삭제…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Vazgeç" + "value" : "%@ Bırak…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hủy bỏ" + "value" : "Xóa %@…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "丢弃" + "value" : "删除 %@…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "捨棄" + "value" : "刪除 %@…" } } } }, - "Discard Changes?" : { + "Drop %d tables" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "변경 사항을 폐기하시겠습니까?" + "value" : "테이블 %d개 삭제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Değişiklikler Atılsın mı?" + "value" : "%d tabloyu sil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hủy bỏ thay đổi?" + "value" : "Xoá %d bảng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "丢弃更改?" + "value" : "删除%d个表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "要捨棄變更嗎?" + "value" : "刪除 %d 個資料表" } } } }, - "Discard Unsaved Changes?" : { + "Drop %lld tables" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "저장하지 않은 변경 사항을 폐기하시겠습니까?" + "value" : "테이블 %lld개 삭제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kaydedilmemiş Değişiklikler Atılsın mı?" + "value" : "Drop %lld tablo" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hủy bỏ thay đổi chưa lưu?" + "value" : "Xóa %lld bảng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "丢弃未保存的更改?" + "value" : "删除 %lld 个表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "要捨棄未儲存的變更嗎?" + "value" : "刪除 %lld 個資料表" } } } }, - "Disconnect" : { + "Drop Database" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 해제" + "value" : "데이터베이스 삭제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantıyı Kes" + "value" : "Veritabanını Sil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ngắt kết nối" + "value" : "Xoá cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "断开连接" + "value" : "删除数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "中斷連線" + "value" : "刪除資料庫" } } } }, - "Disconnect client?" : { + "Drop Database..." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "클라이언트 연결을 해제하시겠습니까?" + "value" : "데이터베이스 삭제..." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İstemcinin bağlantısı kesilsin mi?" + "value" : "Veritabanını Sil..." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ngắt kết nối client?" + "value" : "Xoá cơ sở dữ liệu..." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "断开客户端连接?" + "value" : "删除数据库…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "要中斷用戶端連線嗎?" + "value" : "刪除資料庫…" } } } }, - "Disconnect from “%@”?" : { + "Drop Database…" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "“%@” 연결을 해제하시겠습니까?" + "value" : "데이터베이스 삭제…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "“%@” bağlantısı kesilsin mi?" + "value" : "Veritabanını Sil…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ngắt kết nối khỏi “%@”?" + "value" : "Xóa cơ sở dữ liệu…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "要断开与“%@”的连接吗?" + "value" : "删除数据库…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "要中斷與「%@」的連線嗎?" + "value" : "捨棄資料庫…" } } } }, - "Disconnect from a database" : { - "extractionState" : "stale", + "Drop External Table" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 연결 해제" + "value" : "외부 테이블 삭제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bir veritabanı bağlantısını kes" + "value" : "Harici Tabloyu Sil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ngắt kết nối khỏi cơ sở dữ liệu" + "value" : "Xóa External Table" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "断开数据库连接" + "value" : "删除外部表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "中斷與資料庫的連線" + "value" : "捨棄外部資料表" } } } }, - "Disconnect the selected client" : { + "Drop Failed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "선택한 클라이언트 연결 해제" + "value" : "삭제 실패" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Seçili istemcinin bağlantısını kes" + "value" : "Silme Başarısız" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ngắt kết nối client đã chọn" + "value" : "Xóa thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "断开所选客户端的连接" + "value" : "删除失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "中斷所選用戶端的連線" + "value" : "捨棄失敗" } } } }, - "disconnected" : { + "Drop Foreign Table" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 해제됨" + "value" : "외래 테이블 삭제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "bağlantı kesildi" + "value" : "Dış Tabloyu Sil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "đã ngắt kết nối" + "value" : "Xóa Foreign Table" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已断开连接" + "value" : "删除外部表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已中斷連線" + "value" : "捨棄外部資料表" } } } }, - "Disconnected" : { - "extractionState" : "stale", + "Drop Materialized View" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결이 해제되었습니다" + "value" : "구체화된 뷰 삭제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı Kesildi" + "value" : "Materyalize Görünümü Sil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã ngắt kết nối" + "value" : "Xóa Materialized View" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已断开连接" + "value" : "删除物化视图" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已中斷連線" + "value" : "捨棄具體化檢視表" } } } }, - "Disconnected from %@" : { + "Drop Partition" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 연결이 해제되었습니다" + "value" : "파티션 삭제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ bağlantısı kesildi" + "value" : "Bölümü Sil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã ngắt kết nối khỏi %@" + "value" : "Xoá phân vùng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已断开与 %@ 的连接" + "value" : "删除分区" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已中斷與 %@ 的連線" + "value" : "刪除分割區" } } } }, - "Disk Usage" : { + "Drop Partition?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "디스크 사용량" + "value" : "파티션을 삭제하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Disk Kullanımı" + "value" : "Bölüm Silinsin mi?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sử dụng ổ đĩa" + "value" : "Xoá phân vùng?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "磁盘使用量" + "value" : "删除分区?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "磁碟使用量" + "value" : "要刪除分割區嗎?" } } } }, - "Dismiss" : { + "Drop Role" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "닫기" + "value" : "역할 삭제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kapat" + "value" : "Rolü Sil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bỏ qua" + "value" : "Xoá vai trò" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "关闭" + "value" : "删除角色" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "關閉" + "value" : "刪除角色" } } } }, - "Dismiss error" : { + "Drop Trigger" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "오류 닫기" + "value" : "트리거 삭제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Hatayı kapat" + "value" : "Tetikleyiciyi Sil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bỏ qua lỗi" + "value" : "Xoá trigger" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "关闭错误" + "value" : "删除触发器" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "關閉錯誤" + "value" : "刪除觸發器" } } } }, - "Display" : { - "extractionState" : "stale", + "Drop View" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "표시" + "value" : "뷰 삭제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Görüntüle" + "value" : "Görünümü Bırak" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiển thị" + "value" : "Xóa view" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示" + "value" : "删除视图" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示" + "value" : "刪除檢視表" } } } }, - "Display As" : { + "Drop all tables that depend on this table" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "표시 형식" + "value" : "이 테이블에 종속된 모든 테이블 삭제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Farklı Görüntüle" + "value" : "Bu tabloya bağımlı tüm tabloları bırak" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiển thị dạng" + "value" : "Xóa tất cả bảng phụ thuộc vào bảng này" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示为" + "value" : "删除所有依赖此表的表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示為" + "value" : "刪除所有依賴此資料表的資料表" } } } }, - "Display name" : { - - }, - "Distributed key-value store for service discovery" : { + "Drop database '%@'?" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "서비스 검색용 분산 키-값 저장소" + "value" : "데이터베이스 '%@'을(를) 삭제하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Servis keşfi için dağıtık anahtar-değer deposu" + "value" : "'%@' veritabanı silinsin mi?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kho key-value phân tán cho service discovery" + "value" : "Xoá cơ sở dữ liệu '%@'?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "用于服务发现的分布式键值存储" + "value" : "删除数据库 '%@'?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "用於服務探索的分散式鍵值儲存" + "value" : "要刪除資料庫「%@」嗎?" } } } }, - "Distributed SQL query engine for data lakes" : { + "Drop database “%@”?" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터 레이크용 분산 SQL 쿼리 엔진" + "value" : "데이터베이스 “%@”을(를) 삭제하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veri gölleri için dağıtık SQL sorgu motoru" + "value" : "“%@” veritabanı silinsin mi?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Công cụ truy vấn SQL phân tán cho data lake" + "value" : "Xóa cơ sở dữ liệu “%@”?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "面向数据湖的分布式 SQL 查询引擎" + "value" : "要删除数据库“%@”吗?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "適用於資料湖的分散式 SQL 查詢引擎" + "value" : "要捨棄資料庫「%@」嗎?" } } } }, - "Distributed SQL, PostgreSQL-compatible" : { + "Drop owned objects" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "PostgreSQL 호환 분산 SQL" + "value" : "소유한 객체 삭제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dağıtık SQL, PostgreSQL uyumlu" + "value" : "Sahip olunan nesneleri sil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "SQL phân tán, tương thích PostgreSQL" + "value" : "Xoá các đối tượng sở hữu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "分布式 SQL,兼容 PostgreSQL" + "value" : "删除拥有的对象" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "分散式 SQL,相容 PostgreSQL" + "value" : "刪除擁有的物件" } } } }, - "Distributed SQLite by Turso" : { + "Drop selected database" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Turso의 분산형 SQLite" + "value" : "선택한 데이터베이스 삭제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Turso'dan dağıtık SQLite" + "value" : "Seçili veritabanını sil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "SQLite phân tán của Turso" + "value" : "Xoá cơ sở dữ liệu đã chọn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Turso 出品的分布式 SQLite" + "value" : "删除选定的数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Turso 推出的分散式 SQLite" + "value" : "刪除選取的資料庫" } } } }, - "Distributed wide-column store" : { + "Drop selected partition" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "분산 와이드 컬럼 저장소" + "value" : "선택한 파티션 삭제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dağıtık geniş sütunlu depo" + "value" : "Seçili bölümü sil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kho wide-column phân tán" + "value" : "Xoá phân vùng đã chọn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "分布式宽列存储" + "value" : "删除选定的分区" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "分散式寬欄儲存" + "value" : "刪除選取的分割區" } } } }, - "Do Not Decode" : { + "Drop table %@" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "테이블 %@ 삭제", + "state" : "translated" + } + } + } + }, + "Drop table '%@'" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "디코딩 안 함" + "value" : "테이블 '%@' 삭제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kodu Çözme" + "value" : "Drop tablo '%@'" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không giải mã" + "value" : "Xóa bảng '%@'" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "不解码" + "value" : "删除表 '%@'" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "不解碼" + "value" : "刪除資料表「%@」" } } } }, - "Do not show this again" : { - "comment" : "Title of the checkbox that can be checked to suppress the warning dialog.", - "isCommentAutoGenerated" : true, + "Drop trigger “%@”?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다시 표시하지 않기" + "value" : "트리거 “%@”을(를) 삭제하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bunu bir daha gösterme" + "value" : "“%@” tetikleyicisi silinsin mi?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không hiện lại" + "value" : "Xoá trigger “%@”?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "不再显示" + "value" : "删除触发器“%@”?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "不再顯示" + "value" : "要刪除觸發器「%@」嗎?" } } } }, - "Do you want to save changes?" : { + "Dropping %1$@ %2$@ removes it from the target." : { "localizations" : { "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "변경 사항을 저장하시겠습니까?" + "value" : "%1$@ %2$@을(를) 삭제하면 대상에서 제거됩니다.", + "state" : "translated" } - }, - "tr" : { + } + } + }, + "Dropping column %@ permanently removes its data." : { + "localizations" : { + "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "Değişiklikleri kaydetmek istiyor musunuz?" + "value" : "열 %@을(를) 삭제하면 해당 데이터가 영구적으로 제거됩니다.", + "state" : "translated" } - }, - "vi" : { + } + } + }, + "Dropping index %@ can slow existing queries." : { + "localizations" : { + "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "Bạn có muốn lưu thay đổi?" + "value" : "인덱스 %@을(를) 삭제하면 기존 쿼리가 느려질 수 있습니다.", + "state" : "translated" } - }, - "zh-Hans" : { + } + } + }, + "Dropping materialized view %@ discards its stored rows, which have to be rebuilt." : { + "localizations" : { + "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "是否保存更改?" + "value" : "구체화 뷰 %@을(를) 삭제하면 저장된 행이 버려지며, 다시 만들어야 합니다.", + "state" : "translated" } - }, - "zh-Hant" : { + } + } + }, + "Dropping table %@ permanently removes the table and all of its rows." : { + "localizations" : { + "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "是否要儲存變更?" + "value" : "테이블 %@을(를) 삭제하면 테이블과 모든 행이 영구적으로 제거됩니다.", + "state" : "translated" } } } }, - "Document" : { + "Dropping..." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "문서" + "value" : "삭제 중..." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Belge" + "value" : "Siliniyor..." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Document" + "value" : "Đang xoá..." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "文档" + "value" : "正在删除…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "文件" + "value" : "正在刪除…" } } } }, - "Document Inspector" : { + "Drop…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "문서 검사기" + "value" : "삭제…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Belge Denetçisi" + "value" : "Sil…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trình kiểm tra document" + "value" : "Xoá…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "文档检查器" + "value" : "删除…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "文件檢閱器" + "value" : "刪除…" } } } }, - "Documentation" : { + "DuckLake Data Path" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "도움말 문서" + "value" : "DuckLake 데이터 경로" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Belgeler" + "value" : "DuckLake Veri Yolu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tài liệu" + "value" : "Đường dẫn dữ liệu DuckLake" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "文档" + "value" : "DuckLake 数据路径" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "文件" + "value" : "DuckLake 資料路徑" } } } }, - "does not equal" : { + "Dump operations are only supported for PostgreSQL and Redshift connections." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "같지 않음" + "value" : "덤프 작업은 PostgreSQL 및 Redshift 연결에서만 지원됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "eşit değil" + "value" : "Döküm işlemleri yalnızca PostgreSQL ve Redshift bağlantıları için desteklenir." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "không bằng" + "value" : "Thao tác dump chỉ được hỗ trợ cho kết nối PostgreSQL và Redshift." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "不等于" + "value" : "转储操作仅支持 PostgreSQL 和 Redshift 连接。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "不等於" + "value" : "備份/還原操作僅支援 PostgreSQL 和 Redshift 連線。" } } } }, - "Don't Allow" : { + "Duplicate" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "허용 안 함" + "value" : "복제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İzin Verme" + "value" : "Çoğalt" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không cho phép" + "value" : "Nhân bản" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "不允许" + "value" : "复制" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "不允許" + "value" : "製作複本" } } } }, - "Don't Save" : { + "Duplicate Existing Table" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "저장 안 함" + "value" : "기존 테이블 복제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kaydetme" + "value" : "Mevcut Tabloyu Çoğalt" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không lưu" + "value" : "Nhân bản bảng hiện có" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "不保存" + "value" : "复制现有表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "不要儲存" + "value" : "複製現有資料表" } } } }, - "Don't show this again" : { - "extractionState" : "stale", + "Duplicate Filter" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다시 표시하지 않기" + "value" : "필터 복제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bunu bir daha gösterme" + "value" : "Filtreyi Çoğalt" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không hiện lại" + "value" : "Nhân bản bộ lọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "不再显示" + "value" : "复制筛选条件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "不再顯示" + "value" : "複製篩選條件" } } } }, - "Don't Sort" : { + "Duplicate Line" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "정렬 안 함" + "value" : "줄 복제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sıralama" + "value" : "Satırı Çoğalt" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không sắp xếp" + "value" : "Nhân bản dòng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "不排序" + "value" : "复制行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "不排序" + "value" : "複製一行" } } } }, - "Done" : { + "Duplicate Row" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "완료" + "value" : "행 복제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tamam" + "value" : "Satırı Çoğalt" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xong" + "value" : "Nhân bản dòng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "完成" + "value" : "复制行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "完成" + "value" : "複製列" } } } }, - "Dotted scope path, '*' for server" : { - - }, - "Double Quote \"" : { + "Duplicate Table Structure" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "큰따옴표 \"" + "value" : "테이블 구조 복제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Çift Tırnak \"" + "value" : "Tablo Yapısını Çoğalt" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dấu nháy kép \"" + "value" : "Nhân bản cấu trúc bảng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "双引号 \"" + "value" : "复制表结构" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "雙引號 \"" + "value" : "複製資料表結構" } } } }, - "Doubled Quote" : { + "Duplicate Theme" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "큰따옴표 이중 처리" + "value" : "테마 복제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Çiftlenmiş Tırnak" + "value" : "Temayı Çoğalt" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nháy kép lặp lại" + "value" : "Nhân bản chủ đề" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重复引号" + "value" : "复制主题" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重複引號" + "value" : "複製佈景主題" } } } }, - "Download cloud-sql-proxy…" : { + "Duplicate filter" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "cloud-sql-proxy 다운로드…" + "value" : "필터 복제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "cloud-sql-proxy indir…" + "value" : "Filtreyi çoğalt" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tải cloud-sql-proxy…" + "value" : "Nhân đôi bộ lọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "下载 cloud-sql-proxy…" + "value" : "复制筛选条件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "下載 cloud-sql-proxy…" + "value" : "複製篩選條件" } } } }, - "Downloading plugin" : { - "comment" : "A description of a progress bar that shows a download in progress.", - "isCommentAutoGenerated" : true, + "Duplicate it to customize colors and layout." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플러그인 다운로드 중" + "value" : "복제본을 만들어 색상과 레이아웃을 사용자화하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklenti indiriliyor" + "value" : "Renk ve düzeni özelleştirmek için çoğaltın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang tải plugin" + "value" : "Nhân bản để tuỳ chỉnh màu sắc và bố cục." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在下载插件" + "value" : "复制后可自定义颜色和布局。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在下載外掛" + "value" : "製作複本即可自訂顏色與版面配置。" } } } }, - "Downloads" : { + "Duplicate it to customize colors." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다운로드" + "value" : "복제본을 만들어 색상을 사용자화하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İndirmeler" + "value" : "Renkleri özelleştirmek için çoğaltın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lượt tải" + "value" : "Nhân bản để tuỳ chỉnh màu sắc." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "下载次数" + "value" : "复制以自定义颜色。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "下載次數" + "value" : "製作複本即可自訂顏色。" } } } }, - "Draft a data quality audit" : { - - }, - "Drag to reorder this filter" : { + "Duration" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "드래그하여 이 필터의 순서 변경" + "value" : "소요 시간" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu filtreyi yeniden sıralamak için sürükleyin" + "value" : "Süre" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kéo để sắp xếp lại bộ lọc này" + "value" : "Thời lượng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "拖动以重新排列此筛选条件" + "value" : "持续时间" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "拖曳以重新排列這個篩選條件" + "value" : "持續時間" } } } }, - "Driver Options" : { - "comment" : "A section for driver-specific options.", - "isCommentAutoGenerated" : true, + "Dynamic" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "드라이버 옵션" + "value" : "동적" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sürücü Seçenekleri" + "value" : "Dinamik" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tuỳ chọn driver" + "value" : "Động" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "驱动选项" + "value" : "动态" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "驅動程式選項" + "value" : "動態" } } } }, - "Driver plugin not loaded. Open Settings to update." : { + "ER Diagram" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "드라이버 플러그인을 불러오지 못했습니다. 설정을 열어 업데이트하십시오." + "value" : "ER 다이어그램" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sürücü eklentisi yüklenmedi. Güncellemek için Ayarlar'ı açın." + "value" : "ER Diyagramı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Plugin driver chưa được tải. Mở Cài đặt để cập nhật." + "value" : "Sơ đồ ER" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "驱动插件未加载。请打开设置进行更新。" + "value" : "ER 图" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "驅動程式外掛未載入。請開啟設定進行更新。" + "value" : "ER 圖" } } } }, - "Driver status message, when the engine sent one" : { - - }, - "Drop" : { + "EU Long (31/12/2024 23:59:59)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "삭제" + "value" : "EU 긴 형식(31/12/2024 23:59:59)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bırak" + "value" : "AB Uzun (31/12/2024 23:59:59)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa" + "value" : "Châu Âu dài (31/12/2024 23:59:59)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除" + "value" : "欧洲长格式 (31/12/2024 23:59:59)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除" + "value" : "歐洲長格式 (31/12/2024 23:59:59)" } } } }, - "Drop %@" : { + "EU Short (31/12/2024)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 삭제" + "value" : "EU 짧은 형식(31/12/2024)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ Bırak" + "value" : "AB Kısa (31/12/2024)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa %@" + "value" : "Châu Âu ngắn (31/12/2024)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除 %@" + "value" : "欧洲短格式 (31/12/2024)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除 %@" + "value" : "歐洲短格式 (31/12/2024)" } } } }, - "Drop %@…" : { - "extractionState" : "stale", + "EXPLAIN is not supported for this database type." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 삭제…" + "value" : "이 데이터베이스 유형에서는 EXPLAIN을 지원하지 않습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ Bırak…" + "value" : "Bu veritabanı türü için EXPLAIN desteklenmiyor." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa %@…" + "value" : "EXPLAIN không được hỗ trợ cho loại cơ sở dữ liệu này." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除 %@…" + "value" : "此数据库类型不支持 EXPLAIN。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除 %@…" + "value" : "此資料庫類型不支援 EXPLAIN。" } } } }, - "Drop %1$@ “%2$@”?" : { + "EXTENDED" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@ “%2$@”을(를) 삭제하시겠습니까?" + "value" : "EXTENDED" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@ “%2$@” bırakılsın mı?" + "value" : "GENİŞLETİLMİŞ" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa %1$@ “%2$@”?" + "value" : "MỞ RỘNG" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除%1$@“%2$@”?" + "value" : "扩展" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除%1$@「%2$@」?" + "value" : "擴充" } } } }, - "Drop %1$@ “%2$@”…" : { - "comment" : "The text of the menu item for dropping a single database. The argument is the name of the database.", - "isCommentAutoGenerated" : true, + "Each SQLite file is a separate database.\nTo open a different database, create a new connection." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@ “%2$@” 삭제…" + "value" : "각 SQLite 파일은 별도의 데이터베이스입니다.\n다른 데이터베이스를 열려면 새 연결을 생성하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@ “%2$@” Sil…" + "value" : "Her SQLite dosyası ayrı bir veritabanıdır.\nFarklı bir veritabanı açmak için yeni bağlantı oluşturun." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xoá %1$@ “%2$@”…" + "value" : "Mỗi tệp SQLite là một cơ sở dữ liệu riêng.\nĐể mở cơ sở dữ liệu khác, hãy tạo kết nối mới." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除%1$@“%2$@”…" + "value" : "每个 SQLite 文件是一个独立的数据库。\n要打开其他数据库,请创建新连接。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除%1$@「%2$@」…" + "value" : "每個 SQLite 檔案都是獨立的資料庫。\n若要開啟其他資料庫,請建立新連線。" } } } }, - "Drop %1$@ %2$@" : { - - }, - "Drop %1$lld %2$@" : { - "comment" : "The text of the button that confirms the user's intention to drop multiple objects. The first argument is the pluralized name of the object. The second argument is the number of objects to be dropped.", - "isCommentAutoGenerated" : true, + "Each column can be mapped from only one field." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$lld개의 %2$@ 삭제" + "value" : "각 열에는 하나의 필드만 매핑할 수 있습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%1$lld %2$@ Sil" + "value" : "Her sütun yalnızca bir alandan eşlenebilir." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xoá %1$lld %2$@" + "value" : "Mỗi cột chỉ có thể được ánh xạ từ một trường." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除 %1$lld 个%2$@" + "value" : "每列只能映射自一个字段。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除 %1$lld 個%2$@" + "value" : "每個欄位只能對應自一個欄位。" } } } }, - "Drop %1$lld %2$@?" : { - "comment" : "The title of a confirmation alert when dropping multiple databases. The first argument is the number of databases being dropped. The second argument is the pluralized name of the database type.", - "isCommentAutoGenerated" : true, + "Earliest executed_at to include, Unix epoch seconds (inclusive, optional)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$lld개의 %2$@을(를) 삭제하시겠습니까?" + "value" : "포함할 가장 이른 executed_at 값(Unix epoch 초, 경계 포함, 선택 사항)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%1$lld %2$@ silinsin mi?" + "value" : "Dahil edilecek en erken executed_at, Unix epoch saniyesi (dahil, isteğe bağlı)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xoá %1$lld %2$@?" + "value" : "Mốc executed_at sớm nhất được tính, giây Unix epoch (bao gồm mốc này, tùy chọn)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "要删除 %1$lld 个%2$@吗?" + "value" : "要包含的最早 executed_at,Unix 纪元秒(含,可选)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "要刪除 %1$lld 個%2$@嗎?" + "value" : "要納入的最早 executed_at,Unix 紀元秒(含,選用)" } } } }, - "Drop %1$lld %2$@…" : { - "comment" : "Text for the \"Drop\" menu item.", - "isCommentAutoGenerated" : true, + "Edit" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$lld개의 %2$@ 삭제…" + "value" : "편집" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%1$lld %2$@ Sil…" + "value" : "Düzenle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xoá %1$lld %2$@…" + "value" : "Sửa" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除 %1$lld 个%2$@…" + "value" : "编辑" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除 %1$lld 個%2$@…" + "value" : "編輯" } } } }, - "Drop %d tables" : { + "Edit %@ Connection" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 %d개 삭제" + "value" : "%@ 연결 편집" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%d tabloyu sil" + "value" : "%@ Bağlantısını Düzenle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xoá %d bảng" + "value" : "Sửa kết nối %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除%d个表" + "value" : "编辑 %@ 连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除 %d 個資料表" + "value" : "編輯 %@ 連線" } } } }, - "Drop %lld tables" : { - "extractionState" : "stale", + "Edit Cell" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 %lld개 삭제" + "value" : "셀 편집" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Drop %lld tablo" + "value" : "Hücreyi Düzenle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa %lld bảng" + "value" : "Sửa ô" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除 %lld 个表" + "value" : "编辑单元格" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除 %lld 個資料表" + "value" : "編輯儲存格" } } } }, - "Drop a whole database or a whole schema. This deletes everything inside it and cannot be undone, so the user approves it first. Needs tools:write on a connection left writable for external clients." : { - - }, - "Drop all tables that depend on this table" : { + "Edit Column" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 테이블에 종속된 모든 테이블 삭제" + "value" : "열 편집" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu tabloya bağımlı tüm tabloları bırak" + "value" : "Sütunu Düzenle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa tất cả bảng phụ thuộc vào bảng này" + "value" : "Sửa cột" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除所有依赖此表的表" + "value" : "编辑列" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除所有依賴此資料表的資料表" + "value" : "編輯欄位" } } } }, - "Drop Database" : { - "extractionState" : "stale", + "Edit Connection" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 삭제" + "value" : "연결 편집" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanını Sil" + "value" : "Bağlantıyı Düzenle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xoá cơ sở dữ liệu" + "value" : "Sửa kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除数据库" + "value" : "编辑连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除資料庫" + "value" : "編輯連線" } } } }, - "Drop database '%@'?" : { + "Edit Details (Double-click)" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 '%@'을(를) 삭제하시겠습니까?" + "value" : "세부사항 편집(이중 클릭)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "'%@' veritabanı silinsin mi?" + "value" : "Ayrıntıları Düzenle (Çift tıklayın)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xoá cơ sở dữ liệu '%@'?" + "value" : "Sửa chi tiết (Nhấp đúp)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除数据库 '%@'?" + "value" : "编辑详情(双击)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "要刪除資料庫「%@」嗎?" + "value" : "編輯詳細資訊(按兩下)" } } } }, - "Drop database “%@”?" : { - "extractionState" : "stale", + "Edit Favorite" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 “%@”을(를) 삭제하시겠습니까?" + "value" : "즐겨찾기 편집" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "“%@” veritabanı silinsin mi?" + "value" : "Favoriyi Düzenle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa cơ sở dữ liệu “%@”?" + "value" : "Sửa mục yêu thích" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "要删除数据库“%@”吗?" + "value" : "编辑收藏" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "要捨棄資料庫「%@」嗎?" + "value" : "編輯我的最愛" } } } }, - "Drop Database or Schema" : { - - }, - "Drop Database..." : { - "extractionState" : "stale", + "Edit Foreign Key" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 삭제..." + "value" : "외래 키 편집" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanını Sil..." + "value" : "Yabancı Anahtarı Düzenle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xoá cơ sở dữ liệu..." + "value" : "Sửa khoá ngoại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除数据库…" + "value" : "编辑外键" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除資料庫…" + "value" : "編輯外鍵" } } } }, - "Drop Database…" : { - "extractionState" : "stale", + "Edit Index" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 삭제…" + "value" : "인덱스 편집" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanını Sil…" + "value" : "Dizini Düzenle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa cơ sở dữ liệu…" + "value" : "Sửa chỉ mục" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除数据库…" + "value" : "编辑索引" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "捨棄資料庫…" + "value" : "編輯索引" } } } }, - "Drop External Table" : { + "Edit Metadata" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "외부 테이블 삭제" + "value" : "메타데이터 편집" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Harici Tabloyu Sil" + "value" : "Meta Verileri Düzenle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa External Table" + "value" : "Sửa metadata" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除外部表" + "value" : "编辑元数据" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "捨棄外部資料表" + "value" : "編輯中繼資料" } } } }, - "Drop Failed" : { + "Edit Metadata..." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "삭제 실패" + "value" : "메타데이터 편집..." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Silme Başarısız" + "value" : "Meta Verileri Düzenle..." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa thất bại" + "value" : "Sửa metadata..." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除失败" + "value" : "编辑元数据..." } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "捨棄失敗" + "value" : "編輯中繼資料…" } } } }, - "Drop Foreign Table" : { + "Edit Metadata…" : { + "comment" : "Text for a menu item that opens a screen to edit metadata for a linked favorite.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "외래 테이블 삭제" + "value" : "메타데이터 편집…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dış Tabloyu Sil" + "value" : "Meta Verileri Düzenle…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa Foreign Table" + "value" : "Sửa siêu dữ liệu…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除外部表" + "value" : "编辑元数据…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "捨棄外部資料表" + "value" : "編輯中繼資料…" } } } }, - "Drop Materialized View" : { + "Edit Profile…" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Edit Profile…" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "구체화된 뷰 삭제" + "value" : "프로필 편집…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Materyalize Görünümü Sil" + "value" : "Profili Düzenle…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa Materialized View" + "value" : "Chỉnh sửa hồ sơ…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除物化视图" + "value" : "编辑配置…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "捨棄具體化檢視表" + "value" : "編輯設定檔…" } } } }, - "Drop owned objects" : { + "Edit Provider" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "소유한 객체 삭제" + "value" : "제공자 편집" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sahip olunan nesneleri sil" + "value" : "Sağlayıcıyı Düzenle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xoá các đối tượng sở hữu" + "value" : "Sửa nhà cung cấp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除拥有的对象" + "value" : "编辑提供商" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除擁有的物件" + "value" : "編輯供應商" } } } }, - "Drop Partition" : { + "Edit Row" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "파티션 삭제" + "value" : "행 편집" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bölümü Sil" + "value" : "Satırı Düzenle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xoá phân vùng" + "value" : "Sửa dòng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除分区" + "value" : "编辑行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除分割區" + "value" : "編輯列" } } } }, - "Drop Partition?" : { + "Edit Trigger" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "파티션을 삭제하시겠습니까?" + "value" : "트리거 편집" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bölüm Silinsin mi?" + "value" : "Tetikleyiciyi Düzenle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xoá phân vùng?" + "value" : "Sửa trigger" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除分区?" + "value" : "编辑触发器" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "要刪除分割區嗎?" + "value" : "編輯觸發器" } } } }, - "Drop Role" : { + "Edit Values…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "역할 삭제" + "value" : "값 편집…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Rolü Sil" + "value" : "Değerleri Düzenle…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xoá vai trò" + "value" : "Chỉnh sửa giá trị…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除角色" + "value" : "编辑值…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除角色" + "value" : "編輯值…" } } } }, - "Drop selected database" : { - "extractionState" : "stale", + "Edit View Definition" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "선택한 데이터베이스 삭제" + "value" : "뷰 정의 편집" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Seçili veritabanını sil" + "value" : "Görünüm Tanımını Düzenle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xoá cơ sở dữ liệu đã chọn" + "value" : "Sửa định nghĩa view" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除选定的数据库" + "value" : "编辑视图定义" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除選取的資料庫" + "value" : "編輯檢視表定義" } } } }, - "Drop selected partition" : { + "Edit View Definition…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "선택한 파티션 삭제" + "value" : "뷰 정의 편집…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Seçili bölümü sil" + "value" : "Görünüm Tanımını Düzenle…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xoá phân vùng đã chọn" + "value" : "Sửa định nghĩa view…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除选定的分区" + "value" : "编辑视图定义…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除選取的分割區" + "value" : "編輯檢視表定義…" } } } }, - "Drop table '%@'" : { + "Edit as List" : { + "comment" : "A button that switches between editing a PostgreSQL array as a list and as text.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 '%@' 삭제" + "value" : "목록으로 편집" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Drop tablo '%@'" + "value" : "Liste Olarak Düzenle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa bảng '%@'" + "value" : "Sửa dạng danh sách" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除表 '%@'" + "value" : "以列表方式编辑" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除資料表「%@」" + "value" : "以列表方式編輯" } } } }, - "Drop table %@" : { - - }, - "Drop Trigger" : { + "Edit as Text" : { + "comment" : "A button that switches between editing an array as a list of values and as a single text field.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "트리거 삭제" + "value" : "텍스트로 편집" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tetikleyiciyi Sil" + "value" : "Metin Olarak Düzenle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xoá trigger" + "value" : "Sửa dạng văn bản" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除触发器" + "value" : "以文本方式编辑" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除觸發器" + "value" : "以文字方式編輯" } } } }, - "Drop trigger “%@”?" : { + "Edit message" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "트리거 “%@”을(를) 삭제하시겠습니까?" + "value" : "메시지 편집" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "“%@” tetikleyicisi silinsin mi?" + "value" : "Mesajı düzenle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xoá trigger “%@”?" + "value" : "Chỉnh sửa tin nhắn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除触发器“%@”?" + "value" : "编辑消息" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "要刪除觸發器「%@」嗎?" + "value" : "編輯訊息" } } } }, - "Drop View" : { + "Edit provider" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "뷰 삭제" + "value" : "제공자 편집" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Görünümü Bırak" + "value" : "Sağlayıcıyı düzenle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa view" + "value" : "Chỉnh sửa nhà cung cấp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除视图" + "value" : "编辑提供商" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除檢視表" + "value" : "編輯供應商" } } } }, - "Drop…" : { + "Edit..." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "삭제…" + "value" : "편집..." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sil…" + "value" : "Düzenle..." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xoá…" + "value" : "Chỉnh sửa..." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除…" + "value" : "编辑…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除…" - } - } - } - }, - "dropping %@ '%@'" : { - "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "dropping %1$@ '%2$@'" + "value" : "編輯…" } } } }, - "Dropping %1$@ %2$@ removes it from the target." : { - - }, - "Dropping column %@ permanently removes its data." : { - - }, - "Dropping index %@ can slow existing queries." : { - - }, - "Dropping materialized view %@ discards its stored rows, which have to be rebuilt." : { - - }, - "Dropping table %@ permanently removes the table and all of its rows." : { - - }, - "Dropping..." : { - "extractionState" : "stale", + "Edit: read-only tools plus running queries. Destructive DDL stays blocked." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "삭제 중..." + "value" : "편집: 읽기 전용 도구와 쿼리 실행. 파괴적 DDL은 계속 차단됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Siliniyor..." + "value" : "Düzenle: salt okunur araçlar ve sorgu çalıştırma. Yıkıcı DDL engellenmeye devam eder." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang xoá..." + "value" : "Sửa: các công cụ chỉ đọc cùng với chạy truy vấn. DDL phá hủy vẫn bị chặn." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在删除…" + "value" : "编辑:只读工具加运行查询。破坏性 DDL 仍被阻止。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在刪除…" + "value" : "編輯:唯讀工具加上執行查詢。破壞性 DDL 仍會被封鎖。" } } } }, - "DuckLake Data Path" : { - "extractionState" : "stale", + "Editable Hex" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "DuckLake 데이터 경로" + "value" : "편집 가능한 16진수" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "DuckLake Veri Yolu" + "value" : "Düzenlenebilir Hex" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đường dẫn dữ liệu DuckLake" + "value" : "Hex có thể chỉnh sửa" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "DuckLake 数据路径" + "value" : "可编辑十六进制" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "DuckLake 資料路徑" + "value" : "可編輯十六進位" } } } }, - "Dump operations are only supported for PostgreSQL and Redshift connections." : { + "Editing" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "덤프 작업은 PostgreSQL 및 Redshift 연결에서만 지원됩니다." + "value" : "편집 중" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Döküm işlemleri yalnızca PostgreSQL ve Redshift bağlantıları için desteklenir." + "value" : "Düzenleniyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thao tác dump chỉ được hỗ trợ cho kết nối PostgreSQL và Redshift." + "value" : "Đang sửa" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "转储操作仅支持 PostgreSQL 和 Redshift 连接。" + "value" : "编辑中" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "備份/還原操作僅支援 PostgreSQL 和 Redshift 連線。" + "value" : "編輯中" } } } }, - "duplicate" : { + "Editor" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "복제" + "value" : "편집기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "kopya" + "value" : "Düzenleyici" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "bản sao" + "value" : "Trình soạn thảo" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "副本" + "value" : "编辑器" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "副本" + "value" : "編輯器" } } } }, - "Duplicate" : { + "Editor & Query" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "복제" + "value" : "편집기 및 쿼리" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Çoğalt" + "value" : "Düzenleyici ve Sorgu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhân bản" + "value" : "Trình soạn thảo & Truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制" + "value" : "编辑器与查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "製作複本" + "value" : "編輯器與查詢" } } } }, - "Duplicate Existing Table" : { - "extractionState" : "stale", + "Editor Font" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기존 테이블 복제" + "value" : "편집기 글꼴" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Mevcut Tabloyu Çoğalt" + "value" : "Düzenleyici Yazı Tipi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhân bản bảng hiện có" + "value" : "Phông chữ trình soạn thảo" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制现有表" + "value" : "编辑器字体" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製現有資料表" + "value" : "編輯器字型" } } } }, - "Duplicate filter" : { - "extractionState" : "stale", + "Editor Tabs" : { + "comment" : "A label displayed above the tabs in the editor.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터 복제" + "value" : "편집기 탭" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtreyi çoğalt" + "value" : "Düzenleyici Sekmeleri" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhân đôi bộ lọc" + "value" : "Tab trình soạn thảo" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制筛选条件" + "value" : "编辑器标签页" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製篩選條件" + "value" : "編輯器分頁" } } } }, - "Duplicate Filter" : { + "Edit…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터 복제" + "value" : "편집…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtreyi Çoğalt" + "value" : "Düzenle…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhân bản bộ lọc" + "value" : "Sửa…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制筛选条件" + "value" : "编辑…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製篩選條件" + "value" : "編輯…" } } } }, - "Duplicate it to customize colors and layout." : { - "extractionState" : "stale", + "Effective" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "복제본을 만들어 색상과 레이아웃을 사용자화하십시오." + "value" : "적용됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Renk ve düzeni özelleştirmek için çoğaltın." + "value" : "Etkin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhân bản để tuỳ chỉnh màu sắc và bố cục." + "value" : "Hiệu lực" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制后可自定义颜色和布局。" + "value" : "实际生效" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "製作複本即可自訂顏色與版面配置。" + "value" : "實際生效" } } } }, - "Duplicate it to customize colors." : { + "ElastiCache IAM authentication requires TLS. Enable SSL in the connection's SSL settings." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "복제본을 만들어 색상을 사용자화하십시오." + "value" : "ElastiCache IAM 인증에는 TLS가 필요합니다. 연결의 SSL 설정에서 SSL을 활성화하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Renkleri özelleştirmek için çoğaltın." + "value" : "ElastiCache IAM kimlik doğrulaması TLS gerektirir. Bağlantının SSL ayarlarından SSL'i etkinleştirin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhân bản để tuỳ chỉnh màu sắc." + "value" : "Xác thực IAM của ElastiCache yêu cầu TLS. Hãy bật SSL trong cài đặt SSL của kết nối." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制以自定义颜色。" + "value" : "ElastiCache IAM 认证需要 TLS。请在连接的 SSL 设置中启用 SSL。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "製作複本即可自訂顏色。" + "value" : "ElastiCache IAM 驗證需要 TLS。請在連線的 SSL 設定中啟用 SSL。" } } } }, - "Duplicate Line" : { + "Email:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "줄 복제" + "value" : "이메일:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satırı Çoğalt" + "value" : "E-posta:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhân bản dòng" + "value" : "Email:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制行" + "value" : "邮箱:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製一行" + "value" : "電子郵件:" } } } }, - "Duplicate Row" : { + "Embedded WASM Postgres over a socket server" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "행 복제" + "value" : "소켓 서버를 통한 임베디드 WASM Postgres" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satırı Çoğalt" + "value" : "Soket sunucusu üzerinden gömülü WASM Postgres" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhân bản dòng" + "value" : "Postgres WASM nhúng chạy qua máy chủ socket" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制行" + "value" : "通过 socket 服务运行的嵌入式 WASM Postgres" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製列" + "value" : "透過 socket 伺服器執行的嵌入式 WASM Postgres" } } } }, - "Duplicate Table Structure" : { - "extractionState" : "stale", + "Embedded analytical SQL" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 구조 복제" + "value" : "임베디드 분석 SQL" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tablo Yapısını Çoğalt" + "value" : "Gömülü analitik SQL" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhân bản cấu trúc bảng" + "value" : "SQL phân tích nhúng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制表结构" + "value" : "嵌入式分析型 SQL" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製資料表結構" + "value" : "內嵌式分析型 SQL" } } } }, - "Duplicate Theme" : { + "Embedded and remote analytical SQL" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테마 복제" + "value" : "임베디드 및 원격 분석 SQL" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Temayı Çoğalt" + "value" : "Gömülü ve uzak analitik SQL" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhân bản chủ đề" + "value" : "SQL phân tích nhúng và từ xa" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制主题" + "value" : "嵌入式与远程分析型 SQL" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複製佈景主題" + "value" : "嵌入式與遠端分析型 SQL" } } } }, - "Duration" : { + "Embedded zero-config SQL database" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "소요 시간" + "value" : "별도 설정이 필요 없는 임베디드 SQL 데이터베이스" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Süre" + "value" : "Gömülü, yapılandırma gerektirmeyen SQL veritabanı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thời lượng" + "value" : "Cơ sở dữ liệu SQL nhúng, không cần cấu hình" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "持续时间" + "value" : "嵌入式零配置 SQL 数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "持續時間" + "value" : "內嵌式零設定 SQL 資料庫" } } } }, - "Duration in milliseconds" : { - - }, - "Dynamic" : { + "Empty" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "동적" + "value" : "비어 있음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dinamik" + "value" : "Boş" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Động" + "value" : "Trống" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "动态" + "value" : "空" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "動態" + "value" : "空白" } } } }, - "e.g., Claude Code on VPS" : { + "Empty Redis command" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "예: VPS의 Claude Code" + "value" : "빈 Redis 명령" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "örn. VPS üzerinde Claude Code" + "value" : "Boş Redis komutu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "ví dụ: Claude Code trên VPS" + "value" : "Lệnh Redis trống" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "例如,VPS 上的 Claude Code" + "value" : "Redis 命令为空" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "例如:VPS 上的 Claude Code" + "value" : "Redis 命令為空" } } } }, - "Each column can be mapped from only one field." : { + "Empty array" : { + "comment" : "A message displayed when a list is empty.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "각 열에는 하나의 필드만 매핑할 수 있습니다." + "value" : "빈 배열" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Her sütun yalnızca bir alandan eşlenebilir." + "value" : "Boş dizi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mỗi cột chỉ có thể được ánh xạ từ một trường." + "value" : "Mảng rỗng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "每列只能映射自一个字段。" + "value" : "空数组" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "每個欄位只能對應自一個欄位。" + "value" : "空陣列" } } } }, - "Each SQLite file is a separate database.\nTo open a different database, create a new connection." : { - "extractionState" : "stale", + "Enable" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "각 SQLite 파일은 별도의 데이터베이스입니다.\n다른 데이터베이스를 열려면 새 연결을 생성하십시오." + "value" : "활성화" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Her SQLite dosyası ayrı bir veritabanıdır.\nFarklı bir veritabanı açmak için yeni bağlantı oluşturun." + "value" : "Etkinleştir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mỗi tệp SQLite là một cơ sở dữ liệu riêng.\nĐể mở cơ sở dữ liệu khác, hãy tạo kết nối mới." + "value" : "Bật" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "每个 SQLite 文件是一个独立的数据库。\n要打开其他数据库,请创建新连接。" + "value" : "启用" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "每個 SQLite 檔案都是獨立的資料庫。\n若要開啟其他資料庫,請建立新連線。" + "value" : "啟用" } } } }, - "Earliest executed_at to include, Unix epoch seconds (inclusive, optional)" : { - "extractionState" : "stale", + "Enable %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "포함할 가장 이른 executed_at 값(Unix epoch 초, 경계 포함, 선택 사항)" + "value" : "%@ 활성화" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dahil edilecek en erken executed_at, Unix epoch saniyesi (dahil, isteğe bağlı)" + "value" : "%@ Etkinleştir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mốc executed_at sớm nhất được tính, giây Unix epoch (bao gồm mốc này, tùy chọn)" + "value" : "Bật %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "要包含的最早 executed_at,Unix 纪元秒(含,可选)" + "value" : "启用 %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "要納入的最早 executed_at,Unix 紀元秒(含,選用)" + "value" : "啟用 %@" } } } }, - "Earliest executed_at, Unix epoch seconds" : { - - }, - "Edit" : { + "Enable AI Features" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "편집" + "value" : "AI 기능 활성화" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Düzenle" + "value" : "AI Özelliklerini Etkinleştir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sửa" + "value" : "Bật tính năng AI" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "编辑" + "value" : "启用 AI 功能" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "編輯" + "value" : "啟用 AI 功能" } } } }, - "Edit %@ Connection" : { + "Enable Cloud SQL Auth Proxy" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 연결 편집" + "value" : "Cloud SQL Auth Proxy 활성화" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ Bağlantısını Düzenle" + "value" : "Cloud SQL Auth Proxy'yi Etkinleştir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sửa kết nối %@" + "value" : "Bật Cloud SQL Auth Proxy" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "编辑 %@ 连接" + "value" : "启用 Cloud SQL Auth Proxy" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "編輯 %@ 連線" + "value" : "啟用 Cloud SQL Auth Proxy" } } } }, - "Edit as List" : { - "comment" : "A button that switches between editing a PostgreSQL array as a list and as text.", - "isCommentAutoGenerated" : true, + "Enable Cloudflare Tunnel" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "목록으로 편집" + "value" : "Cloudflare Tunnel 활성화" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Liste Olarak Düzenle" + "value" : "Cloudflare Tunnel'ı Etkinleştir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sửa dạng danh sách" + "value" : "Bật Cloudflare Tunnel" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "以列表方式编辑" + "value" : "启用 Cloudflare Tunnel" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "以列表方式編輯" + "value" : "啟用 Cloudflare 隧道" } } } }, - "Edit as Text" : { - "comment" : "A button that switches between editing an array as a list of values and as a single text field.", - "isCommentAutoGenerated" : true, + "Enable MCP Server" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "텍스트로 편집" + "value" : "MCP 서버 활성화" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Metin Olarak Düzenle" + "value" : "MCP Sunucusunu Etkinleştir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sửa dạng văn bản" + "value" : "Bật MCP Server" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "以文本方式编辑" + "value" : "启用 MCP 服务器" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "以文字方式編輯" + "value" : "啟用 MCP 伺服器" } } } }, - "Edit Cell" : { + "Enable SOCKS Proxy" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "셀 편집" + "value" : "SOCKS 프록시 활성화" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Hücreyi Düzenle" + "value" : "SOCKS Proxy'yi Etkinleştir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sửa ô" + "value" : "Bật SOCKS Proxy" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "编辑单元格" + "value" : "启用 SOCKS 代理" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "編輯儲存格" + "value" : "啟用 SOCKS 代理" } } } }, - "Edit Column" : { + "Enable SSH Tunnel" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열 편집" + "value" : "SSH 터널 활성화" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sütunu Düzenle" + "value" : "SSH Tünelini Etkinleştir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sửa cột" + "value" : "Bật đường hầm SSH" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "编辑列" + "value" : "启用 SSH 隧道" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "編輯欄位" + "value" : "啟用 SSH 隧道" } } } }, - "Edit Connection" : { + "Enable filter" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 편집" + "value" : "필터 활성화" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantıyı Düzenle" + "value" : "Filtreyi etkinleştir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sửa kết nối" + "value" : "Bật bộ lọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "编辑连接" + "value" : "启用筛选" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "編輯連線" + "value" : "啟用篩選" } } } }, - "Edit Details (Double-click)" : { + "Enable inline suggestions" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "세부사항 편집(이중 클릭)" + "value" : "인라인 제안 활성화" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ayrıntıları Düzenle (Çift tıklayın)" + "value" : "Satır içi önerileri etkinleştir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sửa chi tiết (Nhấp đúp)" + "value" : "Bật gợi ý trực tiếp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "编辑详情(双击)" + "value" : "启用行内建议" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "編輯詳細資訊(按兩下)" + "value" : "啟用行內建議" } } } }, - "Edit Favorite" : { + "Enable inline suggestions while typing" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "즐겨찾기 편집" + "value" : "입력 중 인라인 제안 활성화" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Favoriyi Düzenle" + "value" : "Yazarken satır içi önerileri etkinleştir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sửa mục yêu thích" + "value" : "Bật gợi ý nội tuyến khi gõ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "编辑收藏" + "value" : "在输入时启用内联建议" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "編輯我的最愛" + "value" : "輸入時啟用行內建議" } } } }, - "Edit Foreign Key" : { + "Enable or disable all filters" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "외래 키 편집" + "value" : "모든 필터를 활성화 또는 비활성화" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yabancı Anahtarı Düzenle" + "value" : "Tüm filtreleri etkinleştir veya devre dışı bırak" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sửa khoá ngoại" + "value" : "Bật hoặc tắt tất cả bộ lọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "编辑外键" + "value" : "启用或禁用所有筛选" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "編輯外鍵" + "value" : "啟用或停用所有篩選" } } } }, - "Edit Index" : { + "Enable preview tabs" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "인덱스 편집" + "value" : "미리보기 탭 활성화" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dizini Düzenle" + "value" : "Önizleme sekmelerini etkinleştir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sửa chỉ mục" + "value" : "Bật tab xem trước" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "编辑索引" + "value" : "启用预览标签页" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "編輯索引" + "value" : "啟用預覽分頁" } } } }, - "Edit message" : { + "Enabled" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "메시지 편집" + "value" : "활성화됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Mesajı düzenle" + "value" : "Etkin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chỉnh sửa tin nhắn" + "value" : "Đã bật" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "编辑消息" + "value" : "已启用" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "編輯訊息" + "value" : "已啟用" } } } }, - "Edit Metadata" : { + "Encoding" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "메타데이터 편집" + "value" : "인코딩" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Meta Verileri Düzenle" + "value" : "Kodlama" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sửa metadata" + "value" : "Mã hóa" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "编辑元数据" + "value" : "编码" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "編輯中繼資料" + "value" : "編碼" } } } }, - "Edit Metadata..." : { - "extractionState" : "stale", + "Encoding:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "메타데이터 편집..." + "value" : "인코딩:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Meta Verileri Düzenle..." + "value" : "Kodlama:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sửa metadata..." + "value" : "Mã hóa:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "编辑元数据..." + "value" : "编码:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "編輯中繼資料…" + "value" : "編碼:" } } } }, - "Edit Metadata…" : { - "comment" : "Text for a menu item that opens a screen to edit metadata for a linked favorite.", - "isCommentAutoGenerated" : true, + "Encrypted Export" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "메타데이터 편집…" + "value" : "암호화된 내보내기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Meta Verileri Düzenle…" + "value" : "Şifreli Dışa Aktarma" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sửa siêu dữ liệu…" + "value" : "Xuất Mã hóa" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "编辑元数据…" + "value" : "加密导出" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "編輯中繼資料…" + "value" : "加密匯出" } } } }, - "Edit Profile…" : { + "Endpoint" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Edit Profile…" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "프로필 편집…" + "value" : "엔드포인트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Profili Düzenle…" + "value" : "Uç Nokta" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chỉnh sửa hồ sơ…" + "value" : "Endpoint" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "编辑配置…" + "value" : "Endpoint" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "編輯設定檔…" + "value" : "Endpoint" } } } }, - "Edit provider" : { - "extractionState" : "stale", + "Engine" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "제공자 편집" + "value" : "엔진" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sağlayıcıyı düzenle" + "value" : "Motor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chỉnh sửa nhà cung cấp" + "value" : "Engine" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "编辑提供商" + "value" : "Engine" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "編輯供應商" + "value" : "Engine" } } } }, - "Edit Provider" : { + "Engine (e.g., InnoDB)" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "제공자 편집" + "value" : "엔진(예: InnoDB)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sağlayıcıyı Düzenle" + "value" : "Motor (örn. InnoDB)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sửa nhà cung cấp" + "value" : "Engine (vd: InnoDB)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "编辑提供商" + "value" : "Engine(如 InnoDB)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "編輯供應商" + "value" : "Engine(例如 InnoDB)" } } } }, - "Edit Row" : { - "extractionState" : "stale", + "Engine:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "행 편집" + "value" : "엔진:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satırı Düzenle" + "value" : "Motor:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sửa dòng" + "value" : "Engine:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "编辑行" + "value" : "引擎:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "編輯列" + "value" : "引擎:" } } } }, - "Edit Trigger" : { + "Enter Full Screen" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "트리거 편집" + "value" : "전체 화면으로 전환" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tetikleyiciyi Düzenle" + "value" : "Tam Ekrana Geç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sửa trigger" + "value" : "Vào toàn màn hình" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "编辑触发器" + "value" : "进入全屏幕" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "編輯觸發器" + "value" : "進入全螢幕" } } } }, - "Edit Values…" : { + "Enter a name for this filter preset" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "값 편집…" + "value" : "이 필터 프리셋의 이름을 입력하십시오" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Değerleri Düzenle…" + "value" : "Bu filtre ön ayarı için bir ad girin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chỉnh sửa giá trị…" + "value" : "Nhập tên cho mẫu bộ lọc này" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "编辑值…" + "value" : "输入此筛选预设的名称" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "編輯值…" + "value" : "輸入此篩選預設組合的名稱" } } } }, - "Edit View Definition" : { + "Enter a new name for the group." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "뷰 정의 편집" + "value" : "그룹의 새 이름을 입력하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Görünüm Tanımını Düzenle" + "value" : "Grup için yeni bir ad girin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sửa định nghĩa view" + "value" : "Nhập tên mới cho nhóm." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "编辑视图定义" + "value" : "输入分组的新名称。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "編輯檢視表定義" + "value" : "輸入群組的新名稱。" } } } }, - "Edit View Definition…" : { + "Enter an absolute path, as it appears on the SSH server." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "뷰 정의 편집…" + "value" : "SSH 서버에 표시되는 절대 경로를 입력하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Görünüm Tanımını Düzenle…" + "value" : "SSH sunucusunda göründüğü şekliyle mutlak bir yol girin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sửa định nghĩa view…" + "value" : "Nhập đường dẫn tuyệt đối, đúng như trên máy chủ SSH." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "编辑视图定义…" + "value" : "请输入绝对路径,与 SSH 服务器上的路径一致。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "編輯檢視表定義…" + "value" : "請輸入絕對路徑,與 SSH 伺服器上的路徑一致。" } } } }, - "Edit: read-only tools plus running queries. Destructive DDL stays blocked." : { + "Enter database name" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "편집: 읽기 전용 도구와 쿼리 실행. 파괴적 DDL은 계속 차단됩니다." + "value" : "데이터베이스 이름 입력" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Düzenle: salt okunur araçlar ve sorgu çalıştırma. Yıkıcı DDL engellenmeye devam eder." + "value" : "Veritabanı adı girin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sửa: các công cụ chỉ đọc cùng với chạy truy vấn. DDL phá hủy vẫn bị chặn." + "value" : "Nhập tên cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "编辑:只读工具加运行查询。破坏性 DDL 仍被阻止。" + "value" : "输入数据库名称" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "編輯:唯讀工具加上執行查詢。破壞性 DDL 仍會被封鎖。" + "value" : "輸入資料庫名稱" } } } }, - "Edit..." : { - "extractionState" : "stale", + "Enter table name" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "편집..." + "value" : "테이블 이름 입력" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Düzenle..." + "value" : "Tablo adını girin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chỉnh sửa..." + "value" : "Nhập tên bảng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "编辑…" + "value" : "输入表名" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "編輯…" + "value" : "輸入資料表名稱" } } } }, - "Edit…" : { + "Enter the %@ for \"%@\"" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Enter the %1$@ for \"%2$@\"" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "편집…" + "value" : "다음 항목의 %1$@을(를) 입력하십시오: \"%2$@\"" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Düzenle…" + "value" : "\"%@\" için %@ girin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sửa…" + "value" : "Nhập %@ cho \"%@\"" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "编辑…" + "value" : "输入\"%@\"的 %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "編輯…" + "value" : "輸入「%1$@」的 %2$@" } } } }, - "Editable Hex" : { + "Enter the ElastiCache cache name (replication group ID) to use IAM authentication." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "편집 가능한 16진수" + "value" : "IAM 인증에 사용할 ElastiCache 캐시 이름(복제 그룹 ID)을 입력하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Düzenlenebilir Hex" + "value" : "IAM kimlik doğrulamasını kullanmak için ElastiCache önbellek adını (çoğaltma grubu kimliği) girin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hex có thể chỉnh sửa" + "value" : "Nhập tên cache ElastiCache (replication group ID) để dùng xác thực IAM." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "可编辑十六进制" + "value" : "输入 ElastiCache 缓存名称(复制组 ID)以使用 IAM 认证。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "可編輯十六進位" + "value" : "輸入 ElastiCache 快取名稱(複寫群組 ID)以使用 IAM 驗證。" } } } }, - "Editing" : { + "Enter the TOTP verification code for SSH authentication." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "편집 중" + "value" : "SSH 인증용 TOTP 확인 코드를 입력하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Düzenleniyor" + "value" : "SSH kimlik doğrulaması için TOTP doğrulama kodunu girin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang sửa" + "value" : "Nhập mã xác minh TOTP để xác thực SSH." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "编辑中" + "value" : "输入 TOTP 验证码以进行 SSH 身份验证。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "編輯中" + "value" : "輸入 TOTP 驗證碼以進行 SSH 驗證。" } } } }, - "Editor" : { + "Enter the code %@ in the browser to finish signing in to Microsoft Entra ID. The code is on your clipboard." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "편집기" + "value" : "코드 %@을(를) 브라우저에 입력하여 Microsoft Entra ID 로그인을 완료하십시오. 코드는 클립보드에 복사되어 있습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Düzenleyici" + "value" : "Microsoft Entra ID oturumunu tamamlamak için tarayıcıya %@ kodunu girin. Kod panonuzda." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trình soạn thảo" + "value" : "Nhập mã %@ trong trình duyệt để hoàn tất đăng nhập Microsoft Entra ID. Mã đã được sao chép vào bộ nhớ tạm." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "编辑器" + "value" : "在浏览器中输入代码 %@ 以完成 Microsoft Entra ID 登录。该代码已复制到剪贴板。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "編輯器" + "value" : "在瀏覽器中輸入代碼 %@ 以完成 Microsoft Entra ID 登入。該代碼已複製到剪貼簿。" } } } }, - "Editor & Query" : { + "Enter the passphrase for SSH key \"%@\":" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "편집기 및 쿼리" + "value" : "SSH 키 \"%@\"의 암호를 입력하십시오:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Düzenleyici ve Sorgu" + "value" : "SSH anahtarı \"%@\" için parolayı girin:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trình soạn thảo & Truy vấn" + "value" : "Nhập cụm mật khẩu cho khoá SSH \"%@\":" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "编辑器与查询" + "value" : "请输入 SSH 密钥 \"%@\" 的密码:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "編輯器與查詢" + "value" : "請輸入 SSH 金鑰「%@」的密碼短語:" } } } }, - "Editor Font" : { + "Enter the passphrase to decrypt and import connections." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "편집기 글꼴" + "value" : "연결을 복호화하고 가져올 암호를 입력하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Düzenleyici Yazı Tipi" + "value" : "Bağlantıları şifresini çözmek ve içe aktarmak için parolayı girin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phông chữ trình soạn thảo" + "value" : "Nhập cụm mật khẩu để giải mã và nhập kết nối." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "编辑器字体" + "value" : "输入密码短语以解密并导入连接。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "編輯器字型" + "value" : "輸入密碼短語以解密並匯入連線。" } } } }, - "Editor Tabs" : { - "comment" : "A label displayed above the tabs in the editor.", - "isCommentAutoGenerated" : true, + "Enter this code on GitHub:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "편집기 탭" + "value" : "GitHub에 다음 코드를 입력하십시오:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Düzenleyici Sekmeleri" + "value" : "Bu kodu GitHub'a girin:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tab trình soạn thảo" + "value" : "Nhập mã này trên GitHub:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "编辑器标签页" + "value" : "在 GitHub 上输入此代码:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "編輯器分頁" + "value" : "在 GitHub 上輸入此代碼:" } } } }, - "Effective" : { + "Enter your license key to unlock Pro features." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "적용됨" + "value" : "Pro 기능을 잠금 해제하려면 라이선스 키를 입력하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Etkin" + "value" : "Pro özelliklerin kilidini açmak için lisans anahtarınızı girin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiệu lực" + "value" : "Nhập mã giấy phép để mở khoá các tính năng Pro." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "实际生效" + "value" : "输入许可证密钥以解锁 Pro 功能。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "實際生效" + "value" : "輸入授權金鑰以解鎖 Pro 功能。" } } } }, - "ElastiCache IAM authentication requires TLS. Enable SSL in the connection's SSL settings." : { + "Enter your license key, or a team invite code to join a team." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "ElastiCache IAM 인증에는 TLS가 필요합니다. 연결의 SSL 설정에서 SSL을 활성화하십시오." + "value" : "라이선스 키 또는 팀 참여용 초대 코드를 입력하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "ElastiCache IAM kimlik doğrulaması TLS gerektirir. Bağlantının SSL ayarlarından SSL'i etkinleştirin." + "value" : "Lisans anahtarınızı girin veya bir takıma katılmak için takım davet kodunu girin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xác thực IAM của ElastiCache yêu cầu TLS. Hãy bật SSL trong cài đặt SSL của kết nối." + "value" : "Nhập mã giấy phép của bạn, hoặc mã mời nhóm để tham gia một nhóm." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "ElastiCache IAM 认证需要 TLS。请在连接的 SSL 设置中启用 SSL。" + "value" : "输入你的许可证密钥,或输入团队邀请码以加入团队。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "ElastiCache IAM 驗證需要 TLS。請在連線的 SSL 設定中啟用 SSL。" + "value" : "輸入你的授權金鑰,或輸入團隊邀請碼以加入團隊。" } } } }, - "Email:" : { + "Enterprise SQL with PL/SQL" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이메일:" + "value" : "PL/SQL을 지원하는 엔터프라이즈 SQL" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "E-posta:" + "value" : "PL/SQL ile kurumsal SQL" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Email:" + "value" : "SQL doanh nghiệp với PL/SQL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "邮箱:" + "value" : "支持 PL/SQL 的企业级 SQL" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "電子郵件:" + "value" : "支援 PL/SQL 的企業級 SQL" } } } }, - "Embedded analytical SQL" : { + "Enterprise relational database for DM8 deployments" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "임베디드 분석 SQL" + "value" : "DM8 배포용 엔터프라이즈 관계형 데이터베이스" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Gömülü analitik SQL" + "value" : "DM8 dağıtımları için kurumsal ilişkisel veritabanı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "SQL phân tích nhúng" + "value" : "Cơ sở dữ liệu quan hệ doanh nghiệp cho triển khai DM8" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "嵌入式分析型 SQL" + "value" : "面向 DM8 部署的企业级关系型数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "內嵌式分析型 SQL" + "value" : "適用於 DM8 部署的企業級關聯式資料庫" } } } }, - "Embedded and remote analytical SQL" : { + "Environment" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "임베디드 및 원격 분석 SQL" + "value" : "환경" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Gömülü ve uzak analitik SQL" + "value" : "Ortam" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "SQL phân tích nhúng và từ xa" + "value" : "Môi trường" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "嵌入式与远程分析型 SQL" + "value" : "环境" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "嵌入式與遠端分析型 SQL" + "value" : "環境" } } } }, - "Embedded WASM Postgres over a socket server" : { + "Environment Variables" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "소켓 서버를 통한 임베디드 WASM Postgres" + "value" : "환경 변수" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Soket sunucusu üzerinden gömülü WASM Postgres" + "value" : "Ortam Değişkenleri" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Postgres WASM nhúng chạy qua máy chủ socket" + "value" : "Biến Môi trường" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "通过 socket 服务运行的嵌入式 WASM Postgres" + "value" : "环境变量" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "透過 socket 伺服器執行的嵌入式 WASM Postgres" + "value" : "環境變數" } } } }, - "Embedded zero-config SQL database" : { + "Environment variable %@ is not set in TablePro's environment. Apps launched from the Dock do not inherit shell exports. Launch TablePro from a terminal, or set the variable with launchctl setenv." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "별도 설정이 필요 없는 임베디드 SQL 데이터베이스" + "value" : "환경 변수 %@이(가) TablePro 환경에 설정되어 있지 않습니다. Dock에서 실행한 앱은 셸에서 export한 환경 변수를 상속하지 않습니다. 터미널에서 TablePro를 실행하거나 launchctl setenv로 변수를 설정하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Gömülü, yapılandırma gerektirmeyen SQL veritabanı" + "value" : "%@ ortam değişkeni TablePro'nun ortamında ayarlı değil. Dock'tan başlatılan uygulamalar kabuk dışa aktarmalarını devralmaz. TablePro'yu bir terminalden başlatın veya değişkeni launchctl setenv ile ayarlayın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cơ sở dữ liệu SQL nhúng, không cần cấu hình" + "value" : "Biến môi trường %@ chưa được đặt trong môi trường của TablePro. Ứng dụng khởi chạy từ Dock không kế thừa các export của shell. Hãy khởi chạy TablePro từ terminal, hoặc đặt biến bằng launchctl setenv." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "嵌入式零配置 SQL 数据库" + "value" : "环境变量 %@ 未在 TablePro 的环境中设置。从 Dock 启动的应用不会继承 shell 导出的变量。请从终端启动 TablePro,或使用 launchctl setenv 设置该变量。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "內嵌式零設定 SQL 資料庫" + "value" : "環境變數 %@ 未在 TablePro 的環境中設定。從 Dock 啟動的應用程式不會繼承 shell 匯出的變數。請從終端機啟動 TablePro,或使用 launchctl setenv 設定該變數。" } } } }, - "Empty" : { + "Error" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "비어 있음" + "value" : "오류" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Boş" + "value" : "Hata" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trống" + "value" : "Lỗi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "空" + "value" : "错误" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "空白" + "value" : "錯誤" } } } }, - "Empty array" : { - "comment" : "A message displayed when a list is empty.", - "isCommentAutoGenerated" : true, + "Error %d" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "빈 배열" + "value" : "오류 %d" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Boş dizi" + "value" : "Hata %d" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mảng rỗng" + "value" : "Lỗi %d" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "空数组" + "value" : "错误 %d" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "空陣列" + "value" : "錯誤 %d" } } } }, - "Empty Redis command" : { - "extractionState" : "stale", + "Error Applying Changes" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "빈 Redis 명령" + "value" : "변경 사항 적용 오류" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Boş Redis komutu" + "value" : "Değişiklikler Uygulanırken Hata" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lệnh Redis trống" + "value" : "Lỗi áp dụng thay đổi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Redis 命令为空" + "value" : "应用更改时出错" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Redis 命令為空" + "value" : "套用變更時發生錯誤" } } } }, - "Enable" : { + "Error:" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "활성화" + "value" : "오류:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Etkinleştir" + "value" : "Hata:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bật" + "value" : "Lỗi:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "启用" + "value" : "错误:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "啟用" + "value" : "錯誤:" } } } }, - "Enable %@" : { + "Error: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 활성화" + "value" : "오류: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ Etkinleştir" + "value" : "Hata: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bật %@" + "value" : "Lỗi: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "启用 %@" + "value" : "错误: %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "啟用 %@" + "value" : "錯誤:%@" } } } }, - "Enable AI Features" : { + "Error: Selected path is not a regular file" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "AI 기능 활성화" + "value" : "오류: 선택한 경로가 일반 파일이 아닙니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "AI Özelliklerini Etkinleştir" + "value" : "Hata: Seçilen yol normal bir dosya değil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bật tính năng AI" + "value" : "Lỗi: Đường dẫn đã chọn không phải tệp thông thường" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "启用 AI 功能" + "value" : "错误: 所选路径不是常规文件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "啟用 AI 功能" + "value" : "錯誤:所選路徑不是一般檔案" } } } }, - "Enable Cloud SQL Auth Proxy" : { + "Escape character" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Cloud SQL Auth Proxy 활성화" + "value" : "이스케이프 문자" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Cloud SQL Auth Proxy'yi Etkinleştir" + "value" : "Kaçış karakteri" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bật Cloud SQL Auth Proxy" + "value" : "Ký tự thoát" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "启用 Cloud SQL Auth Proxy" + "value" : "转义字符" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "啟用 Cloud SQL Auth Proxy" + "value" : "跳脫字元" } } } }, - "Enable Cloudflare Tunnel" : { + "Escape clears the search text" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Cloudflare Tunnel 활성화" + "value" : "Escape 키를 누르면 검색 텍스트가 지워집니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Cloudflare Tunnel'ı Etkinleştir" + "value" : "Escape arama metnini temizler" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bật Cloudflare Tunnel" + "value" : "Escape xoá nội dung tìm kiếm" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "启用 Cloudflare Tunnel" + "value" : "Escape 清除搜索文本" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "啟用 Cloudflare 隧道" + "value" : "Escape 清除搜尋文字" } } } }, - "Enable filter" : { + "Escape closes Open Quickly" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터 활성화" + "value" : "Escape 키를 누르면 빠르게 열기가 닫힙니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtreyi etkinleştir" + "value" : "Escape, Hızlı Aç'ı kapatır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bật bộ lọc" + "value" : "Escape đóng Mở nhanh" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "启用筛选" + "value" : "Escape 关闭“快速打开”" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "啟用篩選" + "value" : "Escape 關閉「快速打開」" } } } }, - "Enable inline suggestions" : { - "extractionState" : "stale", + "Event" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "인라인 제안 활성화" + "value" : "이벤트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satır içi önerileri etkinleştir" + "value" : "Olay" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bật gợi ý trực tiếp" + "value" : "Sự kiện" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "启用行内建议" + "value" : "事件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "啟用行內建議" + "value" : "事件" } } } }, - "Enable inline suggestions while typing" : { + "Every included column needs a name." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "입력 중 인라인 제안 활성화" + "value" : "포함된 모든 열에 이름이 필요합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yazarken satır içi önerileri etkinleştir" + "value" : "Dahil edilen her sütunun bir adı olmalıdır." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bật gợi ý nội tuyến khi gõ" + "value" : "Mỗi cột được bao gồm cần có tên." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在输入时启用内联建议" + "value" : "每个包含的列都需要名称。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "輸入時啟用行內建議" + "value" : "每個納入的欄位都需要名稱。" } } } }, - "Enable MCP Server" : { + "Every object that was compared matches." : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "비교한 모든 객체가 일치합니다.", + "state" : "translated" + } + } + } + }, + "Every shared column is generated, so there is nothing to write." : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "공유하는 모든 열이 생성 열이므로 기록할 내용이 없습니다.", + "state" : "translated" + } + } + } + }, + "Every table needs at least one column. Click + to get started" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "MCP 서버 활성화" + "value" : "모든 테이블에는 열이 하나 이상 있어야 합니다. +를 클릭하여 시작하십시오" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "MCP Sunucusunu Etkinleştir" + "value" : "Her tablonun en az bir sütuna ihtiyacı vardır. Başlamak için + tıklayın" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bật MCP Server" + "value" : "Mỗi bảng cần ít nhất một cột. Nhấn + để bắt đầu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "启用 MCP 服务器" + "value" : "每个表至少需要一列。点击 + 开始添加" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "啟用 MCP 伺服器" + "value" : "每個資料表至少需要一個欄位。點按 + 開始新增" } } } }, - "Enable or disable all filters" : { + "Everything" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 필터를 활성화 또는 비활성화" + "value" : "모두" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm filtreleri etkinleştir veya devre dışı bırak" + "value" : "Her Şey" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bật hoặc tắt tất cả bộ lọc" + "value" : "Tất cả" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "启用或禁用所有筛选" + "value" : "全部" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "啟用或停用所有篩選" + "value" : "全部" } } } }, - "Enable preview tabs" : { + "Exact value" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "정확한 값", + "state" : "translated" + } + } + } + }, + "Examples" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "미리보기 탭 활성화" + "value" : "예시" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Önizleme sekmelerini etkinleştir" + "value" : "Örnekler" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bật tab xem trước" + "value" : "Ví dụ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "启用预览标签页" + "value" : "示例" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "啟用預覽分頁" + "value" : "範例" } } } }, - "Enable SOCKS Proxy" : { + "Excel spreadsheet with formatting support." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SOCKS 프록시 활성화" + "value" : "서식을 지원하는 Excel 스프레드시트입니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SOCKS Proxy'yi Etkinleştir" + "value" : "Biçimlendirme destekli Excel elektronik tablosu." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bật SOCKS Proxy" + "value" : "Bảng tính Excel có hỗ trợ định dạng." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "启用 SOCKS 代理" + "value" : "支持格式化的 Excel 电子表格。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "啟用 SOCKS 代理" + "value" : "支援格式設定的 Excel 試算表。" } } } }, - "Enable SSH Tunnel" : { + "Exclude" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "제외", + "state" : "translated" + } + } + } + }, + "Exclude Every Table" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "모든 테이블 제외", + "state" : "translated" + } + } + } + }, + "Exclude from iCloud Sync" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 터널 활성화" + "value" : "iCloud 동기화에서 제외" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH Tünelini Etkinleştir" + "value" : "iCloud Eşitlemesinden Hariç Tut" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bật đường hầm SSH" + "value" : "Loại khỏi đồng bộ iCloud" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "启用 SSH 隧道" + "value" : "排除 iCloud 同步" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "啟用 SSH 隧道" + "value" : "排除於 iCloud 同步" } } } }, - "Enabled" : { + "Execute" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "활성화됨" + "value" : "실행" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Etkin" + "value" : "Çalıştır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã bật" + "value" : "Thực thi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已启用" + "value" : "执行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已啟用" + "value" : "執行" } } } }, - "Encoding" : { + "Execute All" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "인코딩" + "value" : "모두 실행" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kodlama" + "value" : "Tümünü Çalıştır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mã hóa" + "value" : "Thực thi tất cả" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "编码" + "value" : "全部执行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "編碼" + "value" : "全部執行" } } } }, - "Encoding:" : { + "Execute All Statements" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "인코딩:" + "value" : "모든 문 실행" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kodlama:" + "value" : "Tüm İfadeleri Çalıştır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mã hóa:" + "value" : "Thực thi tất cả câu lệnh" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "编码:" + "value" : "执行所有语句" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "編碼:" + "value" : "執行所有陳述式" } } } }, - "encoding: %@" : { + "Execute Query" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "인코딩: %@" + "value" : "쿼리 실행" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "kodlama: %@" + "value" : "Sorguyu Çalıştır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "bảng mã: %@" + "value" : "Thực thi truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "编码:%@" + "value" : "执行查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "編碼:%@" + "value" : "執行查詢" } } } }, - "Encrypted Export" : { + "Execute Query Without Limit" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "암호화된 내보내기" + "value" : "제한 없이 쿼리 실행" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Şifreli Dışa Aktarma" + "value" : "Sorguyu Limitsiz Çalıştır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất Mã hóa" + "value" : "Chạy truy vấn không giới hạn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "加密导出" + "value" : "不限行数执行查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "加密匯出" + "value" : "不限列數執行查詢" } } } }, - "Endpoint" : { + "Execute Without Limit" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "엔드포인트" + "value" : "제한 없이 실행" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Uç Nokta" + "value" : "Limitsiz Çalıştır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Endpoint" + "value" : "Chạy không giới hạn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Endpoint" + "value" : "不限行数执行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Endpoint" + "value" : "不限列數執行" } } } }, - "ends with" : { + "Execute a SQL query against a connection. The connection's safe mode policy applies. Multi-statement queries are rejected. Destructive operations (DROP, TRUNCATE, ALTER...DROP) are blocked here; use confirm_destructive_operation instead." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다음으로 끝남" + "value" : "연결에서 SQL 쿼리를 실행합니다. 연결의 안전 모드 정책이 적용됩니다. 여러 문으로 구성된 쿼리는 거부됩니다. 파괴적 작업(DROP, TRUNCATE, ALTER...DROP)은 여기에서 차단되며, 대신 confirm_destructive_operation을 사용하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "bununla biter" + "value" : "Bir bağlantıda SQL sorgusu çalıştırır. Bağlantının güvenli mod politikası uygulanır. Çok deyimli sorgular reddedilir. Yıkıcı işlemler (DROP, TRUNCATE, ALTER...DROP) burada engellenir; bunun yerine confirm_destructive_operation kullanın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "kết thúc bằng" + "value" : "Thực thi truy vấn SQL trên một kết nối. Chính sách chế độ an toàn của kết nối được áp dụng. Truy vấn nhiều câu lệnh sẽ bị từ chối. Các thao tác phá hủy (DROP, TRUNCATE, ALTER...DROP) bị chặn ở đây; hãy dùng confirm_destructive_operation thay thế." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "以...结尾" + "value" : "对连接执行 SQL 查询。受连接的安全模式策略约束。多语句查询会被拒绝。破坏性操作(DROP、TRUNCATE、ALTER...DROP)在此被阻止;请改用 confirm_destructive_operation。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "結尾為" + "value" : "對連線執行 SQL 查詢。會套用連線的安全模式原則。多陳述式查詢會被拒絕。破壞性操作(DROP、TRUNCATE、ALTER...DROP)在此會被封鎖;請改用 confirm_destructive_operation。" } } } }, - "Engine" : { + "Execute a SQL query. All queries are subject to the connection's safe mode policy. DROP/TRUNCATE/ALTER...DROP must use the confirm_destructive_operation tool." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "엔진" + "value" : "SQL 쿼리를 실행합니다. 모든 쿼리에는 연결의 안전 모드 정책이 적용됩니다. DROP/TRUNCATE/ALTER...DROP에는 confirm_destructive_operation 도구를 사용해야 합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Motor" + "value" : "SQL sorgusu çalıştırır. Tüm sorgular bağlantının güvenli mod politikasına tabidir. DROP/TRUNCATE/ALTER...DROP için confirm_destructive_operation aracı kullanılmalıdır." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Engine" + "value" : "Thực thi truy vấn SQL. Mọi truy vấn đều tuân theo chính sách chế độ an toàn của kết nối. DROP/TRUNCATE/ALTER...DROP phải dùng công cụ confirm_destructive_operation." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Engine" + "value" : "执行 SQL 查询。所有查询都受连接的安全模式策略约束。DROP/TRUNCATE/ALTER...DROP 必须使用 confirm_destructive_operation 工具。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Engine" + "value" : "執行 SQL 查詢。所有查詢都受連線的安全模式原則約束。DROP/TRUNCATE/ALTER...DROP 必須使用 confirm_destructive_operation 工具。" } } } }, - "Engine (e.g., InnoDB)" : { - "extractionState" : "stale", + "Execute a destructive DDL query (DROP, TRUNCATE, ALTER...DROP) after explicit confirmation." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "엔진(예: InnoDB)" + "value" : "명시적으로 확인한 후 파괴적 DDL 쿼리(DROP, TRUNCATE, ALTER...DROP)를 실행합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Motor (örn. InnoDB)" + "value" : "Açık onaydan sonra yıkıcı bir DDL sorgusu (DROP, TRUNCATE, ALTER...DROP) çalıştırır." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Engine (vd: InnoDB)" + "value" : "Thực thi truy vấn DDL phá hủy (DROP, TRUNCATE, ALTER...DROP) sau khi xác nhận rõ ràng." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Engine(如 InnoDB)" + "value" : "在明确确认后执行破坏性 DDL 查询(DROP、TRUNCATE、ALTER...DROP)。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Engine(例如 InnoDB)" + "value" : "在明確確認後執行破壞性 DDL 查詢(DROP、TRUNCATE、ALTER...DROP)。" } } } }, - "Engine-specific attribute flags" : { - - }, - "Engine-specific column attributes" : { - - }, - "Engine:" : { + "Execute a destructive DDL query (DROP, TRUNCATE, ALTER...DROP) after explicit confirmation. Pass confirmation_phrase exactly as: I understand this is irreversible" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "엔진:" + "value" : "명시적으로 확인한 후 파괴적 DDL 쿼리(DROP, TRUNCATE, ALTER...DROP)를 실행합니다. confirmation_phrase를 다음과 정확히 일치하게 전달하십시오: I understand this is irreversible" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Motor:" + "value" : "Açık onaydan sonra yıkıcı bir DDL sorgusu (DROP, TRUNCATE, ALTER...DROP) çalıştırır. confirmation_phrase değerini tam olarak şu şekilde iletin: I understand this is irreversible" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Engine:" + "value" : "Thực thi truy vấn DDL phá hủy (DROP, TRUNCATE, ALTER...DROP) sau khi xác nhận rõ ràng. Truyền confirmation_phrase chính xác là: I understand this is irreversible" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "引擎:" + "value" : "在明确确认后执行破坏性 DDL 查询(DROP、TRUNCATE、ALTER...DROP)。confirmation_phrase 必须严格传入:I understand this is irreversible" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "引擎:" + "value" : "在明確確認後執行破壞性 DDL 查詢(DROP、TRUNCATE、ALTER...DROP)。confirmation_phrase 必須完全照這樣傳入:I understand this is irreversible" } } } }, - "Enter a name for this filter preset" : { + "Execute a query to chart its loaded rows." : { "localizations" : { "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "이 필터 프리셋의 이름을 입력하십시오" + "value" : "쿼리를 실행하면 불러온 행을 차트로 그립니다.", + "state" : "translated" } }, "tr" : { "stringUnit" : { - "state" : "translated", - "value" : "Bu filtre ön ayarı için bir ad girin" + "value" : "Yüklenen satırları grafikte göstermek için bir sorgu çalıştırın.", + "state" : "translated" } }, "vi" : { "stringUnit" : { - "state" : "translated", - "value" : "Nhập tên cho mẫu bộ lọc này" + "value" : "Chạy truy vấn để vẽ biểu đồ từ các hàng đã tải.", + "state" : "translated" } }, "zh-Hans" : { "stringUnit" : { - "state" : "translated", - "value" : "输入此筛选预设的名称" + "value" : "执行查询以绘制已加载行的图表。", + "state" : "translated" } }, "zh-Hant" : { "stringUnit" : { - "state" : "translated", - "value" : "輸入此篩選預設組合的名稱" + "value" : "執行查詢以繪製已載入列的圖表。", + "state" : "translated" } } } }, - "Enter a new name for the group." : { + "Execute a query to view results as JSON" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "그룹의 새 이름을 입력하십시오." + "value" : "쿼리를 실행하고 결과를 JSON으로 표시합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Grup için yeni bir ad girin." + "value" : "Sonuçları JSON olarak görmek için bir sorgu çalıştırın" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập tên mới cho nhóm." + "value" : "Chạy truy vấn để xem kết quả dưới dạng JSON" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "输入分组的新名称。" + "value" : "执行查询以 JSON 形式查看结果" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "輸入群組的新名稱。" + "value" : "執行查詢以 JSON 形式檢視結果" } } } }, - "Enter an absolute path, as it appears on the SSH server." : { + "Execute all statements in a single transaction. If any statement fails, all changes are rolled back." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 서버에 표시되는 절대 경로를 입력하십시오." + "value" : "모든 문을 단일 트랜잭션에서 실행합니다. 문 하나라도 실패하면 모든 변경 사항이 롤백됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH sunucusunda göründüğü şekliyle mutlak bir yol girin." + "value" : "Tüm ifadeleri tek bir işlemde çalıştır. Herhangi bir ifade başarısız olursa tüm değişiklikler geri alınır." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập đường dẫn tuyệt đối, đúng như trên máy chủ SSH." + "value" : "Thực thi tất cả câu lệnh trong một giao dịch. Nếu bất kỳ câu lệnh nào thất bại, tất cả thay đổi sẽ được hoàn tác." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "请输入绝对路径,与 SSH 服务器上的路径一致。" + "value" : "在单个事务中执行所有语句。如果任一语句失败,所有更改将回滚。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "請輸入絕對路徑,與 SSH 伺服器上的路徑一致。" + "value" : "在單一交易中執行所有陳述式。若任一陳述式失敗,所有變更都會回復。" } } } }, - "Enter database name" : { - "extractionState" : "stale", + "Executed %lld statements" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 이름 입력" + "value" : "문 %lld개 실행됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı adı girin" + "value" : "çalıştırıldı %lld ifade" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập tên cơ sở dữ liệu" + "value" : "Đã thực thi %lld câu lệnh" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "输入数据库名称" + "value" : "已执行 %lld 条语句" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "輸入資料庫名稱" + "value" : "已執行 %lld 條陳述式" } } } }, - "Enter Full Screen" : { + "Executed: %@" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "전체 화면으로 전환" + "value" : "실행됨: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tam Ekrana Geç" + "value" : "Çalıştırıldı: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Vào toàn màn hình" + "value" : "Đã thực thi: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "进入全屏幕" + "value" : "已执行:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "進入全螢幕" + "value" : "已執行:%@" } } } }, - "Enter table name" : { + "Executing" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 이름 입력" + "value" : "실행 중" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tablo adını girin" + "value" : "Çalıştırılıyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập tên bảng" + "value" : "Đang thực thi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "输入表名" + "value" : "执行中" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "輸入資料表名稱" + "value" : "執行中" } } } }, - "Enter the %@ for \"%@\"" : { + "Executing…" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Enter the %1$@ for \"%2$@\"" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다음 항목의 %1$@을(를) 입력하십시오: \"%2$@\"" + "value" : "실행 중…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "\"%@\" için %@ girin" + "value" : "Çalıştırılıyor…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập %@ cho \"%@\"" + "value" : "Đang thực thi…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "输入\"%@\"的 %@" + "value" : "正在执行…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "輸入「%1$@」的 %2$@" + "value" : "正在執行…" } } } }, - "Enter the code %@ in the browser to finish signing in to Microsoft Entra ID. The code is on your clipboard." : { + "Execution" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "실행", + "state" : "translated" + } + } + } + }, + "Execution: %.3fms" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "코드 %@을(를) 브라우저에 입력하여 Microsoft Entra ID 로그인을 완료하십시오. 코드는 클립보드에 복사되어 있습니다." + "value" : "실행 시간: %.3fms" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Microsoft Entra ID oturumunu tamamlamak için tarayıcıya %@ kodunu girin. Kod panonuzda." + "value" : "Çalıştırma: %.3fms" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập mã %@ trong trình duyệt để hoàn tất đăng nhập Microsoft Entra ID. Mã đã được sao chép vào bộ nhớ tạm." + "value" : "Thực thi: %.3fms" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在浏览器中输入代码 %@ 以完成 Microsoft Entra ID 登录。该代码已复制到剪贴板。" + "value" : "执行: %.3fms" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在瀏覽器中輸入代碼 %@ 以完成 Microsoft Entra ID 登入。該代碼已複製到剪貼簿。" + "value" : "執行:%.3fms" } } } }, - "Enter the ElastiCache cache name (replication group ID) to use IAM authentication." : { + "Existing table" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "IAM 인증에 사용할 ElastiCache 캐시 이름(복제 그룹 ID)을 입력하십시오." + "value" : "기존 테이블" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "IAM kimlik doğrulamasını kullanmak için ElastiCache önbellek adını (çoğaltma grubu kimliği) girin." + "value" : "Mevcut tablo" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập tên cache ElastiCache (replication group ID) để dùng xác thực IAM." + "value" : "Bảng hiện có" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "输入 ElastiCache 缓存名称(复制组 ID)以使用 IAM 认证。" + "value" : "现有表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "輸入 ElastiCache 快取名稱(複寫群組 ID)以使用 IAM 驗證。" + "value" : "現有資料表" } } } }, - "Enter the passphrase for SSH key \"%@\":" : { + "Expand All" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 키 \"%@\"의 암호를 입력하십시오:" + "value" : "모두 펼치기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH anahtarı \"%@\" için parolayı girin:" + "value" : "Tümünü Genişlet" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập cụm mật khẩu cho khoá SSH \"%@\":" + "value" : "Mở rộng tất cả" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "请输入 SSH 密钥 \"%@\" 的密码:" + "value" : "全部展开" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "請輸入 SSH 金鑰「%@」的密碼短語:" + "value" : "全部展開" } } } }, - "Enter the passphrase to decrypt and import connections." : { + "Expand in Sidebar" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결을 복호화하고 가져올 암호를 입력하십시오." + "value" : "사이드바에서 펼치기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantıları şifresini çözmek ve içe aktarmak için parolayı girin." + "value" : "Kenar Çubuğunda Genişlet" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập cụm mật khẩu để giải mã và nhập kết nối." + "value" : "Mở rộng trong sidebar" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "输入密码短语以解密并导入连接。" + "value" : "在侧边栏中展开" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "輸入密碼短語以解密並匯入連線。" + "value" : "在側邊欄中展開" } } } }, - "Enter the TOTP verification code for SSH authentication." : { + "Expected Behavior" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 인증용 TOTP 확인 코드를 입력하십시오." + "value" : "예상 동작" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH kimlik doğrulaması için TOTP doğrulama kodunu girin." + "value" : "Beklenen Davranış" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập mã xác minh TOTP để xác thực SSH." + "value" : "Hành vi mong đợi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "输入 TOTP 验证码以进行 SSH 身份验证。" + "value" : "预期行为" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "輸入 TOTP 驗證碼以進行 SSH 驗證。" + "value" : "預期行為" } } } }, - "Enter this code on GitHub:" : { + "Expiration" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "GitHub에 다음 코드를 입력하십시오:" + "value" : "만료" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu kodu GitHub'a girin:" + "value" : "Son Kullanma" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập mã này trên GitHub:" + "value" : "Hết hạn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在 GitHub 上输入此代码:" + "value" : "过期时间" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在 GitHub 上輸入此代碼:" + "value" : "到期時間" } } } }, - "Enter your license key to unlock Pro features." : { - "extractionState" : "stale", + "Expiration date" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Pro 기능을 잠금 해제하려면 라이선스 키를 입력하십시오." + "value" : "만료일" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Pro özelliklerin kilidini açmak için lisans anahtarınızı girin." + "value" : "Son kullanma tarihi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập mã giấy phép để mở khoá các tính năng Pro." + "value" : "Ngày hết hạn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "输入许可证密钥以解锁 Pro 功能。" + "value" : "过期日期" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "輸入授權金鑰以解鎖 Pro 功能。" + "value" : "到期日期" } } } }, - "Enter your license key, or a team invite code to join a team." : { + "Expired" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "라이선스 키 또는 팀 참여용 초대 코드를 입력하십시오." + "value" : "만료됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Lisans anahtarınızı girin veya bir takıma katılmak için takım davet kodunu girin." + "value" : "Süresi Doldu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập mã giấy phép của bạn, hoặc mã mời nhóm để tham gia một nhóm." + "value" : "Hết hạn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "输入你的许可证密钥,或输入团队邀请码以加入团队。" + "value" : "已过期" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "輸入你的授權金鑰,或輸入團隊邀請碼以加入團隊。" + "value" : "已過期" } } } }, - "Enterprise relational database for DM8 deployments" : { + "Expires" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "DM8 배포용 엔터프라이즈 관계형 데이터베이스" + "value" : "만료" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "DM8 dağıtımları için kurumsal ilişkisel veritabanı" + "value" : "Sona Erer" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cơ sở dữ liệu quan hệ doanh nghiệp cho triển khai DM8" + "value" : "Hết hạn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "面向 DM8 部署的企业级关系型数据库" + "value" : "过期时间" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "適用於 DM8 部署的企業級關聯式資料庫" + "value" : "到期時間" } } } }, - "Enterprise SQL with PL/SQL" : { + "Expires:" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Expires:" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "PL/SQL을 지원하는 엔터프라이즈 SQL" + "value" : "만료:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "PL/SQL ile kurumsal SQL" + "value" : "Bitiş Tarihi:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "SQL doanh nghiệp với PL/SQL" + "value" : "Hết hạn:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "支持 PL/SQL 的企业级 SQL" + "value" : "到期时间:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "支援 PL/SQL 的企業級 SQL" + "value" : "到期時間:" } } } }, - "Entry id" : { - - }, - "Enumerated values the column accepts" : { - - }, - "Environment" : { + "Explain" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "환경" + "value" : "설명" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ortam" + "value" : "Açıkla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Môi trường" + "value" : "Giải thích" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "环境" + "value" : "解释" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "環境" + "value" : "解釋" } } } }, - "Environment variable %@ is not set in TablePro's environment. Apps launched from the Dock do not inherit shell exports. Launch TablePro from a terminal, or set the variable with launchctl setenv." : { + "Explain Query" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "환경 변수 %@이(가) TablePro 환경에 설정되어 있지 않습니다. Dock에서 실행한 앱은 셸에서 export한 환경 변수를 상속하지 않습니다. 터미널에서 TablePro를 실행하거나 launchctl setenv로 변수를 설정하십시오." + "value" : "쿼리 설명" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ ortam değişkeni TablePro'nun ortamında ayarlı değil. Dock'tan başlatılan uygulamalar kabuk dışa aktarmalarını devralmaz. TablePro'yu bir terminalden başlatın veya değişkeni launchctl setenv ile ayarlayın." + "value" : "Sorguyu Açıkla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Biến môi trường %@ chưa được đặt trong môi trường của TablePro. Ứng dụng khởi chạy từ Dock không kế thừa các export của shell. Hãy khởi chạy TablePro từ terminal, hoặc đặt biến bằng launchctl setenv." + "value" : "Giải thích truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "环境变量 %@ 未在 TablePro 的环境中设置。从 Dock 启动的应用不会继承 shell 导出的变量。请从终端启动 TablePro,或使用 launchctl setenv 设置该变量。" + "value" : "解释查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "環境變數 %@ 未在 TablePro 的環境中設定。從 Dock 啟動的應用程式不會繼承 shell 匯出的變數。請從終端機啟動 TablePro,或使用 launchctl setenv 設定該變數。" + "value" : "解釋查詢" } } } }, - "Environment Variables" : { + "Explain the current query" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "환경 변수" + "value" : "현재 쿼리 설명" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ortam Değişkenleri" + "value" : "Geçerli sorguyu açıkla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Biến Môi trường" + "value" : "Giải thích truy vấn hiện tại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "环境变量" + "value" : "解释当前查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "環境變數" + "value" : "解釋目前的查詢" } } } }, - "equals" : { + "Explain this SQL query:\n\n```sql\n%@\n```" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "같음" + "value" : "이 SQL 쿼리를 설명하십시오:\n\n```sql\n%@\n```" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "eşittir" + "value" : "Bu SQL sorgusunu açıkla:\n\n```sql\n%@\n```" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "bằng" + "value" : "Giải thích chi tiết câu truy vấn SQL sau:\n\n```sql\n%@\n```" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "等于" + "value" : "请解释以下 SQL 查询:\n\n```sql\n%@\n```" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "等於" + "value" : "請解釋以下 SQL 查詢:\n\n```sql\n%@\n```" } } } }, - "ER Diagram" : { + "Explain with AI" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "ER 다이어그램" + "value" : "AI로 설명" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "ER Diyagramı" + "value" : "Yapay Zeka ile Açıkla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sơ đồ ER" + "value" : "Giải thích với AI" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "ER 图" + "value" : "AI 解释" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "ER 圖" + "value" : "以 AI 解釋" } } } }, - "Error" : { + "Export" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "오류" + "value" : "내보내기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Hata" + "value" : "Dışa Aktar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lỗi" + "value" : "Xuất" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "错误" + "value" : "导出" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "錯誤" + "value" : "匯出" } } } }, - "Error %d" : { + "Export %d Connections to File…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "오류 %d" + "value" : "연결 %d개를 파일로 내보내기…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Hata %d" + "value" : "%d Bağlantıyı Dosyaya Aktar…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lỗi %d" + "value" : "Xuất %d kết nối ra tệp…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "错误 %d" + "value" : "导出 %d 个连接到文件…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "錯誤 %d" + "value" : "匯出 %d 個連線至檔案…" } } } }, - "Error Applying Changes" : { + "Export %d Connections..." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "변경 사항 적용 오류" + "value" : "연결 %d개 내보내기..." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Değişiklikler Uygulanırken Hata" + "value" : "%d Bağlantıyı Dışa Aktar..." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lỗi áp dụng thay đổi" + "value" : "Xuất %d kết nối..." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "应用更改时出错" + "value" : "导出%d个连接..." } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "套用變更時發生錯誤" + "value" : "匯出 %d 個連線…" } } } }, - "Error:" : { - "extractionState" : "stale", + "Export %d row(s) to %@" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Export %1$d row(s) to %2$@" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "오류:" + "value" : "%1$d개 행을 %2$@(으)로 내보내기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Hata:" + "value" : "%d satırı %@ olarak dışa aktar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lỗi:" + "value" : "Xuất %d dòng sang %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "错误:" + "value" : "导出%d行到%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "錯誤:" + "value" : "匯出 %1$d 列至 %2$@" } } } }, - "Error: %@" : { - "extractionState" : "stale", + "Export %d table(s) to %@" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Export %1$d table(s) to %2$@" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "오류: %@" + "value" : "%1$d개 테이블을 %2$@(으)로 내보내기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Hata: %@" + "value" : "%d tabloyu %@ olarak dışa aktar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lỗi: %@" + "value" : "Xuất %d bảng sang %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "错误: %@" + "value" : "导出%d个表到%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "錯誤:%@" + "value" : "匯出 %1$d 個資料表至 %2$@" } } } }, - "Error: Selected path is not a regular file" : { + "Export %lld Connections..." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "오류: 선택한 경로가 일반 파일이 아닙니다" + "value" : "연결 %lld개 내보내기..." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Hata: Seçilen yol normal bir dosya değil" + "value" : "%lld Bağlantıyı Dışa Aktar..." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lỗi: Đường dẫn đã chọn không phải tệp thông thường" + "value" : "Xuất %lld Kết nối..." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "错误: 所选路径不是常规文件" + "value" : "导出 %lld 个连接…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "錯誤:所選路徑不是一般檔案" + "value" : "匯出 %lld 個連線…" } } } }, - "Escape character" : { + "Export %lld row(s) to %@" : { + "extractionState" : "stale", "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Export %1$lld row(s) to %2$@" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이스케이프 문자" + "value" : "%1$lld개 행을 %2$@(으)로 내보내기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kaçış karakteri" + "value" : "%lld satırı %@ olarak dışa aktar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ký tự thoát" + "value" : "Export %lld hàng sang %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "转义字符" + "value" : "导出 %lld 行到 %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "跳脫字元" + "value" : "匯出 %1$lld 列至 %2$@" } } } }, - "Escape clears the search text" : { + "Export %lld table(s) to %@" : { + "extractionState" : "stale", "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Export %1$lld table(s) to %2$@" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Escape 키를 누르면 검색 텍스트가 지워집니다" + "value" : "%1$lld개 테이블을 %2$@(으)로 내보내기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Escape arama metnini temizler" + "value" : "%lld tabloyu %@ olarak dışa aktar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Escape xoá nội dung tìm kiếm" + "value" : "Export %lld bảng sang %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Escape 清除搜索文本" + "value" : "导出 %lld 张表到 %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Escape 清除搜尋文字" + "value" : "匯出 %1$lld 個資料表至 %2$@" } } } }, - "Escape closes Open Quickly" : { + "Export & Import" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Escape 키를 누르면 빠르게 열기가 닫힙니다" + "value" : "내보내기 및 가져오기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Escape, Hızlı Aç'ı kapatır" + "value" : "Dışa ve İçe Aktar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Escape đóng Mở nhanh" + "value" : "Xuất & Nhập" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Escape 关闭“快速打开”" + "value" : "导出与导入" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Escape 關閉「快速打開」" + "value" : "匯出與匯入" } } } }, - "Escaped literals, in the order supplied" : { - - }, - "Estimated row count" : { - - }, - "EU Long (31/12/2024 23:59:59)" : { + "Export Activity Log" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "EU 긴 형식(31/12/2024 23:59:59)" + "value" : "활동 로그 내보내기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "AB Uzun (31/12/2024 23:59:59)" + "value" : "Etkinlik Günlüğünü Dışa Aktar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Châu Âu dài (31/12/2024 23:59:59)" + "value" : "Xuất nhật ký hoạt động" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "欧洲长格式 (31/12/2024 23:59:59)" + "value" : "导出活动日志" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "歐洲長格式 (31/12/2024 23:59:59)" + "value" : "匯出活動記錄" } } } }, - "EU Short (31/12/2024)" : { + "Export Connections…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "EU 짧은 형식(31/12/2024)" + "value" : "연결 내보내기…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "AB Kısa (31/12/2024)" + "value" : "Bağlantıları Dışa Aktar…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Châu Âu ngắn (31/12/2024)" + "value" : "Xuất Kết nối…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "欧洲短格式 (31/12/2024)" + "value" : "导出连接…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "歐洲短格式 (31/12/2024)" + "value" : "匯出連線…" } } } }, - "Event" : { + "Export Data" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이벤트" + "value" : "데이터 내보내기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Olay" + "value" : "Veriyi Dışa Aktar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sự kiện" + "value" : "Xuất dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "事件" + "value" : "导出数据" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "事件" + "value" : "匯出資料" } } } }, - "Every included column needs a name." : { + "Export Data (⌘⇧E)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "포함된 모든 열에 이름이 필요합니다." + "value" : "데이터 내보내기(⌘⇧E)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dahil edilen her sütunun bir adı olmalıdır." + "value" : "Veriyi Dışa Aktar (⌘⇧E)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mỗi cột được bao gồm cần có tên." + "value" : "Xuất dữ liệu (⌘⇧E)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "每个包含的列都需要名称。" + "value" : "导出数据 (⌘⇧E)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "每個納入的欄位都需要名稱。" + "value" : "匯出資料 (⌘⇧E)" } } } }, - "Every object that was compared matches." : { - - }, - "Every row must be an array with one value per column." : { - - }, - "Every saved connection this client may use, with its live session state" : { - - }, - "Every shared column is generated, so there is nothing to write." : { - - }, - "Every table needs at least one column. Click + to get started" : { + "Export ER Diagram" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 테이블에는 열이 하나 이상 있어야 합니다. +를 클릭하여 시작하십시오" + "value" : "ER 다이어그램 내보내기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Her tablonun en az bir sütuna ihtiyacı vardır. Başlamak için + tıklayın" + "value" : "ER Diyagramını Dışa Aktar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mỗi bảng cần ít nhất một cột. Nhấn + để bắt đầu" + "value" : "Xuất sơ đồ ER" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "每个表至少需要一列。点击 + 开始添加" + "value" : "导出 ER 图" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "每個資料表至少需要一個欄位。點按 + 開始新增" + "value" : "匯出 ER 圖" } } } }, - "Everything" : { + "Export Error" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모두" + "value" : "내보내기 오류" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Her Şey" + "value" : "Dışa Aktarma Hatası" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tất cả" + "value" : "Lỗi xuất dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "全部" + "value" : "导出错误" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "全部" + "value" : "匯出錯誤" } } } }, - "Exact value" : { - - }, - "Examples" : { + "Export Failed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "예시" + "value" : "내보내기 실패" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Örnekler" + "value" : "Dışa Aktarma Başarısız" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ví dụ" + "value" : "Xuất Thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "示例" + "value" : "导出失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "範例" + "value" : "匯出失敗" } } } }, - "Excel spreadsheet with formatting support." : { + "Export Format" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "서식을 지원하는 Excel 스프레드시트입니다." + "value" : "내보내기 형식" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Biçimlendirme destekli Excel elektronik tablosu." + "value" : "Dışa Aktarma Biçimi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bảng tính Excel có hỗ trợ định dạng." + "value" : "Định dạng xuất" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "支持格式化的 Excel 电子表格。" + "value" : "导出格式" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "支援格式設定的 Excel 試算表。" + "value" : "匯出格式" } } } }, - "Exclude" : { - - }, - "Exclude Every Table" : { - - }, - "Exclude from iCloud Sync" : { + "Export Formats" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud 동기화에서 제외" + "value" : "내보내기 형식" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud Eşitlemesinden Hariç Tut" + "value" : "Dışa Aktarma Biçimleri" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Loại khỏi đồng bộ iCloud" + "value" : "Định dạng xuất" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "排除 iCloud 同步" + "value" : "导出格式" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "排除於 iCloud 同步" + "value" : "匯出格式" } } } }, - "Execute" : { + "Export Options" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "실행" + "value" : "내보내기 옵션" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Çalıştır" + "value" : "Dışa Aktarma Seçenekleri" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thực thi" + "value" : "Tùy chọn Xuất" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "执行" + "value" : "导出选项" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "執行" + "value" : "匯出選項" } } } }, - "Execute a destructive DDL query (DROP, TRUNCATE, ALTER...DROP) after explicit confirmation." : { - "extractionState" : "stale", + "Export Plan as Image" : { + "comment" : "A button that exports the diagram as an image.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "명시적으로 확인한 후 파괴적 DDL 쿼리(DROP, TRUNCATE, ALTER...DROP)를 실행합니다." + "value" : "실행 계획을 이미지로 내보내기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Açık onaydan sonra yıkıcı bir DDL sorgusu (DROP, TRUNCATE, ALTER...DROP) çalıştırır." + "value" : "Planı Görüntü Olarak Dışa Aktar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thực thi truy vấn DDL phá hủy (DROP, TRUNCATE, ALTER...DROP) sau khi xác nhận rõ ràng." + "value" : "Xuất kế hoạch thành ảnh" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在明确确认后执行破坏性 DDL 查询(DROP、TRUNCATE、ALTER...DROP)。" + "value" : "将执行计划导出为图片" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在明確確認後執行破壞性 DDL 查詢(DROP、TRUNCATE、ALTER...DROP)。" + "value" : "將執行計畫匯出為圖片" } } } }, - "Execute a destructive DDL query (DROP, TRUNCATE, ALTER...DROP) after explicit confirmation. Pass confirmation_phrase exactly as: I understand this is irreversible" : { + "Export Query Plan" : { + "comment" : "Button title to export the diagram as an image.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "명시적으로 확인한 후 파괴적 DDL 쿼리(DROP, TRUNCATE, ALTER...DROP)를 실행합니다. confirmation_phrase를 다음과 정확히 일치하게 전달하십시오: I understand this is irreversible" + "value" : "쿼리 계획 내보내기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Açık onaydan sonra yıkıcı bir DDL sorgusu (DROP, TRUNCATE, ALTER...DROP) çalıştırır. confirmation_phrase değerini tam olarak şu şekilde iletin: I understand this is irreversible" + "value" : "Sorgu Planını Dışa Aktar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thực thi truy vấn DDL phá hủy (DROP, TRUNCATE, ALTER...DROP) sau khi xác nhận rõ ràng. Truyền confirmation_phrase chính xác là: I understand this is irreversible" + "value" : "Xuất kế hoạch truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在明确确认后执行破坏性 DDL 查询(DROP、TRUNCATE、ALTER...DROP)。confirmation_phrase 必须严格传入:I understand this is irreversible" + "value" : "导出查询计划" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在明確確認後執行破壞性 DDL 查詢(DROP、TRUNCATE、ALTER...DROP)。confirmation_phrase 必須完全照這樣傳入:I understand this is irreversible" + "value" : "匯出查詢計畫" } } } }, - "Execute a query to chart its loaded rows." : { + "Export Results…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리를 실행하면 불러온 행을 차트로 그립니다." + "value" : "결과 내보내기…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yüklenen satırları grafikte göstermek için bir sorgu çalıştırın." + "value" : "Sonuçları Dışa Aktar…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chạy truy vấn để vẽ biểu đồ từ các hàng đã tải." + "value" : "Export Kết Quả…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "执行查询以绘制已加载行的图表。" + "value" : "导出结果…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "執行查詢以繪製已載入列的圖表。" + "value" : "匯出結果…" } } } }, - "Execute a query to view results as JSON" : { + "Export Tables…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리를 실행하고 결과를 JSON으로 표시합니다" + "value" : "테이블 내보내기…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sonuçları JSON olarak görmek için bir sorgu çalıştırın" + "value" : "Tabloları Dışa Aktar…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chạy truy vấn để xem kết quả dưới dạng JSON" + "value" : "Xuất bảng…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "执行查询以 JSON 形式查看结果" + "value" : "导出表…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "執行查詢以 JSON 形式檢視結果" + "value" : "匯出資料表…" } } } }, - "Execute a SQL query against a connection. The connection's safe mode policy applies. Multi-statement queries are rejected. Destructive operations (DROP, TRUNCATE, ALTER...DROP) are blocked here; use confirm_destructive_operation instead." : { + "Export activity to CSV" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결에서 SQL 쿼리를 실행합니다. 연결의 안전 모드 정책이 적용됩니다. 여러 문으로 구성된 쿼리는 거부됩니다. 파괴적 작업(DROP, TRUNCATE, ALTER...DROP)은 여기에서 차단되며, 대신 confirm_destructive_operation을 사용하십시오." + "value" : "활동을 CSV로 내보내기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bir bağlantıda SQL sorgusu çalıştırır. Bağlantının güvenli mod politikası uygulanır. Çok deyimli sorgular reddedilir. Yıkıcı işlemler (DROP, TRUNCATE, ALTER...DROP) burada engellenir; bunun yerine confirm_destructive_operation kullanın." + "value" : "Etkinliği CSV olarak dışa aktar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thực thi truy vấn SQL trên một kết nối. Chính sách chế độ an toàn của kết nối được áp dụng. Truy vấn nhiều câu lệnh sẽ bị từ chối. Các thao tác phá hủy (DROP, TRUNCATE, ALTER...DROP) bị chặn ở đây; hãy dùng confirm_destructive_operation thay thế." + "value" : "Xuất hoạt động ra CSV" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "对连接执行 SQL 查询。受连接的安全模式策略约束。多语句查询会被拒绝。破坏性操作(DROP、TRUNCATE、ALTER...DROP)在此被阻止;请改用 confirm_destructive_operation。" + "value" : "将活动导出为 CSV" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "對連線執行 SQL 查詢。會套用連線的安全模式原則。多陳述式查詢會被拒絕。破壞性操作(DROP、TRUNCATE、ALTER...DROP)在此會被封鎖;請改用 confirm_destructive_operation。" + "value" : "將活動匯出為 CSV" } } } }, - "Execute a SQL query. All queries are subject to the connection's safe mode policy. DROP/TRUNCATE/ALTER...DROP must use the confirm_destructive_operation tool." : { - "extractionState" : "stale", + "Export as PNG" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SQL 쿼리를 실행합니다. 모든 쿼리에는 연결의 안전 모드 정책이 적용됩니다. DROP/TRUNCATE/ALTER...DROP에는 confirm_destructive_operation 도구를 사용해야 합니다." + "value" : "PNG로 내보내기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SQL sorgusu çalıştırır. Tüm sorgular bağlantının güvenli mod politikasına tabidir. DROP/TRUNCATE/ALTER...DROP için confirm_destructive_operation aracı kullanılmalıdır." + "value" : "PNG olarak dışa aktar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thực thi truy vấn SQL. Mọi truy vấn đều tuân theo chính sách chế độ an toàn của kết nối. DROP/TRUNCATE/ALTER...DROP phải dùng công cụ confirm_destructive_operation." + "value" : "Xuất dưới dạng PNG" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "执行 SQL 查询。所有查询都受连接的安全模式策略约束。DROP/TRUNCATE/ALTER...DROP 必须使用 confirm_destructive_operation 工具。" + "value" : "导出为 PNG" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "執行 SQL 查詢。所有查詢都受連線的安全模式原則約束。DROP/TRUNCATE/ALTER...DROP 必須使用 confirm_destructive_operation 工具。" + "value" : "匯出為 PNG" } } } }, - "Execute All" : { - "extractionState" : "stale", + "Export as SQL" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모두 실행" + "value" : "SQL로 내보내기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tümünü Çalıştır" + "value" : "SQL Olarak Dışa Aktar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thực thi tất cả" + "value" : "Xuất dạng SQL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "全部执行" + "value" : "导出为 SQL" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "全部執行" + "value" : "匯出為 SQL" } } } }, - "Execute All Statements" : { + "Export completed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 문 실행" + "value" : "내보내기 완료" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm İfadeleri Çalıştır" + "value" : "Dışa aktarma tamamlandı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thực thi tất cả câu lệnh" + "value" : "Đã xuất xong" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "执行所有语句" + "value" : "导出完成" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "執行所有陳述式" + "value" : "匯出完成" } } } }, - "Execute all statements in a single transaction. If any statement fails, all changes are rolled back." : { + "Export completed successfully" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 문을 단일 트랜잭션에서 실행합니다. 문 하나라도 실패하면 모든 변경 사항이 롤백됩니다." + "value" : "내보내기를 완료했습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm ifadeleri tek bir işlemde çalıştır. Herhangi bir ifade başarısız olursa tüm değişiklikler geri alınır." + "value" : "Dışa aktarma başarıyla tamamlandı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thực thi tất cả câu lệnh trong một giao dịch. Nếu bất kỳ câu lệnh nào thất bại, tất cả thay đổi sẽ được hoàn tác." + "value" : "Xuất dữ liệu thành công" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在单个事务中执行所有语句。如果任一语句失败,所有更改将回滚。" + "value" : "导出成功" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在單一交易中執行所有陳述式。若任一陳述式失敗,所有變更都會回復。" + "value" : "匯出成功完成" } } } }, - "Execute Query" : { + "Export connections with encrypted credentials." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 실행" + "value" : "암호화된 자격 증명과 함께 연결을 내보냅니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorguyu Çalıştır" + "value" : "Bağlantıları şifrelenmiş kimlik bilgileriyle dışa aktar." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thực thi truy vấn" + "value" : "Xuất kết nối với thông tin đăng nhập được mã hóa." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "执行查询" + "value" : "导出连接并加密凭据。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "執行查詢" + "value" : "匯出連線並加密憑證。" } } } }, - "Execute Query Without Limit" : { + "Export data" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "제한 없이 쿼리 실행" + "value" : "데이터 내보내기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorguyu Limitsiz Çalıştır" + "value" : "Veriyi dışa aktar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chạy truy vấn không giới hạn" + "value" : "Xuất dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "不限行数执行查询" + "value" : "导出数据" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "不限列數執行查詢" + "value" : "匯出資料" } } } }, - "Execute Without Limit" : { + "Export failed: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "제한 없이 실행" + "value" : "내보내기 실패: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Limitsiz Çalıştır" + "value" : "Dışa aktarma başarısız: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chạy không giới hạn" + "value" : "Xuất thất bại: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "不限行数执行" + "value" : "导出失败: %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "不限列數執行" + "value" : "匯出失敗:%@" } } } }, - "Executed %lld statements" : { + "Export format '%@' not found" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "문 %lld개 실행됨" + "value" : "내보내기 형식 '%@'을(를) 찾을 수 없습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "çalıştırıldı %lld ifade" + "value" : "Dışa aktarma biçimi '%@' bulunamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã thực thi %lld câu lệnh" + "value" : "Không tìm thấy định dạng xuất '%@'" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已执行 %lld 条语句" + "value" : "未找到导出格式 '%@'" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已執行 %lld 條陳述式" + "value" : "找不到匯出格式「%@」" } } } }, - "Executed: %@" : { - "extractionState" : "stale", + "Export format: csv, json, or sql" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "실행됨: %@" + "value" : "내보내기 형식: csv, json 또는 sql" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Çalıştırıldı: %@" + "value" : "Dışa aktarma biçimi: csv, json veya sql" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã thực thi: %@" + "value" : "Định dạng xuất: csv, json hoặc sql" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已执行:%@" + "value" : "导出格式:csv、json 或 sql" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已執行:%@" + "value" : "匯出格式:csv、json 或 sql" } } } }, - "Executing" : { - "extractionState" : "stale", + "Export multiple tables" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "실행 중" + "value" : "여러 테이블 내보내기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Çalıştırılıyor" + "value" : "Birden fazla tabloyu dışa aktar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang thực thi" + "value" : "Xuất nhiều bảng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "执行中" + "value" : "导出多个表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "執行中" + "value" : "匯出多個資料表" } } } }, - "Executing…" : { + "Export query results and tables to Excel format." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "실행 중…" + "value" : "쿼리 결과와 테이블을 Excel 형식으로 내보냅니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Çalıştırılıyor…" + "value" : "Sorgu sonuçlarını ve tabloları Excel biçiminde dışa aktarın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang thực thi…" + "value" : "Xuất kết quả truy vấn và bảng sang định dạng Excel." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在执行…" + "value" : "将查询结果和表导出为 Excel 格式。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在執行…" + "value" : "將查詢結果與資料表匯出為 Excel 格式。" } } } }, - "Execution" : { - - }, - "Execution time" : { - - }, - "Execution: %.3fms" : { + "Export query results or table data to CSV, JSON, or SQL" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "실행 시간: %.3fms" + "value" : "쿼리 결과 또는 테이블 데이터를 CSV, JSON 또는 SQL로 내보냅니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Çalıştırma: %.3fms" + "value" : "Sorgu sonuçlarını veya tablo verilerini CSV, JSON veya SQL olarak dışa aktar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thực thi: %.3fms" + "value" : "Xuất kết quả truy vấn hoặc dữ liệu bảng ra CSV, JSON hoặc SQL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "执行: %.3fms" + "value" : "将查询结果或表数据导出为 CSV、JSON 或 SQL" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "執行:%.3fms" + "value" : "將查詢結果或資料表資料匯出為 CSV、JSON 或 SQL" } } } }, - "Existing table" : { + "Export query results to %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기존 테이블" + "value" : "쿼리 결과를 %@(으)로 내보내기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Mevcut tablo" + "value" : "Sorgu sonuçlarını %@ olarak dışa aktar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bảng hiện có" + "value" : "Xuất kết quả truy vấn sang %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "现有表" + "value" : "将查询结果导出为 %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "現有資料表" + "value" : "將查詢結果匯出為 %@" } } } }, - "expand" : { - "extractionState" : "stale", + "Export table" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "펼치기" + "value" : "테이블 내보내기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "genişlet" + "value" : "Tabloyu dışa aktar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "mở rộng" + "value" : "Xuất bảng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "展开" + "value" : "导出表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "展開" + "value" : "匯出資料表" } } } }, - "Expand All" : { + "Export the filtered activity log to CSV" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모두 펼치기" + "value" : "필터링된 활동 로그를 CSV로 내보내기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tümünü Genişlet" + "value" : "Filtrelenmiş etkinlik günlüğünü CSV olarak dışa aktar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở rộng tất cả" + "value" : "Xuất nhật ký hoạt động đã lọc ra CSV" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "全部展开" + "value" : "将筛选后的活动日志导出为 CSV" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "全部展開" + "value" : "將篩選後的活動記錄匯出為 CSV" } } } }, - "Expand in Sidebar" : { + "Export to File…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사이드바에서 펼치기" + "value" : "파일로 내보내기…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kenar Çubuğunda Genişlet" + "value" : "Dosyaya Aktar…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở rộng trong sidebar" + "value" : "Xuất ra tệp…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在侧边栏中展开" + "value" : "导出到文件…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在側邊欄中展開" + "value" : "匯出至檔案…" } } } }, - "Expected Behavior" : { + "Exports data as mongosh-compatible scripts. Drop, Indexes, and Data options are configured per collection in the collection list." : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "예상 동작" + "value" : "데이터를 mongosh 호환 스크립트로 내보냅니다. Drop, Indexes 및 Data 옵션은 컬렉션 목록의 각 컬렉션에서 설정합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Beklenen Davranış" + "value" : "Veriyi mongosh uyumlu betikler olarak dışa aktarır. Bırak, İndeksler ve Veri seçenekleri koleksiyon listesinde koleksiyon başına yapılandırılır." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hành vi mong đợi" + "value" : "Xuất dữ liệu dưới dạng script tương thích mongosh. Tùy chọn Drop, Indexes và Data được cấu hình cho từng collection trong danh sách collection." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "预期行为" + "value" : "将数据导出为 mongosh 兼容的脚本。Drop、Indexes 和 Data 选项可在集合列表中按集合配置。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "預期行為" + "value" : "將資料匯出為 mongosh 相容的指令碼。Drop、Indexes 與 Data 選項可在集合清單中依集合個別設定。" } } } }, - "Expiration" : { + "Export…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "만료" + "value" : "내보내기…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Son Kullanma" + "value" : "Dışa Aktar…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hết hạn" + "value" : "Xuất…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "过期时间" + "value" : "导出…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "到期時間" + "value" : "匯出…" } } } }, - "Expiration date" : { + "Expose to local network" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "만료일" + "value" : "로컬 네트워크에 공개" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Son kullanma tarihi" + "value" : "Yerel ağa aç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ngày hết hạn" + "value" : "Cho phép truy cập từ mạng cục bộ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "过期日期" + "value" : "开放给本地网络" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "到期日期" + "value" : "開放給本機網路" } } } }, - "Expired" : { + "Expression (e.g., age >= 0)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "만료됨" + "value" : "표현식(예: age >= 0)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Süresi Doldu" + "value" : "İfade (örn. age >= 0)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hết hạn" + "value" : "Biểu thức (vd: age >= 0)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已过期" + "value" : "表达式(如 age >= 0)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已過期" + "value" : "運算式(例如 age >= 0)" } } } }, - "Expires" : { + "Extend Selection to Next Statement" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "만료" + "value" : "다음 문까지 선택 확장" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sona Erer" + "value" : "Seçimi Sonraki İfadeye Genişlet" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hết hạn" + "value" : "Mở rộng vùng chọn đến câu lệnh tiếp theo" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "过期时间" + "value" : "将所选内容扩展到下一条语句" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "到期時間" + "value" : "將所選範圍延伸至下一個陳述式" } } } }, - "Expires:" : { + "Extend Selection to Previous Statement" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Expires:" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "만료:" + "value" : "이전 문까지 선택 확장" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bitiş Tarihi:" + "value" : "Seçimi Önceki İfadeye Genişlet" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hết hạn:" + "value" : "Mở rộng vùng chọn đến câu lệnh trước" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "到期时间:" + "value" : "将所选内容扩展到上一条语句" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "到期時間:" + "value" : "將所選範圍延伸至上一個陳述式" } } } }, - "Explain" : { + "External" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "설명" + "value" : "외부" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Açıkla" + "value" : "Harici" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giải thích" + "value" : "Bên ngoài" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "解释" + "value" : "外部" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "解釋" + "value" : "外部" } } } }, - "Explain a schema" : { - - }, - "Explain a table" : { - - }, - "EXPLAIN is not supported for this database type." : { + "External Access" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 데이터베이스 유형에서는 EXPLAIN을 지원하지 않습니다." + "value" : "외부 접근" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu veritabanı türü için EXPLAIN desteklenmiyor." + "value" : "Harici Erişim" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "EXPLAIN không được hỗ trợ cho loại cơ sở dữ liệu này." + "value" : "Truy cập bên ngoài" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此数据库类型不支持 EXPLAIN。" + "value" : "外部访问" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此資料庫類型不支援 EXPLAIN。" + "value" : "外部存取" } } } }, - "Explain one table's columns, keys, indexes, and DDL to someone who has never used it" : { - - }, - "Explain plan" : { - - }, - "Explain Query" : { + "External Clients" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 설명" + "value" : "외부 클라이언트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorguyu Açıkla" + "value" : "Harici İstemciler" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giải thích truy vấn" + "value" : "Client bên ngoài" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "解释查询" + "value" : "外部客户端" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "解釋查詢" + "value" : "外部用戶端" } } } }, - "Explain the current query" : { + "External Table" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "현재 쿼리 설명" + "value" : "외부 테이블" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geçerli sorguyu açıkla" + "value" : "Harici Tablo" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giải thích truy vấn hiện tại" + "value" : "External Table" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "解释当前查询" + "value" : "外部表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "解釋目前的查詢" + "value" : "外部資料表" } } } }, - "Explain this SQL query:\n\n```sql\n%@\n```" : { - "extractionState" : "stale", + "External access is disabled for this connection" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 SQL 쿼리를 설명하십시오:\n\n```sql\n%@\n```" + "value" : "이 연결에서는 외부 접근이 비활성화되어 있습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu SQL sorgusunu açıkla:\n\n```sql\n%@\n```" + "value" : "Bu bağlantı için harici erişim devre dışı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giải thích chi tiết câu truy vấn SQL sau:\n\n```sql\n%@\n```" + "value" : "Truy cập bên ngoài đã bị tắt cho kết nối này" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "请解释以下 SQL 查询:\n\n```sql\n%@\n```" + "value" : "该连接已禁用外部访问" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "請解釋以下 SQL 查詢:\n\n```sql\n%@\n```" + "value" : "此連線已停用外部存取" } } } }, - "Explain variant id for this engine. Call with no variant to see the list." : { - - }, - "Explain variants this engine declares" : { - - }, - "Explain with AI" : { + "External integrations and MCP client requests will appear here." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "AI로 설명" + "value" : "외부 통합 및 MCP 클라이언트 요청이 여기에 표시됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yapay Zeka ile Açıkla" + "value" : "Harici entegrasyonlar ve MCP istemci istekleri burada görünür." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giải thích với AI" + "value" : "Các tích hợp bên ngoài và yêu cầu từ MCP client sẽ xuất hiện ở đây." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "AI 解释" + "value" : "外部集成和 MCP 客户端请求将显示在此处。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "以 AI 解釋" - } - } - } - }, - "Explanation of %@ on %@" : { - "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Explanation of %1$@ on %2$@" + "value" : "外部整合與 MCP 用戶端要求將顯示於此處。" } } } }, - "export" : { - "extractionState" : "stale", + "Extra High" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "내보내기" + "value" : "매우 높음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "dışa aktar" + "value" : "Çok Yüksek" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "xuất" + "value" : "Cực cao" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导出" + "value" : "超高" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯出" + "value" : "超高" } } } }, - "Export" : { + "Extra Large" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "내보내기" + "value" : "특대" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dışa Aktar" + "value" : "Çok Büyük" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất" + "value" : "Rất lớn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导出" + "value" : "特大" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯出" + "value" : "特大" } } } }, - "Export & Import" : { + "FALSE" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "내보내기 및 가져오기" + "value" : "FALSE" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dışa ve İçe Aktar" + "value" : "FALSE" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất & Nhập" + "value" : "FALSE" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导出与导入" + "value" : "FALSE" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯出與匯入" + "value" : "FALSE" } } } }, - "Export %d Connections to File…" : { + "FAST" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 %d개를 파일로 내보내기…" + "value" : "FAST" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%d Bağlantıyı Dosyaya Aktar…" + "value" : "HIZLI" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất %d kết nối ra tệp…" + "value" : "NHANH" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导出 %d 个连接到文件…" + "value" : "快速" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯出 %d 個連線至檔案…" + "value" : "快速" } } } }, - "Export %d Connections..." : { + "FIELDS" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 %d개 내보내기..." + "value" : "FIELDS" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%d Bağlantıyı Dışa Aktar..." + "value" : "ALANLAR" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất %d kết nối..." + "value" : "TRƯỜNG" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导出%d个连接..." + "value" : "字段" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯出 %d 個連線…" + "value" : "欄位" } } } }, - "Export %d row(s) to %@" : { + "FIELDS (%lld)" : { + "extractionState" : "stale", "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Export %1$d row(s) to %2$@" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$d개 행을 %2$@(으)로 내보내기" + "value" : "FIELDS (%lld)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%d satırı %@ olarak dışa aktar" + "value" : "ALANLAR (%lld)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất %d dòng sang %@" + "value" : "CÁC TRƯỜNG (%lld)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导出%d行到%@" + "value" : "字段 (%lld)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯出 %1$d 列至 %2$@" + "value" : "欄位 (%lld)" } } } }, - "Export %d table(s) to %@" : { + "FULL (rewrites entire table, blocks access)" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Export %1$d table(s) to %2$@" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$d개 테이블을 %2$@(으)로 내보내기" + "value" : "FULL(전체 테이블을 다시 쓰며 접근을 차단함)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%d tabloyu %@ olarak dışa aktar" + "value" : "FULL (tüm tabloyu yeniden yazar, erişimi engeller)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất %d bảng sang %@" + "value" : "FULL (ghi lại toàn bộ bảng, chặn truy cập)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导出%d个表到%@" + "value" : "FULL(重写整个表,阻止访问)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯出 %1$d 個資料表至 %2$@" + "value" : "FULL(重寫整個資料表,封鎖存取)" } } } }, - "Export %lld Connections..." : { - "extractionState" : "stale", + "Failed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 %lld개 내보내기..." + "value" : "실패" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%lld Bağlantıyı Dışa Aktar..." + "value" : "Başarısız" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất %lld Kết nối..." + "value" : "Thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导出 %lld 个连接…" + "value" : "失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯出 %lld 個連線…" + "value" : "失敗" } } } }, - "Export %lld row(s) to %@" : { + "Failed at line %lld" : { "extractionState" : "stale", "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Export %1$lld row(s) to %2$@" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$lld개 행을 %2$@(으)로 내보내기" + "value" : "줄 %lld에서 실패했습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%lld satırı %@ olarak dışa aktar" + "value" : "Satır %lld'de başarısız" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Export %lld hàng sang %@" + "value" : "Thất bại tại dòng %lld" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导出 %lld 行到 %@" + "value" : "在第 %lld 行失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯出 %1$lld 列至 %2$@" + "value" : "在第 %lld 行失敗" } } } }, - "Export %lld table(s) to %@" : { - "extractionState" : "stale", + "Failed at line %lld. %@" : { + "comment" : "Error message displayed in an alert when a plugin import fails. The first argument is the line number of the failed statement. The second argument is the error message from the underlying error.", + "isCommentAutoGenerated" : true, "localizations" : { "en" : { "stringUnit" : { "state" : "new", - "value" : "Export %1$lld table(s) to %2$@" + "value" : "Failed at line %1$lld. %2$@" } }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$lld개 테이블을 %2$@(으)로 내보내기" + "value" : "줄 %1$lld에서 실패했습니다. %2$@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%lld tabloyu %@ olarak dışa aktar" + "value" : "%lld. satırda başarısız oldu. %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Export %lld bảng sang %@" + "value" : "Lỗi ở dòng %lld. %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导出 %lld 张表到 %@" + "value" : "第 %lld 行失败。%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯出 %1$lld 個資料表至 %2$@" + "value" : "第 %lld 行失敗。%@" } } } }, - "Export Activity Log" : { + "Failed to Fetch DDL" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "활동 로그 내보내기" + "value" : "DDL을 가져오지 못했습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Etkinlik Günlüğünü Dışa Aktar" + "value" : "DDL Alınamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất nhật ký hoạt động" + "value" : "Không thể lấy DDL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导出活动日志" + "value" : "获取 DDL 失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯出活動記錄" + "value" : "擷取 DDL 失敗" } } } }, - "Export activity to CSV" : { - "extractionState" : "stale", + "Failed to Load" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "활동을 CSV로 내보내기" + "value" : "불러오지 못했습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Etkinliği CSV olarak dışa aktar" + "value" : "Yükleme Başarısız" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất hoạt động ra CSV" + "value" : "Tải thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将活动导出为 CSV" + "value" : "加载失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將活動匯出為 CSV" + "value" : "載入失敗" } } } }, - "Export as PNG" : { + "Failed to Save Changes" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "PNG로 내보내기" + "value" : "변경 사항을 저장하지 못했습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "PNG olarak dışa aktar" + "value" : "Değişiklikler Kaydedilemedi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất dưới dạng PNG" + "value" : "Lưu thay đổi thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导出为 PNG" + "value" : "保存更改失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯出為 PNG" + "value" : "儲存變更失敗" } } } }, - "Export as SQL" : { + "Failed to compress data" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SQL로 내보내기" + "value" : "데이터를 압축하지 못했습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SQL Olarak Dışa Aktar" + "value" : "Veri sıkıştırılamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất dạng SQL" + "value" : "Không thể nén dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导出为 SQL" + "value" : "压缩数据失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯出為 SQL" + "value" : "壓縮資料失敗" } } } }, - "Export completed" : { + "Failed to create terminal process (errno: %d)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "내보내기 완료" + "value" : "터미널 프로세스를 생성하지 못했습니다 (errno: %d)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dışa aktarma tamamlandı" + "value" : "Terminal işlemi oluşturulamadı (errno: %d)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã xuất xong" + "value" : "Không thể tạo tiến trình terminal (errno: %d)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导出完成" + "value" : "创建终端进程失败 (errno: %d)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯出完成" + "value" : "建立終端機處理程序失敗 (errno: %d)" } } } }, - "Export completed successfully" : { - "extractionState" : "stale", + "Failed to decompress .gz file" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "내보내기를 완료했습니다" + "value" : ".gz 파일의 압축을 해제하지 못했습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dışa aktarma başarıyla tamamlandı" + "value" : ".gz dosyası açılamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất dữ liệu thành công" + "value" : "Giải nén tệp .gz thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导出成功" + "value" : "解压 .gz 文件失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯出成功完成" + "value" : "解壓縮 .gz 檔案失敗" } } } }, - "Export connections with encrypted credentials." : { + "Failed to decompress file: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "암호화된 자격 증명과 함께 연결을 내보냅니다." + "value" : "파일의 압축을 해제하지 못했습니다: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantıları şifrelenmiş kimlik bilgileriyle dışa aktar." + "value" : "Dosya açılamadı: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất kết nối với thông tin đăng nhập được mã hóa." + "value" : "Giải nén tệp thất bại: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导出连接并加密凭据。" + "value" : "解压文件失败: %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯出連線並加密憑證。" + "value" : "解壓縮檔案失敗:%@" } } } }, - "Export Connections…" : { + "Failed to delete template: %@" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 내보내기…" + "value" : "템플릿을 삭제하지 못했습니다: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantıları Dışa Aktar…" + "value" : "Şablon silinemedi: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất Kết nối…" + "value" : "Xóa mẫu thất bại: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导出连接…" + "value" : "删除模板失败: %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯出連線…" + "value" : "刪除範本失敗:%@" } } } }, - "Export data" : { - "extractionState" : "stale", + "Failed to encode connection data" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터 내보내기" + "value" : "연결 데이터를 인코딩하지 못했습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veriyi dışa aktar" + "value" : "Bağlantı verileri kodlanamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất dữ liệu" + "value" : "Không thể mã hóa dữ liệu kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导出数据" + "value" : "无法编码连接数据" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯出資料" + "value" : "無法編碼連線資料" } } } }, - "Export Data" : { + "Failed to encode content as UTF-8" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터 내보내기" + "value" : "콘텐츠를 UTF-8로 인코딩하지 못했습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veriyi Dışa Aktar" + "value" : "İçerik UTF-8 olarak kodlanamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất dữ liệu" + "value" : "Không thể mã hóa nội dung thành UTF-8" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导出数据" + "value" : "无法将内容编码为 UTF-8" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯出資料" + "value" : "無法將內容編碼為 UTF-8" } } } }, - "Export Data (⌘⇧E)" : { - "extractionState" : "stale", + "Failed to encode sync data: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터 내보내기(⌘⇧E)" + "value" : "동기화 데이터를 인코딩하지 못했습니다: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veriyi Dışa Aktar (⌘⇧E)" + "value" : "Eşitleme verisi kodlanamadı: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất dữ liệu (⌘⇧E)" + "value" : "Không thể mã hoá dữ liệu đồng bộ: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导出数据 (⌘⇧E)" + "value" : "同步数据编码失败:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯出資料 (⌘⇧E)" + "value" : "同步資料編碼失敗:%@" } } } }, - "Export ER Diagram" : { + "Failed to establish connection" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "ER 다이어그램 내보내기" + "value" : "연결을 설정하지 못했습니다" + } + } + } + }, + "Failed to fetch models from %@" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@에서 모델을 가져오지 못했습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "ER Diyagramını Dışa Aktar" + "value" : "Şuradan modeller alınamadı: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất sơ đồ ER" + "value" : "Không thể lấy danh sách model từ %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导出 ER 图" + "value" : "无法从 %@ 获取模型" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯出 ER 圖" + "value" : "無法從 %@ 擷取模型" } } } }, - "Export Error" : { + "Failed to fetch models from %@ (HTTP %d)" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Failed to fetch models from %1$@ (HTTP %2$d)" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "내보내기 오류" + "value" : "%1$@에서 모델을 가져오지 못했습니다 (HTTP %2$d)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dışa Aktarma Hatası" + "value" : "%@ adresinden modeller alınamadı (HTTP %d)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lỗi xuất dữ liệu" + "value" : "Không thể tải danh sách mô hình từ %@ (HTTP %d)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导出错误" + "value" : "从 %@ 获取模型失败 (HTTP %d)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯出錯誤" + "value" : "從 %1$@ 取得模型失敗 (HTTP %2$d)" } } } }, - "Export Failed" : { + "Failed to fetch table structure: %@" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "내보내기 실패" + "value" : "테이블 구조를 가져오지 못했습니다: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dışa Aktarma Başarısız" + "value" : "Failed to fetch tablo structure: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất Thất bại" + "value" : "Lấy cấu trúc bảng thất bại: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导出失败" + "value" : "获取表结构失败: %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯出失敗" + "value" : "取得資料表結構失敗:%@" } } } }, - "Export failed: %@" : { + "Failed to generate SQL for column reorder" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "내보내기 실패: %@" + "value" : "열 순서 변경용 SQL을 생성하지 못했습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dışa aktarma başarısız: %@" + "value" : "Sütun yeniden sıralama için SQL oluşturulamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất thất bại: %@" + "value" : "Không thể tạo SQL để sắp xếp lại cột" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导出失败: %@" + "value" : "无法生成列重排序的 SQL" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯出失敗:%@" + "value" : "無法產生欄位重新排序的 SQL" } } } }, - "Export finished" : { - - }, - "Export Format" : { + "Failed to generate TLS certificate" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "내보내기 형식" + "value" : "TLS 인증서를 생성하지 못했습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dışa Aktarma Biçimi" + "value" : "TLS sertifikası oluşturulamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Định dạng xuất" + "value" : "Không tạo được chứng chỉ TLS" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导出格式" + "value" : "生成 TLS 证书失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯出格式" + "value" : "產生 TLS 憑證失敗" } } } }, - "Export format '%@' not found" : { + "Failed to generate TLS private key" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "내보내기 형식 '%@'을(를) 찾을 수 없습니다" + "value" : "TLS 개인 키를 생성하지 못했습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dışa aktarma biçimi '%@' bulunamadı" + "value" : "TLS özel anahtarı oluşturulamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy định dạng xuất '%@'" + "value" : "Không tạo được TLS private key" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未找到导出格式 '%@'" + "value" : "生成 TLS 私钥失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "找不到匯出格式「%@」" + "value" : "產生 TLS 私密金鑰失敗" } } } }, - "Export format: csv, json, or sql" : { + "Failed to import DDL: %@" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "내보내기 형식: csv, json 또는 sql" + "value" : "DDL을 가져오지 못했습니다: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dışa aktarma biçimi: csv, json veya sql" + "value" : "DDL içe aktarılamadı: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Định dạng xuất: csv, json hoặc sql" + "value" : "Nhập DDL thất bại: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导出格式:csv、json 或 sql" + "value" : "导入 DDL 失败: %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯出格式:csv、json 或 sql" + "value" : "匯入 DDL 失敗:%@" } } } }, - "Export Formats" : { + "Failed to import TLS identity into Keychain (error %d)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "내보내기 형식" + "value" : "TLS ID를 키체인으로 가져오지 못했습니다 (오류 %d)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dışa Aktarma Biçimleri" + "value" : "TLS kimliği Keychain'e aktarılamadı (hata %d)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Định dạng xuất" + "value" : "Không thể nhập TLS identity vào Keychain (lỗi %d)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导出格式" + "value" : "将 TLS 身份导入钥匙串失败(错误 %d)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯出格式" + "value" : "將 TLS 身分匯入鑰匙圈失敗(錯誤 %d)" } } } }, - "Export multiple tables" : { + "Failed to load" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "여러 테이블 내보내기" + "value" : "불러오지 못했습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Birden fazla tabloyu dışa aktar" + "value" : "Yüklenemedi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất nhiều bảng" + "value" : "Tải thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导出多个表" + "value" : "加载失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯出多個資料表" + "value" : "載入失敗" } } } }, - "Export Options" : { + "Failed to load %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "내보내기 옵션" + "value" : "%@을(를) 불러오지 못했습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dışa Aktarma Seçenekleri" + "value" : "%@ yüklenemedi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tùy chọn Xuất" + "value" : "Không thể tải %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导出选项" + "value" : "加载 %@ 失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯出選項" + "value" : "載入 %@ 失敗" } } } }, - "Export Plan as Image" : { - "comment" : "A button that exports the diagram as an image.", - "isCommentAutoGenerated" : true, + "Failed to load databases" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "실행 계획을 이미지로 내보내기" + "value" : "데이터베이스를 불러오지 못했습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Planı Görüntü Olarak Dışa Aktar" + "value" : "Veritabanları yüklenemedi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất kế hoạch thành ảnh" + "value" : "Tải danh sách cơ sở dữ liệu thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将执行计划导出为图片" + "value" : "加载数据库列表失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將執行計畫匯出為圖片" + "value" : "載入資料庫清單失敗" } } } }, - "Export Query Plan" : { - "comment" : "Button title to export the diagram as an image.", - "isCommentAutoGenerated" : true, + "Failed to load databases: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 계획 내보내기" + "value" : "데이터베이스를 불러오지 못했습니다: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgu Planını Dışa Aktar" + "value" : "Veritabanları yüklenemedi: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất kế hoạch truy vấn" + "value" : "Tải danh sách cơ sở dữ liệu thất bại: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导出查询计划" + "value" : "加载数据库列表失败: %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯出查詢計畫" + "value" : "載入資料庫清單失敗:%@" } } } }, - "Export query results and tables to Excel format." : { + "Failed to load full value" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 결과와 테이블을 Excel 형식으로 내보냅니다." + "value" : "전체 값을 불러오지 못했습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgu sonuçlarını ve tabloları Excel biçiminde dışa aktarın." + "value" : "Tam değer yüklenemedi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất kết quả truy vấn và bảng sang định dạng Excel." + "value" : "Không thể tải toàn bộ giá trị" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将查询结果和表导出为 Excel 格式。" + "value" : "无法加载完整值" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將查詢結果與資料表匯出為 Excel 格式。" + "value" : "無法載入完整值" } } } }, - "Export query results or table data to CSV, JSON, or SQL" : { - "extractionState" : "stale", + "Failed to load options" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 결과 또는 테이블 데이터를 CSV, JSON 또는 SQL로 내보냅니다" + "value" : "옵션을 불러오지 못했습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgu sonuçlarını veya tablo verilerini CSV, JSON veya SQL olarak dışa aktar" + "value" : "Seçenekler yüklenemedi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất kết quả truy vấn hoặc dữ liệu bảng ra CSV, JSON hoặc SQL" + "value" : "Không tải được tùy chọn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将查询结果或表数据导出为 CSV、JSON 或 SQL" + "value" : "加载选项失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將查詢結果或資料表資料匯出為 CSV、JSON 或 SQL" + "value" : "載入選項失敗" } } } }, - "Export query results to %@" : { + "Failed to load plugin registry" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 결과를 %@(으)로 내보내기" + "value" : "플러그인 레지스트리를 불러오지 못했습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgu sonuçlarını %@ olarak dışa aktar" + "value" : "Eklenti kaydı yüklenemedi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất kết quả truy vấn sang %@" + "value" : "Không thể tải danh sách plugin" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将查询结果导出为 %@" + "value" : "无法加载插件注册表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將查詢結果匯出為 %@" + "value" : "無法載入外掛註冊" } } } }, - "Export Results…" : { + "Failed to load preview using encoding: %@. Try selecting a different text encoding from the encoding picker and reload the preview." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "결과 내보내기…" + "value" : "인코딩(%@)으로 미리보기를 불러오지 못했습니다. 인코딩 선택기에서 다른 텍스트 인코딩을 선택한 후 미리보기를 다시 불러오십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sonuçları Dışa Aktar…" + "value" : "Failed to load Önizleme using encoding: %@. Try selecting a different text encoding from the encoding picker and reload the Önizleme." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Export Kết Quả…" + "value" : "Tải bản xem trước thất bại với mã hóa: %@. Hãy thử chọn mã hóa văn bản khác và tải lại bản xem trước." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导出结果…" + "value" : "使用编码 %@ 加载预览失败。请尝试从编码选择器中选择其他文本编码并重新加载预览。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯出結果…" + "value" : "使用編碼 %@ 載入預覽失敗。請嘗試從編碼選擇器中選擇其他文字編碼,並重新載入預覽。" } } } }, - "Export table" : { + "Failed to load preview using encoding: %@. Try selecting a different text encoding." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 내보내기" + "value" : "인코딩(%@)으로 미리보기를 불러오지 못했습니다. 다른 텍스트 인코딩을 선택해 보십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tabloyu dışa aktar" + "value" : "Failed to load Önizleme using encoding: %@. Try selecting a different text encoding." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất bảng" + "value" : "Không thể tải xem trước với mã hóa: %@. Hãy thử chọn mã hóa văn bản khác." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导出表" + "value" : "无法使用编码 %@ 加载预览。请尝试选择其他文本编码。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯出資料表" + "value" : "使用編碼 %@ 載入預覽失敗。請嘗試選擇其他文字編碼。" } } } }, - "Export Tables…" : { + "Failed to load preview: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 내보내기…" + "value" : "미리보기를 불러오지 못했습니다: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tabloları Dışa Aktar…" + "value" : "Failed to load Önizleme: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất bảng…" + "value" : "Tải bản xem trước thất bại: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导出表…" + "value" : "加载预览失败: %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯出資料表…" + "value" : "載入預覽失敗:%@" } } } }, - "Export the filtered activity log to CSV" : { + "Failed to load referenced row" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터링된 활동 로그를 CSV로 내보내기" + "value" : "참조된 행을 불러오지 못했습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtrelenmiş etkinlik günlüğünü CSV olarak dışa aktar" + "value" : "Referans satır yüklenemedi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất nhật ký hoạt động đã lọc ra CSV" + "value" : "Không thể tải dòng tham chiếu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将筛选后的活动日志导出为 CSV" + "value" : "无法加载引用行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將篩選後的活動記錄匯出為 CSV" + "value" : "無法載入參照的列" } } } }, - "Export the result of a query, or whole tables, as CSV, JSON, or SQL INSERT statements. With output_path the file is written inside the user's Downloads folder and never overwrites an existing file; without it the text comes back inline. SQL output uses the connection's own quoting and literal rules, so exporting a query needs 'sql_table' to name the target table." : { - - }, - "Export to File…" : { + "Failed to load schemas" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "파일로 내보내기…" + "value" : "스키마를 불러오지 못했습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dosyaya Aktar…" + "value" : "Şemalar yüklenemedi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất ra tệp…" + "value" : "Không thể tải danh sách schema" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导出到文件…" + "value" : "无法加载 Schema 列表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯出至檔案…" + "value" : "無法載入綱要清單" } } } }, - "Export…" : { + "Failed to load tables: %@" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "내보내기…" + "value" : "테이블을 불러오지 못했습니다: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dışa Aktar…" + "value" : "Failed to load tablo: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất…" + "value" : "Tải danh sách bảng thất bại: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导出…" + "value" : "加载表列表失败: %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯出…" + "value" : "載入資料表清單失敗:%@" } } } }, - "Exported text. Omitted when the export was written to a file." : { - - }, - "Exported to %@" : { - - }, - "Exports" : { - - }, - "Exports data as mongosh-compatible scripts. Drop, Indexes, and Data options are configured per collection in the collection list." : { + "Failed to load template: %@" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터를 mongosh 호환 스크립트로 내보냅니다. Drop, Indexes 및 Data 옵션은 컬렉션 목록의 각 컬렉션에서 설정합니다." + "value" : "템플릿을 불러오지 못했습니다: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veriyi mongosh uyumlu betikler olarak dışa aktarır. Bırak, İndeksler ve Veri seçenekleri koleksiyon listesinde koleksiyon başına yapılandırılır." + "value" : "Şablon yüklenemedi: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất dữ liệu dưới dạng script tương thích mongosh. Tùy chọn Drop, Indexes và Data được cấu hình cho từng collection trong danh sách collection." + "value" : "Tải mẫu thất bại: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将数据导出为 mongosh 兼容的脚本。Drop、Indexes 和 Data 选项可在集合列表中按集合配置。" + "value" : "加载模板失败: %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將資料匯出為 mongosh 相容的指令碼。Drop、Indexes 與 Data 選項可在集合清單中依集合個別設定。" + "value" : "載入範本失敗:%@" } } } }, - "Expose to local network" : { + "Failed to open SSH channel for port forwarding" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "로컬 네트워크에 공개" + "value" : "포트 포워딩용 SSH 채널을 열지 못했습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yerel ağa aç" + "value" : "Port yönlendirme için SSH kanalı açılamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cho phép truy cập từ mạng cục bộ" + "value" : "Không thể mở kênh SSH để chuyển tiếp cổng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "开放给本地网络" + "value" : "无法打开 SSH 通道进行端口转发" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開放給本機網路" + "value" : "無法開啟 SSH 隧道以進行連接埠轉送" } } } }, - "Expression (e.g., age >= 0)" : { + "Failed to parse any columns from table '%@'. Check console for debug info." : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "표현식(예: age >= 0)" + "value" : "테이블 '%@'에서 열을 하나도 구문 분석하지 못했습니다. 디버그 정보는 콘솔에서 확인하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İfade (örn. age >= 0)" + "value" : "Failed to parse any columns from tablo '%@'. Check console for debug info." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Biểu thức (vd: age >= 0)" + "value" : "Không thể phân tích cột từ bảng '%@'. Kiểm tra console để xem thông tin gỡ lỗi." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "表达式(如 age >= 0)" + "value" : "无法从表 '%@' 解析任何列。请检查控制台获取调试信息。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "運算式(例如 age >= 0)" + "value" : "無法從資料表「%@」解析任何欄位。請檢查主控台以取得偵錯資訊。" } } } }, - "Extend Selection to Next Statement" : { + "Failed to parse connection file: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다음 문까지 선택 확장" + "value" : "연결 파일을 해석하지 못했습니다: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Seçimi Sonraki İfadeye Genişlet" + "value" : "Bağlantı dosyası ayrıştırılamadı: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở rộng vùng chọn đến câu lệnh tiếp theo" + "value" : "Không thể phân tích tệp kết nối: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将所选内容扩展到下一条语句" + "value" : "无法解析连接文件:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將所選範圍延伸至下一個陳述式" + "value" : "無法解析連線檔案:%@" } } } }, - "Extend Selection to Previous Statement" : { + "Failed to parse connections: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이전 문까지 선택 확장" + "value" : "연결을 구문 분석하지 못했습니다: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Seçimi Önceki İfadeye Genişlet" + "value" : "Bağlantılar ayrıştırılamadı: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở rộng vùng chọn đến câu lệnh trước" + "value" : "Không thể phân tích kết nối: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将所选内容扩展到上一条语句" + "value" : "解析连接失败:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將所選範圍延伸至上一個陳述式" + "value" : "解析連線失敗:%@" } } } }, - "EXTENDED" : { + "Failed to parse plugin registry" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "EXTENDED" + "value" : "플러그인 레지스트리를 구문 분석하지 못했습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "GENİŞLETİLMİŞ" + "value" : "Eklenti kaydı ayrıştırılamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "MỞ RỘNG" + "value" : "Không thể phân tích danh sách plugin" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "扩展" + "value" : "无法解析插件注册表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "擴充" + "value" : "無法解析外掛註冊" } } } }, - "External" : { + "Failed to parse server response: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "외부" + "value" : "서버 응답을 구문 분석하지 못했습니다: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Harici" + "value" : "Sunucu yanıtı ayrıştırılamadı: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bên ngoài" + "value" : "Không thể phân tích phản hồi máy chủ: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "外部" + "value" : "服务器响应解析失败:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "外部" + "value" : "解析伺服器回應失敗:%@" } } } }, - "External Access" : { + "Failed to parse statement at line %lld: %@" : { + "extractionState" : "stale", "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Failed to parse statement at line %1$lld: %2$@" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "외부 접근" + "value" : "줄 %1$lld의 문을 구문 분석하지 못했습니다: %2$@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Harici Erişim" + "value" : "Failed to parse ifade at line %lld: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Truy cập bên ngoài" + "value" : "Phân tích câu lệnh thất bại tại dòng %1$lld: %2$@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "外部访问" + "value" : "在第 %lld 行解析语句失败: %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "外部存取" + "value" : "在第 %1$lld 行解析陳述式失敗:%2$@" } } } }, - "External access is disabled for this connection" : { + "Failed to read file: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 연결에서는 외부 접근이 비활성화되어 있습니다" + "value" : "파일을 읽지 못했습니다: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu bağlantı için harici erişim devre dışı" + "value" : "Dosya okunamadı: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Truy cập bên ngoài đã bị tắt cho kết nối này" + "value" : "Đọc tệp thất bại: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "该连接已禁用外部访问" + "value" : "读取文件失败: %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此連線已停用外部存取" + "value" : "讀取檔案失敗:%@" } } } }, - "External client access level" : { - - }, - "External Clients" : { + "Failed to render the diagram image." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "외부 클라이언트" + "value" : "다이어그램 이미지를 렌더링하지 못했습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Harici İstemciler" + "value" : "Diyagram görüntüsü oluşturulamadı." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Client bên ngoài" + "value" : "Không thể tạo hình ảnh sơ đồ." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "外部客户端" + "value" : "无法渲染图表图像。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "外部用戶端" + "value" : "無法繪製圖表影像。" } } } }, - "External integrations and MCP client requests will appear here." : { + "Failed to save template: %@" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "외부 통합 및 MCP 클라이언트 요청이 여기에 표시됩니다." + "value" : "템플릿을 저장하지 못했습니다: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Harici entegrasyonlar ve MCP istemci istekleri burada görünür." + "value" : "Şablon kaydedilemedi: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Các tích hợp bên ngoài và yêu cầu từ MCP client sẽ xuất hiện ở đây." + "value" : "Lưu mẫu thất bại: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "外部集成和 MCP 客户端请求将显示在此处。" + "value" : "保存模板失败: %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "外部整合與 MCP 用戶端要求將顯示於此處。" + "value" : "儲存範本失敗:%@" } } } }, - "External Table" : { + "Failed to write file: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "외부 테이블" + "value" : "파일을 쓰지 못했습니다: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Harici Tablo" + "value" : "Dosyaya yazılamadı: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "External Table" + "value" : "Không thể ghi tệp: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "外部表" + "value" : "写入文件失败: %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "外部資料表" + "value" : "寫入檔案失敗:%@" } } } }, - "Extra High" : { + "Failed: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "매우 높음" + "value" : "실패: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Çok Yüksek" + "value" : "Başarısız: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cực cao" + "value" : "Thất bại: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "超高" + "value" : "失败:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "超高" + "value" : "失敗:%@" } } } }, - "Extra Large" : { - "extractionState" : "stale", + "Failures" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "특대" + "value" : "실패한 쿼리" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Çok Büyük" + "value" : "Başarısız Sorgular" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Rất lớn" + "value" : "Truy vấn lỗi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "特大" + "value" : "失败查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "特大" + "value" : "失敗查詢" } } } }, - "Failed" : { + "Family" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "실패" + "value" : "서체" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Başarısız" + "value" : "Aile" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thất bại" + "value" : "Họ phông" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "失败" + "value" : "字体族" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "失敗" + "value" : "字型家族" } } } }, - "Failed after %@" : { - - }, - "Failed after %1$@: %2$@" : { - - }, - "Failed at line %lld" : { + "Fast" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "줄 %lld에서 실패했습니다" + "value" : "빠름" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satır %lld'de başarısız" + "value" : "Hızlı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thất bại tại dòng %lld" + "value" : "Nhanh" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在第 %lld 行失败" + "value" : "快速" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在第 %lld 行失敗" + "value" : "快速" } } } }, - "Failed at line %lld. %@" : { - "comment" : "Error message displayed in an alert when a plugin import fails. The first argument is the line number of the failed statement. The second argument is the error message from the underlying error.", - "isCommentAutoGenerated" : true, + "Favorite" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Failed at line %1$lld. %2$@" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "줄 %1$lld에서 실패했습니다. %2$@" + "value" : "즐겨찾기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%lld. satırda başarısız oldu. %@" + "value" : "Sık Kullanılan" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lỗi ở dòng %lld. %@" + "value" : "Yêu thích" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "第 %lld 行失败。%@" + "value" : "收藏" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "第 %lld 行失敗。%@" + "value" : "我的最愛" } } } }, - "Failed to compress data" : { + "Favorite Database" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터를 압축하지 못했습니다" + "value" : "즐겨찾는 데이터베이스" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veri sıkıştırılamadı" + "value" : "Sık Kullanılan Veritabanı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể nén dữ liệu" + "value" : "Cơ sở dữ liệu Yêu thích" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "压缩数据失败" + "value" : "收藏数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "壓縮資料失敗" + "value" : "收藏資料庫" } } } }, - "Failed to create terminal process (errno: %d)" : { - "extractionState" : "stale", + "Favorited" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "터미널 프로세스를 생성하지 못했습니다 (errno: %d)" + "value" : "즐겨찾기에 추가됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Terminal işlemi oluşturulamadı (errno: %d)" + "value" : "Sık kullanılanlara eklendi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể tạo tiến trình terminal (errno: %d)" + "value" : "Đã yêu thích" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "创建终端进程失败 (errno: %d)" + "value" : "已收藏" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "建立終端機處理程序失敗 (errno: %d)" + "value" : "已加入我的最愛" } } } }, - "Failed to decompress .gz file" : { + "Favorites" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : ".gz 파일의 압축을 해제하지 못했습니다" + "value" : "즐겨찾기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : ".gz dosyası açılamadı" + "value" : "Sık Kullanılanlar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giải nén tệp .gz thất bại" + "value" : "Yêu thích" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "解压 .gz 文件失败" + "value" : "收藏" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "解壓縮 .gz 檔案失敗" + "value" : "我的最愛" } } } }, - "Failed to decompress file: %@" : { + "Feature Routing" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "파일의 압축을 해제하지 못했습니다: %@" + "value" : "기능 라우팅" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dosya açılamadı: %@" + "value" : "Özellik Yönlendirme" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giải nén tệp thất bại: %@" + "value" : "Định tuyến tính năng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "解压文件失败: %@" + "value" : "功能路由" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "解壓縮檔案失敗:%@" + "value" : "功能路由" } } } }, - "Failed to delete template: %@" : { + "Feedback submitted!" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "템플릿을 삭제하지 못했습니다: %@" + "value" : "피드백을 제출했습니다!" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Şablon silinemedi: %@" + "value" : "Geri bildirim gönderildi!" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa mẫu thất bại: %@" + "value" : "Đã gửi phản hồi!" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除模板失败: %@" + "value" : "反馈已提交!" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除範本失敗:%@" + "value" : "意見回饋已送出!" } } } }, - "Failed to encode connection data" : { - "extractionState" : "stale", + "Fetch All" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 데이터를 인코딩하지 못했습니다" + "value" : "모두 가져오기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı verileri kodlanamadı" + "value" : "Tümünü Getir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể mã hóa dữ liệu kết nối" + "value" : "Tải tất cả" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法编码连接数据" + "value" : "获取全部" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法編碼連線資料" + "value" : "取得全部" } } } }, - "Failed to encode content as UTF-8" : { + "Fetch All Rows" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "콘텐츠를 UTF-8로 인코딩하지 못했습니다" + "value" : "모든 행 가져오기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İçerik UTF-8 olarak kodlanamadı" + "value" : "Tüm Satırları Getir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể mã hóa nội dung thành UTF-8" + "value" : "Tải tất cả dòng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法将内容编码为 UTF-8" + "value" : "获取所有行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法將內容編碼為 UTF-8" + "value" : "取得所有列" } } } }, - "Failed to encode sync data: %@" : { - "extractionState" : "stale", + "Fetching models…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "동기화 데이터를 인코딩하지 못했습니다: %@" + "value" : "모델 가져오는 중…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eşitleme verisi kodlanamadı: %@" + "value" : "Modeller alınıyor…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể mã hoá dữ liệu đồng bộ: %@" + "value" : "Đang lấy danh sách model…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "同步数据编码失败:%@" + "value" : "正在获取模型…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "同步資料編碼失敗:%@" - } - } - } - }, - "Failed to establish connection" : { - "extractionState" : "stale", - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "연결을 설정하지 못했습니다" + "value" : "正在擷取模型…" } } } }, - "Failed to Fetch DDL" : { - "extractionState" : "stale", + "Field" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "DDL을 가져오지 못했습니다" + "value" : "필드" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "DDL Alınamadı" + "value" : "Alan" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể lấy DDL" + "value" : "Trường" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "获取 DDL 失败" + "value" : "字段" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "擷取 DDL 失敗" + "value" : "欄位" } } } }, - "Failed to fetch models from %@" : { + "Fields" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@에서 모델을 가져오지 못했습니다" + "value" : "필드" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Şuradan modeller alınamadı: %@" + "value" : "Alanlar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể lấy danh sách model từ %@" + "value" : "Trường" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法从 %@ 获取模型" + "value" : "字段" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法從 %@ 擷取模型" + "value" : "欄位" } } } }, - "Failed to fetch models from %@ (HTTP %d)" : { + "File" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Failed to fetch models from %1$@ (HTTP %2$d)" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@에서 모델을 가져오지 못했습니다 (HTTP %2$d)" + "value" : "파일" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ adresinden modeller alınamadı (HTTP %d)" + "value" : "Dosya" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể tải danh sách mô hình từ %@ (HTTP %d)" + "value" : "Tệp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "从 %@ 获取模型失败 (HTTP %d)" + "value" : "文件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "從 %1$@ 取得模型失敗 (HTTP %2$d)" + "value" : "檔案" } } } }, - "Failed to fetch table structure: %@" : { - "extractionState" : "stale", + "File Modified Externally" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 구조를 가져오지 못했습니다: %@" + "value" : "외부에서 파일이 수정됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Failed to fetch tablo structure: %@" + "value" : "Dosya Dışarıdan Değiştirildi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lấy cấu trúc bảng thất bại: %@" + "value" : "Tệp bị sửa đổi bên ngoài" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "获取表结构失败: %@" + "value" : "文件已在外部被修改" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "取得資料表結構失敗:%@" + "value" : "檔案已在外部被修改" } } } }, - "Failed to generate SQL for column reorder" : { + "File Path" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열 순서 변경용 SQL을 생성하지 못했습니다" + "value" : "파일 경로" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sütun yeniden sıralama için SQL oluşturulamadı" + "value" : "Dosya Yolu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể tạo SQL để sắp xếp lại cột" + "value" : "Đường dẫn tệp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法生成列重排序的 SQL" + "value" : "文件路径" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法產生欄位重新排序的 SQL" + "value" : "檔案路徑" } } } }, - "Failed to generate TLS certificate" : { - "extractionState" : "stale", + "File encoding (%@) cannot represent these characters. Convert the file to UTF-8 to save." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "TLS 인증서를 생성하지 못했습니다" + "value" : "파일 인코딩(%@)으로는 이 문자를 표현할 수 없습니다. 저장하려면 파일을 UTF-8로 변환하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "TLS sertifikası oluşturulamadı" + "value" : "Dosya kodlaması (%@) bu karakterleri temsil edemiyor. Kaydetmek için dosyayı UTF-8'e dönüştürün." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tạo được chứng chỉ TLS" + "value" : "Bảng mã của tệp (%@) không thể biểu diễn các ký tự này. Hãy chuyển tệp sang UTF-8 để lưu." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "生成 TLS 证书失败" + "value" : "文件编码(%@)无法表示这些字符。请将文件转换为 UTF-8 后再保存。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "產生 TLS 憑證失敗" + "value" : "檔案編碼(%@)無法表示這些字。請將檔案轉換為 UTF-8 後再儲存。" } } } }, - "Failed to generate TLS private key" : { + "File name" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "TLS 개인 키를 생성하지 못했습니다" + "value" : "파일 이름" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "TLS özel anahtarı oluşturulamadı" + "value" : "Dosya adı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tạo được TLS private key" + "value" : "Tên tệp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "生成 TLS 私钥失败" + "value" : "文件名" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "產生 TLS 私密金鑰失敗" + "value" : "檔案名稱" } } } }, - "Failed to import DDL: %@" : { + "File not found" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "DDL을 가져오지 못했습니다: %@" + "value" : "파일을 찾을 수 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "DDL içe aktarılamadı: %@" + "value" : "Dosya bulunamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập DDL thất bại: %@" + "value" : "Không tìm thấy tệp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导入 DDL 失败: %@" + "value" : "未找到文件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯入 DDL 失敗:%@" + "value" : "找不到檔案" } } } }, - "Failed to import TLS identity into Keychain (error %d)" : { - "extractionState" : "stale", + "File path inside the user's Downloads directory (returns inline data if omitted). Paths outside Downloads are rejected." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "TLS ID를 키체인으로 가져오지 못했습니다 (오류 %d)" + "value" : "사용자의 다운로드 폴더 내 파일 경로입니다 (생략하면 인라인 데이터를 반환). 다운로드 폴더 외부의 경로는 거부됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "TLS kimliği Keychain'e aktarılamadı (hata %d)" + "value" : "Kullanıcının İndirilenler klasörü içindeki dosya yolu (boş bırakılırsa veriler satır içi döndürülür). İndirilenler dışındaki yollar reddedilir." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể nhập TLS identity vào Keychain (lỗi %d)" + "value" : "Đường dẫn tệp trong thư mục Downloads của người dùng (nếu bỏ trống sẽ trả về dữ liệu inline). Đường dẫn ngoài Downloads sẽ bị từ chối." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将 TLS 身份导入钥匙串失败(错误 %d)" + "value" : "用户“下载”目录内的文件路径(留空则返回内联数据)。“下载”目录之外的路径会被拒绝。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將 TLS 身分匯入鑰匙圈失敗(錯誤 %d)" + "value" : "使用者「下載」資料夾內的檔案路徑(留空則回傳內嵌資料)。「下載」資料夾之外的路徑會被拒絕。" } } } }, - "Failed to load" : { + "Filename cannot be '.' or '..' or contain path traversal" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "불러오지 못했습니다" + "value" : "파일 이름은 '.' 또는 '..'일 수 없으며 경로 순회 요소를 포함할 수 없습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yüklenemedi" + "value" : "Dosya adı '.' veya '..' olamaz veya yol geçişi içeremez" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tải thất bại" + "value" : "Tên tệp không được là '.' hoặc '..' hoặc chứa đường dẫn đi lên" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "加载失败" + "value" : "文件名不能是 '.' 或 '..',且不能包含路径遍历" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "載入失敗" + "value" : "檔案名稱不能是「.」或「..」,且不能包含路徑遍歷" } } } }, - "Failed to Load" : { + "Filename cannot be empty" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "불러오지 못했습니다" + "value" : "파일 이름은 비워 둘 수 없습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yükleme Başarısız" + "value" : "Dosya adı boş olamaz" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tải thất bại" + "value" : "Tên tệp không được để trống" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "加载失败" + "value" : "文件名不能为空" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "載入失敗" + "value" : "檔案名稱不能為空" } } } }, - "Failed to load %@" : { + "Filename contains invalid characters: / \\ : * ? \" < > |" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@을(를) 불러오지 못했습니다" + "value" : "파일 이름에 잘못된 문자가 포함되어 있습니다: / \\ : * ? \" < > |" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ yüklenemedi" + "value" : "Dosya adı geçersiz karakterler içeriyor: / \\ : * ? \" < > |" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể tải %@" + "value" : "Tên tệp chứa ký tự không hợp lệ: / \\ : * ? \" < > |" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "加载 %@ 失败" + "value" : "文件名包含无效字符:/ \\ : * ? \" < > |" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "載入 %@ 失敗" + "value" : "檔案名稱包含無效字:/ \\ : * ? \" < > |" } } } }, - "Failed to load databases" : { + "Filename is too long (max 255 bytes)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스를 불러오지 못했습니다" + "value" : "파일 이름이 너무 깁니다 (최대 255바이트)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanları yüklenemedi" + "value" : "Dosya adı çok uzun (maks. 255 bayt)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tải danh sách cơ sở dữ liệu thất bại" + "value" : "Tên tệp quá dài (tối đa 255 byte)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "加载数据库列表失败" + "value" : "文件名过长(最大 255 字节)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "載入資料庫清單失敗" + "value" : "檔案名稱過長(最多 255 位元組)" } } } }, - "Failed to load databases: %@" : { + "Fill" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스를 불러오지 못했습니다: %@" + "value" : "채우기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanları yüklenemedi: %@" + "value" : "Doldur" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tải danh sách cơ sở dữ liệu thất bại: %@" + "value" : "Điền" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "加载数据库列表失败: %@" + "value" : "填充" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "載入資料庫清單失敗:%@" + "value" : "填入" } } } }, - "Failed to load full value" : { - "extractionState" : "stale", + "Fill Column" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "전체 값을 불러오지 못했습니다" + "value" : "열 채우기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tam değer yüklenemedi" + "value" : "Sütunu Doldur" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể tải toàn bộ giá trị" + "value" : "Điền cột" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法加载完整值" + "value" : "填充列" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法載入完整值" + "value" : "填入欄位" } } } }, - "Failed to load options" : { + "Fill Column…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "옵션을 불러오지 못했습니다" + "value" : "열 채우기…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Seçenekler yüklenemedi" + "value" : "Sütunu Doldur…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tải được tùy chọn" + "value" : "Điền cột…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "加载选项失败" + "value" : "填充列…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "載入選項失敗" + "value" : "填入欄位…" } } } }, - "Failed to load plugin registry" : { - "extractionState" : "stale", + "Fill column \"%@\"" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플러그인 레지스트리를 불러오지 못했습니다" + "value" : "\"%@\" 열 채우기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklenti kaydı yüklenemedi" + "value" : "\"%@\" sütununu doldur" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể tải danh sách plugin" + "value" : "Điền cột \"%@\"" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法加载插件注册表" + "value" : "填充列 \"%@\"" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法載入外掛註冊" + "value" : "填入欄位「%@」" } } } }, - "Failed to load preview using encoding: %@. Try selecting a different text encoding from the encoding picker and reload the preview." : { - "extractionState" : "stale", + "Filter" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "인코딩(%@)으로 미리보기를 불러오지 못했습니다. 인코딩 선택기에서 다른 텍스트 인코딩을 선택한 후 미리보기를 다시 불러오십시오." + "value" : "필터" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Failed to load Önizleme using encoding: %@. Try selecting a different text encoding from the encoding picker and reload the Önizleme." + "value" : "Filtre" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tải bản xem trước thất bại với mã hóa: %@. Hãy thử chọn mã hóa văn bản khác và tải lại bản xem trước." + "value" : "Bộ lọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "使用编码 %@ 加载预览失败。请尝试从编码选择器中选择其他文本编码并重新加载预览。" + "value" : "筛选" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "使用編碼 %@ 載入預覽失敗。請嘗試從編碼選擇器中選擇其他文字編碼,並重新載入預覽。" + "value" : "篩選" } } } }, - "Failed to load preview using encoding: %@. Try selecting a different text encoding." : { + "Filter Databases…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "인코딩(%@)으로 미리보기를 불러오지 못했습니다. 다른 텍스트 인코딩을 선택해 보십시오." + "value" : "데이터베이스 필터링…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Failed to load Önizleme using encoding: %@. Try selecting a different text encoding." + "value" : "Veritabanlarını Filtrele…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể tải xem trước với mã hóa: %@. Hãy thử chọn mã hóa văn bản khác." + "value" : "Lọc cơ sở dữ liệu…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法使用编码 %@ 加载预览。请尝试选择其他文本编码。" + "value" : "筛选数据库…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "使用編碼 %@ 載入預覽失敗。請嘗試選擇其他文字編碼。" + "value" : "篩選資料庫…" } } } }, - "Failed to load preview: %@" : { + "Filter Settings" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "미리보기를 불러오지 못했습니다: %@" + "value" : "필터 설정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Failed to load Önizleme: %@" + "value" : "Filtre Ayarları" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tải bản xem trước thất bại: %@" + "value" : "Cài đặt bộ lọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "加载预览失败: %@" + "value" : "筛选设置" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "載入預覽失敗:%@" + "value" : "篩選設定" } } } }, - "Failed to load referenced row" : { + "Filter Settings…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "참조된 행을 불러오지 못했습니다" + "value" : "필터 설정…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Referans satır yüklenemedi" + "value" : "Filtre Ayarları…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể tải dòng tham chiếu" + "value" : "Cài đặt bộ lọc…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法加载引用行" + "value" : "筛选设置…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法載入參照的列" + "value" : "篩選設定…" } } } }, - "Failed to load schemas" : { - "extractionState" : "stale", + "Filter Values…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "스키마를 불러오지 못했습니다" + "value" : "값 필터링…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Şemalar yüklenemedi" + "value" : "Değerleri Filtrele…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể tải danh sách schema" + "value" : "Lọc giá trị…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法加载 Schema 列表" + "value" : "筛选值…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法載入綱要清單" + "value" : "篩選值…" } } } }, - "Failed to load tables: %@" : { - "extractionState" : "stale", + "Filter activity" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블을 불러오지 못했습니다: %@" + "value" : "활동 필터링" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Failed to load tablo: %@" + "value" : "Etkinliği filtrele" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tải danh sách bảng thất bại: %@" + "value" : "Lọc hoạt động" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "加载表列表失败: %@" + "value" : "筛选活动" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "載入資料表清單失敗:%@" + "value" : "篩選活動" } } } }, - "Failed to load template: %@" : { + "Filter by name" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "이름으로 필터링", + "state" : "translated" + } + } + } + }, + "Filter by only this row" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "템플릿을 불러오지 못했습니다: %@" + "value" : "이 행만 기준으로 필터링" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Şablon yüklenemedi: %@" + "value" : "Yalnızca bu satıra göre filtrele" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tải mẫu thất bại: %@" + "value" : "Chỉ lọc theo hàng này" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "加载模板失败: %@" + "value" : "仅按此行筛选" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "載入範本失敗:%@" + "value" : "僅依此列篩選" } } } }, - "Failed to open SSH channel for port forwarding" : { + "Filter column" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "포트 포워딩용 SSH 채널을 열지 못했습니다" + "value" : "열 필터링" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Port yönlendirme için SSH kanalı açılamadı" + "value" : "Filtre sütunu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể mở kênh SSH để chuyển tiếp cổng" + "value" : "Cột lọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法打开 SSH 通道进行端口转发" + "value" : "筛选列" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法開啟 SSH 隧道以進行連接埠轉送" + "value" : "篩選欄位" } } } }, - "Failed to parse any columns from table '%@'. Check console for debug info." : { + "Filter column: %@" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 '%@'에서 열을 하나도 구문 분석하지 못했습니다. 디버그 정보는 콘솔에서 확인하십시오." + "value" : "열 필터링: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Failed to parse any columns from tablo '%@'. Check console for debug info." + "value" : "Filtre sütunu: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể phân tích cột từ bảng '%@'. Kiểm tra console để xem thông tin gỡ lỗi." + "value" : "Cột lọc: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法从表 '%@' 解析任何列。请检查控制台获取调试信息。" + "value" : "筛选列: %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法從資料表「%@」解析任何欄位。請檢查主控台以取得偵錯資訊。" + "value" : "篩選欄位:%@" } } } }, - "Failed to parse connection file: %@" : { + "Filter databases" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 파일을 해석하지 못했습니다: %@" + "value" : "데이터베이스 필터링" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı dosyası ayrıştırılamadı: %@" + "value" : "Veritabanlarını filtrele" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể phân tích tệp kết nối: %@" + "value" : "Lọc cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法解析连接文件:%@" + "value" : "筛选数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法解析連線檔案:%@" + "value" : "篩選資料庫" } } } }, - "Failed to parse connections: %@" : { + "Filter favorites" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결을 구문 분석하지 못했습니다: %@" + "value" : "즐겨찾기 필터링" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantılar ayrıştırılamadı: %@" + "value" : "Filtre sık kullanılanları" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể phân tích kết nối: %@" + "value" : "Lọc yêu thích" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "解析连接失败:%@" + "value" : "筛选收藏" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "解析連線失敗:%@" + "value" : "篩選我的最愛" } } } }, - "Failed to parse plugin registry" : { + "Filter keys or values…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플러그인 레지스트리를 구문 분석하지 못했습니다" + "value" : "키 또는 값 필터링…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklenti kaydı ayrıştırılamadı" + "value" : "Anahtar veya değerleri filtrele…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể phân tích danh sách plugin" + "value" : "Lọc khoá hoặc giá trị…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法解析插件注册表" + "value" : "筛选键或值…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法解析外掛註冊" + "value" : "篩選鍵或值…" } } } }, - "Failed to parse server response: %@" : { + "Filter logic mode" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "서버 응답을 구문 분석하지 못했습니다: %@" + "value" : "필터 논리 모드" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sunucu yanıtı ayrıştırılamadı: %@" + "value" : "Filtre mantık modu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể phân tích phản hồi máy chủ: %@" + "value" : "Chế độ logic bộ lọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "服务器响应解析失败:%@" + "value" : "筛选逻辑模式" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "解析伺服器回應失敗:%@" + "value" : "篩選邏輯模式" } } } }, - "Failed to parse statement at line %lld: %@" : { - "extractionState" : "stale", + "Filter objects" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Failed to parse statement at line %1$lld: %2$@" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "줄 %1$lld의 문을 구문 분석하지 못했습니다: %2$@" + "value" : "객체 필터링" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Failed to parse ifade at line %lld: %@" + "value" : "Nesneleri filtrele" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phân tích câu lệnh thất bại tại dòng %1$lld: %2$@" + "value" : "Lọc đối tượng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在第 %lld 行解析语句失败: %@" + "value" : "筛选对象" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在第 %1$lld 行解析陳述式失敗:%2$@" + "value" : "篩選物件" } } } }, - "Failed to read file: %@" : { + "Filter operator" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "파일을 읽지 못했습니다: %@" + "value" : "필터 연산자" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dosya okunamadı: %@" + "value" : "Filtre operatörü" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đọc tệp thất bại: %@" + "value" : "Toán tử lọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "读取文件失败: %@" + "value" : "筛选运算符" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "讀取檔案失敗:%@" + "value" : "篩選運算子" } } } }, - "Failed to render the diagram image." : { + "Filter operator: %@" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다이어그램 이미지를 렌더링하지 못했습니다." + "value" : "필터 연산자: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Diyagram görüntüsü oluşturulamadı." + "value" : "Filtre operatörü: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể tạo hình ảnh sơ đồ." + "value" : "Toán tử lọc: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法渲染图表图像。" + "value" : "筛选运算符: %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法繪製圖表影像。" + "value" : "篩選運算子:%@" } } } }, - "Failed to Save Changes" : { + "Filter options" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "변경 사항을 저장하지 못했습니다" + "value" : "필터 옵션" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Değişiklikler Kaydedilemedi" + "value" : "Filtre seçenekleri" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lưu thay đổi thất bại" + "value" : "Tùy chọn bộ lọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "保存更改失败" + "value" : "筛选选项" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "儲存變更失敗" + "value" : "篩選選項" } } } }, - "Failed to save template: %@" : { + "Filter presets" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "템플릿을 저장하지 못했습니다: %@" + "value" : "필터 프리셋" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Şablon kaydedilemedi: %@" + "value" : "Filtre ön ayarları" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lưu mẫu thất bại: %@" + "value" : "Cài đặt sẵn bộ lọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "保存模板失败: %@" + "value" : "筛选预设" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "儲存範本失敗:%@" + "value" : "篩選預設組" } } } }, - "Failed to write file: %@" : { + "Filter privileges" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "파일을 쓰지 못했습니다: %@" + "value" : "권한 필터링" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dosyaya yazılamadı: %@" + "value" : "Yetkileri filtrele" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể ghi tệp: %@" + "value" : "Lọc quyền" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "写入文件失败: %@" + "value" : "筛选权限" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "寫入檔案失敗:%@" + "value" : "篩選權限" } } } }, - "Failed: %@" : { + "Filter roles" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "실패: %@" + "value" : "역할 필터링" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Başarısız: %@" + "value" : "Rolleri filtrele" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thất bại: %@" + "value" : "Lọc vai trò" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "失败:%@" + "value" : "筛选角色" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "失敗:%@" + "value" : "篩選角色" } } } }, - "Failures" : { + "Filter settings" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "실패한 쿼리" + "value" : "필터 설정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Başarısız Sorgular" + "value" : "Filtre ayarları" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Truy vấn lỗi" + "value" : "Cài đặt bộ lọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "失败查询" + "value" : "筛选设置" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "失敗查詢" + "value" : "篩選設定" } } } }, - "false" : { + "Filter value" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "false" + "value" : "필터 값" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "false" + "value" : "Filtre değeri" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "false" + "value" : "Giá trị lọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "false" + "value" : "筛选值" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "false" + "value" : "篩選值" } } } }, - "FALSE" : { - "extractionState" : "stale", + "Filter with column" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "FALSE" + "value" : "열로 필터링" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "FALSE" + "value" : "Sütunla filtrele" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "FALSE" + "value" : "Lọc theo cột" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "FALSE" + "value" : "按列筛选" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "FALSE" + "value" : "依欄位篩選" } } } }, - "Family" : { + "Filtered" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "서체" + "value" : "필터링됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Aile" + "value" : "Filtrelendi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Họ phông" + "value" : "Đã lọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "字体族" + "value" : "已筛选" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "字型家族" + "value" : "已篩選" } } } }, - "Fast" : { - "extractionState" : "stale", + "Filtered to %lld of %lld ^[rows](inflect: true)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "빠름" + "value" : "%lld / %lld개 행으로 필터됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Hızlı" + "value" : "%lld / %lld satır filtrelendi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhanh" + "value" : "Đã lọc còn %lld trên %lld hàng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "快速" + "value" : "已筛选 %lld / %lld 行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "快速" + "value" : "已篩選 %lld / %lld 列" } } } }, - "FAST" : { + "Filtering by only this row" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "FAST" + "value" : "이 행만 기준으로 필터링 중" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "HIZLI" + "value" : "Yalnızca bu satıra göre filtreleniyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "NHANH" + "value" : "Đang chỉ lọc theo hàng này" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "快速" + "value" : "正在仅按此行筛选" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "快速" + "value" : "正在僅依此列篩選" } } } }, - "favorite" : { - "comment" : "A label indicating that a table is marked as a favorite.", - "isCommentAutoGenerated" : true, + "Filters" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "즐겨찾기" + "value" : "필터" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "sık kullanılan" + "value" : "Filtreler" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "yêu thích" + "value" : "Bộ lọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "收藏" + "value" : "筛选条件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "我的最愛" + "value" : "篩選條件" } } } }, - "Favorite" : { + "Filter…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "즐겨찾기" + "value" : "필터링…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sık Kullanılan" + "value" : "Filtre…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Yêu thích" + "value" : "Lọc…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "收藏" + "value" : "筛选…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "我的最愛" + "value" : "篩選…" } } } }, - "Favorite Database" : { + "Find" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "즐겨찾는 데이터베이스" + "value" : "찾기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sık Kullanılan Veritabanı" + "value" : "Bul" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cơ sở dữ liệu Yêu thích" + "value" : "Tìm" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "收藏数据库" + "value" : "查找" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "收藏資料庫" + "value" : "尋找" } } } }, - "Favorited" : { + "Find Next" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "즐겨찾기에 추가됨" + "value" : "다음 찾기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sık kullanılanlara eklendi" + "value" : "Sonrakini Bul" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã yêu thích" + "value" : "Tìm tiếp theo" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已收藏" + "value" : "查找下一个" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已加入我的最愛" + "value" : "尋找下一個" } } } }, - "Favorites" : { + "Find Previous" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "즐겨찾기" + "value" : "이전 찾기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sık Kullanılanlar" + "value" : "Öncekini Bul" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Yêu thích" + "value" : "Tìm trước đó" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "收藏" + "value" : "查找上一个" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "我的最愛" + "value" : "尋找上一個" } } } }, - "Feature Routing" : { - "extractionState" : "stale", + "Find in loaded rows" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기능 라우팅" + "value" : "불러온 행에서 찾기" + } + } + } + }, + "Find this on the instance's overview page in the Google Cloud console." : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "Google Cloud 콘솔에서 인스턴스의 개요 페이지를 열어 확인하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Özellik Yönlendirme" + "value" : "Bunu Google Cloud konsolunda örneğin genel bakış sayfasında bulabilirsiniz." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Định tuyến tính năng" + "value" : "Bạn tìm thấy giá trị này ở trang tổng quan của instance trong Google Cloud console." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "功能路由" + "value" : "可在 Google Cloud 控制台中该实例的概览页面找到。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "功能路由" + "value" : "可在 Google Cloud 主控台中該執行個體的總覽頁面找到。" } } } }, - "Feedback submitted!" : { - "extractionState" : "stale", + "Find…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "피드백을 제출했습니다!" + "value" : "찾기…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geri bildirim gönderildi!" + "value" : "Bul…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã gửi phản hồi!" + "value" : "Tìm…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "反馈已提交!" + "value" : "查找…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "意見回饋已送出!" + "value" : "尋找…" } } } }, - "Fetch All" : { + "Finish Signing In" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모두 가져오기" + "value" : "로그인 마치기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tümünü Getir" + "value" : "Oturum Açmayı Tamamla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tải tất cả" + "value" : "Hoàn tất đăng nhập" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "获取全部" + "value" : "完成登录" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "取得全部" + "value" : "完成登入" } } } }, - "Fetch all rows" : { - + "Finished" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "완료됨", + "state" : "translated" + } + } + } }, - "Fetch All Rows" : { + "First Page" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 행 가져오기" + "value" : "첫 페이지" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm Satırları Getir" + "value" : "İlk Sayfa" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tải tất cả dòng" + "value" : "Trang đầu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "获取所有行" + "value" : "第一页" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "取得所有列" + "value" : "第一頁" } } } }, - "Fetch an approximate row count per table (default false)" : { - - }, - "Fetching models…" : { + "First column" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모델 가져오는 중…" + "value" : "첫 번째 열" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Modeller alınıyor…" + "value" : "İlk sütun" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang lấy danh sách model…" + "value" : "Cột đầu tiên" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在获取模型…" + "value" : "第一列" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在擷取模型…" + "value" : "第一欄" } } } }, - "Field" : { + "First page" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필드" + "value" : "첫 페이지" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Alan" + "value" : "İlk sayfa" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trường" + "value" : "Trang đầu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "字段" + "value" : "第一页" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "欄位" + "value" : "第一頁" } } } }, - "Fields" : { + "Fit to Window" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필드" + "value" : "윈도우에 맞추기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Alanlar" + "value" : "Pencereye Sığdır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trường" + "value" : "Vừa cửa sổ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "字段" + "value" : "适合窗口" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "欄位" + "value" : "符合視窗" } } } }, - "FIELDS" : { + "Fix Error" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "FIELDS" + "value" : "오류 수정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "ALANLAR" + "value" : "Hatayı Düzelt" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "TRƯỜNG" + "value" : "Sửa lỗi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "字段" + "value" : "修复错误" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "欄位" + "value" : "修正錯誤" } } } }, - "FIELDS (%lld)" : { - "extractionState" : "stale", + "Fix the last error on the current query" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "FIELDS (%lld)" + "value" : "현재 쿼리의 마지막 오류 수정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "ALANLAR (%lld)" + "value" : "Geçerli sorgudaki son hatayı düzelt" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "CÁC TRƯỜNG (%lld)" + "value" : "Sửa lỗi gần nhất của truy vấn hiện tại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "字段 (%lld)" + "value" : "修复当前查询的最后一个错误" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "欄位 (%lld)" + "value" : "修正目前查詢的最後一個錯誤" } } } }, - "File" : { + "Fix with AI" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "파일" + "value" : "AI로 수정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dosya" + "value" : "Yapay Zeka ile Düzelt" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tệp" + "value" : "Sửa bằng AI" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "文件" + "value" : "用 AI 修复" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "檔案" + "value" : "用 AI 修正" } } } }, - "File encoding (%@) cannot represent these characters. Convert the file to UTF-8 to save." : { + "Focus Border" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "파일 인코딩(%@)으로는 이 문자를 표현할 수 없습니다. 저장하려면 파일을 UTF-8로 변환하십시오." + "value" : "포커스 테두리" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dosya kodlaması (%@) bu karakterleri temsil edemiyor. Kaydetmek için dosyayı UTF-8'e dönüştürün." + "value" : "Odak Kenarlığı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bảng mã của tệp (%@) không thể biểu diễn các ký tự này. Hãy chuyển tệp sang UTF-8 để lưu." + "value" : "Viền khi chọn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "文件编码(%@)无法表示这些字符。请将文件转换为 UTF-8 后再保存。" + "value" : "焦点边框" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "檔案編碼(%@)無法表示這些字。請將檔案轉換為 UTF-8 後再儲存。" + "value" : "焦點邊框" } } } }, - "File Modified Externally" : { + "Focus Query Tab" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "외부에서 파일이 수정됨" + "value" : "쿼리 탭에 포커스" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dosya Dışarıdan Değiştirildi" + "value" : "Sorgu Sekmesine Odaklan" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tệp bị sửa đổi bên ngoài" + "value" : "Chuyển đến tab truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "文件已在外部被修改" + "value" : "聚焦查询标签页" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "檔案已在外部被修改" + "value" : "聚焦查詢分頁" } } } }, - "File name" : { - "extractionState" : "stale", + "Focus Sidebar Filter" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "파일 이름" + "value" : "사이드바 필터에 포커스" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dosya adı" + "value" : "Sidebar Filtresine Odaklan" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên tệp" + "value" : "Chuyển đến bộ lọc thanh bên" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "文件名" + "value" : "聚焦侧边栏筛选" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "檔案名稱" + "value" : "聚焦側邊欄篩選" } } } }, - "File name or path inside Downloads. Omit to get the text inline." : { - - }, - "File not found" : { - "extractionState" : "stale", + "Focus an already-open tab by id (returned from list_recent_tabs)." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "파일을 찾을 수 없음" + "value" : "이미 열려 있는 탭에 ID로 포커스를 맞춥니다(list_recent_tabs에서 반환)." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dosya bulunamadı" + "value" : "Zaten açık bir sekmeye id ile odaklanır (list_recent_tabs tarafından döndürülür)." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy tệp" + "value" : "Chuyển đến một tab đang mở theo id (trả về từ list_recent_tabs)." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未找到文件" + "value" : "按 id 聚焦已打开的标签页(id 由 list_recent_tabs 返回)。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "找不到檔案" + "value" : "依 id 聚焦已開啟的分頁(id 由 list_recent_tabs 回傳)。" } } } }, - "File Path" : { + "Focus the query editor to insert" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "파일 경로" + "value" : "삽입할 쿼리 편집기에 포커스" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dosya Yolu" + "value" : "Eklemek için sorgu düzenleyicisine odaklanın" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đường dẫn tệp" + "value" : "Chuyển đến trình soạn thảo truy vấn để chèn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "文件路径" + "value" : "聚焦查询编辑器以插入" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "檔案路徑" + "value" : "聚焦查詢編輯器以插入" } } } }, - "File path inside the user's Downloads directory (returns inline data if omitted). Paths outside Downloads are rejected." : { - "extractionState" : "stale", + "Fold" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "접기", + "state" : "translated" + } + } + } + }, + "Folder" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사용자의 다운로드 폴더 내 파일 경로입니다 (생략하면 인라인 데이터를 반환). 다운로드 폴더 외부의 경로는 거부됩니다." + "value" : "폴더" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kullanıcının İndirilenler klasörü içindeki dosya yolu (boş bırakılırsa veriler satır içi döndürülür). İndirilenler dışındaki yollar reddedilir." + "value" : "Klasör" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đường dẫn tệp trong thư mục Downloads của người dùng (nếu bỏ trống sẽ trả về dữ liệu inline). Đường dẫn ngoài Downloads sẽ bị từ chối." + "value" : "Thư mục" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "用户“下载”目录内的文件路径(留空则返回内联数据)。“下载”目录之外的路径会被拒绝。" + "value" : "文件夹" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "使用者「下載」資料夾內的檔案路徑(留空則回傳內嵌資料)。「下載」資料夾之外的路徑會被拒絕。" + "value" : "資料夾" } } } }, - "File that was written, when output_path was given" : { - - }, - "Filename cannot be '.' or '..' or contain path traversal" : { + "Folder name" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "파일 이름은 '.' 또는 '..'일 수 없으며 경로 순회 요소를 포함할 수 없습니다" + "value" : "폴더 이름" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dosya adı '.' veya '..' olamaz veya yol geçişi içeremez" + "value" : "Klasör adı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên tệp không được là '.' hoặc '..' hoặc chứa đường dẫn đi lên" + "value" : "Tên thư mục" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "文件名不能是 '.' 或 '..',且不能包含路径遍历" + "value" : "文件夹名称" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "檔案名稱不能是「.」或「..」,且不能包含路徑遍歷" + "value" : "資料夾名稱" } } } }, - "Filename cannot be empty" : { - "extractionState" : "stale", + "Follow-up on step %d \"%@\" (%@): %@" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Follow-up on step %1$d \"%2$@\" (%3$@): %4$@" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "파일 이름은 비워 둘 수 없습니다" + "value" : "단계 %1$d \"%2$@\"(%3$@)에 대한 후속 조치: %4$@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dosya adı boş olamaz" + "value" : "%1$d. adım için ek soru \"%2$@\" (%3$@): %4$@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên tệp không được để trống" + "value" : "Hỏi thêm về bước %1$d \"%2$@\" (%3$@): %4$@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "文件名不能为空" + "value" : "关于第 %1$d 步的追问 \"%2$@\"(%3$@):%4$@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "檔案名稱不能為空" + "value" : "關於第 %1$d 步的追問「%2$@」(%3$@):%4$@" } } } }, - "Filename contains invalid characters: / \\ : * ? \" < > |" : { + "Font" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "파일 이름에 잘못된 문자가 포함되어 있습니다: / \\ : * ? \" < > |" + "value" : "글꼴" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dosya adı geçersiz karakterler içeriyor: / \\ : * ? \" < > |" + "value" : "Yazı Tipi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên tệp chứa ký tự không hợp lệ: / \\ : * ? \" < > |" + "value" : "Phông chữ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "文件名包含无效字符:/ \\ : * ? \" < > |" + "value" : "字体" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "檔案名稱包含無效字:/ \\ : * ? \" < > |" + "value" : "字型" } } } }, - "Filename is too long (max 255 bytes)" : { + "Font size:" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "파일 이름이 너무 깁니다 (최대 255바이트)" + "value" : "글꼴 크기:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dosya adı çok uzun (maks. 255 bayt)" + "value" : "Yazı tipi boyutu:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên tệp quá dài (tối đa 255 byte)" + "value" : "Cỡ chữ:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "文件名过长(最大 255 字节)" + "value" : "字体大小:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "檔案名稱過長(最多 255 位元組)" + "value" : "字型大小:" } } } }, - "Fill" : { + "Font:" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "채우기" + "value" : "글꼴:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Doldur" + "value" : "Yazı Tipi:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Điền" + "value" : "Phông chữ:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "填充" + "value" : "字体:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "填入" + "value" : "字型:" } } } }, - "Fill Column" : { + "Fonts" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열 채우기" + "value" : "글꼴" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sütunu Doldur" + "value" : "Yazı Tipleri" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Điền cột" + "value" : "Phông chữ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "填充列" + "value" : "字体" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "填入欄位" + "value" : "字型" } } } }, - "Fill column \"%@\"" : { + "For a metered path on Anthropic's commercial terms, add the Claude provider with an API key instead." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "\"%@\" 열 채우기" + "value" : "Anthropic의 상용 약관에 따른 종량제 방식을 이용하려면 대신 API 키를 사용해 Claude 제공자를 추가하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "\"%@\" sütununu doldur" + "value" : "Anthropic'in ticari koşullarıyla kullanım başına ödemeli bir yol için bunun yerine Claude sağlayıcısını bir API anahtarıyla ekleyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Điền cột \"%@\"" + "value" : "Nếu muốn cách tính phí theo mức dùng theo điều khoản thương mại của Anthropic, hãy thêm nhà cung cấp Claude bằng khóa API." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "填充列 \"%@\"" + "value" : "若想走 Anthropic 商业条款下的按量计费路径,请改为添加带 API 密钥的 Claude 提供方。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "填入欄位「%@」" + "value" : "若想走 Anthropic 商業條款下的按量計費路徑,請改為新增帶 API 金鑰的 Claude 供應商。" } } } }, - "Fill Column…" : { + "Foreign Keys" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열 채우기…" + "value" : "외래 키" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sütunu Doldur…" + "value" : "Yabancı Anahtarlar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Điền cột…" + "value" : "Khóa ngoại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "填充列…" + "value" : "外键" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "填入欄位…" + "value" : "外鍵" } } } }, - "Filter" : { + "Foreign Table" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터" + "value" : "외부 테이블" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtre" + "value" : "Dış Tablo" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bộ lọc" + "value" : "Foreign Table" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "筛选" + "value" : "外部表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "篩選" + "value" : "外部資料表" } } } }, - "Filter activity" : { + "Foreign Tables" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "활동 필터링" + "value" : "외부 테이블" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Etkinliği filtrele" + "value" : "Dış Tablolar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lọc hoạt động" + "value" : "Foreign Tables" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "筛选活动" + "value" : "外部表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "篩選活動" + "value" : "外部資料表" } } } }, - "Filter by name" : { - + "Foreign key %@ matches %@ on the target but the names differ." : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Foreign key %1$@ matches %2$@ on the target but the names differ." + } + }, + "ko" : { + "stringUnit" : { + "value" : "외래 키 %@은(는) 대상의 %@과(와) 일치하지만 이름이 다릅니다.", + "state" : "translated" + } + } + } }, - "Filter by only this row" : { - "extractionState" : "stale", + "Forever" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 행만 기준으로 필터링" + "value" : "무기한" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yalnızca bu satıra göre filtrele" + "value" : "Süresiz" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chỉ lọc theo hàng này" + "value" : "Mãi mãi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "仅按此行筛选" + "value" : "永久" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "僅依此列篩選" + "value" : "永久" } } } }, - "Filter column" : { + "Forget" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열 필터링" + "value" : "신뢰 해제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtre sütunu" + "value" : "Unut" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cột lọc" + "value" : "Quên" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "筛选列" + "value" : "忘记" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "篩選欄位" + "value" : "忘記" } } } }, - "Filter column: %@" : { - "extractionState" : "stale", + "Forget All" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열 필터링: %@" + "value" : "모두 신뢰 해제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtre sütunu: %@" + "value" : "Tümünü Unut" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cột lọc: %@" + "value" : "Quên tất cả" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "筛选列: %@" + "value" : "全部忘记" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "篩選欄位:%@" + "value" : "全部忘記" } } } }, - "Filter databases" : { + "Format JSON" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 필터링" + "value" : "JSON 서식 지정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanlarını filtrele" + "value" : "JSON Biçimlendir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lọc cơ sở dữ liệu" + "value" : "Định dạng JSON" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "筛选数据库" + "value" : "格式化 JSON" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "篩選資料庫" + "value" : "格式化 JSON" } } } }, - "Filter Databases…" : { + "Format Query" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 필터링…" + "value" : "쿼리 서식 지정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanlarını Filtrele…" + "value" : "Sorguyu Biçimlendir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lọc cơ sở dữ liệu…" + "value" : "Định dạng truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "筛选数据库…" + "value" : "格式化查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "篩選資料庫…" + "value" : "格式化查詢" } } } }, - "Filter favorites" : { + "Format Query (⇧⌘L)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "즐겨찾기 필터링" + "value" : "쿼리 서식 지정 (⇧⌘L)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtre sık kullanılanları" + "value" : "Sorguyu Biçimlendir (⇧⌘L)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lọc yêu thích" + "value" : "Định dạng truy vấn (⇧⌘L)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "筛选收藏" + "value" : "格式化查询 (⇧⌘L)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "篩選我的最愛" + "value" : "格式化查詢 (⇧⌘L)" } } } }, - "Filter keys or values…" : { + "Format Query (⌥⌘F)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "키 또는 값 필터링…" + "value" : "쿼리 서식 지정 (⌥⌘F)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Anahtar veya değerleri filtrele…" + "value" : "Sorguyu Biçimlendir (⌥⌘F)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lọc khoá hoặc giá trị…" + "value" : "Định dạng truy vấn (⌥⌘F)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "筛选键或值…" + "value" : "格式化查询 (⌥⌘F)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "篩選鍵或值…" + "value" : "格式化查詢 (⌥⌘F)" } } } }, - "Filter logic mode" : { + "Format SQL" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터 논리 모드" + "value" : "SQL 서식 지정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtre mantık modu" + "value" : "SQL Biçimlendir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chế độ logic bộ lọc" + "value" : "Định dạng SQL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "筛选逻辑模式" + "value" : "格式化 SQL" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "篩選邏輯模式" + "value" : "格式化 SQL" } } } }, - "Filter objects" : { + "Format:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "객체 필터링" + "value" : "형식:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Nesneleri filtrele" + "value" : "Biçim:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lọc đối tượng" + "value" : "Định dạng:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "筛选对象" + "value" : "格式:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "篩選物件" + "value" : "格式:" } } } }, - "Filter on a nested field path" : { - - }, - "Filter operator" : { + "Formatter error: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터 연산자" + "value" : "포맷터 오류: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtre operatörü" + "value" : "Biçimlendirici hatası: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Toán tử lọc" + "value" : "Lỗi định dạng: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "筛选运算符" + "value" : "格式化错误: %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "篩選運算子" + "value" : "格式化錯誤:%@" } } } }, - "Filter operator: %@" : { - "extractionState" : "stale", + "Formatting not supported for %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터 연산자: %@" + "value" : "%@의 서식 지정은 지원되지 않습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtre operatörü: %@" + "value" : "%@ için biçimlendirme desteklenmiyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Toán tử lọc: %@" + "value" : "Không hỗ trợ định dạng cho %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "筛选运算符: %@" + "value" : "不支持 %@ 的格式化" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "篩選運算子:%@" + "value" : "不支援 %@ 的格式化" } } } }, - "Filter options" : { + "Forward" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터 옵션" + "value" : "앞으로" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtre seçenekleri" + "value" : "İleri" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tùy chọn bộ lọc" + "value" : "Tiến tới" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "筛选选项" + "value" : "前进" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "篩選選項" + "value" : "前進" } } } }, - "Filter presets" : { - "extractionState" : "stale", + "From %@…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터 프리셋" + "value" : "%@에서…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtre ön ayarları" + "value" : "%@ Kaynağından…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cài đặt sẵn bộ lọc" + "value" : "Từ %@…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "筛选预设" + "value" : "从 %@…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "篩選預設組" + "value" : "從 %@…" } } } }, - "Filter privileges" : { + "Full Access" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "권한 필터링" + "value" : "전체 접근 권한" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yetkileri filtrele" + "value" : "Tam Erişim" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lọc quyền" + "value" : "Toàn quyền" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "筛选权限" + "value" : "完全访问" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "篩選權限" + "value" : "完整存取" } } } }, - "Filter roles" : { + "Full access including destructive DDL after explicit confirmation." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "역할 필터링" + "value" : "명시적으로 확인한 후 파괴적인 DDL까지 허용하는 전체 접근 권한입니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Rolleri filtrele" + "value" : "Açık onay sonrası yıkıcı DDL dahil tam erişim." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lọc vai trò" + "value" : "Toàn quyền bao gồm DDL phá hủy sau khi xác nhận rõ ràng." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "筛选角色" + "value" : "完全访问,包含需要明确确认的破坏性 DDL。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "篩選角色" + "value" : "完整存取,包含需明確確認的破壞性 DDL。" } } } }, - "Filter settings" : { - "extractionState" : "stale", + "Function" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터 설정" + "value" : "함수" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtre ayarları" + "value" : "Fonksiyon" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cài đặt bộ lọc" + "value" : "Hàm" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "筛选设置" + "value" : "函数" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "篩選設定" + "value" : "函式" } } } }, - "Filter Settings" : { - "extractionState" : "stale", + "Function: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터 설정" + "value" : "함수: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtre Ayarları" + "value" : "İşlev: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cài đặt bộ lọc" + "value" : "Hàm: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "筛选设置" + "value" : "函数:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "篩選設定" + "value" : "函式:%@" } } } }, - "Filter Settings…" : { + "Functions" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터 설정…" + "value" : "함수" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtre Ayarları…" + "value" : "İşlevler" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cài đặt bộ lọc…" + "value" : "Hàm" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "筛选设置…" + "value" : "函数" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "篩選設定…" + "value" : "函式" } } } }, - "Filter value" : { + "General" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터 값" + "value" : "일반" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtre değeri" + "value" : "Genel" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giá trị lọc" + "value" : "Tổng quát" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "筛选值" + "value" : "通用" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "篩選值" + "value" : "一般" } } } }, - "Filter Values…" : { + "Generate" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "값 필터링…" + "value" : "생성" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Değerleri Filtrele…" + "value" : "Oluştur" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lọc giá trị…" + "value" : "Tạo" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "筛选值…" + "value" : "生成" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "篩選值…" + "value" : "產生" } } } }, - "Filter with column" : { + "Generate Script" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "스크립트 생성", + "state" : "translated" + } + } + } + }, + "Generate Token" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열로 필터링" + "value" : "토큰 생성" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sütunla filtrele" + "value" : "Token Oluştur" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lọc theo cột" + "value" : "Tạo token" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "按列筛选" + "value" : "生成令牌" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "依欄位篩選" + "value" : "產生權杖" } } } }, - "Filter…" : { + "Generate a token so external clients can connect with their own credentials." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터링…" + "value" : "외부 클라이언트가 자체 자격 증명으로 연결할 수 있도록 토큰을 생성합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtre…" + "value" : "Harici istemcilerin kendi kimlik bilgileriyle bağlanabilmesi için bir token oluşturun." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lọc…" + "value" : "Tạo token để client bên ngoài có thể kết nối bằng thông tin xác thực của riêng họ." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "筛选…" + "value" : "生成令牌,让外部客户端使用自己的凭据进行连接。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "篩選…" + "value" : "產生權杖,讓外部用戶端可使用自己的憑證連線。" } } } }, - "Filtered" : { + "Generate the script first." : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "먼저 스크립트를 생성하십시오.", + "state" : "translated" + } + } + } + }, + "Generate the script to see exactly what would run." : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "무엇이 실행될지 정확히 보려면 스크립트를 생성하십시오.", + "state" : "translated" + } + } + } + }, + "Generate token" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터링됨" + "value" : "토큰 생성" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtrelendi" + "value" : "Token oluştur" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã lọc" + "value" : "Tạo token" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已筛选" + "value" : "生成令牌" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已篩選" + "value" : "產生權杖" } } } }, - "Filtered to %lld of %lld ^[rows](inflect: true)" : { + "Generated WHERE Clause" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%lld / %lld개 행으로 필터됨" + "value" : "생성된 WHERE 절" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%lld / %lld satır filtrelendi" + "value" : "Oluşturulan WHERE Koşulu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã lọc còn %lld trên %lld hàng" + "value" : "Mệnh đề WHERE đã tạo" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已筛选 %lld / %lld 行" + "value" : "生成的 WHERE 子句" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已篩選 %lld / %lld 列" + "value" : "產生的 WHERE 子句" } } } - }, - "Filtering by only this row" : { - "extractionState" : "stale", + }, + "Generation failed." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 행만 기준으로 필터링 중" + "value" : "생성하지 못했습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yalnızca bu satıra göre filtreleniyor" + "value" : "Oluşturma başarısız." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang chỉ lọc theo hàng này" + "value" : "Tạo phản hồi thất bại." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在仅按此行筛选" + "value" : "生成失败。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在僅依此列篩選" + "value" : "產生失敗。" } } } }, - "Filters" : { + "Get Connection Status" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터" + "value" : "연결 상태 확인" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtreler" + "value" : "Bağlantı Durumunu Al" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bộ lọc" + "value" : "Lấy trạng thái kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "筛选条件" + "value" : "获取连接状态" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "篩選條件" + "value" : "取得連線狀態" } } } }, - "Filters combined with 'logic'" : { - - }, - "Find" : { + "Get Started" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "찾기" + "value" : "시작하기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bul" + "value" : "Başlayın" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tìm" + "value" : "Bắt đầu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "查找" + "value" : "开始使用" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "尋找" - } - } - } - }, - "Find in loaded rows" : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "불러온 행에서 찾기" + "value" : "開始使用" } } } }, - "Find Next" : { + "Get Table DDL" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다음 찾기" + "value" : "테이블 DDL 가져오기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sonrakini Bul" + "value" : "Tablo DDL'sini Al" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tìm tiếp theo" + "value" : "Lấy DDL của bảng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "查找下一个" + "value" : "获取表 DDL" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "尋找下一個" + "value" : "取得資料表 DDL" } } } }, - "Find Previous" : { + "Get detailed status for a specific database connection." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이전 찾기" + "value" : "특정 데이터베이스 연결의 상세 상태를 가져옵니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Öncekini Bul" + "value" : "Belirli bir veritabanı bağlantısının ayrıntılı durumunu alır." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tìm trước đó" + "value" : "Lấy trạng thái chi tiết của một kết nối cơ sở dữ liệu cụ thể." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "查找上一个" + "value" : "获取特定数据库连接的详细状态。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "尋找上一個" + "value" : "取得特定資料庫連線的詳細狀態。" } } } }, - "Find tables and columns whose name contains a substring, so a column can be located without describing every table." : { - - }, - "Find this on the instance's overview page in the Google Cloud console." : { + "Get detailed status of a database connection" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Google Cloud 콘솔에서 인스턴스의 개요 페이지를 열어 확인하십시오." + "value" : "데이터베이스 연결의 상세 상태 가져오기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bunu Google Cloud konsolunda örneğin genel bakış sayfasında bulabilirsiniz." + "value" : "Bir veritabanı bağlantısının ayrıntılı durumunu al" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bạn tìm thấy giá trị này ở trang tổng quan của instance trong Google Cloud console." + "value" : "Lấy trạng thái chi tiết của một kết nối cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "可在 Google Cloud 控制台中该实例的概览页面找到。" + "value" : "获取数据库连接的详细状态" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "可在 Google Cloud 主控台中該執行個體的總覽頁面找到。" + "value" : "取得資料庫連線的詳細狀態" } } } }, - "Find…" : { + "Get detailed table structure: columns, indexes, foreign keys, and DDL" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "찾기…" + "value" : "열, 인덱스, 외래 키 및 DDL을 포함한 상세 테이블 구조 가져오기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bul…" + "value" : "Ayrıntılı tablo yapısını al: sütunlar, indeksler, yabancı anahtarlar ve DDL" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tìm…" + "value" : "Lấy cấu trúc bảng chi tiết: cột, index, khóa ngoại và DDL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "查找…" + "value" : "获取详细的表结构:列、索引、外键和 DDL" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "尋找…" + "value" : "取得詳細的資料表結構:欄位、索引、外鍵和 DDL" } } } }, - "Finish Signing In" : { + "Get help writing queries, explaining schemas, or fixing errors." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "로그인 마치기" + "value" : "쿼리 작성, 스키마 설명 또는 오류 수정에 관한 도움을 받습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Oturum Açmayı Tamamla" + "value" : "Sorgu yazma, şema açıklama veya hata düzeltme konusunda yardım alın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hoàn tất đăng nhập" + "value" : "Nhận trợ giúp viết truy vấn, giải thích schema hoặc sửa lỗi." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "完成登录" + "value" : "获取编写查询、解释 Schema 或修复错误方面的帮助。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "完成登入" + "value" : "取得撰寫查詢、解釋綱要或修正錯誤的協助。" } } } }, - "Finished" : { - - }, - "First column" : { + "Get intelligent SQL suggestions and query assistance" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "첫 번째 열" + "value" : "지능형 SQL 제안 및 쿼리 지원 받기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İlk sütun" + "value" : "Akıllı SQL önerileri ve sorgu yardımı alın" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cột đầu tiên" + "value" : "Nhận gợi ý SQL thông minh và hỗ trợ truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "第一列" + "value" : "获取智能 SQL 建议和查询辅助" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "第一欄" + "value" : "取得智慧 SQL 建議與查詢輔助" } } } }, - "First page" : { + "Get the CREATE TABLE DDL statement for a table" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "첫 페이지" + "value" : "테이블의 CREATE TABLE DDL 문 가져오기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İlk sayfa" + "value" : "Bir tablonun CREATE TABLE DDL deyimini al" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trang đầu" + "value" : "Lấy câu lệnh DDL CREATE TABLE của một bảng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "第一页" + "value" : "获取表的 CREATE TABLE DDL 语句" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "第一頁" + "value" : "取得資料表的 CREATE TABLE DDL 陳述式" } } } }, - "First Page" : { + "Get the DDL (CREATE statement) for a table." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "첫 페이지" + "value" : "테이블의 DDL(CREATE 문)을 가져옵니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İlk Sayfa" + "value" : "Bir tablonun DDL'sini (CREATE deyimi) alır." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trang đầu" + "value" : "Lấy DDL (câu lệnh CREATE) của một bảng." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "第一页" + "value" : "获取表的 DDL(CREATE 语句)。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "第一頁" + "value" : "取得資料表的 DDL(CREATE 陳述式)。" } } } }, - "Fit to Window" : { + "GitHub Repository" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "윈도우에 맞추기" + "value" : "GitHub 저장소" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Pencereye Sığdır" + "value" : "GitHub Deposu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Vừa cửa sổ" + "value" : "Kho GitHub" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "适合窗口" + "value" : "GitHub 仓库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "符合視窗" + "value" : "GitHub 儲存庫" } } } }, - "Fix Error" : { - "extractionState" : "stale", + "Global" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "오류 수정" + "value" : "전역" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Hatayı Düzelt" + "value" : "Genel" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sửa lỗi" + "value" : "Toàn cục" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "修复错误" + "value" : "全局" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "修正錯誤" + "value" : "全域" } } } }, - "Fix the last error on the current query" : { + "Global:" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "현재 쿼리의 마지막 오류 수정" + "value" : "전역:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geçerli sorgudaki son hatayı düzelt" + "value" : "Genel:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sửa lỗi gần nhất của truy vấn hiện tại" + "value" : "Chung:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "修复当前查询的最后一个错误" + "value" : "全局:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "修正目前查詢的最後一個錯誤" + "value" : "全域:" } } } }, - "Fix with AI" : { + "Go" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "AI로 수정" + "value" : "이동" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yapay Zeka ile Düzelt" + "value" : "Go" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sửa bằng AI" + "value" : "Đi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "用 AI 修复" + "value" : "前往" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "用 AI 修正" + "value" : "前往" } } } }, - "Flattened plan text" : { - - }, - "Focus an already-open tab by id (returned from list_recent_tabs)." : { - "extractionState" : "stale", + "Go to Settings…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이미 열려 있는 탭에 ID로 포커스를 맞춥니다(list_recent_tabs에서 반환)." + "value" : "설정으로 이동…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Zaten açık bir sekmeye id ile odaklanır (list_recent_tabs tarafından döndürülür)." + "value" : "Ayarlar'a git…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển đến một tab đang mở theo id (trả về từ list_recent_tabs)." + "value" : "Đi đến Cài đặt…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "按 id 聚焦已打开的标签页(id 由 list_recent_tabs 返回)。" + "value" : "前往设置…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "依 id 聚焦已開啟的分頁(id 由 list_recent_tabs 回傳)。" + "value" : "前往設定…" } } } }, - "Focus Border" : { + "Go to page" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "포커스 테두리" + "value" : "페이지로 이동" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Odak Kenarlığı" + "value" : "Sayfaya git" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Viền khi chọn" + "value" : "Đi đến trang" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "焦点边框" + "value" : "跳转到指定页" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "焦點邊框" + "value" : "跳至指定頁" } } } }, - "Focus Query Tab" : { - "extractionState" : "stale", + "Google Cloud serverless data warehouse" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 탭에 포커스" + "value" : "Google Cloud 서버리스 데이터 웨어하우스" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgu Sekmesine Odaklan" + "value" : "Google Cloud sunucusuz veri ambarı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển đến tab truy vấn" + "value" : "Kho dữ liệu serverless của Google Cloud" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "聚焦查询标签页" + "value" : "Google Cloud 无服务器数据仓库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "聚焦查詢分頁" + "value" : "Google Cloud 無伺服器資料倉儲" } } } }, - "Focus Sidebar Filter" : { + "Got Slower" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사이드바 필터에 포커스" + "value" : "느려진 쿼리" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sidebar Filtresine Odaklan" + "value" : "Yavaşladı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển đến bộ lọc thanh bên" + "value" : "Chậm đi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "聚焦侧边栏筛选" + "value" : "变慢了" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "聚焦側邊欄篩選" + "value" : "變慢了" } } } }, - "Focus Tab" : { - - }, - "Focus the query editor to insert" : { - "extractionState" : "stale", + "Grant %1$@ on %2$@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "삽입할 쿼리 편집기에 포커스" + "value" : "%1$@ 권한을 %2$@에 부여" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklemek için sorgu düzenleyicisine odaklanın" + "value" : "%2$@ üzerinde %1$@ ver" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển đến trình soạn thảo truy vấn để chèn" + "value" : "Cấp %1$@ trên %2$@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "聚焦查询编辑器以插入" + "value" : "在 %2$@ 上授予 %1$@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "聚焦查詢編輯器以插入" + "value" : "在 %2$@ 上授予 %1$@" } } } }, - "Fold" : { - - }, - "Fold All" : { - - }, - "Folder" : { + "Grant All" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "폴더" + "value" : "모든 권한 부여" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Klasör" + "value" : "Tümünü Ver" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thư mục" + "value" : "Cấp tất cả" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "文件夹" + "value" : "全部授予" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料夾" + "value" : "全部授予" } } } }, - "Folder name" : { - "extractionState" : "stale", + "Grant privileges to %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "폴더 이름" + "value" : "%@에 권한 부여" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Klasör adı" + "value" : "%@ hesabına yetki ver" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên thư mục" + "value" : "Cấp quyền cho %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "文件夹名称" + "value" : "向 %@ 授予权限" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料夾名稱" + "value" : "向 %@ 授予權限" } } } }, - "Follow-up on step %d \"%@\" (%@): %@" : { + "Granted" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Follow-up on step %1$d \"%2$@\" (%3$@): %4$@" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "단계 %1$d \"%2$@\"(%3$@)에 대한 후속 조치: %4$@" + "value" : "부여됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%1$d. adım için ek soru \"%2$@\" (%3$@): %4$@" + "value" : "Verildi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hỏi thêm về bước %1$d \"%2$@\" (%3$@): %4$@" + "value" : "Đã cấp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "关于第 %1$d 步的追问 \"%2$@\"(%3$@):%4$@" + "value" : "已授予" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "關於第 %1$d 步的追問「%2$@」(%3$@):%4$@" + "value" : "已授予" } } } }, - "Font" : { - "extractionState" : "stale", + "Granted on %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "글꼴" + "value" : "%@에 부여됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yazı Tipi" + "value" : "%@ üzerinde verildi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phông chữ" + "value" : "Đã cấp trên %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "字体" + "value" : "已在 %@ 上授予" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "字型" + "value" : "已在 %@ 上授予" } } } }, - "Font size:" : { + "Graphite" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "글꼴 크기:" + "value" : "그래파이트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yazı tipi boyutu:" + "value" : "Graphite" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cỡ chữ:" + "value" : "Than chì" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "字体大小:" + "value" : "石墨" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "字型大小:" + "value" : "石墨" } } } }, - "Font:" : { - "extractionState" : "stale", + "Gray" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "글꼴:" + "value" : "회색" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yazı Tipi:" + "value" : "Gri" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phông chữ:" + "value" : "Xám" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "字体:" + "value" : "灰色" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "字型:" + "value" : "灰色" } } } }, - "Fonts" : { + "Green" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "글꼴" + "value" : "녹색" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yazı Tipleri" + "value" : "Yeşil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phông chữ" + "value" : "Xanh lá" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "字体" + "value" : "绿色" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "字型" + "value" : "綠色" } } } }, - "For a metered path on Anthropic's commercial terms, add the Claude provider with an API key instead." : { + "Group" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Anthropic의 상용 약관에 따른 종량제 방식을 이용하려면 대신 API 키를 사용해 Claude 제공자를 추가하십시오." + "value" : "그룹" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Anthropic'in ticari koşullarıyla kullanım başına ödemeli bir yol için bunun yerine Claude sağlayıcısını bir API anahtarıyla ekleyin." + "value" : "Grup" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nếu muốn cách tính phí theo mức dùng theo điều khoản thương mại của Anthropic, hãy thêm nhà cung cấp Claude bằng khóa API." + "value" : "Nhóm" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "若想走 Anthropic 商业条款下的按量计费路径,请改为添加带 API 密钥的 Claude 提供方。" + "value" : "分组" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "若想走 Anthropic 商業條款下的按量計費路徑,請改為新增帶 API 金鑰的 Claude 供應商。" + "value" : "群組" } } } }, - "Foreign key %@ matches %@ on the target but the names differ." : { + "Group By" : { "localizations" : { - "en" : { + "ko" : { "stringUnit" : { - "state" : "new", - "value" : "Foreign key %1$@ matches %2$@ on the target but the names differ." + "value" : "그룹화 기준", + "state" : "translated" } } } }, - "Foreign Keys" : { + "Group name" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "외래 키" + "value" : "그룹 이름" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yabancı Anahtarlar" + "value" : "Grup adı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khóa ngoại" + "value" : "Tên nhóm" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "外键" + "value" : "分组名称" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "外鍵" + "value" : "群組名稱" } } } }, - "Foreign keys the table declares" : { - + "Group results by difference or object type" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "차이점 또는 객체 유형으로 결과 그룹화", + "state" : "translated" + } + } + } }, - "Foreign Table" : { + "Group: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "외부 테이블" + "value" : "그룹: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dış Tablo" + "value" : "Grup: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Foreign Table" + "value" : "Nhóm: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "外部表" + "value" : "分组:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "外部資料表" + "value" : "群組:%@" } } } }, - "Foreign Tables" : { + "Groups & Tags:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "외부 테이블" + "value" : "그룹 및 태그:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dış Tablolar" + "value" : "Gruplar ve Etiketler:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Foreign Tables" + "value" : "Nhóm & thẻ:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "外部表" + "value" : "分组与标签:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "外部資料表" + "value" : "群組與標籤:" } } } }, - "Forever" : { + "Has Differences" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "차이 있음", + "state" : "translated" + } + } + } + }, + "Has unsaved changes" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "무기한" + "value" : "저장하지 않은 변경 사항 있음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Süresiz" + "value" : "Kaydedilmemiş değişiklikler var" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mãi mãi" + "value" : "Có thay đổi chưa lưu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "永久" + "value" : "有未保存的更改" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "永久" + "value" : "有未儲存的變更" } } } }, - "Forget" : { + "Held Back" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "보류됨", + "state" : "translated" + } + } + } + }, + "Held back" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "보류됨", + "state" : "translated" + } + } + } + }, + "Help" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "신뢰 해제" + "value" : "도움말" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Unut" + "value" : "Yardım" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Quên" + "value" : "Trợ giúp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "忘记" + "value" : "帮助" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "忘記" + "value" : "輔助說明" } } } }, - "Forget All" : { + "Help improve TablePro by sharing anonymous usage statistics (no personal data or queries)." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모두 신뢰 해제" + "value" : "개인 데이터나 쿼리는 제외하고 익명의 사용 통계를 공유하여 TablePro 개선에 도움을 주십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tümünü Unut" + "value" : "Anonim kullanım istatistiklerini paylaşarak TablePro'nun gelişmesine yardımcı olun (kişisel veri veya sorgu yok)." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Quên tất cả" + "value" : "Giúp cải thiện TablePro bằng cách chia sẻ thống kê sử dụng ẩn danh (không có dữ liệu cá nhân hay truy vấn nào)." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "全部忘记" + "value" : "通过分享匿名使用统计数据帮助改进 TablePro(不包含个人数据或查询内容)。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "全部忘記" + "value" : "分享匿名使用統計協助改善 TablePro(不含個人資料或查詢內容)。" } } } }, - "Format JSON" : { - "extractionState" : "stale", + "Hex bytes" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "JSON 서식 지정" + "value" : "16진수 바이트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "JSON Biçimlendir" + "value" : "Hex bayt" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Định dạng JSON" + "value" : "Byte dạng Hex" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "格式化 JSON" + "value" : "十六进制字节" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "格式化 JSON" + "value" : "十六進位位元組" } } } }, - "Format Query" : { + "Hide All" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 서식 지정" + "value" : "모두 가리기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorguyu Biçimlendir" + "value" : "Tümünü Gizle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Định dạng truy vấn" + "value" : "Ẩn tất cả" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "格式化查询" + "value" : "隐藏全部" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "格式化查詢" + "value" : "全部隱藏" } } } }, - "Format Query (⇧⌘L)" : { - "extractionState" : "stale", + "Hide Column" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 서식 지정 (⇧⌘L)" + "value" : "열 가리기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorguyu Biçimlendir (⇧⌘L)" + "value" : "Sütunu Gizle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Định dạng truy vấn (⇧⌘L)" + "value" : "Ẩn cột" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "格式化查询 (⇧⌘L)" + "value" : "隐藏列" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "格式化查詢 (⇧⌘L)" + "value" : "隱藏欄位" } } } }, - "Format Query (⌥⌘F)" : { - "extractionState" : "stale", + "Hide Connections" : { + "comment" : "Title of the menu item that hides the sidebar rail.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 서식 지정 (⌥⌘F)" + "value" : "연결 가리기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorguyu Biçimlendir (⌥⌘F)" + "value" : "Bağlantıları Gizle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Định dạng truy vấn (⌥⌘F)" + "value" : "Ẩn kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "格式化查询 (⌥⌘F)" + "value" : "隐藏连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "格式化查詢 (⌥⌘F)" + "value" : "隱藏連線" } } } }, - "Format SQL" : { + "Hide Filter Bar" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SQL 서식 지정" + "value" : "필터 막대 가리기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SQL Biçimlendir" + "value" : "Filtre Çubuğunu Gizle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Định dạng SQL" + "value" : "Ẩn thanh bộ lọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "格式化 SQL" + "value" : "隐藏筛选栏" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "格式化 SQL" + "value" : "隱藏篩選列" } } } }, - "Format that was produced" : { - - }, - "Format:" : { + "Hide Inspector" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "형식:" + "value" : "인스펙터 가리기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Biçim:" + "value" : "Denetçiyi Gizle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Định dạng:" + "value" : "Ẩn thanh kiểm tra" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "格式:" + "value" : "隐藏检查器" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "格式:" + "value" : "隱藏檢閱器" } } } }, - "Formatted duration" : { - - }, - "Formatter error: %@" : { + "Hide Others" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "포맷터 오류: %@" + "value" : "기타 가리기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Biçimlendirici hatası: %@" + "value" : "Diğerlerini Gizle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lỗi định dạng: %@" + "value" : "Ẩn các mục khác" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "格式化错误: %@" + "value" : "隐藏其他" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "格式化錯誤:%@" + "value" : "隱藏其他" } } } }, - "Formatting not supported for %@" : { + "Hide Query History" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@의 서식 지정은 지원되지 않습니다" + "value" : "쿼리 기록 가리기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ için biçimlendirme desteklenmiyor" + "value" : "Sorgu Geçmişini Gizle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không hỗ trợ định dạng cho %@" + "value" : "Ẩn lịch sử truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "不支持 %@ 的格式化" + "value" : "隐藏查询历史" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "不支援 %@ 的格式化" + "value" : "隱藏查詢歷史" } } } }, - "Forward" : { + "Hide Results" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "앞으로" + "value" : "결과 가리기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İleri" + "value" : "Sonuçları Gizle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tiến tới" + "value" : "Ẩn kết quả" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "前进" + "value" : "隐藏结果" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "前進" + "value" : "隱藏結果" } } } }, - "From %@…" : { + "Hide Sidebar" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@에서…" + "value" : "사이드바 가리기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ Kaynağından…" + "value" : "Kenar Çubuğunu Gizle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Từ %@…" + "value" : "Ẩn thanh bên" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "从 %@…" + "value" : "隐藏侧边栏" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "從 %@…" + "value" : "隱藏側邊欄" } } } }, - "FULL (rewrites entire table, blocks access)" : { + "Hide TablePro" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "FULL(전체 테이블을 다시 쓰며 접근을 차단함)" + "value" : "TablePro 가리기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "FULL (tüm tabloyu yeniden yazar, erişimi engeller)" + "value" : "TablePro'yu Gizle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "FULL (ghi lại toàn bộ bảng, chặn truy cập)" + "value" : "Ẩn TablePro" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "FULL(重写整个表,阻止访问)" + "value" : "隐藏 TablePro" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "FULL(重寫整個資料表,封鎖存取)" + "value" : "隱藏 TablePro" } } } }, - "Full Access" : { + "Hide Workspace Rail" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "전체 접근 권한" + "value" : "워크스페이스 레일 가리기" } }, "tr" : { "stringUnit" : { - "state" : "translated", - "value" : "Tam Erişim" + "state" : "needs_review", + "value" : "Çalışma Alanı Şeridini Gizle" } }, "vi" : { "stringUnit" : { - "state" : "translated", - "value" : "Toàn quyền" + "state" : "needs_review", + "value" : "Ẩn thanh không gian làm việc" } }, "zh-Hans" : { "stringUnit" : { - "state" : "translated", - "value" : "完全访问" + "state" : "needs_review", + "value" : "隐藏工作区栏" } }, "zh-Hant" : { "stringUnit" : { - "state" : "translated", - "value" : "完整存取" + "state" : "needs_review", + "value" : "隱藏工作區列" } } } }, - "Full access including destructive DDL after explicit confirmation." : { + "Hide token" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "명시적으로 확인한 후 파괴적인 DDL까지 허용하는 전체 접근 권한입니다." + "value" : "토큰 가리기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Açık onay sonrası yıkıcı DDL dahil tam erişim." + "value" : "Token gizle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Toàn quyền bao gồm DDL phá hủy sau khi xác nhận rõ ràng." + "value" : "Ẩn token" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "完全访问,包含需要明确确认的破坏性 DDL。" + "value" : "隐藏令牌" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "完整存取,包含需明確確認的破壞性 DDL。" + "value" : "隱藏權杖" } } } }, - "Full CREATE TRIGGER statement" : { - - }, - "Function" : { + "High" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "함수" + "value" : "높음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Fonksiyon" + "value" : "Yüksek" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hàm" + "value" : "Cao" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "函数" + "value" : "高" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "函式" + "value" : "高" } } } }, - "Function: %@" : { + "High cost" : { + "comment" : "Accessibility label for a query plan severity of high cost.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "함수: %@" + "value" : "높은 비용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İşlev: %@" + "value" : "Yüksek maliyet" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hàm: %@" + "value" : "Chi phí cao" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "函数:%@" + "value" : "高成本" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "函式:%@" + "value" : "高成本" } } } }, - "Functions" : { + "Higher values create fewer INSERT statements, resulting in smaller files and faster imports" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "함수" + "value" : "값이 클수록 INSERT 문 수가 줄어들어 파일이 작아지고 가져오기가 빨라집니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İşlevler" + "value" : "Daha yüksek değerler daha az INSERT ifadesi oluşturur, daha küçük dosyalar ve daha hızlı içe aktarma sağlar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hàm" + "value" : "Giá trị cao hơn tạo ít câu lệnh INSERT hơn, giúp tệp nhỏ hơn và nhập nhanh hơn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "函数" + "value" : "值越大,生成的 INSERT 语句越少,文件更小,导入更快" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "函式" + "value" : "值越大,產生的 INSERT 陳述式越少,檔案更小且匯入更快" } } } }, - "General" : { + "Highlight current line" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "일반" + "value" : "현재 줄 강조" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Genel" + "value" : "Mevcut satırı vurgula" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tổng quát" + "value" : "Đánh dấu dòng hiện tại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "通用" + "value" : "高亮当前行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "一般" + "value" : "標示目前行" } } } }, - "Generate" : { + "Highlight current statement" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "생성" + "value" : "현재 문 강조" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Oluştur" + "value" : "Mevcut ifadeyi vurgula" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tạo" + "value" : "Đánh dấu câu lệnh hiện tại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "生成" + "value" : "高亮当前语句" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "產生" + "value" : "標示目前陳述式" } } } }, - "Generate a token so external clients can connect with their own credentials." : { + "History" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "외부 클라이언트가 자체 자격 증명으로 연결할 수 있도록 토큰을 생성합니다." + "value" : "기록" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Harici istemcilerin kendi kimlik bilgileriyle bağlanabilmesi için bir token oluşturun." + "value" : "Geçmiş" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tạo token để client bên ngoài có thể kết nối bằng thông tin xác thực của riêng họ." + "value" : "Lịch sử" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "生成令牌,让外部客户端使用自己的凭据进行连接。" + "value" : "历史记录" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "產生權杖,讓外部用戶端可使用自己的憑證連線。" + "value" : "歷程記錄" } } } }, - "Generate Script" : { - - }, - "Generate the script first." : { - - }, - "Generate the script to see exactly what would run." : { - - }, - "Generate token" : { + "History Limit:" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "토큰 생성" + "value" : "기록 제한:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Token oluştur" + "value" : "Geçmiş Limiti:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tạo token" + "value" : "Giới hạn lịch sử:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "生成令牌" + "value" : "历史记录上限:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "產生權杖" + "value" : "歷程記錄上限:" } } } }, - "Generate Token" : { + "History Unavailable" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "토큰 생성" + "value" : "기록을 사용할 수 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Token Oluştur" + "value" : "Geçmiş Kullanılamıyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tạo token" + "value" : "Không có lịch sử" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "生成令牌" + "value" : "历史不可用" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "產生權杖" + "value" : "記錄無法使用" } } } }, - "Generated WHERE Clause" : { + "Homepage" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "생성된 WHERE 절" + "value" : "홈페이지" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Oluşturulan WHERE Koşulu" + "value" : "Ana Sayfa" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mệnh đề WHERE đã tạo" + "value" : "Trang chủ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "生成的 WHERE 子句" + "value" : "主页" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "產生的 WHERE 子句" + "value" : "首頁" } } } }, - "Generation failed." : { + "Host" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "생성하지 못했습니다." + "value" : "호스트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Oluşturma başarısız." + "value" : "Sunucu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tạo phản hồi thất bại." + "value" : "Máy chủ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "生成失败。" + "value" : "主机" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "產生失敗。" + "value" : "主機" } } } }, - "Get Connection Status" : { + "Host and port assumed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 상태 확인" + "value" : "호스트와 포트로 간주됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı Durumunu Al" + "value" : "Sunucu ve port varsayıldı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lấy trạng thái kết nối" + "value" : "Máy chủ và cổng được suy đoán" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "获取连接状态" + "value" : "主机和端口为推测值" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "取得連線狀態" + "value" : "主機與連接埠為推測值" } } } }, - "Get Database Statistics" : { - - }, - "Get detailed status for a specific database connection." : { + "Host looks like a socket path" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "특정 데이터베이스 연결의 상세 상태를 가져옵니다." + "value" : "호스트가 소켓 경로인 것 같습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Belirli bir veritabanı bağlantısının ayrıntılı durumunu alır." + "value" : "Sunucu adı soket yoluna benziyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lấy trạng thái chi tiết của một kết nối cơ sở dữ liệu cụ thể." + "value" : "Máy chủ trông giống đường dẫn socket" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "获取特定数据库连接的详细状态。" + "value" : "主机看起来像 socket 路径" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "取得特定資料庫連線的詳細狀態。" + "value" : "主機看起來像 socket 路徑" } } } }, - "Get detailed status of a database connection" : { - "extractionState" : "stale", + "Host:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 연결의 상세 상태 가져오기" + "value" : "호스트:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bir veritabanı bağlantısının ayrıntılı durumunu al" + "value" : "Sunucu:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lấy trạng thái chi tiết của một kết nối cơ sở dữ liệu" + "value" : "Máy chủ:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "获取数据库连接的详细状态" + "value" : "主机:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "取得資料庫連線的詳細狀態" + "value" : "主機:" } } } }, - "Get detailed table structure: columns, indexes, foreign keys, and DDL" : { - "extractionState" : "stale", + "Host: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열, 인덱스, 외래 키 및 DDL을 포함한 상세 테이블 구조 가져오기" + "value" : "호스트: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ayrıntılı tablo yapısını al: sütunlar, indeksler, yabancı anahtarlar ve DDL" + "value" : "Sunucu: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lấy cấu trúc bảng chi tiết: cột, index, khóa ngoại và DDL" + "value" : "Máy chủ: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "获取详细的表结构:列、索引、外键和 DDL" + "value" : "主机:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "取得詳細的資料表結構:欄位、索引、外鍵和 DDL" + "value" : "主機:%@" } } } }, - "Get help writing queries, explaining schemas, or fixing errors." : { - "extractionState" : "stale", + "Hostname" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 작성, 스키마 설명 또는 오류 수정에 관한 도움을 받습니다." + "value" : "호스트 이름" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgu yazma, şema açıklama veya hata düzeltme konusunda yardım alın." + "value" : "Sunucu adı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhận trợ giúp viết truy vấn, giải thích schema hoặc sửa lỗi." + "value" : "Tên máy chủ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "获取编写查询、解释 Schema 或修复错误方面的帮助。" + "value" : "主机名" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "取得撰寫查詢、解釋綱要或修正錯誤的協助。" + "value" : "主機名稱" } } } }, - "Get intelligent SQL suggestions and query assistance" : { + "Hosts" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "지능형 SQL 제안 및 쿼리 지원 받기" + "value" : "호스트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Akıllı SQL önerileri ve sorgu yardımı alın" + "value" : "Sunucular" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhận gợi ý SQL thông minh và hỗ trợ truy vấn" + "value" : "Host" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "获取智能 SQL 建议和查询辅助" + "value" : "主机" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "取得智慧 SQL 建議與查詢輔助" + "value" : "主機" } } } }, - "Get Server Dashboard" : { - - }, - "Get Started" : { + "Hover" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "시작하기" + "value" : "호버" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Başlayın" + "value" : "Üzerine Gelme" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bắt đầu" + "value" : "Di chuột" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "开始使用" + "value" : "悬停" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開始使用" + "value" : "停留" } } } }, - "Get Table DDL" : { + "Huge" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 DDL 가져오기" + "value" : "아주 큼" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tablo DDL'sini Al" + "value" : "Çok Büyük" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lấy DDL của bảng" + "value" : "Rất lớn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "获取表 DDL" + "value" : "超大" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "取得資料表 DDL" + "value" : "超大" } } } }, - "Get Table Statistics" : { - - }, - "Get the CREATE TABLE DDL statement for a table" : { - "extractionState" : "stale", + "IN Clause" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블의 CREATE TABLE DDL 문 가져오기" + "value" : "IN 절" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bir tablonun CREATE TABLE DDL deyimini al" + "value" : "IN İfadesi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lấy câu lệnh DDL CREATE TABLE của một bảng" + "value" : "Mệnh đề IN" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "获取表的 CREATE TABLE DDL 语句" + "value" : "IN 子句" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "取得資料表的 CREATE TABLE DDL 陳述式" + "value" : "IN 子句" } } } }, - "Get the DDL (CREATE statement) for a table." : { + "INDEX" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블의 DDL(CREATE 문)을 가져옵니다." + "value" : "INDEX" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bir tablonun DDL'sini (CREATE deyimi) alır." + "value" : "İNDEKS" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lấy DDL (câu lệnh CREATE) của một bảng." + "value" : "CHỈ MỤC" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "获取表的 DDL(CREATE 语句)。" + "value" : "索引" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "取得資料表的 DDL(CREATE 陳述式)。" + "value" : "索引" } } } }, - "Get View Definition" : { - - }, - "GitHub Repository" : { + "INSERT Statement(s)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "GitHub 저장소" + "value" : "INSERT 문" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "GitHub Deposu" + "value" : "INSERT İfade(si)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kho GitHub" + "value" : "Câu lệnh INSERT" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "GitHub 仓库" + "value" : "INSERT 语句" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "GitHub 儲存庫" + "value" : "INSERT 陳述式" } } } }, - "global" : { + "ISO 8601 (2024-12-31 23:59:59)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "전역" + "value" : "ISO 8601 (2024-12-31 23:59:59)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "genel" + "value" : "ISO 8601 (2024-12-31 23:59:59)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "toàn cục" + "value" : "ISO 8601 (2024-12-31 23:59:59)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "全局" + "value" : "ISO 8601 (2024-12-31 23:59:59)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "全域" + "value" : "ISO 8601 (2024-12-31 23:59:59)" } } } }, - "Global" : { + "ISO Date (2024-12-31)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "전역" + "value" : "ISO 날짜 (2024-12-31)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Genel" + "value" : "ISO Tarih (2024-12-31)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Toàn cục" + "value" : "ISO ngày (2024-12-31)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "全局" + "value" : "ISO 日期 (2024-12-31)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "全域" + "value" : "ISO 日期 (2024-12-31)" } } } }, - "Global:" : { + "Icon Sizes" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "전역:" + "value" : "아이콘 크기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Genel:" + "value" : "Simge Boyutları" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chung:" + "value" : "Kích thước biểu tượng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "全局:" + "value" : "图标大小" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "全域:" + "value" : "圖示大小" } } } }, - "Go" : { + "Icons" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이동" + "value" : "아이콘" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Go" + "value" : "Simgeler" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đi" + "value" : "Biểu tượng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "前往" + "value" : "图标" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "前往" + "value" : "圖像" } } } }, - "Go to page" : { + "Identical" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "동일", + "state" : "translated" + } + } + } + }, + "Identifier case" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "식별자 대소문자", + "state" : "translated" + } + } + } + }, + "Identity" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "페이지로 이동" + "value" : "식별 정보" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sayfaya git" + "value" : "Kimlik" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đi đến trang" + "value" : "Danh tính" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "跳转到指定页" + "value" : "身份" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "跳至指定頁" + "value" : "身分" } } } }, - "Go to Settings…" : { + "If macOS asks for your login password, click Always Allow on each prompt." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "설정으로 이동…" + "value" : "macOS가 로그인 암호를 요청하면 각 메시지에서 '항상 허용'을 클릭하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ayarlar'a git…" + "value" : "macOS oturum açma parolanızı sorarsa her istemde Her Zaman İzin Ver'e tıklayın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đi đến Cài đặt…" + "value" : "Nếu macOS hỏi mật khẩu đăng nhập của bạn, hãy bấm Luôn cho phép ở mỗi lời nhắc." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "前往设置…" + "value" : "如果 macOS 要求输入登录密码,请在每个提示中点按“始终允许”。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "前往設定…" + "value" : "如果 macOS 要求輸入登入密碼,請在每個提示中點按「總是允許」。" } } } }, - "Google Cloud serverless data warehouse" : { + "If the SSH server asks for a verification code, TablePro prompts you for it when you connect." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Google Cloud 서버리스 데이터 웨어하우스" + "value" : "SSH 서버에서 확인 코드를 요청하면 연결할 때 TablePro가 코드 입력을 요청합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Google Cloud sunucusuz veri ambarı" + "value" : "SSH sunucusu bir doğrulama kodu isterse, TablePro bağlanırken bunu size sorar." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kho dữ liệu serverless của Google Cloud" + "value" : "Nếu máy chủ SSH yêu cầu mã xác minh, TablePro sẽ hỏi bạn khi kết nối." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Google Cloud 无服务器数据仓库" + "value" : "如果 SSH 服务器要求验证码,TablePro 会在连接时提示你输入。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Google Cloud 無伺服器資料倉儲" + "value" : "如果 SSH 伺服器要求驗證碼,TablePro 會在連線時提示你輸入。" } } } }, - "Got Slower" : { + "Ignore Case" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "느려진 쿼리" + "value" : "대소문자 무시" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yavaşladı" + "value" : "Büyük/Küçük Harf Duyarsız" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chậm đi" + "value" : "Bỏ qua hoa thường" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "变慢了" + "value" : "忽略大小写" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "變慢了" + "value" : "忽略大小寫" } } } }, - "Grant %1$@ on %2$@" : { + "Ignore foreign key checks" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@ 권한을 %2$@에 부여" + "value" : "외래 키 검사 무시" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%2$@ üzerinde %1$@ ver" + "value" : "Yabancı anahtar kontrollerini yoksay" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cấp %1$@ trên %2$@" + "value" : "Bỏ qua kiểm tra khóa ngoại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在 %2$@ 上授予 %1$@" + "value" : "忽略外键检查" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在 %2$@ 上授予 %1$@" + "value" : "忽略外鍵檢查" } } } }, - "Grant All" : { + "Import" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 권한 부여" + "value" : "가져오기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tümünü Ver" + "value" : "İçe Aktar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cấp tất cả" + "value" : "Nhập" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "全部授予" + "value" : "导入" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "全部授予" + "value" : "匯入" } } } }, - "Grant privileges to %@" : { + "Import %@…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@에 권한 부여" + "value" : "%@ 가져오기…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ hesabına yetki ver" + "value" : "%@ İçe Aktar…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cấp quyền cho %@" + "value" : "Nhập %@…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "向 %@ 授予权限" + "value" : "导入 %@…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "向 %@ 授予權限" + "value" : "匯入 %@…" } } } }, - "Granted" : { + "Import Complete" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "부여됨" + "value" : "가져오기 완료" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Verildi" + "value" : "İçe Aktarma Tamamlandı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã cấp" + "value" : "Nhập Hoàn tất" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已授予" + "value" : "导入完成" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已授予" + "value" : "匯入完成" } } } }, - "Granted on %@" : { + "Import Completed with Errors" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@에 부여됨" + "value" : "오류가 발생했지만 가져오기 완료" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ üzerinde verildi" + "value" : "İçe Aktarma Hatalarla Tamamlandı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã cấp trên %@" + "value" : "Nhập hoàn tất với lỗi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已在 %@ 上授予" + "value" : "导入完成但有错误" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已在 %@ 上授予" + "value" : "匯入完成但有錯誤" } } } }, - "Grants, sorted by privilege then scope" : { - - }, - "Graphite" : { + "Import Connection from Link" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "그래파이트" + "value" : "링크에서 연결 가져오기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Graphite" + "value" : "Bağlantıyı Linkten İçe Aktar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Than chì" + "value" : "Nhập kết nối từ liên kết" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "石墨" + "value" : "从链接导入连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "石墨" + "value" : "從連結匯入連線" } } } }, - "Gray" : { + "Import Connections" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "회색" + "value" : "연결 가져오기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Gri" + "value" : "Bağlantıları İçe Aktar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xám" + "value" : "Nhập Kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "灰色" + "value" : "导入连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "灰色" + "value" : "匯入連線" } } } }, - "greater or equal" : { + "Import Connections…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "크거나 같음" + "value" : "연결 가져오기…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "büyük veya eşit" + "value" : "Bağlantıları İçe Aktar…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "lớn hơn hoặc bằng" + "value" : "Nhập Kết nối…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "大于或等于" + "value" : "导入连接…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "大於或等於" + "value" : "匯入連線…" } } } }, - "greater than" : { + "Import Data" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "보다 큼" + "value" : "데이터 가져오기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "büyüktür" + "value" : "Veriyi İçe Aktar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "lớn hơn" + "value" : "Nhập dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "大于" + "value" : "导入数据" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "大於" + "value" : "匯入資料" } } } }, - "Green" : { + "Import Data (⌘⇧I)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "녹색" + "value" : "데이터 가져오기 (⌘⇧I)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeşil" + "value" : "Veriyi İçe Aktar (⌘⇧I)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xanh lá" + "value" : "Nhập dữ liệu (⌘⇧I)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "绿色" + "value" : "导入数据 (⌘⇧I)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "綠色" + "value" : "匯入資料 (⌘⇧I)" } } } }, - "Group" : { + "Import Data…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "그룹" + "value" : "데이터 가져오기…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Grup" + "value" : "Veri İçe Aktar…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhóm" + "value" : "Nhập dữ liệu…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "分组" + "value" : "导入数据…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "群組" + "value" : "匯入資料…" } } } }, - "Group By" : { - - }, - "Group name" : { + "Import Failed" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "그룹 이름" + "value" : "가져오기 실패" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Grup adı" + "value" : "İçe Aktarma Başarısız" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên nhóm" + "value" : "Nhập thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "分组名称" + "value" : "导入失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "群組名稱" + "value" : "匯入失敗" } } } }, - "Group results by difference or object type" : { - - }, - "Group: %@" : { + "Import Format" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "그룹: %@" + "value" : "가져오기 형식" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Grup: %@" + "value" : "İçe Aktarma Biçimi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhóm: %@" + "value" : "Định dạng nhập" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "分组:%@" + "value" : "导入格式" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "群組:%@" + "value" : "匯入格式" } } } }, - "Groups & Tags:" : { + "Import Formats" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "그룹 및 태그:" + "value" : "가져오기 형식" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Gruplar ve Etiketler:" + "value" : "İçe Aktarma Biçimleri" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhóm & thẻ:" + "value" : "Định dạng nhập" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "分组与标签:" + "value" : "导入格式" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "群組與標籤:" + "value" : "匯入格式" } } } }, - "gzip executable not found" : { + "Import Not Supported" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "gzip 실행 파일을 찾을 수 없음" + "value" : "가져오기가 지원되지 않음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "gzip çalıştırılabilir dosyası bulunamadı" + "value" : "İçe Aktarma Desteklenmiyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy chương trình gzip" + "value" : "Không hỗ trợ nhập" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未找到 gzip 可执行文件" + "value" : "不支持导入" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "找不到 gzip 執行檔" + "value" : "不支援匯入" } } } }, - "Has Differences" : { - - }, - "Has unsaved changes" : { + "Import SQL" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "저장하지 않은 변경 사항 있음" + "value" : "SQL 가져오기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kaydedilmemiş değişiklikler var" + "value" : "SQL İçe Aktar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Có thay đổi chưa lưu" + "value" : "Nhập SQL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "有未保存的更改" + "value" : "导入 SQL" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "有未儲存的變更" + "value" : "匯入 SQL" } } } }, - "Held back" : { - - }, - "Held Back" : { - - }, - "Help" : { + "Import Successful" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "도움말" + "value" : "가져오기 성공" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yardım" + "value" : "İçe Aktarma Başarılı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trợ giúp" + "value" : "Nhập thành công" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "帮助" + "value" : "导入成功" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "輔助說明" + "value" : "匯入成功" } } } }, - "Help improve TablePro by sharing anonymous usage statistics (no personal data or queries)." : { + "Import all fields" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "개인 데이터나 쿼리는 제외하고 익명의 사용 통계를 공유하여 TablePro 개선에 도움을 주십시오." + "value" : "모든 필드 가져오기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Anonim kullanım istatistiklerini paylaşarak TablePro'nun gelişmesine yardımcı olun (kişisel veri veya sorgu yok)." + "value" : "Tüm alanları içe aktar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giúp cải thiện TablePro bằng cách chia sẻ thống kê sử dụng ẩn danh (không có dữ liệu cá nhân hay truy vấn nào)." + "value" : "Nhập tất cả các trường" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "通过分享匿名使用统计数据帮助改进 TablePro(不包含个人数据或查询内容)。" + "value" : "导入所有字段" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "分享匿名使用統計協助改善 TablePro(不含個人資料或查詢內容)。" + "value" : "匯入所有欄位" } } } }, - "Hex bytes" : { + "Import cancelled by user" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "16진수 바이트" + "value" : "사용자가 가져오기를 취소했습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Hex bayt" + "value" : "İçe aktarma kullanıcı tarafından iptal edildi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Byte dạng Hex" + "value" : "Người dùng đã hủy nhập" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "十六进制字节" + "value" : "用户已取消导入" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "十六進位位元組" + "value" : "使用者已取消匯入" } } } }, - "Hide All" : { + "Import completed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모두 가리기" + "value" : "가져오기 완료" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tümünü Gizle" + "value" : "İçe aktarma tamamlandı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ẩn tất cả" + "value" : "Đã nhập xong" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "隐藏全部" + "value" : "导入完成" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "全部隱藏" + "value" : "匯入完成" } } } }, - "Hide Column" : { + "Import completed with errors" : { + "comment" : "Text displayed in an alert when an import has failed with errors.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열 가리기" + "value" : "오류가 발생했지만 가져오기 완료" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sütunu Gizle" + "value" : "İçe aktarma hatalarla tamamlandı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ẩn cột" + "value" : "Nhập xong nhưng có lỗi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "隐藏列" + "value" : "导入完成,但有错误" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "隱藏欄位" + "value" : "匯入完成,但有錯誤" } } } }, - "Hide Connections" : { - "comment" : "Title of the menu item that hides the sidebar rail.", - "isCommentAutoGenerated" : true, + "Import data" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 가리기" + "value" : "데이터 가져오기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantıları Gizle" + "value" : "Import data" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ẩn kết nối" + "value" : "Nhập dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "隐藏连接" + "value" : "导入数据" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "隱藏連線" + "value" : "匯入資料" } } } }, - "Hide Filter Bar" : { + "Import failed" : { + "comment" : "Title of the alert when an import fails.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터 막대 가리기" + "value" : "가져오기 실패" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtre Çubuğunu Gizle" + "value" : "İçe aktarma başarısız" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ẩn thanh bộ lọc" + "value" : "Nhập thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "隐藏筛选栏" + "value" : "导入失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "隱藏篩選列" + "value" : "匯入失敗" } } } }, - "Hide Inspector" : { + "Import failed at line %lld: %@" : { + "extractionState" : "stale", "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Import failed at line %1$lld: %2$@" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "인스펙터 가리기" + "value" : "줄 %1$lld에서 가져오기에 실패했습니다: %2$@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Denetçiyi Gizle" + "value" : "Satır %lld'de içe aktarma başarısız: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ẩn thanh kiểm tra" + "value" : "Nhập thất bại tại dòng %1$lld: %2$@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "隐藏检查器" + "value" : "在第 %lld 行导入失败: %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "隱藏檢閱器" + "value" : "在第 %1$lld 行匯入失敗:%2$@" } } } }, - "Hide Others" : { + "Import from %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기타 가리기" + "value" : "%@에서 가져오기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Diğerlerini Gizle" + "value" : "%@ uygulamasından içe aktar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ẩn các mục khác" + "value" : "Nhập từ %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "隐藏其他" + "value" : "从 %@ 导入" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "隱藏其他" + "value" : "從 %@ 匯入" } } } }, - "Hide Query History" : { + "Import from Codex CLI" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 기록 가리기" + "value" : "Codex CLI에서 가져오기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgu Geçmişini Gizle" + "value" : "Codex CLI'den İçe Aktar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ẩn lịch sử truy vấn" + "value" : "Nhập từ Codex CLI" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "隐藏查询历史" + "value" : "从 Codex CLI 导入" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "隱藏查詢歷史" + "value" : "從 Codex CLI 匯入" } } } }, - "Hide Results" : { + "Import from DDL" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "결과 가리기" + "value" : "DDL에서 가져오기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sonuçları Gizle" + "value" : "DDL'den İçe Aktar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ẩn kết quả" + "value" : "Nhập từ DDL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "隐藏结果" + "value" : "从 DDL 导入" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "隱藏結果" + "value" : "從 DDL 匯入" } } } }, - "Hide Sidebar" : { + "Import from Other App" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사이드바 가리기" + "value" : "다른 앱에서 가져오기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kenar Çubuğunu Gizle" + "value" : "Diğer Uygulamadan İçe Aktar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ẩn thanh bên" + "value" : "Nhập từ ứng dụng khác" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "隐藏侧边栏" + "value" : "从其他应用导入" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "隱藏側邊欄" + "value" : "從其他 App 匯入" } } } }, - "Hide TablePro" : { + "Import from Other App…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro 가리기" + "value" : "다른 앱에서 가져오기…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro'yu Gizle" + "value" : "Diğer Uygulamadan İçe Aktar…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ẩn TablePro" + "value" : "Nhập từ ứng dụng khác…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "隐藏 TablePro" + "value" : "从其他应用导入…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "隱藏 TablePro" + "value" : "從其他 App 匯入…" } } } }, - "Hide token" : { + "Import from URL" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "토큰 가리기" + "value" : "URL에서 가져오기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Token gizle" + "value" : "URL'den İçe Aktar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ẩn token" + "value" : "Nhập từ URL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "隐藏令牌" + "value" : "从 URL 导入" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "隱藏權杖" + "value" : "從 URL 匯入" } } } }, - "Hide Workspace Rail" : { - "extractionState" : "stale", + "Import from URL…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "워크스페이스 레일 가리기" + "value" : "URL에서 가져오기…" } }, "tr" : { "stringUnit" : { - "state" : "needs_review", - "value" : "Çalışma Alanı Şeridini Gizle" + "state" : "translated", + "value" : "URL'den İçe Aktar…" } }, "vi" : { "stringUnit" : { - "state" : "needs_review", - "value" : "Ẩn thanh không gian làm việc" + "state" : "translated", + "value" : "Nhập từ URL…" } }, "zh-Hans" : { "stringUnit" : { - "state" : "needs_review", - "value" : "隐藏工作区栏" + "state" : "translated", + "value" : "从 URL 导入…" } }, "zh-Hant" : { "stringUnit" : { - "state" : "needs_review", - "value" : "隱藏工作區列" + "state" : "translated", + "value" : "從 URL 匯入…" } } } }, - "High" : { + "Import into:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "높음" + "value" : "가져올 위치:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yüksek" + "value" : "Şuraya içe aktar:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cao" + "value" : "Nhập vào:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "高" + "value" : "导入到:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "高" + "value" : "匯入到:" } } } }, - "High cost" : { - "comment" : "Accessibility label for a query plan severity of high cost.", - "isCommentAutoGenerated" : true, + "Import is not supported for %@ connections." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "높은 비용" + "value" : "%@ 연결에서는 가져오기가 지원되지 않습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yüksek maliyet" + "value" : "%@ bağlantıları için içe aktarma desteklenmiyor." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chi phí cao" + "value" : "Không hỗ trợ nhập cho kết nối %@." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "高成本" + "value" : "%@ 连接不支持导入。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "高成本" + "value" : "%@ 連線不支援匯入。" } } } }, - "Higher values create fewer INSERT statements, resulting in smaller files and faster imports" : { - "extractionState" : "stale", + "Import rows into a table" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "값이 클수록 INSERT 문 수가 줄어들어 파일이 작아지고 가져오기가 빨라집니다" + "value" : "테이블로 행 가져오기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Daha yüksek değerler daha az INSERT ifadesi oluşturur, daha küçük dosyalar ve daha hızlı içe aktarma sağlar" + "value" : "Bir tabloya satır içe aktar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giá trị cao hơn tạo ít câu lệnh INSERT hơn, giúp tệp nhỏ hơn và nhập nhanh hơn" + "value" : "Nhập hàng vào bảng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "值越大,生成的 INSERT 语句越少,文件更小,导入更快" + "value" : "将行导入表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "值越大,產生的 INSERT 陳述式越少,檔案更小且匯入更快" + "value" : "將列匯入資料表" } } } }, - "Highlight current line" : { + "Importance" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "현재 줄 강조" + "value" : "중요도" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Mevcut satırı vurgula" + "value" : "Önem" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đánh dấu dòng hiện tại" + "value" : "Mức quan trọng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "高亮当前行" + "value" : "重要程度" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "標示目前行" + "value" : "重要程度" } } } }, - "Highlight current statement" : { + "Importing passwords from %1$@ reads up to %2$d keychain items. macOS prompts for your login password once per item because each is owned by %1$@. Click Always Allow on each prompt to grant TablePro permanent access. Cancel any prompt to skip the rest." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "현재 문 강조" + "value" : "%1$@에서 암호를 가져오면 최대 %2$d개의 키체인 항목을 읽습니다. 각 항목의 소유 앱은 %1$@입니다. 따라서 macOS는 항목마다 로그인 암호를 묻습니다. 각 메시지에서 '항상 허용'을 클릭하면 TablePro에 영구 접근 권한을 부여합니다. 나머지 항목을 건너뛰려면 아무 메시지에서나 취소를 클릭하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Mevcut ifadeyi vurgula" + "value" : "%1$@ uygulamasından parola içe aktarma en fazla %2$d anahtar zinciri öğesi okur. Her öğe %1$@ uygulamasına ait olduğu için macOS her öğe için bir kez oturum açma parolanızı sorar. TablePro'ya kalıcı erişim vermek için her istemde Her Zaman İzin Ver'e tıklayın. Kalanları atlamak için herhangi bir istemi iptal edin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đánh dấu câu lệnh hiện tại" + "value" : "Nhập mật khẩu từ %1$@ sẽ đọc tối đa %2$d mục trong keychain. macOS hỏi mật khẩu đăng nhập của bạn một lần cho mỗi mục vì mỗi mục thuộc sở hữu của %1$@. Bấm Luôn cho phép ở mỗi lời nhắc để cấp cho TablePro quyền truy cập vĩnh viễn. Hủy bất kỳ lời nhắc nào để bỏ qua phần còn lại." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "高亮当前语句" + "value" : "从 %1$@ 导入密码最多会读取 %2$d 个钥匙串项。由于每一项都归 %1$@ 所有,macOS 会针对每一项要求输入一次登录密码。请在每个提示中点按“始终允许”以授予 TablePro 永久访问权限。取消任一提示将跳过其余项。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "標示目前陳述式" + "value" : "從 %1$@ 匯入密碼最多會讀取 %2$d 個鑰匙圈項目。由於每一項都歸 %1$@ 所有,macOS 會針對每一項要求輸入一次登入密碼。請在每個提示中點按「總是允許」以授予 TablePro 永久存取權限。取消任一提示將略過其餘項目。" } } } }, - "History" : { + "Importing…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기록" + "value" : "가져오는 중…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geçmiş" + "value" : "İçe aktarılıyor…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lịch sử" + "value" : "Đang nhập…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "历史记录" + "value" : "导入中…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "歷程記錄" + "value" : "匯入中…" } } } }, - "history entries" : { - "extractionState" : "stale", + "Imports" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기록 항목" + "value" : "데이터 가져오기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "history entries" + "value" : "İçe Aktarmalar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "mục lịch sử" + "value" : "Nhập dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "条历史记录" + "value" : "导入" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "筆歷程記錄" + "value" : "匯入" } } } }, - "history entry" : { - "extractionState" : "stale", + "Import…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기록 항목" + "value" : "가져오기…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "history entry" + "value" : "İçe Aktar…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "mục lịch sử" + "value" : "Nhập…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "条历史记录" + "value" : "导入…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "筆歷程記錄" + "value" : "匯入…" } } } }, - "History Limit:" : { - "extractionState" : "stale", + "In-memory data store and cache" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기록 제한:" + "value" : "인메모리 데이터 저장소 및 캐시" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geçmiş Limiti:" + "value" : "Bellek içi veri deposu ve önbellek" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giới hạn lịch sử:" + "value" : "Kho dữ liệu và cache trong bộ nhớ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "历史记录上限:" + "value" : "内存数据存储与缓存" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "歷程記錄上限:" + "value" : "記憶體內資料儲存與快取" } } } }, - "History Unavailable" : { + "Inactive" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기록을 사용할 수 없음" + "value" : "비활성" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geçmiş Kullanılamıyor" + "value" : "Etkin Değil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có lịch sử" + "value" : "Không hoạt động" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "历史不可用" + "value" : "非活跃" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "記錄無法使用" + "value" : "非作用中" } } } }, - "Homepage" : { + "Include" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "포함", + "state" : "translated" + } + } + } + }, + "Include Credentials" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "홈페이지" + "value" : "자격 증명 포함" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ana Sayfa" + "value" : "Kimlik Bilgilerini Dahil Et" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trang chủ" + "value" : "Bao gồm Thông tin Đăng nhập" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "主页" + "value" : "包含凭据" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "首頁" + "value" : "包含認證資訊" } } } }, - "Host" : { + "Include Every Table" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "모든 테이블 포함", + "state" : "translated" + } + } + } + }, + "Include NULL values" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "호스트" + "value" : "NULL 값 포함" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sunucu" + "value" : "NULL değerleri dahil et" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Máy chủ" + "value" : "Bao gồm giá trị NULL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "主机" + "value" : "包含 NULL 值" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "主機" + "value" : "包含 NULL 值" } } } }, - "Host and port assumed" : { + "Include approximate row counts (default false)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "호스트와 포트로 간주됨" + "value" : "대략적인 행 수 포함(기본값: false)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sunucu ve port varsayıldı" + "value" : "Yaklaşık satır sayılarını dahil et (varsayılan false)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Máy chủ và cổng được suy đoán" + "value" : "Bao gồm số hàng ước tính (mặc định false)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "主机和端口为推测值" + "value" : "包含近似行数(默认 false)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "主機與連接埠為推測值" + "value" : "包含近似列數(預設為 false)" } } } }, - "Host looks like a socket path" : { + "Include at least one object to generate a script for it." : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "스크립트를 생성하려면 객체를 하나 이상 포함하십시오.", + "state" : "translated" + } + } + } + }, + "Include at least one table to generate a script for it." : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "스크립트를 생성하려면 테이블을 하나 이상 포함하십시오.", + "state" : "translated" + } + } + } + }, + "Include column headers" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "호스트가 소켓 경로인 것 같습니다" + "value" : "열 머리글 포함" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sunucu adı soket yoluna benziyor" + "value" : "Sütun başlıklarını dahil et" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Máy chủ trông giống đường dẫn socket" + "value" : "Bao gồm tiêu đề cột" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "主机看起来像 socket 路径" + "value" : "包含列标题" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "主機看起來像 socket 路徑" + "value" : "包含欄位標題" } } } }, - "Host scope, for engines that use one" : { - - }, - "Host scope, where the engine has one" : { - - }, - "Host:" : { + "Include current query" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "호스트:" + "value" : "현재 쿼리 포함" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sunucu:" + "value" : "Mevcut sorguyu dahil et" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Máy chủ:" + "value" : "Bao gồm truy vấn hiện tại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "主机:" + "value" : "包含当前查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "主機:" + "value" : "包含目前查詢" } } } }, - "Host: %@" : { + "Include database schema" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "호스트: %@" + "value" : "데이터베이스 스키마 포함" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sunucu: %@" + "value" : "Veritabanı şemasını dahil et" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Máy chủ: %@" + "value" : "Bao gồm schema cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "主机:%@" + "value" : "包含数据库 Schema" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "主機:%@" + "value" : "包含資料庫綱要" } } } }, - "Hostname" : { + "Include diagnostics" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "호스트 이름" + "value" : "진단 정보 포함" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sunucu adı" + "value" : "Tanılamaları dahil et" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên máy chủ" + "value" : "Đính kèm thông tin chẩn đoán" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "主机名" + "value" : "包含诊断信息" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "主機名稱" + "value" : "包含診斷資訊" } } } }, - "hostname:%lld" : { - "extractionState" : "stale", + "Include every object in this group" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "이 그룹의 모든 객체 포함", + "state" : "translated" + } + } + } + }, + "Include every table in this group" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "이 그룹의 모든 테이블 포함", + "state" : "translated" + } + } + } + }, + "Include in iCloud Sync" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "hostname:%lld" + "value" : "iCloud 동기화에 포함" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "hostname:%lld" + "value" : "iCloud Eşitlemesine Dahil Et" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "hostname:%lld" + "value" : "Đưa vào đồng bộ iCloud" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "hostname:%lld" + "value" : "包含在 iCloud 同步中" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "hostname:%lld" + "value" : "納入 iCloud 同步" } } } }, - "Hosts" : { + "Include passwords" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "호스트" + "value" : "암호 포함" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sunucular" + "value" : "Parolaları dahil et" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Host" + "value" : "Bao gồm mật khẩu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "主机" + "value" : "包含密码" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "主機" + "value" : "包含密碼" } } } }, - "Hover" : { + "Include query results" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "호버" + "value" : "쿼리 결과 포함" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Üzerine Gelme" + "value" : "Sorgu sonuçlarını dahil et" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Di chuột" + "value" : "Bao gồm kết quả truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "悬停" + "value" : "包含查询结果" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "停留" + "value" : "包含查詢結果" } } } }, - "How filters combine (default and)" : { - - }, - "How long it has run" : { - - }, - "How many filters were applied" : { - - }, - "How many statements to include, 1 to 500. Defaults to 50" : { - - }, - "Huge" : { - "extractionState" : "stale", + "Include this filter when applying" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "아주 큼" + "value" : "적용 시 이 필터 포함" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Çok Büyük" + "value" : "Uygularken bu filtreyi dahil et" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Rất lớn" + "value" : "Bao gồm bộ lọc này khi áp dụng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "超大" + "value" : "应用时包含此筛选" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "超大" + "value" : "套用時包含這個篩選條件" } } } }, - "Human label" : { - + "Include this object" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "이 객체 포함", + "state" : "translated" + } + } + } }, - "iCloud account is not available. Sign in to iCloud in System Settings." : { + "Include this row" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "이 행 포함", + "state" : "translated" + } + } + } + }, + "Include this table and compare again to see its rows." : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "행을 보려면 이 테이블을 포함하고 다시 비교하십시오.", + "state" : "translated" + } + } + } + }, + "Include this table in the comparison" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "이 테이블을 비교에 포함", + "state" : "translated" + } + } + } + }, + "Incompatible plugin version" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud 계정을 사용할 수 없습니다. 시스템 설정에서 iCloud에 로그인하십시오." + "value" : "호환되지 않는 플러그인 버전" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud hesabı kullanılamıyor. Sistem Ayarları'ndan iCloud'a giriş yapın." + "value" : "Uyumsuz eklenti sürümü" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tài khoản iCloud không khả dụng. Đăng nhập iCloud trong Cài đặt hệ thống." + "value" : "Phiên bản plugin không tương thích" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud 账户不可用。请在系统设置中登录 iCloud。" + "value" : "插件版本不兼容" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud 帳號無法使用。請在「系統設定」中登入 iCloud。" + "value" : "外掛版本不相容" } } } }, - "iCloud Connected" : { + "Incorrect passphrase" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud 연결됨" + "value" : "암호가 올바르지 않습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud Bağlı" + "value" : "Yanlış parola" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã kết nối iCloud" + "value" : "Cụm mật khẩu không đúng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud 已连接" + "value" : "密码短语不正确" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud 已連線" - } - } - } - }, - "iCloud rejected %d change(s). They stay on this device and will retry: %@" : { - "extractionState" : "stale", - "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "iCloud rejected %1$d change(s). They stay on this device and will retry: %2$@" - } - }, - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "iCloud에서 변경 사항 %d개를 거부했습니다. 변경 사항은 이 기기에 유지되며 다시 시도됩니다: %@" + "value" : "密碼短語不正確" } } } }, - "iCloud server error: %@" : { - "extractionState" : "stale", + "Increase Text Size" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud 서버 오류: %@" + "value" : "텍스트 크기 늘리기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud sunucu hatası: %@" + "value" : "Metin Boyutunu Büyüt" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lỗi máy chủ iCloud: %@" + "value" : "Tăng cỡ chữ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud 服务器错误:%@" + "value" : "增大文字大小" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud 伺服器錯誤:%@" - } - } - } - }, - "iCloud storage is full. Free up space in iCloud and try again." : { - "extractionState" : "stale", - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "iCloud 저장 공간이 가득 찼습니다. iCloud에서 공간을 확보한 후 다시 시도하십시오." + "value" : "增大文字大小" } } } }, - "iCloud storage is full. Free up space or reduce the history sync limit." : { - "extractionState" : "stale", + "Increase font size" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud 저장 공간이 가득 찼습니다. 공간을 확보하거나 기록 동기화 제한을 줄이십시오." + "value" : "글꼴 크기 늘리기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud storage is full. Free up space or reduce the history sync limit." + "value" : "Yazı boyutunu büyüt" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bộ nhớ iCloud đã đầy. Giải phóng dung lượng hoặc giảm giới hạn đồng bộ lịch sử." + "value" : "Tăng cỡ chữ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud 储存空间已满。请释放空间或减少历史记录同步上限。" + "value" : "增大字号" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud 儲存空間已滿。請釋出空間或降低歷程記錄同步上限。" + "value" : "增大字型大小" } } } }, - "iCloud Sync" : { + "Indent" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud 동기화" + "value" : "들여쓰기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud Eşitlemesi" + "value" : "Girintile" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đồng bộ iCloud" + "value" : "Thụt lề" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud 同步" + "value" : "缩进" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud 同步" + "value" : "縮排" } } } }, - "iCloud Sync is active" : { + "Index %@ matches %@ on the target but the names differ." : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Index %1$@ matches %2$@ on the target but the names differ." + } + }, + "ko" : { + "stringUnit" : { + "value" : "인덱스 %@은(는) 대상의 %@과(와) 일치하지만 이름이 다릅니다.", + "state" : "translated" + } + } + } + }, + "Index Size" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud 동기화가 활성화됨" + "value" : "인덱스 크기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud Eşitlemesi etkin" + "value" : "İndeks Boyutu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đồng bộ iCloud đang hoạt động" + "value" : "Kích thước chỉ mục" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud 同步已启用" + "value" : "索引大小" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud 同步已啟用" + "value" : "索引大小" } } } }, - "iCloud Sync:" : { + "Index name" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud 동기화:" + "value" : "인덱스 이름" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud Eşitlemesi:" + "value" : "İndeks adı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đồng bộ iCloud:" + "value" : "Tên chỉ mục" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud 同步:" + "value" : "索引名称" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud 同步:" + "value" : "索引名稱" } } } }, - "Icon Sizes" : { - "extractionState" : "stale", + "Indexes" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "아이콘 크기" + "value" : "인덱스" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Simge Boyutları" + "value" : "İndeksler" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kích thước biểu tượng" + "value" : "Chỉ mục" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "图标大小" + "value" : "索引" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "圖示大小" + "value" : "索引" } } } }, - "Icons" : { + "Info" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "아이콘" + "value" : "정보" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Simgeler" + "value" : "Bilgi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Biểu tượng" + "value" : "Thông tin" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "图标" + "value" : "信息" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "圖像" + "value" : "資訊" } } } }, - "Identical" : { - - }, - "Identifier case" : { - - }, - "Identity" : { + "Inherited automatically." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "식별 정보" + "value" : "자동으로 상속됨." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kimlik" + "value" : "Otomatik olarak devralındı." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Danh tính" + "value" : "Được kế thừa tự động." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "身份" + "value" : "自动继承。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "身分" + "value" : "自動繼承。" } } } }, - "If macOS asks for your login password, click Always Allow on each prompt." : { + "Inherited from %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "macOS가 로그인 암호를 요청하면 각 메시지에서 '항상 허용'을 클릭하십시오." + "value" : "%@에서 상속됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "macOS oturum açma parolanızı sorarsa her istemde Her Zaman İzin Ver'e tıklayın." + "value" : "%@ kaynağından devralındı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nếu macOS hỏi mật khẩu đăng nhập của bạn, hãy bấm Luôn cho phép ở mỗi lời nhắc." + "value" : "Kế thừa từ %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "如果 macOS 要求输入登录密码,请在每个提示中点按“始终允许”。" + "value" : "继承自 %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "如果 macOS 要求輸入登入密碼,請在每個提示中點按「總是允許」。" + "value" : "繼承自 %@" } } } }, - "If the SSH server asks for a verification code, TablePro prompts you for it when you connect." : { + "Inline Configuration" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Inline Configuration" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 서버에서 확인 코드를 요청하면 연결할 때 TablePro가 코드 입력을 요청합니다." + "value" : "인라인 구성" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH sunucusu bir doğrulama kodu isterse, TablePro bağlanırken bunu size sorar." + "value" : "Satır İçi Yapılandırma" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nếu máy chủ SSH yêu cầu mã xác minh, TablePro sẽ hỏi bạn khi kết nối." + "value" : "Cấu hình nội tuyến" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "如果 SSH 服务器要求验证码,TablePro 会在连接时提示你输入。" + "value" : "内联配置" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "如果 SSH 伺服器要求驗證碼,TablePro 會在連線時提示你輸入。" + "value" : "行內設定" } } } }, - "Ignore Case" : { + "Inline SQL suggestions appear as you type. Press Tab to accept, Escape to dismiss." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "대소문자 무시" + "value" : "입력하는 동안 인라인 SQL 제안이 표시됩니다. Tab 키를 누르면 수락하고 Escape 키를 누르면 닫습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Büyük/Küçük Harf Duyarsız" + "value" : "Satır içi SQL önerileri yazarken görünür. Kabul etmek için Tab, kapatmak için Escape tuşuna basın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bỏ qua hoa thường" + "value" : "Gợi ý SQL nội tuyến hiện ra khi bạn gõ. Nhấn Tab để chấp nhận, Esc để bỏ qua." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "忽略大小写" + "value" : "内联 SQL 建议会在输入时出现。按 Tab 接受,按 Esc 取消。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "忽略大小寫" + "value" : "行內 SQL 建議會在輸入時出現。按 Tab 接受,按 Esc 關閉。" } } } }, - "Ignore foreign key checks" : { + "Inline Suggestions" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "외래 키 검사 무시" + "value" : "인라인 제안" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yabancı anahtar kontrollerini yoksay" + "value" : "Satır İçi Öneriler" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bỏ qua kiểm tra khóa ngoại" + "value" : "Gợi ý nội tuyến" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "忽略外键检查" + "value" : "行内建议" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "忽略外鍵檢查" + "value" : "行內建議" } } } }, - "Import" : { + "Insert" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "가져오기" + "value" : "삽입" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İçe Aktar" + "value" : "Ekle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập" + "value" : "Chèn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导入" + "value" : "插入" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯入" + "value" : "插入" } } } }, - "Import %@…" : { + "Insert Column" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 가져오기…" + "value" : "열 삽입" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ İçe Aktar…" + "value" : "Sütun Ekle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập %@…" + "value" : "Chèn cột" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导入 %@…" + "value" : "插入列" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯入 %@…" + "value" : "插入欄位" } } } }, - "Import all fields" : { + "Insert Column After" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 필드 가져오기" + "value" : "뒤에 열 삽입" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm alanları içe aktar" + "value" : "Sonrasına Sütun Ekle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập tất cả các trường" + "value" : "Chèn cột sau" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导入所有字段" + "value" : "在后面插入列" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯入所有欄位" + "value" : "在後方插入欄位" } } } }, - "Import cancelled by user" : { + "Insert Column Before" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사용자가 가져오기를 취소했습니다" + "value" : "앞에 열 삽입" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İçe aktarma kullanıcı tarafından iptal edildi" + "value" : "Öncesine Sütun Ekle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Người dùng đã hủy nhập" + "value" : "Chèn cột trước" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "用户已取消导入" + "value" : "在前面插入列" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "使用者已取消匯入" + "value" : "在前方插入欄位" } } } }, - "Import Complete" : { + "Insert Column Left" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "가져오기 완료" + "value" : "왼쪽에 열 삽입" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İçe Aktarma Tamamlandı" + "value" : "Sola Sütun Ekle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập Hoàn tất" + "value" : "Chèn cột bên trái" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导入完成" + "value" : "在左侧插入列" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯入完成" + "value" : "在左方插入欄位" } } } }, - "Import completed" : { + "Insert Column Right" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "가져오기 완료" + "value" : "오른쪽에 열 삽입" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İçe aktarma tamamlandı" + "value" : "Sağa Sütun Ekle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã nhập xong" + "value" : "Chèn cột bên phải" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导入完成" + "value" : "在右侧插入列" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯入完成" + "value" : "在右方插入欄位" } } } }, - "Import completed with errors" : { - "comment" : "Text displayed in an alert when an import has failed with errors.", - "isCommentAutoGenerated" : true, + "Insert Row" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "오류가 발생했지만 가져오기 완료" + "value" : "행 삽입" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İçe aktarma hatalarla tamamlandı" + "value" : "Satır Ekle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập xong nhưng có lỗi" + "value" : "Thêm dòng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导入完成,但有错误" + "value" : "插入行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯入完成,但有錯誤" + "value" : "插入列" } } } }, - "Import Completed with Errors" : { - "extractionState" : "stale", + "Insert Row Above" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "오류가 발생했지만 가져오기 완료" + "value" : "위에 행 삽입" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İçe Aktarma Hatalarla Tamamlandı" + "value" : "Üste Satır Ekle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập hoàn tất với lỗi" + "value" : "Chèn dòng phía trên" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导入完成但有错误" + "value" : "在上方插入行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯入完成但有錯誤" + "value" : "在上方插入列" } } } }, - "Import Connection from Link" : { - "extractionState" : "stale", + "Insert Row Below" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "링크에서 연결 가져오기" + "value" : "아래에 행 삽입" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantıyı Linkten İçe Aktar" + "value" : "Alta Satır Ekle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập kết nối từ liên kết" + "value" : "Chèn dòng phía dưới" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "从链接导入连接" + "value" : "在下方插入行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "從連結匯入連線" + "value" : "在下方插入列" } } } }, - "Import Connections" : { + "Insert Rows" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 가져오기" + "value" : "행 삽입" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantıları İçe Aktar" + "value" : "Satır Ekle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập Kết nối" + "value" : "Thêm dòng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导入连接" + "value" : "插入行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯入連線" + "value" : "插入列" } } } }, - "Import Connections…" : { + "Insert in Editor" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 가져오기…" + "value" : "편집기에 삽입" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantıları İçe Aktar…" + "value" : "Düzenleyiciye Ekle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập Kết nối…" + "value" : "Chèn vào trình soạn thảo" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导入连接…" + "value" : "插入到编辑器" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯入連線…" + "value" : "插入到編輯器" } } } }, - "Import data" : { - "extractionState" : "stale", + "Insert into editor" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터 가져오기" + "value" : "편집기에 삽입" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Import data" + "value" : "Düzenleyiciye ekle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập dữ liệu" + "value" : "Chèn vào trình soạn thảo" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导入数据" + "value" : "插入到编辑器" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯入資料" + "value" : "插入到編輯器" } } } }, - "Import Data" : { + "Insert row %@ into %@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Insert row %1$@ into %2$@" + } + }, + "ko" : { + "stringUnit" : { + "value" : "%2$@에 행 %1$@ 삽입", + "state" : "translated" + } + } + } + }, + "Insert rows the target is missing" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "대상에 없는 행 삽입", + "state" : "translated" + } + } + } + }, + "Inserted" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터 가져오기" + "value" : "삽입됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veriyi İçe Aktar" + "value" : "Eklendi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập dữ liệu" + "value" : "Đã chèn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导入数据" + "value" : "已插入" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯入資料" + "value" : "已插入" } } } }, - "Import Data (⌘⇧I)" : { - "extractionState" : "stale", + "Inspector" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터 가져오기 (⌘⇧I)" + "value" : "인스펙터" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veriyi İçe Aktar (⌘⇧I)" + "value" : "Denetçi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập dữ liệu (⌘⇧I)" + "value" : "Thanh kiểm tra" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导入数据 (⌘⇧I)" + "value" : "检查器" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯入資料 (⌘⇧I)" + "value" : "檢閱器" } } } }, - "Import Data…" : { + "Install" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터 가져오기…" + "value" : "설치" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veri İçe Aktar…" + "value" : "Yükle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập dữ liệu…" + "value" : "Cài đặt" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导入数据…" + "value" : "安装" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯入資料…" + "value" : "安裝" } } } }, - "Import failed" : { - "comment" : "Title of the alert when an import fails.", - "isCommentAutoGenerated" : true, + "Install Plugin" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "가져오기 실패" + "value" : "플러그인 설치" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İçe aktarma başarısız" + "value" : "Eklentiyi Yükle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập thất bại" + "value" : "Cài đặt Plugin" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导入失败" + "value" : "安装插件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯入失敗" + "value" : "安裝外掛" } } } }, - "Import Failed" : { - "extractionState" : "stale", + "Install Plugin…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "가져오기 실패" + "value" : "플러그인 설치…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İçe Aktarma Başarısız" + "value" : "Eklenti Yükle…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập thất bại" + "value" : "Cài plugin…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导入失败" + "value" : "安装插件…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯入失敗" + "value" : "安裝外掛…" } } } }, - "Import failed at line %lld: %@" : { - "extractionState" : "stale", + "Install Theme" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Import failed at line %1$lld: %2$@" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "줄 %1$lld에서 가져오기에 실패했습니다: %2$@" + "value" : "테마 설치" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satır %lld'de içe aktarma başarısız: %@" + "value" : "Temayı Yükle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập thất bại tại dòng %1$lld: %2$@" + "value" : "Cài đặt chủ đề" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在第 %lld 行导入失败: %@" + "value" : "安装主题" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在第 %1$lld 行匯入失敗:%2$@" + "value" : "安裝主題" } } } }, - "Import finished" : { - - }, - "Import Format" : { + "Install from File..." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "가져오기 형식" + "value" : "파일에서 설치..." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İçe Aktarma Biçimi" + "value" : "Dosyadan Yükle..." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Định dạng nhập" + "value" : "Cài đặt từ tập tin..." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导入格式" + "value" : "从文件安装..." } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯入格式" + "value" : "從檔案安裝…" } } } }, - "Import Formats" : { + "Install plugin from file" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "가져오기 형식" + "value" : "파일에서 플러그인 설치" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İçe Aktarma Biçimleri" + "value" : "Eklentiyi dosyadan yükle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Định dạng nhập" + "value" : "Cài đặt plugin từ tệp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导入格式" + "value" : "从文件安装插件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯入格式" + "value" : "從檔案安裝外掛" } } } }, - "Import from %@" : { + "Install the CLI client for %@" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@에서 가져오기" + "value" : "%@용 CLI 클라이언트 설치" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ uygulamasından içe aktar" + "value" : "%@ için CLI istemcisini yükleyin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập từ %@" + "value" : "Cài đặt CLI client cho %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "从 %@ 导入" + "value" : "安装 %@ 的 CLI 客户端" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "從 %@ 匯入" + "value" : "安裝 %@ 的 CLI 用戶端" } } } }, - "Import from Codex CLI" : { + "Installation Failed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Codex CLI에서 가져오기" + "value" : "설치 실패" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Codex CLI'den İçe Aktar" + "value" : "Yükleme Başarısız" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập từ Codex CLI" + "value" : "Cài đặt thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "从 Codex CLI 导入" + "value" : "安装失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "從 Codex CLI 匯入" + "value" : "安裝失敗" } } } }, - "Import from DDL" : { - "extractionState" : "stale", + "Installed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "DDL에서 가져오기" + "value" : "설치됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "DDL'den İçe Aktar" + "value" : "Yüklendi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập từ DDL" + "value" : "Đã cài đặt" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "从 DDL 导入" + "value" : "已安装" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "從 DDL 匯入" + "value" : "已安裝" } } } }, - "Import from Other App" : { + "Installed Plugins" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다른 앱에서 가져오기" + "value" : "설치된 플러그인" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Diğer Uygulamadan İçe Aktar" + "value" : "Yüklü Eklentiler" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập từ ứng dụng khác" + "value" : "Plugin đã cài đặt" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "从其他应用导入" + "value" : "已安装的插件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "從其他 App 匯入" + "value" : "已安裝的外掛" } } } }, - "Import from Other App…" : { + "Installing…" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다른 앱에서 가져오기…" + "value" : "설치 중…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Diğer Uygulamadan İçe Aktar…" + "value" : "Yükleniyor…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập từ ứng dụng khác…" + "value" : "Đang cài đặt…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "从其他应用导入…" + "value" : "正在安装…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "從其他 App 匯入…" + "value" : "安裝中…" } } } }, - "Import from URL" : { + "Instance connection name" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "URL에서 가져오기" + "value" : "인스턴스 연결 이름" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "URL'den İçe Aktar" + "value" : "Örnek bağlantı adı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập từ URL" + "value" : "Tên kết nối instance" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "从 URL 导入" + "value" : "实例连接名称" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "從 URL 匯入" + "value" : "執行個體連線名稱" } } } }, - "Import from URL…" : { + "Instance connection name must be project:region:instance" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "URL에서 가져오기…" + "value" : "인스턴스 연결 이름은 project:region:instance 형식이어야 합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "URL'den İçe Aktar…" + "value" : "Örnek bağlantı adı project:region:instance biçiminde olmalı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập từ URL…" + "value" : "Tên kết nối instance phải theo dạng project:region:instance" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "从 URL 导入…" + "value" : "实例连接名称必须为 project:region:instance" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "從 URL 匯入…" + "value" : "執行個體連線名稱必須為 project:region:instance" } } } }, - "Import into:" : { + "Integer" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "가져올 위치:" + "value" : "정수" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Şuraya içe aktar:" + "value" : "Tamsayı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập vào:" + "value" : "Số nguyên" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导入到:" + "value" : "整数" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯入到:" + "value" : "整數" } } } }, - "Import is not supported for %@ connections." : { + "Integrations" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 연결에서는 가져오기가 지원되지 않습니다." + "value" : "통합" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ bağlantıları için içe aktarma desteklenmiyor." + "value" : "Entegrasyonlar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không hỗ trợ nhập cho kết nối %@." + "value" : "Tích hợp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 连接不支持导入。" + "value" : "集成" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 連線不支援匯入。" + "value" : "整合" } } } }, - "Import Not Supported" : { + "Integrations Activity" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "가져오기가 지원되지 않음" + "value" : "통합 활동" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İçe Aktarma Desteklenmiyor" + "value" : "Entegrasyon Etkinliği" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không hỗ trợ nhập" + "value" : "Hoạt động tích hợp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "不支持导入" + "value" : "集成活动" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "不支援匯入" + "value" : "整合活動" } } } }, - "Import rows into a table" : { + "Integrations: Failed" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블로 행 가져오기" + "value" : "통합: 실패" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bir tabloya satır içe aktar" + "value" : "Entegrasyonlar: Başarısız" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập hàng vào bảng" + "value" : "Tích hợp: Thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将行导入表" + "value" : "集成:失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將列匯入資料表" + "value" : "整合:失敗" } } } }, - "Import SQL" : { + "Integrations: Running" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SQL 가져오기" + "value" : "통합: 실행 중" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SQL İçe Aktar" + "value" : "Entegrasyonlar: Çalışıyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập SQL" + "value" : "Tích hợp: Đang chạy" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导入 SQL" + "value" : "集成:运行中" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯入 SQL" + "value" : "整合:執行中" } } } }, - "Import Successful" : { + "Integrations: Running (%d clients)" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "가져오기 성공" + "value" : "통합: 실행 중(클라이언트 %d개)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İçe Aktarma Başarılı" + "value" : "Entegrasyonlar: Çalışıyor (%d istemci)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập thành công" + "value" : "Tích hợp: Đang chạy (%d client)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导入成功" + "value" : "集成:运行中(%d 个客户端)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯入成功" + "value" : "整合:執行中(%d 個用戶端)" } } } }, - "Import…" : { + "Integrations: Starting..." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "가져오기…" + "value" : "통합: 시작 중..." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İçe Aktar…" + "value" : "Entegrasyonlar: Başlatılıyor..." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập…" + "value" : "Tích hợp: Đang khởi động..." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导入…" + "value" : "集成:启动中…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯入…" + "value" : "整合:啟動中…" } } } }, - "Importance" : { + "Integrations: Stopped" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "중요도" + "value" : "통합: 중지됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Önem" + "value" : "Entegrasyonlar: Durduruldu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mức quan trọng" + "value" : "Tích hợp: Đã dừng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重要程度" + "value" : "集成:已停止" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重要程度" + "value" : "整合:已停止" } } } }, - "Importing passwords from %1$@ reads up to %2$d keychain items. macOS prompts for your login password once per item because each is owned by %1$@. Click Always Allow on each prompt to grant TablePro permanent access. Cancel any prompt to skip the rest." : { + "Integrations…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@에서 암호를 가져오면 최대 %2$d개의 키체인 항목을 읽습니다. 각 항목의 소유 앱은 %1$@입니다. 따라서 macOS는 항목마다 로그인 암호를 묻습니다. 각 메시지에서 '항상 허용'을 클릭하면 TablePro에 영구 접근 권한을 부여합니다. 나머지 항목을 건너뛰려면 아무 메시지에서나 취소를 클릭하십시오." + "value" : "통합…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@ uygulamasından parola içe aktarma en fazla %2$d anahtar zinciri öğesi okur. Her öğe %1$@ uygulamasına ait olduğu için macOS her öğe için bir kez oturum açma parolanızı sorar. TablePro'ya kalıcı erişim vermek için her istemde Her Zaman İzin Ver'e tıklayın. Kalanları atlamak için herhangi bir istemi iptal edin." + "value" : "Entegrasyonlar…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập mật khẩu từ %1$@ sẽ đọc tối đa %2$d mục trong keychain. macOS hỏi mật khẩu đăng nhập của bạn một lần cho mỗi mục vì mỗi mục thuộc sở hữu của %1$@. Bấm Luôn cho phép ở mỗi lời nhắc để cấp cho TablePro quyền truy cập vĩnh viễn. Hủy bất kỳ lời nhắc nào để bỏ qua phần còn lại." + "value" : "Tích hợp…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "从 %1$@ 导入密码最多会读取 %2$d 个钥匙串项。由于每一项都归 %1$@ 所有,macOS 会针对每一项要求输入一次登录密码。请在每个提示中点按“始终允许”以授予 TablePro 永久访问权限。取消任一提示将跳过其余项。" + "value" : "集成…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "從 %1$@ 匯入密碼最多會讀取 %2$d 個鑰匙圈項目。由於每一項都歸 %1$@ 所有,macOS 會針對每一項要求輸入一次登入密碼。請在每個提示中點按「總是允許」以授予 TablePro 永久存取權限。取消任一提示將略過其餘項目。" + "value" : "整合…" } } } }, - "Importing…" : { + "Interactive Data Grid" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "가져오는 중…" + "value" : "대화형 데이터 그리드" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İçe aktarılıyor…" + "value" : "Etkileşimli Veri Tablosu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang nhập…" + "value" : "Lưới dữ liệu tương tác" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导入中…" + "value" : "交互式数据网格" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯入中…" + "value" : "互動式資料格線" } } } }, - "Imports" : { + "Interface" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터 가져오기" + "value" : "인터페이스" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İçe Aktarmalar" + "value" : "Arayüz" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập dữ liệu" + "value" : "Giao diện" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导入" + "value" : "界面" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯入" + "value" : "介面" } } } }, - "IN Clause" : { + "Invalid JSON" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "IN 절" + "value" : "잘못된 JSON" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "IN İfadesi" + "value" : "Geçersiz JSON" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mệnh đề IN" + "value" : "JSON không hợp lệ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "IN 子句" + "value" : "无效的 JSON" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "IN 子句" + "value" : "JSON 無效" } } } }, - "in list" : { + "Invalid JSON: %@" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "목록에 있음" + "value" : "잘못된 JSON: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "listede" + "value" : "Geçersiz JSON: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "trong danh sách" + "value" : "JSON không hợp lệ: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在列表中" + "value" : "无效的 JSON: %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在清單中" + "value" : "JSON 無效:%@" } } } }, - "In-memory data store and cache" : { + "Invalid LSP response" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "인메모리 데이터 저장소 및 캐시" + "value" : "잘못된 LSP 응답" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bellek içi veri deposu ve önbellek" + "value" : "Geçersiz LSP yanıtı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kho dữ liệu và cache trong bộ nhớ" + "value" : "Phản hồi LSP không hợp lệ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "内存数据存储与缓存" + "value" : "无效的 LSP 响应" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "記憶體內資料儲存與快取" + "value" : "LSP 回應無效" } } } }, - "Inactive" : { + "Invalid MongoDB syntax: %@" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "비활성" + "value" : "잘못된 MongoDB 구문: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Etkin Değil" + "value" : "Geçersiz MongoDB sözdizimi: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không hoạt động" + "value" : "Cú pháp MongoDB không hợp lệ: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "非活跃" + "value" : "无效的 MongoDB 语法: %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "非作用中" + "value" : "MongoDB 語法無效:%@" } } } }, - "Include" : { - - }, - "Include approximate row counts (default false)" : { - "extractionState" : "stale", + "Invalid PHP Serialized Value" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "대략적인 행 수 포함(기본값: false)" + "value" : "잘못된 PHP 직렬화 값" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yaklaşık satır sayılarını dahil et (varsayılan false)" + "value" : "Geçersiz PHP Serileştirilmiş Değer" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bao gồm số hàng ước tính (mặc định false)" + "value" : "Giá trị PHP serialized không hợp lệ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "包含近似行数(默认 false)" + "value" : "无效的 PHP 序列化值" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "包含近似列數(預設為 false)" + "value" : "無效的 PHP 序列化值" } } } }, - "Include at least one object to generate a script for it." : { - - }, - "Include at least one table to generate a script for it." : { - - }, - "Include column headers" : { - "extractionState" : "stale", + "Invalid UUID: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열 머리글 포함" + "value" : "잘못된 UUID: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sütun başlıklarını dahil et" + "value" : "Geçersiz UUID: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bao gồm tiêu đề cột" + "value" : "UUID không hợp lệ: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "包含列标题" + "value" : "无效的 UUID:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "包含欄位標題" + "value" : "UUID 無效:%@" } } } }, - "Include Credentials" : { + "Invalid argument: %@" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "자격 증명 포함" + "value" : "잘못된 인수: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kimlik Bilgilerini Dahil Et" + "value" : "Geçersiz bağımsız değişken: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bao gồm Thông tin Đăng nhập" + "value" : "Đối số không hợp lệ: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "包含凭据" + "value" : "无效的参数: %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "包含認證資訊" + "value" : "無效的引數:%@" } } } }, - "Include current query" : { + "Invalid column indices for reorder operation" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "현재 쿼리 포함" + "value" : "재정렬 작업의 열 인덱스가 올바르지 않습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Mevcut sorguyu dahil et" + "value" : "Yeniden sıralama işlemi için geçersiz sütun dizinleri" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bao gồm truy vấn hiện tại" + "value" : "Chỉ số cột không hợp lệ cho thao tác sắp xếp lại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "包含当前查询" + "value" : "重排序操作的列索引无效" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "包含目前查詢" + "value" : "重新排序操作的欄位索引無效" } } } }, - "Include database schema" : { + "Invalid connection URL format" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 스키마 포함" + "value" : "잘못된 연결 URL 형식" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı şemasını dahil et" + "value" : "Geçersiz bağlantı URL biçimi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bao gồm schema cơ sở dữ liệu" + "value" : "Định dạng URL kết nối không hợp lệ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "包含数据库 Schema" + "value" : "连接 URL 格式无效" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "包含資料庫綱要" + "value" : "連線 URL 格式無效" } } } }, - "Include diagnostics" : { - "extractionState" : "stale", + "Invalid data format: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "진단 정보 포함" + "value" : "잘못된 데이터 형식: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tanılamaları dahil et" + "value" : "Geçersiz veri biçimi: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đính kèm thông tin chẩn đoán" + "value" : "Định dạng dữ liệu không hợp lệ: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "包含诊断信息" + "value" : "数据格式无效: %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "包含診斷資訊" + "value" : "資料格式無效:%@" } } } }, - "Include every object in this group" : { - - }, - "Include Every Table" : { - - }, - "Include every table in this group" : { - - }, - "Include in iCloud Sync" : { + "Invalid endpoint: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud 동기화에 포함" + "value" : "잘못된 엔드포인트: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud Eşitlemesine Dahil Et" + "value" : "Geçersiz uç nokta: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đưa vào đồng bộ iCloud" + "value" : "Endpoint không hợp lệ: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "包含在 iCloud 同步中" + "value" : "无效的 Endpoint: %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "納入 iCloud 同步" + "value" : "無效的 Endpoint:%@" } } } }, - "Include NULL values" : { + "Invalid file encoding. Try a different encoding option." : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "NULL 값 포함" + "value" : "파일 인코딩이 올바르지 않습니다. 다른 인코딩 옵션을 사용해 보십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "NULL değerleri dahil et" + "value" : "Geçersiz dosya kodlaması. Farklı bir kodlama seçeneği deneyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bao gồm giá trị NULL" + "value" : "Mã hóa tệp không hợp lệ. Hãy thử tùy chọn mã hóa khác." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "包含 NULL 值" + "value" : "文件编码无效。请尝试其他编码选项。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "包含 NULL 值" + "value" : "檔案編碼無效。請嘗試其他編碼選項。" } } } }, - "Include passwords" : { + "Invalid hex" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "암호 포함" + "value" : "잘못된 16진수" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Parolaları dahil et" + "value" : "Geçersiz hex" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bao gồm mật khẩu" + "value" : "Hex không hợp lệ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "包含密码" + "value" : "无效的十六进制" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "包含密碼" + "value" : "十六進位無效" } } } }, - "Include query results" : { + "Invalid license key format. Check for typos and try again." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 결과 포함" + "value" : "라이선스 키 형식이 올바르지 않습니다. 오타를 확인한 후 다시 시도하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgu sonuçlarını dahil et" + "value" : "Geçersiz lisans anahtarı biçimi. Yazım hatalarını kontrol edip tekrar deneyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bao gồm kết quả truy vấn" + "value" : "Định dạng mã giấy phép không hợp lệ. Kiểm tra lỗi chính tả và thử lại." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "包含查询结果" + "value" : "许可证密钥格式无效。请检查是否有拼写错误后重试。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "包含查詢結果" + "value" : "授權金鑰格式無效。請檢查是否有拼字錯誤後再試一次。" } } } }, - "Include this filter when applying" : { + "Invalid pattern" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "적용 시 이 필터 포함" + "value" : "잘못된 패턴" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Uygularken bu filtreyi dahil et" + "value" : "Geçersiz desen" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bao gồm bộ lọc này khi áp dụng" + "value" : "Mẫu không hợp lệ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "应用时包含此筛选" + "value" : "模式无效" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "套用時包含這個篩選條件" + "value" : "模式無效" } } } }, - "Include this object" : { - - }, - "Include this row" : { - - }, - "Include this table and compare again to see its rows." : { - - }, - "Include this table in the comparison" : { - - }, - "Incompatible plugin version" : { - "extractionState" : "stale", + "Invalid plugin bundle: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "호환되지 않는 플러그인 버전" + "value" : "잘못된 플러그인 번들: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Uyumsuz eklenti sürümü" + "value" : "Geçersiz eklenti paketi: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phiên bản plugin không tương thích" + "value" : "Plugin bundle không hợp lệ: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "插件版本不兼容" + "value" : "无效的插件包: %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "外掛版本不相容" + "value" : "外掛套件無效:%@" } } } }, - "Incorrect passphrase" : { - "extractionState" : "stale", + "Invalid username or password" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "암호가 올바르지 않습니다" + "value" : "사용자 이름 또는 암호가 올바르지 않습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yanlış parola" + "value" : "Geçersiz kullanıcı adı veya parola" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cụm mật khẩu không đúng" + "value" : "Tên đăng nhập hoặc mật khẩu không hợp lệ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "密码短语不正确" + "value" : "用户名或密码无效" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "密碼短語不正確" + "value" : "使用者名稱或密碼無效" } } } }, - "Increase font size" : { + "Invisibles" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "글꼴 크기 늘리기" + "value" : "보이지 않는 문자" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yazı boyutunu büyüt" + "value" : "Görünmezler" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tăng cỡ chữ" + "value" : "Ký tự ẩn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "增大字号" + "value" : "不可见字符" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "增大字型大小" + "value" : "不可見字" } } } }, - "Increase Text Size" : { + "Items" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "텍스트 크기 늘리기" + "value" : "항목" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Metin Boyutunu Büyüt" + "value" : "Öğeler" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tăng cỡ chữ" + "value" : "Mục" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "增大文字大小" + "value" : "项目" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "增大文字大小" + "value" : "項目" } } } }, - "Indent" : { + "JSON" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "들여쓰기" + "value" : "JSON" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Girintile" + "value" : "JSON" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thụt lề" + "value" : "JSON" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "缩进" + "value" : "JSON" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "縮排" + "value" : "JSON" } } } }, - "INDEX" : { - "extractionState" : "stale", + "JSON Too Large" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "INDEX" + "value" : "JSON이 너무 큼" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İNDEKS" + "value" : "JSON Çok Büyük" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "CHỈ MỤC" + "value" : "JSON quá lớn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "索引" + "value" : "JSON 过大" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "索引" - } - } - } - }, - "Index %@ matches %@ on the target but the names differ." : { - "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Index %1$@ matches %2$@ on the target but the names differ." + "value" : "JSON 過大" } } } }, - "Index name" : { + "JSON Viewer" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "인덱스 이름" + "value" : "JSON 뷰어" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İndeks adı" + "value" : "JSON Görüntüleyici" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên chỉ mục" + "value" : "Trình xem JSON" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "索引名称" + "value" : "JSON 查看器" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "索引名稱" + "value" : "JSON 檢視器" } } } }, - "Index proposal on %@" : { - - }, - "Index size" : { - - }, - "Index Size" : { + "JSON-style document database" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "인덱스 크기" + "value" : "JSON 형식의 문서 데이터베이스" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İndeks Boyutu" + "value" : "JSON tarzı belge veritabanı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kích thước chỉ mục" + "value" : "Cơ sở dữ liệu document kiểu JSON" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "索引大小" + "value" : "JSON 风格的文档数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "索引大小" + "value" : "JSON 風格的文件資料庫" } } } }, - "Index type reported by the engine" : { - - }, - "Indexed columns in order" : { - - }, - "Indexes" : { + "JSON: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "인덱스" + "value" : "JSON: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İndeksler" + "value" : "JSON: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chỉ mục" + "value" : "JSON: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "索引" + "value" : "JSON:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "索引" + "value" : "JSON:%@" } } } }, - "Indexes on the table" : { - - }, - "Info" : { + "Join the two columns into one, placing this text between the values." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "정보" + "value" : "두 열을 하나로 결합하고 값 사이에 이 텍스트를 넣습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bilgi" + "value" : "İki sütunu tek sütunda birleştirir ve değerlerin arasına bu metni koyar." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thông tin" + "value" : "Gộp hai cột thành một, đặt đoạn văn bản này giữa các giá trị." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "信息" + "value" : "将两列合并为一列,并在两个值之间插入这段文本。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資訊" + "value" : "將兩個欄位合併為一個,並在兩個值之間插入這段文字。" } } } }, - "Inherited automatically." : { + "Journal Mode" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "자동으로 상속됨." + "value" : "저널 모드" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Otomatik olarak devralındı." + "value" : "Günlük Modu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Được kế thừa tự động." + "value" : "Chế độ journal" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "自动继承。" + "value" : "日志模式" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "自動繼承。" + "value" : "日誌模式" } } } }, - "Inherited from %@" : { + "Jump Hosts" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@에서 상속됨" + "value" : "점프 호스트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ kaynağından devralındı" + "value" : "Atlama Sunucuları" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kế thừa từ %@" + "value" : "Jump Host" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "继承自 %@" + "value" : "Jump Host" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "繼承自 %@" + "value" : "跳板主機" } } } }, - "Inline Configuration" : { + "Jump host configuration is invalid" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Inline Configuration" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "인라인 구성" + "value" : "점프 호스트 구성이 올바르지 않습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satır İçi Yapılandırma" + "value" : "Atlama sunucusu yapılandırması geçersiz" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cấu hình nội tuyến" + "value" : "Cấu hình jump host không hợp lệ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "内联配置" + "value" : "跳板主机配置无效" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "行內設定" + "value" : "跳板主機設定無效" } } } }, - "Inline SQL suggestions appear as you type. Press Tab to accept, Escape to dismiss." : { + "Jump host key not found: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "입력하는 동안 인라인 SQL 제안이 표시됩니다. Tab 키를 누르면 수락하고 Escape 키를 누르면 닫습니다." + "value" : "점프 호스트 키를 찾을 수 없습니다: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satır içi SQL önerileri yazarken görünür. Kabul etmek için Tab, kapatmak için Escape tuşuna basın." + "value" : "Atlama sunucusu anahtarı bulunamadı: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gợi ý SQL nội tuyến hiện ra khi bạn gõ. Nhấn Tab để chấp nhận, Esc để bỏ qua." + "value" : "Không tìm thấy khóa của jump host: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "内联 SQL 建议会在输入时出现。按 Tab 接受,按 Esc 取消。" + "value" : "未找到跳板主机密钥:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "行內 SQL 建議會在輸入時出現。按 Tab 接受,按 Esc 關閉。" + "value" : "找不到跳板主機金鑰:%@" } } } }, - "Inline Suggestions" : { + "Jump hosts are connected in order before reaching the SSH server above. Only key and agent auth are supported for jumps." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "인라인 제안" + "value" : "점프 호스트에 순서대로 연결한 후 위의 SSH 서버에 연결합니다. 점프 연결에는 키 및 에이전트 인증만 지원됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satır İçi Öneriler" + "value" : "Atlama sunucuları yukarıdaki SSH sunucusuna ulaşmadan önce sırayla bağlanır. Atlamalar için yalnızca anahtar ve aracı kimlik doğrulaması desteklenir." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gợi ý nội tuyến" + "value" : "Jump host được kết nối theo thứ tự trước khi đến SSH server phía trên. Chỉ hỗ trợ xác thực bằng khoá và agent cho các jump." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "行内建议" + "value" : "Jump Host 按顺序连接后再连接到上方的 SSH 服务器。跳转仅支持密钥和 Agent 认证。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "行內建議" + "value" : "跳板主機會依序連線,之後才連到上方的 SSH 伺服器。跳板僅支援金鑰與 Agent 認證。" } } } }, - "Insert" : { + "Jump to lines" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "삽입" + "value" : "줄로 이동" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ekle" + "value" : "Satırlara git" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chèn" + "value" : "Nhảy tới dòng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "插入" + "value" : "跳转到相应行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "插入" + "value" : "跳至相應的行" } } } }, - "Insert at most %d rows per call." : { - - }, - "Insert Column" : { + "Keep Backing Up" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열 삽입" + "value" : "백업 계속" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sütun Ekle" + "value" : "Yedeklemeye Devam Et" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chèn cột" + "value" : "Tiếp tục sao lưu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "插入列" + "value" : "继续备份" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "插入欄位" + "value" : "繼續備份" } } } }, - "Insert Column After" : { - "extractionState" : "stale", + "Keep My Changes" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "뒤에 열 삽입" + "value" : "내 변경 사항 유지" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sonrasına Sütun Ekle" + "value" : "Değişikliklerimi Koru" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chèn cột sau" + "value" : "Giữ thay đổi của tôi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在后面插入列" + "value" : "保留我的更改" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在後方插入欄位" + "value" : "保留我的變更" } } } }, - "Insert Column Before" : { + "Keep Other Version" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "앞에 열 삽입" + "value" : "다른 버전 유지" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Öncesine Sütun Ekle" + "value" : "Keep Other Version" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chèn cột trước" + "value" : "Giữ phiên bản khác" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在前面插入列" + "value" : "保留其他版本" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在前方插入欄位" + "value" : "保留其他版本" } } } }, - "Insert Column Left" : { + "Keep Restoring" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "왼쪽에 열 삽입" + "value" : "복원 계속" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sola Sütun Ekle" + "value" : "Geri Yüklemeye Devam Et" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chèn cột bên trái" + "value" : "Tiếp tục khôi phục" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在左侧插入列" + "value" : "继续恢复" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在左方插入欄位" + "value" : "繼續還原" } } } }, - "Insert Column Right" : { + "Keep Running" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "오른쪽에 열 삽입" + "value" : "계속 실행" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sağa Sütun Ekle" + "value" : "Çalışmaya Devam Et" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chèn cột bên phải" + "value" : "Tiếp tục chạy" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在右侧插入列" + "value" : "继续运行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在右方插入欄位" + "value" : "繼續執行" } } } }, - "Insert in Editor" : { + "Keep This Mac's Version" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "편집기에 삽입" + "value" : "이 Mac의 버전 유지" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Düzenleyiciye Ekle" + "value" : "Keep This Mac's Version" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chèn vào trình soạn thảo" + "value" : "Giữ phiên bản máy Mac này" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "插入到编辑器" + "value" : "保留此 Mac 的版本" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "插入到編輯器" + "value" : "保留此 Mac 的版本" } } } }, - "Insert into editor" : { + "Keep entries for:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "편집기에 삽입" + "value" : "항목 보관 기간:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Düzenleyiciye ekle" + "value" : "Kayıtları saklama süresi:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chèn vào trình soạn thảo" + "value" : "Giữ mục trong:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "插入到编辑器" + "value" : "保留记录:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "插入到編輯器" + "value" : "保留記錄:" } } } }, - "Insert Row" : { + "Keep leading zeros in ZIP codes, phone numbers, and IDs by outputting all values as strings" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "행 삽입" + "value" : "우편번호, 전화번호 및 ID의 앞자리 0을 유지하려면 모든 값을 문자열로 출력합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satır Ekle" + "value" : "Keep leading zeros in ZIP codes, phone numbers, and IDs by outputting all values as strings" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thêm dòng" + "value" : "Giữ số 0 đầu trong mã bưu chính, số điện thoại và ID bằng cách xuất tất cả giá trị dưới dạng chuỗi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "插入行" + "value" : "通过将所有值输出为字符串来保留邮编、电话号码和 ID 中的前导零" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "插入列" - } - } - } - }, - "Insert row %@ into %@" : { - "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Insert row %1$@ into %2$@" + "value" : "將所有值輸出為字串,以保留郵遞區號、電話號碼和 ID 中的前導零" } } } }, - "Insert Row Above" : { + "Kerberos Principal" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "위에 행 삽입" + "value" : "Kerberos 보안 주체" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Üste Satır Ekle" + "value" : "Kerberos Principal" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chèn dòng phía trên" + "value" : "Kerberos Principal" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在上方插入行" + "value" : "Kerberos Principal" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在上方插入列" + "value" : "Kerberos Principal" + } + } + } + }, + "Kerberos authentication failed: %@" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "Kerberos 인증 실패: %@" } } } }, - "Insert Row Below" : { + "Key" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "아래에 행 삽입" + "value" : "키" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Alta Satır Ekle" + "value" : "Anahtar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chèn dòng phía dưới" + "value" : "Khóa" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在下方插入行" + "value" : "键" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在下方插入列" + "value" : "鍵" } } } }, - "Insert Rows" : { + "Key %@ was not found in the secret JSON." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "행 삽입" + "value" : "비밀 JSON에서 %@ 키를 찾을 수 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satır Ekle" + "value" : "%@ anahtarı secret JSON içinde bulunamadı." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thêm dòng" + "value" : "Không tìm thấy khóa %@ trong JSON secret." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "插入行" + "value" : "在 secret JSON 中未找到键 %@。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "插入列" + "value" : "在 secret JSON 中找不到鍵 %@。" } } } }, - "Insert rows into a table using bound parameters, so values are never spliced into SQL text. Needs tools:write and goes through the connection's Safe Mode approval." : { - - }, - "Insert rows the target is missing" : { - - }, - "INSERT Statement(s)" : { + "Key File" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "INSERT 문" + "value" : "키 파일" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "INSERT İfade(si)" + "value" : "Anahtar Dosyası" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Câu lệnh INSERT" + "value" : "Tệp khóa" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "INSERT 语句" + "value" : "密钥文件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "INSERT 陳述式" + "value" : "金鑰檔案" } } } }, - "INSERT, UPDATE, or DELETE" : { - - }, - "Inserted" : { + "Key Passphrase" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "삽입됨" + "value" : "키 암호" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklendi" + "value" : "Anahtar Parolası" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã chèn" + "value" : "Cụm mật khẩu của khóa" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已插入" + "value" : "密钥口令" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已插入" + "value" : "金鑰密碼短語" } } } }, - "inserting %d row(s)" : { - - }, - "Inside an array" : { - - }, - "Inspector" : { - "extractionState" : "stale", + "Key Prefix Root" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "인스펙터" + "value" : "키 접두사 루트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Denetçi" + "value" : "Anahtar Önek Kökü" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thanh kiểm tra" + "value" : "Tiền tố gốc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "检查器" + "value" : "键前缀根" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "檢閱器" + "value" : "索引鍵前綴根目錄" } } } }, - "Install" : { + "Key column %@ is not present on both sides. Choose a different key." : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "키 열 %@이(가) 양쪽에 모두 있지는 않습니다. 다른 키를 선택하십시오.", + "state" : "translated" + } + } + } + }, + "Key columns" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "키 열", + "state" : "translated" + } + } + } + }, + "Key pattern" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "설치" + "value" : "키 패턴" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yükle" + "value" : "Anahtar deseni" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cài đặt" + "value" : "Mẫu khóa" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "安装" + "value" : "键模式" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "安裝" + "value" : "鍵模式" } } } }, - "Install from File..." : { - "extractionState" : "stale", + "Key pattern, e.g. user:*" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "파일에서 설치..." + "value" : "키 패턴(예: user:*)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dosyadan Yükle..." + "value" : "Anahtar deseni, örn. user:*" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cài đặt từ tập tin..." + "value" : "Mẫu khóa, ví dụ user:*" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "从文件安装..." + "value" : "键模式,例如 user:*" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "從檔案安裝…" + "value" : "鍵模式,例如 user:*" } } } }, - "Install Plugin" : { + "Key-Value" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플러그인 설치" + "value" : "키-값" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklentiyi Yükle" + "value" : "Anahtar-Değer" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cài đặt Plugin" + "value" : "Key-Value" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "安装插件" + "value" : "键值" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "安裝外掛" + "value" : "鍵值" } } } }, - "Install plugin from file" : { + "Keyboard" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "파일에서 플러그인 설치" + "value" : "키보드" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklentiyi dosyadan yükle" + "value" : "Klavye" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cài đặt plugin từ tệp" + "value" : "Bàn phím" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "从文件安装插件" + "value" : "键盘" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "從檔案安裝外掛" + "value" : "鍵盤" } } } }, - "Install Plugin…" : { + "Keyboard Interactive" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플러그인 설치…" + "value" : "키보드 대화형" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklenti Yükle…" + "value" : "Klavye Etkileşimli" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cài plugin…" + "value" : "Keyboard Interactive" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "安装插件…" + "value" : "Keyboard Interactive" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "安裝外掛…" + "value" : "Keyboard Interactive" } } } }, - "Install the CLI client for %@" : { - "extractionState" : "stale", + "Keys" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@용 CLI 클라이언트 설치" + "value" : "키" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ için CLI istemcisini yükleyin" + "value" : "Anahtarlar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cài đặt CLI client cho %@" + "value" : "Khóa" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "安装 %@ 的 CLI 客户端" + "value" : "键" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "安裝 %@ 的 CLI 用戶端" + "value" : "鍵" } } } }, - "Install Theme" : { + "Keys are provided by the SSH agent (e.g. 1Password, ssh-agent)." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테마 설치" + "value" : "키는 SSH 에이전트(예: 1Password, ssh-agent)에서 제공됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Temayı Yükle" + "value" : "Anahtarlar SSH aracı tarafından sağlanır (örn. 1Password, ssh-agent)." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cài đặt chủ đề" + "value" : "Khóa được cung cấp bởi SSH agent (ví dụ: 1Password, ssh-agent)." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "安装主题" + "value" : "密钥由 SSH Agent 提供(如 1Password、ssh-agent)。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "安裝主題" + "value" : "金鑰由 SSH Agent 提供(如 1Password、ssh-agent)。" } } } }, - "Installation Failed" : { + "Keyword" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "설치 실패" + "value" : "키워드" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yükleme Başarısız" + "value" : "Anahtar Kelime" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cài đặt thất bại" + "value" : "Từ khoá" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "安装失败" + "value" : "关键字" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "安裝失敗" + "value" : "關鍵字" } } } }, - "Installed" : { + "Keyword cannot contain spaces" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "설치됨" + "value" : "키워드에는 공백을 포함할 수 없습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yüklendi" + "value" : "Anahtar kelime boşluk içeremez" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã cài đặt" + "value" : "Từ khoá không được chứa khoảng trắng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已安装" + "value" : "关键字不能包含空格" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已安裝" + "value" : "關鍵字不能包含空格" } } } }, - "Installed Plugins" : { + "Keyword:" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "설치된 플러그인" + "value" : "키워드:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yüklü Eklentiler" + "value" : "Anahtar Kelime:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Plugin đã cài đặt" + "value" : "Từ khoá:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已安装的插件" + "value" : "关键字:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已安裝的外掛" + "value" : "關鍵字:" } } } }, - "Installing…" : { + "Kind" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "설치 중…" + "value" : "종류" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yükleniyor…" + "value" : "Tür" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang cài đặt…" + "value" : "Loại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在安装…" + "value" : "类型" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "安裝中…" + "value" : "類型" } } } }, - "Instance connection name" : { + "Kind:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "인스턴스 연결 이름" + "value" : "종류:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Örnek bağlantı adı" + "value" : "Tür:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên kết nối instance" + "value" : "Loại:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "实例连接名称" + "value" : "类型:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "執行個體連線名稱" + "value" : "類型:" } } } }, - "Instance connection name must be project:region:instance" : { + "LSP process exited with code %d" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "인스턴스 연결 이름은 project:region:instance 형식이어야 합니다" + "value" : "LSP 프로세스가 종료되었습니다(코드: %d)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Örnek bağlantı adı project:region:instance biçiminde olmalı" + "value" : "LSP süreci %d koduyla sonlandı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên kết nối instance phải theo dạng project:region:instance" + "value" : "Tiến trình LSP đã thoát với mã %d" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "实例连接名称必须为 project:region:instance" + "value" : "LSP 进程已退出,代码为 %d" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "執行個體連線名稱必須為 project:region:instance" + "value" : "LSP 處理程序已結束,結束代碼為 %d" } } } }, - "Integer" : { + "LSP process is not running" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "정수" + "value" : "LSP 프로세스가 실행 중이 아닙니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tamsayı" + "value" : "LSP süreci çalışmıyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Số nguyên" + "value" : "Tiến trình LSP không chạy" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "整数" + "value" : "LSP 进程未运行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "整數" + "value" : "LSP 處理程序未在執行" } } } }, - "Integrations" : { + "LSP request was cancelled" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "통합" + "value" : "LSP 요청이 취소되었습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Entegrasyonlar" + "value" : "LSP isteği iptal edildi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tích hợp" + "value" : "Yêu cầu LSP đã bị hủy" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "集成" + "value" : "LSP 请求已取消" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "整合" + "value" : "LSP 要求已取消" } } } }, - "Integrations Activity" : { + "LSP server error (%d): %@" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "LSP server error (%1$d): %2$@" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "통합 활동" + "value" : "LSP 서버 오류(%1$d): %2$@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Entegrasyon Etkinliği" + "value" : "LSP sunucu hatası (%d): %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hoạt động tích hợp" + "value" : "Lỗi LSP server (%d): %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "集成活动" + "value" : "LSP 服务器错误(%d):%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "整合活動" + "value" : "LSP 伺服器錯誤(%1$d):%2$@" } } } }, - "Integrations: Failed" : { - "extractionState" : "stale", + "Language:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "통합: 실패" + "value" : "언어:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Entegrasyonlar: Başarısız" + "value" : "Dil:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tích hợp: Thất bại" + "value" : "Ngôn ngữ:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "集成:失败" + "value" : "语言:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "整合:失敗" + "value" : "語言:" } } } }, - "Integrations: Running" : { - "extractionState" : "stale", + "Large" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "통합: 실행 중" + "value" : "큼" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Entegrasyonlar: Çalışıyor" + "value" : "Büyük" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tích hợp: Đang chạy" + "value" : "Lớn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "集成:运行中" + "value" : "大" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "整合:執行中" + "value" : "大" } } } }, - "Integrations: Running (%d clients)" : { - "extractionState" : "stale", + "Last 24 hours" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "통합: 실행 중(클라이언트 %d개)" + "value" : "최근 24시간" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Entegrasyonlar: Çalışıyor (%d istemci)" + "value" : "Son 24 saat" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tích hợp: Đang chạy (%d client)" + "value" : "24 giờ qua" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "集成:运行中(%d 个客户端)" + "value" : "过去 24 小时" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "整合:執行中(%d 個用戶端)" + "value" : "過去 24 小時" } } } }, - "Integrations: Starting..." : { - "extractionState" : "stale", + "Last 30 days" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "통합: 시작 중..." + "value" : "최근 30일" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Entegrasyonlar: Başlatılıyor..." + "value" : "Son 30 gün" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tích hợp: Đang khởi động..." + "value" : "30 ngày qua" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "集成:启动中…" + "value" : "过去 30 天" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "整合:啟動中…" + "value" : "過去 30 天" } } } }, - "Integrations: Stopped" : { - "extractionState" : "stale", + "Last 4 Weeks" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "통합: 중지됨" + "value" : "최근 4주" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Entegrasyonlar: Durduruldu" + "value" : "Son 4 Hafta" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tích hợp: Đã dừng" + "value" : "4 tuần qua" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "集成:已停止" + "value" : "最近 4 周" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "整合:已停止" + "value" : "最近 4 週" } } } }, - "Integrations…" : { + "Last 7 Days" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "통합…" + "value" : "최근 7일" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Entegrasyonlar…" + "value" : "Son 7 Gün" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tích hợp…" + "value" : "7 ngày qua" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "集成…" + "value" : "最近 7 天" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "整合…" + "value" : "最近 7 天" } } } }, - "Interactive Data Grid" : { + "Last 7 days" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "대화형 데이터 그리드" + "value" : "최근 7일" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Etkileşimli Veri Tablosu" + "value" : "Son 7 gün" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lưới dữ liệu tương tác" + "value" : "7 ngày qua" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "交互式数据网格" + "value" : "过去 7 天" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "互動式資料格線" + "value" : "過去 7 天" } } } }, - "Interface" : { + "Last Activity" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "인터페이스" + "value" : "마지막 활동" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Arayüz" + "value" : "Son Etkinlik" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giao diện" + "value" : "Hoạt động gần nhất" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "界面" + "value" : "最近活动" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "介面" + "value" : "最近活動" } } } }, - "Invalid argument: %@" : { - "extractionState" : "stale", + "Last Hour" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "잘못된 인수: %@" + "value" : "최근 1시간" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geçersiz bağımsız değişken: %@" + "value" : "Son Bir Saat" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đối số không hợp lệ: %@" + "value" : "1 giờ qua" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无效的参数: %@" + "value" : "最近 1 小时" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無效的引數:%@" + "value" : "最近 1 小時" } } } }, - "Invalid column indices for reorder operation" : { + "Last Page" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "재정렬 작업의 열 인덱스가 올바르지 않습니다" + "value" : "마지막 페이지" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeniden sıralama işlemi için geçersiz sütun dizinleri" + "value" : "Son Sayfa" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chỉ số cột không hợp lệ cho thao tác sắp xếp lại" + "value" : "Trang cuối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重排序操作的列索引无效" + "value" : "最后一页" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重新排序操作的欄位索引無效" + "value" : "最後一頁" } } } }, - "Invalid connection URL format" : { + "Last Synced:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "잘못된 연결 URL 형식" + "value" : "마지막 동기화:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geçersiz bağlantı URL biçimi" + "value" : "Son Eşitlendi:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Định dạng URL kết nối không hợp lệ" + "value" : "Đồng bộ lần cuối:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接 URL 格式无效" + "value" : "上次同步:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線 URL 格式無效" + "value" : "上次同步:" } } } }, - "Invalid data format: %@" : { + "Last page" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "잘못된 데이터 형식: %@" + "value" : "마지막 페이지" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geçersiz veri biçimi: %@" + "value" : "Son sayfa" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Định dạng dữ liệu không hợp lệ: %@" + "value" : "Trang cuối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "数据格式无效: %@" + "value" : "最后一页" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料格式無效:%@" + "value" : "最後一頁" } } } }, - "Invalid endpoint: %@" : { + "Last query execution summary" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "잘못된 엔드포인트: %@" + "value" : "마지막 쿼리 실행 요약" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geçersiz uç nokta: %@" + "value" : "Son sorgu çalıştırma özeti" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Endpoint không hợp lệ: %@" + "value" : "Tổng kết thực thi truy vấn gần nhất" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无效的 Endpoint: %@" + "value" : "上次查询执行摘要" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無效的 Endpoint:%@" + "value" : "上次查詢執行摘要" } } } }, - "Invalid file encoding. Try a different encoding option." : { - "extractionState" : "stale", + "Last query execution time" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "파일 인코딩이 올바르지 않습니다. 다른 인코딩 옵션을 사용해 보십시오." + "value" : "마지막 쿼리 실행 시간" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geçersiz dosya kodlaması. Farklı bir kodlama seçeneği deneyin." + "value" : "Son sorgu çalıştırma süresi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mã hóa tệp không hợp lệ. Hãy thử tùy chọn mã hóa khác." + "value" : "Thời gian thực thi truy vấn gần nhất" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "文件编码无效。请尝试其他编码选项。" + "value" : "上次查询执行时间" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "檔案編碼無效。請嘗試其他編碼選項。" + "value" : "上次查詢執行時間" } } } }, - "Invalid hex" : { + "Last query took %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "잘못된 16진수" + "value" : "마지막 쿼리 소요 시간: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geçersiz hex" + "value" : "Son sorgu %@ sürdü" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hex không hợp lệ" + "value" : "Truy vấn trước mất %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无效的十六进制" + "value" : "上次查询耗时 %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "十六進位無效" + "value" : "上次查詢耗時 %@" } } } }, - "Invalid JSON" : { + "Last query: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "잘못된 JSON" + "value" : "마지막 쿼리: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geçersiz JSON" + "value" : "Son sorgu: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "JSON không hợp lệ" + "value" : "Truy vấn gần nhất: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无效的 JSON" + "value" : "上次查询: %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "JSON 無效" + "value" : "上次查詢:%@" } } } }, - "Invalid JSON: %@" : { - "extractionState" : "stale", + "Last synced %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "잘못된 JSON: %@" + "value" : "마지막 동기화: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geçersiz JSON: %@" + "value" : "Son eşitleme %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "JSON không hợp lệ: %@" + "value" : "Đồng bộ lần cuối %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无效的 JSON: %@" + "value" : "上次同步 %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "JSON 無效:%@" + "value" : "上次同步 %@" } } } }, - "Invalid license key format. Check for typos and try again." : { + "Last updated" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "라이선스 키 형식이 올바르지 않습니다. 오타를 확인한 후 다시 시도하십시오." + "value" : "마지막 업데이트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geçersiz lisans anahtarı biçimi. Yazım hatalarını kontrol edip tekrar deneyin." + "value" : "Son güncelleme" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Định dạng mã giấy phép không hợp lệ. Kiểm tra lỗi chính tả và thử lại." + "value" : "Cập nhật lần cuối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "许可证密钥格式无效。请检查是否有拼写错误后重试。" + "value" : "最后更新" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "授權金鑰格式無效。請檢查是否有拼字錯誤後再試一次。" + "value" : "最後更新" } } } }, - "Invalid LSP response" : { + "Latency: %dms" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "잘못된 LSP 응답" + "value" : "지연 시간: %dms" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geçersiz LSP yanıtı" + "value" : "Gecikme: %dms" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phản hồi LSP không hợp lệ" + "value" : "Độ trễ: %dms" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无效的 LSP 响应" + "value" : "延迟:%dms" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "LSP 回應無效" + "value" : "延遲:%dms" } } } }, - "Invalid MongoDB syntax: %@" : { + "Latency: %lldms" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "잘못된 MongoDB 구문: %@" + "value" : "지연 시간: %lldms" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geçersiz MongoDB sözdizimi: %@" + "value" : "Gecikme: %lldms" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cú pháp MongoDB không hợp lệ: %@" + "value" : "Độ trễ: %lldms" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无效的 MongoDB 语法: %@" + "value" : "延迟: %lldms" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "MongoDB 語法無效:%@" + "value" : "延遲:%lldms" } } } }, - "Invalid pattern" : { + "Latest executed_at to include, Unix epoch seconds (inclusive, optional)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "잘못된 패턴" + "value" : "포함할 가장 최근 executed_at 값(Unix 에포크 초, 경계값 포함, 선택 사항)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geçersiz desen" + "value" : "Dahil edilecek en geç executed_at, Unix epoch saniyesi (dahil, isteğe bağlı)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mẫu không hợp lệ" + "value" : "Mốc executed_at muộn nhất được tính, giây Unix epoch (bao gồm mốc này, tùy chọn)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "模式无效" + "value" : "要包含的最晚 executed_at,Unix 纪元秒(含,可选)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "模式無效" + "value" : "要包含的最晚 executed_at,Unix 紀元秒(含此值,選填)" } } } }, - "Invalid PHP Serialized Value" : { + "Layout" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "잘못된 PHP 직렬화 값" + "value" : "레이아웃" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geçersiz PHP Serileştirilmiş Değer" + "value" : "Düzen" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giá trị PHP serialized không hợp lệ" + "value" : "Bố cục" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无效的 PHP 序列化值" + "value" : "布局" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無效的 PHP 序列化值" + "value" : "版面配置" } } } }, - "Invalid plugin bundle: %@" : { + "Layout for new connections on servers that support a database tree. Switch the current connection from the View menu." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "잘못된 플러그인 번들: %@" + "value" : "데이터베이스 트리를 지원하는 서버의 새 연결에 사용할 레이아웃입니다. 보기 메뉴에서 현재 연결의 레이아웃을 전환할 수 있습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geçersiz eklenti paketi: %@" + "value" : "Veritabanı ağacını destekleyen sunucularda yeni bağlantılar için düzen. Geçerli bağlantıyı Görünüm menüsünden değiştirin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Plugin bundle không hợp lệ: %@" + "value" : "Bố cục cho kết nối mới trên máy chủ hỗ trợ cây cơ sở dữ liệu. Chuyển đổi cho kết nối hiện tại từ menu Xem." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无效的插件包: %@" + "value" : "支持数据库树的服务器上新建连接所用的布局。可在“视图”菜单中切换当前连接的布局。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "外掛套件無效:%@" + "value" : "支援資料庫樹狀結構的伺服器上,新連線所用的版面配置。可從「檢視」選單切換目前連線的版面配置。" } } } }, - "Invalid username or password" : { + "Leave blank to connect without authentication. The password is stored in the macOS Keychain." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사용자 이름 또는 암호가 올바르지 않습니다" + "value" : "인증 없이 연결하려면 비워 두십시오. 암호는 macOS 키체인에 저장됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geçersiz kullanıcı adı veya parola" + "value" : "Kimlik doğrulamasız bağlanmak için boş bırakın. Parola macOS Keychain'de saklanır." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên đăng nhập hoặc mật khẩu không hợp lệ" + "value" : "Để trống để kết nối không cần xác thực. Mật khẩu được lưu trong macOS Keychain." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "用户名或密码无效" + "value" : "留空即可在不认证的情况下连接。密码保存在 macOS 钥匙串中。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "使用者名稱或密碼無效" + "value" : "留空即可在不驗證的情況下連線。密碼儲存在 macOS 鑰匙圈中。" } } } }, - "Invalid UUID: %@" : { + "Leave the principal and password blank to use your existing Kerberos ticket. Run kinit user@REALM.COM in Terminal first if you don't have one." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "잘못된 UUID: %@" + "value" : "기존 Kerberos 티켓을 사용하려면 보안 주체와 암호를 비워 두십시오. 티켓이 없으면 먼저 터미널에서 kinit user@REALM.COM을 실행하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geçersiz UUID: %@" + "value" : "Mevcut Kerberos biletinizi kullanmak için principal ve parolayı boş bırakın. Biletiniz yoksa önce Terminal'de kinit user@REALM.COM çalıştırın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "UUID không hợp lệ: %@" + "value" : "Để trống principal và mật khẩu để dùng vé Kerberos hiện có. Nếu chưa có, hãy chạy kinit user@REALM.COM trong Terminal trước." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无效的 UUID:%@" + "value" : "留空 principal 和密码即可使用现有的 Kerberos 票据。如果没有,请先在终端运行 kinit user@REALM.COM。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "UUID 無效:%@" + "value" : "留空 principal 和密碼即可使用現有的 Kerberos 票證。如果沒有,請先在終端機執行 kinit user@REALM.COM。" } } } }, - "Invisibles" : { + "Legacy UUID Encoding" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "보이지 않는 문자" + "value" : "레거시 UUID 인코딩" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Görünmezler" + "value" : "Eski UUID Kodlaması" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ký tự ẩn" + "value" : "Mã hoá UUID cũ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "不可见字符" + "value" : "旧版 UUID 编码" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "不可見字" + "value" : "舊版 UUID 編碼" } } } }, - "is empty" : { + "Length" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "비어 있음" + "value" : "길이" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "boş" + "value" : "Uzunluk" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "trống" + "value" : "Độ dài" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "为空" + "value" : "长度" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "為空" + "value" : "長度" } } } }, - "is not empty" : { + "Length:" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "비어 있지 않음" + "value" : "길이:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "boş değil" + "value" : "Uzunluk:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "không trống" + "value" : "Độ dài:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "不为空" + "value" : "长度:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "不為空" + "value" : "長度:" } } } }, - "is not NULL" : { + "License" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "NULL이 아님" + "value" : "라이선스" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "is not NULL" + "value" : "Lisans" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "không phải NULL" + "value" : "Giấy phép" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "不为 NULL" + "value" : "许可证" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "不為 NULL" + "value" : "授權" } } } }, - "is NULL" : { + "License Key:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "NULL임" + "value" : "라이선스 키:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "is NULL" + "value" : "Lisans Anahtarı:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "là NULL" + "value" : "Mã giấy phép:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "为 NULL" + "value" : "许可证密钥:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "為 NULL" + "value" : "授權金鑰:" } } } }, - "ISO 8601 (2024-12-31 23:59:59)" : { + "License Removed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "ISO 8601 (2024-12-31 23:59:59)" + "value" : "라이선스 제거됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "ISO 8601 (2024-12-31 23:59:59)" + "value" : "Lisans Kaldırıldı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "ISO 8601 (2024-12-31 23:59:59)" + "value" : "Giấy phép đã xoá" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "ISO 8601 (2024-12-31 23:59:59)" + "value" : "许可证已移除" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "ISO 8601 (2024-12-31 23:59:59)" + "value" : "授權已移除" } } } }, - "ISO 8601 connect time" : { - - }, - "ISO 8601 creation time" : { - - }, - "ISO 8601 last activity time" : { - - }, - "ISO 8601 last change time" : { - - }, - "ISO Date (2024-12-31)" : { + "License expired — sync paused" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "ISO 날짜 (2024-12-31)" + "value" : "라이선스 만료 — 동기화 일시 정지" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "ISO Tarih (2024-12-31)" + "value" : "Lisans süresi doldu — eşitleme duraklatıldı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "ISO ngày (2024-12-31)" + "value" : "Giấy phép hết hạn — tạm dừng đồng bộ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "ISO 日期 (2024-12-31)" + "value" : "许可证已过期 - 同步已暂停" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "ISO 日期 (2024-12-31)" + "value" : "授權已過期,同步已暫停" } } } }, - "Items" : { + "License expired, sync paused" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "항목" + "value" : "라이선스 만료, 동기화 일시 정지" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Öğeler" + "value" : "Lisansın süresi doldu, eşitleme duraklatıldı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mục" + "value" : "Giấy phép đã hết hạn, đồng bộ tạm dừng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "项目" + "value" : "许可证已过期,同步已暂停" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "項目" + "value" : "授權已過期,同步已暫停" } } } }, - "Join the two columns into one, placing this text between the values." : { + "License expires in %lld day(s)" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "License expires in %lld day(s)" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "두 열을 하나로 결합하고 값 사이에 이 텍스트를 넣습니다." + "value" : "라이선스가 %lld일 후 만료됩니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İki sütunu tek sütunda birleştirir ve değerlerin arasına bu metni koyar." + "value" : "Lisans %lld gün içinde sona eriyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gộp hai cột thành một, đặt đoạn văn bản này giữa các giá trị." + "value" : "Giấy phép hết hạn sau %lld ngày" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将两列合并为一列,并在两个值之间插入这段文本。" + "value" : "许可证将在 %lld 天后过期" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將兩個欄位合併為一個,並在兩個值之間插入這段文字。" + "value" : "授權將在 %lld 天後過期" } } } }, - "Journal Mode" : { + "License public key is invalid." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "저널 모드" + "value" : "라이선스 공개 키가 올바르지 않습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Günlük Modu" + "value" : "Lisans açık anahtarı geçersiz." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chế độ journal" + "value" : "Khoá công khai giấy phép không hợp lệ." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "日志模式" + "value" : "许可证公钥无效。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "日誌模式" + "value" : "授權公開金鑰無效。" } } } }, - "JSON" : { + "License public key not found in app bundle." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "JSON" + "value" : "앱 번들에서 라이선스 공개 키를 찾을 수 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "JSON" + "value" : "Uygulama paketinde lisans açık anahtarı bulunamadı." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "JSON" + "value" : "Không tìm thấy khoá công khai giấy phép trong gói ứng dụng." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "JSON" + "value" : "应用包中未找到许可证公钥。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "JSON" + "value" : "在應用程式套件中找不到授權公開金鑰。" } } } }, - "JSON Too Large" : { + "License removed from this Mac, but the server could not be reached. The activation slot may not be freed until it expires." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "JSON이 너무 큼" + "value" : "이 Mac에서 라이선스가 제거되었지만 서버에 연결할 수 없습니다. 만료될 때까지 활성화 슬롯이 해제되지 않을 수 있습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "JSON Çok Büyük" + "value" : "Lisans bu Mac'ten kaldırıldı, ancak sunucuya ulaşılamadı. Etkinleştirme yuvası süresi dolana kadar serbest bırakılmayabilir." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "JSON quá lớn" + "value" : "Giấy phép đã xoá khỏi máy Mac này, nhưng không thể liên hệ máy chủ. Vị trí kích hoạt có thể không được giải phóng cho đến khi hết hạn." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "JSON 过大" + "value" : "许可证已从此 Mac 移除,但无法连接服务器。激活位可能需要到期后才能释放。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "JSON 過大" + "value" : "授權已從此 Mac 移除,但無法連線到伺服器。啟用名額可能要到期後才會釋出。" } } } }, - "JSON Viewer" : { + "License signature verification failed." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "JSON 뷰어" + "value" : "라이선스 서명 확인에 실패했습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "JSON Görüntüleyici" + "value" : "Lisans imza doğrulaması başarısız oldu." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trình xem JSON" + "value" : "Xác minh chữ ký giấy phép thất bại." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "JSON 查看器" + "value" : "许可证签名验证失败。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "JSON 檢視器" + "value" : "授權簽章驗證失敗。" } } } }, - "JSON-style document database" : { + "License validation failed" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "License validation failed" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "JSON 형식의 문서 데이터베이스" + "value" : "라이선스 유효성 검사 실패" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "JSON tarzı belge veritabanı" + "value" : "Lisans doğrulaması başarısız oldu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cơ sở dữ liệu document kiểu JSON" + "value" : "Xác thực giấy phép thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "JSON 风格的文档数据库" + "value" : "许可证验证失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "JSON 風格的文件資料庫" + "value" : "授權驗證失敗" } } } }, - "JSON: %@" : { + "License verification failed. Try updating the app to the latest version." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "JSON: %@" + "value" : "라이선스를 확인하지 못했습니다. 앱을 최신 버전으로 업데이트해 보십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "JSON: %@" + "value" : "Lisans doğrulaması başarısız oldu. Uygulamayı en son sürüme güncellemeyi deneyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "JSON: %@" + "value" : "Xác minh giấy phép thất bại. Hãy thử cập nhật ứng dụng lên phiên bản mới nhất." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "JSON:%@" + "value" : "许可证验证失败。请尝试更新到最新版本。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "JSON:%@" + "value" : "授權驗證失敗。請嘗試將應用程式更新到最新版本。" } } } }, - "Jump host configuration is invalid" : { + "Lifetime" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Lifetime" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "점프 호스트 구성이 올바르지 않습니다" + "value" : "영구" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Atlama sunucusu yapılandırması geçersiz" + "value" : "Ömür Boyu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cấu hình jump host không hợp lệ" + "value" : "Trọn đời" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "跳板主机配置无效" + "value" : "终身" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "跳板主機設定無效" + "value" : "終身" } } } }, - "Jump host key not found: %@" : { - "extractionState" : "stale", + "Light" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "점프 호스트 키를 찾을 수 없습니다: %@" + "value" : "라이트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Atlama sunucusu anahtarı bulunamadı: %@" + "value" : "Açık" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy khóa của jump host: %@" + "value" : "Sáng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未找到跳板主机密钥:%@" + "value" : "浅色" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "找不到跳板主機金鑰:%@" + "value" : "淺色" } } } }, - "Jump Hosts" : { + "Limit" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "점프 호스트" + "value" : "제한" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Atlama Sunucuları" + "value" : "Limit" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Jump Host" + "value" : "Giới hạn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Jump Host" + "value" : "限制" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "跳板主機" + "value" : "限制" } } } }, - "Jump hosts are connected in order before reaching the SSH server above. Only key and agent auth are supported for jumps." : { + "Limit tool calls per reply" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "점프 호스트에 순서대로 연결한 후 위의 SSH 서버에 연결합니다. 점프 연결에는 키 및 에이전트 인증만 지원됩니다." + "value" : "답변당 도구 호출 제한" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Atlama sunucuları yukarıdaki SSH sunucusuna ulaşmadan önce sırayla bağlanır. Atlamalar için yalnızca anahtar ve aracı kimlik doğrulaması desteklenir." + "value" : "Yanıt başına araç çağrılarını sınırla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Jump host được kết nối theo thứ tự trước khi đến SSH server phía trên. Chỉ hỗ trợ xác thực bằng khoá và agent cho các jump." + "value" : "Giới hạn số lần gọi công cụ mỗi câu trả lời" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Jump Host 按顺序连接后再连接到上方的 SSH 服务器。跳转仅支持密钥和 Agent 认证。" + "value" : "限制每条回复的工具调用次数" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "跳板主機會依序連線,之後才連到上方的 SSH 伺服器。跳板僅支援金鑰與 Agent 認證。" + "value" : "限制每則回覆的工具呼叫次數" } } } }, - "Jump to lines" : { + "Limits" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "줄로 이동" + "value" : "제한" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satırlara git" + "value" : "Limitler" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhảy tới dòng" + "value" : "Giới hạn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "跳转到相应行" + "value" : "限制" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "跳至相應的行" + "value" : "限制" } } } }, - "Keep Backing Up" : { + "Line" : { "localizations" : { "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "백업 계속" + "value" : "선", + "state" : "translated" } }, "tr" : { "stringUnit" : { - "state" : "translated", - "value" : "Yedeklemeye Devam Et" + "value" : "Çizgi", + "state" : "translated" } }, "vi" : { "stringUnit" : { - "state" : "translated", - "value" : "Tiếp tục sao lưu" + "value" : "Đường", + "state" : "translated" } }, "zh-Hans" : { "stringUnit" : { - "state" : "translated", - "value" : "继续备份" + "value" : "折线", + "state" : "translated" } }, "zh-Hant" : { "stringUnit" : { - "state" : "translated", - "value" : "繼續備份" + "value" : "折線", + "state" : "translated" } } } }, - "Keep entries for:" : { + "Line %1$lld: %2$@" : { + "comment" : "A line in the import error log. The first argument is the line number. The second argument is the error message.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "항목 보관 기간:" + "value" : "%1$lld행: %2$@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kayıtları saklama süresi:" + "value" : "Satır %1$lld: %2$@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giữ mục trong:" + "value" : "Dòng %1$lld: %2$@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "保留记录:" + "value" : "第 %1$lld 行:%2$@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "保留記錄:" + "value" : "第 %1$lld 行:%2$@" } } } }, - "Keep leading zeros in ZIP codes, phone numbers, and IDs by outputting all values as strings" : { + "Line %lld: %@" : { "extractionState" : "stale", "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Line %1$lld: %2$@" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "우편번호, 전화번호 및 ID의 앞자리 0을 유지하려면 모든 값을 문자열로 출력합니다" + "value" : "%1$lld행: %2$@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Keep leading zeros in ZIP codes, phone numbers, and IDs by outputting all values as strings" + "value" : "Satır %lld: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giữ số 0 đầu trong mã bưu chính, số điện thoại và ID bằng cách xuất tất cả giá trị dưới dạng chuỗi" + "value" : "Dòng %lld: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "通过将所有值输出为字符串来保留邮编、电话号码和 ID 中的前导零" + "value" : "第 %lld 行:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將所有值輸出為字串,以保留郵遞區號、電話號碼和 ID 中的前導零" + "value" : "第 %1$lld 行:%2$@" } } } }, - "Keep My Changes" : { + "Line Number" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "내 변경 사항 유지" + "value" : "줄 번호" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Değişikliklerimi Koru" + "value" : "Satır Numarası" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giữ thay đổi của tôi" + "value" : "Số dòng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "保留我的更改" + "value" : "行号" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "保留我的變更" + "value" : "行號" } } } }, - "Keep Other Version" : { + "Line break" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다른 버전 유지" + "value" : "줄바꿈" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Keep Other Version" + "value" : "Satır sonu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giữ phiên bản khác" + "value" : "Xuống dòng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "保留其他版本" + "value" : "换行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "保留其他版本" + "value" : "換行" } } } }, - "Keep Restoring" : { + "Line ending" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "복원 계속" + "value" : "줄 끝" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geri Yüklemeye Devam Et" + "value" : "Satır sonu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tiếp tục khôi phục" + "value" : "Ký tự xuống dòng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "继续恢复" + "value" : "换行符" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "繼續還原" + "value" : "換行字元" } } } }, - "Keep Running" : { + "Link a Folder…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "계속 실행" + "value" : "폴더 연결…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Çalışmaya Devam Et" + "value" : "Klasör Bağla…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tiếp tục chạy" + "value" : "Liên kết thư mục…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "继续运行" + "value" : "链接文件夹…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "繼續執行" + "value" : "連結資料夾…" } } } }, - "Keep This Mac's Version" : { - "extractionState" : "stale", + "Linked" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 Mac의 버전 유지" + "value" : "연결됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Keep This Mac's Version" + "value" : "Bağlantılı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giữ phiên bản máy Mac này" + "value" : "Đã liên kết" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "保留此 Mac 的版本" + "value" : "已链接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "保留此 Mac 的版本" - } - } - } - }, - "Kerberos authentication failed: %@" : { - "extractionState" : "stale", - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "Kerberos 인증 실패: %@" + "value" : "已連結" } } } }, - "Kerberos Principal" : { + "Linked Folders" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Kerberos 보안 주체" + "value" : "연결된 폴더" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kerberos Principal" + "value" : "Bağlantılı Klasörler" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kerberos Principal" + "value" : "Thư mục Liên kết" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Kerberos Principal" + "value" : "链接文件夹" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Kerberos Principal" + "value" : "已連結資料夾" } } } }, - "Key" : { + "Links you chose to always allow. TablePro connects without asking. Only connections on this machine can be trusted." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "키" + "value" : "항상 허용하도록 선택한 링크입니다. TablePro가 묻지 않고 연결합니다. 이 컴퓨터의 연결만 신뢰할 수 있습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Anahtar" + "value" : "Her zaman izin vermeyi seçtiğiniz bağlantılar. TablePro sormadan bağlanır. Yalnızca bu makinedeki bağlantılara güvenilebilir." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khóa" + "value" : "Các liên kết bạn đã chọn luôn cho phép. TablePro kết nối mà không hỏi lại. Chỉ các kết nối trên máy này mới có thể được tin cậy." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "键" + "value" : "你选择始终允许的链接。TablePro 会直接连接,不再询问。只有本机上的连接才能被信任。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "鍵" + "value" : "你選擇一律允許的連結。TablePro 會直接連線,不再詢問。只有本機上的連線才能被信任。" } } } }, - "Key %@ was not found in the secret JSON." : { + "List" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "비밀 JSON에서 %@ 키를 찾을 수 없습니다." + "value" : "목록" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ anahtarı secret JSON içinde bulunamadı." + "value" : "Liste" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy khóa %@ trong JSON secret." + "value" : "List" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在 secret JSON 中未找到键 %@。" + "value" : "列表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在 secret JSON 中找不到鍵 %@。" + "value" : "清單" } } } }, - "Key column %@ is not present on both sides. Choose a different key." : { - - }, - "Key columns" : { - - }, - "Key File" : { + "List Connections" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "키 파일" + "value" : "연결 목록" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Anahtar Dosyası" + "value" : "Bağlantıları Listele" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tệp khóa" + "value" : "Liệt kê kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "密钥文件" + "value" : "列出连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "金鑰檔案" + "value" : "列出連線" } } } }, - "Key Passphrase" : { + "List Databases" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "키 암호" + "value" : "데이터베이스 목록" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Anahtar Parolası" + "value" : "Veritabanlarını Listele" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cụm mật khẩu của khóa" + "value" : "Liệt kê cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "密钥口令" + "value" : "列出数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "金鑰密碼短語" + "value" : "列出資料庫" } } } }, - "Key pattern" : { + "List Recent Tabs" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "키 패턴" + "value" : "최근 탭 목록" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Anahtar deseni" + "value" : "Son Sekmeleri Listele" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mẫu khóa" + "value" : "Liệt kê tab gần đây" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "键模式" + "value" : "列出最近标签页" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "鍵模式" + "value" : "列出最近的分頁" } } } }, - "Key pattern, e.g. user:*" : { + "List Schemas" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "키 패턴(예: user:*)" + "value" : "스키마 목록" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Anahtar deseni, örn. user:*" + "value" : "Şemaları Listele" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mẫu khóa, ví dụ user:*" + "value" : "Liệt kê schema" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "键模式,例如 user:*" + "value" : "列出 Schema" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "鍵模式,例如 user:*" + "value" : "列出綱要" } } } }, - "Key Prefix Root" : { + "List Tables" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "키 접두사 루트" + "value" : "테이블 목록" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Anahtar Önek Kökü" + "value" : "Tabloları Listele" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tiền tố gốc" + "value" : "Liệt kê bảng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "键前缀根" + "value" : "列出表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "索引鍵前綴根目錄" + "value" : "列出資料表" } } } }, - "Key Separator" : { - - }, - "Key-Value" : { + "List all databases on the server" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "키-값" + "value" : "서버의 모든 데이터베이스 나열" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Anahtar-Değer" + "value" : "Sunucudaki tüm veritabanlarını listele" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Key-Value" + "value" : "Liệt kê tất cả cơ sở dữ liệu trên máy chủ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "键值" + "value" : "列出服务器上的所有数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "鍵值" + "value" : "列出伺服器上的所有資料庫" } } } }, - "Keyboard" : { + "List all saved database connections with their current status." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "키보드" + "value" : "저장된 모든 데이터베이스 연결과 현재 상태를 나열합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Klavye" + "value" : "Kayıtlı tüm veritabanı bağlantılarını geçerli durumlarıyla listeler." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bàn phím" + "value" : "Liệt kê tất cả kết nối cơ sở dữ liệu đã lưu cùng trạng thái hiện tại." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "键盘" + "value" : "列出所有已保存的数据库连接及其当前状态。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "鍵盤" + "value" : "列出所有已儲存的資料庫連線及其目前狀態。" } } } }, - "Keyboard Interactive" : { + "List all saved database connections with their status" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "키보드 대화형" + "value" : "저장된 모든 데이터베이스 연결과 상태 나열" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Klavye Etkileşimli" + "value" : "Kayıtlı tüm veritabanı bağlantılarını durumlarıyla listele" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Keyboard Interactive" + "value" : "Liệt kê tất cả kết nối cơ sở dữ liệu đã lưu cùng trạng thái" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Keyboard Interactive" + "value" : "列出所有已保存的数据库连接及其状态" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Keyboard Interactive" + "value" : "列出所有已儲存的資料庫連線及其狀態" } } } }, - "Keys" : { + "List available commands" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "키" + "value" : "사용 가능한 명령어 나열" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Anahtarlar" + "value" : "Kullanılabilir komutları listele" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khóa" + "value" : "Liệt kê các lệnh khả dụng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "键" + "value" : "列出可用命令" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "鍵" + "value" : "列出可用的指令" } } } }, - "Keys are provided by the SSH agent (e.g. 1Password, ssh-agent)." : { + "List currently open tabs across all TablePro windows. Returns connection, tab type, table name, and titles for each tab." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "키는 SSH 에이전트(예: 1Password, ssh-agent)에서 제공됩니다." + "value" : "열려 있는 모든 TablePro 창의 탭을 나열합니다. 각 탭의 연결, 탭 유형, 테이블 이름 및 제목을 반환합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Anahtarlar SSH aracı tarafından sağlanır (örn. 1Password, ssh-agent)." + "value" : "Tüm TablePro pencerelerinde şu anda açık olan sekmeleri listeler. Her sekme için bağlantı, sekme türü, tablo adı ve başlıkları döndürür." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khóa được cung cấp bởi SSH agent (ví dụ: 1Password, ssh-agent)." + "value" : "Liệt kê các tab đang mở trên tất cả cửa sổ TablePro. Trả về kết nối, loại tab, tên bảng và tiêu đề của mỗi tab." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "密钥由 SSH Agent 提供(如 1Password、ssh-agent)。" + "value" : "列出所有 TablePro 窗口中当前打开的标签页。返回每个标签页的连接、标签页类型、表名和标题。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "金鑰由 SSH Agent 提供(如 1Password、ssh-agent)。" + "value" : "列出所有 TablePro 視窗中目前開啟的分頁。會回傳每個分頁的連線、分頁類型、資料表名稱與標題。" } } } }, - "Keyword" : { + "List databases available on a connection." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "키워드" + "value" : "연결에서 사용할 수 있는 데이터베이스를 나열합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Anahtar Kelime" + "value" : "Bir bağlantıda kullanılabilir veritabanlarını listeler." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Từ khoá" + "value" : "Liệt kê các cơ sở dữ liệu khả dụng trên một kết nối." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "关键字" + "value" : "列出连接上可用的数据库。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "關鍵字" + "value" : "列出連線上可用的資料庫。" } } } }, - "Keyword cannot contain spaces" : { + "List of all saved database connections with metadata" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "키워드에는 공백을 포함할 수 없습니다" + "value" : "메타데이터가 포함된 저장된 모든 데이터베이스 연결 목록" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Anahtar kelime boşluk içeremez" + "value" : "Meta verileriyle birlikte kayıtlı tüm veritabanı bağlantılarının listesi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Từ khoá không được chứa khoảng trắng" + "value" : "Danh sách tất cả kết nối cơ sở dữ liệu đã lưu kèm metadata" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "关键字不能包含空格" + "value" : "所有已保存数据库连接及其元数据的列表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "關鍵字不能包含空格" + "value" : "所有已儲存的資料庫連線及其中繼資料的清單" } } } }, - "Keyword:" : { - "extractionState" : "stale", + "List schemas available in the active database of a connection." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "키워드:" + "value" : "연결의 활성 데이터베이스에서 사용할 수 있는 스키마를 나열합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Anahtar Kelime:" + "value" : "Bir bağlantının etkin veritabanındaki şemaları listeler." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Từ khoá:" + "value" : "Liệt kê các schema có trong cơ sở dữ liệu đang hoạt động của một kết nối." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "关键字:" + "value" : "列出连接当前数据库中可用的 Schema。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "關鍵字:" + "value" : "列出連線目前資料庫中可用的綱要。" } } } }, - "keyword: %@" : { + "List schemas in a database" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "키워드: %@" + "value" : "데이터베이스의 스키마 나열" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "anahtar sözcük: %@" + "value" : "Bir veritabanındaki şemaları listele" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "từ khoá: %@" + "value" : "Liệt kê schema trong một cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "关键字:%@" + "value" : "列出数据库中的 Schema" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "關鍵字:%@" + "value" : "列出資料庫中的綱要" } } } }, - "killing a server session" : { - - }, - "Kind" : { + "List tables and views in a database" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "종류" + "value" : "데이터베이스의 테이블 및 뷰 나열" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tür" + "value" : "Bir veritabanındaki tabloları ve görünümleri listele" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Loại" + "value" : "Liệt kê bảng và view trong một cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "类型" + "value" : "列出数据库中的表和视图" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "類型" + "value" : "列出資料庫中的資料表與檢視表" } } } }, - "Kind of tab" : { - - }, - "Kind:" : { + "List tables and views in the active database of a connection." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "종류:" + "value" : "연결의 활성 데이터베이스에 있는 테이블과 뷰를 나열합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tür:" + "value" : "Bir bağlantının etkin veritabanındaki tabloları ve görünümleri listeler." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Loại:" + "value" : "Liệt kê bảng và view trong cơ sở dữ liệu đang hoạt động của một kết nối." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "类型:" + "value" : "列出连接当前数据库中的表和视图。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "類型:" + "value" : "列出連線目前資料庫中的資料表與檢視表。" } } } }, - "Language %@" : { - - }, - "Language the routine is written in" : { - - }, - "Language:" : { + "Listens on all interfaces (0.0.0.0), reachable from your local network." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "언어:" + "value" : "모든 인터페이스(0.0.0.0)에서 수신 대기하므로 로컬 네트워크에서 접근할 수 있습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dil:" + "value" : "Tüm arabirimleri (0.0.0.0) dinler, yerel ağınızdan erişilebilir." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ngôn ngữ:" + "value" : "Lắng nghe trên mọi giao diện mạng (0.0.0.0), có thể truy cập từ mạng cục bộ của bạn." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "语言:" + "value" : "监听所有网络接口(0.0.0.0),可从本地网络访问。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "語言:" + "value" : "監聽所有網路介面(0.0.0.0),可從你的區域網路存取。" } } } }, - "Large" : { + "Listens only on 127.0.0.1." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "큼" + "value" : "127.0.0.1에서만 수신 대기합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Büyük" + "value" : "Yalnızca 127.0.0.1 üzerinde dinler." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lớn" + "value" : "Chỉ lắng nghe trên 127.0.0.1." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "大" + "value" : "仅监听 127.0.0.1。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "大" + "value" : "只監聽 127.0.0.1。" } } } }, - "Last 4 Weeks" : { + "Load" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "최근 4주" + "value" : "불러오기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Son 4 Hafta" + "value" : "Yükle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "4 tuần qua" + "value" : "Tải" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "最近 4 周" + "value" : "加载" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "最近 4 週" + "value" : "載入" } } } }, - "Last 7 days" : { + "Load Models" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "최근 7일" + "value" : "모델 불러오기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Son 7 gün" + "value" : "Modelleri Yükle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "7 ngày qua" + "value" : "Tải mô hình" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "过去 7 天" + "value" : "加载模型" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "過去 7 天" + "value" : "載入模型" } } } }, - "Last 7 Days" : { + "Load More" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "최근 7일" + "value" : "더 불러오기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Son 7 Gün" + "value" : "Daha Fazla Yükle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "7 ngày qua" + "value" : "Tải thêm" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "最近 7 天" + "value" : "加载更多" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "最近 7 天" + "value" : "載入更多" } } } }, - "Last 24 hours" : { + "Load Query" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "최근 24시간" + "value" : "쿼리 불러오기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Son 24 saat" + "value" : "Sorguyu Yükle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "24 giờ qua" + "value" : "Tải truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "过去 24 小时" + "value" : "加载查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "過去 24 小時" + "value" : "載入查詢" } } } }, - "Last 30 days" : { + "Load Table Template" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "최근 30일" + "value" : "테이블 템플릿 불러오기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Son 30 gün" + "value" : "Tablo Şablonu Yükle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "30 ngày qua" + "value" : "Tải mẫu bảng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "过去 30 天" + "value" : "加载表模板" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "過去 30 天" + "value" : "載入資料表範本" } } } }, - "Last Activity" : { + "Load Template" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "마지막 활동" + "value" : "템플릿 불러오기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Son Etkinlik" + "value" : "Şablon Yükle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hoạt động gần nhất" + "value" : "Tải mẫu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "最近活动" + "value" : "加载模板" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "最近活動" + "value" : "載入範本" } } } }, - "Last Hour" : { + "Load in Editor" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "최근 1시간" + "value" : "편집기에서 불러오기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Son Bir Saat" + "value" : "Düzenleyiciye Yükle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "1 giờ qua" + "value" : "Tải vào trình soạn thảo" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "最近 1 小时" + "value" : "在编辑器中加载" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "最近 1 小時" + "value" : "在編輯器中載入" } } } }, - "Last page" : { + "Load the rows the row cap left behind." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "마지막 페이지" + "value" : "행 제한으로 남겨진 행을 불러옵니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Son sayfa" + "value" : "Satır sınırının dışında kalan satırları yükleyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trang cuối" + "value" : "Tải những hàng còn lại sau giới hạn hàng." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "最后一页" + "value" : "加载行数上限之外剩余的行。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "最後一頁" + "value" : "載入列數上限之外剩餘的列。" } } } }, - "Last Page" : { + "Loading %@…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "마지막 페이지" + "value" : "%@ 불러오는 중…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Son Sayfa" + "value" : "%@ yükleniyor…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trang cuối" + "value" : "Đang tải %@…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "最后一页" + "value" : "正在加载 %@…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "最後一頁" + "value" : "正在載入 %@…" } } } }, - "Last query execution summary" : { + "Loading dashboard…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "마지막 쿼리 실행 요약" + "value" : "대시보드 불러오는 중…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Son sorgu çalıştırma özeti" + "value" : "Pano yükleniyor…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tổng kết thực thi truy vấn gần nhất" + "value" : "Đang tải bảng điều khiển…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "上次查询执行摘要" + "value" : "正在加载仪表盘…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "上次查詢執行摘要" + "value" : "正在載入儀表板…" } } } }, - "Last query execution time" : { + "Loading databases…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "마지막 쿼리 실행 시간" + "value" : "데이터베이스 불러오는 중…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Son sorgu çalıştırma süresi" + "value" : "Veritabanları yükleniyor…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thời gian thực thi truy vấn gần nhất" + "value" : "Đang tải cơ sở dữ liệu…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "上次查询执行时间" + "value" : "正在载入数据库…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "上次查詢執行時間" + "value" : "正在載入資料庫…" } } } }, - "Last query took %@" : { + "Loading insights…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "마지막 쿼리 소요 시간: %@" + "value" : "인사이트 불러오는 중…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Son sorgu %@ sürdü" + "value" : "Analizler yükleniyor…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Truy vấn trước mất %@" + "value" : "Đang tải phân tích…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "上次查询耗时 %@" + "value" : "正在加载分析…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "上次查詢耗時 %@" + "value" : "正在載入分析…" } } } }, - "Last query: %@" : { + "Loading keys…" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "마지막 쿼리: %@" + "value" : "키 불러오는 중…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Son sorgu: %@" + "value" : "Anahtarlar yükleniyor…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Truy vấn gần nhất: %@" + "value" : "Đang tải khóa…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "上次查询: %@" + "value" : "正在加载键…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "上次查詢:%@" + "value" : "正在載入鍵…" } } } }, - "Last synced %@" : { + "Loading more rows" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "마지막 동기화: %@" + "value" : "행을 더 불러오는 중" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Son eşitleme %@" + "value" : "Daha fazla satır yükleniyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đồng bộ lần cuối %@" + "value" : "Đang tải thêm hàng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "上次同步 %@" + "value" : "正在载入更多行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "上次同步 %@" + "value" : "正在載入更多列" } } } }, - "Last Synced:" : { + "Loading options..." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "마지막 동기화:" + "value" : "옵션 불러오는 중..." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Son Eşitlendi:" + "value" : "Seçenekler yükleniyor..." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đồng bộ lần cuối:" + "value" : "Đang tải tùy chọn..." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "上次同步:" + "value" : "正在加载选项…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "上次同步:" + "value" : "正在載入選項…" } } } }, - "Last updated" : { + "Loading options…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "마지막 업데이트" + "value" : "옵션 불러오는 중…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Son güncelleme" + "value" : "Seçenekler yükleniyor…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cập nhật lần cuối" + "value" : "Đang tải tùy chọn…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "最后更新" + "value" : "正在载入选项…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "最後更新" + "value" : "正在載入選項…" } } } }, - "Latency: %dms" : { - "extractionState" : "stale", + "Loading page" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "지연 시간: %dms" + "value" : "페이지 불러오는 중" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Gecikme: %dms" + "value" : "Sayfa yükleniyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Độ trễ: %dms" + "value" : "Đang tải trang" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "延迟:%dms" + "value" : "正在载入页面" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "延遲:%dms" + "value" : "正在載入頁面" } } } }, - "Latency: %lldms" : { + "Loading plugins..." : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "지연 시간: %lldms" + "value" : "플러그인 불러오는 중..." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Gecikme: %lldms" + "value" : "Eklentiler yükleniyor..." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Độ trễ: %lldms" + "value" : "Đang tải plugin..." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "延迟: %lldms" + "value" : "正在加载插件..." } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "延遲:%lldms" + "value" : "正在載入外掛…" } } } }, - "Latest executed_at to include, Unix epoch seconds (inclusive, optional)" : { + "Loading schemas..." : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "포함할 가장 최근 executed_at 값(Unix 에포크 초, 경계값 포함, 선택 사항)" + "value" : "스키마 불러오는 중..." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dahil edilecek en geç executed_at, Unix epoch saniyesi (dahil, isteğe bağlı)" + "value" : "Şemalar yükleniyor..." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mốc executed_at muộn nhất được tính, giây Unix epoch (bao gồm mốc này, tùy chọn)" + "value" : "Đang tải schema..." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "要包含的最晚 executed_at,Unix 纪元秒(含,可选)" + "value" : "正在加载 Schema..." } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "要包含的最晚 executed_at,Unix 紀元秒(含此值,選填)" + "value" : "正在載入綱要…" } } } }, - "Latest executed_at, Unix epoch seconds" : { - - }, - "Layout" : { + "Loading schemas…" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "레이아웃" + "value" : "스키마 불러오는 중…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Düzen" + "value" : "Şemalar yükleniyor…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bố cục" + "value" : "Đang tải schema…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "布局" + "value" : "正在载入 Schema…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "版面配置" + "value" : "正在載入綱要…" } } } }, - "Layout for new connections on servers that support a database tree. Switch the current connection from the View menu." : { + "Loading schema…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 트리를 지원하는 서버의 새 연결에 사용할 레이아웃입니다. 보기 메뉴에서 현재 연결의 레이아웃을 전환할 수 있습니다." + "value" : "스키마 불러오는 중…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı ağacını destekleyen sunucularda yeni bağlantılar için düzen. Geçerli bağlantıyı Görünüm menüsünden değiştirin." + "value" : "Şema yükleniyor…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bố cục cho kết nối mới trên máy chủ hỗ trợ cây cơ sở dữ liệu. Chuyển đổi cho kết nối hiện tại từ menu Xem." + "value" : "Đang tải schema…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "支持数据库树的服务器上新建连接所用的布局。可在“视图”菜单中切换当前连接的布局。" + "value" : "正在加载架构…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "支援資料庫樹狀結構的伺服器上,新連線所用的版面配置。可從「檢視」選單切換目前連線的版面配置。" + "value" : "正在載入綱要…" } } } }, - "Leading keyword class" : { - - }, - "Leave blank to connect without authentication. The password is stored in the macOS Keychain." : { + "Loading tables..." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "인증 없이 연결하려면 비워 두십시오. 암호는 macOS 키체인에 저장됩니다." + "value" : "테이블 불러오는 중..." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kimlik doğrulamasız bağlanmak için boş bırakın. Parola macOS Keychain'de saklanır." + "value" : "Tablolar yükleniyor..." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Để trống để kết nối không cần xác thực. Mật khẩu được lưu trong macOS Keychain." + "value" : "Đang tải danh sách bảng..." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "留空即可在不认证的情况下连接。密码保存在 macOS 钥匙串中。" + "value" : "正在加载表..." } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "留空即可在不驗證的情況下連線。密碼儲存在 macOS 鑰匙圈中。" + "value" : "正在載入資料表…" } } } }, - "Leave the principal and password blank to use your existing Kerberos ticket. Run kinit user@REALM.COM in Terminal first if you don't have one." : { + "Loading tables…" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기존 Kerberos 티켓을 사용하려면 보안 주체와 암호를 비워 두십시오. 티켓이 없으면 먼저 터미널에서 kinit user@REALM.COM을 실행하십시오." + "value" : "테이블 불러오는 중…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Mevcut Kerberos biletinizi kullanmak için principal ve parolayı boş bırakın. Biletiniz yoksa önce Terminal'de kinit user@REALM.COM çalıştırın." + "value" : "Tablolar yükleniyor…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Để trống principal và mật khẩu để dùng vé Kerberos hiện có. Nếu chưa có, hãy chạy kinit user@REALM.COM trong Terminal trước." + "value" : "Đang tải bảng…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "留空 principal 和密码即可使用现有的 Kerberos 票据。如果没有,请先在终端运行 kinit user@REALM.COM。" + "value" : "正在载入表…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "留空 principal 和密碼即可使用現有的 Kerberos 票證。如果沒有,請先在終端機執行 kinit user@REALM.COM。" + "value" : "正在載入資料表…" } } } }, - "Legacy UUID Encoding" : { + "Loading users and roles…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "레거시 UUID 인코딩" + "value" : "사용자 및 역할 불러오는 중…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eski UUID Kodlaması" + "value" : "Kullanıcılar ve roller yükleniyor…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mã hoá UUID cũ" + "value" : "Đang tải người dùng và vai trò…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "旧版 UUID 编码" + "value" : "正在加载用户和角色…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "舊版 UUID 編碼" + "value" : "正在載入使用者與角色…" } } } }, - "Length" : { - "extractionState" : "stale", + "Loading…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "길이" + "value" : "불러오는 중…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Uzunluk" + "value" : "Yükleniyor…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Độ dài" + "value" : "Đang tải…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "长度" + "value" : "正在加载…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "長度" + "value" : "正在載入…" } } } }, - "Length:" : { - "extractionState" : "stale", + "Local" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "길이:" + "value" : "로컬" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Uzunluk:" + "value" : "Yerel" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Độ dài:" + "value" : "Cục bộ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "长度:" + "value" : "本地" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "長度:" + "value" : "本機" } } } }, - "less or equal" : { + "Local File" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "작거나 같음" + "value" : "로컬 파일" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "küçük veya eşit" + "value" : "Yerel Dosya" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "nhỏ hơn hoặc bằng" + "value" : "Tệp cục bộ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "小于或等于" + "value" : "本地文件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "小於或等於" + "value" : "本機檔案" } } } }, - "less than" : { + "Local Listener" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "보다 작음" + "value" : "로컬 리스너" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "küçüktür" + "value" : "Yerel Dinleyici" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "nhỏ hơn" + "value" : "Trình lắng nghe cục bộ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "小于" + "value" : "本地监听器" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "小於" + "value" : "本機監聽器" } } } }, - "License" : { + "Local only" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "라이선스" + "value" : "로컬 전용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Lisans" + "value" : "Sadece yerel" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giấy phép" + "value" : "Chỉ cục bộ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "许可证" + "value" : "仅本地" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "授權" + "value" : "僅限本機" } } } }, - "License expired — sync paused" : { + "Local only - not synced to iCloud" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "라이선스 만료 — 동기화 일시 정지" + "value" : "로컬 전용 - iCloud에 동기화되지 않음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Lisans süresi doldu — eşitleme duraklatıldı" + "value" : "Sadece yerel - iCloud ile eşitlenmiyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giấy phép hết hạn — tạm dừng đồng bộ" + "value" : "Chỉ cục bộ - không đồng bộ lên iCloud" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "许可证已过期 - 同步已暂停" + "value" : "仅本地 - 不同步到 iCloud" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "授權已過期,同步已暫停" + "value" : "僅限本機,不同步至 iCloud" } } } }, - "License expired, sync paused" : { + "Local only, not synced to iCloud" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "라이선스 만료, 동기화 일시 정지" + "value" : "로컬 전용, iCloud에 동기화되지 않음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Lisansın süresi doldu, eşitleme duraklatıldı" + "value" : "Yalnızca yerel, iCloud ile eşzamanlanmaz" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giấy phép đã hết hạn, đồng bộ tạm dừng" + "value" : "Chỉ lưu cục bộ, không đồng bộ với iCloud" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "许可证已过期,同步已暂停" + "value" : "仅本地存储,不同步到 iCloud" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "授權已過期,同步已暫停" + "value" : "僅儲存於本機,不會同步到 iCloud" } } } }, - "License expires in %lld day(s)" : { + "Local port" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "License expires in %lld day(s)" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "라이선스가 %lld일 후 만료됩니다" + "value" : "로컬 포트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Lisans %lld gün içinde sona eriyor" + "value" : "Yerel port" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giấy phép hết hạn sau %lld ngày" + "value" : "Cổng cục bộ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "许可证将在 %lld 天后过期" + "value" : "本地端口" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "授權將在 %lld 天後過期" + "value" : "本機連接埠" } } } }, - "License Key:" : { + "Local port must be between 1 and 65535" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "라이선스 키:" + "value" : "로컬 포트는 1에서 65535 사이여야 합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Lisans Anahtarı:" + "value" : "Yerel port 1 ile 65535 arasında olmalıdır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mã giấy phép:" + "value" : "Cổng cục bộ phải nằm trong khoảng 1 đến 65535" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "许可证密钥:" + "value" : "本地端口必须介于 1 到 65535 之间" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "授權金鑰:" + "value" : "本機連接埠必須介於 1 到 65535 之間" } } } }, - "License Not Yet Confirmed" : { - - }, - "License public key is invalid." : { + "Location" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "라이선스 공개 키가 올바르지 않습니다." + "value" : "위치" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Lisans açık anahtarı geçersiz." + "value" : "Konum" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khoá công khai giấy phép không hợp lệ." + "value" : "Vị trí" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "许可证公钥无效。" + "value" : "位置" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "授權公開金鑰無效。" + "value" : "位置" } } } }, - "License public key not found in app bundle." : { + "Log MCP queries in history" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "앱 번들에서 라이선스 공개 키를 찾을 수 없습니다." + "value" : "기록에 MCP 쿼리 로그 남기기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Uygulama paketinde lisans açık anahtarı bulunamadı." + "value" : "MCP sorgularını geçmişe kaydet" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy khoá công khai giấy phép trong gói ứng dụng." + "value" : "Ghi truy vấn MCP vào lịch sử" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "应用包中未找到许可证公钥。" + "value" : "在历史记录中记录 MCP 查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在應用程式套件中找不到授權公開金鑰。" + "value" : "在歷史紀錄中記錄 MCP 查詢" } } } }, - "License Removed" : { + "Looking for database settings…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "라이선스 제거됨" + "value" : "데이터베이스 설정을 찾는 중…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Lisans Kaldırıldı" + "value" : "Veritabanı ayarları aranıyor…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giấy phép đã xoá" + "value" : "Đang tìm cài đặt cơ sở dữ liệu…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "许可证已移除" + "value" : "正在查找数据库设置…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "授權已移除" + "value" : "正在尋找資料庫設定…" } } } }, - "License removed from this Mac, but the server could not be reached. The activation slot may not be freed until it expires." : { + "Looks like a placeholder value" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 Mac에서 라이선스가 제거되었지만 서버에 연결할 수 없습니다. 만료될 때까지 활성화 슬롯이 해제되지 않을 수 있습니다." + "value" : "자리표시자 값인 것 같습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Lisans bu Mac'ten kaldırıldı, ancak sunucuya ulaşılamadı. Etkinleştirme yuvası süresi dolana kadar serbest bırakılmayabilir." + "value" : "Yer tutucu bir değere benziyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giấy phép đã xoá khỏi máy Mac này, nhưng không thể liên hệ máy chủ. Vị trí kích hoạt có thể không được giải phóng cho đến khi hết hạn." + "value" : "Trông giống giá trị mẫu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "许可证已从此 Mac 移除,但无法连接服务器。激活位可能需要到期后才能释放。" + "value" : "看起来是占位值" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "授權已從此 Mac 移除,但無法連線到伺服器。啟用名額可能要到期後才會釋出。" + "value" : "看起來是預留位置值" } } } }, - "License signature verification failed." : { + "Loops" : { + "comment" : "Label for the number of loops in a query plan.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "라이선스 서명 확인에 실패했습니다." + "value" : "반복 횟수" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Lisans imza doğrulaması başarısız oldu." + "value" : "Döngü" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xác minh chữ ký giấy phép thất bại." + "value" : "Số vòng lặp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "许可证签名验证失败。" + "value" : "循环次数" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "授權簽章驗證失敗。" + "value" : "迴圈次數" } } } }, - "License validation failed" : { + "Lossy type change" : { "localizations" : { - "en" : { + "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "License validation failed" + "value" : "손실이 있는 타입 변경", + "state" : "translated" } - }, + } + } + }, + "Low" : { + "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "라이선스 유효성 검사 실패" + "value" : "낮음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Lisans doğrulaması başarısız oldu" + "value" : "Düşük" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xác thực giấy phép thất bại" + "value" : "Thấp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "许可证验证失败" + "value" : "低" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "授權驗證失敗" + "value" : "低" } } } }, - "License verification failed. Try updating the app to the latest version." : { + "Low cost" : { + "comment" : "Accessibility label for a low cost severity.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "라이선스를 확인하지 못했습니다. 앱을 최신 버전으로 업데이트해 보십시오." + "value" : "낮은 비용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Lisans doğrulaması başarısız oldu. Uygulamayı en son sürüme güncellemeyi deneyin." + "value" : "Düşük maliyet" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xác minh giấy phép thất bại. Hãy thử cập nhật ứng dụng lên phiên bản mới nhất." + "value" : "Chi phí thấp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "许可证验证失败。请尝试更新到最新版本。" + "value" : "低成本" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "授權驗證失敗。請嘗試將應用程式更新到最新版本。" + "value" : "低成本" } } } }, - "Lifetime" : { + "MCP Access Request" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Lifetime" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "영구" + "value" : "MCP 접근 요청" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ömür Boyu" + "value" : "MCP Erişim İsteği" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trọn đời" + "value" : "Yêu cầu truy cập MCP" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "终身" + "value" : "MCP 访问请求" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "終身" + "value" : "MCP 存取要求" } } } }, - "Light" : { + "MCP Configuration" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "라이트" + "value" : "MCP 구성" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Açık" + "value" : "MCP Yapılandırması" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sáng" + "value" : "Cấu hình MCP" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "浅色" + "value" : "MCP 配置" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "淺色" + "value" : "MCP 設定" } } } }, - "Limit" : { + "MCP Server" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "제한" + "value" : "MCP 서버" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Limit" + "value" : "MCP Sunucusu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giới hạn" + "value" : "MCP Server" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "限制" + "value" : "MCP 服务器" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "限制" + "value" : "MCP 伺服器" } } } }, - "Limit tool calls per reply" : { + "MCP Server: Failed" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "답변당 도구 호출 제한" + "value" : "MCP 서버: 실패" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yanıt başına araç çağrılarını sınırla" + "value" : "MCP Sunucusu: Başarısız" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giới hạn số lần gọi công cụ mỗi câu trả lời" + "value" : "MCP Server: Thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "限制每条回复的工具调用次数" + "value" : "MCP 服务器:失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "限制每則回覆的工具呼叫次數" + "value" : "MCP 伺服器:失敗" } } } }, - "Limits" : { + "MCP Server: Running" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "제한" + "value" : "MCP 서버: 실행 중" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Limitler" + "value" : "MCP Sunucusu: Çalışıyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giới hạn" + "value" : "MCP Server: Đang chạy" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "限制" + "value" : "MCP 服务器:运行中" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "限制" + "value" : "MCP 伺服器:執行中" } } } }, - "Line" : { + "MCP Server: Running (%d clients)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "선" + "value" : "MCP 서버: 실행 중(클라이언트 %d개)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Çizgi" + "value" : "MCP Sunucusu: Çalışıyor (%d istemci)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đường" + "value" : "MCP Server: Đang chạy (%d client)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "折线" + "value" : "MCP 服务器:运行中(%d 个客户端)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "折線" + "value" : "MCP 伺服器:執行中(%d 個用戶端)" } } } }, - "Line %1$lld: %2$@" : { - "comment" : "A line in the import error log. The first argument is the line number. The second argument is the error message.", - "isCommentAutoGenerated" : true, + "MCP Server: Starting..." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$lld행: %2$@" + "value" : "MCP 서버: 시작 중..." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satır %1$lld: %2$@" + "value" : "MCP Sunucusu: Başlatılıyor..." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dòng %1$lld: %2$@" + "value" : "MCP Server: Đang khởi động..." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "第 %1$lld 行:%2$@" + "value" : "MCP 服务器:正在启动…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "第 %1$lld 行:%2$@" + "value" : "MCP 伺服器:正在啟動…" } } } }, - "Line %lld: %@" : { + "MCP Server: Stopped" : { "extractionState" : "stale", "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Line %1$lld: %2$@" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$lld행: %2$@" + "value" : "MCP 서버: 중지됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satır %lld: %@" + "value" : "MCP Sunucusu: Durduruldu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dòng %lld: %@" + "value" : "MCP Server: Đã dừng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "第 %lld 行:%@" + "value" : "MCP 服务器:已停止" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "第 %1$lld 行:%2$@" + "value" : "MCP 伺服器:已停止" } } } }, - "Line break" : { + "MCP Setup" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "줄바꿈" + "value" : "MCP 설정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satır sonu" + "value" : "MCP Kurulumu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuống dòng" + "value" : "Thiết lập MCP" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "换行" + "value" : "MCP 设置" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "換行" + "value" : "MCP 設定" } } } }, - "Line ending" : { + "MCP query execution" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "줄 끝" + "value" : "MCP 쿼리 실행" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satır sonu" + "value" : "MCP sorgu çalıştırma" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ký tự xuống dòng" + "value" : "Thực thi truy vấn MCP" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "换行符" + "value" : "MCP 查询执行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "換行字元" + "value" : "MCP 查詢執行" } } } }, - "Line Number" : { + "MEDIUM" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "줄 번호" + "value" : "중간" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satır Numarası" + "value" : "ORTA" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Số dòng" + "value" : "TRUNG BÌNH" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "行号" + "value" : "中等" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "行號" + "value" : "中等" } } } }, - "Link a Folder…" : { + "METADATA" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "폴더 연결…" + "value" : "메타데이터" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Klasör Bağla…" + "value" : "META VERİ" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Liên kết thư mục…" + "value" : "SIÊU DỮ LIỆU" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "链接文件夹…" + "value" : "元数据" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連結資料夾…" + "value" : "中繼資料" } } } }, - "Linked" : { + "MFA Passcode (TOTP)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결됨" + "value" : "MFA 인증 코드(TOTP)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantılı" + "value" : "MFA Parola Kodu (TOTP)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã liên kết" + "value" : "Mã MFA (TOTP)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已链接" + "value" : "MFA 验证码(TOTP)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已連結" + "value" : "MFA 驗證碼(TOTP)" } } } }, - "linked file" : { + "MQL" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결된 파일" + "value" : "MQL" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "bağlı dosya" + "value" : "MQL" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "tệp liên kết" + "value" : "MQL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "链接的文件" + "value" : "MQL" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已連結的檔案" + "value" : "MQL" } } } }, - "Linked Folders" : { + "MQL Preview" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결된 폴더" + "value" : "MQL 미리보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantılı Klasörler" + "value" : "MQL Önizleme" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thư mục Liên kết" + "value" : "Xem trước MQL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "链接文件夹" + "value" : "MQL 预览" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已連結資料夾" + "value" : "MQL 預覽" } } } }, - "Links you chose to always allow. TablePro connects without asking. Only connections on this machine can be trusted." : { + "Maintenance" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "항상 허용하도록 선택한 링크입니다. TablePro가 묻지 않고 연결합니다. 이 컴퓨터의 연결만 신뢰할 수 있습니다." + "value" : "유지 관리" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Her zaman izin vermeyi seçtiğiniz bağlantılar. TablePro sormadan bağlanır. Yalnızca bu makinedeki bağlantılara güvenilebilir." + "value" : "Bakım" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Các liên kết bạn đã chọn luôn cho phép. TablePro kết nối mà không hỏi lại. Chỉ các kết nối trên máy này mới có thể được tin cậy." + "value" : "Bảo trì" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "你选择始终允许的链接。TablePro 会直接连接,不再询问。只有本机上的连接才能被信任。" + "value" : "维护" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "你選擇一律允許的連結。TablePro 會直接連線,不再詢問。只有本機上的連線才能被信任。" + "value" : "維護" } } } }, - "List" : { + "Majority" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "목록" + "value" : "과반수" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Liste" + "value" : "Çoğunluk" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "List" + "value" : "Majority" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "列表" + "value" : "Majority" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "清單" + "value" : "Majority" } } } }, - "List all databases on the server" : { - "extractionState" : "stale", + "Make the target the source and the source the target" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "대상을 원본으로, 원본을 대상으로 바꿉니다", + "state" : "translated" + } + } + } + }, + "Making %@ NOT NULL fails if any existing row holds NULL." : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "기존 행에 NULL이 있으면 %@을(를) NOT NULL로 만드는 작업은 실패합니다.", + "state" : "translated" + } + } + } + }, + "Malformed deep link path: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "서버의 모든 데이터베이스 나열" + "value" : "잘못된 딥 링크 경로: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sunucudaki tüm veritabanlarını listele" + "value" : "Hatalı biçimlendirilmiş deep link yolu: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Liệt kê tất cả cơ sở dữ liệu trên máy chủ" + "value" : "Đường dẫn deep link không hợp lệ: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "列出服务器上的所有数据库" + "value" : "深层链接路径格式错误:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "列出伺服器上的所有資料庫" + "value" : "深層連結路徑格式錯誤:%@" } } } }, - "List all saved database connections with their current status." : { + "Manage Connections" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "저장된 모든 데이터베이스 연결과 현재 상태를 나열합니다." + "value" : "연결 관리" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kayıtlı tüm veritabanı bağlantılarını geçerli durumlarıyla listeler." + "value" : "Bağlantıları Yönet" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Liệt kê tất cả kết nối cơ sở dữ liệu đã lưu cùng trạng thái hiện tại." + "value" : "Quản lý kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "列出所有已保存的数据库连接及其当前状态。" + "value" : "管理连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "列出所有已儲存的資料庫連線及其目前狀態。" + "value" : "管理連線" } } } }, - "List all saved database connections with their status" : { - "extractionState" : "stale", + "Manage Connections…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "저장된 모든 데이터베이스 연결과 상태 나열" + "value" : "연결 관리…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kayıtlı tüm veritabanı bağlantılarını durumlarıyla listele" + "value" : "Bağlantıları Yönet…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Liệt kê tất cả kết nối cơ sở dữ liệu đã lưu cùng trạng thái" + "value" : "Quản lý kết nối…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "列出所有已保存的数据库连接及其状态" + "value" : "管理连接…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "列出所有已儲存的資料庫連線及其狀態" + "value" : "管理連線…" } } } }, - "List available commands" : { + "Manage Tags" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사용 가능한 명령어 나열" + "value" : "태그 관리" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kullanılabilir komutları listele" + "value" : "Etiketleri Yönet" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Liệt kê các lệnh khả dụng" + "value" : "Quản lý thẻ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "列出可用命令" + "value" : "管理标签" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "列出可用的指令" + "value" : "管理標籤" } } } }, - "List Connections" : { + "Manual" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 목록" + "value" : "수동" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantıları Listele" + "value" : "Manuel" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Liệt kê kết nối" + "value" : "Thủ công" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "列出连接" + "value" : "手动" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "列出連線" + "value" : "手動" } } } }, - "List currently open tabs across all TablePro windows. Returns connection, tab type, table name, and titles for each tab." : { - "extractionState" : "stale", + "Markdown" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열려 있는 모든 TablePro 창의 탭을 나열합니다. 각 탭의 연결, 탭 유형, 테이블 이름 및 제목을 반환합니다." + "value" : "Markdown" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm TablePro pencerelerinde şu anda açık olan sekmeleri listeler. Her sekme için bağlantı, sekme türü, tablo adı ve başlıkları döndürür." + "value" : "Markdown" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Liệt kê các tab đang mở trên tất cả cửa sổ TablePro. Trả về kết nối, loại tab, tên bảng và tiêu đề của mỗi tab." + "value" : "Markdown" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "列出所有 TablePro 窗口中当前打开的标签页。返回每个标签页的连接、标签页类型、表名和标题。" + "value" : "Markdown" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "列出所有 TablePro 視窗中目前開啟的分頁。會回傳每個分頁的連線、分頁類型、資料表名稱與標題。" + "value" : "Markdown" } } } }, - "List Databases" : { + "Massive" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 목록" + "value" : "매우 큼" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanlarını Listele" + "value" : "Çok Büyük" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Liệt kê cơ sở dữ liệu" + "value" : "Cực lớn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "列出数据库" + "value" : "巨大" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "列出資料庫" + "value" : "巨大" } } } }, - "List databases available on a connection." : { + "Match ALL filters (AND) or ANY filter (OR)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결에서 사용할 수 있는 데이터베이스를 나열합니다." + "value" : "모든 필터(AND) 또는 하나 이상의 필터(OR)와 일치" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bir bağlantıda kullanılabilir veritabanlarını listeler." + "value" : "TÜM filtrelerle eşleş (VE) veya HERHANGİ bir filtreyle (VEYA)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Liệt kê các cơ sở dữ liệu khả dụng trên một kết nối." + "value" : "Khớp TẤT CẢ bộ lọc (AND) hoặc BẤT KỲ bộ lọc (OR)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "列出连接上可用的数据库。" + "value" : "匹配所有筛选条件 (AND) 或任意筛选条件 (OR)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "列出連線上可用的資料庫。" + "value" : "符合所有篩選條件 (AND) 或任一篩選條件 (OR)" } } } }, - "List Favorite Tables" : { - - }, - "List Foreign Keys" : { - - }, - "List foreign keys for one table, or for the whole schema when 'table' is omitted, so joins can be written from the real relationships rather than guessed from column names." : { - - }, - "List Grants" : { - - }, - "List Indexes" : { - - }, - "List indexes for one table, or for every table in the schema when 'table' is omitted. Use it to see what a query can actually use before proposing one." : { - - }, - "List Maintenance Operations" : { - - }, - "List of all saved database connections with metadata" : { - "extractionState" : "stale", + "Match All" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "메타데이터가 포함된 저장된 모든 데이터베이스 연결 목록" + "value" : "모두 일치" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Meta verileriyle birlikte kayıtlı tüm veritabanı bağlantılarının listesi" + "value" : "Tümü Eşleşsin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Danh sách tất cả kết nối cơ sở dữ liệu đã lưu kèm metadata" + "value" : "Khớp tất cả" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "所有已保存数据库连接及其元数据的列表" + "value" : "匹配全部" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "所有已儲存的資料庫連線及其中繼資料的清單" + "value" : "符合全部" } } } }, - "List Open Tabs" : { - - }, - "List Partitions" : { - - }, - "List Recent Tables" : { - - }, - "List Recent Tabs" : { - "extractionState" : "stale", + "Match Any" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "최근 탭 목록" + "value" : "하나라도 일치" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Son Sekmeleri Listele" + "value" : "Herhangi Biri Eşleşsin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Liệt kê tab gần đây" + "value" : "Khớp bất kỳ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "列出最近标签页" + "value" : "匹配任一" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "列出最近的分頁" + "value" : "符合任一" } } } }, - "List Routines" : { - - }, - "List Schemas" : { + "Match Case" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "스키마 목록" + "value" : "대/소문자 구분" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Şemaları Listele" + "value" : "Büyük/Küçük Harf Eşleştir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Liệt kê schema" + "value" : "Phân biệt hoa thường" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "列出 Schema" + "value" : "区分大小写" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "列出綱要" + "value" : "區分大小寫" } } } }, - "List schemas available in the active database of a connection." : { + "Match System" : { + "comment" : "Text for a sidebar row size preference that matches the system's sidebar row size.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결의 활성 데이터베이스에서 사용할 수 있는 스키마를 나열합니다." + "value" : "시스템 설정 따르기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bir bağlantının etkin veritabanındaki şemaları listeler." + "value" : "Sistemle Aynı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Liệt kê các schema có trong cơ sở dữ liệu đang hoạt động của một kết nối." + "value" : "Theo hệ thống" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "列出连接当前数据库中可用的 Schema。" + "value" : "跟随系统" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "列出連線目前資料庫中可用的綱要。" + "value" : "跟隨系統" } } } }, - "List schemas in a database" : { - "extractionState" : "stale", + "Match System follows Sidebar icon size in System Settings > Appearance. Choose a size to fit more objects on screen than the rest of the system shows." : { + "comment" : "Match System", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스의 스키마 나열" + "value" : "시스템 설정 따르기는 시스템 설정 > 모양의 사이드바 아이콘 크기를 사용합니다. 화면에 시스템의 다른 부분보다 더 많은 개체를 표시하려면 크기를 선택하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bir veritabanındaki şemaları listele" + "value" : "Sistemle Aynı, Sistem Ayarları > Görünüm bölümündeki Kenar Çubuğu simge boyutunu izler. Sistemin geri kalanından daha fazla nesneyi ekrana sığdırmak için bir boyut seçin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Liệt kê schema trong một cơ sở dữ liệu" + "value" : "Theo hệ thống sẽ dùng cỡ biểu tượng Thanh bên trong Cài đặt hệ thống > Giao diện. Chọn một cỡ để hiển thị nhiều đối tượng hơn so với phần còn lại của hệ thống." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "列出数据库中的 Schema" + "value" : "“跟随系统”会采用“系统设置 > 外观”中的侧边栏图标大小。选择一个大小可以在屏幕上显示比系统其余部分更多的对象。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "列出資料庫中的綱要" + "value" : "「跟隨系統」會採用「系統設定 > 外觀」中的側邊欄圖像大小。選擇一個大小可以在螢幕上顯示比系統其餘部分更多的物件。" } } } }, - "List Session Contexts" : { - - }, - "List stored procedures and user-defined functions in a schema." : { - - }, - "List Tables" : { + "Match all" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 목록" + "value" : "모두 일치" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tabloları Listele" + "value" : "Tümüyle eşleştir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Liệt kê bảng" + "value" : "Khớp tất cả" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "列出表" + "value" : "匹配全部" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "列出資料表" + "value" : "全部符合" } } } }, - "List tables and views in a database" : { - "extractionState" : "stale", + "Match all filters or any filter" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스의 테이블 및 뷰 나열" + "value" : "모든 필터 또는 하나 이상의 필터와 일치" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bir veritabanındaki tabloları ve görünümleri listele" + "value" : "Tüm filtreleri veya herhangi bir filtreyi eşleştir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Liệt kê bảng và view trong một cơ sở dữ liệu" + "value" : "Khớp tất cả bộ lọc hoặc bất kỳ bộ lọc nào" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "列出数据库中的表和视图" + "value" : "匹配全部筛选条件或任一筛选条件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "列出資料庫中的資料表與檢視表" + "value" : "符合所有篩選條件或任一篩選條件" } } } }, - "List tables and views in the active database of a connection." : { + "Match any" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결의 활성 데이터베이스에 있는 테이블과 뷰를 나열합니다." + "value" : "하나라도 일치" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bir bağlantının etkin veritabanındaki tabloları ve görünümleri listeler." + "value" : "Herhangi biriyle eşleştir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Liệt kê bảng và view trong cơ sở dữ liệu đang hoạt động của một kết nối." + "value" : "Khớp bất kỳ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "列出连接当前数据库中的表和视图。" + "value" : "匹配任一" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "列出連線目前資料庫中的資料表與檢視表。" + "value" : "符合任一" } } } }, - "List the databases on the server, sorted by name." : { - - }, - "List the direct partitions of a partitioned table. Empty for engines without partitioning." : { - - }, - "List the maintenance operations this engine supports, such as VACUUM, ANALYZE, or OPTIMIZE." : { - - }, - "List the options create_database accepts on this engine, with their allowed values." : { - - }, - "List the privileges granted to one user or role, with the scope each applies to." : { - - }, - "List the saved database connections this client may use, with their live status. Connections the token cannot reach, or that the user blocked for external clients, are omitted." : { - - }, - "List the schemas inside one database, sorted by name." : { - - }, - "List the session-level contexts this engine exposes, such as a warehouse or a role, with the value the session currently holds." : { - - }, - "List the tables and views in one database and schema, sorted by schema then name. Row counts are approximate and are fetched per table, so they are skipped when the schema holds more than 200 objects." : { - - }, - "List the tables the user opened most recently on a connection, newest first." : { - - }, - "List the tables the user starred on a connection. A good hint at what matters in this database." : { - - }, - "List the tabs open in TablePro for connections this client may reach. Each entry carries the tab id that focus_query_tab takes and the window id that open_table_tab returns." : { - - }, - "List the triggers attached to one table, with their timing, event, and body." : { - - }, - "List the users and roles defined on the server, with their attributes and role memberships." : { - - }, - "List Triggers" : { - - }, - "List Users and Roles" : { - - }, - "Listens on all interfaces (0.0.0.0), reachable from your local network." : { + "Matching ignores case" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 인터페이스(0.0.0.0)에서 수신 대기하므로 로컬 네트워크에서 접근할 수 있습니다." + "value" : "일치 시 대/소문자 무시" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm arabirimleri (0.0.0.0) dinler, yerel ağınızdan erişilebilir." + "value" : "Eşleştirme büyük/küçük harfe duyarsız" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lắng nghe trên mọi giao diện mạng (0.0.0.0), có thể truy cập từ mạng cục bộ của bạn." + "value" : "So khớp không phân biệt hoa thường" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "监听所有网络接口(0.0.0.0),可从本地网络访问。" + "value" : "匹配时忽略大小写" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "監聽所有網路介面(0.0.0.0),可從你的區域網路存取。" + "value" : "比對時忽略大小寫" } } } }, - "Listens only on 127.0.0.1." : { + "Matching is case-sensitive" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "127.0.0.1에서만 수신 대기합니다." + "value" : "일치 시 대/소문자 구분" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yalnızca 127.0.0.1 üzerinde dinler." + "value" : "Eşleştirme büyük/küçük harfe duyarlı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chỉ lắng nghe trên 127.0.0.1." + "value" : "So khớp phân biệt hoa thường" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "仅监听 127.0.0.1。" + "value" : "匹配时区分大小写" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "只監聽 127.0.0.1。" + "value" : "比對時區分大小寫" } } } }, - "Load" : { + "Materialized View" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "불러오기" + "value" : "구체화된 뷰" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yükle" + "value" : "Materyalize Görünüm" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tải" + "value" : "Materialized View" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "加载" + "value" : "物化视图" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "載入" + "value" : "具體化檢視表" } } } }, - "Load in Editor" : { + "Materialized Views" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "편집기에서 불러오기" + "value" : "구체화된 뷰" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Düzenleyiciye Yükle" + "value" : "Materyalize Görünümler" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tải vào trình soạn thảo" + "value" : "Materialized Views" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在编辑器中加载" + "value" : "物化视图" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在編輯器中載入" + "value" : "具體化檢視表" } } } }, - "Load Models" : { - "extractionState" : "stale", + "Max %lld characters" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모델 불러오기" + "value" : "최대 %lld자" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Modelleri Yükle" + "value" : "Max %lld karakter" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tải mô hình" + "value" : "Tối đa %lld ký tự" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "加载模型" + "value" : "最多 %lld 个字符" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "載入模型" + "value" : "最多 %lld 個字" } } } }, - "Load More" : { + "Max Bytes Billed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "더 불러오기" + "value" : "최대 청구 바이트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Daha Fazla Yükle" + "value" : "Faturalanacak Maks Bayt" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tải thêm" + "value" : "Số byte tính phí tối đa" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "加载更多" + "value" : "最大计费字节数" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "載入更多" + "value" : "最大計費位元組數" } } } }, - "Load Query" : { + "Max Connections" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 불러오기" + "value" : "최대 연결 수" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorguyu Yükle" + "value" : "Maks. Bağlantı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tải truy vấn" + "value" : "Kết nối tối đa" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "加载查询" + "value" : "最大连接数" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "載入查詢" + "value" : "最大連線數" } } } }, - "Load Table Template" : { - "extractionState" : "stale", + "Max output tokens" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 템플릿 불러오기" + "value" : "최대 출력 토큰 수" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tablo Şablonu Yükle" + "value" : "Maksimum çıktı token'ları" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tải mẫu bảng" + "value" : "Số token đầu ra tối đa" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "加载表模板" + "value" : "最大输出令牌数" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "載入資料表範本" + "value" : "最大輸出權杖數" } } } }, - "Load Template" : { - "extractionState" : "stale", + "Max schema tables: %d" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "템플릿 불러오기" + "value" : "최대 스키마 테이블 수: %d" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Şablon Yükle" + "value" : "Maksimum şema tablosu: %d" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tải mẫu" + "value" : "Số bảng tối đa: %d" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "加载模板" + "value" : "最大架构表数:%d" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "載入範本" + "value" : "綱要資料表上限:%d" } } } }, - "Load the rows the row cap left behind." : { + "Max schema tables: %lld" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "행 제한으로 남겨진 행을 불러옵니다." + "value" : "최대 스키마 테이블 수: %lld" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satır sınırının dışında kalan satırları yükleyin." + "value" : "Max schema tablo: %lld" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tải những hàng còn lại sau giới hạn hàng." + "value" : "Số bảng tối đa: %lld" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "加载行数上限之外剩余的行。" + "value" : "Schema 最大表数:%lld" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "載入列數上限之外剩餘的列。" + "value" : "綱要資料表上限:%lld" } } } }, - "Loading %@…" : { + "Maximum days cannot be negative" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 불러오는 중…" + "value" : "최대 일수는 음수일 수 없습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ yükleniyor…" + "value" : "Maksimum gün negatif olamaz" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang tải %@…" + "value" : "Số ngày tối đa không được là số âm" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在加载 %@…" + "value" : "最大天数不能为负数" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在載入 %@…" + "value" : "最大天數不能為負數" } } } }, - "Loading dashboard…" : { + "Maximum depth reached" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "대시보드 불러오는 중…" + "value" : "최대 깊이에 도달했습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Pano yükleniyor…" + "value" : "Maksimum derinliğe ulaşıldı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang tải bảng điều khiển…" + "value" : "Đã đạt độ sâu tối đa" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在加载仪表盘…" + "value" : "已达到最大深度" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在載入儀表板…" + "value" : "已達到最大深度" } } } }, - "Loading databases…" : { + "Maximum entries cannot be negative" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 불러오는 중…" + "value" : "최대 항목 수는 음수일 수 없습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanları yükleniyor…" + "value" : "Maksimum kayıt negatif olamaz" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang tải cơ sở dữ liệu…" + "value" : "Số mục tối đa không được là số âm" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在载入数据库…" + "value" : "最大条目数不能为负数" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在載入資料庫…" + "value" : "最大項目數不能為負數" } } } }, - "Loading insights…" : { + "Maximum entries:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "인사이트 불러오는 중…" + "value" : "최대 항목 수:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Analizler yükleniyor…" + "value" : "Maksimum kayıt:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang tải phân tích…" + "value" : "Số mục tối đa:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在加载分析…" + "value" : "最大条目数:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在載入分析…" + "value" : "最大項目數:" } } } }, - "Loading keys…" : { - "extractionState" : "stale", + "Maximum number of activations reached." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "키 불러오는 중…" + "value" : "최대 활성화 수에 도달했습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Anahtarlar yükleniyor…" + "value" : "Maksimum etkinleştirme sayısına ulaşıldı." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang tải khóa…" + "value" : "Đã đạt số lượng kích hoạt tối đa." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在加载键…" + "value" : "已达到最大激活数。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在載入鍵…" + "value" : "已達到最大啟用次數。" } } } }, - "Loading more rows" : { - "extractionState" : "stale", + "Maximum number of entries to return (default 50, max 500)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "행을 더 불러오는 중" + "value" : "반환할 최대 항목 수(기본값 50, 최대 500)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Daha fazla satır yükleniyor" + "value" : "Döndürülecek maksimum kayıt sayısı (varsayılan 50, en çok 500)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang tải thêm hàng" + "value" : "Số mục tối đa trả về (mặc định 50, tối đa 500)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在载入更多行" + "value" : "返回条目的最大数量(默认 50,最大 500)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在載入更多列" + "value" : "回傳項目的最大數量(預設 50,最大 500)" } } } }, - "Loading options..." : { - "extractionState" : "stale", + "Maximum row limit" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "옵션 불러오는 중..." + "value" : "최대 행 제한" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Seçenekler yükleniyor..." + "value" : "Maksimum satır limiti" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang tải tùy chọn..." + "value" : "Giới hạn dòng tối đa" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在加载选项…" + "value" : "最大行数限制" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在載入選項…" + "value" : "最大列數限制" } } } }, - "Loading options…" : { + "Maximum rows to export (default 50000)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "옵션 불러오는 중…" + "value" : "내보낼 최대 행 수(기본값 50000)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Seçenekler yükleniyor…" + "value" : "Dışa aktarılacak maksimum satır sayısı (varsayılan 50000)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang tải tùy chọn…" + "value" : "Số hàng tối đa để xuất (mặc định 50000)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在载入选项…" + "value" : "导出行数上限(默认 50000)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在載入選項…" + "value" : "匯出列數上限(預設 50000)" } } } }, - "Loading page" : { - "extractionState" : "stale", + "Maximum rows to export. Defaults to the server's configured default row limit and is capped at its maximum row limit." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "페이지 불러오는 중" + "value" : "내보낼 최대 행 수입니다. 기본값은 서버에 설정된 기본 행 제한이며 최대 행 제한을 초과할 수 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sayfa yükleniyor" + "value" : "Dışa aktarılacak en fazla satır sayısı. Varsayılan olarak sunucunun ayarlı varsayılan satır limitidir ve maksimum satır limitiyle sınırlanır." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang tải trang" + "value" : "Số dòng tối đa được xuất. Mặc định là giới hạn dòng mặc định của máy chủ và bị chặn ở giới hạn dòng tối đa." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在载入页面" + "value" : "导出的最大行数。默认使用服务器配置的默认行数限制,并受其最大行数限制约束。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在載入頁面" + "value" : "匯出的最大列數。預設使用伺服器設定的預設列數上限,並受其最大列數上限限制。" } } } }, - "Loading plugins..." : { + "Maximum rows to return (default 500, max 10000)" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플러그인 불러오는 중..." + "value" : "반환할 최대 행 수(기본값 500, 최대 10000)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklentiler yükleniyor..." + "value" : "Döndürülecek maksimum satır sayısı (varsayılan 500, en çok 10000)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang tải plugin..." + "value" : "Số hàng tối đa trả về (mặc định 500, tối đa 10000)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在加载插件..." + "value" : "返回行数上限(默认 500,最大 10000)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在載入外掛…" + "value" : "回傳列數上限(預設 500,最大 10000)" } } } }, - "Loading schema…" : { + "Maximum rows to return. Defaults to the server's configured default row limit and is capped at its maximum row limit." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "스키마 불러오는 중…" + "value" : "반환할 최대 행 수입니다. 기본값은 서버에 설정된 기본 행 제한이며 최대 행 제한을 초과할 수 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Şema yükleniyor…" + "value" : "Döndürülecek en fazla satır sayısı. Varsayılan olarak sunucunun ayarlı varsayılan satır limitidir ve maksimum satır limitiyle sınırlanır." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang tải schema…" + "value" : "Số dòng tối đa được trả về. Mặc định là giới hạn dòng mặc định của máy chủ và bị chặn ở giới hạn dòng tối đa." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在加载架构…" + "value" : "返回的最大行数。默认使用服务器配置的默认行数限制,并受其最大行数限制约束。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在載入綱要…" + "value" : "回傳的最大列數。預設使用伺服器設定的預設列數上限,並受其最大列數上限限制。" } } } }, - "Loading schemas..." : { - "extractionState" : "stale", + "Maximum time to wait for a query to complete. Set to 0 for no limit. Applied to new connections." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "스키마 불러오는 중..." + "value" : "쿼리 완료를 기다리는 최대 시간입니다. 제한하지 않으려면 0으로 설정하십시오. 새 연결에 적용됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Şemalar yükleniyor..." + "value" : "Sorgunun tamamlanması için beklenecek maksimum süre. Sınır olmaması için 0 yapın. Yeni bağlantılara uygulanır." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang tải schema..." + "value" : "Thời gian chờ tối đa để truy vấn hoàn thành. Đặt 0 để không giới hạn. Áp dụng cho kết nối mới." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在加载 Schema..." + "value" : "等待查询完成的最长时间。设为 0 表示不限制。应用于新连接。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在載入綱要…" + "value" : "等待查詢完成的最長時間。設為 0 表示不限制。套用至新連線。" } } } }, - "Loading schemas…" : { - "extractionState" : "stale", + "Medium" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "스키마 불러오는 중…" + "value" : "중간" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Şemalar yükleniyor…" + "value" : "Orta" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang tải schema…" + "value" : "Trung bình" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在载入 Schema…" + "value" : "中等" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在載入綱要…" + "value" : "中等" } } } }, - "Loading tables..." : { - "extractionState" : "stale", + "Member Of" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 불러오는 중..." + "value" : "소속" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tablolar yükleniyor..." + "value" : "Üyesi Olduğu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang tải danh sách bảng..." + "value" : "Thành viên của" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在加载表..." + "value" : "隶属于" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在載入資料表…" + "value" : "隸屬於" } } } }, - "Loading tables…" : { - "extractionState" : "stale", + "Member of" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 불러오는 중…" + "value" : "소속" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tablolar yükleniyor…" + "value" : "Üyesi olduğu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang tải bảng…" + "value" : "Thành viên của" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在载入表…" + "value" : "隶属于" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在載入資料表…" + "value" : "隸屬於" } } } }, - "Loading users and roles…" : { + "Membership" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사용자 및 역할 불러오는 중…" + "value" : "멤버십" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kullanıcılar ve roller yükleniyor…" + "value" : "Üyelik" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang tải người dùng và vai trò…" + "value" : "Tư cách thành viên" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在加载用户和角色…" + "value" : "成员关系" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在載入使用者與角色…" + "value" : "成員關係" } } } }, - "Loading…" : { + "Memory Limit" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "불러오는 중…" + "value" : "메모리 제한" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yükleniyor…" + "value" : "Bellek Sınırı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang tải…" + "value" : "Giới hạn bộ nhớ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在加载…" + "value" : "内存限制" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在載入…" + "value" : "記憶體限制" } } } }, - "Local" : { + "Merge" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "로컬" + "value" : "병합" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yerel" + "value" : "Birleştir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cục bộ" + "value" : "Gộp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "本地" + "value" : "合并" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "本機" + "value" : "合併" } } } }, - "Local File" : { + "Merge All Windows" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "로컬 파일" + "value" : "모든 윈도우 통합" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yerel Dosya" + "value" : "Tüm Pencereleri Birleştir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tệp cục bộ" + "value" : "Hợp nhất tất cả cửa sổ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "本地文件" + "value" : "合并所有窗口" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "本機檔案" + "value" : "合併所有視窗" } } } }, - "Local Listener" : { + "Merge Columns…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "로컬 리스너" + "value" : "열 병합…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yerel Dinleyici" + "value" : "Sütunları Birleştir…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trình lắng nghe cục bộ" + "value" : "Gộp cột…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "本地监听器" + "value" : "合并列…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "本機監聽器" + "value" : "合併欄位…" } } } }, - "Local only" : { + "Merge “%@” with “%@”" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Merge “%1$@” with “%2$@”" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "로컬 전용" + "value" : "“%1$@” 및 “%2$@” 병합" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sadece yerel" + "value" : "“%1$@” ile “%2$@” birleştirilsin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chỉ cục bộ" + "value" : "Gộp “%1$@” với “%2$@”" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "仅本地" + "value" : "将“%1$@”与“%2$@”合并" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "僅限本機" + "value" : "將「%1$@」與「%2$@」合併" } } } }, - "Local only - not synced to iCloud" : { - "extractionState" : "stale", + "Message too large. Try disabling 'Include schema' or 'Include query results' in AI settings." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "로컬 전용 - iCloud에 동기화되지 않음" + "value" : "메시지가 너무 큽니다. AI 설정에서 '스키마 포함' 또는 '쿼리 결과 포함'을 끄십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sadece yerel - iCloud ile eşitlenmiyor" + "value" : "Mesaj çok büyük. AI ayarlarında 'Şemayı dahil et' veya 'Sorgu sonuçlarını dahil et' seçeneklerini devre dışı bırakmayı deneyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chỉ cục bộ - không đồng bộ lên iCloud" + "value" : "Tin nhắn quá lớn. Thử tắt 'Bao gồm schema' hoặc 'Bao gồm kết quả truy vấn' trong cài đặt AI." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "仅本地 - 不同步到 iCloud" + "value" : "消息过大。请尝试在 AI 设置中禁用“包含 schema”或“包含查询结果”。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "僅限本機,不同步至 iCloud" + "value" : "訊息過大。請嘗試在 AI 設定中停用「包含綱要」或「包含查詢結果」。" } } } }, - "Local only, not synced to iCloud" : { + "Method" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "로컬 전용, iCloud에 동기화되지 않음" + "value" : "메서드" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yalnızca yerel, iCloud ile eşzamanlanmaz" + "value" : "Yöntem" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chỉ lưu cục bộ, không đồng bộ với iCloud" + "value" : "Phương thức" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "仅本地存储,不同步到 iCloud" + "value" : "方法" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "僅儲存於本機,不會同步到 iCloud" + "value" : "方法" } } } }, - "Local port" : { + "Microsoft Entra ID" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "로컬 포트" + "value" : "Microsoft Entra ID" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yerel port" + "value" : "Microsoft Entra ID" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cổng cục bộ" + "value" : "Microsoft Entra ID" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "本地端口" + "value" : "Microsoft Entra ID" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "本機連接埠" + "value" : "Microsoft Entra ID" } } } }, - "Local port must be between 1 and 65535" : { + "Microsoft Entra ID Sign-In Failed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "로컬 포트는 1에서 65535 사이여야 합니다" + "value" : "Microsoft Entra ID 로그인 실패" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yerel port 1 ile 65535 arasında olmalıdır" + "value" : "Microsoft Entra ID oturumu açılamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cổng cục bộ phải nằm trong khoảng 1 đến 65535" + "value" : "Đăng nhập Microsoft Entra ID thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "本地端口必须介于 1 到 65535 之间" + "value" : "Microsoft Entra ID 登录失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "本機連接埠必須介於 1 到 65535 之間" + "value" : "Microsoft Entra ID 登入失敗" } } } }, - "localhost" : { + "Microsoft Entra ID Sign-In Required" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "localhost" + "value" : "Microsoft Entra ID 로그인 필요" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "localhost" + "value" : "Microsoft Entra ID ile oturum açma gerekli" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "localhost" + "value" : "Yêu cầu đăng nhập Microsoft Entra ID" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "localhost" + "value" : "需要 Microsoft Entra ID 登录" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "localhost" + "value" : "需要 Microsoft Entra ID 登入" } } } }, - "Location" : { + "Microsoft Entra ID sign-in finished. Test the connection again." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "위치" + "value" : "Microsoft Entra ID 로그인이 완료되었습니다. 연결을 다시 테스트하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Konum" + "value" : "Microsoft Entra ID oturum açma tamamlandı. Bağlantıyı yeniden test edin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Vị trí" + "value" : "Đã hoàn tất đăng nhập Microsoft Entra ID. Hãy kiểm tra lại kết nối." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "位置" + "value" : "Microsoft Entra ID 登录已完成。请再次测试连接。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "位置" + "value" : "Microsoft Entra ID 登入已完成。請再次測試連線。" } } } }, - "Log MCP queries in history" : { + "Microsoft's enterprise SQL database" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기록에 MCP 쿼리 로그 남기기" + "value" : "Microsoft의 엔터프라이즈 SQL 데이터베이스" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "MCP sorgularını geçmişe kaydet" + "value" : "Microsoft'un kurumsal SQL veritabanı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ghi truy vấn MCP vào lịch sử" + "value" : "Cơ sở dữ liệu SQL doanh nghiệp của Microsoft" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在历史记录中记录 MCP 查询" + "value" : "Microsoft 的企业级 SQL 数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在歷史紀錄中記錄 MCP 查詢" + "value" : "Microsoft 的企業級 SQL 資料庫" } } } }, - "Looking for database settings…" : { + "Minimal" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 설정을 찾는 중…" + "value" : "최소" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı ayarları aranıyor…" + "value" : "Minimal" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang tìm cài đặt cơ sở dữ liệu…" + "value" : "Tối giản" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在查找数据库设置…" + "value" : "极简" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在尋找資料庫設定…" + "value" : "極簡" } } } }, - "Looks like a placeholder value" : { + "Minimize" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "자리표시자 값인 것 같습니다" + "value" : "최소화" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yer tutucu bir değere benziyor" + "value" : "Küçült" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trông giống giá trị mẫu" + "value" : "Thu nhỏ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "看起来是占位值" + "value" : "最小化" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "看起來是預留位置值" + "value" : "縮到最小" } } } }, - "Loops" : { - "comment" : "Label for the number of loops in a query plan.", - "isCommentAutoGenerated" : true, + "Missing argument: %@" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "반복 횟수" + "value" : "누락된 인수: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Döngü" + "value" : "Eksik bağımsız değişken: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Số vòng lặp" + "value" : "Thiếu đối số: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "循环次数" + "value" : "缺少参数:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "迴圈次數" + "value" : "缺少引數:%@" } } } }, - "Lossy type change" : { - - }, - "Low" : { + "Missing required parameter: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "낮음" + "value" : "필수 매개변수 누락: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Düşük" + "value" : "Gerekli parametre eksik: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thấp" + "value" : "Thiếu tham số bắt buộc: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "低" + "value" : "缺少必需参数:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "低" + "value" : "缺少必要參數:%@" } } } }, - "Low cost" : { - "comment" : "Accessibility label for a low cost severity.", - "isCommentAutoGenerated" : true, + "Missing value for parameter: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "낮은 비용" + "value" : "매개변수 값 누락: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Düşük maliyet" + "value" : "Parametre için değer eksik: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chi phí thấp" + "value" : "Thiếu giá trị cho tham số: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "低成本" + "value" : "参数缺少值:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "低成本" + "value" : "參數缺少值:%@" } } } }, - "LSP process exited with code %d" : { + "Mixed Selection" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "LSP 프로세스가 종료되었습니다(코드: %d)" + "value" : "혼합 선택" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "LSP süreci %d koduyla sonlandı" + "value" : "Karışık Seçim" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tiến trình LSP đã thoát với mã %d" + "value" : "Lựa chọn hỗn hợp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "LSP 进程已退出,代码为 %d" + "value" : "混合选择" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "LSP 處理程序已結束,結束代碼為 %d" + "value" : "混合選取" } } } }, - "LSP process is not running" : { + "Mode" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "LSP 프로세스가 실행 중이 아닙니다" + "value" : "모드" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "LSP süreci çalışmıyor" + "value" : "Mod" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tiến trình LSP không chạy" + "value" : "Chế độ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "LSP 进程未运行" + "value" : "模式" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "LSP 處理程序未在執行" + "value" : "模式" } } } }, - "LSP request was cancelled" : { + "Model" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "LSP 요청이 취소되었습니다" + "value" : "모델" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "LSP isteği iptal edildi" + "value" : "Model" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Yêu cầu LSP đã bị hủy" + "value" : "Model" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "LSP 请求已取消" + "value" : "Model" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "LSP 要求已取消" + "value" : "Model" } } } }, - "LSP server error (%d): %@" : { + "Model ID" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "LSP server error (%1$d): %2$@" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "LSP 서버 오류(%1$d): %2$@" + "value" : "모델 ID" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "LSP sunucu hatası (%d): %@" + "value" : "Model Kimliği" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lỗi LSP server (%d): %@" + "value" : "ID mô hình" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "LSP 服务器错误(%d):%@" + "value" : "模型 ID" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "LSP 伺服器錯誤(%1$d):%2$@" + "value" : "模型 ID" } } } }, - "macOS will ask for your login password" : { + "Model name" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "macOS에서 로그인 암호를 요청합니다" + "value" : "모델 이름" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "macOS giriş parolanızı isteyecek" + "value" : "Model adı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "macOS sẽ hỏi mật khẩu đăng nhập của bạn" + "value" : "Tên model" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "macOS 将要求输入您的登录密码" + "value" : "模型名称" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "macOS 會要求你輸入登入密碼" + "value" : "模型名稱" } } } }, - "Maintenance" : { + "Model not found: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "유지 관리" + "value" : "모델을 찾을 수 없음: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bakım" + "value" : "Model bulunamadı: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bảo trì" + "value" : "Không tìm thấy model: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "维护" + "value" : "未找到模型:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "維護" + "value" : "找不到模型:%@" } } } }, - "maintenance operation %@" : { - - }, - "Majority" : { - "extractionState" : "stale", + "Moderate cost" : { + "comment" : "Accessibility label for a moderate cost.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "과반수" + "value" : "중간 비용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Çoğunluk" + "value" : "Orta maliyet" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Majority" + "value" : "Chi phí trung bình" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Majority" + "value" : "中等成本" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Majority" + "value" : "中等成本" } } } }, - "Make the target the source and the source the target" : { - - }, - "Making %@ NOT NULL fails if any existing row holds NULL." : { - - }, - "Malformed deep link path: %@" : { + "Modified" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "잘못된 딥 링크 경로: %@" + "value" : "수정됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Hatalı biçimlendirilmiş deep link yolu: %@" + "value" : "Değiştirildi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đường dẫn deep link không hợp lệ: %@" + "value" : "Đã sửa đổi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "深层链接路径格式错误:%@" + "value" : "已修改" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "深層連結路徑格式錯誤:%@" + "value" : "已修改" } } } }, - "Manage Connections" : { + "Modified:" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 관리" + "value" : "수정됨:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantıları Yönet" + "value" : "Değiştirildi:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Quản lý kết nối" + "value" : "Đã sửa đổi:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "管理连接" + "value" : "修改时间:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "管理連線" + "value" : "修改時間:" } } } }, - "Manage Connections…" : { + "Modifier Key Required" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 관리…" + "value" : "보조 키 필요" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantıları Yönet…" + "value" : "Değiştirici Tuş Gerekli" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Quản lý kết nối…" + "value" : "Cần phím bổ trợ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "管理连接…" + "value" : "需要修饰键" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "管理連線…" + "value" : "需要修飾鍵" } } } }, - "Manage Tags" : { + "MongoDB" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "태그 관리" + "value" : "MongoDB" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Etiketleri Yönet" + "value" : "MongoDB" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Quản lý thẻ" + "value" : "MongoDB" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "管理标签" + "value" : "MongoDB" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "管理標籤" + "value" : "MongoDB" } } } }, - "Manual" : { + "MongoDB driver has no TLS fallback. Preferred and Required both force TLS. Use Required for MongoDB Atlas and other hosted instances." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "수동" + "value" : "MongoDB 드라이버에는 TLS 폴백이 없습니다. Preferred와 Required 모두 TLS를 강제합니다. MongoDB Atlas 및 기타 호스팅 인스턴스에는 Required를 사용하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Manuel" + "value" : "MongoDB sürücüsünde TLS geri dönüşü yoktur. Tercih Edilen ve Zorunlu'nun ikisi de TLS'yi zorunlu kılar. MongoDB Atlas ve diğer barındırılan sunucular için Zorunlu kullanın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thủ công" + "value" : "Driver MongoDB không có cơ chế dự phòng TLS. Preferred và Required đều buộc dùng TLS. Dùng Required cho MongoDB Atlas và các instance được lưu trữ khác." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "手动" + "value" : "MongoDB 驱动没有 TLS 回退。“首选”和“必需”都会强制使用 TLS。连接 MongoDB Atlas 和其他托管实例时请使用“必需”。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "手動" + "value" : "MongoDB 驅動程式沒有 TLS 後備機制。「偏好」和「必要」都會強制使用 TLS。連接 MongoDB Atlas 與其他託管執行個體時請使用「必要」。" } } } }, - "Markdown" : { + "MongoDB query language. Use to import into MongoDB." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Markdown" + "value" : "MongoDB 쿼리 언어입니다. MongoDB로 가져올 때 사용합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Markdown" + "value" : "MongoDB sorgu dili. MongoDB'ye içe aktarmak için kullanın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Markdown" + "value" : "Ngôn ngữ truy vấn MongoDB. Dùng để nhập vào MongoDB." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Markdown" + "value" : "MongoDB 查询语言。用于导入到 MongoDB。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Markdown" + "value" : "MongoDB 查詢語言。用於匯入 MongoDB。" } } } }, - "Massive" : { - "extractionState" : "stale", + "Most Run" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "매우 큼" + "value" : "최다 실행" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Çok Büyük" + "value" : "En Çok Çalıştırılan" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cực lớn" + "value" : "Chạy nhiều nhất" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "巨大" + "value" : "运行最多" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "巨大" + "value" : "執行最多" } } } }, - "Match all" : { + "Most popular open-source SQL database" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모두 일치" + "value" : "가장 인기 있는 오픈 소스 SQL 데이터베이스" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tümüyle eşleştir" + "value" : "En popüler açık kaynaklı SQL veritabanı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khớp tất cả" + "value" : "Cơ sở dữ liệu SQL mã nguồn mở phổ biến nhất" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "匹配全部" + "value" : "最流行的开源 SQL 数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "全部符合" + "value" : "最熱門的開放原始碼 SQL 資料庫" } } } }, - "Match All" : { + "Move Down" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모두 일치" + "value" : "아래로 이동" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tümü Eşleşsin" + "value" : "Aşağı Taşı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khớp tất cả" + "value" : "Di chuyển xuống" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "匹配全部" + "value" : "下移" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "符合全部" + "value" : "下移" } } } }, - "Match ALL filters (AND) or ANY filter (OR)" : { + "Move Down (⌘↓)" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 필터(AND) 또는 하나 이상의 필터(OR)와 일치" + "value" : "아래로 이동 (⌘↓)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "TÜM filtrelerle eşleş (VE) veya HERHANGİ bir filtreyle (VEYA)" + "value" : "Aşağı Taşı (⌘↓)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khớp TẤT CẢ bộ lọc (AND) hoặc BẤT KỲ bộ lọc (OR)" + "value" : "Di chuyển xuống (⌘↓)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "匹配所有筛选条件 (AND) 或任意筛选条件 (OR)" + "value" : "下移 (⌘↓)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "符合所有篩選條件 (AND) 或任一篩選條件 (OR)" + "value" : "下移 (⌘↓)" } } } }, - "Match all filters or any filter" : { + "Move File to Trash" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 필터 또는 하나 이상의 필터와 일치" + "value" : "파일을 휴지통으로 이동" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm filtreleri veya herhangi bir filtreyi eşleştir" + "value" : "Dosyayı Çöp Sepetine Taşı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khớp tất cả bộ lọc hoặc bất kỳ bộ lọc nào" + "value" : "Chuyển tệp vào Thùng rác" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "匹配全部筛选条件或任一筛选条件" + "value" : "将文件移到废纸篓" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "符合所有篩選條件或任一篩選條件" + "value" : "將檔案移到垃圾桶" } } } }, - "Match any" : { + "Move File to Trash?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "하나라도 일치" + "value" : "파일을 휴지통으로 이동하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Herhangi biriyle eşleştir" + "value" : "Dosya Çöp Sepetine Taşınsın mı?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khớp bất kỳ" + "value" : "Chuyển tệp vào Thùng rác?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "匹配任一" + "value" : "要将文件移到废纸篓吗?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "符合任一" + "value" : "要將檔案移到垃圾桶嗎?" } } } }, - "Match Any" : { + "Move Filter Down" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "하나라도 일치" + "value" : "필터를 아래로 이동" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Herhangi Biri Eşleşsin" + "value" : "Filtreyi Aşağı Taşı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khớp bất kỳ" + "value" : "Chuyển bộ lọc xuống" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "匹配任一" + "value" : "下移筛选条件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "符合任一" + "value" : "將篩選條件下移" } } } }, - "Match Case" : { + "Move Filter Up" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "대/소문자 구분" + "value" : "필터를 위로 이동" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Büyük/Küçük Harf Eşleştir" + "value" : "Filtreyi Yukarı Taşı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phân biệt hoa thường" + "value" : "Chuyển bộ lọc lên" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "区分大小写" + "value" : "上移筛选条件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "區分大小寫" + "value" : "將篩選條件上移" } } } }, - "Match case exactly" : { - - }, - "Match System" : { - "comment" : "Text for a sidebar row size preference that matches the system's sidebar row size.", - "isCommentAutoGenerated" : true, + "Move Group to…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "시스템 설정 따르기" + "value" : "그룹 이동…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sistemle Aynı" + "value" : "Grubu Taşı…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Theo hệ thống" + "value" : "Di chuyển nhóm đến…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "跟随系统" + "value" : "移动分组到…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "跟隨系統" + "value" : "移動群組至…" } } } }, - "Match System follows Sidebar icon size in System Settings > Appearance. Choose a size to fit more objects on screen than the rest of the system shows." : { - "comment" : "Match System", - "isCommentAutoGenerated" : true, + "Move Line Down" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "시스템 설정 따르기는 시스템 설정 > 모양의 사이드바 아이콘 크기를 사용합니다. 화면에 시스템의 다른 부분보다 더 많은 개체를 표시하려면 크기를 선택하십시오." + "value" : "줄을 아래로 이동" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sistemle Aynı, Sistem Ayarları > Görünüm bölümündeki Kenar Çubuğu simge boyutunu izler. Sistemin geri kalanından daha fazla nesneyi ekrana sığdırmak için bir boyut seçin." + "value" : "Satırı Aşağı Taşı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Theo hệ thống sẽ dùng cỡ biểu tượng Thanh bên trong Cài đặt hệ thống > Giao diện. Chọn một cỡ để hiển thị nhiều đối tượng hơn so với phần còn lại của hệ thống." + "value" : "Chuyển dòng xuống" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "“跟随系统”会采用“系统设置 > 外观”中的侧边栏图标大小。选择一个大小可以在屏幕上显示比系统其余部分更多的对象。" + "value" : "下移一行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "「跟隨系統」會採用「系統設定 > 外觀」中的側邊欄圖像大小。選擇一個大小可以在螢幕上顯示比系統其餘部分更多的物件。" + "value" : "將該行下移" } } } }, - "Matched name" : { - - }, - "matches regex" : { + "Move Line Up" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "정규식과 일치" + "value" : "줄을 위로 이동" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "regex ile eşleşir" + "value" : "Satırı Yukarı Taşı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "khớp regex" + "value" : "Chuyển dòng lên" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "匹配正则" + "value" : "上移一行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "符合正規表示式" + "value" : "將該行上移" } } } }, - "Matching history entries, newest first" : { - - }, - "Matching ignores case" : { + "Move Tab to New Window" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "일치 시 대/소문자 무시" + "value" : "탭을 새 윈도우로 이동" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eşleştirme büyük/küçük harfe duyarsız" + "value" : "Sekmeyi Yeni Pencereye Taşı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "So khớp không phân biệt hoa thường" + "value" : "Chuyển tab sang cửa sổ mới" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "匹配时忽略大小写" + "value" : "将标签页移到新窗口" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "比對時忽略大小寫" + "value" : "將標籤頁移至新視窗" } } } }, - "Matching is case-sensitive" : { + "Move Up" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "일치 시 대/소문자 구분" + "value" : "위로 이동" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eşleştirme büyük/küçük harfe duyarlı" + "value" : "Yukarı Taşı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "So khớp phân biệt hoa thường" + "value" : "Di chuyển lên" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "匹配时区分大小写" + "value" : "上移" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "比對時區分大小寫" + "value" : "上移" } } } }, - "Matching tables first, then matching columns" : { - - }, - "Materialized View" : { + "Move Up (⌘↑)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "구체화된 뷰" + "value" : "위로 이동 (⌘↑)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Materyalize Görünüm" + "value" : "Yukarı Taşı (⌘↑)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Materialized View" + "value" : "Di chuyển lên (⌘↑)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "物化视图" + "value" : "上移 (⌘↑)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "具體化檢視表" + "value" : "上移 (⌘↑)" } } } }, - "Materialized Views" : { + "Move Word Left" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "구체화된 뷰" + "value" : "단어 단위로 왼쪽 이동" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Materyalize Görünümler" + "value" : "Bir Kelime Sola Git" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Materialized Views" + "value" : "Sang trái một từ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "物化视图" + "value" : "向左移动一个单词" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "具體化檢視表" + "value" : "向左移動一個單字" } } } }, - "max %@" : { - "comment" : "Longest single run, %@ is a duration", + "Move Word Right" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "최댓값 %@" + "value" : "단어 단위로 오른쪽 이동" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "maks. %@" + "value" : "Bir Kelime Sağa Git" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "tối đa %@" + "value" : "Sang phải một từ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "最长 %@" + "value" : "向右移动一个单词" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "最長 %@" + "value" : "向右移動一個單字" } } } }, - "Max %lld characters" : { + "Move to" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "최대 %lld자" + "value" : "다음으로 이동" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Max %lld karakter" + "value" : "Taşı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tối đa %lld ký tự" + "value" : "Di chuyển đến" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "最多 %lld 个字符" + "value" : "移动到" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "最多 %lld 個字" + "value" : "移動至" } } } }, - "Max Bytes Billed" : { + "Move to Beginning of Document" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "최대 청구 바이트" + "value" : "문서 시작 부분으로 이동" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Faturalanacak Maks Bayt" + "value" : "Belgenin Başına Git" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Số byte tính phí tối đa" + "value" : "Đến đầu tài liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "最大计费字节数" + "value" : "移到文稿开头" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "最大計費位元組數" + "value" : "移到文件開頭" } } } }, - "Max Connections" : { + "Move to Beginning of Line" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "최대 연결 수" + "value" : "줄 시작 부분으로 이동" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Maks. Bağlantı" + "value" : "Satırın Başına Git" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối tối đa" + "value" : "Đến đầu dòng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "最大连接数" + "value" : "移到行首" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "最大連線數" + "value" : "移到行首" } } } }, - "Max output tokens" : { + "Move to End of Document" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "최대 출력 토큰 수" + "value" : "문서 끝으로 이동" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Maksimum çıktı token'ları" + "value" : "Belgenin Sonuna Git" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Số token đầu ra tối đa" + "value" : "Đến cuối tài liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "最大输出令牌数" + "value" : "移到文稿末尾" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "最大輸出權杖數" + "value" : "移到文件結尾" } } } }, - "Max schema tables: %d" : { + "Move to End of Line" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "최대 스키마 테이블 수: %d" + "value" : "줄 끝으로 이동" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Maksimum şema tablosu: %d" + "value" : "Satırın Sonuna Git" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Số bảng tối đa: %d" + "value" : "Đến cuối dòng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "最大架构表数:%d" + "value" : "移到行尾" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "綱要資料表上限:%d" + "value" : "移到行尾" } } } }, - "Max schema tables: %lld" : { - "extractionState" : "stale", + "Move to Group" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "최대 스키마 테이블 수: %lld" + "value" : "그룹으로 이동" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Max schema tablo: %lld" + "value" : "Gruba Taşı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Số bảng tối đa: %lld" + "value" : "Di chuyển vào Nhóm" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Schema 最大表数:%lld" + "value" : "移动到分组" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "綱要資料表上限:%lld" + "value" : "移動至群組" } } } }, - "Maximum days cannot be negative" : { + "Move to Trash" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "최대 일수는 음수일 수 없습니다" + "value" : "휴지통으로 이동" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Maksimum gün negatif olamaz" + "value" : "Çöp Sepetine Taşı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Số ngày tối đa không được là số âm" + "value" : "Chuyển vào Thùng rác" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "最大天数不能为负数" + "value" : "移到废纸篓" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "最大天數不能為負數" + "value" : "移到垃圾桶" } } } }, - "Maximum depth reached" : { + "Moves the editor cursor to the statement that produced this result" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "최대 깊이에 도달했습니다" + "value" : "이 결과를 생성한 문으로 편집기 커서를 이동합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Maksimum derinliğe ulaşıldı" + "value" : "Düzenleyici imlecini bu sonucu üreten ifadeye taşır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã đạt độ sâu tối đa" + "value" : "Di chuyển con trỏ trình soạn thảo tới câu lệnh đã tạo ra kết quả này" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已达到最大深度" + "value" : "将编辑器光标移到生成此结果的语句" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已達到最大深度" + "value" : "將編輯器游標移到產生此結果的陳述式" } } } }, - "Maximum entries cannot be negative" : { + "Multi-model database with SurrealQL" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "최대 항목 수는 음수일 수 없습니다" + "value" : "SurrealQL을 사용하는 멀티 모델 데이터베이스" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Maksimum kayıt negatif olamaz" + "value" : "SurrealQL ile çok modelli veritabanı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Số mục tối đa không được là số âm" + "value" : "Cơ sở dữ liệu đa mô hình với SurrealQL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "最大条目数不能为负数" + "value" : "使用 SurrealQL 的多模型数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "最大項目數不能為負數" + "value" : "使用 SurrealQL 的多模型資料庫" } } } }, - "Maximum entries to return (1-500, default 50)" : { - - }, - "Maximum entries:" : { + "Multiple statements are not permitted for this client" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "최대 항목 수:" + "value" : "이 클라이언트에서는 여러 쿼리문을 사용할 수 없습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Maksimum kayıt:" + "value" : "Bu istemci için birden çok deyime izin verilmiyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Số mục tối đa:" + "value" : "Client này không được phép chạy nhiều câu lệnh" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "最大条目数:" + "value" : "此客户端不允许执行多条语句" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "最大項目數:" + "value" : "此用戶端不允許執行多條語句" } } } }, - "Maximum matches to return (1-500, default 50)" : { - - }, - "Maximum number of activations reached." : { + "Multiple values" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "최대 활성화 수에 도달했습니다." + "value" : "여러 값" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Maksimum etkinleştirme sayısına ulaşıldı." + "value" : "Birden fazla değer" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã đạt số lượng kích hoạt tối đa." + "value" : "Nhiều giá trị" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已达到最大激活数。" + "value" : "多个值" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已達到最大啟用次數。" + "value" : "多個值" } } } }, - "Maximum number of entries to return (default 50, max 500)" : { - "extractionState" : "stale", + "Must be exactly: I understand this is irreversible" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "반환할 최대 항목 수(기본값 50, 최대 500)" + "value" : "다음과 정확히 일치해야 합니다: I understand this is irreversible" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Döndürülecek maksimum kayıt sayısı (varsayılan 50, en çok 500)" + "value" : "Tam olarak şöyle olmalı: I understand this is irreversible" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Số mục tối đa trả về (mặc định 50, tối đa 500)" + "value" : "Phải nhập chính xác: I understand this is irreversible" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "返回条目的最大数量(默认 50,最大 500)" + "value" : "必须完全输入:I understand this is irreversible" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "回傳項目的最大數量(預設 50,最大 500)" + "value" : "必須完全輸入:I understand this is irreversible" } } } }, - "Maximum row limit" : { + "My Queries" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "최대 행 제한" + "value" : "내 쿼리" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Maksimum satır limiti" + "value" : "Sorgularım" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giới hạn dòng tối đa" + "value" : "Truy vấn của tôi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "最大行数限制" + "value" : "我的查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "最大列數限制" + "value" : "我的查詢" } } } }, - "Maximum rows per export. Defaults to the server's configured row limit." : { - - }, - "Maximum rows to export (default 50000)" : { - "extractionState" : "stale", + "My Queries Only" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "내보낼 최대 행 수(기본값 50000)" + "value" : "내 쿼리만" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dışa aktarılacak maksimum satır sayısı (varsayılan 50000)" + "value" : "Yalnızca Sorgularım" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Số hàng tối đa để xuất (mặc định 50000)" + "value" : "Chỉ truy vấn của tôi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导出行数上限(默认 50000)" + "value" : "仅我的查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯出列數上限(預設 50000)" + "value" : "僅我的查詢" } } } }, - "Maximum rows to export. Defaults to the server's configured default row limit and is capped at its maximum row limit." : { - "extractionState" : "stale", + "My Server" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "My Server" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "내보낼 최대 행 수입니다. 기본값은 서버에 설정된 기본 행 제한이며 최대 행 제한을 초과할 수 없습니다." + "value" : "내 서버" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dışa aktarılacak en fazla satır sayısı. Varsayılan olarak sunucunun ayarlı varsayılan satır limitidir ve maksimum satır limitiyle sınırlanır." + "value" : "Sunucum" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Số dòng tối đa được xuất. Mặc định là giới hạn dòng mặc định của máy chủ và bị chặn ở giới hạn dòng tối đa." + "value" : "Máy chủ của tôi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导出的最大行数。默认使用服务器配置的默认行数限制,并受其最大行数限制约束。" + "value" : "我的服务器" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯出的最大列數。預設使用伺服器設定的預設列數上限,並受其最大列數上限限制。" + "value" : "我的伺服器" } } } }, - "Maximum rows to return (default 500, max 10000)" : { - "extractionState" : "stale", + "MySQL, PostgreSQL & SQLite" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "반환할 최대 행 수(기본값 500, 최대 10000)" + "value" : "MySQL, PostgreSQL & SQLite" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Döndürülecek maksimum satır sayısı (varsayılan 500, en çok 10000)" + "value" : "MySQL, PostgreSQL & SQLite" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Số hàng tối đa trả về (mặc định 500, tối đa 10000)" + "value" : "MySQL, PostgreSQL & SQLite" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "返回行数上限(默认 500,最大 10000)" + "value" : "MySQL、PostgreSQL 和 SQLite" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "回傳列數上限(預設 500,最大 10000)" + "value" : "MySQL、PostgreSQL 和 SQLite" } } } }, - "Maximum rows to return. Defaults to the server's configured default row limit and is capped at its maximum row limit." : { + "NOT NULL" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "반환할 최대 행 수입니다. 기본값은 서버에 설정된 기본 행 제한이며 최대 행 제한을 초과할 수 없습니다." + "value" : "NOT NULL" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Döndürülecek en fazla satır sayısı. Varsayılan olarak sunucunun ayarlı varsayılan satır limitidir ve maksimum satır limitiyle sınırlanır." + "value" : "NOT NULL" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Số dòng tối đa được trả về. Mặc định là giới hạn dòng mặc định của máy chủ và bị chặn ở giới hạn dòng tối đa." + "value" : "NOT NULL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "返回的最大行数。默认使用服务器配置的默认行数限制,并受其最大行数限制约束。" + "value" : "NOT NULL" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "回傳的最大列數。預設使用伺服器設定的預設列數上限,並受其最大列數上限限制。" + "value" : "NOT NULL" } } } }, - "Maximum rows to return. Defaults to the server's configured row limit." : { - - }, - "Maximum tabs to return (1-500, default 20)" : { - - }, - "Maximum time to wait for a query to complete. Set to 0 for no limit. Applied to new connections." : { + "NOW()" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 완료를 기다리는 최대 시간입니다. 제한하지 않으려면 0으로 설정하십시오. 새 연결에 적용됩니다." + "value" : "NOW()" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgunun tamamlanması için beklenecek maksimum süre. Sınır olmaması için 0 yapın. Yeni bağlantılara uygulanır." + "value" : "NOW()" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thời gian chờ tối đa để truy vấn hoàn thành. Đặt 0 để không giới hạn. Áp dụng cho kết nối mới." + "value" : "NOW()" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "等待查询完成的最长时间。设为 0 表示不限制。应用于新连接。" + "value" : "NOW()" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "等待查詢完成的最長時間。設為 0 表示不限制。套用至新連線。" + "value" : "NOW()" } } } }, - "MCP Access Request" : { + "NULL" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "MCP 접근 요청" + "value" : "NULL" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "MCP Erişim İsteği" + "value" : "NULL" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Yêu cầu truy cập MCP" + "value" : "NULL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "MCP 访问请求" + "value" : "NULL" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "MCP 存取要求" + "value" : "NULL" } } } }, - "MCP Configuration" : { - "extractionState" : "stale", + "NULL Value" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "MCP 구성" + "value" : "NULL 값" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "MCP Yapılandırması" + "value" : "NULL Değer" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cấu hình MCP" + "value" : "Giá trị NULL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "MCP 配置" + "value" : "NULL 值" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "MCP 設定" + "value" : "NULL 值" } } } }, - "MCP query execution" : { + "NULL display cannot be empty" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "MCP 쿼리 실행" + "value" : "NULL 표시 값은 비워 둘 수 없습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "MCP sorgu çalıştırma" + "value" : "NULL görünümü boş olamaz" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thực thi truy vấn MCP" + "value" : "Hiển thị NULL không được để trống" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "MCP 查询执行" + "value" : "NULL 显示不能为空" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "MCP 查詢執行" + "value" : "NULL 顯示不能為空" } } } }, - "MCP Server" : { - "extractionState" : "stale", + "NULL display contains invalid characters (newlines/tabs)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "MCP 서버" + "value" : "NULL 표시 값에 잘못된 문자(줄바꿈/탭)가 포함되어 있습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "MCP Sunucusu" + "value" : "NULL görünümü geçersiz karakterler içeriyor (satır sonları/sekmeler)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "MCP Server" + "value" : "Hiển thị NULL chứa ký tự không hợp lệ (xuống dòng/tab)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "MCP 服务器" + "value" : "NULL 显示包含无效字符(换行符/制表符)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "MCP 伺服器" + "value" : "NULL 顯示包含無效字(換行符/定位字)" } } } }, - "MCP Server: Failed" : { - "extractionState" : "stale", + "NULL display must be %d characters or less" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "MCP 서버: 실패" + "value" : "NULL 표시 값은 %d자 이하여야 합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "MCP Sunucusu: Başarısız" + "value" : "NULL gösterimi en fazla %d karakter olmalıdır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "MCP Server: Thất bại" + "value" : "Hiển thị NULL phải có %d ký tự trở xuống" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "MCP 服务器:失败" + "value" : "NULL显示不能超过%d个字符" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "MCP 伺服器:失敗" + "value" : "NULL 顯示不能超過 %d 個字" } } } }, - "MCP Server: Running" : { + "NULL display must be %lld characters or less" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "MCP 서버: 실행 중" + "value" : "NULL 표시 값은 %lld자 이하여야 합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "MCP Sunucusu: Çalışıyor" + "value" : "NULL görünümü en fazla %lld karakter olmalı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "MCP Server: Đang chạy" + "value" : "Hiển thị NULL phải có %lld ký tự trở xuống" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "MCP 服务器:运行中" + "value" : "NULL 显示不能超过 %lld 个字符" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "MCP 伺服器:執行中" + "value" : "NULL 顯示不能超過 %lld 個字" } } } }, - "MCP Server: Running (%d clients)" : { - "extractionState" : "stale", + "NULL display:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "MCP 서버: 실행 중(클라이언트 %d개)" + "value" : "NULL 표시:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "MCP Sunucusu: Çalışıyor (%d istemci)" + "value" : "NULL görünümü:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "MCP Server: Đang chạy (%d client)" + "value" : "Hiển thị NULL:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "MCP 服务器:运行中(%d 个客户端)" + "value" : "NULL 显示:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "MCP 伺服器:執行中(%d 個用戶端)" + "value" : "NULL 顯示:" } } } }, - "MCP Server: Starting..." : { + "NULL only equals NULL" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "NULL은 NULL과만 같음", + "state" : "translated" + } + } + } + }, + "NULL — no referenced row" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "MCP 서버: 시작 중..." + "value" : "NULL — 참조된 행 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "MCP Sunucusu: Başlatılıyor..." + "value" : "NULL — referans satır yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "MCP Server: Đang khởi động..." + "value" : "NULL — không có dòng tham chiếu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "MCP 服务器:正在启动…" + "value" : "NULL — 无引用行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "MCP 伺服器:正在啟動…" + "value" : "NULL,沒有參照的列" } } } }, - "MCP Server: Stopped" : { - "extractionState" : "stale", + "NULL, no referenced row" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "MCP 서버: 중지됨" + "value" : "NULL, 참조된 행 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "MCP Sunucusu: Durduruldu" + "value" : "NULL, başvurulan satır yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "MCP Server: Đã dừng" + "value" : "NULL, không có hàng được tham chiếu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "MCP 服务器:已停止" + "value" : "NULL,没有被引用的行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "MCP 伺服器:已停止" + "value" : "NULL,沒有被參照的列" } } } }, - "MCP Setup" : { - "extractionState" : "stale", + "Name" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "MCP 설정" + "value" : "이름" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "MCP Kurulumu" + "value" : "Ad" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thiết lập MCP" + "value" : "Tên" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "MCP 设置" + "value" : "名称" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "MCP 設定" + "value" : "名稱" } } } }, - "Medium" : { + "Name:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "중간" + "value" : "이름:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Orta" + "value" : "Ad:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trung bình" + "value" : "Tên:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "中等" + "value" : "名称:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "中等" + "value" : "名稱:" } } } }, - "MEDIUM" : { + "Namespace" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "중간" + "value" : "네임스페이스" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "ORTA" + "value" : "Namespace" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "TRUNG BÌNH" + "value" : "Namespace" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "中等" + "value" : "命名空间" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "中等" + "value" : "命名空間" } } } }, - "Member of" : { + "Navigate to referenced row" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "소속" + "value" : "참조된 행으로 이동" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Üyesi olduğu" + "value" : "Referans verilen satıra git" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thành viên của" + "value" : "Đi đến dòng được tham chiếu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "隶属于" + "value" : "跳转到引用行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "隸屬於" + "value" : "前往參照的列" } } } }, - "Member Of" : { + "Navigating pages will reload data and discard all unsaved changes." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "소속" + "value" : "페이지를 이동하면 데이터가 다시 로드되고 저장하지 않은 모든 변경 사항이 폐기됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Üyesi Olduğu" + "value" : "Sayfa değiştirmek veriyi yeniden yükler ve tüm kaydedilmemiş değişiklikleri siler." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thành viên của" + "value" : "Chuyển trang sẽ tải lại dữ liệu và hủy tất cả thay đổi chưa lưu." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "隶属于" + "value" : "翻页将重新加载数据并丢弃所有未保存的更改。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "隸屬於" + "value" : "翻頁將重新載入資料並捨棄所有未儲存的變更。" } } } }, - "Membership" : { + "Navigating to another page will discard all unsaved changes." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "멤버십" + "value" : "다른 페이지로 이동하면 저장하지 않은 모든 변경 사항이 폐기됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Üyelik" + "value" : "Başka bir sayfaya gitmek kaydedilmemiş değişiklikleri siler." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tư cách thành viên" + "value" : "Chuyển sang trang khác sẽ huỷ tất cả thay đổi chưa lưu." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "成员关系" + "value" : "导航到其他页面将丢弃所有未保存的更改。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "成員關係" + "value" : "前往其他頁面將捨棄所有未儲存的變更。" } } } }, - "Memory Limit" : { + "Navigation" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "메모리 제한" + "value" : "탐색" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bellek Sınırı" + "value" : "Gezinme" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giới hạn bộ nhớ" + "value" : "Điều hướng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "内存限制" + "value" : "导航" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "記憶體限制" + "value" : "導覽" } } } }, - "Merge" : { + "Nearest" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "병합" + "value" : "가장 가까움" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Birleştir" + "value" : "En Yakın" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gộp" + "value" : "Nearest" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "合并" + "value" : "Nearest" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "合併" + "value" : "Nearest" } } } }, - "Merge “%@” with “%@”" : { + "Negotiating encryption" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Merge “%1$@” with “%2$@”" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "“%1$@” 및 “%2$@” 병합" + "value" : "암호화 협상 중" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "“%1$@” ile “%2$@” birleştirilsin" + "value" : "Şifreleme görüşülüyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gộp “%1$@” với “%2$@”" + "value" : "Đang thương lượng mã hoá" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将“%1$@”与“%2$@”合并" + "value" : "正在协商加密" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將「%1$@」與「%2$@」合併" + "value" : "正在協商加密" } } } }, - "Merge All Windows" : { + "Network" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 윈도우 통합" + "value" : "네트워크" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm Pencereleri Birleştir" + "value" : "Ağ" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hợp nhất tất cả cửa sổ" + "value" : "Mạng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "合并所有窗口" + "value" : "网络" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "合併所有視窗" + "value" : "網路" } } } }, - "Merge Columns…" : { + "Network error: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열 병합…" + "value" : "네트워크 오류: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sütunları Birleştir…" + "value" : "Ağ hatası: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gộp cột…" + "value" : "Lỗi mạng: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "合并列…" + "value" : "网络错误:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "合併欄位…" + "value" : "網路錯誤:%@" } } } }, - "Message too large. Try disabling 'Include schema' or 'Include query results' in AI settings." : { + "Network is unavailable. Changes will sync when connectivity is restored." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "메시지가 너무 큽니다. AI 설정에서 '스키마 포함' 또는 '쿼리 결과 포함'을 끄십시오." + "value" : "네트워크를 사용할 수 없습니다. 연결이 복원되면 변경 사항이 동기화됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Mesaj çok büyük. AI ayarlarında 'Şemayı dahil et' veya 'Sorgu sonuçlarını dahil et' seçeneklerini devre dışı bırakmayı deneyin." + "value" : "Ağ kullanılamıyor. Bağlantı sağlandığında değişiklikler eşitlenecek." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tin nhắn quá lớn. Thử tắt 'Bao gồm schema' hoặc 'Bao gồm kết quả truy vấn' trong cài đặt AI." + "value" : "Mạng không khả dụng. Các thay đổi sẽ được đồng bộ khi có kết nối trở lại." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "消息过大。请尝试在 AI 设置中禁用“包含 schema”或“包含查询结果”。" + "value" : "网络不可用。恢复连接后将自动同步更改。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "訊息過大。請嘗試在 AI 設定中停用「包含綱要」或「包含查詢結果」。" + "value" : "網路無法使用。連線恢復後將自動同步變更。" } } } }, - "METADATA" : { + "Never" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "메타데이터" + "value" : "안 함" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "META VERİ" + "value" : "Asla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "SIÊU DỮ LIỆU" + "value" : "Không bao giờ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "元数据" + "value" : "从不" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "中繼資料" + "value" : "永不" } } } }, - "Method" : { + "Never executed" : { + "comment" : "Description of the execution status when a query was never executed.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "메서드" + "value" : "실행한 적 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yöntem" + "value" : "Hiç çalıştırılmadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phương thức" + "value" : "Chưa từng chạy" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "方法" + "value" : "从未执行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "方法" + "value" : "從未執行" } } } }, - "Metric id" : { - - }, - "Metric label" : { - - }, - "Metric unit" : { - - }, - "Metric value" : { - - }, - "MFA Passcode (TOTP)" : { + "Never used" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "MFA 인증 코드(TOTP)" + "value" : "사용한 적 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "MFA Parola Kodu (TOTP)" + "value" : "Hiç kullanılmadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mã MFA (TOTP)" + "value" : "Chưa dùng bao giờ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "MFA 验证码(TOTP)" + "value" : "从未使用" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "MFA 驗證碼(TOTP)" + "value" : "從未使用" } } } }, - "Microsoft Entra ID" : { + "New" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Microsoft Entra ID" + "value" : "새로 만들기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Microsoft Entra ID" + "value" : "Yeni" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Microsoft Entra ID" + "value" : "Mới" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Microsoft Entra ID" + "value" : "新建" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Microsoft Entra ID" + "value" : "新增" } } } }, - "Microsoft Entra ID Sign-In Failed" : { + "New %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Microsoft Entra ID 로그인 실패" + "value" : "새 %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Microsoft Entra ID oturumu açılamadı" + "value" : "Yeni %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đăng nhập Microsoft Entra ID thất bại" + "value" : "%@ mới" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Microsoft Entra ID 登录失败" + "value" : "新建 %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Microsoft Entra ID 登入失敗" + "value" : "新增 %@" } } } }, - "Microsoft Entra ID sign-in finished. Test the connection again." : { + "New %@ (⌘N)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Microsoft Entra ID 로그인이 완료되었습니다. 연결을 다시 테스트하십시오." + "value" : "새 %@ (⌘N)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Microsoft Entra ID oturum açma tamamlandı. Bağlantıyı yeniden test edin." + "value" : "Yeni %@ (⌘N)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã hoàn tất đăng nhập Microsoft Entra ID. Hãy kiểm tra lại kết nối." + "value" : "%@ mới (⌘N)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Microsoft Entra ID 登录已完成。请再次测试连接。" + "value" : "新建 %@ (⌘N)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Microsoft Entra ID 登入已完成。請再次測試連線。" + "value" : "新增 %@ (⌘N)" } } } }, - "Microsoft Entra ID Sign-In Required" : { + "New %@ Connection" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Microsoft Entra ID 로그인 필요" + "value" : "새 %@ 연결" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Microsoft Entra ID ile oturum açma gerekli" + "value" : "Yeni %@ Bağlantısı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Yêu cầu đăng nhập Microsoft Entra ID" + "value" : "Kết nối %@ mới" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "需要 Microsoft Entra ID 登录" + "value" : "新建%@连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "需要 Microsoft Entra ID 登入" + "value" : "新增 %@ 連線" } } } }, - "Microsoft's enterprise SQL database" : { + "New %@…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Microsoft의 엔터프라이즈 SQL 데이터베이스" + "value" : "새 %@…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Microsoft'un kurumsal SQL veritabanı" + "value" : "Yeni %@…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cơ sở dữ liệu SQL doanh nghiệp của Microsoft" + "value" : "%@ mới…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Microsoft 的企业级 SQL 数据库" + "value" : "新建 %@…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Microsoft 的企業級 SQL 資料庫" + "value" : "新增 %@…" } } } }, - "Migration plan for %@" : { - - }, - "Minimal" : { + "New Chat" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "최소" + "value" : "새 채팅" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Minimal" + "value" : "Yeni Sohbet" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tối giản" + "value" : "Cuộc trò chuyện mới" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "极简" + "value" : "新建对话" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "極簡" + "value" : "新增對話" } } } }, - "Minimize" : { + "New Connection" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "최소화" + "value" : "새 연결" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Küçült" + "value" : "Yeni Bağlantı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thu nhỏ" + "value" : "Kết nối mới" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "最小化" + "value" : "新建连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "縮到最小" + "value" : "新增連線" } } } }, - "Missing argument: %@" : { - "extractionState" : "stale", + "New Connection (%@)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "누락된 인수: %@" + "value" : "새 연결 (%@)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eksik bağımsız değişken: %@" + "value" : "Yeni Bağlantı (%@)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thiếu đối số: %@" + "value" : "Kết nối mới (%@)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "缺少参数:%@" + "value" : "新建连接(%@)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "缺少引數:%@" + "value" : "新增連線(%@)" } } } }, - "Missing required parameter: %@" : { + "New Connection (⌘N)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필수 매개변수 누락: %@" + "value" : "새 연결 (⌘N)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Gerekli parametre eksik: %@" + "value" : "Yeni Bağlantı (⌘N)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thiếu tham số bắt buộc: %@" + "value" : "Kết nối mới (⌘N)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "缺少必需参数:%@" + "value" : "新建连接 (⌘N)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "缺少必要參數:%@" + "value" : "新增連線 (⌘N)" } } } }, - "Missing value for parameter: %@" : { + "New Connection…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "매개변수 값 누락: %@" + "value" : "새 연결…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Parametre için değer eksik: %@" + "value" : "Yeni Bağlantı…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thiếu giá trị cho tham số: %@" + "value" : "Kết nối mới…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "参数缺少值:%@" + "value" : "新建连接…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "參數缺少值:%@" + "value" : "新增連線…" } } } }, - "Mixed Selection" : { + "New Conversation" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "혼합 선택" + "value" : "새 대화" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Karışık Seçim" + "value" : "Yeni Konuşma" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lựa chọn hỗn hợp" + "value" : "Hội thoại mới" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "混合选择" + "value" : "新建会话" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "混合選取" + "value" : "新增對話" } } } }, - "Mode" : { + "New Database" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모드" + "value" : "새 데이터베이스" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Mod" + "value" : "Yeni Veritabanı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chế độ" + "value" : "Cơ sở dữ liệu mới" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "模式" + "value" : "新建数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "模式" + "value" : "新增資料庫" } } } }, - "Model" : { + "New Database (⌘N)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모델" + "value" : "새 데이터베이스 (⌘N)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Model" + "value" : "Yeni Veritabanı (⌘N)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Model" + "value" : "Cơ sở dữ liệu mới (⌘N)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Model" + "value" : "新建数据库 (⌘N)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Model" + "value" : "新增資料庫(⌘N)" } } } }, - "Model ID" : { + "New Database…" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모델 ID" + "value" : "새 데이터베이스…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Model Kimliği" + "value" : "Yeni Veritabanı…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "ID mô hình" + "value" : "Cơ sở dữ liệu mới…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "模型 ID" + "value" : "新建数据库…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "模型 ID" + "value" : "新增資料庫…" } } } }, - "Model name" : { - "extractionState" : "stale", + "New Favorite" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모델 이름" + "value" : "새 즐겨찾기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Model adı" + "value" : "Yeni Sık Kullanılan" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên model" + "value" : "Mục yêu thích mới" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "模型名称" + "value" : "新建收藏" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "模型名稱" + "value" : "新增我的最愛" } } } }, - "Model not found: %@" : { + "New Favorite…" : { + "comment" : "Text for a menu item that opens a dialog to rename a folder.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모델을 찾을 수 없음: %@" + "value" : "새 즐겨찾기…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Model bulunamadı: %@" + "value" : "Yeni Sık Kullanılan…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy model: %@" + "value" : "Mục yêu thích mới…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未找到模型:%@" + "value" : "新建收藏…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "找不到模型:%@" + "value" : "新增我的最愛…" } } } }, - "Moderate cost" : { - "comment" : "Accessibility label for a moderate cost.", - "isCommentAutoGenerated" : true, + "New Folder" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "중간 비용" + "value" : "새 폴더" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Orta maliyet" + "value" : "Yeni Klasör" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chi phí trung bình" + "value" : "Thư mục mới" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "中等成本" + "value" : "新建文件夹" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "中等成本" + "value" : "新增資料夾" } } } }, - "Modified" : { + "New Group" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "수정됨" + "value" : "새 그룹" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Değiştirildi" + "value" : "Yeni Grup" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã sửa đổi" + "value" : "Nhóm mới" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已修改" + "value" : "新建分组" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已修改" + "value" : "新增群組" } } } }, - "Modified:" : { - "extractionState" : "stale", + "New Group…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "수정됨:" + "value" : "새 그룹…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Değiştirildi:" + "value" : "Yeni Grup…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã sửa đổi:" + "value" : "Nhóm Mới…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "修改时间:" + "value" : "新建分组…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "修改時間:" + "value" : "新增群組…" } } } }, - "Modifier Key Required" : { + "New Jump Host" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "보조 키 필요" + "value" : "새 점프 호스트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Değiştirici Tuş Gerekli" + "value" : "Yeni Atlama Sunucusu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cần phím bổ trợ" + "value" : "Jump Host mới" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "需要修饰键" + "value" : "新建 Jump Host" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "需要修飾鍵" + "value" : "新增 Jump Host" } } } }, - "MongoDB" : { - "extractionState" : "stale", + "New Query" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "MongoDB" + "value" : "새 쿼리" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "MongoDB" + "value" : "Yeni Sorgu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "MongoDB" + "value" : "Truy vấn mới" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "MongoDB" + "value" : "新建查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "MongoDB" + "value" : "新增查詢" } } } }, - "MongoDB driver has no TLS fallback. Preferred and Required both force TLS. Use Required for MongoDB Atlas and other hosted instances." : { + "New Query Tab" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "MongoDB 드라이버에는 TLS 폴백이 없습니다. Preferred와 Required 모두 TLS를 강제합니다. MongoDB Atlas 및 기타 호스팅 인스턴스에는 Required를 사용하십시오." + "value" : "새 쿼리 탭" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "MongoDB sürücüsünde TLS geri dönüşü yoktur. Tercih Edilen ve Zorunlu'nun ikisi de TLS'yi zorunlu kılar. MongoDB Atlas ve diğer barındırılan sunucular için Zorunlu kullanın." + "value" : "Yeni Sorgu Sekmesi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Driver MongoDB không có cơ chế dự phòng TLS. Preferred và Required đều buộc dùng TLS. Dùng Required cho MongoDB Atlas và các instance được lưu trữ khác." + "value" : "Tab truy vấn mới" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "MongoDB 驱动没有 TLS 回退。“首选”和“必需”都会强制使用 TLS。连接 MongoDB Atlas 和其他托管实例时请使用“必需”。" + "value" : "新建查询标签页" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "MongoDB 驅動程式沒有 TLS 後備機制。「偏好」和「必要」都會強制使用 TLS。連接 MongoDB Atlas 與其他託管執行個體時請使用「必要」。" + "value" : "新增查詢分頁" } } } }, - "MongoDB query language. Use to import into MongoDB." : { + "New Query Tab (⌘T)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "MongoDB 쿼리 언어입니다. MongoDB로 가져올 때 사용합니다." + "value" : "새 쿼리 탭 (⌘T)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "MongoDB sorgu dili. MongoDB'ye içe aktarmak için kullanın." + "value" : "Yeni Sorgu Sekmesi (⌘T)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ngôn ngữ truy vấn MongoDB. Dùng để nhập vào MongoDB." + "value" : "Tab truy vấn mới (⌘T)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "MongoDB 查询语言。用于导入到 MongoDB。" + "value" : "新建查询标签页 (⌘T)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "MongoDB 查詢語言。用於匯入 MongoDB。" + "value" : "新增查詢分頁 (⌘T)" } } } }, - "Most popular open-source SQL database" : { + "New Query, favorite, or folder" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "가장 인기 있는 오픈 소스 SQL 데이터베이스" + "value" : "새 쿼리, 즐겨찾기 또는 폴더" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "En popüler açık kaynaklı SQL veritabanı" + "value" : "Yeni sorgu, sık kullanılan veya klasör" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cơ sở dữ liệu SQL mã nguồn mở phổ biến nhất" + "value" : "Truy vấn mới, mục yêu thích hoặc thư mục" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "最流行的开源 SQL 数据库" + "value" : "新建查询、收藏或文件夹" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "最熱門的開放原始碼 SQL 資料庫" + "value" : "新增查詢、我的最愛或資料夾" } } } }, - "Most Run" : { + "New Subfolder" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "최다 실행" + "value" : "새 하위 폴더" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "En Çok Çalıştırılan" + "value" : "Yeni Alt Klasör" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chạy nhiều nhất" + "value" : "Thư mục con mới" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "运行最多" + "value" : "新建子文件夹" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "執行最多" + "value" : "新增子資料夾" } } } }, - "Move Down" : { + "New Subgroup" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "아래로 이동" + "value" : "새 하위 그룹" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Aşağı Taşı" + "value" : "Yeni Alt Grup" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Di chuyển xuống" + "value" : "Nhóm con mới" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "下移" + "value" : "新建子分组" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "下移" + "value" : "新增子群組" } } } }, - "Move Down (⌘↓)" : { - "extractionState" : "stale", + "New Tab" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "아래로 이동 (⌘↓)" + "value" : "새 탭" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Aşağı Taşı (⌘↓)" + "value" : "Yeni Sekme" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Di chuyển xuống (⌘↓)" + "value" : "Tab mới" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "下移 (⌘↓)" + "value" : "新建标签页" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "下移 (⌘↓)" + "value" : "新增分頁" } } } }, - "Move File to Trash" : { + "New Table" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "파일을 휴지통으로 이동" + "value" : "새 테이블" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dosyayı Çöp Sepetine Taşı" + "value" : "Yeni Tablo" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển tệp vào Thùng rác" + "value" : "Bảng mới" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将文件移到废纸篓" + "value" : "新建表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將檔案移到垃圾桶" + "value" : "新增資料表" } } } }, - "Move File to Trash?" : { + "New Table…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "파일을 휴지통으로 이동하시겠습니까?" + "value" : "새 테이블…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dosya Çöp Sepetine Taşınsın mı?" + "value" : "Yeni Tablo…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển tệp vào Thùng rác?" + "value" : "Bảng mới…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "要将文件移到废纸篓吗?" + "value" : "新建表…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "要將檔案移到垃圾桶嗎?" + "value" : "新增資料表…" } } } }, - "Move Filter Down" : { + "New Theme" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터를 아래로 이동" + "value" : "새 테마" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtreyi Aşağı Taşı" + "value" : "Yeni Tema" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển bộ lọc xuống" + "value" : "Chủ đề mới" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "下移筛选条件" + "value" : "新建主题" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將篩選條件下移" + "value" : "新增主題" } } } }, - "Move Filter Up" : { + "New Trigger" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터를 위로 이동" + "value" : "새 트리거" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtreyi Yukarı Taşı" + "value" : "Yeni Tetikleyici" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển bộ lọc lên" + "value" : "Trigger mới" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "上移筛选条件" + "value" : "新建触发器" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將篩選條件上移" + "value" : "新增觸發器" } } } }, - "Move Group to…" : { + "New User or Role" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "그룹 이동…" + "value" : "새 사용자 또는 역할" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Grubu Taşı…" + "value" : "Yeni Kullanıcı veya Rol" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Di chuyển nhóm đến…" + "value" : "Người dùng hoặc vai trò mới" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "移动分组到…" + "value" : "新建用户或角色" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "移動群組至…" + "value" : "新增使用者或角色" } } } }, - "Move Line Down" : { + "New View" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "줄을 아래로 이동" + "value" : "새 뷰" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satırı Aşağı Taşı" + "value" : "Yeni Görünüm" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển dòng xuống" + "value" : "View mới" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "下移一行" + "value" : "新建视图" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將該行下移" + "value" : "新增檢視表" } } } }, - "Move Line Up" : { + "New View…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "줄을 위로 이동" + "value" : "새 뷰…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satırı Yukarı Taşı" + "value" : "Yeni Görünüm…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển dòng lên" + "value" : "View mới…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "上移一行" + "value" : "新建视图…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將該行上移" + "value" : "新增檢視表…" } } } }, - "Move Tab Left" : { - - }, - "Move Tab Right" : { - - }, - "Move Tab to New Window" : { + "New password:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "탭을 새 윈도우로 이동" + "value" : "새 암호:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sekmeyi Yeni Pencereye Taşı" + "value" : "Yeni parola:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển tab sang cửa sổ mới" + "value" : "Mật khẩu mới:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将标签页移到新窗口" + "value" : "新密码:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將標籤頁移至新視窗" + "value" : "新密碼:" } } } }, - "Move the connection's browse cursor to another database. This changes what the user sees in TablePro. To run one statement elsewhere, pass 'database' to that tool instead." : { - - }, - "Move the connection's browse cursor to another schema. This changes what the user sees." : { - - }, - "Move to" : { + "New query tab" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다음으로 이동" + "value" : "새 쿼리 탭" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Taşı" + "value" : "Yeni sorgu sekmesi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Di chuyển đến" + "value" : "Tab truy vấn mới" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "移动到" + "value" : "新建查询标签页" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "移動至" + "value" : "新增查詢分頁" } } } }, - "Move to Beginning of Document" : { + "New table" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "문서 시작 부분으로 이동" + "value" : "새 테이블" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Belgenin Başına Git" + "value" : "Yeni tablo" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đến đầu tài liệu" + "value" : "Bảng mới" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "移到文稿开头" + "value" : "新建表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "移到文件開頭" + "value" : "新增資料表" } } } }, - "Move to Beginning of Line" : { + "New table:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "줄 시작 부분으로 이동" + "value" : "새 테이블:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satırın Başına Git" + "value" : "Yeni tablo:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đến đầu dòng" + "value" : "Bảng mới:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "移到行首" + "value" : "新建表:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "移到行首" + "value" : "新增資料表:" } } } }, - "Move to End of Document" : { + "Next Page" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "문서 끝으로 이동" + "value" : "다음 페이지" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Belgenin Sonuna Git" + "value" : "Sonraki Sayfa" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đến cuối tài liệu" + "value" : "Trang sau" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "移到文稿末尾" + "value" : "下一页" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "移到文件結尾" + "value" : "下一頁" } } } }, - "Move to End of Line" : { + "Next Page (⌘])" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "줄 끝으로 이동" + "value" : "다음 페이지 (⌘])" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satırın Sonuna Git" + "value" : "Next Page (⌘])" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đến cuối dòng" + "value" : "Trang sau (⌘])" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "移到行尾" + "value" : "下一页 (⌘])" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "移到行尾" + "value" : "下一頁 (⌘])" } } } }, - "Move to Group" : { + "Next Result" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "그룹으로 이동" + "value" : "다음 결과" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Gruba Taşı" + "value" : "Sonraki Sonuç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Di chuyển vào Nhóm" + "value" : "Kết quả tiếp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "移动到分组" + "value" : "下一个结果" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "移動至群組" + "value" : "下一個結果" } } } }, - "Move to Trash" : { + "Next Statement" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "휴지통으로 이동" + "value" : "다음 문" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Çöp Sepetine Taşı" + "value" : "Sonraki İfade" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển vào Thùng rác" + "value" : "Câu lệnh tiếp theo" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "移到废纸篓" + "value" : "下一条语句" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "移到垃圾桶" + "value" : "下一個陳述式" } } } }, - "Move Up" : { + "Next Tab" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "위로 이동" + "value" : "다음 탭" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yukarı Taşı" + "value" : "Next Tab" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Di chuyển lên" + "value" : "Tab tiếp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "上移" + "value" : "下一个标签页" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "上移" + "value" : "下一個分頁" } } } }, - "Move Up (⌘↑)" : { + "Next Tab (Alt)" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "위로 이동 (⌘↑)" + "value" : "다음 탭 (Alt)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yukarı Taşı (⌘↑)" + "value" : "Next Tab (Alt)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Di chuyển lên (⌘↑)" + "value" : "Tab tiếp theo (Alt)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "上移 (⌘↑)" + "value" : "下一个标签页 (Alt)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "上移 (⌘↑)" + "value" : "下一個分頁 (Alt)" } } } }, - "Move Word Left" : { + "Next match" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "단어 단위로 왼쪽 이동" + "value" : "다음 일치 항목" + } + } + } + }, + "Next page" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "다음 페이지" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bir Kelime Sola Git" + "value" : "Sonraki sayfa" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sang trái một từ" + "value" : "Trang sau" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "向左移动一个单词" + "value" : "下一页" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "向左移動一個單字" + "value" : "下一頁" } } } }, - "Move Word Right" : { + "No %1$@ match “%2$@”" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "단어 단위로 오른쪽 이동" + "value" : "%1$@ 중 “%2$@”과 일치하는 항목 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bir Kelime Sağa Git" + "value" : "“%2$@” ile eşleşen %1$@ yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sang phải một từ" + "value" : "Không có %1$@ nào khớp “%2$@”" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "向右移动一个单词" + "value" : "没有与“%2$@”匹配的%1$@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "向右移動一個單字" + "value" : "沒有與「%2$@」相符的%1$@" } } } }, - "Moves the editor cursor to the statement that produced this result" : { + "No %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 결과를 생성한 문으로 편집기 커서를 이동합니다" + "value" : "%@ 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Düzenleyici imlecini bu sonucu üreten ifadeye taşır" + "value" : "%@ Yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Di chuyển con trỏ trình soạn thảo tới câu lệnh đã tạo ra kết quả này" + "value" : "Không có %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将编辑器光标移到生成此结果的语句" + "value" : "没有%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將編輯器游標移到產生此結果的陳述式" + "value" : "沒有 %@" } } } }, - "MQL" : { - "extractionState" : "stale", + "No AI provider configured. Go to Settings > AI to add one." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "MQL" + "value" : "구성된 AI 제공업체가 없습니다. 설정 > AI로 이동하여 추가하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "MQL" + "value" : "Yapılandırılmış AI sağlayıcısı yok. Eklemek için Ayarlar > AI bölümüne gidin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "MQL" + "value" : "Chưa cấu hình nhà cung cấp AI. Vào Cài đặt > AI để thêm." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "MQL" + "value" : "尚未配置 AI 提供商。前往设置 > AI 添加。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "MQL" + "value" : "尚未設定 AI 供應商。請前往「設定 > AI」新增。" } } } }, - "MQL Preview" : { - "extractionState" : "stale", + "No Chartable Rows" : { "localizations" : { "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "MQL 미리보기" + "value" : "차트로 그릴 행 없음", + "state" : "translated" } }, "tr" : { "stringUnit" : { - "state" : "translated", - "value" : "MQL Önizleme" + "value" : "Grafiğe Uygun Satır Yok", + "state" : "translated" } }, "vi" : { "stringUnit" : { - "state" : "translated", - "value" : "Xem trước MQL" + "value" : "Không có hàng để vẽ biểu đồ", + "state" : "translated" } }, "zh-Hans" : { "stringUnit" : { - "state" : "translated", - "value" : "MQL 预览" + "value" : "没有可绘制的行", + "state" : "translated" } }, "zh-Hant" : { "stringUnit" : { - "state" : "translated", - "value" : "MQL 預覽" + "value" : "沒有可繪製的列", + "state" : "translated" } } } }, - "Multi-model database with SurrealQL" : { + "No Check Constraints" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SurrealQL을 사용하는 멀티 모델 데이터베이스" + "value" : "CHECK 제약 조건 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SurrealQL ile çok modelli veritabanı" + "value" : "Kontrol Kısıtlaması Yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cơ sở dữ liệu đa mô hình với SurrealQL" + "value" : "Không có ràng buộc kiểm tra" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "使用 SurrealQL 的多模型数据库" + "value" : "无检查约束" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "使用 SurrealQL 的多模型資料庫" + "value" : "無檢查約束" } } } }, - "Multiple statements are not permitted for this client" : { + "No Codex CLI login found. Run codex login first, then try again." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 클라이언트에서는 여러 쿼리문을 사용할 수 없습니다" + "value" : "Codex CLI 로그인 정보를 찾을 수 없습니다. 먼저 codex login을 실행한 후 다시 시도하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu istemci için birden çok deyime izin verilmiyor" + "value" : "Codex CLI girişi bulunamadı. Önce codex login çalıştırın, sonra tekrar deneyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Client này không được phép chạy nhiều câu lệnh" + "value" : "Không tìm thấy đăng nhập Codex CLI. Hãy chạy codex login trước, rồi thử lại." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此客户端不允许执行多条语句" + "value" : "未找到 Codex CLI 登录。请先运行 codex login,然后重试。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此用戶端不允許執行多條語句" + "value" : "找不到 Codex CLI 登入。請先執行 codex login,然後再試一次。" } } } }, - "Multiple values" : { + "No Columns Defined" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "여러 값" + "value" : "정의된 열 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Birden fazla değer" + "value" : "Tanımlı Sütun Yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhiều giá trị" + "value" : "Chưa có cột nào" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "多个值" + "value" : "尚未定义列" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "多個值" + "value" : "尚未定義欄位" } } } }, - "Must be exactly: I understand this is irreversible" : { - "extractionState" : "stale", + "No Comparison Yet" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "아직 비교하지 않음", + "state" : "translated" + } + } + } + }, + "No Connections" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다음과 정확히 일치해야 합니다: I understand this is irreversible" + "value" : "연결 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tam olarak şöyle olmalı: I understand this is irreversible" + "value" : "Bağlantı Yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phải nhập chính xác: I understand this is irreversible" + "value" : "Chưa có kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "必须完全输入:I understand this is irreversible" + "value" : "无连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "必須完全輸入:I understand this is irreversible" + "value" : "無連線" } } } }, - "My Queries" : { + "No Connections Imported" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "내 쿼리" + "value" : "가져온 연결 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgularım" + "value" : "Hiçbir Bağlantı İçe Aktarılmadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Truy vấn của tôi" + "value" : "Không có Kết nối nào được Nhập" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "我的查询" + "value" : "未导入任何连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "我的查詢" + "value" : "未匯入任何連線" } } } }, - "My Queries Only" : { + "No DDL available" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "내 쿼리만" + "value" : "사용 가능한 DDL 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yalnızca Sorgularım" + "value" : "DDL mevcut değil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chỉ truy vấn của tôi" + "value" : "Không có DDL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "仅我的查询" + "value" : "无可用 DDL" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "僅我的查詢" + "value" : "無可用的 DDL" } } } }, - "My Server" : { + "No Data" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "My Server" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "내 서버" + "value" : "데이터 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sunucum" + "value" : "Veri Yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Máy chủ của tôi" + "value" : "Không có dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "我的服务器" + "value" : "无数据" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "我的伺服器" + "value" : "無資料" } } } }, - "MySQL, PostgreSQL & SQLite" : { + "No Database Selected" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "MySQL, PostgreSQL & SQLite" + "value" : "선택된 데이터베이스 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "MySQL, PostgreSQL & SQLite" + "value" : "Veritabanı Seçilmedi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "MySQL, PostgreSQL & SQLite" + "value" : "Chưa chọn cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "MySQL、PostgreSQL 和 SQLite" + "value" : "未选择数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "MySQL、PostgreSQL 和 SQLite" + "value" : "未選擇資料庫" } } } }, - "name" : { + "No Databases" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이름" + "value" : "데이터베이스 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "ad" + "value" : "Veritabanı Yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "tên" + "value" : "Không có cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "名称" + "value" : "没有数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "名稱" + "value" : "沒有資料庫" } } } }, - "Name" : { + "No Databases Shown" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이름" + "value" : "표시된 데이터베이스 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ad" + "value" : "Gösterilen Veritabanı Yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên" + "value" : "Không có cơ sở dữ liệu nào được hiển thị" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "名称" + "value" : "未显示数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "名稱" + "value" : "未顯示資料庫" } } } }, - "Name as supplied" : { - - }, - "Name for the new database" : { - - }, - "Name of the database or schema" : { - - }, - "Name or UUID of a TablePro connection" : { - - }, - "Name quoted for this engine" : { - - }, - "Name:" : { + "No Datasets" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이름:" + "value" : "데이터세트 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ad:" + "value" : "Veri Kümesi Yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên:" + "value" : "Không có dataset" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "名称:" + "value" : "没有数据集" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "名稱:" + "value" : "沒有資料集" } } } }, - "Namespace" : { + "No Differences" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "차이 없음", + "state" : "translated" + } + } + } + }, + "No Favorites" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "네임스페이스" + "value" : "즐겨찾기 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Namespace" + "value" : "Favori Yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Namespace" + "value" : "Không có mục yêu thích" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "命名空间" + "value" : "无收藏" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "命名空間" + "value" : "無我的最愛" } } } }, - "Navigate to referenced row" : { - "extractionState" : "stale", + "No Foreign Keys Yet" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "참조된 행으로 이동" + "value" : "아직 외래 키 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Referans verilen satıra git" + "value" : "Henüz Yabancı Anahtar Yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đi đến dòng được tham chiếu" + "value" : "Chưa có khóa ngoại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "跳转到引用行" + "value" : "尚无外键" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "前往參照的列" + "value" : "尚無外鍵" } } } }, - "Navigating pages will reload data and discard all unsaved changes." : { - "extractionState" : "stale", + "No Indexes Defined" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "페이지를 이동하면 데이터가 다시 로드되고 저장하지 않은 모든 변경 사항이 폐기됩니다." + "value" : "정의된 인덱스 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sayfa değiştirmek veriyi yeniden yükler ve tüm kaydedilmemiş değişiklikleri siler." + "value" : "Tanımlı Dizin Yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển trang sẽ tải lại dữ liệu và hủy tất cả thay đổi chưa lưu." + "value" : "Chưa có chỉ mục" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "翻页将重新加载数据并丢弃所有未保存的更改。" + "value" : "尚未定义索引" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "翻頁將重新載入資料並捨棄所有未儲存的變更。" + "value" : "尚未定義索引" } } } }, - "Navigating to another page will discard all unsaved changes." : { + "No Matching Connections" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다른 페이지로 이동하면 저장하지 않은 모든 변경 사항이 폐기됩니다." + "value" : "일치하는 연결 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Başka bir sayfaya gitmek kaydedilmemiş değişiklikleri siler." + "value" : "Eşleşen Bağlantı Yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển sang trang khác sẽ huỷ tất cả thay đổi chưa lưu." + "value" : "Không có kết nối phù hợp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导航到其他页面将丢弃所有未保存的更改。" + "value" : "无匹配连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "前往其他頁面將捨棄所有未儲存的變更。" + "value" : "無符合的連線" } } } }, - "Navigation" : { + "No Matching Favorites" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "탐색" + "value" : "일치하는 즐겨찾기 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Gezinme" + "value" : "No Matching Favorites" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Điều hướng" + "value" : "Không có mục yêu thích phù hợp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导航" + "value" : "无匹配的收藏" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "導覽" + "value" : "無符合的我的最愛" } } } }, - "Nearest" : { - "extractionState" : "stale", + "No Matching Queries" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "가장 가까움" + "value" : "일치하는 쿼리 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "En Yakın" + "value" : "Eşleşen Sorgu Yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nearest" + "value" : "Không có truy vấn phù hợp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Nearest" + "value" : "无匹配查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Nearest" + "value" : "無符合的查詢" } } } }, - "Negotiating encryption" : { + "No Microsoft Entra ID access token was supplied." : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "Microsoft Entra ID 액세스 토큰이 제공되지 않았습니다.", + "state" : "translated" + } + } + } + }, + "No Node Selected" : { + "comment" : "A label displayed when no query plan node is selected.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "암호화 협상 중" + "value" : "선택된 노드 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Şifreleme görüşülüyor" + "value" : "Düğüm Seçilmedi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang thương lượng mã hoá" + "value" : "Chưa chọn nút" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在协商加密" + "value" : "未选择节点" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在協商加密" + "value" : "未選擇節點" } } } }, - "Nested field path" : { - - }, - "Network" : { - "extractionState" : "stale", + "No Numeric Column" : { "localizations" : { "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "네트워크" + "value" : "숫자 열 없음", + "state" : "translated" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ağ" + "value" : "Sayısal Sütun Yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mạng" + "value" : "Không có cột số" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "网络" + "value" : "没有数值列" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "網路" + "value" : "沒有數值欄" } } } }, - "Network error: %@" : { + "No Object" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "객체 없음", + "state" : "translated" + } + } + } + }, + "No Object Selected" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "네트워크 오류: %@" + "value" : "선택된 객체 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ağ hatası: %@" + "value" : "Nesne Seçilmedi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lỗi mạng: %@" + "value" : "Chưa chọn đối tượng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "网络错误:%@" + "value" : "未选择对象" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "網路錯誤:%@" + "value" : "未選取物件" } } } }, - "Network is unavailable. Changes will sync when connectivity is restored." : { - "extractionState" : "stale", + "No Operations Available" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "네트워크를 사용할 수 없습니다. 연결이 복원되면 변경 사항이 동기화됩니다." + "value" : "사용 가능한 작업 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ağ kullanılamıyor. Bağlantı sağlandığında değişiklikler eşitlenecek." + "value" : "Kullanılabilir İşlem Yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mạng không khả dụng. Các thay đổi sẽ được đồng bộ khi có kết nối trở lại." + "value" : "Không có thao tác nào" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "网络不可用。恢复连接后将自动同步更改。" + "value" : "没有可用操作" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "網路無法使用。連線恢復後將自動同步變更。" + "value" : "沒有可用的操作" } } } }, - "Never" : { + "No Plan Available" : { + "comment" : "Title of a view that shows when a query plan is not available.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "안 함" + "value" : "사용 가능한 쿼리 계획 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Asla" + "value" : "Plan Yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không bao giờ" + "value" : "Không có kế hoạch" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "从不" + "value" : "没有可用的执行计划" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "永不" + "value" : "沒有可用的執行計畫" } } } }, - "Never executed" : { - "comment" : "Description of the execution status when a query was never executed.", - "isCommentAutoGenerated" : true, + "No Privileges" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "실행한 적 없음" + "value" : "권한 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Hiç çalıştırılmadı" + "value" : "Yetki Yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa từng chạy" + "value" : "Không có quyền" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "从未执行" + "value" : "无权限" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "從未執行" + "value" : "沒有權限" } } } }, - "Never used" : { + "No Queries Match" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사용한 적 없음" + "value" : "일치하는 쿼리 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Hiç kullanılmadı" + "value" : "Eşleşen Sorgu Yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa dùng bao giờ" + "value" : "Không có truy vấn khớp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "从未使用" + "value" : "没有匹配的查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "從未使用" + "value" : "沒有相符的查詢" } } } }, - "New" : { - "extractionState" : "stale", + "No Queries Yet" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새로 만들기" + "value" : "아직 쿼리 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni" + "value" : "Henüz Sorgu Yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mới" + "value" : "Chưa có truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建" + "value" : "还没有查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增" + "value" : "還沒有查詢" } } } }, - "New %@" : { + "No Query History" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 %@" + "value" : "쿼리 기록 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni %@" + "value" : "Sorgu Geçmişi Yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%@ mới" + "value" : "Không có lịch sử truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建 %@" + "value" : "没有查询历史" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增 %@" + "value" : "沒有查詢歷史" } } } }, - "New %@ (⌘N)" : { + "No Query History Yet" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 %@ (⌘N)" + "value" : "아직 쿼리 기록 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni %@ (⌘N)" + "value" : "No Query History Yet" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%@ mới (⌘N)" + "value" : "Chưa có lịch sử truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建 %@ (⌘N)" + "value" : "暂无查询历史" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增 %@ (⌘N)" + "value" : "尚無查詢記錄" } } } }, - "New %@ Connection" : { + "No Query Selected" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 %@ 연결" + "value" : "선택된 쿼리 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni %@ Bağlantısı" + "value" : "Sorgu Seçilmedi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối %@ mới" + "value" : "Chưa chọn truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建%@连接" + "value" : "未选择查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增 %@ 連線" + "value" : "未選擇查詢" } } } }, - "New %@…" : { + "No Results" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 %@…" + "value" : "결과 없음" + } + } + } + }, + "No Rows Match" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "일치하는 행 없음", + "state" : "translated" + } + } + } + }, + "No SSL encryption" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "SSL 암호화 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni %@…" + "value" : "SSL şifrelemesi yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%@ mới…" + "value" : "Không mã hóa SSL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建 %@…" + "value" : "无 SSL 加密" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增 %@…" + "value" : "無 SSL 加密" } } } }, - "New Chat" : { - "extractionState" : "stale", + "No Schemas Available" : { + "comment" : "Placeholder text displayed in the schemas menu when the user has no schemas available.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 채팅" + "value" : "사용 가능한 스키마 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni Sohbet" + "value" : "Kullanılabilir Şema Yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cuộc trò chuyện mới" + "value" : "Không có schema nào" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建对话" + "value" : "没有可用的 Schema" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增對話" + "value" : "沒有可用的綱要" } } } }, - "New Connection" : { + "No Script Yet" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "아직 스크립트 없음", + "state" : "translated" + } + } + } + }, + "No Selection" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 연결" + "value" : "선택 항목 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni Bağlantı" + "value" : "Seçim Yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối mới" + "value" : "Chưa chọn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建连接" + "value" : "未选择" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增連線" + "value" : "未選取" } } } }, - "New Connection (%@)" : { + "No Table Selected" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "선택된 테이블 없음", + "state" : "translated" + } + } + } + }, + "No Tables" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 연결 (%@)" + "value" : "테이블 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni Bağlantı (%@)" + "value" : "No Tables" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối mới (%@)" + "value" : "Không có bảng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建连接(%@)" + "value" : "无表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增連線(%@)" + "value" : "沒有資料表" } } } }, - "New Connection (⌘N)" : { - "extractionState" : "stale", + "No Tables Yet" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "아직 테이블 없음", + "state" : "translated" + } + } + } + }, + "No Triggers" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 연결 (⌘N)" + "value" : "트리거 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni Bağlantı (⌘N)" + "value" : "Tetikleyici Yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối mới (⌘N)" + "value" : "Không có trigger" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建连接 (⌘N)" + "value" : "无触发器" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增連線 (⌘N)" + "value" : "無觸發器" } } } }, - "New Connection…" : { + "No Users or Roles" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 연결…" + "value" : "사용자 또는 역할 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni Bağlantı…" + "value" : "Kullanıcı veya Rol Yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối mới…" + "value" : "Không có người dùng hoặc vai trò" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建连接…" + "value" : "没有用户或角色" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增連線…" + "value" : "沒有使用者或角色" } } } }, - "New Conversation" : { + "No Warnings" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "경고 없음", + "state" : "translated" + } + } + } + }, + "No activations found" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "No activations found" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 대화" + "value" : "활성화를 찾을 수 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni Konuşma" + "value" : "Etkinleştirme bulunamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hội thoại mới" + "value" : "Không tìm thấy kích hoạt nào" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建会话" + "value" : "未找到激活记录" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增對話" + "value" : "找不到啟用記錄" } } } }, - "New Database" : { - "extractionState" : "stale", + "No active connection" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 데이터베이스" + "value" : "활성 연결 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni Veritabanı" + "value" : "Etkin bağlantı yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cơ sở dữ liệu mới" + "value" : "Không có kết nối đang hoạt động" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建数据库" + "value" : "无活动连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增資料庫" + "value" : "無使用中的連線" } } } }, - "New Database (⌘N)" : { - "extractionState" : "stale", + "No active database connection" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 데이터베이스 (⌘N)" + "value" : "활성 데이터베이스 연결 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni Veritabanı (⌘N)" + "value" : "Aktif veritabanı bağlantısı yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cơ sở dữ liệu mới (⌘N)" + "value" : "Không có kết nối cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建数据库 (⌘N)" + "value" : "没有活动的数据库连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增資料庫(⌘N)" + "value" : "沒有使用中的資料庫連線" } } } }, - "New Database…" : { + "No activity matches the current filters." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 데이터베이스…" + "value" : "현재 필터와 일치하는 활동이 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni Veritabanı…" + "value" : "Geçerli filtrelerle eşleşen etkinlik yok." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cơ sở dữ liệu mới…" + "value" : "Không có hoạt động nào khớp với bộ lọc hiện tại." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建数据库…" + "value" : "没有与当前筛选条件匹配的活动。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增資料庫…" + "value" : "沒有符合目前篩選條件的活動。" } } } }, - "New Favorite" : { + "No activity yet" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 즐겨찾기" + "value" : "아직 활동 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni Sık Kullanılan" + "value" : "Henüz etkinlik yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mục yêu thích mới" + "value" : "Chưa có hoạt động" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建收藏" + "value" : "暂无活动" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增我的最愛" + "value" : "尚無活動" } } } }, - "New Favorite…" : { - "comment" : "Text for a menu item that opens a dialog to rename a folder.", - "isCommentAutoGenerated" : true, + "No available local port for SSH tunnel" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 즐겨찾기…" + "value" : "SSH 터널에 사용할 수 있는 로컬 포트가 없습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni Sık Kullanılan…" + "value" : "SSH tüneli için kullanılabilir yerel port yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mục yêu thích mới…" + "value" : "Không có cổng nội bộ khả dụng cho đường hầm SSH" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建收藏…" + "value" : "没有可用的本地端口用于 SSH 隧道" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增我的最愛…" + "value" : "沒有可用的本機連接埠供 SSH 隧道使用" } } } }, - "New Folder" : { + "No available local port for the Cloud SQL Auth Proxy." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 폴더" + "value" : "Cloud SQL Auth Proxy에 사용할 수 있는 로컬 포트가 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni Klasör" + "value" : "Cloud SQL Auth Proxy için uygun bir yerel port yok." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thư mục mới" + "value" : "Không còn cổng cục bộ trống cho Cloud SQL Auth Proxy." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建文件夹" + "value" : "没有可用于 Cloud SQL Auth Proxy 的本地端口。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增資料夾" + "value" : "沒有可供 Cloud SQL Auth Proxy 使用的本機連接埠。" } } } }, - "New Group" : { + "No available local port for the Cloudflare tunnel." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 그룹" + "value" : "Cloudflare 터널에 사용할 수 있는 로컬 포트가 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni Grup" + "value" : "Cloudflare tüneli için kullanılabilir yerel port yok." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhóm mới" + "value" : "Không có cổng cục bộ khả dụng cho tunnel Cloudflare." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建分组" + "value" : "没有可用于 Cloudflare 隧道的本地端口。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增群組" + "value" : "沒有可用於 Cloudflare 隧道的本機連接埠。" } } } }, - "New Group…" : { + "No changes to preview" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 그룹…" + "value" : "미리 볼 변경 사항 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni Grup…" + "value" : "No changes to preview" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhóm Mới…" + "value" : "Không có thay đổi để xem trước" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建分组…" + "value" : "无可预览的更改" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增群組…" + "value" : "沒有可預覽的變更" } } } }, - "New Jump Host" : { + "No clients connected" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 점프 호스트" + "value" : "연결된 클라이언트 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni Atlama Sunucusu" + "value" : "Bağlı istemci yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Jump Host mới" + "value" : "Không có client nào kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建 Jump Host" + "value" : "没有已连接的客户端" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增 Jump Host" + "value" : "沒有已連線的用戶端" } } } }, - "New password:" : { + "No columns in common." : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "공통된 열이 없습니다.", + "state" : "translated" + } + } + } + }, + "No comparison yet." : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "아직 비교하지 않았습니다.", + "state" : "translated" + } + } + } + }, + "No compatible build is available yet. This plugin will update automatically once one is published." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 암호:" + "value" : "호환되는 빌드를 아직 사용할 수 없습니다. 빌드가 게시되면 이 플러그인이 자동으로 업데이트됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni parola:" + "value" : "Henüz uyumlu bir derleme yok. Yayımlandığında bu eklenti otomatik olarak güncellenecek." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mật khẩu mới:" + "value" : "Chưa có bản dựng tương thích. Plugin này sẽ tự động cập nhật khi có bản mới được phát hành." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新密码:" + "value" : "目前还没有兼容的构建版本。发布后此插件将自动更新。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新密碼:" + "value" : "目前還沒有相容的建置版本。發布後此外掛將自動更新。" } } } }, - "New Query" : { + "No connections" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 쿼리" + "value" : "연결 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni Sorgu" + "value" : "Bağlantı yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Truy vấn mới" + "value" : "Không có kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建查询" + "value" : "没有连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增查詢" + "value" : "沒有連線" } } } }, - "New query tab" : { - "extractionState" : "stale", + "No connections found to import" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 쿼리 탭" + "value" : "가져올 연결을 찾을 수 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni sorgu sekmesi" + "value" : "İçe aktarılacak bağlantı bulunamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tab truy vấn mới" + "value" : "Không tìm thấy kết nối nào để nhập" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建查询标签页" + "value" : "没有找到可导入的连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增查詢分頁" + "value" : "找不到可匯入的連線" } } } }, - "New Query Tab" : { + "No connections match “%@”" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 쿼리 탭" + "value" : "“%@”과 일치하는 연결 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni Sorgu Sekmesi" + "value" : "“%@” ile eşleşen bağlantı yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tab truy vấn mới" + "value" : "Không có kết nối nào khớp với “%@”" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建查询标签页" + "value" : "没有与“%@”匹配的连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增查詢分頁" + "value" : "沒有符合「%@」的連線" } } } }, - "New Query Tab (⌘T)" : { + "No connections yet" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 쿼리 탭 (⌘T)" + "value" : "아직 연결 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni Sorgu Sekmesi (⌘T)" + "value" : "No connections yet" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tab truy vấn mới (⌘T)" + "value" : "Chưa có kết nối nào" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建查询标签页 (⌘T)" + "value" : "暂无连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增查詢分頁 (⌘T)" + "value" : "尚無連線" } } } }, - "New Query, favorite, or folder" : { - "extractionState" : "stale", + "No credentials are sent. Use this when the server handles authentication itself, such as a Tailscale SSH host." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 쿼리, 즐겨찾기 또는 폴더" + "value" : "자격 증명이 전송되지 않습니다. Tailscale SSH 호스트처럼 서버가 인증을 직접 처리할 때 사용하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni sorgu, sık kullanılan veya klasör" + "value" : "Hiçbir kimlik bilgisi gönderilmez. Sunucunun kimlik doğrulamayı kendi yaptığı durumlarda, örneğin Tailscale SSH sunucusunda kullanın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Truy vấn mới, mục yêu thích hoặc thư mục" + "value" : "Không gửi thông tin đăng nhập nào. Dùng khi máy chủ tự xử lý xác thực, ví dụ máy chủ SSH của Tailscale." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建查询、收藏或文件夹" + "value" : "不会发送任何凭据。当服务器自行处理认证时使用,例如 Tailscale 的 SSH 主机。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增查詢、我的最愛或資料夾" + "value" : "不會傳送任何認證資訊。當伺服器自行處理驗證時使用,例如 Tailscale 的 SSH 主機。" } } } }, - "New Subfolder" : { + "No custom commands yet." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 하위 폴더" + "value" : "아직 사용자 지정 명령이 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni Alt Klasör" + "value" : "Henüz özel komut yok." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thư mục con mới" + "value" : "Chưa có lệnh tùy chỉnh nào." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建子文件夹" + "value" : "还没有自定义命令。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增子資料夾" + "value" : "還沒有自訂指令。" } } } }, - "New Subgroup" : { + "No database connection" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 하위 그룹" + "value" : "데이터베이스 연결 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni Alt Grup" + "value" : "Veritabanı bağlantısı yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhóm con mới" + "value" : "Chưa kết nối cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建子分组" + "value" : "未连接数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增子群組" + "value" : "未連線資料庫" } } } }, - "New Tab" : { + "No database settings found in this folder." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 탭" + "value" : "이 폴더에서 데이터베이스 설정을 찾을 수 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni Sekme" + "value" : "Bu klasörde veritabanı ayarı bulunamadı." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tab mới" + "value" : "Không tìm thấy cài đặt cơ sở dữ liệu trong thư mục này." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建标签页" + "value" : "在此文件夹中未找到数据库设置。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增分頁" + "value" : "在此資料夾中找不到資料庫設定。" } } } }, - "New table" : { + "No databases" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 테이블" + "value" : "데이터베이스 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni tablo" + "value" : "Veritabanı yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bảng mới" + "value" : "Không có cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建表" + "value" : "没有数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增資料表" + "value" : "沒有資料庫" } } } }, - "New Table" : { + "No databases found" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 테이블" + "value" : "데이터베이스를 찾을 수 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni Tablo" + "value" : "No databases found" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bảng mới" + "value" : "Không tìm thấy cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建表" + "value" : "未找到数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增資料表" + "value" : "找不到資料庫" } } } }, - "New table:" : { + "No databases match \"%@\"" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 테이블:" + "value" : "\"%@\"과 일치하는 데이터베이스 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni tablo:" + "value" : "No databases match \"%@\"" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bảng mới:" + "value" : "Không có cơ sở dữ liệu nào khớp \"%@\"" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建表:" + "value" : "没有匹配 \"%@\" 的数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增資料表:" + "value" : "沒有符合「%@」的資料庫" } } } }, - "New Table…" : { + "No databases match “%@”" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 테이블…" + "value" : "“%@”과 일치하는 데이터베이스 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni Tablo…" + "value" : "“%@” ile eşleşen veritabanı yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bảng mới…" + "value" : "Không có cơ sở dữ liệu nào khớp với “%@”" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建表…" + "value" : "没有与“%@”匹配的数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增資料表…" + "value" : "沒有符合「%@」的資料庫" } } } }, - "New Theme" : { + "No export formats available. Enable export plugins in Settings > Plugins." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 테마" + "value" : "사용 가능한 내보내기 형식이 없습니다. 설정 > 플러그인에서 내보내기 플러그인을 활성화하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni Tema" + "value" : "Kullanılabilir dışa aktarma biçimi yok. Ayarlar > Eklentiler bölümünden dışa aktarma eklentilerini etkinleştirin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chủ đề mới" + "value" : "Không có định dạng xuất khả dụng. Bật plugin xuất trong Cài đặt > Plugin." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建主题" + "value" : "无可用的导出格式。请在设置 > 插件中启用导出插件。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增主題" + "value" : "沒有可用的匯出格式。請在「設定 > 外掛」中啟用匯出外掛。" } } } }, - "New Trigger" : { + "No favorites match the selected environment." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 트리거" + "value" : "선택한 환경과 일치하는 즐겨찾기가 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni Tetikleyici" + "value" : "Seçilen ortamla eşleşen sık kullanılan yok." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trigger mới" + "value" : "Không có mục yêu thích nào khớp với môi trường đã chọn." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建触发器" + "value" : "没有收藏项与所选环境匹配。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增觸發器" + "value" : "沒有收藏項目符合所選環境。" } } } }, - "New User or Role" : { + "No filters applied" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 사용자 또는 역할" + "value" : "적용된 필터 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni Kullanıcı veya Rol" + "value" : "Uygulanmış filtre yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Người dùng hoặc vai trò mới" + "value" : "Chưa áp dụng bộ lọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建用户或角色" + "value" : "未应用筛选条件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增使用者或角色" + "value" : "未套用篩選條件" } } } }, - "New View" : { - "extractionState" : "stale", + "No free port in range %d-%d" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "No free port in range %1$d-%2$d" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 뷰" + "value" : "범위 %1$d-%2$d에 사용 가능한 포트가 없습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni Görünüm" + "value" : "%d-%d aralığında boş port yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "View mới" + "value" : "Không có port trống trong khoảng %d-%d" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建视图" + "value" : "在 %d-%d 范围内没有可用端口" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增檢視表" + "value" : "在 %1$d-%2$d 範圍內沒有可用的連接埠" } } } }, - "New View…" : { + "No iCloud" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 뷰…" + "value" : "iCloud 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni Görünüm…" + "value" : "iCloud Yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "View mới…" + "value" : "Không có iCloud" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "新建视图…" + "value" : "无 iCloud" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "新增檢視表…" - } - } - } - }, - "Next match" : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "다음 일치 항목" + "value" : "無 iCloud" } } } }, - "Next page" : { + "No items" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다음 페이지" + "value" : "항목 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sonraki sayfa" + "value" : "Öğe yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trang sau" + "value" : "Không có mục nào" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "下一页" + "value" : "没有项目" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "下一頁" + "value" : "沒有項目" } } } }, - "Next Page" : { + "No keys" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다음 페이지" + "value" : "키 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sonraki Sayfa" + "value" : "Anahtar yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trang sau" + "value" : "Không có khóa" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "下一页" + "value" : "没有键" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "下一頁" + "value" : "沒有鍵" } } } }, - "Next Page (⌘])" : { - "extractionState" : "stale", + "No limit" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다음 페이지 (⌘])" + "value" : "제한 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Next Page (⌘])" + "value" : "Sınır yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trang sau (⌘])" + "value" : "Không giới hạn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "下一页 (⌘])" + "value" : "不限制" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "下一頁 (⌘])" + "value" : "不限制" } } } }, - "Next Result" : { + "No linked folders. Add a folder to watch for shared connection files." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다음 결과" + "value" : "연결된 폴더가 없습니다. 공유 연결 파일을 감시할 폴더를 추가하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sonraki Sonuç" + "value" : "Bağlantılı klasör yok. Paylaşılan bağlantı dosyalarını izlemek için bir klasör ekleyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết quả tiếp" + "value" : "Không có thư mục liên kết. Thêm thư mục để theo dõi tệp kết nối chia sẻ." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "下一个结果" + "value" : "没有链接文件夹。添加文件夹以监视共享连接文件。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "下一個結果" + "value" : "沒有已連結的資料夾。新增資料夾以監看共用的連線檔案。" } } } }, - "Next Statement" : { + "No links are trusted yet." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다음 문" + "value" : "아직 신뢰된 링크가 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sonraki İfade" + "value" : "Henüz güvenilen bağlantı yok." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Câu lệnh tiếp theo" + "value" : "Chưa có liên kết nào được tin cậy." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "下一条语句" + "value" : "尚未信任任何链接。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "下一個陳述式" + "value" : "尚未信任任何連結。" } } } }, - "Next Tab" : { + "No matches" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "일치 항목 없음" + } + } + } + }, + "No matching %@" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다음 탭" + "value" : "일치하는 %@ 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Next Tab" + "value" : "No matching %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tab tiếp" + "value" : "Không tìm thấy %@ phù hợp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "下一个标签页" + "value" : "没有匹配的%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "下一個分頁" + "value" : "沒有符合的 %@" } } } }, - "Next Tab (Alt)" : { - "extractionState" : "stale", + "No matching activity" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다음 탭 (Alt)" + "value" : "일치하는 활동 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Next Tab (Alt)" + "value" : "Eşleşen etkinlik yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tab tiếp theo (Alt)" + "value" : "Không có hoạt động khớp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "下一个标签页 (Alt)" + "value" : "没有匹配的活动" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "下一個分頁 (Alt)" + "value" : "沒有符合的活動" } } } }, - "No %@" : { + "No matching connections" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 없음" + "value" : "일치하는 연결 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ Yok" + "value" : "No matching connections" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có %@" + "value" : "Không có kết nối nào khớp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有%@" + "value" : "无匹配连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有 %@" + "value" : "無符合的連線" } } } }, - "No %1$@ match “%2$@”" : { + "No matching databases" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@ 중 “%2$@”과 일치하는 항목 없음" + "value" : "일치하는 데이터베이스 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "“%2$@” ile eşleşen %1$@ yok" + "value" : "No matching databases" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có %1$@ nào khớp “%2$@”" + "value" : "Không có cơ sở dữ liệu nào khớp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有与“%2$@”匹配的%1$@" + "value" : "无匹配数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有與「%2$@」相符的%1$@" + "value" : "無符合的資料庫" } } } }, - "No activations found" : { + "No matching fields" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "No activations found" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "활성화를 찾을 수 없음" + "value" : "일치하는 필드 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Etkinleştirme bulunamadı" + "value" : "Eşleşen alan yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy kích hoạt nào" + "value" : "Không có trường khớp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未找到激活记录" + "value" : "无匹配字段" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "找不到啟用記錄" + "value" : "無符合的欄位" } } } }, - "No active connection" : { + "No matching objects" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "활성 연결 없음" + "value" : "일치하는 객체 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Etkin bağlantı yok" + "value" : "No matching objects" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có kết nối đang hoạt động" + "value" : "Không tìm thấy đối tượng phù hợp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无活动连接" + "value" : "没有匹配的对象" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無使用中的連線" + "value" : "沒有符合的物件" } } } }, - "No active database connection" : { + "No matching opening bracket" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "활성 데이터베이스 연결 없음" + "value" : "짝이 맞는 여는 괄호 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Aktif veritabanı bağlantısı yok" + "value" : "Eşleşen açılış parantezi yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có kết nối cơ sở dữ liệu" + "value" : "Không có dấu mở ngoặc tương ứng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有活动的数据库连接" + "value" : "没有匹配的左括号" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有使用中的資料庫連線" + "value" : "沒有相符的左括號" } } } }, - "No activity matches the current filters." : { + "No matching rows" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "현재 필터와 일치하는 활동이 없습니다." + "value" : "일치하는 행 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geçerli filtrelerle eşleşen etkinlik yok." + "value" : "Eşleşen satır yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có hoạt động nào khớp với bộ lọc hiện tại." + "value" : "Không có hàng khớp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有与当前筛选条件匹配的活动。" + "value" : "没有匹配的行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有符合目前篩選條件的活動。" + "value" : "沒有符合的列" } } } }, - "No activity yet" : { + "No matching schemas" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "아직 활동 없음" + "value" : "일치하는 스키마 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Henüz etkinlik yok" + "value" : "No matching schemas" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa có hoạt động" + "value" : "Không có schema khớp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "暂无活动" + "value" : "无匹配 Schema" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "尚無活動" + "value" : "無符合的綱要" } } } }, - "No AI provider configured. Go to Settings > AI to add one." : { + "No matching tables" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "구성된 AI 제공업체가 없습니다. 설정 > AI로 이동하여 추가하십시오." + "value" : "일치하는 테이블 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yapılandırılmış AI sağlayıcısı yok. Eklemek için Ayarlar > AI bölümüne gidin." + "value" : "No matching tables" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa cấu hình nhà cung cấp AI. Vào Cài đặt > AI để thêm." + "value" : "Không có bảng nào khớp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "尚未配置 AI 提供商。前往设置 > AI 添加。" + "value" : "无匹配表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "尚未設定 AI 供應商。請前往「設定 > AI」新增。" + "value" : "無符合的資料表" } } } }, - "No available local port for SSH tunnel" : { + "No model selected" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 터널에 사용할 수 있는 로컬 포트가 없습니다" + "value" : "선택된 모델 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH tüneli için kullanılabilir yerel port yok" + "value" : "No model selected" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có cổng nội bộ khả dụng cho đường hầm SSH" + "value" : "Chưa chọn model" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有可用的本地端口用于 SSH 隧道" + "value" : "未选择模型" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有可用的本機連接埠供 SSH 隧道使用" + "value" : "未選擇模型" } } } }, - "No available local port for the Cloud SQL Auth Proxy." : { + "No models loaded" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Cloud SQL Auth Proxy에 사용할 수 있는 로컬 포트가 없습니다." + "value" : "불러온 모델 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Cloud SQL Auth Proxy için uygun bir yerel port yok." + "value" : "No models loaded" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không còn cổng cục bộ trống cho Cloud SQL Auth Proxy." + "value" : "Chưa tải mô hình nào" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有可用于 Cloud SQL Auth Proxy 的本地端口。" + "value" : "未加载模型" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有可供 Cloud SQL Auth Proxy 使用的本機連接埠。" + "value" : "未載入模型" } } } }, - "No available local port for the Cloudflare tunnel." : { + "No objects found" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Cloudflare 터널에 사용할 수 있는 로컬 포트가 없습니다." + "value" : "객체를 찾을 수 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Cloudflare tüneli için kullanılabilir yerel port yok." + "value" : "No objects found" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có cổng cục bộ khả dụng cho tunnel Cloudflare." + "value" : "Không tìm thấy đối tượng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有可用于 Cloudflare 隧道的本地端口。" + "value" : "未找到对象" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有可用於 Cloudflare 隧道的本機連接埠。" + "value" : "找不到物件" } } } }, - "No changes to preview" : { + "No objects match \"%@\"" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "미리 볼 변경 사항 없음" + "value" : "\"%@\"과 일치하는 객체 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "No changes to preview" + "value" : "No objects match \"%@\"" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có thay đổi để xem trước" + "value" : "Không có đối tượng phù hợp với \"%@\"" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无可预览的更改" + "value" : "没有匹配\"%@\"的对象" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有可預覽的變更" + "value" : "沒有符合「%@」的物件" } } } }, - "No Chartable Rows" : { + "No parts found" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "차트로 그릴 행 없음" + "value" : "파트를 찾을 수 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Grafiğe Uygun Satır Yok" + "value" : "Parça bulunamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có hàng để vẽ biểu đồ" + "value" : "Không tìm thấy phân vùng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有可绘制的行" + "value" : "未找到分区" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有可繪製的列" + "value" : "找不到分割區" } } } }, - "No Check Constraints" : { + "No pending changes" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "CHECK 제약 조건 없음" + "value" : "대기 중인 변경 사항 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kontrol Kısıtlaması Yok" + "value" : "Bekleyen değişiklik yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có ràng buộc kiểm tra" + "value" : "Không có thay đổi nào" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无检查约束" + "value" : "无待处理的更改" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無檢查約束" + "value" : "無待處理的變更" } } } }, - "No clients connected" : { + "No plugin developers trusted yet." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결된 클라이언트 없음" + "value" : "아직 신뢰하는 플러그인 개발자가 없습니다." + } + } + } + }, + "No plugins found" : { + "extractionState" : "stale", + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "플러그인을 찾을 수 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlı istemci yok" + "value" : "No plugins found" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có client nào kết nối" + "value" : "Không tìm thấy plugin" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有已连接的客户端" + "value" : "未找到插件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有已連線的用戶端" + "value" : "找不到外掛" } } } }, - "No Codex CLI login found. Run codex login first, then try again." : { + "No primary key selected (not recommended)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Codex CLI 로그인 정보를 찾을 수 없습니다. 먼저 codex login을 실행한 후 다시 시도하십시오." + "value" : "선택된 기본 키 없음(권장하지 않음)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Codex CLI girişi bulunamadı. Önce codex login çalıştırın, sonra tekrar deneyin." + "value" : "No primary key selected (not recommended)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy đăng nhập Codex CLI. Hãy chạy codex login trước, rồi thử lại." + "value" : "Chưa chọn khóa chính (không khuyến nghị)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未找到 Codex CLI 登录。请先运行 codex login,然后重试。" + "value" : "未选择主键(不推荐)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "找不到 Codex CLI 登入。請先執行 codex login,然後再試一次。" + "value" : "未選擇主鍵(不建議)" } } } }, - "No Columns Defined" : { + "No primary key. Choose key columns to compare this table." : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "기본 키가 없습니다. 이 테이블을 비교하려면 키 열을 선택하십시오.", + "state" : "translated" + } + } + } + }, + "No privileges" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "정의된 열 없음" + "value" : "권한 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tanımlı Sütun Yok" + "value" : "Yetki yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa có cột nào" + "value" : "Không có quyền" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "尚未定义列" + "value" : "无权限" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "尚未定義欄位" + "value" : "沒有權限" } } } }, - "No columns in common." : { - - }, - "No Comparison Yet" : { - - }, - "No comparison yet." : { - - }, - "No compatible build is available yet. This plugin will update automatically once one is published." : { + "No privileges can be granted at this level." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "호환되는 빌드를 아직 사용할 수 없습니다. 빌드가 게시되면 이 플러그인이 자동으로 업데이트됩니다." + "value" : "이 수준에서는 부여할 수 있는 권한이 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Henüz uyumlu bir derleme yok. Yayımlandığında bu eklenti otomatik olarak güncellenecek." + "value" : "Bu düzeyde yetki verilemez." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa có bản dựng tương thích. Plugin này sẽ tự động cập nhật khi có bản mới được phát hành." + "value" : "Không thể cấp quyền ở cấp này." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "目前还没有兼容的构建版本。发布后此插件将自动更新。" + "value" : "此级别无法授予任何权限。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "目前還沒有相容的建置版本。發布後此外掛將自動更新。" + "value" : "此層級無法授予任何權限。" } } } }, - "No connections" : { + "No providers configured" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 없음" + "value" : "구성된 제공업체 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı yok" + "value" : "Yapılandırılmış sağlayıcı yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có kết nối" + "value" : "Chưa cấu hình nhà cung cấp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有连接" + "value" : "未配置提供商" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有連線" + "value" : "未設定供應商" } } } }, - "No Connections" : { + "No published port, may be unreachable" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 없음" + "value" : "게시된 포트가 없어 접근하지 못할 수 있음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı Yok" + "value" : "Yayınlanmış port yok, erişilemeyebilir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa có kết nối" + "value" : "Không có cổng được công bố, có thể không truy cập được" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无连接" + "value" : "未发布端口,可能无法访问" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無連線" + "value" : "未發佈連接埠,可能無法連線" } } } }, - "No connections found to import" : { + "No queries in this range." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "가져올 연결을 찾을 수 없음" + "value" : "이 범위에 쿼리가 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İçe aktarılacak bağlantı bulunamadı" + "value" : "Bu aralıkta sorgu yok." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy kết nối nào để nhập" + "value" : "Không có truy vấn nào trong khoảng này." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有找到可导入的连接" + "value" : "此范围内没有查询。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "找不到可匯入的連線" + "value" : "此範圍內沒有查詢。" } } } }, - "No Connections Imported" : { + "No queries ran in this range, from the sources you selected." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "가져온 연결 없음" + "value" : "선택한 소스에서 이 범위에 실행된 쿼리가 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Hiçbir Bağlantı İçe Aktarılmadı" + "value" : "Seçtiğiniz kaynaklardan bu aralıkta hiçbir sorgu çalışmadı." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có Kết nối nào được Nhập" + "value" : "Không có truy vấn nào chạy trong khoảng này, từ các nguồn bạn đã chọn." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未导入任何连接" + "value" : "在你选择的来源中,此范围内没有查询运行。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "未匯入任何連線" + "value" : "在你選擇的來源中,此範圍內沒有查詢執行。" } } } }, - "No connections match “%@”" : { + "No query executed yet" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "“%@”과 일치하는 연결 없음" + "value" : "아직 실행된 쿼리 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "“%@” ile eşleşen bağlantı yok" + "value" : "Henüz sorgu çalıştırılmadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có kết nối nào khớp với “%@”" + "value" : "Chưa thực hiện truy vấn nào" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有与“%@”匹配的连接" + "value" : "尚未执行查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有符合「%@」的連線" + "value" : "尚未執行查詢" } } } }, - "No connections yet" : { - "extractionState" : "stale", + "No query failed in this range." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "아직 연결 없음" + "value" : "이 범위에서 실패한 쿼리가 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "No connections yet" + "value" : "Bu aralıkta hiçbir sorgu başarısız olmadı." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa có kết nối nào" + "value" : "Không có truy vấn nào lỗi trong khoảng này." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "暂无连接" + "value" : "此范围内没有查询失败。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "尚無連線" + "value" : "此範圍內沒有查詢失敗。" } } } }, - "No credentials are sent. Use this when the server handles authentication itself, such as a Tailscale SSH host." : { + "No query matches the current search and filters." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "자격 증명이 전송되지 않습니다. Tailscale SSH 호스트처럼 서버가 인증을 직접 처리할 때 사용하십시오." + "value" : "현재 검색 및 필터와 일치하는 쿼리가 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Hiçbir kimlik bilgisi gönderilmez. Sunucunun kimlik doğrulamayı kendi yaptığı durumlarda, örneğin Tailscale SSH sunucusunda kullanın." + "value" : "Geçerli arama ve filtrelerle eşleşen sorgu yok." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không gửi thông tin đăng nhập nào. Dùng khi máy chủ tự xử lý xác thực, ví dụ máy chủ SSH của Tailscale." + "value" : "Không có truy vấn nào khớp với tìm kiếm và bộ lọc hiện tại." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "不会发送任何凭据。当服务器自行处理认证时使用,例如 Tailscale 的 SSH 主机。" + "value" : "没有查询匹配当前的搜索和筛选条件。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "不會傳送任何認證資訊。當伺服器自行處理驗證時使用,例如 Tailscale 的 SSH 主機。" + "value" : "沒有查詢符合目前的搜尋和篩選條件。" } } } }, - "No custom commands yet." : { + "No query ran at least %lld times, which is the minimum for an average to mean anything." : { + "comment" : "Empty state for the average-time ranking, %lld is a run count", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "아직 사용자 지정 명령이 없습니다." + "value" : "평균을 내는 데 필요한 최소 실행 횟수인 %lld회 이상 실행된 쿼리가 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Henüz özel komut yok." + "value" : "Hiçbir sorgu en az %lld kez çalışmadı; ortalamanın anlamlı olması için gereken en az sayı bu." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa có lệnh tùy chỉnh nào." + "value" : "Không có truy vấn nào chạy ít nhất %lld lần, đây là mức tối thiểu để giá trị trung bình có ý nghĩa." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "还没有自定义命令。" + "value" : "没有查询至少运行 %lld 次,而这是平均值有意义所需的最少次数。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "還沒有自訂指令。" + "value" : "沒有查詢至少執行 %lld 次,而這是平均值有意義所需的最少次數。" } } } }, - "No Data" : { + "No results for \"%@\"" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터 없음" + "value" : "\"%@\"에 대한 결과 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veri Yok" + "value" : "\"%@\" için sonuç yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có dữ liệu" + "value" : "Không có kết quả cho \"%@\"" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无数据" + "value" : "没有“%@”的结果" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無資料" + "value" : "沒有「%@」的結果" } } } }, - "No database connection" : { + "No rows" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 연결 없음" + "value" : "행 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı bağlantısı yok" + "value" : "Satır yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa kết nối cơ sở dữ liệu" + "value" : "Không có dòng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未连接数据库" + "value" : "无行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "未連線資料庫" + "value" : "沒有資料列" } } } }, - "No Database Selected" : { + "No rows returned" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "선택된 데이터베이스 없음" + "value" : "반환된 행 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı Seçilmedi" + "value" : "Satır döndürülmedi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa chọn cơ sở dữ liệu" + "value" : "Không có dòng nào được trả về" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未选择数据库" + "value" : "未返回任何行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "未選擇資料庫" + "value" : "未傳回任何列" } } } }, - "No database settings found in this folder." : { + "No saved connection named \"%@\"." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 폴더에서 데이터베이스 설정을 찾을 수 없습니다." + "value" : "이름이 \"%@\"인 저장된 연결이 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu klasörde veritabanı ayarı bulunamadı." + "value" : "No saved connection named \"%@\"." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy cài đặt cơ sở dữ liệu trong thư mục này." + "value" : "Không có kết nối đã lưu tên \"%@\"." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在此文件夹中未找到数据库设置。" + "value" : "没有名为 \"%@\" 的已保存连接。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在此資料夾中找不到資料庫設定。" + "value" : "沒有名為「%@」的已儲存連線。" } } } }, - "No database to run against. Pass a database name." : { - - }, - "No databases" : { + "No saved connection with ID \"%@\"." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 없음" + "value" : "ID가 \"%@\"인 저장된 연결이 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı yok" + "value" : "\"%@\" ID'li kayıtlı bağlantı yok." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có cơ sở dữ liệu" + "value" : "Không có kết nối đã lưu với ID \"%@\"." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有数据库" + "value" : "未找到 ID 为 \"%@\" 的已保存连接。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有資料庫" + "value" : "找不到 ID 為「%@」的已儲存連線。" } } } }, - "No Databases" : { + "No saved connections" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 없음" + "value" : "저장된 연결 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı Yok" + "value" : "Kayıtlı bağlantı yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có cơ sở dữ liệu" + "value" : "Không có kết nối đã lưu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有数据库" + "value" : "没有已保存的连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有資料庫" + "value" : "沒有已儲存的連線" } } } }, - "No databases found" : { + "No saved customizations yet. Column widths, order, visibility, and per-table filters you set appear here so you can review and reset them." : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스를 찾을 수 없음" + "value" : "아직 저장된 사용자화가 없습니다. 여기에는 설정한 열 너비, 순서, 표시 여부 및 테이블별 필터가 표시되므로 검토하거나 재설정할 수 있습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "No databases found" + "value" : "Henüz kaydedilmiş özelleştirme yok. Ayarladığınız sütun genişlikleri, sırası, görünürlüğü ve tablo başına filtreler burada görünür; buradan gözden geçirip sıfırlayabilirsiniz." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy cơ sở dữ liệu" + "value" : "Chưa có tùy chỉnh nào được lưu. Độ rộng cột, thứ tự, khả năng hiển thị và bộ lọc theo từng bảng bạn đặt sẽ xuất hiện ở đây để xem lại và đặt lại." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未找到数据库" + "value" : "尚未保存任何自定义。你设置的列宽、顺序、显示状态以及各表的筛选条件会显示在这里,便于查看和重置。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "找不到資料庫" + "value" : "尚未儲存任何自訂設定。你設定的欄寬、順序、顯示狀態以及各資料表的篩選條件會顯示在這裡,方便你檢視與重設。" } } } }, - "No databases match \"%@\"" : { + "No saved setups for this source and target." : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "이 원본과 대상에 저장된 설정이 없습니다.", + "state" : "translated" + } + } + } + }, + "No saved templates" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "\"%@\"과 일치하는 데이터베이스 없음" + "value" : "저장된 템플릿 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "No databases match \"%@\"" + "value" : "No saved templates" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có cơ sở dữ liệu nào khớp \"%@\"" + "value" : "Không có mẫu đã lưu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有匹配 \"%@\" 的数据库" + "value" : "无已保存的模板" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有符合「%@」的資料庫" + "value" : "無已儲存的範本" } } } }, - "No databases match “%@”" : { + "No schemas" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "“%@”과 일치하는 데이터베이스 없음" + "value" : "스키마 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "“%@” ile eşleşen veritabanı yok" + "value" : "Şema yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có cơ sở dữ liệu nào khớp với “%@”" + "value" : "Không có schema" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有与“%@”匹配的数据库" + "value" : "没有 Schema" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有符合「%@」的資料庫" + "value" : "沒有綱要" } } } }, - "No Databases Shown" : { + "No schemas found" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "표시된 데이터베이스 없음" + "value" : "스키마를 찾을 수 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Gösterilen Veritabanı Yok" + "value" : "No schemas found" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có cơ sở dữ liệu nào được hiển thị" + "value" : "Không tìm thấy schema" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未显示数据库" + "value" : "未找到 Schema" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "未顯示資料庫" + "value" : "找不到綱要" } } } }, - "No Datasets" : { + "No schemas match \"%@\"" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터세트 없음" + "value" : "\"%@\"과 일치하는 스키마 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veri Kümesi Yok" + "value" : "No schemas match \"%@\"" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có dataset" + "value" : "Không có schema khớp \"%@\"" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有数据集" + "value" : "没有匹配 \"%@\" 的 Schema" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有資料集" + "value" : "沒有符合「%@」的綱要" } } } }, - "No DDL available" : { + "No selection" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사용 가능한 DDL 없음" + "value" : "선택 항목 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "DDL mevcut değil" + "value" : "Seçim yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có DDL" + "value" : "Chưa chọn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无可用 DDL" + "value" : "未选择" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無可用的 DDL" + "value" : "未選取" } } } }, - "No Differences" : { - - }, - "No export formats available. Enable export plugins in Settings > Plugins." : { + "No slow queries" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사용 가능한 내보내기 형식이 없습니다. 설정 > 플러그인에서 내보내기 플러그인을 활성화하십시오." + "value" : "느린 쿼리 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kullanılabilir dışa aktarma biçimi yok. Ayarlar > Eklentiler bölümünden dışa aktarma eklentilerini etkinleştirin." + "value" : "Yavaş sorgu yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có định dạng xuất khả dụng. Bật plugin xuất trong Cài đặt > Plugin." + "value" : "Không có truy vấn chậm" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无可用的导出格式。请在设置 > 插件中启用导出插件。" + "value" : "没有慢查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有可用的匯出格式。請在「設定 > 外掛」中啟用匯出外掛。" + "value" : "沒有慢查詢" } } } }, - "No Favorites" : { + "No sorting (engine order)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "즐겨찾기 없음" + "value" : "정렬 안 함(엔진 순서)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Favori Yok" + "value" : "Sıralama yok (motor sırası)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có mục yêu thích" + "value" : "Không sắp xếp (theo thứ tự engine)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无收藏" + "value" : "不排序(引擎顺序)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無我的最愛" + "value" : "不排序(引擎順序)" } } } }, - "No favorites match the selected environment." : { + "No tables" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "선택한 환경과 일치하는 즐겨찾기가 없습니다." + "value" : "테이블 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Seçilen ortamla eşleşen sık kullanılan yok." + "value" : "Tablo yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có mục yêu thích nào khớp với môi trường đã chọn." + "value" : "Không có bảng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有收藏项与所选环境匹配。" + "value" : "没有表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有收藏項目符合所選環境。" + "value" : "沒有資料表" } } } }, - "No filters applied" : { + "No tables found" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "적용된 필터 없음" + "value" : "테이블을 찾을 수 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Uygulanmış filtre yok" + "value" : "Tablo bulunamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa áp dụng bộ lọc" + "value" : "Không tìm thấy bảng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未应用筛选条件" + "value" : "未找到表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "未套用篩選條件" + "value" : "找不到資料表" } } } }, - "No Foreign Keys Yet" : { + "No tables selected for export" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "아직 외래 키 없음" + "value" : "내보낼 테이블이 선택되지 않음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Henüz Yabancı Anahtar Yok" + "value" : "Dışa aktarma için tablo seçilmedi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa có khóa ngoại" + "value" : "Không có bảng nào được chọn để xuất" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "尚无外键" + "value" : "未选择要导出的表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "尚無外鍵" + "value" : "未選取要匯出的資料表" } } } }, - "No foreign tables" : { - - }, - "No free port in range %d-%d" : { - "extractionState" : "stale", + "No tables were compared. Choose the tables to compare, then press Compare." : { "localizations" : { - "en" : { + "ko" : { "stringUnit" : { - "state" : "new", - "value" : "No free port in range %1$d-%2$d" + "value" : "비교한 테이블이 없습니다. 비교할 테이블을 선택한 다음 비교를 누르십시오.", + "state" : "translated" } - }, + } + } + }, + "No tabs open" : { + "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "범위 %1$d-%2$d에 사용 가능한 포트가 없습니다" + "value" : "열려 있는 탭 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%d-%d aralığında boş port yok" + "value" : "Açık sekme yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có port trống trong khoảng %d-%d" + "value" : "Không có tab nào mở" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在 %d-%d 范围内没有可用端口" + "value" : "没有打开的标签页" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在 %1$d-%2$d 範圍內沒有可用的連接埠" + "value" : "沒有開啟的分頁" } } } }, - "No functions" : { - - }, - "No iCloud" : { + "No tokens created" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud 없음" + "value" : "생성된 토큰 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud Yok" + "value" : "Oluşturulmuş token yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có iCloud" + "value" : "Chưa tạo token nào" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无 iCloud" + "value" : "未创建令牌" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無 iCloud" + "value" : "尚未建立權杖" } } } }, - "No Indexes Defined" : { + "No valid rows found in clipboard data." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "정의된 인덱스 없음" + "value" : "클립보드 데이터에서 유효한 행을 찾을 수 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tanımlı Dizin Yok" + "value" : "Pano verisinde geçerli satır bulunamadı." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa có chỉ mục" + "value" : "Không tìm thấy dòng hợp lệ trong dữ liệu bộ nhớ tạm." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "尚未定义索引" + "value" : "剪贴板数据中未找到有效行。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "尚未定義索引" + "value" : "在剪貼簿資料中找不到有效的列。" } } } }, - "No items" : { + "No value" : { "localizations" : { "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "항목 없음" + "value" : "값 없음", + "state" : "translated" } }, "tr" : { "stringUnit" : { - "state" : "translated", - "value" : "Öğe yok" + "value" : "Değer yok", + "state" : "translated" } }, "vi" : { "stringUnit" : { - "state" : "translated", - "value" : "Không có mục nào" + "value" : "Không có giá trị", + "state" : "translated" } }, "zh-Hans" : { "stringUnit" : { - "state" : "translated", - "value" : "没有项目" + "value" : "无值", + "state" : "translated" } }, "zh-Hant" : { "stringUnit" : { - "state" : "translated", - "value" : "沒有項目" + "value" : "無值", + "state" : "translated" } } } }, - "No keys" : { + "No values found" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "키 없음" + "value" : "값을 찾을 수 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Anahtar yok" + "value" : "No values found" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có khóa" + "value" : "Không tìm thấy giá trị" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有键" + "value" : "未找到值" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有鍵" + "value" : "找不到值" } } } }, - "No License Information" : { - - }, - "No limit" : { + "Non-UTF-8 file (%@). Saving may change the encoding." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "제한 없음" + "value" : "UTF-8이 아닌 파일(%@)입니다. 저장하면 인코딩이 변경될 수 있습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sınır yok" + "value" : "UTF-8 olmayan dosya (%@). Kaydetmek kodlamayı değiştirebilir." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không giới hạn" + "value" : "Tệp không phải UTF-8 (%@). Lưu có thể làm thay đổi bảng mã." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "不限制" + "value" : "非 UTF-8 文件(%@)。保存可能会改变编码。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "不限制" + "value" : "非 UTF-8 檔案(%@)。儲存可能會改變編碼。" } } } }, - "No linked folders. Add a folder to watch for shared connection files." : { + "None" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결된 폴더가 없습니다. 공유 연결 파일을 감시할 폴더를 추가하십시오." + "value" : "없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantılı klasör yok. Paylaşılan bağlantı dosyalarını izlemek için bir klasör ekleyin." + "value" : "None" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có thư mục liên kết. Thêm thư mục để theo dõi tệp kết nối chia sẻ." + "value" : "Không" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有链接文件夹。添加文件夹以监视共享连接文件。" + "value" : "无" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有已連結的資料夾。新增資料夾以監看共用的連線檔案。" + "value" : "無" } } } }, - "No links are trusted yet." : { + "None (Top Level)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "아직 신뢰된 링크가 없습니다." + "value" : "없음(최상위)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Henüz güvenilen bağlantı yok." + "value" : "Yok (Üst Düzey)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa có liên kết nào được tin cậy." + "value" : "Không (Cấp cao nhất)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "尚未信任任何链接。" + "value" : "无(顶级)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "尚未信任任何連結。" + "value" : "無(最上層)" } } } }, - "No matches" : { + "None chosen" : { "localizations" : { "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "일치 항목 없음" + "value" : "선택 없음", + "state" : "translated" } } } }, - "No matching %@" : { - "extractionState" : "stale", + "Normal" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "일치하는 %@ 없음" + "value" : "일반" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "No matching %@" + "value" : "Normal" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy %@ phù hợp" + "value" : "Bình thường" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有匹配的%@" + "value" : "正常" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有符合的 %@" + "value" : "一般" } } } }, - "No matching activity" : { + "Not Available" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "일치하는 활동 없음" + "value" : "사용할 수 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eşleşen etkinlik yok" + "value" : "Kullanılamıyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có hoạt động khớp" + "value" : "Không khả dụng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有匹配的活动" + "value" : "不可用" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有符合的活動" + "value" : "無法使用" } } } }, - "No matching connections" : { - "extractionState" : "stale", + "Not Compared" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "비교하지 않음", + "state" : "translated" + } + } + } + }, + "Not Compared Yet" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "아직 비교하지 않음", + "state" : "translated" + } + } + } + }, + "Not Installed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "일치하는 연결 없음" + "value" : "설치되지 않음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "No matching connections" + "value" : "Yüklü Değil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có kết nối nào khớp" + "value" : "Chưa cài đặt" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无匹配连接" + "value" : "未安装" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無符合的連線" + "value" : "未安裝" } } } }, - "No Matching Connections" : { + "Not browsable on this connection" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "일치하는 연결 없음" + "value" : "이 연결에서는 탐색할 수 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eşleşen Bağlantı Yok" + "value" : "Bu bağlantıda göz atılamaz" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có kết nối phù hợp" + "value" : "Không duyệt được trên kết nối này" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无匹配连接" + "value" : "在此连接上无法浏览" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無符合的連線" + "value" : "在此連線上無法瀏覽" } } } }, - "No matching databases" : { - "extractionState" : "stale", + "Not compared" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "비교하지 않음", + "state" : "translated" + } + } + } + }, + "Not configured" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "일치하는 데이터베이스 없음" + "value" : "구성되지 않음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "No matching databases" + "value" : "Yapılandırılmamış" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có cơ sở dữ liệu nào khớp" + "value" : "Chưa cấu hình" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无匹配数据库" + "value" : "未配置" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無符合的資料庫" + "value" : "未設定" } } } }, - "No Matching Favorites" : { + "Not connected" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "일치하는 즐겨찾기 없음" + "value" : "연결되지 않음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "No Matching Favorites" + "value" : "Not connected" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có mục yêu thích phù hợp" + "value" : "Chưa kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无匹配的收藏" + "value" : "未连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無符合的我的最愛" + "value" : "未連線" } } } }, - "No matching field path" : { - - }, - "No matching fields" : { + "Not connected to %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "일치하는 필드 없음" + "value" : "%@에 연결되지 않음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eşleşen alan yok" + "value" : "%@ bağlantısı yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có trường khớp" + "value" : "Chưa kết nối tới %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无匹配字段" + "value" : "未连接到 %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無符合的欄位" + "value" : "未連線到 %@" } } } }, - "No matching objects" : { - "extractionState" : "stale", + "Not connected to ClickHouse" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "일치하는 객체 없음" + "value" : "ClickHouse에 연결되지 않음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "No matching objects" + "value" : "ClickHouse'a bağlı değil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy đối tượng phù hợp" + "value" : "Chưa kết nối đến ClickHouse" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有匹配的对象" + "value" : "未连接到 ClickHouse" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有符合的物件" + "value" : "未連線到 ClickHouse" + } + } + } + }, + "Not connected to SQL Server" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "SQL Server에 연결되지 않았습니다" } } } }, - "No matching opening bracket" : { + "Not connected to database" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "짝이 맞는 여는 괄호 없음" + "value" : "데이터베이스에 연결되지 않았습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eşleşen açılış parantezi yok" + "value" : "Veritabanına bağlı değil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có dấu mở ngoặc tương ứng" + "value" : "Chưa kết nối cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有匹配的左括号" + "value" : "未连接到数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有相符的左括號" + "value" : "未連線到資料庫" } } } }, - "No Matching Queries" : { + "Not granted" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "일치하는 쿼리 없음" + "value" : "권한이 부여되지 않음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eşleşen Sorgu Yok" + "value" : "Verilmedi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có truy vấn phù hợp" + "value" : "Chưa cấp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无匹配查询" + "value" : "未授予" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無符合的查詢" + "value" : "未授予" } } } }, - "No matching rows" : { + "Not installed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "일치하는 행 없음" + "value" : "설치되지 않음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eşleşen satır yok" + "value" : "Yüklü değil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có hàng khớp" + "value" : "Chưa cài đặt" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有匹配的行" + "value" : "未安装" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有符合的列" + "value" : "未安裝" } } } }, - "No matching schemas" : { - "extractionState" : "stale", + "Not on this page" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "일치하는 스키마 없음" + "value" : "이 페이지에 없음" + } + } + } + }, + "Not recording new queries on this Mac." : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "이 Mac에서 새 쿼리를 기록하지 않습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "No matching schemas" + "value" : "Bu Mac'te yeni sorgular kaydedilmiyor." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có schema khớp" + "value" : "Không ghi lại truy vấn mới trên máy Mac này." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无匹配 Schema" + "value" : "不在这台 Mac 上记录新查询。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無符合的綱要" + "value" : "不在這台 Mac 上記錄新查詢。" } } } }, - "No matching tables" : { - "extractionState" : "stale", + "Not signed in" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "일치하는 테이블 없음" + "value" : "로그인되지 않음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "No matching tables" + "value" : "Oturum açılmamış" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có bảng nào khớp" + "value" : "Chưa đăng nhập" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无匹配表" + "value" : "未登录" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無符合的資料表" - } - } - } - }, - "No materialized views" : { - - }, - "No Microsoft Entra ID access token was supplied." : { - "extractionState" : "stale", - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "Microsoft Entra ID 액세스 토큰이 제공되지 않았습니다." + "value" : "未登入" } } } }, - "No model selected" : { - "extractionState" : "stale", + "Not signed in to ChatGPT." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "선택된 모델 없음" + "value" : "ChatGPT에 로그인되지 않았습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "No model selected" + "value" : "ChatGPT'ye giriş yapılmadı." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa chọn model" + "value" : "Chưa đăng nhập ChatGPT." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未选择模型" + "value" : "未登录 ChatGPT。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "未選擇模型" + "value" : "尚未登入 ChatGPT。" } } } }, - "No models loaded" : { - "extractionState" : "stale", + "Not signed in to Claude. Run \"claude /login\" in Terminal, then try again." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "불러온 모델 없음" + "value" : "Claude에 로그인되지 않았습니다. 터미널에서 \"claude /login\"을 실행한 다음 다시 시도하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "No models loaded" + "value" : "Claude'da oturum açılmamış. Terminal'de \"claude /login\" çalıştırıp tekrar deneyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa tải mô hình nào" + "value" : "Chưa đăng nhập Claude. Chạy \"claude /login\" trong Terminal rồi thử lại." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未加载模型" + "value" : "尚未登录 Claude。请在终端运行 \"claude /login\" 后重试。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "未載入模型" + "value" : "尚未登入 Claude。請在終端機執行 \"claude /login\" 後再試一次。" } } } }, - "No Node Selected" : { - "comment" : "A label displayed when no query plan node is selected.", - "isCommentAutoGenerated" : true, + "Not signed in to Cursor. Sign in first." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "선택된 노드 없음" + "value" : "Cursor에 로그인되지 않았습니다. 먼저 로그인하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Düğüm Seçilmedi" + "value" : "Cursor'a giriş yapılmadı. Önce giriş yapın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa chọn nút" + "value" : "Chưa đăng nhập Cursor. Hãy đăng nhập trước." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未选择节点" + "value" : "未登录 Cursor。请先登录。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "未選擇節點" + "value" : "尚未登入 Cursor。請先登入。" } } } }, - "No Numeric Column" : { + "Not signed in to GitHub Copilot" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "숫자 열 없음" + "value" : "GitHub Copilot에 로그인되지 않음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sayısal Sütun Yok" + "value" : "GitHub Copilot'a oturum açılmamış" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có cột số" + "value" : "Chưa đăng nhập GitHub Copilot" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有数值列" + "value" : "未登录 GitHub Copilot" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有數值欄" + "value" : "未登入 GitHub Copilot" } } } }, - "No Object" : { - - }, - "No Object Selected" : { + "Not signed in to xAI." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "선택된 객체 없음" + "value" : "xAI에 로그인되지 않았습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Nesne Seçilmedi" + "value" : "xAI'da oturum açılmamış." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa chọn đối tượng" + "value" : "Chưa đăng nhập xAI." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未选择对象" + "value" : "尚未登录 xAI。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "未選取物件" + "value" : "尚未登入 xAI。" } } } }, - "No objects found" : { - "extractionState" : "stale", + "Not supported by the target" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "대상에서 지원하지 않음", + "state" : "translated" + } + } + } + }, + "Not supported by this database" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "객체를 찾을 수 없음" + "value" : "이 데이터베이스에서는 지원되지 않음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "No objects found" + "value" : "Bu veritabanı desteklemiyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy đối tượng" + "value" : "Cơ sở dữ liệu này không hỗ trợ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未找到对象" + "value" : "此数据库不支持" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "找不到物件" + "value" : "此資料庫不支援" } } } }, - "No objects match \"%@\"" : { - "extractionState" : "stale", + "Not supported for TRUNCATE with this database" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "\"%@\"과 일치하는 객체 없음" + "value" : "이 데이터베이스의 TRUNCATE에서는 지원되지 않음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "No objects match \"%@\"" + "value" : "Bu veritabanında TRUNCATE için desteklenmiyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có đối tượng phù hợp với \"%@\"" + "value" : "Không hỗ trợ TRUNCATE với cơ sở dữ liệu này" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有匹配\"%@\"的对象" + "value" : "此数据库不支持 TRUNCATE" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有符合「%@」的物件" + "value" : "此資料庫不支援 TRUNCATE" } } } }, - "No open tab this client may reach has that id." : { - - }, - "No Operations Available" : { + "Not supported for this database." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사용 가능한 작업 없음" + "value" : "이 데이터베이스에서는 지원되지 않습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kullanılabilir İşlem Yok" + "value" : "Bu veritabanında desteklenmiyor." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có thao tác nào" + "value" : "Không hỗ trợ cho cơ sở dữ liệu này." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有可用操作" + "value" : "此数据库不支持。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有可用的操作" + "value" : "此資料庫不支援。" } } } }, - "No parts found" : { + "Not supported for this database. Use CASCADE instead." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "파트를 찾을 수 없음" + "value" : "이 데이터베이스에서는 지원되지 않습니다. 대신 CASCADE를 사용하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Parça bulunamadı" + "value" : "Bu veritabanında desteklenmiyor. Bunun yerine CASCADE kullanın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy phân vùng" + "value" : "Không hỗ trợ cho cơ sở dữ liệu này. Hãy dùng CASCADE thay thế." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未找到分区" + "value" : "此数据库不支持。请使用 CASCADE 代替。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "找不到分割區" + "value" : "此資料庫不支援。請改用 CASCADE。" } } } }, - "No pending changes" : { + "Not visible" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "대기 중인 변경 사항 없음" + "value" : "표시되지 않음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bekleyen değişiklik yok" + "value" : "Görünmüyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có thay đổi nào" + "value" : "Không hiển thị" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无待处理的更改" + "value" : "不可见" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無待處理的變更" + "value" : "不可見" } } } }, - "No Plan Available" : { - "comment" : "Title of a view that shows when a query plan is not available.", - "isCommentAutoGenerated" : true, + "Notes" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "참고", + "state" : "translated" + } + } + } + }, + "Nothing got at least %1$lld%% slower than the period before. A query needs %2$lld runs in both periods, and has to have grown by at least %3$@." : { + "comment" : "Empty state for regressions: %1$lld is a percentage, %2$lld a run count, %3$@ a duration", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사용 가능한 쿼리 계획 없음" + "value" : "이전 기간보다 %1$lld%% 이상 느려진 항목이 없습니다. 쿼리는 두 기간 모두에서 %2$lld회 실행되어야 하며, 최소 %3$@만큼 증가해야 합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Plan Yok" + "value" : "Hiçbir şey önceki döneme göre en az %1$lld%% yavaşlamadı. Bir sorgunun her iki dönemde de %2$lld çalışması ve en az %3$@ artmış olması gerekir." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có kế hoạch" + "value" : "Không có gì chậm đi ít nhất %1$lld%% so với kỳ trước. Một truy vấn cần %2$lld lần chạy ở cả hai kỳ và phải tăng thêm ít nhất %3$@." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有可用的执行计划" + "value" : "没有任何查询比上一时段慢了至少 %1$lld%%。一个查询需要在两个时段各运行 %2$lld 次,并且至少增加了 %3$@。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有可用的執行計畫" + "value" : "沒有任何查詢比上一時段慢了至少 %1$lld%%。一個查詢需要在兩個時段各執行 %2$lld 次,並且至少增加了 %3$@。" } } } }, - "No plugin developers trusted yet." : { + "Nothing in this script destroys data in %@." : { "localizations" : { "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "아직 신뢰하는 플러그인 개발자가 없습니다." + "value" : "이 스크립트에는 %@의 데이터를 파괴하는 내용이 없습니다.", + "state" : "translated" } } } }, - "No plugins found" : { - "extractionState" : "stale", + "Nothing is running." : { "localizations" : { "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "플러그인을 찾을 수 없음" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "No plugins found" + "value" : "실행 중인 작업이 없습니다.", + "state" : "translated" } - }, - "vi" : { + } + } + }, + "Nothing is selected to apply." : { + "localizations" : { + "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "Không tìm thấy plugin" + "value" : "적용할 항목이 선택되지 않았습니다.", + "state" : "translated" } - }, - "zh-Hans" : { + } + } + }, + "Nothing is written until Apply." : { + "localizations" : { + "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "未找到插件" + "value" : "적용하기 전에는 아무것도 기록되지 않습니다.", + "state" : "translated" } - }, - "zh-Hant" : { + } + } + }, + "Nothing to Show" : { + "localizations" : { + "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "找不到外掛" + "value" : "표시할 내용 없음", + "state" : "translated" } } } }, - "No primary key selected (not recommended)" : { - "extractionState" : "stale", + "Null" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "선택된 기본 키 없음(권장하지 않음)" + "value" : "NULL" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "No primary key selected (not recommended)" + "value" : "Null" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa chọn khóa chính (không khuyến nghị)" + "value" : "Null" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未选择主键(不推荐)" + "value" : "Null" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "未選擇主鍵(不建議)" + "value" : "Null" } } } }, - "No primary key. Choose key columns to compare this table." : { - - }, - "No privileges" : { + "Nullable" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "권한 없음" + "value" : "NULL 허용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yetki yok" + "value" : "Nullable" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có quyền" + "value" : "Cho phép NULL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无权限" + "value" : "允许 NULL" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有權限" + "value" : "允許 NULL" } } } }, - "No Privileges" : { + "Number" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "권한 없음" + "value" : "숫자" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yetki Yok" + "value" : "Sayı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có quyền" + "value" : "Số" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无权限" + "value" : "数字" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有權限" + "value" : "數字" } } } }, - "No privileges can be granted at this level." : { + "Number of documents per insertMany statement. Higher values create fewer statements." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 수준에서는 부여할 수 있는 권한이 없습니다." + "value" : "insertMany 명령문당 문서 수입니다. 값이 클수록 생성되는 명령문 수가 줄어듭니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu düzeyde yetki verilemez." + "value" : "Number of documents per insertMany statement. Higher values create fewer statements." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể cấp quyền ở cấp này." + "value" : "Số lượng document cho mỗi câu lệnh insertMany. Giá trị cao hơn tạo ít câu lệnh hơn." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此级别无法授予任何权限。" + "value" : "每个 insertMany 语句的文档数量。值越大生成的语句越少。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此層級無法授予任何權限。" + "value" : "每個 insertMany 陳述式的文件數量。值越大產生的陳述式越少。" } } } }, - "No procedures" : { - + "Numeric tolerance" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "숫자 허용 오차", + "state" : "translated" + } + } + } }, - "No providers configured" : { + "OAuth Client ID" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "구성된 제공업체 없음" + "value" : "OAuth 클라이언트 ID" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yapılandırılmış sağlayıcı yok" + "value" : "OAuth Client ID" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa cấu hình nhà cung cấp" + "value" : "OAuth Client ID" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未配置提供商" + "value" : "OAuth Client ID" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "未設定供應商" + "value" : "OAuth Client ID" } } } }, - "No published port, may be unreachable" : { + "OAuth Client Secret" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "게시된 포트가 없어 접근하지 못할 수 있음" + "value" : "OAuth 클라이언트 시크릿" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yayınlanmış port yok, erişilemeyebilir" + "value" : "OAuth Client Secret" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có cổng được công bố, có thể không truy cập được" + "value" : "OAuth Client Secret" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未发布端口,可能无法访问" + "value" : "OAuth Client Secret" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "未發佈連接埠,可能無法連線" + "value" : "OAuth Client Secret" } } } }, - "No queries in this range." : { + "OAuth Token" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 범위에 쿼리가 없습니다." + "value" : "OAuth 토큰" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu aralıkta sorgu yok." + "value" : "OAuth Belirteci" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có truy vấn nào trong khoảng này." + "value" : "Token OAuth" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此范围内没有查询。" + "value" : "OAuth 令牌" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此範圍內沒有查詢。" + "value" : "OAuth 權杖" } } } }, - "No Queries Match" : { + "OK" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "일치하는 쿼리 없음" + "value" : "확인" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eşleşen Sorgu Yok" + "value" : "Tamam" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có truy vấn khớp" + "value" : "OK" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有匹配的查询" + "value" : "OK" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有相符的查詢" + "value" : "好" } } } }, - "No queries ran in this range, from the sources you selected." : { + "OR" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "선택한 소스에서 이 범위에 실행된 쿼리가 없습니다." + "value" : "OR" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Seçtiğiniz kaynaklardan bu aralıkta hiçbir sorgu çalışmadı." + "value" : "OR" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có truy vấn nào chạy trong khoảng này, từ các nguồn bạn đã chọn." + "value" : "OR" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在你选择的来源中,此范围内没有查询运行。" + "value" : "OR" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在你選擇的來源中,此範圍內沒有查詢執行。" + "value" : "OR" } } } }, - "No Queries Yet" : { + "Object" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "아직 쿼리 없음" + "value" : "객체" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Henüz Sorgu Yok" + "value" : "Nesne" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa có truy vấn" + "value" : "Đối tượng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "还没有查询" + "value" : "对象" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "還沒有查詢" + "value" : "物件" } } } }, - "No query executed yet" : { + "Object Type" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "객체 유형", + "state" : "translated" + } + } + } + }, + "Objects that depend on them will be dropped too." : { + "comment" : "Message in a confirmation alert when the user has selected to drop all objects that depend on the dropped objects.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "아직 실행된 쿼리 없음" + "value" : "종속된 객체도 함께 삭제됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Henüz sorgu çalıştırılmadı" + "value" : "Onlara bağımlı nesneler de silinecek." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa thực hiện truy vấn nào" + "value" : "Các đối tượng phụ thuộc vào chúng cũng sẽ bị xoá." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "尚未执行查询" + "value" : "依赖它们的对象也会被删除。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "尚未執行查詢" + "value" : "依賴它們的物件也會被刪除。" } } } }, - "No query failed in this range." : { + "Objects to Compare" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "비교할 객체", + "state" : "translated" + } + } + } + }, + "Off" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 범위에서 실패한 쿼리가 없습니다." + "value" : "끔" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu aralıkta hiçbir sorgu başarısız olmadı." + "value" : "Kapalı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có truy vấn nào lỗi trong khoảng này." + "value" : "Tắt" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此范围内没有查询失败。" + "value" : "关" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此範圍內沒有查詢失敗。" + "value" : "關閉" } } } }, - "No Query History" : { + "Off by default. Turn it on to encrypt saved passwords with a passphrase." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 기록 없음" + "value" : "기본적으로 꺼져 있습니다. 암호 구문으로 저장된 암호를 암호화하려면 켜십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgu Geçmişi Yok" + "value" : "Varsayılan olarak kapalı. Kaydedilen parolaları bir parola cümlesiyle şifrelemek için açın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có lịch sử truy vấn" + "value" : "Mặc định tắt. Bật lên để mã hóa các mật khẩu đã lưu bằng một cụm mật khẩu." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有查询历史" + "value" : "默认关闭。开启后会用一个口令加密已保存的密码。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有查詢歷史" + "value" : "預設關閉。開啟後會用一組通關密語加密已儲存的密碼。" } } } }, - "No Query History Yet" : { + "Offset" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "아직 쿼리 기록 없음" + "value" : "오프셋" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "No Query History Yet" + "value" : "Offset" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa có lịch sử truy vấn" + "value" : "Vị trí bắt đầu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "暂无查询历史" + "value" : "偏移量" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "尚無查詢記錄" + "value" : "偏移量" } } } }, - "No query matches the current search and filters." : { + "Ollama is running but has no models. Run \"ollama pull \" to download one." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "현재 검색 및 필터와 일치하는 쿼리가 없습니다." + "value" : "Ollama가 실행 중이지만 모델이 없습니다. 모델을 다운로드하려면 \"ollama pull \"을 실행하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geçerli arama ve filtrelerle eşleşen sorgu yok." + "value" : "Ollama çalışıyor ancak modeli yok. Bir model indirmek için \"ollama pull \" komutunu çalıştırın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có truy vấn nào khớp với tìm kiếm và bộ lọc hiện tại." + "value" : "Ollama đang chạy nhưng không có mô hình nào. Chạy \"ollama pull \" để tải về." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有查询匹配当前的搜索和筛选条件。" + "value" : "Ollama 正在运行但没有模型。运行 \"ollama pull \" 下载一个。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有查詢符合目前的搜尋和篩選條件。" + "value" : "Ollama 正在執行但沒有模型。請執行 \"ollama pull \" 下載一個。" } } } }, - "No query ran at least %lld times, which is the minimum for an average to mean anything." : { - "comment" : "Empty state for the average-time ranking, %lld is a run count", + "On Delete" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "평균을 내는 데 필요한 최소 실행 횟수인 %lld회 이상 실행된 쿼리가 없습니다." + "value" : "삭제 시" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Hiçbir sorgu en az %lld kez çalışmadı; ortalamanın anlamlı olması için gereken en az sayı bu." + "value" : "Silindiğinde" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có truy vấn nào chạy ít nhất %lld lần, đây là mức tối thiểu để giá trị trung bình có ý nghĩa." + "value" : "Khi xóa" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有查询至少运行 %lld 次,而这是平均值有意义所需的最少次数。" + "value" : "删除时" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有查詢至少執行 %lld 次,而這是平均值有意義所需的最少次數。" + "value" : "刪除時" } } } }, - "No Query Selected" : { + "On Disk" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "선택된 쿼리 없음" + "value" : "디스크 버전" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgu Seçilmedi" + "value" : "Diskte" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa chọn truy vấn" + "value" : "Trên đĩa" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未选择查询" + "value" : "磁盘上" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "未選擇查詢" - } - } - } - }, - "No Results" : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "결과 없음" + "value" : "在磁碟上" } } } }, - "No results for \"%@\"" : { + "On Quit" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "\"%@\"에 대한 결과 없음" + "value" : "종료 시" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "\"%@\" için sonuç yok" + "value" : "Çıkışta" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có kết quả cho \"%@\"" + "value" : "Khi thoát" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有“%@”的结果" + "value" : "退出时" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有「%@」的結果" + "value" : "結束時" } } } }, - "No rows" : { + "On Update" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "행 없음" + "value" : "업데이트 시" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satır yok" + "value" : "Güncellendiğinde" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có dòng" + "value" : "Khi cập nhật" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无行" + "value" : "更新时" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有資料列" + "value" : "更新時" } } } }, - "No Rows Match" : { - + "On error" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "오류 발생 시", + "state" : "translated" + } + } + } }, - "No rows returned" : { + "Only affects new saves. Re-save a password to update its sync." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "반환된 행 없음" + "value" : "새로 저장하는 항목에만 적용됩니다. 동기화 설정을 업데이트하려면 암호를 다시 저장하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satır döndürülmedi" + "value" : "Yalnızca yeni kayıtları etkiler. Bir parolanın eşzamanlamasını güncellemek için parolayı yeniden kaydedin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có dòng nào được trả về" + "value" : "Chỉ áp dụng cho lần lưu mới. Lưu lại mật khẩu để cập nhật đồng bộ." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未返回任何行" + "value" : "仅影响新保存的内容。重新保存密码以更新其同步状态。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "未傳回任何列" + "value" : "僅影響新儲存的內容。重新儲存密碼以更新其同步狀態。" } } } }, - "No saved connection has that id." : { - + "Only in Source" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "원본에만 있음", + "state" : "translated" + } + } + } }, - "No saved connection named \"%@\"." : { - "extractionState" : "stale", + "Only in Target" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "대상에만 있음", + "state" : "translated" + } + } + } + }, + "Only the first %1$lld nodes were loaded, so this value was not searched in full. Switch to %2$@ to search all of it." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이름이 \"%@\"인 저장된 연결이 없습니다." + "value" : "처음 %1$lld개의 노드만 불러와 이 값을 전부 검색하지 못했습니다. 모든 내용을 검색하려면 %2$@ 옵션으로 전환하십시오." + } + } + } + }, + "Only the first %1$lld nodes were loaded. Switch to %2$@ to see the whole value." : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "처음 %1$lld개의 노드만 불러왔습니다. 전체 값을 보려면 %2$@ 옵션으로 전환하십시오." + } + } + } + }, + "Open" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "열기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "No saved connection named \"%@\"." + "value" : "Open" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có kết nối đã lưu tên \"%@\"." + "value" : "Mở" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有名为 \"%@\" 的已保存连接。" + "value" : "打开" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有名為「%@」的已儲存連線。" + "value" : "開啟" } } } }, - "No saved connection with ID \"%@\"." : { + "Open %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "ID가 \"%@\"인 저장된 연결이 없습니다." + "value" : "%@ 열기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "\"%@\" ID'li kayıtlı bağlantı yok." + "value" : "%@ Aç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có kết nối đã lưu với ID \"%@\"." + "value" : "Mở %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未找到 ID 为 \"%@\" 的已保存连接。" + "value" : "打开 %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "找不到 ID 為「%@」的已儲存連線。" + "value" : "開啟 %@" } } } }, - "No saved connections" : { + "Open %@ Editor" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "저장된 연결 없음" + "value" : "%@ 편집기 열기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kayıtlı bağlantı yok" + "value" : "%@ Düzenleyicisini Aç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có kết nối đã lưu" + "value" : "Mở trình chỉnh sửa %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有已保存的连接" + "value" : "打开 %@ 编辑器" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有已儲存的連線" + "value" : "開啟 %@ 編輯器" } } } }, - "No saved customizations yet. Column widths, order, visibility, and per-table filters you set appear here so you can review and reset them." : { - "extractionState" : "stale", + "Open %@ in New Tab" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "아직 저장된 사용자화가 없습니다. 여기에는 설정한 열 너비, 순서, 표시 여부 및 테이블별 필터가 표시되므로 검토하거나 재설정할 수 있습니다." + "value" : "새 탭에서 %@ 열기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Henüz kaydedilmiş özelleştirme yok. Ayarladığınız sütun genişlikleri, sırası, görünürlüğü ve tablo başına filtreler burada görünür; buradan gözden geçirip sıfırlayabilirsiniz." + "value" : "%@ Öğesini Yeni Sekmede Aç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa có tùy chỉnh nào được lưu. Độ rộng cột, thứ tự, khả năng hiển thị và bộ lọc theo từng bảng bạn đặt sẽ xuất hiện ở đây để xem lại và đặt lại." + "value" : "Mở %@ trong tab mới" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "尚未保存任何自定义。你设置的列宽、顺序、显示状态以及各表的筛选条件会显示在这里,便于查看和重置。" + "value" : "在新标签页中打开%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "尚未儲存任何自訂設定。你設定的欄寬、順序、顯示狀態以及各資料表的篩選條件會顯示在這裡,方便你檢視與重設。" + "value" : "在新分頁中開啟 %@" } } } }, - "No saved setups for this source and target." : { - - }, - "No saved templates" : { + "Open %@..." : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "저장된 템플릿 없음" + "value" : "%@ 열기..." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "No saved templates" + "value" : "%@ Aç..." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có mẫu đã lưu" + "value" : "Mở %@..." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无已保存的模板" + "value" : "打开 %@..." } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無已儲存的範本" + "value" : "開啟 %@..." } } } }, - "No schemas" : { - "extractionState" : "stale", + "Open AI settings to change the tool call limit." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "스키마 없음" + "value" : "도구 호출 한도를 변경하려면 AI 설정을 여십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Şema yok" + "value" : "Araç çağrısı limitini değiştirmek için AI ayarlarını açın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có schema" + "value" : "Mở cài đặt AI để thay đổi giới hạn gọi công cụ." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有 Schema" + "value" : "打开 AI 设置以更改工具调用上限。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有綱要" + "value" : "開啟 AI 設定以變更工具呼叫上限。" } } } }, - "No Schemas Available" : { - "comment" : "Placeholder text displayed in the schemas menu when the user has no schemas available.", - "isCommentAutoGenerated" : true, + "Open Claude Desktop, go to Settings > Developer" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사용 가능한 스키마 없음" + "value" : "Claude Desktop을 열고 설정 > 개발자로 이동하십시오" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kullanılabilir Şema Yok" + "value" : "Claude Desktop'ı açın, Settings > Developer'a gidin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có schema nào" + "value" : "Mở Claude Desktop, vào Settings > Developer" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有可用的 Schema" + "value" : "打开 Claude Desktop,进入 Settings > Developer" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有可用的綱要" + "value" : "開啟 Claude Desktop,前往 Settings > Developer" } } } }, - "No schemas found" : { - "extractionState" : "stale", + "Open Connection" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "스키마를 찾을 수 없음" + "value" : "연결 열기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "No schemas found" + "value" : "Bağlantıyı Aç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy schema" + "value" : "Mở kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未找到 Schema" + "value" : "打开连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "找不到綱要" + "value" : "開啟連線" } } } }, - "No schemas match \"%@\"" : { - "extractionState" : "stale", + "Open Connection Window" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "\"%@\"과 일치하는 스키마 없음" + "value" : "연결 윈도우 열기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "No schemas match \"%@\"" + "value" : "Bağlantı Penceresini Aç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có schema khớp \"%@\"" + "value" : "Mở cửa sổ kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有匹配 \"%@\" 的 Schema" + "value" : "打开连接窗口" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有符合「%@」的綱要" + "value" : "開啟連線視窗" } } } }, - "No Script Yet" : { - - }, - "No selection" : { + "Open Connections" : { + "comment" : "Accessibility label for the open connections list.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "선택 항목 없음" + "value" : "연결 목록 열기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Seçim yok" + "value" : "Açık Bağlantılar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa chọn" + "value" : "Kết nối đang mở" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未选择" + "value" : "已打开的连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "未選取" + "value" : "已開啟的連線" } } } }, - "No Selection" : { + "Open Cursor, go to Settings > MCP" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "선택 항목 없음" + "value" : "Cursor를 열고 설정 > MCP로 이동하십시오" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Seçim Yok" + "value" : "Cursor'ı açın, Settings > MCP'ye gidin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa chọn" + "value" : "Mở Cursor, vào Settings > MCP" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未选择" + "value" : "打开 Cursor,进入 Settings > MCP" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "未選取" + "value" : "開啟 Cursor,前往 Settings > MCP" } } } }, - "No slow queries" : { + "Open Database" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "느린 쿼리 없음" + "value" : "데이터베이스 열기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yavaş sorgu yok" + "value" : "Veritabanı Aç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có truy vấn chậm" + "value" : "Mở cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有慢查询" + "value" : "打开数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有慢查詢" + "value" : "開啟資料庫" } } } }, - "No sorting (engine order)" : { + "Open Database (⌘K)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "정렬 안 함(엔진 순서)" + "value" : "데이터베이스 열기(⌘K)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sıralama yok (motor sırası)" + "value" : "Open Database (⌘K)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không sắp xếp (theo thứ tự engine)" + "value" : "Mở cơ sở dữ liệu (⌘K)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "不排序(引擎顺序)" + "value" : "打开数据库 (⌘K)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "不排序(引擎順序)" + "value" : "開啟資料庫 (⌘K)" } } } }, - "No SSL encryption" : { + "Open Database…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSL 암호화 없음" + "value" : "데이터베이스 열기…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSL şifrelemesi yok" + "value" : "Veritabanı Aç…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không mã hóa SSL" + "value" : "Mở cơ sở dữ liệu…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无 SSL 加密" + "value" : "打开数据库…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無 SSL 加密" + "value" : "開啟資料庫…" } } } }, - "No Table Selected" : { - - }, - "No tables" : { + "Open External Database Connection?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 없음" + "value" : "외부 데이터베이스 연결을 여시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tablo yok" + "value" : "Harici Veritabanı Bağlantısı Açılsın mı?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có bảng" + "value" : "Mở kết nối cơ sở dữ liệu bên ngoài?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有表" + "value" : "打开外部数据库连接?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有資料表" + "value" : "開啟外部資料庫連線?" } } } }, - "No Tables" : { - "extractionState" : "stale", + "Open File" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 없음" + "value" : "파일 열기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "No Tables" + "value" : "Dosya Aç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có bảng" + "value" : "Mở tệp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无表" + "value" : "打开文件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有資料表" + "value" : "開啟檔案" } } } }, - "No tables found" : { + "Open File…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블을 찾을 수 없음" + "value" : "파일 열기…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tablo bulunamadı" + "value" : "Dosya Aç…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy bảng" + "value" : "Mở tệp…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未找到表" + "value" : "打开文件…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "找不到資料表" + "value" : "開啟檔案…" } } } }, - "No tables selected for export" : { + "Open Issue Tracker" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "내보낼 테이블이 선택되지 않음" + "value" : "이슈 트래커 열기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dışa aktarma için tablo seçilmedi" + "value" : "Sorun İzleyiciyi Aç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có bảng nào được chọn để xuất" + "value" : "Mở Issue Tracker" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未选择要导出的表" + "value" : "打开问题跟踪器" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "未選取要匯出的資料表" + "value" : "開啟問題追蹤器" } } } }, - "No tables were compared. Choose the tables to compare, then press Compare." : { - - }, - "No Tables Yet" : { - - }, - "No tabs open" : { + "Open JSON Viewer" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열려 있는 탭 없음" + "value" : "JSON 뷰어 열기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Açık sekme yok" + "value" : "JSON Görüntüleyiciyi Aç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có tab nào mở" + "value" : "Mở trình xem JSON" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有打开的标签页" + "value" : "打开 JSON 查看器" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有開啟的分頁" + "value" : "開啟 JSON 檢視器" } } } }, - "No tokens created" : { + "Open MQL Editor" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "생성된 토큰 없음" + "value" : "MQL 편집기 열기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Oluşturulmuş token yok" + "value" : "Open MQL Editor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa tạo token nào" + "value" : "Mở trình soạn MQL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未创建令牌" + "value" : "打开 MQL 编辑器" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "尚未建立權杖" + "value" : "開啟 MQL 編輯器" } } } }, - "No triggers" : { - - }, - "No Triggers" : { + "Open Plugin Settings" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "트리거 없음" + "value" : "플러그인 설정 열기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tetikleyici Yok" + "value" : "Eklenti Ayarlarını Aç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có trigger" + "value" : "Mở cài đặt plugin" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无触发器" + "value" : "打开插件设置" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無觸發器" + "value" : "開啟外掛設定" } } } }, - "No Users or Roles" : { + "Open Project Folder" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사용자 또는 역할 없음" + "value" : "프로젝트 폴더 열기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kullanıcı veya Rol Yok" + "value" : "Proje Klasörünü Aç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có người dùng hoặc vai trò" + "value" : "Mở thư mục dự án" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有用户或角色" + "value" : "打开项目文件夹" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有使用者或角色" + "value" : "開啟專案資料夾" } } } }, - "No valid rows found in clipboard data." : { + "Open Project Folder…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "클립보드 데이터에서 유효한 행을 찾을 수 없습니다." + "value" : "프로젝트 폴더 열기…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Pano verisinde geçerli satır bulunamadı." + "value" : "Proje Klasörünü Aç…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy dòng hợp lệ trong dữ liệu bộ nhớ tạm." + "value" : "Mở thư mục dự án…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "剪贴板数据中未找到有效行。" + "value" : "打开项目文件夹…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在剪貼簿資料中找不到有效的列。" + "value" : "開啟專案資料夾…" } } } }, - "No value" : { + "Open Query" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "값 없음" + "value" : "쿼리 열기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Değer yok" + "value" : "Sorgu Aç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có giá trị" + "value" : "Mở truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无值" + "value" : "打开查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無值" + "value" : "開啟查詢" } } } }, - "No values found" : { - "extractionState" : "stale", + "Open Query from Link" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "값을 찾을 수 없음" + "value" : "링크에서 쿼리 열기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "No values found" + "value" : "Linkten Sorgu Aç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy giá trị" + "value" : "Mở truy vấn từ liên kết" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未找到值" + "value" : "从链接打开查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "找不到值" + "value" : "從連結開啟查詢" } } } }, - "No values in this row matched the column mapping" : { - - }, - "No views" : { - - }, - "No Warnings" : { - - }, - "Non-UTF-8 file (%@). Saving may change the encoding." : { + "Open Quickly" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "UTF-8이 아닌 파일(%@)입니다. 저장하면 인코딩이 변경될 수 있습니다." + "value" : "빠르게 열기" } }, "tr" : { "stringUnit" : { - "state" : "translated", - "value" : "UTF-8 olmayan dosya (%@). Kaydetmek kodlamayı değiştirebilir." + "state" : "needs_review", + "value" : "Hızlı Aç" } }, "vi" : { "stringUnit" : { - "state" : "translated", - "value" : "Tệp không phải UTF-8 (%@). Lưu có thể làm thay đổi bảng mã." + "state" : "needs_review", + "value" : "Mở nhanh" } }, "zh-Hans" : { "stringUnit" : { - "state" : "translated", - "value" : "非 UTF-8 文件(%@)。保存可能会改变编码。" + "state" : "needs_review", + "value" : "快速打开" } }, "zh-Hant" : { "stringUnit" : { - "state" : "translated", - "value" : "非 UTF-8 檔案(%@)。儲存可能會改變編碼。" + "state" : "needs_review", + "value" : "快速打開" } } } }, - "None" : { + "Open Quickly…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "없음" + "value" : "빠르게 열기…" } }, "tr" : { "stringUnit" : { - "state" : "translated", - "value" : "None" + "state" : "needs_review", + "value" : "Hızlı Aç…" } }, "vi" : { "stringUnit" : { - "state" : "translated", - "value" : "Không" + "state" : "needs_review", + "value" : "Mở nhanh…" } }, "zh-Hans" : { "stringUnit" : { - "state" : "translated", - "value" : "无" + "state" : "needs_review", + "value" : "快速打开…" } }, "zh-Hant" : { "stringUnit" : { - "state" : "translated", - "value" : "無" + "state" : "needs_review", + "value" : "快速打開…" } } } }, - "None (Top Level)" : { + "Open Redis CLI" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "없음(최상위)" + "value" : "Redis CLI 열기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yok (Üst Düzey)" + "value" : "Open Redis CLI" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không (Cấp cao nhất)" + "value" : "Mở Redis CLI" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无(顶级)" + "value" : "打开 Redis CLI" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無(最上層)" + "value" : "開啟 Redis CLI" } } } }, - "None chosen" : { - - }, - "Normal" : { + "Open SQL Editor" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "일반" + "value" : "SQL 편집기 열기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Normal" + "value" : "Open SQL Editor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bình thường" + "value" : "Mở trình soạn SQL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正常" + "value" : "打开 SQL 编辑器" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "一般" + "value" : "開啟 SQL 編輯器" } } } }, - "Not Available" : { + "Open Sample Database" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사용할 수 없음" + "value" : "샘플 데이터베이스 열기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kullanılamıyor" + "value" : "Örnek Veritabanını Aç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không khả dụng" + "value" : "Mở cơ sở dữ liệu mẫu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "不可用" + "value" : "打开示例数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法使用" + "value" : "開啟範例資料庫" } } } }, - "Not browsable on this connection" : { + "Open Schema" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 연결에서는 탐색할 수 없음" + "value" : "스키마 열기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu bağlantıda göz atılamaz" + "value" : "Open Schema" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không duyệt được trên kết nối này" + "value" : "Mở Schema" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在此连接上无法浏览" + "value" : "打开 Schema" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在此連線上無法瀏覽" + "value" : "開啟綱要" } } } }, - "Not compared" : { - - }, - "Not Compared" : { - - }, - "Not Compared Yet" : { - + "Open Schema…" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "스키마 열기…" + } + } + } }, - "Not configured" : { + "Open Structure" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "구성되지 않음" + "value" : "구조 열기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yapılandırılmamış" + "value" : "Yapıyı Aç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa cấu hình" + "value" : "Mở cấu trúc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未配置" + "value" : "打开结构" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "未設定" + "value" : "開啟結構" } } } }, - "Not connected" : { - "extractionState" : "stale", + "Open Table" : { + "comment" : "A context menu option to open a table in the main view.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결되지 않음" + "value" : "테이블 열기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Not connected" + "value" : "Tabloyu Aç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa kết nối" + "value" : "Mở bảng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未连接" + "value" : "打开表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "未連線" + "value" : "開啟資料表" } } } }, - "Not connected to %@" : { + "Open Table Tab" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@에 연결되지 않음" + "value" : "테이블 탭 열기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ bağlantısı yok" + "value" : "Tablo Sekmesini Aç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa kết nối tới %@" + "value" : "Mở tab bảng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未连接到 %@" + "value" : "打开表标签页" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "未連線到 %@" + "value" : "開啟資料表分頁" } } } }, - "Not connected to ClickHouse" : { + "Open Terminal" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "ClickHouse에 연결되지 않음" + "value" : "터미널 열기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "ClickHouse'a bağlı değil" + "value" : "Terminali Aç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa kết nối đến ClickHouse" + "value" : "Mở Terminal" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未连接到 ClickHouse" + "value" : "打开终端" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "未連線到 ClickHouse" + "value" : "開啟終端機" } } } }, - "Not connected to database" : { + "Open Workspaces" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스에 연결되지 않았습니다" + "value" : "워크스페이스 열기" } }, "tr" : { "stringUnit" : { - "state" : "translated", - "value" : "Veritabanına bağlı değil" + "state" : "needs_review", + "value" : "Açık Çalışma Alanları" } }, "vi" : { "stringUnit" : { - "state" : "translated", - "value" : "Chưa kết nối cơ sở dữ liệu" + "state" : "needs_review", + "value" : "Không gian làm việc đang mở" } }, "zh-Hans" : { "stringUnit" : { - "state" : "translated", - "value" : "未连接到数据库" + "state" : "needs_review", + "value" : "已打开的工作区" } }, "zh-Hant" : { "stringUnit" : { - "state" : "translated", - "value" : "未連線到資料庫" - } - } - } - }, - "Not connected to SQL Server" : { - "extractionState" : "stale", - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "SQL Server에 연결되지 않았습니다" + "state" : "needs_review", + "value" : "已開啟的工作區" } } } }, - "not contains" : { + "Open Zed and click the Agent Panel icon in the right side of the title bar" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "포함하지 않음" + "value" : "Zed를 열고 제목 막대 오른쪽의 에이전트 패널 아이콘을 클릭하십시오" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "içermez" + "value" : "Zed'i açın ve başlık çubuğunun sağındaki Agent Panel simgesine tıklayın" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "không chứa" + "value" : "Mở Zed và nhấp vào biểu tượng Agent Panel ở bên phải thanh tiêu đề" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "不包含" + "value" : "打开 Zed,点按标题栏右侧的 Agent Panel 图标" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "不包含" + "value" : "開啟 Zed,點按標題列右側的 Agent Panel 圖示" } } } }, - "not equals" : { + "Open a TablePro window for a saved connection (focuses if already open)." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "같지 않음" + "value" : "저장된 연결의 TablePro 윈도우를 엽니다. 이미 열려 있으면 해당 윈도우로 전환합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "eşit değil" + "value" : "Kayıtlı bir bağlantı için TablePro penceresi açar (zaten açıksa öne getirir)." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "không bằng" + "value" : "Mở cửa sổ TablePro cho một kết nối đã lưu (chuyển tiêu điểm nếu đã mở)." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "不等于" + "value" : "为已保存的连接打开 TablePro 窗口(如已打开则切换到该窗口)。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "不等於" + "value" : "為已儲存的連線開啟 TablePro 視窗(如已開啟則切換到該視窗)。" } } } }, - "Not granted" : { + "Open a connection to apply" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "권한이 부여되지 않음" + "value" : "적용할 연결 열기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Verilmedi" + "value" : "Uygulamak için bir bağlantı açın" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa cấp" + "value" : "Mở một kết nối để áp dụng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未授予" + "value" : "打开一个连接后生效" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "未授予" + "value" : "開啟一個連線後才會套用" } } } }, - "not in list" : { + "Open a connection to insert" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "목록에 없음" + "value" : "삽입할 연결 열기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "listede değil" + "value" : "Eklemek için bir bağlantı açın" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "không trong danh sách" + "value" : "Mở một kết nối để chèn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "不在列表中" + "value" : "打开一个连接以插入" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "不在清單中" + "value" : "開啟一個連線以插入" } } } }, - "Not installed" : { + "Open a different file from the Welcome window." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "설치되지 않음" + "value" : "시작 윈도우에서 다른 파일을 여십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yüklü değil" + "value" : "Hoş Geldiniz penceresinden farklı bir dosya açın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa cài đặt" + "value" : "Mở tệp khác từ cửa sổ Chào mừng." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未安装" + "value" : "从欢迎窗口打开其他文件。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "未安裝" + "value" : "從歡迎視窗開啟其他檔案。" } } } }, - "Not Installed" : { + "Open a table tab in TablePro for the given connection." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "설치되지 않음" + "value" : "지정된 연결의 테이블 탭을 TablePro에서 엽니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yüklü Değil" + "value" : "Verilen bağlantı için TablePro'da bir tablo sekmesi açar." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa cài đặt" + "value" : "Mở một tab bảng trong TablePro cho kết nối đã cho." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未安装" + "value" : "在 TablePro 中为指定连接打开一个表标签页。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "未安裝" + "value" : "在 TablePro 中為指定的連線開啟資料表分頁。" } } } }, - "NOT NULL" : { + "Open containing folder" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "NOT NULL" + "value" : "포함된 폴더 열기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "NOT NULL" + "value" : "Open containing folder" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "NOT NULL" + "value" : "Mở thư mục chứa" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "NOT NULL" + "value" : "打开所在文件夹" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "NOT NULL" - } - } - } - }, - "Not on this page" : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "이 페이지에 없음" + "value" : "開啟所在資料夾" } } } }, - "Not recording new queries on this Mac." : { + "Open database" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 Mac에서 새 쿼리를 기록하지 않습니다." + "value" : "데이터베이스 열기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu Mac'te yeni sorgular kaydedilmiyor." + "value" : "Open database" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không ghi lại truy vấn mới trên máy Mac này." + "value" : "Mở cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "不在这台 Mac 上记录新查询。" + "value" : "打开数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "不在這台 Mac 上記錄新查詢。" + "value" : "開啟資料庫" } } } }, - "Not signed in" : { + "Open editor" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "로그인되지 않음" + "value" : "편집기 열기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Oturum açılmamış" + "value" : "Düzenleyiciyi aç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa đăng nhập" + "value" : "Mở trình soạn thảo" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未登录" + "value" : "打开编辑器" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "未登入" + "value" : "開啟編輯器" } } } }, - "Not signed in to ChatGPT." : { + "Open in Editor" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "ChatGPT에 로그인되지 않았습니다." + "value" : "편집기에서 열기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "ChatGPT'ye giriş yapılmadı." + "value" : "Düzenleyicide Aç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa đăng nhập ChatGPT." + "value" : "Mở trong trình soạn thảo" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未登录 ChatGPT。" + "value" : "在编辑器中打开" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "尚未登入 ChatGPT。" + "value" : "在編輯器中開啟" } } } }, - "Not signed in to Claude. Run \"claude /login\" in Terminal, then try again." : { + "Open in Finder" : { + "comment" : "Button title for the \"Open in Finder\" option in the export success alert.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Claude에 로그인되지 않았습니다. 터미널에서 \"claude /login\"을 실행한 다음 다시 시도하십시오." + "value" : "Finder에서 열기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Claude'da oturum açılmamış. Terminal'de \"claude /login\" çalıştırıp tekrar deneyin." + "value" : "Finder'da Göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa đăng nhập Claude. Chạy \"claude /login\" trong Terminal rồi thử lại." + "value" : "Mở trong Finder" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "尚未登录 Claude。请在终端运行 \"claude /login\" 后重试。" + "value" : "在访达中打开" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "尚未登入 Claude。請在終端機執行 \"claude /login\" 後再試一次。" + "value" : "在 Finder 中打開" } } } }, - "Not signed in to Cursor. Sign in first." : { + "Open in New Tab" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Cursor에 로그인되지 않았습니다. 먼저 로그인하십시오." + "value" : "새 탭에서 열기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Cursor'a giriş yapılmadı. Önce giriş yapın." + "value" : "Yeni Sekmede Aç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa đăng nhập Cursor. Hãy đăng nhập trước." + "value" : "Mở trong tab mới" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未登录 Cursor。请先登录。" + "value" : "在新标签页中打开" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "尚未登入 Cursor。請先登入。" + "value" : "在新分頁中開啟" } } } }, - "Not signed in to GitHub Copilot" : { + "Open in New Window" : { + "comment" : "Text for a menu item that opens a connection in a new window.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "GitHub Copilot에 로그인되지 않음" + "value" : "새 윈도우에서 열기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "GitHub Copilot'a oturum açılmamış" + "value" : "Yeni Pencerede Aç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa đăng nhập GitHub Copilot" + "value" : "Mở trong cửa sổ mới" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未登录 GitHub Copilot" + "value" : "在新窗口中打开" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "未登入 GitHub Copilot" + "value" : "在新視窗中開啟" } } } }, - "Not signed in to xAI." : { + "Open in Query Editor" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "xAI에 로그인되지 않았습니다." + "value" : "쿼리 편집기에서 열기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "xAI'da oturum açılmamış." + "value" : "Sorgu Düzenleyicide Aç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa đăng nhập xAI." + "value" : "Mở trong trình soạn truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "尚未登录 xAI。" + "value" : "在查询编辑器中打开" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "尚未登入 xAI。" + "value" : "在查詢編輯器中開啟" } } } }, - "Not supported by the target" : { - - }, - "Not supported by this database" : { + "Open in Window" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 데이터베이스에서는 지원되지 않음" + "value" : "윈도우에서 열기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu veritabanı desteklemiyor" + "value" : "Pencerede Aç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cơ sở dữ liệu này không hỗ trợ" + "value" : "Mở trong cửa sổ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此数据库不支持" + "value" : "在窗口中打开" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此資料庫不支援" + "value" : "在視窗中開啟" } } } }, - "Not supported for this database." : { + "Open this query in a new tab and run it" : { + "comment" : "A description of the action to open a query in a new tab and run it.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 데이터베이스에서는 지원되지 않습니다." + "value" : "이 쿼리를 새 탭에서 열고 실행" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu veritabanında desteklenmiyor." + "value" : "Bu sorguyu yeni bir sekmede açıp çalıştır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không hỗ trợ cho cơ sở dữ liệu này." + "value" : "Mở truy vấn này trong tab mới và chạy" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此数据库不支持。" + "value" : "在新标签页中打开并运行此查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此資料庫不支援。" + "value" : "在新分頁中開啟並執行此查詢" } } } }, - "Not supported for this database. Use CASCADE instead." : { + "Open-source fork of MySQL" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 데이터베이스에서는 지원되지 않습니다. 대신 CASCADE를 사용하십시오." + "value" : "MySQL의 오픈 소스 포크" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu veritabanında desteklenmiyor. Bunun yerine CASCADE kullanın." + "value" : "MySQL'in açık kaynaklı çatalı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không hỗ trợ cho cơ sở dữ liệu này. Hãy dùng CASCADE thay thế." + "value" : "Bản fork mã nguồn mở của MySQL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此数据库不支持。请使用 CASCADE 代替。" + "value" : "MySQL 的开源分支" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此資料庫不支援。請改用 CASCADE。" + "value" : "MySQL 的開源分支" } } } }, - "Not supported for TRUNCATE with this database" : { + "Opening the connection" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 데이터베이스의 TRUNCATE에서는 지원되지 않음" + "value" : "연결 여는 중" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu veritabanında TRUNCATE için desteklenmiyor" + "value" : "Bağlantı açılıyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không hỗ trợ TRUNCATE với cơ sở dữ liệu này" + "value" : "Đang mở kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此数据库不支持 TRUNCATE" + "value" : "正在打开连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此資料庫不支援 TRUNCATE" + "value" : "正在開啟連線" } } } }, - "Not visible" : { + "Opening the tunnel" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "표시되지 않음" + "value" : "터널 여는 중" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Görünmüyor" + "value" : "Tünel açılıyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không hiển thị" + "value" : "Đang mở tunnel" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "不可见" + "value" : "正在打开隧道" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "不可見" + "value" : "正在開啟隧道" } } } }, - "Notes" : { - - }, - "Nothing got at least %1$lld%% slower than the period before. A query needs %2$lld runs in both periods, and has to have grown by at least %3$@." : { - "comment" : "Empty state for regressions: %1$lld is a percentage, %2$lld a run count, %3$@ a duration", + "Opening the tunnel through %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이전 기간보다 %1$lld%% 이상 느려진 항목이 없습니다. 쿼리는 두 기간 모두에서 %2$lld회 실행되어야 하며, 최소 %3$@만큼 증가해야 합니다." + "value" : "%@ 경유 터널 여는 중" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Hiçbir şey önceki döneme göre en az %1$lld%% yavaşlamadı. Bir sorgunun her iki dönemde de %2$lld çalışması ve en az %3$@ artmış olması gerekir." + "value" : "Tünel %@ üzerinden açılıyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có gì chậm đi ít nhất %1$lld%% so với kỳ trước. Một truy vấn cần %2$lld lần chạy ở cả hai kỳ và phải tăng thêm ít nhất %3$@." + "value" : "Đang mở tunnel qua %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有任何查询比上一时段慢了至少 %1$lld%%。一个查询需要在两个时段各运行 %2$lld 次,并且至少增加了 %3$@。" + "value" : "正在通过 %@ 打开隧道" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有任何查詢比上一時段慢了至少 %1$lld%%。一個查詢需要在兩個時段各執行 %2$lld 次,並且至少增加了 %3$@。" + "value" : "正在透過 %@ 開啟隧道" } } } }, - "Nothing in this script destroys data in %@." : { - - }, - "Nothing is running." : { - - }, - "Nothing is selected to apply." : { - - }, - "Nothing is written until Apply." : { - - }, - "Nothing to Show" : { - - }, - "Notifications" : { - - }, - "Notifications are turned off for TablePro in System Settings." : { - - }, - "Notify about" : { - - }, - "Notify when long-running work finishes" : { - - }, - "NOW()" : { - "extractionState" : "stale", + "Opening your browser to sign in…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "NOW()" + "value" : "로그인할 브라우저를 여는 중…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "NOW()" + "value" : "Giriş yapmak için tarayıcınız açılıyor…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "NOW()" + "value" : "Đang mở trình duyệt để đăng nhập…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "NOW()" + "value" : "正在打开浏览器以登录…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "NOW()" + "value" : "正在開啟瀏覽器以登入…" } } } }, - "Null" : { + "Opens database URLs from the terminal, such as a DDEV project database." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "NULL" + "value" : "터미널에서 DDEV 프로젝트 데이터베이스와 같은 데이터베이스 URL을 엽니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Null" + "value" : "Terminalden gelen veritabanı URL'lerini açar, örneğin bir DDEV proje veritabanı." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Null" + "value" : "Mở các URL cơ sở dữ liệu từ terminal, ví dụ cơ sở dữ liệu của dự án DDEV." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Null" + "value" : "打开来自终端的数据库 URL,例如 DDEV 项目的数据库。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Null" + "value" : "開啟來自終端機的資料庫 URL,例如 DDEV 專案的資料庫。" } } } }, - "NULL" : { + "Operation" : { + "comment" : "Label for the operation column in the query plan details view.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "NULL" + "value" : "작업" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "NULL" + "value" : "İşlem" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "NULL" + "value" : "Thao tác" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "NULL" + "value" : "操作" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "NULL" + "value" : "操作" } } } }, - "NULL — no referenced row" : { - "extractionState" : "stale", + "Operation Failed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "NULL — 참조된 행 없음" + "value" : "작업 실패" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "NULL — referans satır yok" + "value" : "İşlem Başarısız" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "NULL — không có dòng tham chiếu" + "value" : "Thao tác thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "NULL — 无引用行" + "value" : "操作失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "NULL,沒有參照的列" + "value" : "操作失敗" } } } }, - "NULL display cannot be empty" : { + "Operation cancelled by user" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "NULL 표시 값은 비워 둘 수 없습니다" + "value" : "사용자가 작업을 취소함" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "NULL görünümü boş olamaz" + "value" : "İşlem kullanıcı tarafından iptal edildi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiển thị NULL không được để trống" + "value" : "Thao tác đã bị người dùng hủy" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "NULL 显示不能为空" + "value" : "操作已被用户取消" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "NULL 顯示不能為空" + "value" : "使用者已取消操作" } } } }, - "NULL display contains invalid characters (newlines/tabs)" : { + "Operation not permitted" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "NULL 표시 값에 잘못된 문자(줄바꿈/탭)가 포함되어 있습니다" + "value" : "작업이 허용되지 않음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "NULL görünümü geçersiz karakterler içeriyor (satır sonları/sekmeler)" + "value" : "İşleme izin verilmiyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiển thị NULL chứa ký tự không hợp lệ (xuống dòng/tab)" + "value" : "Thao tác không được phép" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "NULL 显示包含无效字符(换行符/制表符)" + "value" : "操作不被允许" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "NULL 顯示包含無效字(換行符/定位字)" + "value" : "操作不被允許" } } } }, - "NULL display must be %d characters or less" : { + "Operator" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "NULL 표시 값은 %d자 이하여야 합니다" + "value" : "연산자" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "NULL gösterimi en fazla %d karakter olmalıdır" + "value" : "Operator" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiển thị NULL phải có %d ký tự trở xuống" + "value" : "Toán tử" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "NULL显示不能超过%d个字符" + "value" : "运算符" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "NULL 顯示不能超過 %d 個字" + "value" : "運算子" } } } }, - "NULL display must be %lld characters or less" : { - "extractionState" : "stale", + "Optimize" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "NULL 표시 값은 %lld자 이하여야 합니다" + "value" : "최적화" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "NULL görünümü en fazla %lld karakter olmalı" + "value" : "Optimize Et" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiển thị NULL phải có %lld ký tự trở xuống" + "value" : "Tối ưu hoá" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "NULL 显示不能超过 %lld 个字符" + "value" : "优化" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "NULL 顯示不能超過 %lld 個字" + "value" : "最佳化" } } } }, - "NULL display:" : { + "Optimize Query" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "NULL 표시:" + "value" : "쿼리 최적화" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "NULL görünümü:" + "value" : "Optimize Query" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiển thị NULL:" + "value" : "Tối ưu truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "NULL 显示:" + "value" : "优化查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "NULL 顯示:" + "value" : "最佳化查詢" } } } }, - "NULL only equals NULL" : { - - }, - "NULL Value" : { + "Optimize table (merge parts)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "NULL 값" + "value" : "테이블 최적화(파트 병합)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "NULL Değer" + "value" : "Tabloyu optimize et (parçaları birleştir)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giá trị NULL" + "value" : "Tối ưu hoá bảng (hợp nhất phần)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "NULL 值" + "value" : "优化表(合并分区)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "NULL 值" + "value" : "最佳化資料表(合併分割區)" } } } }, - "NULL, no referenced row" : { + "Optimize this SQL query for better performance:\n\n```sql\n%@\n```" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "NULL, 참조된 행 없음" + "value" : "더 나은 성능을 위해 다음 SQL 쿼리를 최적화하십시오:\n\n```sql\n%@\n```" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "NULL, başvurulan satır yok" + "value" : "Optimize this SQL query for better performance:\n\n```sql\n%@\n```" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "NULL, không có hàng được tham chiếu" + "value" : "Đề xuất tối ưu hóa cho câu truy vấn SQL sau:\n\n```sql\n%@\n```" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "NULL,没有被引用的行" + "value" : "优化以下 SQL 查询以提升性能:\n\n```sql\n%@\n```" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "NULL,沒有被參照的列" + "value" : "最佳化以下 SQL 查詢以提升效能:\n\n```sql\n%@\n```" } } } }, - "Nullable" : { - "extractionState" : "stale", + "Optimize with AI" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "NULL 허용" + "value" : "AI로 최적화" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Nullable" + "value" : "AI ile İyileştir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cho phép NULL" + "value" : "Tối ưu với AI" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "允许 NULL" + "value" : "AI 优化" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "允許 NULL" + "value" : "以 AI 最佳化" } } } }, - "Number" : { + "Option as Meta key" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "숫자" + "value" : "Option 키를 Meta 키로 사용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sayı" + "value" : "Option tuşunu Meta olarak kullan" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Số" + "value" : "Dùng Option làm phím Meta" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "数字" + "value" : "将 Option 用作 Meta 键" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "數字" + "value" : "將 Option 作為 Meta 鍵" } } } }, - "Number of documents per insertMany statement. Higher values create fewer statements." : { - "extractionState" : "stale", + "Optional" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "insertMany 명령문당 문서 수입니다. 값이 클수록 생성되는 명령문 수가 줄어듭니다." + "value" : "선택 사항" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Number of documents per insertMany statement. Higher values create fewer statements." + "value" : "İsteğe bağlı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Số lượng document cho mỗi câu lệnh insertMany. Giá trị cao hơn tạo ít câu lệnh hơn." + "value" : "Tùy chọn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "每个 insertMany 语句的文档数量。值越大生成的语句越少。" + "value" : "可选" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "每個 insertMany 陳述式的文件數量。值越大產生的陳述式越少。" + "value" : "選用" } } } }, - "Number of rows" : { - - }, - "Number of rows returned" : { - - }, - "Number of tables" : { - - }, - "Numeric tolerance" : { - - }, - "OAuth Client ID" : { + "Optional description" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "OAuth 클라이언트 ID" + "value" : "설명(선택 사항)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "OAuth Client ID" + "value" : "Optional description" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "OAuth Client ID" + "value" : "Mô tả tùy chọn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "OAuth Client ID" + "value" : "可选描述" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "OAuth Client ID" + "value" : "選填描述" } } } }, - "OAuth Client Secret" : { + "Optional one-line description" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "OAuth 클라이언트 시크릿" + "value" : "한 줄 설명(선택 사항)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "OAuth Client Secret" + "value" : "İsteğe bağlı tek satırlık açıklama" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "OAuth Client Secret" + "value" : "Mô tả một dòng (tùy chọn)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "OAuth Client Secret" + "value" : "可选的单行描述" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "OAuth Client Secret" + "value" : "選用的單行描述" } } } }, - "OAuth Token" : { + "Optional. A key from the Cursor dashboard is used instead of signing in." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "OAuth 토큰" + "value" : "선택 사항입니다. 로그인하는 대신 Cursor 대시보드에서 발급한 키를 사용합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "OAuth Belirteci" + "value" : "İsteğe bağlı. Giriş yapmak yerine Cursor panosundan bir anahtar kullanılır." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Token OAuth" + "value" : "Tùy chọn. Một khóa từ bảng điều khiển Cursor được dùng thay cho đăng nhập." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "OAuth 令牌" + "value" : "可选。使用来自 Cursor 仪表板的密钥,而不是登录。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "OAuth 權杖" + "value" : "選用。使用來自 Cursor 儀表板的金鑰,而非登入。" } } } }, - "Object" : { + "Optional. Set this to reach a database that only listens on a Unix socket." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "객체" + "value" : "선택 사항입니다. Unix 소켓에서만 수신 대기하는 데이터베이스에 연결하려면 설정하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Nesne" + "value" : "İsteğe bağlı. Yalnızca Unix soketi dinleyen bir veritabanına erişmek için ayarlayın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đối tượng" + "value" : "Tùy chọn. Đặt giá trị này để truy cập cơ sở dữ liệu chỉ lắng nghe trên Unix socket." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "对象" + "value" : "可选。当数据库只监听 Unix socket 时设置此项。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "物件" + "value" : "選填。當資料庫只監聽 Unix socket 時設定此項。" } } } }, - "Object Type" : { - - }, - "Object type reported by the engine" : { - - }, - "Object type, for a table match" : { - - }, - "Objects that depend on them will be dropped too." : { - "comment" : "Message in a confirmation alert when the user has selected to drop all objects that depend on the dropped objects.", - "isCommentAutoGenerated" : true, + "Options" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "종속된 객체도 함께 삭제됩니다." + "value" : "옵션" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Onlara bağımlı nesneler de silinecek." + "value" : "Seçenekler" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Các đối tượng phụ thuộc vào chúng cũng sẽ bị xoá." + "value" : "Tùy chọn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "依赖它们的对象也会被删除。" + "value" : "选项" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "依賴它們的物件也會被刪除。" + "value" : "選項" } } } }, - "Objects to Compare" : { - - }, - "Off" : { + "Oracle" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "끔" + "value" : "Oracle" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kapalı" + "value" : "Oracle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tắt" + "value" : "Oracle" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "关" + "value" : "Oracle" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "關閉" + "value" : "Oracle" } } } }, - "Off by default. Turn it on to encrypt saved passwords with a passphrase." : { + "OracleNIO has no TLS fallback. Preferred connects in plain TCP. Use Required for TCPS to Oracle Autonomous Database." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기본적으로 꺼져 있습니다. 암호 구문으로 저장된 암호를 암호화하려면 켜십시오." + "value" : "OracleNIO에는 TLS 폴백이 없습니다. 선호는 평문 TCP로 연결합니다. Oracle Autonomous Database에 TCPS로 연결하려면 필수를 사용하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Varsayılan olarak kapalı. Kaydedilen parolaları bir parola cümlesiyle şifrelemek için açın." + "value" : "OracleNIO'da TLS geri dönüşü yoktur. Tercih Edilen düz TCP ile bağlanır. Oracle Autonomous Database'e TCPS bağlantısı için Zorunlu kullanın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mặc định tắt. Bật lên để mã hóa các mật khẩu đã lưu bằng một cụm mật khẩu." + "value" : "OracleNIO không có cơ chế dự phòng TLS. Preferred kết nối bằng TCP thường. Dùng Required cho TCPS tới Oracle Autonomous Database." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "默认关闭。开启后会用一个口令加密已保存的密码。" + "value" : "OracleNIO 没有 TLS 回退。“首选”将使用纯 TCP 连接。通过 TCPS 连接 Oracle Autonomous Database 时请使用“必需”。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "預設關閉。開啟後會用一組通關密語加密已儲存的密碼。" + "value" : "OracleNIO 沒有 TLS 回退。「首選」將使用純 TCP 連線。透過 TCPS 連線 Oracle Autonomous Database 時請使用「必要」。" } } } }, - "Offset" : { - "extractionState" : "stale", + "Orange" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "오프셋" + "value" : "주황색" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Offset" + "value" : "Turuncu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Vị trí bắt đầu" + "value" : "Cam" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "偏移量" + "value" : "橙色" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "偏移量" + "value" : "橘色" } } } }, - "OK" : { + "Other" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "확인" + "value" : "기타" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tamam" + "value" : "Other" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "OK" + "value" : "Khác" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "OK" + "value" : "其他" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "好" + "value" : "其他" } } } }, - "Ollama is running but has no models. Run \"ollama pull \" to download one." : { + "Other Device" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Ollama가 실행 중이지만 모델이 없습니다. 모델을 다운로드하려면 \"ollama pull \"을 실행하십시오." + "value" : "기타 기기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ollama çalışıyor ancak modeli yok. Bir model indirmek için \"ollama pull \" komutunu çalıştırın." + "value" : "Other Device" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ollama đang chạy nhưng không có mô hình nào. Chạy \"ollama pull \" để tải về." + "value" : "Thiết bị khác" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Ollama 正在运行但没有模型。运行 \"ollama pull \" 下载一个。" + "value" : "其他设备" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Ollama 正在執行但沒有模型。請執行 \"ollama pull \" 下載一個。" + "value" : "其他裝置" } } } }, - "on %@" : { - "comment" : "A sentence fragment describing the table on which the operation is performed.", - "isCommentAutoGenerated" : true, + "Other…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@에서" + "value" : "기타…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ üzerinde" + "value" : "Diğer…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "trên %@" + "value" : "Khác…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在 %@ 上" + "value" : "其他…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在 %@ 上" + "value" : "其他…" } } } }, - "On Delete" : { + "Outcome" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "삭제 시" + "value" : "결과" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Silindiğinde" + "value" : "Sonuç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khi xóa" + "value" : "Kết quả" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "删除时" + "value" : "结果" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "刪除時" + "value" : "結果" } } } }, - "ON DELETE action" : { - - }, - "On Disk" : { + "Outcome: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "디스크 버전" + "value" : "결과: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Diskte" + "value" : "Sonuç: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trên đĩa" + "value" : "Kết quả: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "磁盘上" + "value" : "结果:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在磁碟上" + "value" : "結果:%@" } } } }, - "On error" : { - - }, - "On Quit" : { + "Outdent" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "종료 시" + "value" : "내어쓰기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Çıkışta" + "value" : "Girintiyi Azalt" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khi thoát" + "value" : "Giảm thụt lề" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "退出时" + "value" : "减少缩进" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "結束時" + "value" : "減少縮排" } } } }, - "On Update" : { + "Output truncated for display" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "업데이트 시" + "value" : "화면에 표시하기 위해 출력이 잘렸습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Güncellendiğinde" + "value" : "Çıktı görüntüleme için kısaltıldı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khi cập nhật" + "value" : "Kết quả đầu ra bị cắt bớt để hiển thị" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "更新时" + "value" : "输出已截断显示" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "更新時" + "value" : "輸出已截斷顯示" } } } }, - "ON UPDATE action" : { - - }, - "One entry per query or table" : { - - }, - "One result per statement" : { - - }, - "One SQL or NoSQL statement" : { - - }, - "Only affects new saves. Re-save a password to update its sync." : { + "Over an SSH tunnel, TablePro connects directly to the first host. Replica set failover is not available." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새로 저장하는 항목에만 적용됩니다. 동기화 설정을 업데이트하려면 암호를 다시 저장하십시오." + "value" : "SSH 터널을 사용할 때 TablePro는 첫 번째 호스트에 직접 연결합니다. 복제본 세트 장애 조치는 사용할 수 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yalnızca yeni kayıtları etkiler. Bir parolanın eşzamanlamasını güncellemek için parolayı yeniden kaydedin." + "value" : "SSH tüneli üzerinden TablePro doğrudan ilk sunucuya bağlanır. Replica set yük devretme kullanılamaz." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chỉ áp dụng cho lần lưu mới. Lưu lại mật khẩu để cập nhật đồng bộ." + "value" : "Qua đường hầm SSH, TablePro kết nối trực tiếp tới máy chủ đầu tiên. Không hỗ trợ chuyển đổi dự phòng replica set." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "仅影响新保存的内容。重新保存密码以更新其同步状态。" + "value" : "通过 SSH 隧道时,TablePro 直接连接到第一个主机。无法使用副本集故障转移。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "僅影響新儲存的內容。重新儲存密碼以更新其同步狀態。" - } - } - } - }, - "Only after" : { - - }, - "Only in Source" : { - - }, - "Only in Target" : { - - }, - "Only the first %1$lld nodes were loaded, so this value was not searched in full. Switch to %2$@ to search all of it." : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "처음 %1$lld개의 노드만 불러와 이 값을 전부 검색하지 못했습니다. 모든 내용을 검색하려면 %2$@ 옵션으로 전환하십시오." - } - } - } - }, - "Only the first %1$lld nodes were loaded. Switch to %2$@ to see the whole value." : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "처음 %1$lld개의 노드만 불러왔습니다. 전체 값을 보려면 %2$@ 옵션으로 전환하십시오." + "value" : "透過 SSH 通道時,TablePro 會直接連線到第一個主機。無法使用複本集容錯移轉。" } } } }, - "Open" : { + "Override auto-detected CLI paths per database type." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열기" + "value" : "데이터베이스 유형별로 자동 감지된 CLI 경로를 재정의합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Open" + "value" : "Veritabanı türüne göre otomatik algılanan CLI yollarını geçersiz kılın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở" + "value" : "Ghi đè đường dẫn CLI tự phát hiện cho từng loại cơ sở dữ liệu." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "打开" + "value" : "按数据库类型覆盖自动检测的 CLI 路径。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開啟" + "value" : "依資料庫型別覆寫自動偵測的 CLI 路徑。" } } } }, - "Open %@" : { + "PHP Serialized" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 열기" + "value" : "PHP 직렬화" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ Aç" + "value" : "PHP Serileştirilmiş" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở %@" + "value" : "PHP Serialized" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "打开 %@" + "value" : "PHP 序列化" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開啟 %@" + "value" : "PHP 序列化" } } } }, - "Open %@ Editor" : { + "PHP Viewer" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 편집기 열기" + "value" : "PHP 뷰어" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ Düzenleyicisini Aç" + "value" : "PHP Görüntüleyici" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở trình chỉnh sửa %@" + "value" : "Trình xem PHP" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "打开 %@ 编辑器" + "value" : "PHP 查看器" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開啟 %@ 編輯器" + "value" : "PHP 檢視器" } } } }, - "Open %@ in New Tab" : { + "PHP — %@" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 탭에서 %@ 열기" + "value" : "PHP — %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ Öğesini Yeni Sekmede Aç" + "value" : "PHP — %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở %@ trong tab mới" + "value" : "PHP — %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在新标签页中打开%@" + "value" : "PHP — %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在新分頁中開啟 %@" + "value" : "PHP — %@" } } } }, - "Open %@..." : { - "extractionState" : "stale", + "PHP: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 열기..." + "value" : "PHP: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ Aç..." + "value" : "PHP: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở %@..." + "value" : "PHP: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "打开 %@..." + "value" : "PHP:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開啟 %@..." + "value" : "PHP:%@" } } } }, - "Open a connection to apply" : { + "PID" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "적용할 연결 열기" + "value" : "PID" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Uygulamak için bir bağlantı açın" + "value" : "PID" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở một kết nối để áp dụng" + "value" : "PID" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "打开一个连接后生效" + "value" : "PID" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開啟一個連線後才會套用" + "value" : "PID" } } } }, - "Open a connection to insert" : { + "PRO" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "삽입할 연결 열기" + "value" : "PRO" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklemek için bir bağlantı açın" + "value" : "PRO" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở một kết nối để chèn" + "value" : "PRO" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "打开一个连接以插入" + "value" : "PRO" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開啟一個連線以插入" + "value" : "PRO" } } } }, - "Open a different file from the Welcome window." : { + "Page" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "시작 윈도우에서 다른 파일을 여십시오." + "value" : "페이지" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Hoş Geldiniz penceresinden farklı bir dosya açın." + "value" : "Sayfa" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở tệp khác từ cửa sổ Chào mừng." + "value" : "Trang" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "从欢迎窗口打开其他文件。" + "value" : "页" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "從歡迎視窗開啟其他檔案。" + "value" : "頁" } } } }, - "Open a session for a saved connection. Returns only after the driver is connected." : { - - }, - "Open a table in TablePro and bring it forward. Returns once the tab exists, with the same tab id and window id that list_recent_tabs reports. Connects the connection if it is not open yet." : { - - }, - "Open a table tab in TablePro for the given connection." : { - "extractionState" : "stale", + "Page %d" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "지정된 연결의 테이블 탭을 TablePro에서 엽니다." + "value" : "%d페이지" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Verilen bağlantı için TablePro'da bir tablo sekmesi açar." + "value" : "Sayfa %d" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở một tab bảng trong TablePro cho kết nối đã cho." + "value" : "Trang %d" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在 TablePro 中为指定连接打开一个表标签页。" + "value" : "第 %d 页" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在 TablePro 中為指定的連線開啟資料表分頁。" + "value" : "第 %d 頁" } } } }, - "Open a TablePro window for a saved connection (focuses if already open)." : { - "extractionState" : "stale", + "Page %d of %d" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Page %1$d of %2$d" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "저장된 연결의 TablePro 윈도우를 엽니다. 이미 열려 있으면 해당 윈도우로 전환합니다." + "value" : "페이지 %1$d / %2$d" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kayıtlı bir bağlantı için TablePro penceresi açar (zaten açıksa öne getirir)." + "value" : "Sayfa %1$d / %2$d" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở cửa sổ TablePro cho một kết nối đã lưu (chuyển tiêu điểm nếu đã mở)." + "value" : "Trang %1$d / %2$d" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "为已保存的连接打开 TablePro 窗口(如已打开则切换到该窗口)。" + "value" : "第 %1$d 页,共 %2$d 页" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "為已儲存的連線開啟 TablePro 視窗(如已開啟則切換到該視窗)。" + "value" : "第 %1$d 頁,共 %2$d 頁" } } } }, - "Open AI settings to change the tool call limit." : { + "Page %lld of %lld" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "도구 호출 한도를 변경하려면 AI 설정을 여십시오." + "value" : "페이지 %1$lld / %2$lld" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Araç çağrısı limitini değiştirmek için AI ayarlarını açın." + "value" : "Sayfa %1$lld / %2$lld" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở cài đặt AI để thay đổi giới hạn gọi công cụ." + "value" : "Trang %1$lld / %2$lld" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "打开 AI 设置以更改工具调用上限。" + "value" : "第 %1$lld 页,共 %2$lld 页" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開啟 AI 設定以變更工具呼叫上限。" + "value" : "第 %1$lld 頁,共 %2$lld 頁" } } } }, - "Open Claude Desktop, go to Settings > Developer" : { + "Page Count" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Claude Desktop을 열고 설정 > 개발자로 이동하십시오" + "value" : "페이지 수" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Claude Desktop'ı açın, Settings > Developer'a gidin" + "value" : "Sayfa Sayısı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở Claude Desktop, vào Settings > Developer" + "value" : "Số trang" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "打开 Claude Desktop,进入 Settings > Developer" + "value" : "页面数" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開啟 Claude Desktop,前往 Settings > Developer" + "value" : "頁數" } } } }, - "Open Connection" : { + "Page Size" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 열기" + "value" : "페이지 크기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantıyı Aç" + "value" : "Sayfa Boyutu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở kết nối" + "value" : "Kích thước trang" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "打开连接" + "value" : "页面大小" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開啟連線" + "value" : "頁面大小" } } } }, - "Open Connection Window" : { + "Page number" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 윈도우 열기" + "value" : "페이지 번호" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı Penceresini Aç" + "value" : "Sayfa numarası" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở cửa sổ kết nối" + "value" : "Số trang" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "打开连接窗口" + "value" : "页码" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開啟連線視窗" + "value" : "頁碼" } } } }, - "Open Connections" : { - "comment" : "Accessibility label for the open connections list.", - "isCommentAutoGenerated" : true, + "Page size must be between %@ and %@" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Page size must be between %1$@ and %2$@" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 목록 열기" + "value" : "페이지 크기는 %1$@에서 %2$@ 사이여야 합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Açık Bağlantılar" + "value" : "Page size must be arasında %@ and %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối đang mở" + "value" : "Kích thước trang phải nằm trong khoảng %1$@ đến %2$@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已打开的连接" + "value" : "页面大小必须在 %@ 和 %@ 之间" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已開啟的連線" + "value" : "頁面大小必須介於 %1$@ 與 %2$@ 之間" } } } }, - "Open containing folder" : { - "extractionState" : "stale", + "Pagination" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "포함된 폴더 열기" + "value" : "페이지 매김" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Open containing folder" + "value" : "Pagination" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở thư mục chứa" + "value" : "Phân trang" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "打开所在文件夹" + "value" : "分页" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開啟所在資料夾" + "value" : "分頁" } } } }, - "Open Cursor, go to Settings > MCP" : { + "Pagination Settings" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Cursor를 열고 설정 > MCP로 이동하십시오" + "value" : "페이지 매김 설정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Cursor'ı açın, Settings > MCP'ye gidin" + "value" : "Pagination Settings" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở Cursor, vào Settings > MCP" + "value" : "Cài đặt phân trang" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "打开 Cursor,进入 Settings > MCP" + "value" : "分页设置" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開啟 Cursor,前往 Settings > MCP" + "value" : "分頁設定" } } } }, - "Open database" : { - "extractionState" : "stale", + "Pairing Failed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 열기" + "value" : "페어링 실패" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Open database" + "value" : "Eşleştirme Başarısız" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở cơ sở dữ liệu" + "value" : "Ghép nối thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "打开数据库" + "value" : "配对失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開啟資料庫" + "value" : "配對失敗" } } } }, - "Open Database" : { + "Panel State" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 열기" + "value" : "패널 상태" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı Aç" + "value" : "Panel Durumu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở cơ sở dữ liệu" + "value" : "Trạng thái bảng điều khiển" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "打开数据库" + "value" : "面板状态" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開啟資料庫" + "value" : "面板狀態" } } } }, - "Open Database (⌘K)" : { - "extractionState" : "stale", + "Parameters" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 열기(⌘K)" + "value" : "매개변수" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Open Database (⌘K)" + "value" : "Parametreler" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở cơ sở dữ liệu (⌘K)" + "value" : "Tham số" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "打开数据库 (⌘K)" + "value" : "参数" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開啟資料庫 (⌘K)" + "value" : "參數" } } } }, - "Open Database…" : { + "Parent Group" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 열기…" + "value" : "상위 그룹" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı Aç…" + "value" : "Üst Grup" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở cơ sở dữ liệu…" + "value" : "Nhóm cha" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "打开数据库…" + "value" : "父分组" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開啟資料庫…" + "value" : "上層群組" } } } }, - "Open editor" : { - "extractionState" : "stale", + "Part Mutations" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "편집기 열기" + "value" : "파트 뮤테이션" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Düzenleyiciyi aç" + "value" : "Parça Mutasyonları" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở trình soạn thảo" + "value" : "Thay đổi phần" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "打开编辑器" + "value" : "分区变更" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開啟編輯器" + "value" : "分割區異動" } } } }, - "Open External Database Connection?" : { + "Partial files may remain on disk." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "외부 데이터베이스 연결을 여시겠습니까?" + "value" : "일부 파일이 디스크에 남아 있을 수 있습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Harici Veritabanı Bağlantısı Açılsın mı?" + "value" : "Diskte kısmi dosyalar kalabilir." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở kết nối cơ sở dữ liệu bên ngoài?" + "value" : "Các tệp dở dang có thể vẫn còn trên ổ đĩa." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "打开外部数据库连接?" + "value" : "部分文件可能仍留在磁盘上。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開啟外部資料庫連線?" + "value" : "磁碟上可能殘留部分檔案。" } } } }, - "Open File" : { + "Partition" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "파일 열기" + "value" : "파티션" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dosya Aç" + "value" : "Partition" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở tệp" + "value" : "Phân vùng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "打开文件" + "value" : "分区" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開啟檔案" + "value" : "分割區" } } } }, - "Open File…" : { + "Partitioned Table" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "파일 열기…" + "value" : "파티션 테이블" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dosya Aç…" + "value" : "Bölümlenmiş Tablo" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở tệp…" + "value" : "Bảng phân vùng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "打开文件…" + "value" : "分区表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開啟檔案…" + "value" : "分割資料表" } } } }, - "Open in Editor" : { + "Partly granted" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "편집기에서 열기" + "value" : "일부 권한이 부여됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Düzenleyicide Aç" + "value" : "Kısmen verildi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở trong trình soạn thảo" + "value" : "Cấp một phần" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在编辑器中打开" + "value" : "部分授予" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在編輯器中開啟" + "value" : "部分授予" } } } }, - "Open in Finder" : { - "comment" : "Button title for the \"Open in Finder\" option in the export success alert.", - "isCommentAutoGenerated" : true, + "Passphrase" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Finder에서 열기" + "value" : "암호 구문" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Finder'da Göster" + "value" : "Passphrase" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở trong Finder" + "value" : "Cụm mật khẩu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在访达中打开" + "value" : "密码短语" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在 Finder 中打開" + "value" : "通關密語" } } } }, - "Open in New Tab" : { + "Passphrase (8+ characters)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 탭에서 열기" + "value" : "암호 구문(8자 이상)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni Sekmede Aç" + "value" : "Parola (8+ karakter)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở trong tab mới" + "value" : "Cụm mật khẩu (8+ ký tự)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在新标签页中打开" + "value" : "密码短语(8 个以上字符)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在新分頁中開啟" + "value" : "通關密語(8 個以上字)" } } } }, - "Open in New Window" : { - "comment" : "Text for a menu item that opens a connection in a new window.", - "isCommentAutoGenerated" : true, + "Passphrases do not match" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 윈도우에서 열기" + "value" : "암호 구문이 일치하지 않음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni Pencerede Aç" + "value" : "Parolalar eşleşmiyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở trong cửa sổ mới" + "value" : "Cụm mật khẩu không khớp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在新窗口中打开" + "value" : "密码短语不匹配" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在新視窗中開啟" + "value" : "通關密語不相符" } } } }, - "Open in Query Editor" : { + "Password" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 편집기에서 열기" + "value" : "암호" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgu Düzenleyicide Aç" + "value" : "Parola" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở trong trình soạn truy vấn" + "value" : "Mật khẩu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在查询编辑器中打开" + "value" : "密码" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在查詢編輯器中開啟" + "value" : "密碼" } } } }, - "Open in Window" : { + "Password Required" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "윈도우에서 열기" + "value" : "암호 필요" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Pencerede Aç" + "value" : "Şifre Gerekli" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở trong cửa sổ" + "value" : "Yêu cầu mật khẩu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在窗口中打开" + "value" : "需要密码" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在視窗中開啟" + "value" : "需要密碼" } } } }, - "Open Issue Tracker" : { + "Password command failed (exit %d): %@" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Password command failed (exit %1$d): %2$@" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이슈 트래커 열기" + "value" : "암호 명령 실패(종료 코드 %1$d): %2$@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorun İzleyiciyi Aç" + "value" : "Parola komutu başarısız oldu (çıkış %1$d): %2$@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở Issue Tracker" + "value" : "Lệnh mật khẩu thất bại (mã thoát %1$d): %2$@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "打开问题跟踪器" + "value" : "密码命令失败(退出码 %1$d):%2$@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開啟問題追蹤器" + "value" : "密碼命令失敗(退出碼 %1$d):%2$@" } } } }, - "Open JSON Viewer" : { - "extractionState" : "stale", + "Password command failed with exit code %d" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "JSON 뷰어 열기" + "value" : "암호 명령 실패(종료 코드 %d)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "JSON Görüntüleyiciyi Aç" + "value" : "Parola komutu %d çıkış koduyla başarısız oldu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở trình xem JSON" + "value" : "Lệnh mật khẩu thất bại với mã thoát %d" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "打开 JSON 查看器" + "value" : "密码命令失败,退出码 %d" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開啟 JSON 檢視器" + "value" : "密碼指令失敗,結束代碼 %d" } } } }, - "Open MQL Editor" : { - "extractionState" : "stale", + "Password command produced too much output" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "MQL 편집기 열기" + "value" : "암호 명령의 출력이 너무 많습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Open MQL Editor" + "value" : "Parola komutu çok fazla çıktı üretti" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở trình soạn MQL" + "value" : "Lệnh mật khẩu tạo ra quá nhiều dữ liệu đầu ra" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "打开 MQL 编辑器" + "value" : "密码命令产生的输出过多" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開啟 MQL 編輯器" + "value" : "密碼指令產生的輸出過多" } } } }, - "Open or focus a TablePro window for a saved connection. Returns once the window has a tab, with the window id that list_recent_tabs reports." : { - - }, - "Open Plugin Settings" : { + "Password command timed out after 30 seconds" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플러그인 설정 열기" + "value" : "암호 명령이 30초 후 시간 초과로 종료되었습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklenti Ayarlarını Aç" + "value" : "Parola komutu 30 saniye sonra zaman aşımına uğradı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở cài đặt plugin" + "value" : "Lệnh mật khẩu hết thời gian chờ sau 30 giây" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "打开插件设置" + "value" : "密码命令在 30 秒后超时" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開啟外掛設定" + "value" : "密碼指令在 30 秒後逾時" } } } }, - "Open Project Folder" : { + "Password file not found: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "프로젝트 폴더 열기" + "value" : "암호 파일을 찾을 수 없음: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Proje Klasörünü Aç" + "value" : "Parola dosyası bulunamadı: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở thư mục dự án" + "value" : "Không tìm thấy tệp mật khẩu: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "打开项目文件夹" + "value" : "未找到密码文件:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開啟專案資料夾" + "value" : "找不到密碼檔案:%@" } } } }, - "Open Project Folder…" : { + "Password found" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "프로젝트 폴더 열기…" + "value" : "암호 찾음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Proje Klasörünü Aç…" + "value" : "Parola bulundu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở thư mục dự án…" + "value" : "Đã tìm thấy mật khẩu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "打开项目文件夹…" + "value" : "已找到密码" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開啟專案資料夾…" + "value" : "已找到密碼" } } } }, - "Open Query" : { + "Password is sent via keyboard-interactive challenge-response." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 열기" + "value" : "암호는 키보드 대화형 챌린지-응답을 통해 전송됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgu Aç" + "value" : "Parola, keyboard-interactive soru-cevap yöntemiyle gönderilir." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở truy vấn" + "value" : "Mật khẩu được gửi qua keyboard-interactive challenge-response." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "打开查询" + "value" : "密码通过 keyboard-interactive 质询-响应方式发送。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開啟查詢" + "value" : "密碼透過 keyboard-interactive 質詢-回應方式傳送。" } } } }, - "Open Query from Link" : { + "Password:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "링크에서 쿼리 열기" + "value" : "암호:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Linkten Sorgu Aç" + "value" : "Parola:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở truy vấn từ liên kết" + "value" : "Mật khẩu:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "从链接打开查询" + "value" : "密码:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "從連結開啟查詢" + "value" : "密碼:" } } } }, - "Open Quickly" : { + "Passwords will be encrypted with the passphrase you provide." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "빠르게 열기" + "value" : "암호는 입력한 암호 구문으로 암호화됩니다." } }, "tr" : { "stringUnit" : { - "state" : "needs_review", - "value" : "Hızlı Aç" + "state" : "translated", + "value" : "Parolalar, sağladığınız parola ile şifrelenecektir." } }, "vi" : { "stringUnit" : { - "state" : "needs_review", - "value" : "Mở nhanh" + "state" : "translated", + "value" : "Mật khẩu sẽ được mã hóa bằng cụm mật khẩu bạn cung cấp." } }, "zh-Hans" : { "stringUnit" : { - "state" : "needs_review", - "value" : "快速打开" + "state" : "translated", + "value" : "密码将使用您提供的密码短语进行加密。" } }, "zh-Hant" : { "stringUnit" : { - "state" : "needs_review", - "value" : "快速打開" + "state" : "translated", + "value" : "密碼將使用你提供的通關密語加密。" } } } }, - "Open Quickly…" : { + "Passwords:" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Passwords:" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "빠르게 열기…" + "value" : "암호:" } }, "tr" : { "stringUnit" : { - "state" : "needs_review", - "value" : "Hızlı Aç…" + "state" : "translated", + "value" : "Parolalar:" } }, "vi" : { "stringUnit" : { - "state" : "needs_review", - "value" : "Mở nhanh…" + "state" : "translated", + "value" : "Mật khẩu:" } }, "zh-Hans" : { "stringUnit" : { - "state" : "needs_review", - "value" : "快速打开…" + "state" : "translated", + "value" : "密码:" } }, "zh-Hant" : { "stringUnit" : { - "state" : "needs_review", - "value" : "快速打開…" + "state" : "translated", + "value" : "密碼:" } } } }, - "Open Redis CLI" : { - "extractionState" : "stale", + "Paste" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Redis CLI 열기" + "value" : "붙여넣기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Open Redis CLI" + "value" : "Yapıştır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở Redis CLI" + "value" : "Dán" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "打开 Redis CLI" + "value" : "粘贴" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開啟 Redis CLI" + "value" : "貼上" } } } }, - "Open Sample Database" : { + "Paste Cells" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "샘플 데이터베이스 열기" + "value" : "셀 붙여넣기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Örnek Veritabanını Aç" + "value" : "Hücreleri Yapıştır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở cơ sở dữ liệu mẫu" + "value" : "Dán ô" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "打开示例数据库" + "value" : "粘贴单元格" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開啟範例資料庫" + "value" : "貼上儲存格" } } } }, - "Open Schema" : { + "Paste a connection URL to auto-fill the form fields." : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "스키마 열기" + "value" : "연결 URL을 붙여넣으면 양식 필드가 자동으로 채워집니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Open Schema" + "value" : "Paste a connection URL to auto-fill the form fields." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở Schema" + "value" : "Dán URL kết nối để tự động điền các trường trong biểu mẫu." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "打开 Schema" + "value" : "粘贴连接 URL 以自动填充表单字段。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開啟綱要" - } - } - } - }, - "Open Schema…" : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "스키마 열기…" + "value" : "貼上連線 URL 以自動填入表單欄位。" } } } }, - "Open Source Libraries" : { - - }, - "Open SQL Editor" : { - "extractionState" : "stale", + "Paste a connection URL to detect type and pre-fill fields" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SQL 편집기 열기" + "value" : "연결 URL을 붙여넣으면 유형을 감지하여 필드를 미리 채웁니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Open SQL Editor" + "value" : "Türü algılamak ve alanları önceden doldurmak için bir bağlantı URL'si yapıştırın" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở trình soạn SQL" + "value" : "Dán URL kết nối để nhận diện loại và điền sẵn các trường" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "打开 SQL 编辑器" + "value" : "粘贴连接 URL 以检测类型并预填字段" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開啟 SQL 編輯器" + "value" : "貼上連線 URL 以偵測類型並預先填入欄位" } } } }, - "Open Structure" : { + "Paste a connection URL. We'll detect the database type and pre-fill the form." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "구조 열기" + "value" : "연결 URL을 붙여넣으십시오. 데이터베이스 유형을 감지하여 양식을 미리 채웁니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yapıyı Aç" + "value" : "Bir bağlantı URL'si yapıştırın. Veritabanı türünü algılayıp formu önceden dolduracağız." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở cấu trúc" + "value" : "Dán URL kết nối. Ứng dụng sẽ nhận diện loại cơ sở dữ liệu và điền sẵn biểu mẫu." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "打开结构" + "value" : "粘贴连接 URL,将自动检测数据库类型并预填表单。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開啟結構" + "value" : "貼上連線 URL,將自動偵測資料庫類型並預先填入表單。" } } } }, - "Open System Settings" : { - - }, - "Open Table" : { - "comment" : "A context menu option to open a table in the main view.", - "isCommentAutoGenerated" : true, + "Paste the JSON below and save" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 열기" + "value" : "아래 JSON을 붙여넣고 저장하십시오" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tabloyu Aç" + "value" : "Aşağıdaki JSON'u yapıştırın ve kaydedin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở bảng" + "value" : "Dán JSON dưới đây và lưu lại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "打开表" + "value" : "粘贴下方 JSON 并保存" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開啟資料表" + "value" : "在下方貼上 JSON 並儲存" } } } }, - "Open Table Tab" : { + "Paste your CREATE TABLE statement below:" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 탭 열기" + "value" : "아래에 CREATE TABLE 문을 붙여넣으십시오:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tablo Sekmesini Aç" + "value" : "Paste your CREATE TABLE statement below:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở tab bảng" + "value" : "Dán câu lệnh CREATE TABLE bên dưới:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "打开表标签页" + "value" : "在下方粘贴 CREATE TABLE 语句:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開啟資料表分頁" + "value" : "在下方貼上你的 CREATE TABLE 陳述式:" } } } }, - "Open tabs, ordered by connection then title" : { - - }, - "Open Terminal" : { - "extractionState" : "stale", + "Path" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "터미널 열기" + "value" : "경로" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Terminali Aç" + "value" : "Yol" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở Terminal" + "value" : "Đường dẫn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "打开终端" + "value" : "路径" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開啟終端機" + "value" : "路徑" } } } }, - "Open this query in a new tab and run it" : { - "comment" : "A description of the action to open a query in a new tab and run it.", - "isCommentAutoGenerated" : true, + "Pause" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 쿼리를 새 탭에서 열고 실행" + "value" : "일시 정지" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu sorguyu yeni bir sekmede açıp çalıştır" + "value" : "Duraklat" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở truy vấn này trong tab mới và chạy" + "value" : "Tạm dừng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在新标签页中打开并运行此查询" + "value" : "暂停" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在新分頁中開啟並執行此查詢" + "value" : "暫停" } } } }, - "Open Workspaces" : { - "extractionState" : "stale", + "Pause Query History" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "워크스페이스 열기" + "value" : "쿼리 기록 일시 정지" } }, "tr" : { "stringUnit" : { - "state" : "needs_review", - "value" : "Açık Çalışma Alanları" + "state" : "translated", + "value" : "Sorgu Geçmişini Duraklat" } }, "vi" : { "stringUnit" : { - "state" : "needs_review", - "value" : "Không gian làm việc đang mở" + "state" : "translated", + "value" : "Tạm dừng lịch sử truy vấn" } }, "zh-Hans" : { "stringUnit" : { - "state" : "needs_review", - "value" : "已打开的工作区" + "state" : "translated", + "value" : "暂停查询历史" } }, "zh-Hant" : { "stringUnit" : { - "state" : "needs_review", - "value" : "已開啟的工作區" + "state" : "translated", + "value" : "暫停查詢歷史" } } } }, - "Open Zed and click the Agent Panel icon in the right side of the title bar" : { + "Paused after %d tool calls." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Zed를 열고 제목 막대 오른쪽의 에이전트 패널 아이콘을 클릭하십시오" + "value" : "도구 호출 %d회 후 일시 정지되었습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Zed'i açın ve başlık çubuğunun sağındaki Agent Panel simgesine tıklayın" + "value" : "%d araç çağrısından sonra duraklatıldı." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở Zed và nhấp vào biểu tượng Agent Panel ở bên phải thanh tiêu đề" + "value" : "Đã tạm dừng sau %d lần gọi công cụ." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "打开 Zed,点按标题栏右侧的 Agent Panel 图标" + "value" : "已在 %d 次工具调用后暂停。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開啟 Zed,點按標題列右側的 Agent Panel 圖示" + "value" : "已在 %d 次工具呼叫後暫停。" } } } }, - "Open-source fork of MySQL" : { + "Pending approval for" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "MySQL의 오픈 소스 포크" + "value" : "승인 대기 중:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "MySQL'in açık kaynaklı çatalı" + "value" : "Onay bekleniyor:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bản fork mã nguồn mở của MySQL" + "value" : "Đang chờ phê duyệt cho" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "MySQL 的开源分支" + "value" : "等待批准:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "MySQL 的開源分支" + "value" : "等待核准:" } } } }, - "Opening the connection" : { + "Period" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 여는 중" + "value" : "기간" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı açılıyor" + "value" : "Period" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang mở kết nối" + "value" : "Chu kỳ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在打开连接" + "value" : "周期" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在開啟連線" + "value" : "週期" } } } }, - "Opening the tunnel" : { + "Permission" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "터널 여는 중" + "value" : "권한" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tünel açılıyor" + "value" : "İzin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang mở tunnel" + "value" : "Quyền" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在打开隧道" + "value" : "权限" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在開啟隧道" + "value" : "權限" } } } }, - "Opening the tunnel through %@" : { + "Permission Level" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 경유 터널 여는 중" + "value" : "권한 수준" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tünel %@ üzerinden açılıyor" + "value" : "İzin Düzeyi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang mở tunnel qua %@" + "value" : "Mức quyền" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在通过 %@ 打开隧道" + "value" : "权限级别" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在透過 %@ 開啟隧道" + "value" : "權限層級" } } } }, - "Opening your browser to sign in…" : { + "Pick the type of database you want to connect to." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "로그인할 브라우저를 여는 중…" + "value" : "연결할 데이터베이스 유형을 선택하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Giriş yapmak için tarayıcınız açılıyor…" + "value" : "Bağlanmak istediğiniz veritabanı türünü seçin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang mở trình duyệt để đăng nhập…" + "value" : "Chọn loại cơ sở dữ liệu bạn muốn kết nối." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在打开浏览器以登录…" + "value" : "选择要连接的数据库类型。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在開啟瀏覽器以登入…" + "value" : "選擇你要連線的資料庫類型。" } } } }, - "Opens database URLs from the terminal, such as a DDEV project database." : { + "Pin Result" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "터미널에서 DDEV 프로젝트 데이터베이스와 같은 데이터베이스 URL을 엽니다." + "value" : "결과 고정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Terminalden gelen veritabanı URL'lerini açar, örneğin bir DDEV proje veritabanı." + "value" : "Sonucu Sabitle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở các URL cơ sở dữ liệu từ terminal, ví dụ cơ sở dữ liệu của dự án DDEV." + "value" : "Ghim kết quả" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "打开来自终端的数据库 URL,例如 DDEV 项目的数据库。" + "value" : "固定结果" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開啟來自終端機的資料庫 URL,例如 DDEV 專案的資料庫。" + "value" : "釘選結果" } } } }, - "Operation" : { - "comment" : "Label for the operation column in the query plan details view.", - "isCommentAutoGenerated" : true, + "Pink" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "작업" + "value" : "분홍색" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İşlem" + "value" : "Pembe" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thao tác" + "value" : "Hồng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "操作" + "value" : "粉色" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "操作" + "value" : "粉紅色" } } } }, - "Operation cancelled by user" : { + "Pipe |" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사용자가 작업을 취소함" + "value" : "파이프 |" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İşlem kullanıcı tarafından iptal edildi" + "value" : "Dikey Çizgi |" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thao tác đã bị người dùng hủy" + "value" : "Dấu gạch đứng |" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "操作已被用户取消" + "value" : "竖线 |" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "使用者已取消操作" + "value" : "直線 |" } } } }, - "Operation Failed" : { + "Plain text. Markdown is preserved as written." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "작업 실패" + "value" : "일반 텍스트입니다. Markdown은 작성된 그대로 유지됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İşlem Başarısız" + "value" : "Düz metin. Markdown yazıldığı gibi korunur." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thao tác thất bại" + "value" : "Văn bản thuần. Markdown được giữ nguyên như đã viết." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "操作失败" + "value" : "纯文本。Markdown 按原样保留。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "操作失敗" + "value" : "純文字。Markdown 按原樣保留。" } } } }, - "Operation name from list_maintenance_operations" : { - - }, - "Operation names, sorted" : { - - }, - "Operation not permitted" : { + "Plain-text accounting ledgers" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "작업이 허용되지 않음" + "value" : "일반 텍스트 회계 원장" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İşleme izin verilmiyor" + "value" : "Düz metin muhasebe defterleri" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thao tác không được phép" + "value" : "Sổ kế toán dạng văn bản thuần" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "操作不被允许" + "value" : "纯文本记账账本" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "操作不被允許" + "value" : "純文字記帳帳本" } } } }, - "Operation that ran" : { - - }, - "Operator" : { + "Plan" : { + "comment" : "Label for the query plan in the result set.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연산자" + "value" : "플랜" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Operator" + "value" : "Plan" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Toán tử" + "value" : "Kế hoạch" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "运算符" + "value" : "执行计划" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "運算子" + "value" : "執行計畫" } } } }, - "Optimize" : { + "Plan: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "최적화" + "value" : "플랜: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Optimize Et" + "value" : "Plan: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tối ưu hoá" + "value" : "Gói: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "优化" + "value" : "套餐:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "最佳化" + "value" : "方案:%@" } } } }, - "Optimize Query" : { - "extractionState" : "stale", + "Planning: %.3fms" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 최적화" + "value" : "계획 수립: %.3fms" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Optimize Query" + "value" : "Planlama: %.3fms" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tối ưu truy vấn" + "value" : "Lập kế hoạch: %.3fms" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "优化查询" + "value" : "规划: %.3fms" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "最佳化查詢" + "value" : "規劃:%.3fms" } } } }, - "Optimize table (merge parts)" : { + "Please select a column" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 최적화(파트 병합)" + "value" : "열을 선택하십시오" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tabloyu optimize et (parçaları birleştir)" + "value" : "Lütfen bir sütun seçin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tối ưu hoá bảng (hợp nhất phần)" + "value" : "Vui lòng chọn một cột" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "优化表(合并分区)" + "value" : "请选择一列" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "最佳化資料表(合併分割區)" + "value" : "請選擇一個欄位" } } } }, - "Optimize this SQL query for better performance:\n\n```sql\n%@\n```" : { - "extractionState" : "stale", + "Plugin" : { + "comment" : "Plugin is a technical term", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "더 나은 성능을 위해 다음 SQL 쿼리를 최적화하십시오:\n\n```sql\n%@\n```" + "value" : "플러그인" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Optimize this SQL query for better performance:\n\n```sql\n%@\n```" + "value" : "Eklenti" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đề xuất tối ưu hóa cho câu truy vấn SQL sau:\n\n```sql\n%@\n```" + "value" : "Plugin" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "优化以下 SQL 查询以提升性能:\n\n```sql\n%@\n```" + "value" : "插件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "最佳化以下 SQL 查詢以提升效能:\n\n```sql\n%@\n```" + "value" : "外掛" } } } }, - "Optimize with AI" : { + "Plugin '%@' has an invalid descriptor: %@" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Plugin '%1$@' has an invalid descriptor: %2$@" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "AI로 최적화" + "value" : "플러그인 '%1$@'의 설명자가 올바르지 않습니다: %2$@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "AI ile İyileştir" + "value" : "'%@' eklentisinin tanımlayıcısı geçersiz: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tối ưu với AI" + "value" : "Plugin '%@' có mô tả không hợp lệ: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "AI 优化" + "value" : "插件 '%@' 的描述符无效:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "以 AI 最佳化" + "value" : "外掛「%1$@」的描述元無效:%2$@" } } } }, - "Option as Meta key" : { - "extractionState" : "stale", + "Plugin Installation Failed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Option 키를 Meta 키로 사용" + "value" : "플러그인 설치 실패" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Option tuşunu Meta olarak kullan" + "value" : "Eklenti Kurulumu Başarısız" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dùng Option làm phím Meta" + "value" : "Cài đặt Plugin thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将 Option 用作 Meta 键" + "value" : "插件安装失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將 Option 作為 Meta 鍵" + "value" : "外掛安裝失敗" } } } }, - "Option key to pass in 'options'" : { - - }, - "Optional" : { + "Plugin Not Installed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "선택 사항" + "value" : "플러그인이 설치되지 않음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İsteğe bağlı" + "value" : "Eklenti Kurulu Değil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tùy chọn" + "value" : "Plugin chưa được cài đặt" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "可选" + "value" : "插件未安装" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選用" + "value" : "外掛未安裝" } } } }, - "Optional description" : { - "extractionState" : "stale", + "Plugin Update Failed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "설명(선택 사항)" + "value" : "플러그인 업데이트 실패" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Optional description" + "value" : "Eklenti Güncellemesi Başarısız" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mô tả tùy chọn" + "value" : "Cập nhật plugin thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "可选描述" + "value" : "插件更新失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選填描述" + "value" : "外掛更新失敗" } } } }, - "Optional one-line description" : { + "Plugin checksum does not match expected value" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "한 줄 설명(선택 사항)" + "value" : "플러그인 체크섬이 예상 값과 일치하지 않습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İsteğe bağlı tek satırlık açıklama" + "value" : "Eklenti sağlama toplamı beklenen değerle eşleşmiyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mô tả một dòng (tùy chọn)" + "value" : "Checksum plugin không khớp với giá trị mong đợi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "可选的单行描述" + "value" : "插件校验和与期望值不匹配" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選用的單行描述" + "value" : "外掛總和檢查碼與預期值不符" } } } }, - "Optional. A key from the Cursor dashboard is used instead of signing in." : { + "Plugin code signature verification failed: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "선택 사항입니다. 로그인하는 대신 Cursor 대시보드에서 발급한 키를 사용합니다." + "value" : "플러그인 코드 서명 검증 실패: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İsteğe bağlı. Giriş yapmak yerine Cursor panosundan bir anahtar kullanılır." + "value" : "Eklenti kod imzası doğrulaması başarısız: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tùy chọn. Một khóa từ bảng điều khiển Cursor được dùng thay cho đăng nhập." + "value" : "Xác minh chữ ký mã plugin thất bại: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "可选。使用来自 Cursor 仪表板的密钥,而不是登录。" + "value" : "插件代码签名验证失败:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選用。使用來自 Cursor 儀表板的金鑰,而非登入。" + "value" : "外掛程式碼簽章驗證失敗:%@" } } } }, - "Optional. Set this to reach a database that only listens on a Unix socket." : { + "Plugin does not contain a compatible binary for this architecture" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "선택 사항입니다. Unix 소켓에서만 수신 대기하는 데이터베이스에 연결하려면 설정하십시오." + "value" : "이 아키텍처와 호환되는 바이너리가 플러그인에 없습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İsteğe bağlı. Yalnızca Unix soketi dinleyen bir veritabanına erişmek için ayarlayın." + "value" : "Eklenti bu mimari için uyumlu bir ikili dosya içermiyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tùy chọn. Đặt giá trị này để truy cập cơ sở dữ liệu chỉ lắng nghe trên Unix socket." + "value" : "Plugin không chứa tập tin nhị phân tương thích cho kiến trúc này" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "可选。当数据库只监听 Unix socket 时设置此项。" + "value" : "插件不包含兼容此架构的二进制文件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選填。當資料庫只監聽 Unix socket 時設定此項。" + "value" : "外掛未包含相容此架構的二進位檔" } } } }, - "Options" : { + "Plugin download failed: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "옵션" + "value" : "플러그인 다운로드 실패: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Seçenekler" + "value" : "Plugin indirme failed: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tùy chọn" + "value" : "Tải plugin thất bại: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选项" + "value" : "插件下载失败:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選項" + "value" : "外掛下載失敗:%@" } } } }, - "Options the engine offers" : { - - }, - "OR" : { - "extractionState" : "stale", + "Plugin has active connections" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "OR" + "value" : "플러그인에 활성 연결이 있습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "OR" + "value" : "Eklentinin etkin bağlantıları var" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "OR" + "value" : "Plugin đang có kết nối hoạt động" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "OR" + "value" : "插件有活跃的连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "OR" + "value" : "外掛有作用中的連線" } } } }, - "Oracle" : { - "extractionState" : "stale", + "Plugin installation failed: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Oracle" + "value" : "플러그인 설치 실패: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Oracle" + "value" : "Eklenti kurulumu başarısız: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Oracle" + "value" : "Cài đặt plugin thất bại: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Oracle" + "value" : "插件安装失败:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Oracle" + "value" : "外掛安裝失敗:%@" } } } }, - "OracleNIO has no TLS fallback. Preferred connects in plain TCP. Use Required for TCPS to Oracle Autonomous Database." : { + "Plugin not found" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "OracleNIO에는 TLS 폴백이 없습니다. 선호는 평문 TCP로 연결합니다. Oracle Autonomous Database에 TCPS로 연결하려면 필수를 사용하십시오." + "value" : "플러그인을 찾을 수 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "OracleNIO'da TLS geri dönüşü yoktur. Tercih Edilen düz TCP ile bağlanır. Oracle Autonomous Database'e TCPS bağlantısı için Zorunlu kullanın." + "value" : "Eklenti bulunamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "OracleNIO không có cơ chế dự phòng TLS. Preferred kết nối bằng TCP thường. Dùng Required cho TCPS tới Oracle Autonomous Database." + "value" : "Không tìm thấy plugin" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "OracleNIO 没有 TLS 回退。“首选”将使用纯 TCP 连接。通过 TCPS 连接 Oracle Autonomous Database 时请使用“必需”。" + "value" : "未找到插件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "OracleNIO 沒有 TLS 回退。「首選」將使用純 TCP 連線。透過 TCPS 連線 Oracle Autonomous Database 時請使用「必要」。" + "value" : "找不到外掛" } } } }, - "Orange" : { + "Plugin not loaded" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "주황색" + "value" : "플러그인이 로드되지 않음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Turuncu" + "value" : "Eklenti yüklenmedi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cam" + "value" : "Plugin chưa được tải" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "橙色" + "value" : "插件未加载" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "橘色" + "value" : "外掛未載入" } } } }, - "Other" : { + "Plugin not loaded: %@. %@" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Plugin not loaded: %1$@. %2$@" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기타" + "value" : "플러그인이 로드되지 않음: %1$@. %2$@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Other" + "value" : "Eklenti yüklenmedi: %1$@. %2$@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khác" + "value" : "Plugin chưa được tải: %1$@. %2$@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "其他" + "value" : "插件未加载:%1$@。%2$@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "其他" + "value" : "外掛未載入:%1$@。%2$@" } } } }, - "Other Device" : { - "extractionState" : "stale", + "Plugin registry requires a newer app version" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기타 기기" + "value" : "플러그인 레지스트리를 사용하려면 더 최신 버전의 앱이 필요합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Other Device" + "value" : "Eklenti deposu daha yeni bir uygulama sürümü gerektiriyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thiết bị khác" + "value" : "Kho plugin yêu cầu phiên bản ứng dụng mới hơn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "其他设备" + "value" : "插件注册表需要更新版本的应用" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "其他裝置" + "value" : "外掛註冊需要更新版本的應用程式" } } } }, - "Other…" : { + "Plugin requires PluginKit version %d, but app provides version %d" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Plugin requires PluginKit version %1$d, but app provides version %2$d" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기타…" + "value" : "플러그인에는 PluginKit %1$d 버전이 필요하지만 앱에서 제공하는 버전은 %2$d입니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Diğer…" + "value" : "Eklenti PluginKit sürüm %d gerektiriyor, ancak uygulama sürüm %d sunuyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khác…" + "value" : "Plugin yêu cầu PluginKit phiên bản %d, nhưng ứng dụng chỉ có phiên bản %d" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "其他…" + "value" : "插件需要PluginKit版本%d,但应用提供版本%d" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "其他…" + "value" : "外掛需要 PluginKit 版本 %1$d,但應用程式提供的版本為 %2$d" } } } }, - "Outcome" : { + "Plugin requires PluginKit version %lld, but app provides version %lld" : { + "extractionState" : "stale", "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Plugin requires PluginKit version %1$lld, but app provides version %2$lld" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "결과" + "value" : "플러그인에는 PluginKit %1$lld 버전이 필요하지만 앱에서 제공하는 버전은 %2$lld입니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sonuç" + "value" : "Plugin requires PluginKit version %lld, but app provides version %lld" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết quả" + "value" : "Plugin yêu cầu PluginKit phiên bản %lld, nhưng ứng dụng cung cấp phiên bản %lld" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "结果" + "value" : "插件需要 PluginKit 版本 %lld,但应用提供的版本为 %lld" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "結果" + "value" : "外掛需要 PluginKit 版本 %1$lld,但應用程式提供的版本為 %2$lld" } } } }, - "Outcome: %@" : { + "Plugin requires app version %@ or later, but current version is %@" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Plugin requires app version %1$@ or later, but current version is %2$@" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "결과: %@" + "value" : "플러그인에는 앱 버전 %1$@ 이상이 필요하지만 현재 버전은 %2$@입니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sonuç: %@" + "value" : "Eklenti %@ veya sonrası bir uygulama sürümü gerektiriyor, mevcut sürüm ise %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết quả: %@" + "value" : "Plugin yêu cầu ứng dụng phiên bản %@ trở lên, nhưng phiên bản hiện tại là %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "结果:%@" + "value" : "插件需要应用版本 %@ 或更高,但当前版本为 %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "結果:%@" + "value" : "外掛需要應用程式版本 %1$@ 或更新版本,但目前版本為 %2$@" } } } }, - "Outdent" : { + "Plugin was built for PluginKit version %d; this release of TablePro needs version %d." : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Plugin was built for PluginKit version %1$d; this release of TablePro needs version %2$d." + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "내어쓰기" + "value" : "플러그인은 PluginKit %1$d 버전용으로 빌드되었지만 이 TablePro 릴리스에는 %2$d 버전이 필요합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Girintiyi Azalt" + "value" : "Eklenti, PluginKit %1$d sürümü için derlenmiş; TablePro'nun bu sürümü %2$d sürümünü gerektiriyor." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giảm thụt lề" + "value" : "Plugin được xây dựng cho PluginKit phiên bản %1$d; bản phát hành TablePro này cần phiên bản %2$d." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "减少缩进" + "value" : "插件是为 PluginKit 版本 %1$d 构建的;此版本的 TablePro 需要版本 %2$d。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "減少縮排" + "value" : "外掛是為 PluginKit 版本 %1$d 建置的;此版本的 TablePro 需要版本 %2$d。" } } } }, - "Outgoing foreign keys" : { - - }, - "Output format" : { - - }, - "Output of EXPLAIN for this query, if you have it" : { - - }, - "Output of EXPLAIN or EXPLAIN ANALYZE for this query" : { - - }, - "Output truncated for display" : { + "Plugin was built with PluginKit version %d, but version %d is required. Please update the plugin." : { + "extractionState" : "stale", "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Plugin was built with PluginKit version %1$d, but version %2$d is required. Please update the plugin." + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "화면에 표시하기 위해 출력이 잘렸습니다" + "value" : "플러그인은 PluginKit %1$d 버전으로 빌드되었지만 %2$d 버전이 필요합니다. 플러그인을 업데이트하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Çıktı görüntüleme için kısaltıldı" + "value" : "Eklenti PluginKit sürüm %d ile oluşturuldu, ancak sürüm %d gerekli. Lütfen eklentiyi güncelleyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết quả đầu ra bị cắt bớt để hiển thị" + "value" : "Plugin được xây dựng với PluginKit phiên bản %d, nhưng yêu cầu phiên bản %d. Vui lòng cập nhật plugin." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "输出已截断显示" + "value" : "插件使用PluginKit版本%d构建,但需要版本%d。请更新插件。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "輸出已截斷顯示" + "value" : "外掛是以 PluginKit 版本 %1$d 建置的,但需要版本 %2$d。請更新外掛。" } } } }, - "output_path must end in .%@ for this format." : { - - }, - "output_path must name a file inside the Downloads folder." : { - - }, - "output_path must not name a hidden file." : { - - }, - "Over an SSH tunnel, TablePro connects directly to the first host. Replica set failover is not available." : { + "Plugin was built with PluginKit version %lld, but version %lld is required. Please update the plugin." : { + "extractionState" : "stale", "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Plugin was built with PluginKit version %1$lld, but version %2$lld is required. Please update the plugin." + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 터널을 사용할 때 TablePro는 첫 번째 호스트에 직접 연결합니다. 복제본 세트 장애 조치는 사용할 수 없습니다." + "value" : "플러그인은 PluginKit %1$lld 버전으로 빌드되었지만 %2$lld 버전이 필요합니다. 플러그인을 업데이트하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH tüneli üzerinden TablePro doğrudan ilk sunucuya bağlanır. Replica set yük devretme kullanılamaz." + "value" : "Eklenti PluginKit sürüm %lld ile oluşturuldu, ancak sürüm %lld gerekli. Lütfen eklentiyi güncelleyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Qua đường hầm SSH, TablePro kết nối trực tiếp tới máy chủ đầu tiên. Không hỗ trợ chuyển đổi dự phòng replica set." + "value" : "Plugin được xây dựng với PluginKit phiên bản %lld, nhưng cần phiên bản %lld. Vui lòng cập nhật plugin." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "通过 SSH 隧道时,TablePro 直接连接到第一个主机。无法使用副本集故障转移。" + "value" : "插件使用 PluginKit 版本 %lld 构建,但需要版本 %lld。请更新插件。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "透過 SSH 通道時,TablePro 會直接連線到第一個主機。無法使用複本集容錯移轉。" + "value" : "外掛是以 PluginKit 版本 %1$lld 建置的,但需要版本 %2$lld。請更新外掛。" } } } }, - "Override auto-detected CLI paths per database type." : { - "extractionState" : "stale", + "Plugins" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 유형별로 자동 감지된 CLI 경로를 재정의합니다." + "value" : "플러그인" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı türüne göre otomatik algılanan CLI yollarını geçersiz kılın." + "value" : "Plugins" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ghi đè đường dẫn CLI tự phát hiện cho từng loại cơ sở dữ liệu." + "value" : "Plugin" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "按数据库类型覆盖自动检测的 CLI 路径。" + "value" : "插件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "依資料庫型別覆寫自動偵測的 CLI 路徑。" + "value" : "外掛" } } } }, - "Owning table, for a column match" : { - + "Plugins signed by this developer stop loading the next time TablePro starts." : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "이 개발자가 서명한 플러그인은 다음에 TablePro를 시작할 때부터 로드되지 않습니다." + } + } + } }, - "Page" : { + "Point at the socket file itself, not the directory holding it." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "페이지" + "value" : "소켓이 있는 디렉터리가 아니라 소켓 파일 자체를 지정하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sayfa" + "value" : "Soket dosyasının kendisini gösterin, onu içeren dizini değil." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trang" + "value" : "Trỏ tới chính tệp socket, không phải thư mục chứa nó." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "页" + "value" : "请指向 socket 文件本身,而不是它所在的目录。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "頁" + "value" : "請指向 socket 檔案本身,而不是它所在的目錄。" } } } }, - "Page %d" : { + "Port" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%d페이지" + "value" : "포트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sayfa %d" + "value" : "Port" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trang %d" + "value" : "Cổng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "第 %d 页" + "value" : "端口" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "第 %d 頁" + "value" : "連接埠" } } } }, - "Page %d of %d" : { + "Port 1455 is in use. Quit the Codex CLI or another sign-in and try again." : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Page %1$d of %2$d" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "페이지 %1$d / %2$d" + "value" : "포트 1455가 사용 중입니다. Codex CLI 또는 다른 로그인 세션을 종료한 후 다시 시도하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sayfa %1$d / %2$d" + "value" : "1455 portu kullanımda. Codex CLI’yi veya başka bir girişi kapatın ve tekrar deneyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trang %1$d / %2$d" + "value" : "Cổng 1455 đang được sử dụng. Hãy thoát Codex CLI hoặc một phiên đăng nhập khác rồi thử lại." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "第 %1$d 页,共 %2$d 页" + "value" : "端口 1455 正在使用中。请退出 Codex CLI 或其他登录后重试。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "第 %1$d 頁,共 %2$d 頁" + "value" : "連接埠 1455 正在使用中。請結束 Codex CLI 或其他登入後再試一次。" } } } }, - "Page %lld of %lld" : { + "Port is already in use. Try a different port or close the other process." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "페이지 %1$lld / %2$lld" + "value" : "포트가 이미 사용 중입니다. 다른 포트를 사용하거나 다른 프로세스를 종료하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sayfa %1$lld / %2$lld" + "value" : "Port zaten kullanımda. Farklı bir port deneyin veya diğer işlemi kapatın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trang %1$lld / %2$lld" + "value" : "Cổng đã được sử dụng. Hãy thử cổng khác hoặc đóng tiến trình đang dùng." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "第 %1$lld 页,共 %2$lld 页" + "value" : "端口已被占用。请尝试其他端口或关闭占用端口的进程。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "第 %1$lld 頁,共 %2$lld 頁" + "value" : "連接埠已被佔用。請改用其他連接埠或關閉佔用的處理程序。" } } } }, - "Page Count" : { + "Potentially Dangerous Queries" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "페이지 수" + "value" : "잠재적으로 위험한 쿼리" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sayfa Sayısı" + "value" : "Potentially Dangerous Queries" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Số trang" + "value" : "Truy vấn có thể nguy hiểm" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "页面数" + "value" : "潜在危险查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "頁數" + "value" : "潛在危險查詢" } } } }, - "Page number" : { + "Potentially Dangerous Query" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "페이지 번호" + "value" : "잠재적으로 위험한 쿼리" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sayfa numarası" + "value" : "Potentially Dangerous Query" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Số trang" + "value" : "Truy vấn có thể nguy hiểm" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "页码" + "value" : "潜在危险查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "頁碼" + "value" : "潛在危險查詢" } } } }, - "Page Size" : { + "Pre-Connect Script" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "페이지 크기" + "value" : "연결 전 스크립트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sayfa Boyutu" + "value" : "Bağlantı Öncesi Betik" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kích thước trang" + "value" : "Script pre-connect" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "页面大小" + "value" : "连接前脚本" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "頁面大小" + "value" : "連線前指令稿" } } } }, - "Page size must be between %@ and %@" : { + "Pre-connect script failed (exit %d): %@" : { "localizations" : { "en" : { "stringUnit" : { "state" : "new", - "value" : "Page size must be between %1$@ and %2$@" + "value" : "Pre-connect script failed (exit %1$d): %2$@" } }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "페이지 크기는 %1$@에서 %2$@ 사이여야 합니다" + "value" : "연결 전 스크립트 실패(종료 코드 %1$d): %2$@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Page size must be arasında %@ and %@" + "value" : "Bağlantı öncesi betik başarısız (çıkış %d): %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kích thước trang phải nằm trong khoảng %1$@ đến %2$@" + "value" : "Tập lệnh tiền kết nối thất bại (exit %d): %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "页面大小必须在 %@ 和 %@ 之间" + "value" : "连接前脚本失败(退出码 %d):%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "頁面大小必須介於 %1$@ 與 %2$@ 之間" + "value" : "連線前指令稿失敗(退出碼 %1$d):%2$@" } } } }, - "pages" : { + "Pre-connect script failed (exit %lld): %@" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "페이지" + "value" : "연결 전 스크립트 실패(종료 코드 %lld): %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "sayfa" + "value" : "Pre-connect script failed (exit %lld): %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "trang" + "value" : "Script pre-connect thất bại (exit %lld): %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "页" + "value" : "连接前脚本失败(退出码 %lld):%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "頁" + "value" : "連線前指令稿失敗(退出碼 %lld):%@" } } } }, - "Pagination" : { + "Pre-connect script failed with exit code %d" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "페이지 매김" + "value" : "연결 전 스크립트 실패(종료 코드 %d)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Pagination" + "value" : "Bağlantı öncesi betik %d çıkış koduyla başarısız oldu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phân trang" + "value" : "Tập lệnh tiền kết nối thất bại với mã thoát %d" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "分页" + "value" : "连接前脚本失败,退出码 %d" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "分頁" + "value" : "連線前指令稿失敗,退出碼 %d" } } } }, - "Pagination Settings" : { + "Pre-connect script failed with exit code %lld" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "페이지 매김 설정" + "value" : "연결 전 스크립트 실패(종료 코드 %lld)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Pagination Settings" + "value" : "Pre-connect script failed with exit code %lld" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cài đặt phân trang" + "value" : "Script pre-connect thất bại với exit code %lld" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "分页设置" + "value" : "连接前脚本失败,退出码 %lld" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "分頁設定" + "value" : "連線前指令稿失敗,退出碼 %lld" } } } }, - "Pairing Failed" : { + "Pre-connect script timed out after 10 seconds" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "페어링 실패" + "value" : "연결 전 스크립트가 10초 후 시간 초과로 종료되었습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eşleştirme Başarısız" + "value" : "Bağlantı öncesi betik 10 saniye sonra zaman aşımına uğradı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ghép nối thất bại" + "value" : "Script pre-connect hết thời gian chờ sau 10 giây" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "配对失败" + "value" : "连接前脚本超时(10秒后)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "配對失敗" + "value" : "連線前指令稿在 10 秒後逾時" } } } }, - "Panel State" : { + "Pre-connect script was cancelled" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "패널 상태" + "value" : "연결 전 스크립트가 취소되었습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Panel Durumu" + "value" : "Bağlantı öncesi betik iptal edildi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trạng thái bảng điều khiển" + "value" : "Script trước khi kết nối đã bị hủy" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "面板状态" + "value" : "连接前脚本已取消" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "面板狀態" + "value" : "連線前指令稿已取消" } } } }, - "Panels to read. Omit for all." : { - - }, - "Parameters" : { + "Precision" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "매개변수" + "value" : "정밀도" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Parametreler" + "value" : "Precision" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tham số" + "value" : "Độ chính xác" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "参数" + "value" : "精度" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "參數" + "value" : "精確度" } } } }, - "Parent Group" : { + "Precision:" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "상위 그룹" + "value" : "정밀도:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Üst Grup" + "value" : "Precision:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhóm cha" + "value" : "Độ chính xác:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "父分组" + "value" : "精度:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "上層群組" + "value" : "精確度:" } } } }, - "Parent table" : { - - }, - "Part Mutations" : { + "Preferred" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "파트 뮤테이션" + "value" : "선호" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Parça Mutasyonları" + "value" : "Tercih Edilen" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thay đổi phần" + "value" : "Ưu tiên" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "分区变更" + "value" : "首选" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "分割區異動" + "value" : "偏好" } } } }, - "Partial files may remain on disk." : { + "Preferred connects in plain TCP for this driver. Use Required to enforce TCPS." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "일부 파일이 디스크에 남아 있을 수 있습니다." + "value" : "이 드라이버에서 선호는 평문 TCP로 연결합니다. TCPS를 강제하려면 필수를 사용하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Diskte kısmi dosyalar kalabilir." + "value" : "Bu sürücüde Tercih Edilen düz TCP ile bağlanır. TCPS'yi zorunlu kılmak için Zorunlu kullanın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Các tệp dở dang có thể vẫn còn trên ổ đĩa." + "value" : "Với driver này, Preferred kết nối bằng TCP thường. Dùng Required để buộc dùng TCPS." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "部分文件可能仍留在磁盘上。" + "value" : "对于此驱动,“首选”将使用纯 TCP 连接。请使用“必需”来强制 TCPS。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "磁碟上可能殘留部分檔案。" + "value" : "對於此驅動程式,「首選」將使用純 TCP 連線。請使用「必要」來強制 TCPS。" } } } }, - "Partial index predicate" : { - - }, - "Partition" : { + "Preferred performs a 2-pass connect: tries TLS first, falls back to plain only on SSL handshake errors. Required by Cloud SQL and Azure MySQL." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "파티션" + "value" : "선호는 2단계 연결을 수행합니다. 먼저 TLS를 시도하고 SSL 핸드셰이크 오류가 발생한 경우에만 평문 연결로 전환합니다. Cloud SQL과 Azure MySQL에는 필수를 사용해야 합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Partition" + "value" : "Tercih Edilen 2 aşamalı bağlanır: önce TLS dener, yalnızca SSL el sıkışma hatalarında düz bağlantıya döner. Cloud SQL ve Azure MySQL için Zorunlu gerekir." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phân vùng" + "value" : "Preferred kết nối 2 bước: thử TLS trước, chỉ chuyển sang kết nối thường khi gặp lỗi bắt tay SSL. Cloud SQL và Azure MySQL yêu cầu Required." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "分区" + "value" : "“首选”执行两阶段连接:先尝试 TLS,仅在 SSL 握手出错时回退到明文。Cloud SQL 和 Azure MySQL 要求使用“必需”。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "分割區" + "value" : "「首選」執行兩階段連線:先嘗試 TLS,僅在 SSL 交握出錯時回退到明文。Cloud SQL 與 Azure MySQL 要求使用「必要」。" } } } }, - "Partitioned Table" : { + "Preferred requests TLS; the server decides. Required by SQL Server 2022 and Azure SQL Database." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "파티션 테이블" + "value" : "선호는 TLS를 요청하며 서버가 사용 여부를 결정합니다. SQL Server 2022와 Azure SQL Database에는 필수를 사용해야 합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bölümlenmiş Tablo" + "value" : "Tercih Edilen TLS ister; karar sunucunundur. SQL Server 2022 ve Azure SQL Database için Zorunlu gerekir." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bảng phân vùng" + "value" : "Preferred yêu cầu TLS; máy chủ quyết định. SQL Server 2022 và Azure SQL Database yêu cầu Required." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "分区表" + "value" : "“首选”会请求 TLS,由服务器决定。SQL Server 2022 和 Azure SQL Database 要求使用“必需”。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "分割資料表" + "value" : "「首選」會請求 TLS,由伺服器決定。SQL Server 2022 與 Azure SQL Database 要求使用「必要」。" } } } }, - "Partly granted" : { + "Preferred tries TLS first, falls back to plain. Matches psql and DataGrip defaults. Required by AWS RDS, Cloud SQL, Heroku, Supabase, Neon." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "일부 권한이 부여됨" + "value" : "선호는 먼저 TLS를 시도하고 평문 연결로 전환합니다. psql 및 DataGrip 기본값과 같습니다. AWS RDS, Cloud SQL, Heroku, Supabase 및 Neon에는 필수를 사용해야 합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kısmen verildi" + "value" : "Tercih Edilen önce TLS dener, olmazsa düz bağlantıya döner. psql ve DataGrip varsayılanlarıyla aynıdır. AWS RDS, Cloud SQL, Heroku, Supabase ve Neon için Zorunlu gerekir." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cấp một phần" + "value" : "Preferred thử TLS trước, chuyển sang kết nối thường nếu thất bại. Giống mặc định của psql và DataGrip. AWS RDS, Cloud SQL, Heroku, Supabase, Neon yêu cầu Required." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "部分授予" + "value" : "“首选”先尝试 TLS,失败后回退到明文,与 psql 和 DataGrip 的默认行为一致。AWS RDS、Cloud SQL、Heroku、Supabase、Neon 要求使用“必需”。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "部分授予" + "value" : "「Preferred」會先嘗試 TLS,失敗後改用純文字連線,與 psql 和 DataGrip 的預設行為一致。AWS RDS、Cloud SQL、Heroku、Supabase、Neon 要求使用「Required」。" } } } }, - "Pass 'query' or 'tables', not both." : { - - }, - "Pass 'sql_table' to name the table the INSERT statements target." : { - - }, - "Pass at least one column." : { - - }, - "Pass at least one identifier or literal." : { - - }, - "Pass at least one row." : { - - }, - "Pass at least one table." : { - - }, - "Pass either 'query' or 'tables'." : { - - }, - "Passphrase" : { + "Preparing the session" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "암호 구문" + "value" : "세션 준비 중" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Passphrase" + "value" : "Oturum hazırlanıyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cụm mật khẩu" + "value" : "Đang chuẩn bị phiên" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "密码短语" + "value" : "正在准备会话" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "通關密語" + "value" : "正在準備工作階段" } } } }, - "Passphrase (8+ characters)" : { + "Preserve all values as strings" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "암호 구문(8자 이상)" + "value" : "모든 값을 문자열로 유지" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Parola (8+ karakter)" + "value" : "Preserve all values as strings" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cụm mật khẩu (8+ ký tự)" + "value" : "Giữ nguyên tất cả giá trị dưới dạng chuỗi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "密码短语(8 个以上字符)" + "value" : "将所有值保留为字符串" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "通關密語(8 個以上字)" + "value" : "將所有值保留為字串" } } } }, - "Passphrases do not match" : { + "Preset Name" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "암호 구문이 일치하지 않음" + "value" : "프리셋 이름" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Parolalar eşleşmiyor" + "value" : "Ön Ayar Adı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cụm mật khẩu không khớp" + "value" : "Tên mẫu đặt trước" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "密码短语不匹配" + "value" : "预设名称" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "通關密語不相符" + "value" : "預設集名稱" } } } }, - "password" : { + "Pretty Print" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "암호" + "value" : "보기 좋게 출력" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "şifre" + "value" : "Biçimlendirerek Göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "mật khẩu" + "value" : "Định dạng đẹp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "密码" + "value" : "格式化输出" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "密碼" + "value" : "美化輸出" } } } }, - "Password" : { + "Pretty print (formatted output)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "암호" + "value" : "보기 좋게 출력(서식이 지정된 출력)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Parola" + "value" : "Pretty print (formatted output)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mật khẩu" + "value" : "In đẹp (đầu ra có định dạng)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "密码" + "value" : "格式化输出(带格式)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "密碼" + "value" : "美化輸出(格式化輸出)" } } } }, - "Password command failed (exit %d): %@" : { + "Prevent CSV formula injection by prefixing values starting with =, +, -, @ with a single quote" : { + "extractionState" : "stale", "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Password command failed (exit %1$d): %2$@" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "암호 명령 실패(종료 코드 %1$d): %2$@" + "value" : "=, +, -, @로 시작하는 값 앞에 작은따옴표(')를 붙여 CSV 수식 삽입을 방지합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Parola komutu başarısız oldu (çıkış %1$d): %2$@" + "value" : "Prevent CSV formula injection by prefixing values starting with =, +, -, @ with a single quote" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lệnh mật khẩu thất bại (mã thoát %1$d): %2$@" + "value" : "Ngăn chặn chèn công thức CSV bằng cách thêm dấu nháy đơn trước các giá trị bắt đầu bằng =, +, -, @" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "密码命令失败(退出码 %1$d):%2$@" + "value" : "通过在以 =、+、-、@ 开头的值前添加单引号来防止 CSV 公式注入" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "密碼命令失敗(退出碼 %1$d):%2$@" + "value" : "在以 =、+、-、@ 開頭的值前加上單引號,以防止 CSV 公式注入" } } } }, - "Password command failed with exit code %d" : { + "Prevent write operations (INSERT, UPDATE, DELETE, DROP, etc.)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "암호 명령 실패(종료 코드 %d)" + "value" : "쓰기 작업(INSERT, UPDATE, DELETE, DROP 등)을 방지합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Parola komutu %d çıkış koduyla başarısız oldu" + "value" : "Prevent write operations (INSERT, UPDATE, DELETE, DROP, etc.)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lệnh mật khẩu thất bại với mã thoát %d" + "value" : "Ngăn chặn thao tác ghi (INSERT, UPDATE, DELETE, DROP, v.v.)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "密码命令失败,退出码 %d" + "value" : "禁止写操作(INSERT、UPDATE、DELETE、DROP 等)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "密碼指令失敗,結束代碼 %d" + "value" : "禁止寫入操作(INSERT、UPDATE、DELETE、DROP 等)" } } } }, - "Password command produced too much output" : { + "Preview" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "암호 명령의 출력이 너무 많습니다" + "value" : "미리보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Parola komutu çok fazla çıktı üretti" + "value" : "Önizleme" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lệnh mật khẩu tạo ra quá nhiều dữ liệu đầu ra" + "value" : "Xem trước" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "密码命令产生的输出过多" + "value" : "预览" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "密碼指令產生的輸出過多" + "value" : "預覽" } } } }, - "Password command timed out after 30 seconds" : { + "Preview %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "암호 명령이 30초 후 시간 초과로 종료되었습니다" + "value" : "%@ 미리보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Parola komutu 30 saniye sonra zaman aşımına uğradı" + "value" : "Önizleme %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lệnh mật khẩu hết thời gian chờ sau 30 giây" + "value" : "Xem trước %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "密码命令在 30 秒后超时" + "value" : "预览 %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "密碼指令在 30 秒後逾時" + "value" : "預覽 %@" } } } }, - "Password file not found: %@" : { + "Preview %@ (⌘⇧P)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "암호 파일을 찾을 수 없음: %@" + "value" : "%@ 미리보기(⌘⇧P)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Parola dosyası bulunamadı: %@" + "value" : "Önizleme %@ (⌘⇧P)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy tệp mật khẩu: %@" + "value" : "Xem trước %@ (⌘⇧P)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未找到密码文件:%@" + "value" : "预览 %@ (⌘⇧P)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "找不到密碼檔案:%@" + "value" : "預覽 %@ (⌘⇧P)" } } } }, - "Password found" : { + "Preview Commands" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "암호 찾음" + "value" : "명령 미리보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Parola bulundu" + "value" : "Preview Commands" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã tìm thấy mật khẩu" + "value" : "Xem trước lệnh" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已找到密码" + "value" : "预览命令" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已找到密碼" + "value" : "預覽命令" } } } }, - "Password is sent via keyboard-interactive challenge-response." : { + "Preview Commands (⌘⇧P)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "암호는 키보드 대화형 챌린지-응답을 통해 전송됩니다." + "value" : "명령 미리보기(⌘⇧P)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Parola, keyboard-interactive soru-cevap yöntemiyle gönderilir." + "value" : "Preview Commands (⌘⇧P)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mật khẩu được gửi qua keyboard-interactive challenge-response." + "value" : "Xem trước lệnh (⌘⇧P)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "密码通过 keyboard-interactive 质询-响应方式发送。" + "value" : "预览命令 (⌘⇧P)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "密碼透過 keyboard-interactive 質詢-回應方式傳送。" + "value" : "預覽命令 (⌘⇧P)" } } } }, - "Password Required" : { + "Preview FK Reference" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "암호 필요" + "value" : "FK 참조 미리보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Şifre Gerekli" + "value" : "FK Referansını Önizle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Yêu cầu mật khẩu" + "value" : "Xem trước tham chiếu FK" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "需要密码" + "value" : "预览外键引用" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "需要密碼" + "value" : "預覽外鍵參照" } } } }, - "Password:" : { + "Preview MQL" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "암호:" + "value" : "MQL 미리보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Parola:" + "value" : "Preview MQL" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mật khẩu:" + "value" : "Xem trước MQL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "密码:" + "value" : "预览 MQL" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "密碼:" + "value" : "預覽 MQL" } } } }, - "Passwords will be encrypted with the passphrase you provide." : { + "Preview MQL (⌘⇧P)" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "암호는 입력한 암호 구문으로 암호화됩니다." + "value" : "MQL 미리보기(⌘⇧P)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Parolalar, sağladığınız parola ile şifrelenecektir." + "value" : "Preview MQL (⌘⇧P)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mật khẩu sẽ được mã hóa bằng cụm mật khẩu bạn cung cấp." + "value" : "Xem trước MQL (⌘⇧P)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "密码将使用您提供的密码短语进行加密。" + "value" : "预览 MQL (⌘⇧P)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "密碼將使用你提供的通關密語加密。" + "value" : "預覽 MQL (⌘⇧P)" } } } }, - "Passwords:" : { + "Preview Query" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Passwords:" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "암호:" + "value" : "쿼리 미리보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Parolalar:" + "value" : "Sorguyu Önizle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mật khẩu:" + "value" : "Xem trước truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "密码:" + "value" : "预览查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "密碼:" + "value" : "預覽查詢" } } } }, - "Paste" : { + "Preview Referenced Row" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "붙여넣기" + "value" : "참조 대상 행 미리보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yapıştır" + "value" : "Referans Satırı Önizle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dán" + "value" : "Xem trước dòng tham chiếu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "粘贴" + "value" : "预览引用行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "貼上" + "value" : "預覽參照列" } } } }, - "Paste a connection URL to auto-fill the form fields." : { - "extractionState" : "stale", + "Preview SQL" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 URL을 붙여넣으면 양식 필드가 자동으로 채워집니다." + "value" : "SQL 미리보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Paste a connection URL to auto-fill the form fields." + "value" : "SQL Önizleme" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dán URL kết nối để tự động điền các trường trong biểu mẫu." + "value" : "Xem trước SQL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "粘贴连接 URL 以自动填充表单字段。" + "value" : "预览 SQL" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "貼上連線 URL 以自動填入表單欄位。" + "value" : "預覽 SQL" } } } }, - "Paste a connection URL to detect type and pre-fill fields" : { + "Preview SQL (⌘⇧P)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 URL을 붙여넣으면 유형을 감지하여 필드를 미리 채웁니다" + "value" : "SQL 미리보기(⌘⇧P)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Türü algılamak ve alanları önceden doldurmak için bir bağlantı URL'si yapıştırın" + "value" : "Preview SQL (⌘⇧P)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dán URL kết nối để nhận diện loại và điền sẵn các trường" + "value" : "Xem trước SQL (⌘⇧P)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "粘贴连接 URL 以检测类型并预填字段" + "value" : "预览 SQL (⌘⇧P)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "貼上連線 URL 以偵測類型並預先填入欄位" + "value" : "預覽 SQL (⌘⇧P)" } } } }, - "Paste a connection URL. We'll detect the database type and pre-fill the form." : { + "Preview Schema Changes" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 URL을 붙여넣으십시오. 데이터베이스 유형을 감지하여 양식을 미리 채웁니다." + "value" : "스키마 변경 사항 미리보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bir bağlantı URL'si yapıştırın. Veritabanı türünü algılayıp formu önceden dolduracağız." + "value" : "Preview Schema Changes" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dán URL kết nối. Ứng dụng sẽ nhận diện loại cơ sở dữ liệu và điền sẵn biểu mẫu." + "value" : "Xem trước thay đổi cấu trúc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "粘贴连接 URL,将自动检测数据库类型并预填表单。" + "value" : "预览结构更改" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "貼上連線 URL,將自動偵測資料庫類型並預先填入表單。" + "value" : "預覽綱要變更" } } } }, - "Paste Cells" : { + "Previous Page" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "셀 붙여넣기" + "value" : "이전 페이지" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Hücreleri Yapıştır" + "value" : "Önceki Sayfa" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dán ô" + "value" : "Trang trước" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "粘贴单元格" + "value" : "上一页" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "貼上儲存格" + "value" : "上一頁" } } } }, - "Paste the JSON below and save" : { + "Previous Page (⌘[)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "아래 JSON을 붙여넣고 저장하십시오" + "value" : "이전 페이지(⌘[)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Aşağıdaki JSON'u yapıştırın ve kaydedin" + "value" : "Previous Page (⌘[)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dán JSON dưới đây và lưu lại" + "value" : "Trang trước (⌘[)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "粘贴下方 JSON 并保存" + "value" : "上一页 (⌘[)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在下方貼上 JSON 並儲存" + "value" : "上一頁 (⌘[)" } } } }, - "Paste your CREATE TABLE statement below:" : { - "extractionState" : "stale", + "Previous Result" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "아래에 CREATE TABLE 문을 붙여넣으십시오:" + "value" : "이전 결과" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Paste your CREATE TABLE statement below:" + "value" : "Önceki Sonuç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dán câu lệnh CREATE TABLE bên dưới:" + "value" : "Kết quả trước" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在下方粘贴 CREATE TABLE 语句:" + "value" : "上一个结果" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在下方貼上你的 CREATE TABLE 陳述式:" + "value" : "上一個結果" } } } }, - "Path" : { + "Previous Statement" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "경로" + "value" : "이전 문" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yol" + "value" : "Önceki İfade" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đường dẫn" + "value" : "Câu lệnh trước" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "路径" + "value" : "上一条语句" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "路徑" + "value" : "上一個陳述式" } } } }, - "Pause" : { + "Previous Tab" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "일시 정지" + "value" : "이전 탭" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Duraklat" + "value" : "Previous Tab" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tạm dừng" + "value" : "Tab trước" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "暂停" + "value" : "上一个标签页" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "暫停" + "value" : "上一個分頁" } } } }, - "Pause Query History" : { + "Previous Tab (Alt)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 기록 일시 정지" + "value" : "이전 탭(Alt)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgu Geçmişini Duraklat" + "value" : "Previous Tab (Alt)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tạm dừng lịch sử truy vấn" + "value" : "Tab trước (Alt)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "暂停查询历史" + "value" : "上一个标签页 (Alt)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "暫停查詢歷史" + "value" : "上一個分頁 (Alt)" } } } }, - "Paused after %d tool calls." : { + "Previous match" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "도구 호출 %d회 후 일시 정지되었습니다." + "value" : "이전 일치 항목" + } + } + } + }, + "Previous page" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "이전 페이지" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%d araç çağrısından sonra duraklatıldı." + "value" : "Önceki sayfa" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã tạm dừng sau %d lần gọi công cụ." + "value" : "Trang trước" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已在 %d 次工具调用后暂停。" + "value" : "上一页" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已在 %d 次工具呼叫後暫停。" + "value" : "上一頁" } } } }, - "Pending approval for" : { + "Primary" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "승인 대기 중:" + "value" : "Primary" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Onay bekleniyor:" + "value" : "Primary" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang chờ phê duyệt cho" + "value" : "Primary" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "等待批准:" + "value" : "Primary" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "等待核准:" + "value" : "Primary" } } } }, - "pending delete" : { + "Primary Group Name" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "삭제 대기 중" + "value" : "프라이머리 그룹 이름" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "silinmeyi bekliyor" + "value" : "Birincil Grup Adı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "chờ xóa" + "value" : "Tên nhóm primary" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "待删除" + "value" : "主节点组名称" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "待刪除" + "value" : "主節點群組名稱" } } } }, - "pending truncate" : { + "Primary Key" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "TRUNCATE 대기 중" + "value" : "기본 키" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "boşaltılmayı bekliyor" + "value" : "Birincil Anahtar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "chờ truncate" + "value" : "Khoá chính" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "待清空" + "value" : "主键" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "待清空" + "value" : "主鍵" } } } }, - "Period" : { + "Primary Preferred" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기간" + "value" : "Primary Preferred" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Period" + "value" : "Primary Preferred" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chu kỳ" + "value" : "Primary Preferred" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "周期" + "value" : "Primary Preferred" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "週期" + "value" : "Primary Preferred" } } } }, - "Period to summarize: today, this_week, this_month, or all" : { - - }, - "Permission" : { + "Primary Text" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "권한" + "value" : "기본 텍스트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İzin" + "value" : "Birincil Metin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Quyền" + "value" : "Văn bản chính" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "权限" + "value" : "主要文本" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "權限" + "value" : "主要文字" } } } }, - "Permission Level" : { + "Primary key" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "권한 수준" + "value" : "기본 키" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İzin Düzeyi" + "value" : "Birincil anahtar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mức quyền" + "value" : "Khoá chính" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "权限级别" + "value" : "主键" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "權限層級" + "value" : "主鍵" } } } }, - "PHP — %@" : { - "extractionState" : "stale", + "Primary key change" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "기본 키 변경", + "state" : "translated" + } + } + } + }, + "Priority %d" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "PHP — %@" + "value" : "우선순위 %d" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "PHP — %@" + "value" : "Öncelik %d" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "PHP — %@" + "value" : "Độ ưu tiên %d" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "PHP — %@" + "value" : "优先级 %d" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "PHP — %@" + "value" : "優先順序 %d" } } } }, - "PHP Serialized" : { + "Privacy" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "PHP 직렬화" + "value" : "개인정보 보호" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "PHP Serileştirilmiş" + "value" : "Privacy" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "PHP Serialized" + "value" : "Quyền riêng tư" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "PHP 序列化" + "value" : "隐私" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "PHP 序列化" + "value" : "隱私" } } } }, - "PHP Viewer" : { + "Private Key" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "PHP 뷰어" + "value" : "개인 키" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "PHP Görüntüleyici" + "value" : "Özel Anahtar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trình xem PHP" + "value" : "Khóa riêng tư" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "PHP 查看器" + "value" : "私钥" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "PHP 檢視器" + "value" : "私鑰" } } } }, - "PHP: %@" : { + "Private Key File" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "PHP: %@" + "value" : "개인 키 파일" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "PHP: %@" + "value" : "Özel Anahtar Dosyası" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "PHP: %@" + "value" : "Tệp khóa riêng tư" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "PHP:%@" + "value" : "私钥文件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "PHP:%@" + "value" : "私密金鑰檔案" } } } }, - "Pick the type of database you want to connect to." : { + "Private Key Passphrase" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결할 데이터베이스 유형을 선택하십시오." + "value" : "개인 키 암호 구문" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlanmak istediğiniz veritabanı türünü seçin." + "value" : "Özel Anahtar Parolası" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn loại cơ sở dữ liệu bạn muốn kết nối." + "value" : "Cụm mật khẩu khóa riêng tư" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选择要连接的数据库类型。" + "value" : "私钥口令" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選擇你要連線的資料庫類型。" + "value" : "私密金鑰密碼" } } } }, - "PID" : { + "Privilege" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "PID" + "value" : "권한" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "PID" + "value" : "Yetki" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "PID" + "value" : "Quyền" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "PID" + "value" : "权限" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "PID" + "value" : "權限" } } } }, - "Pin Result" : { + "Privileges" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "결과 고정" + "value" : "권한" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sonucu Sabitle" + "value" : "Yetkiler" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ghim kết quả" + "value" : "Quyền" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "固定结果" + "value" : "权限" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "釘選結果" + "value" : "權限" } } } }, - "Pink" : { + "Pro" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "분홍색" + "value" : "Pro" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Pembe" + "value" : "Pro" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hồng" + "value" : "Pro" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "粉色" + "value" : "Pro" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "粉紅色" + "value" : "Pro" } } } }, - "Pipe |" : { + "Pro License Required" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "파이프 |" + "value" : "Pro 라이선스 필요" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dikey Çizgi |" + "value" : "Pro Lisans Gerekli" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dấu gạch đứng |" + "value" : "Yêu cầu giấy phép Pro" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "竖线 |" + "value" : "需要 Pro 许可证" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "直線 |" + "value" : "需要 Pro 授權" } } } }, - "Plain text. Markdown is preserved as written." : { + "Pro feature" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "일반 텍스트입니다. Markdown은 작성된 그대로 유지됩니다." + "value" : "Pro 기능" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Düz metin. Markdown yazıldığı gibi korunur." + "value" : "Pro özelliği" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Văn bản thuần. Markdown được giữ nguyên như đã viết." + "value" : "Tính năng Pro" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "纯文本。Markdown 按原样保留。" + "value" : "Pro 功能" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "純文字。Markdown 按原樣保留。" + "value" : "Pro 功能" } } } }, - "Plain-text accounting ledgers" : { + "Pro license required for iCloud Sync" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "일반 텍스트 회계 원장" + "value" : "iCloud 동기화에는 Pro 라이선스가 필요합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Düz metin muhasebe defterleri" + "value" : "iCloud Eşitlemesi için Pro lisans gereklidir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sổ kế toán dạng văn bản thuần" + "value" : "Cần giấy phép Pro để sử dụng iCloud Sync" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "纯文本记账账本" + "value" : "iCloud 同步需要 Pro 许可证" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "純文字記帳帳本" + "value" : "iCloud 同步需要 Pro 授權" } } } }, - "Plan" : { - "comment" : "Label for the query plan in the result set.", - "isCommentAutoGenerated" : true, + "Procedure" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플랜" + "value" : "프로시저" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Plan" + "value" : "Prosedür" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kế hoạch" + "value" : "Procedure" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "执行计划" + "value" : "存储过程" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "執行計畫" + "value" : "預存程序" } } } }, - "Plan: %@" : { + "Procedure: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플랜: %@" + "value" : "프로시저: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Plan: %@" + "value" : "Prosedür: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gói: %@" + "value" : "Procedure: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "套餐:%@" + "value" : "存储过程:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "方案:%@" + "value" : "預存程序:%@" } } } }, - "Planning time" : { - - }, - "Planning: %.3fms" : { + "Procedures" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "계획 수립: %.3fms" + "value" : "프로시저" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Planlama: %.3fms" + "value" : "Prosedürler" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lập kế hoạch: %.3fms" + "value" : "Procedures" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "规划: %.3fms" + "value" : "存储过程" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "規劃:%.3fms" + "value" : "預存程序" } } } }, - "Please select a column" : { + "Process exited with code %d" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열을 선택하십시오" + "value" : "프로세스가 코드 %d(으)로 종료되었습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Lütfen bir sütun seçin" + "value" : "İşlem %d koduyla çıktı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Vui lòng chọn một cột" + "value" : "Tiến trình thoát với mã %d" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "请选择一列" + "value" : "进程退出,退出码 %d" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "請選擇一個欄位" + "value" : "處理程序結束,結束碼 %d" } } } }, - "Plugin" : { - "comment" : "Plugin is a technical term", + "Production" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플러그인" + "value" : "프로덕션" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklenti" + "value" : "Üretim" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Plugin" + "value" : "Production" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "插件" + "value" : "生产" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "外掛" + "value" : "生產" } } } }, - "Plugin '%@' has an invalid descriptor: %@" : { + "Profile" : { "localizations" : { "en" : { "stringUnit" : { - "state" : "new", - "value" : "Plugin '%1$@' has an invalid descriptor: %2$@" + "state" : "translated", + "value" : "Profile" } }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플러그인 '%1$@'의 설명자가 올바르지 않습니다: %2$@" + "value" : "프로필" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "'%@' eklentisinin tanımlayıcısı geçersiz: %@" + "value" : "Profil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Plugin '%@' có mô tả không hợp lệ: %@" + "value" : "Hồ sơ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "插件 '%@' 的描述符无效:%@" + "value" : "配置" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "外掛「%1$@」的描述元無效:%2$@" + "value" : "設定檔" } } } }, - "Plugin checksum does not match expected value" : { + "Profile Details" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플러그인 체크섬이 예상 값과 일치하지 않습니다" + "value" : "프로필 세부사항" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklenti sağlama toplamı beklenen değerle eşleşmiyor" + "value" : "Profil Ayrıntıları" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Checksum plugin không khớp với giá trị mong đợi" + "value" : "Chi tiết hồ sơ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "插件校验和与期望值不匹配" + "value" : "配置详情" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "外掛總和檢查碼與預期值不符" + "value" : "設定檔詳細資料" } } } }, - "Plugin code signature verification failed: %@" : { + "Profile Name" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Profile Name" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플러그인 코드 서명 검증 실패: %@" + "value" : "프로필 이름" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklenti kod imzası doğrulaması başarısız: %@" + "value" : "Profil Adı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xác minh chữ ký mã plugin thất bại: %@" + "value" : "Tên hồ sơ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "插件代码签名验证失败:%@" + "value" : "配置名称" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "外掛程式碼簽章驗證失敗:%@" + "value" : "設定檔名稱" } } } }, - "Plugin does not contain a compatible binary for this architecture" : { + "Profile Settings" : { + "extractionState" : "stale", "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Profile Settings" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 아키텍처와 호환되는 바이너리가 플러그인에 없습니다" + "value" : "프로필 설정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklenti bu mimari için uyumlu bir ikili dosya içermiyor" + "value" : "Profil Ayarları" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Plugin không chứa tập tin nhị phân tương thích cho kiến trúc này" + "value" : "Cài đặt hồ sơ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "插件不包含兼容此架构的二进制文件" + "value" : "配置设置" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "外掛未包含相容此架構的二進位檔" + "value" : "設定檔設定" } } } }, - "Plugin download failed: %@" : { + "Progress estimated (%d table(s) could not be counted)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플러그인 다운로드 실패: %@" + "value" : "진행률은 추정치입니다(%d개 테이블의 행 수를 계산할 수 없음)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Plugin indirme failed: %@" + "value" : "Tahmini ilerleme (%d tablo sayılamadı)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tải plugin thất bại: %@" + "value" : "Tiến trình ước lượng (%d bảng không thể đếm)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "插件下载失败:%@" + "value" : "进度为估算值(%d 个表无法计数)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "外掛下載失敗:%@" + "value" : "進度為估計值(%d 個資料表無法計數)" } } } }, - "Plugin has active connections" : { + "Project ID" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플러그인에 활성 연결이 있습니다" + "value" : "프로젝트 ID" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklentinin etkin bağlantıları var" + "value" : "Proje ID" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Plugin đang có kết nối hoạt động" + "value" : "Project ID" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "插件有活跃的连接" + "value" : "项目 ID" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "外掛有作用中的連線" + "value" : "專案 ID" } } } }, - "Plugin Installation Failed" : { + "Prompt at Connect" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플러그인 설치 실패" + "value" : "연결 시 입력 요청" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklenti Kurulumu Başarısız" + "value" : "Bağlanırken Sor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cài đặt Plugin thất bại" + "value" : "Nhắc khi kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "插件安装失败" + "value" : "连接时提示" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "外掛安裝失敗" + "value" : "連線時提示" } } } }, - "Plugin installation failed: %@" : { + "Prompt for API token" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플러그인 설치 실패: %@" + "value" : "API 토큰 입력 요청" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklenti kurulumu başarısız: %@" + "value" : "API belirtecini sor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cài đặt plugin thất bại: %@" + "value" : "Hỏi token API" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "插件安装失败:%@" + "value" : "提示输入 API 令牌" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "外掛安裝失敗:%@" + "value" : "提示輸入 API 權杖" } } } }, - "Plugin not found" : { + "Prompt for password" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플러그인을 찾을 수 없음" + "value" : "암호 입력 요청" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklenti bulunamadı" + "value" : "Parolayı sor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy plugin" + "value" : "Hỏi mật khẩu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未找到插件" + "value" : "提示输入密码" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "找不到外掛" + "value" : "提示輸入密碼" } } } }, - "Plugin Not Installed" : { + "Prompt template" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플러그인이 설치되지 않음" + "value" : "프롬프트 템플릿" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklenti Kurulu Değil" + "value" : "İstem şablonu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Plugin chưa được cài đặt" + "value" : "Mẫu prompt" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "插件未安装" + "value" : "提示词模板" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "外掛未安裝" + "value" : "提示詞範本" } } } }, - "Plugin not loaded" : { + "Providers" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플러그인이 로드되지 않음" + "value" : "제공자" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklenti yüklenmedi" + "value" : "Providers" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Plugin chưa được tải" + "value" : "Nhà cung cấp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "插件未加载" + "value" : "提供商" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "外掛未載入" + "value" : "供應商" } } } }, - "Plugin not loaded: %@. %@" : { + "Proxy Server" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Plugin not loaded: %1$@. %2$@" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플러그인이 로드되지 않음: %1$@. %2$@" + "value" : "프록시 서버" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklenti yüklenmedi: %1$@. %2$@" + "value" : "Proxy Sunucusu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Plugin chưa được tải: %1$@. %2$@" + "value" : "Máy chủ proxy" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "插件未加载:%1$@。%2$@" + "value" : "代理服务器" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "外掛未載入:%1$@。%2$@" + "value" : "代理伺服器" } } } }, - "Plugin registry requires a newer app version" : { + "Public key authentication failed: %@" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플러그인 레지스트리를 사용하려면 더 최신 버전의 앱이 필요합니다" + "value" : "공개 키 인증에 실패했습니다: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklenti deposu daha yeni bir uygulama sürümü gerektiriyor" + "value" : "Public key authentication failed: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kho plugin yêu cầu phiên bản ứng dụng mới hơn" + "value" : "Xác thực khóa công khai thất bại: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "插件注册表需要更新版本的应用" + "value" : "公钥认证失败:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "外掛註冊需要更新版本的應用程式" + "value" : "公鑰驗證失敗:%@" } } } }, - "Plugin requires app version %@ or later, but current version is %@" : { + "Publish" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Plugin requires app version %1$@ or later, but current version is %2$@" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플러그인에는 앱 버전 %1$@ 이상이 필요하지만 현재 버전은 %2$@입니다" + "value" : "게시" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklenti %@ veya sonrası bir uygulama sürümü gerektiriyor, mevcut sürüm ise %@" + "value" : "Yayınla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Plugin yêu cầu ứng dụng phiên bản %@ trở lên, nhưng phiên bản hiện tại là %@" + "value" : "Xuất bản" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "插件需要应用版本 %@ 或更高,但当前版本为 %@" + "value" : "发布" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "外掛需要應用程式版本 %1$@ 或更新版本,但目前版本為 %2$@" + "value" : "發佈" } } } }, - "Plugin requires PluginKit version %d, but app provides version %d" : { + "Publish %d Connections to Team Catalog…" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Plugin requires PluginKit version %1$d, but app provides version %2$d" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플러그인에는 PluginKit %1$d 버전이 필요하지만 앱에서 제공하는 버전은 %2$d입니다" + "value" : "%d개 연결을 팀 카탈로그에 게시…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklenti PluginKit sürüm %d gerektiriyor, ancak uygulama sürüm %d sunuyor" + "value" : "%d Bağlantıyı Takım Kataloğuna Yayınla…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Plugin yêu cầu PluginKit phiên bản %d, nhưng ứng dụng chỉ có phiên bản %d" + "value" : "Xuất bản %d kết nối lên danh mục nhóm…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "插件需要PluginKit版本%d,但应用提供版本%d" + "value" : "将 %d 个连接发布到团队目录…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "外掛需要 PluginKit 版本 %1$d,但應用程式提供的版本為 %2$d" + "value" : "將 %d 個連線發佈到團隊目錄…" } } } }, - "Plugin requires PluginKit version %lld, but app provides version %lld" : { - "extractionState" : "stale", + "Publish %d Connections to Team Library…" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Plugin requires PluginKit version %1$lld, but app provides version %2$lld" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플러그인에는 PluginKit %1$lld 버전이 필요하지만 앱에서 제공하는 버전은 %2$lld입니다" + "value" : "%d개 연결을 팀 라이브러리에 게시…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Plugin requires PluginKit version %lld, but app provides version %lld" + "value" : "%d Bağlantıyı Takım Kitaplığına Yayınla…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Plugin yêu cầu PluginKit phiên bản %lld, nhưng ứng dụng cung cấp phiên bản %lld" + "value" : "Xuất bản %d kết nối lên thư viện nhóm…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "插件需要 PluginKit 版本 %lld,但应用提供的版本为 %lld" + "value" : "将 %d 个连接发布到团队库…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "外掛需要 PluginKit 版本 %1$lld,但應用程式提供的版本為 %2$lld" + "value" : "將 %d 個連線發佈到團隊庫…" } } } }, - "Plugin Update Failed" : { + "Publish Saved Queries to Team..." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플러그인 업데이트 실패" + "value" : "저장된 쿼리를 팀에 게시..." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklenti Güncellemesi Başarısız" + "value" : "Kayıtlı Sorguları Takıma Yayınla..." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cập nhật plugin thất bại" + "value" : "Xuất bản truy vấn đã lưu cho nhóm..." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "插件更新失败" + "value" : "将已保存的查询发布给团队..." } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "外掛更新失敗" + "value" : "將已儲存的查詢發佈給團隊..." } } } }, - "Plugin was built for PluginKit version %d; this release of TablePro needs version %d." : { + "Publish Saved Queries to Team…" : { + "comment" : "Text for a menu item that publishes saved queries to the user's team.", + "isCommentAutoGenerated" : true, "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Plugin was built for PluginKit version %1$d; this release of TablePro needs version %2$d." - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플러그인은 PluginKit %1$d 버전용으로 빌드되었지만 이 TablePro 릴리스에는 %2$d 버전이 필요합니다." + "value" : "저장된 쿼리를 팀에 게시…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklenti, PluginKit %1$d sürümü için derlenmiş; TablePro'nun bu sürümü %2$d sürümünü gerektiriyor." + "value" : "Kayıtlı Sorguları Takıma Yayınla…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Plugin được xây dựng cho PluginKit phiên bản %1$d; bản phát hành TablePro này cần phiên bản %2$d." + "value" : "Xuất bản truy vấn đã lưu cho nhóm…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "插件是为 PluginKit 版本 %1$d 构建的;此版本的 TablePro 需要版本 %2$d。" + "value" : "将已保存的查询发布到团队…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "外掛是為 PluginKit 版本 %1$d 建置的;此版本的 TablePro 需要版本 %2$d。" + "value" : "將已儲存的查詢發佈到團隊…" } } } }, - "Plugin was built with PluginKit version %d, but version %d is required. Please update the plugin." : { - "extractionState" : "stale", + "Publish connections to a shared folder your team reads from. Passwords are never included." : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Plugin was built with PluginKit version %1$d, but version %2$d is required. Please update the plugin." - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플러그인은 PluginKit %1$d 버전으로 빌드되었지만 %2$d 버전이 필요합니다. 플러그인을 업데이트하십시오." + "value" : "팀이 사용하는 공유 폴더에 연결을 게시합니다. 암호는 포함되지 않습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklenti PluginKit sürüm %d ile oluşturuldu, ancak sürüm %d gerekli. Lütfen eklentiyi güncelleyin." + "value" : "Bağlantıları, takımınızın okuduğu paylaşılan bir klasöre yayınlayın. Parolalar hiçbir zaman dahil edilmez." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Plugin được xây dựng với PluginKit phiên bản %d, nhưng yêu cầu phiên bản %d. Vui lòng cập nhật plugin." + "value" : "Xuất bản các kết nối vào một thư mục dùng chung mà nhóm bạn đọc từ đó. Mật khẩu không bao giờ được đưa vào." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "插件使用PluginKit版本%d构建,但需要版本%d。请更新插件。" + "value" : "将连接发布到团队读取的共享文件夹。密码不会被包含在内。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "外掛是以 PluginKit 版本 %1$d 建置的,但需要版本 %2$d。請更新外掛。" + "value" : "將連線發佈到團隊讀取的共用資料夾。密碼絕不會包含在內。" } } } }, - "Plugin was built with PluginKit version %lld, but version %lld is required. Please update the plugin." : { - "extractionState" : "stale", + "Publish saved queries to your team?" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Plugin was built with PluginKit version %1$lld, but version %2$lld is required. Please update the plugin." - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플러그인은 PluginKit %1$lld 버전으로 빌드되었지만 %2$lld 버전이 필요합니다. 플러그인을 업데이트하십시오." + "value" : "저장된 쿼리를 팀에 게시하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklenti PluginKit sürüm %lld ile oluşturuldu, ancak sürüm %lld gerekli. Lütfen eklentiyi güncelleyin." + "value" : "Kayıtlı sorgular takımınıza yayınlansın mı?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Plugin được xây dựng với PluginKit phiên bản %lld, nhưng cần phiên bản %lld. Vui lòng cập nhật plugin." + "value" : "Xuất bản các truy vấn đã lưu cho nhóm của bạn?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "插件使用 PluginKit 版本 %lld 构建,但需要版本 %lld。请更新插件。" + "value" : "要将已保存的查询发布给团队吗?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "外掛是以 PluginKit 版本 %1$lld 建置的,但需要版本 %2$lld。請更新外掛。" + "value" : "要將已儲存的查詢發佈給團隊嗎?" } } } }, - "Plugins" : { + "Publish to Team Catalog…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플러그인" + "value" : "팀 카탈로그에 게시…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Plugins" + "value" : "Takım Kataloğuna Yayınla…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Plugin" + "value" : "Xuất bản lên danh mục nhóm…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "插件" + "value" : "发布到团队目录…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "外掛" - } - } - } - }, - "Plugins signed by this developer stop loading the next time TablePro starts." : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "이 개발자가 서명한 플러그인은 다음에 TablePro를 시작할 때부터 로드되지 않습니다." + "value" : "發佈到團隊目錄…" } } } }, - "Point at the socket file itself, not the directory holding it." : { + "Publish to Team Library…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "소켓이 있는 디렉터리가 아니라 소켓 파일 자체를 지정하십시오." + "value" : "팀 라이브러리에 게시…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Soket dosyasının kendisini gösterin, onu içeren dizini değil." + "value" : "Takım Kitaplığına Yayınla…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trỏ tới chính tệp socket, không phải thư mục chứa nó." + "value" : "Xuất bản lên thư viện nhóm…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "请指向 socket 文件本身,而不是它所在的目录。" + "value" : "发布到团队库…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "請指向 socket 檔案本身,而不是它所在的目錄。" + "value" : "發佈到團隊庫…" } } } }, - "Port" : { + "Published %d saved queries to your team." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "포트" + "value" : "저장된 쿼리 %d개를 팀에 게시했습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Port" + "value" : "%d kayıtlı sorgu takımınıza yayınlandı." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cổng" + "value" : "Đã xuất bản %d truy vấn đã lưu cho nhóm của bạn." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "端口" + "value" : "已将 %d 条保存的查询发布给团队。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連接埠" + "value" : "已將 %d 條已儲存的查詢發佈給團隊。" } } } }, - "Port 1455 is in use. Quit the Codex CLI or another sign-in and try again." : { + "Published to the team library" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "포트 1455가 사용 중입니다. Codex CLI 또는 다른 로그인 세션을 종료한 후 다시 시도하십시오." + "value" : "팀 라이브러리에 게시됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "1455 portu kullanımda. Codex CLI’yi veya başka bir girişi kapatın ve tekrar deneyin." + "value" : "Takım kitaplığına yayınlandı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cổng 1455 đang được sử dụng. Hãy thoát Codex CLI hoặc một phiên đăng nhập khác rồi thử lại." + "value" : "Đã xuất bản lên thư viện nhóm" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "端口 1455 正在使用中。请退出 Codex CLI 或其他登录后重试。" + "value" : "已发布到团队库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連接埠 1455 正在使用中。請結束 Codex CLI 或其他登入後再試一次。" + "value" : "已發佈到團隊庫" } } } }, - "Port is already in use. Try a different port or close the other process." : { + "Purchase License" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Purchase License" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "포트가 이미 사용 중입니다. 다른 포트를 사용하거나 다른 프로세스를 종료하십시오." + "value" : "라이선스 구매" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Port zaten kullanımda. Farklı bir port deneyin veya diğer işlemi kapatın." + "value" : "Lisans Satın Al" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cổng đã được sử dụng. Hãy thử cổng khác hoặc đóng tiến trình đang dùng." + "value" : "Mua giấy phép" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "端口已被占用。请尝试其他端口或关闭占用端口的进程。" + "value" : "购买许可证" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連接埠已被佔用。請改用其他連接埠或關閉佔用的處理程序。" + "value" : "購買授權" } } } }, - "postgresql://user:password@host:5432/database" : { - "extractionState" : "stale", + "Purple" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "postgresql://user:password@host:5432/database" + "value" : "보라색" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "postgresql://user:password@host:5432/database" + "value" : "Mor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "postgresql://user:password@host:5432/database" + "value" : "Tím" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "postgresql://user:password@host:5432/database" + "value" : "紫色" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "postgresql://user:password@host:5432/database" + "value" : "紫色" } } } }, - "Potentially Dangerous Queries" : { + "Put field names in the first row" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "잠재적으로 위험한 쿼리" + "value" : "첫 번째 행에 필드 이름 포함" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Potentially Dangerous Queries" + "value" : "Put field names in the first row" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Truy vấn có thể nguy hiểm" + "value" : "Đặt tên trường ở dòng đầu tiên" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "潜在危险查询" + "value" : "将字段名放在第一行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "潛在危險查詢" + "value" : "將欄位名稱放在第一列" } } } }, - "Potentially Dangerous Query" : { - "extractionState" : "stale", + "Put the suggested SQL into the query editor" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "잠재적으로 위험한 쿼리" + "value" : "제안된 SQL을 쿼리 편집기에 삽입" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Potentially Dangerous Query" + "value" : "Önerilen SQL'i sorgu düzenleyiciye koy" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Truy vấn có thể nguy hiểm" + "value" : "Đưa SQL được đề xuất vào trình soạn truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "潜在危险查询" + "value" : "将建议的 SQL 放入查询编辑器" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "潛在危險查詢" + "value" : "將建議的 SQL 放入查詢編輯器" } } } }, - "Pre-Connect Script" : { + "QUICK" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 전 스크립트" + "value" : "QUICK" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı Öncesi Betik" + "value" : "HIZLI" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Script pre-connect" + "value" : "NHANH" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接前脚本" + "value" : "快速" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線前指令稿" + "value" : "快速" } } } }, - "Pre-connect script failed (exit %d): %@" : { + "Queries" : { + "comment" : "A section header for the list of queries in the favorites tab.", + "isCommentAutoGenerated" : true, "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Pre-connect script failed (exit %1$d): %2$@" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 전 스크립트 실패(종료 코드 %1$d): %2$@" + "value" : "쿼리" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı öncesi betik başarısız (çıkış %d): %@" + "value" : "Sorgular" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tập lệnh tiền kết nối thất bại (exit %d): %@" + "value" : "Truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接前脚本失败(退出码 %d):%@" + "value" : "查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線前指令稿失敗(退出碼 %1$d):%2$@" + "value" : "查詢" } } } }, - "Pre-connect script failed (exit %lld): %@" : { - "extractionState" : "stale", + "Queries you run appear here." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 전 스크립트 실패(종료 코드 %lld): %@" + "value" : "실행한 쿼리가 여기에 표시됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Pre-connect script failed (exit %lld): %@" + "value" : "Çalıştırdığınız sorgular burada görünür." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Script pre-connect thất bại (exit %lld): %@" + "value" : "Các truy vấn bạn chạy sẽ xuất hiện ở đây." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接前脚本失败(退出码 %lld):%@" + "value" : "你运行的查询会显示在这里。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線前指令稿失敗(退出碼 %lld):%@" + "value" : "你執行的查詢會顯示在這裡。" } } } }, - "Pre-connect script failed with exit code %d" : { + "Query" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 전 스크립트 실패(종료 코드 %d)" + "value" : "쿼리" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı öncesi betik %d çıkış koduyla başarısız oldu" + "value" : "Sorgu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tập lệnh tiền kết nối thất bại với mã thoát %d" + "value" : "Truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接前脚本失败,退出码 %d" + "value" : "查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線前指令稿失敗,退出碼 %d" + "value" : "查詢" } } } }, - "Pre-connect script failed with exit code %lld" : { - "extractionState" : "stale", + "Query Behavior" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 전 스크립트 실패(종료 코드 %lld)" + "value" : "쿼리 동작" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Pre-connect script failed with exit code %lld" + "value" : "Sorgu Davranışı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Script pre-connect thất bại với exit code %lld" + "value" : "Hành vi truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接前脚本失败,退出码 %lld" + "value" : "查询行为" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線前指令稿失敗,退出碼 %lld" + "value" : "查詢行為" } } } }, - "Pre-connect script timed out after 10 seconds" : { + "Query Execution" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 전 스크립트가 10초 후 시간 초과로 종료되었습니다" + "value" : "쿼리 실행" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı öncesi betik 10 saniye sonra zaman aşımına uğradı" + "value" : "Sorgu Çalıştırma" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Script pre-connect hết thời gian chờ sau 10 giây" + "value" : "Thực thi truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接前脚本超时(10秒后)" + "value" : "查询执行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線前指令稿在 10 秒後逾時" + "value" : "查詢執行" } } } }, - "Pre-connect script was cancelled" : { + "Query Execution Failed" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 전 스크립트가 취소되었습니다" + "value" : "쿼리 실행 실패" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı öncesi betik iptal edildi" + "value" : "Sorgu Çalıştırma Başarısız" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Script trước khi kết nối đã bị hủy" + "value" : "Thực thi truy vấn thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接前脚本已取消" + "value" : "查询执行失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線前指令稿已取消" + "value" : "查詢執行失敗" } } } }, - "Precision" : { - "extractionState" : "stale", + "Query History" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "정밀도" + "value" : "쿼리 기록" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Precision" + "value" : "Sorgu Geçmişi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Độ chính xác" + "value" : "Lịch sử truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "精度" + "value" : "查询历史" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "精確度" + "value" : "查詢歷史" } } } }, - "Precision:" : { - "extractionState" : "stale", + "Query History Is Unavailable" : { + "comment" : "A message that indicates that the query history is unavailable.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "정밀도:" + "value" : "쿼리 기록을 사용할 수 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Precision:" + "value" : "Sorgu Geçmişi Kullanılamıyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Độ chính xác:" + "value" : "Không dùng được lịch sử truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "精度:" + "value" : "查询历史不可用" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "精確度:" + "value" : "查詢歷史無法使用" } } } }, - "Preferred" : { + "Query History:" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "선호" + "value" : "쿼리 기록:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tercih Edilen" + "value" : "Query History:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ưu tiên" + "value" : "Lịch sử truy vấn:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "首选" + "value" : "查询历史:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "偏好" + "value" : "查詢歷史:" } } } }, - "Preferred connects in plain TCP for this driver. Use Required to enforce TCPS." : { + "Query Insights" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 드라이버에서 선호는 평문 TCP로 연결합니다. TCPS를 강제하려면 필수를 사용하십시오." + "value" : "쿼리 인사이트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu sürücüde Tercih Edilen düz TCP ile bağlanır. TCPS'yi zorunlu kılmak için Zorunlu kullanın." + "value" : "Sorgu Analizleri" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Với driver này, Preferred kết nối bằng TCP thường. Dùng Required để buộc dùng TCPS." + "value" : "Phân tích truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "对于此驱动,“首选”将使用纯 TCP 连接。请使用“必需”来强制 TCPS。" + "value" : "查询分析" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "對於此驅動程式,「首選」將使用純 TCP 連線。請使用「必要」來強制 TCPS。" + "value" : "查詢分析" } } } }, - "Preferred performs a 2-pass connect: tries TLS first, falls back to plain only on SSL handshake errors. Required by Cloud SQL and Azure MySQL." : { + "Query Result Limit" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "선호는 2단계 연결을 수행합니다. 먼저 TLS를 시도하고 SSL 핸드셰이크 오류가 발생한 경우에만 평문 연결로 전환합니다. Cloud SQL과 Azure MySQL에는 필수를 사용해야 합니다." + "value" : "쿼리 결과 제한" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tercih Edilen 2 aşamalı bağlanır: önce TLS dener, yalnızca SSL el sıkışma hatalarında düz bağlantıya döner. Cloud SQL ve Azure MySQL için Zorunlu gerekir." + "value" : "Sorgu Sonuç Limiti" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Preferred kết nối 2 bước: thử TLS trước, chỉ chuyển sang kết nối thường khi gặp lỗi bắt tay SSL. Cloud SQL và Azure MySQL yêu cầu Required." + "value" : "Giới hạn kết quả truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "“首选”执行两阶段连接:先尝试 TLS,仅在 SSL 握手出错时回退到明文。Cloud SQL 和 Azure MySQL 要求使用“必需”。" + "value" : "查询结果限制" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "「首選」執行兩階段連線:先嘗試 TLS,僅在 SSL 交握出錯時回退到明文。Cloud SQL 與 Azure MySQL 要求使用「必要」。" + "value" : "查詢結果上限" } } } }, - "Preferred requests TLS; the server decides. Required by SQL Server 2022 and Azure SQL Database." : { + "Query Result Row Cap" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "선호는 TLS를 요청하며 서버가 사용 여부를 결정합니다. SQL Server 2022와 Azure SQL Database에는 필수를 사용해야 합니다." + "value" : "쿼리 결과 행 상한" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tercih Edilen TLS ister; karar sunucunundur. SQL Server 2022 ve Azure SQL Database için Zorunlu gerekir." + "value" : "Sorgu Sonucu Satır Sınırı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Preferred yêu cầu TLS; máy chủ quyết định. SQL Server 2022 và Azure SQL Database yêu cầu Required." + "value" : "Giới hạn số hàng kết quả" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "“首选”会请求 TLS,由服务器决定。SQL Server 2022 和 Azure SQL Database 要求使用“必需”。" + "value" : "查询结果行数上限" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "「首選」會請求 TLS,由伺服器決定。SQL Server 2022 與 Azure SQL Database 要求使用「必要」。" + "value" : "查詢結果列數上限" } } } }, - "Preferred tries TLS first, falls back to plain. Matches psql and DataGrip defaults. Required by AWS RDS, Cloud SQL, Heroku, Supabase, Neon." : { + "Query Results" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "선호는 먼저 TLS를 시도하고 평문 연결로 전환합니다. psql 및 DataGrip 기본값과 같습니다. AWS RDS, Cloud SQL, Heroku, Supabase 및 Neon에는 필수를 사용해야 합니다." + "value" : "쿼리 결과" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tercih Edilen önce TLS dener, olmazsa düz bağlantıya döner. psql ve DataGrip varsayılanlarıyla aynıdır. AWS RDS, Cloud SQL, Heroku, Supabase ve Neon için Zorunlu gerekir." + "value" : "Sorgu Sonuçları" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Preferred thử TLS trước, chuyển sang kết nối thường nếu thất bại. Giống mặc định của psql và DataGrip. AWS RDS, Cloud SQL, Heroku, Supabase, Neon yêu cầu Required." + "value" : "Kết quả truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "“首选”先尝试 TLS,失败后回退到明文,与 psql 和 DataGrip 的默认行为一致。AWS RDS、Cloud SQL、Heroku、Supabase、Neon 要求使用“必需”。" + "value" : "查询结果" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "「Preferred」會先嘗試 TLS,失敗後改用純文字連線,與 psql 和 DataGrip 的預設行為一致。AWS RDS、Cloud SQL、Heroku、Supabase、Neon 要求使用「Required」。" + "value" : "查詢結果" } } } }, - "Prefix the variant applies" : { - - }, - "Preparing the metadata connection timed out." : { - - }, - "Preparing the session" : { + "Query cancelled" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "세션 준비 중" + "value" : "쿼리가 취소되었습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Oturum hazırlanıyor" + "value" : "Query cancelled" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang chuẩn bị phiên" + "value" : "Đã hủy truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在准备会话" + "value" : "查询已取消" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在準備工作階段" + "value" : "查詢已取消" } } } }, - "Preserve all values as strings" : { - "extractionState" : "stale", + "Query executed successfully" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 값을 문자열로 유지" + "value" : "쿼리가 성공적으로 실행되었습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Preserve all values as strings" + "value" : "Sorgu başarıyla çalıştırıldı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giữ nguyên tất cả giá trị dưới dạng chuỗi" + "value" : "Truy vấn thực thi thành công" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将所有值保留为字符串" + "value" : "查询执行成功" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將所有值保留為字串" + "value" : "查詢執行成功" } } } }, - "Preset Name" : { + "Query executing" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "프리셋 이름" + "value" : "쿼리 실행 중" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ön Ayar Adı" + "value" : "Sorgu çalışıyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên mẫu đặt trước" + "value" : "Đang thực hiện truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "预设名称" + "value" : "正在执行查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "預設集名稱" + "value" : "正在執行查詢" } } } }, - "Pretty Print" : { + "Query executing..." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "보기 좋게 출력" + "value" : "쿼리 실행 중..." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Biçimlendirerek Göster" + "value" : "Query executing..." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Định dạng đẹp" + "value" : "Đang thực thi truy vấn..." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "格式化输出" + "value" : "正在执行查询..." } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "美化輸出" + "value" : "正在執行查詢…" } } } }, - "Pretty print (formatted output)" : { - "extractionState" : "stale", + "Query execution failed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "보기 좋게 출력(서식이 지정된 출력)" + "value" : "쿼리 실행 실패" + } + } + } + }, + "Query failed. %@" : { + "comment" : "A message that is announced to the user when a query fails. The argument is the error message.", + "isCommentAutoGenerated" : true, + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "쿼리에 실패했습니다. %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Pretty print (formatted output)" + "value" : "Sorgu başarısız oldu. %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "In đẹp (đầu ra có định dạng)" + "value" : "Truy vấn thất bại. %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "格式化输出(带格式)" + "value" : "查询失败。%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "美化輸出(格式化輸出)" + "value" : "查詢失敗。%@" } } } }, - "Prevent CSV formula injection by prefixing values starting with =, +, -, @ with a single quote" : { - "extractionState" : "stale", + "Query failed: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "=, +, -, @로 시작하는 값 앞에 작은따옴표(')를 붙여 CSV 수식 삽입을 방지합니다" + "value" : "쿼리 실패: %@" + } + } + } + }, + "Query history for %@" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@의 쿼리 기록" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Prevent CSV formula injection by prefixing values starting with =, +, -, @ with a single quote" + "value" : "%@ için sorgu geçmişi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ngăn chặn chèn công thức CSV bằng cách thêm dấu nháy đơn trước các giá trị bắt đầu bằng =, +, -, @" + "value" : "Lịch sử truy vấn của %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "通过在以 =、+、-、@ 开头的值前添加单引号来防止 CSV 公式注入" + "value" : "%@的查询历史" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在以 =、+、-、@ 開頭的值前加上單引號,以防止 CSV 公式注入" + "value" : "%@的查詢記錄" } } } }, - "Prevent write operations (INSERT, UPDATE, DELETE, DROP, etc.)" : { - "extractionState" : "stale", + "Query parameters (:name syntax)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쓰기 작업(INSERT, UPDATE, DELETE, DROP 등)을 방지합니다" + "value" : "쿼리 매개변수(:name 구문)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Prevent write operations (INSERT, UPDATE, DELETE, DROP, etc.)" + "value" : "Sorgu parametreleri (:name söz dizimi)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ngăn chặn thao tác ghi (INSERT, UPDATE, DELETE, DROP, v.v.)" + "value" : "Tham số truy vấn (cú pháp :name)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "禁止写操作(INSERT、UPDATE、DELETE、DROP 等)" + "value" : "查询参数(:name 语法)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "禁止寫入操作(INSERT、UPDATE、DELETE、DROP 等)" + "value" : "查詢參數(:name 語法)" } } } }, - "Preview" : { + "Query preview" : { + "comment" : "Accessibility label for the query preview text view.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "미리보기" + "value" : "쿼리 미리보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Önizleme" + "value" : "Sorgu önizlemesi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xem trước" + "value" : "Xem trước truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "预览" + "value" : "查询预览" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "預覽" + "value" : "查詢預覽" } } } }, - "Preview %@" : { + "Query result limit must be between %@ and %@" : { + "extractionState" : "stale", "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Query result limit must be between %1$@ and %2$@" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 미리보기" + "value" : "쿼리 결과 제한은 %1$@에서 %2$@ 사이여야 합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Önizleme %@" + "value" : "Sorgu sonuç limiti %@ ile %@ arasında olmalıdır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xem trước %@" + "value" : "Giới hạn kết quả truy vấn phải từ %@ đến %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "预览 %@" + "value" : "查询结果限制必须在 %@ 到 %@ 之间" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "預覽 %@" + "value" : "查詢結果上限必須介於 %1$@ 到 %2$@ 之間" } } } }, - "Preview %@ (⌘⇧P)" : { - "extractionState" : "stale", + "Query result row cap must be between %@ and %@" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Query result row cap must be between %1$@ and %2$@" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 미리보기(⌘⇧P)" + "value" : "쿼리 결과 행 상한은 %1$@에서 %2$@ 사이여야 합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Önizleme %@ (⌘⇧P)" + "value" : "Sorgu sonucu satır sınırı %@ ile %@ arasında olmalıdır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xem trước %@ (⌘⇧P)" + "value" : "Giới hạn số hàng kết quả phải nằm trong khoảng %@ đến %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "预览 %@ (⌘⇧P)" + "value" : "查询结果行数上限必须在 %@ 和 %@ 之间" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "預覽 %@ (⌘⇧P)" + "value" : "查詢結果列數上限必須介於 %1$@ 到 %2$@ 之間" } } } }, - "Preview Commands" : { - "extractionState" : "stale", + "Query timeout" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "명령 미리보기" + "value" : "쿼리 제한 시간" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Preview Commands" + "value" : "Sorgu zaman aşımı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xem trước lệnh" + "value" : "Thời gian chờ truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "预览命令" + "value" : "查询超时" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "預覽命令" + "value" : "查詢逾時" } } } }, - "Preview Commands (⌘⇧P)" : { + "Query timeout in seconds (default 30, max 300)" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "명령 미리보기(⌘⇧P)" + "value" : "쿼리 제한 시간(초, 기본값 30, 최대 300)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Preview Commands (⌘⇧P)" + "value" : "Saniye cinsinden sorgu zaman aşımı (varsayılan 30, en çok 300)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xem trước lệnh (⌘⇧P)" + "value" : "Thời gian chờ truy vấn tính bằng giây (mặc định 30, tối đa 300)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "预览命令 (⌘⇧P)" + "value" : "查询超时秒数(默认 30,最大 300)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "預覽命令 (⌘⇧P)" + "value" : "查詢逾時秒數(預設 30,最大 300)" } } } }, - "Preview FK Reference" : { + "Query timeout in seconds (max 300). Defaults to the server's configured query timeout." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "FK 참조 미리보기" + "value" : "쿼리 제한 시간(초, 최대 300). 서버에 설정된 쿼리 제한 시간이 기본값입니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "FK Referansını Önizle" + "value" : "Saniye cinsinden sorgu zaman aşımı (en fazla 300). Varsayılan olarak sunucunun ayarlı sorgu zaman aşımıdır." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xem trước tham chiếu FK" + "value" : "Thời gian chờ truy vấn tính bằng giây (tối đa 300). Mặc định là thời gian chờ truy vấn đã cấu hình của máy chủ." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "预览外键引用" + "value" : "查询超时秒数(最大 300)。默认使用服务器配置的查询超时。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "預覽外鍵參照" + "value" : "查詢逾時秒數(最多 300)。預設使用伺服器設定的查詢逾時。" } } } }, - "Preview MQL" : { - "extractionState" : "stale", + "Query timeout:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "MQL 미리보기" + "value" : "쿼리 제한 시간:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Preview MQL" + "value" : "Sorgu zaman aşımı:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xem trước MQL" + "value" : "Thời gian chờ truy vấn:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "预览 MQL" + "value" : "查询超时:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "預覽 MQL" + "value" : "查詢逾時:" } } } }, - "Preview MQL (⌘⇧P)" : { + "Query was cancelled" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "쿼리가 취소되었습니다" + } + } + } + }, + "Query:" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "MQL 미리보기(⌘⇧P)" + "value" : "쿼리:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Preview MQL (⌘⇧P)" + "value" : "Query:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xem trước MQL (⌘⇧P)" + "value" : "Truy vấn:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "预览 MQL (⌘⇧P)" + "value" : "查询:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "預覽 MQL (⌘⇧P)" + "value" : "查詢:" } } } }, - "Preview Query" : { + "Quick Switcher" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 미리보기" + "value" : "빠른 전환" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorguyu Önizle" + "value" : "Quick Switcher" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xem trước truy vấn" + "value" : "Chuyển đổi nhanh" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "预览查询" + "value" : "快速切换" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "預覽查詢" + "value" : "快速切換器" } } } }, - "Preview Referenced Row" : { + "Quick Switcher (⇧⌘O)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "참조 대상 행 미리보기" + "value" : "빠른 전환(⇧⌘O)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Referans Satırı Önizle" + "value" : "Hızlı Geçiş (⇧⌘O)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xem trước dòng tham chiếu" + "value" : "Chuyển đổi nhanh (⇧⌘O)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "预览引用行" + "value" : "快速切换 (⇧⌘O)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "預覽參照列" + "value" : "快速切換器 (⇧⌘O)" } } } }, - "Preview Schema Changes" : { + "Quick Switcher (⌘P)" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "스키마 변경 사항 미리보기" + "value" : "빠른 전환(⌘P)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Preview Schema Changes" + "value" : "Quick Switcher (⌘P)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xem trước thay đổi cấu trúc" + "value" : "Chuyển đổi nhanh (⌘P)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "预览结构更改" + "value" : "快速切换 (⌘P)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "預覽綱要變更" + "value" : "快速切換器 (⌘P)" } } } }, - "Preview SQL" : { + "Quick Switcher..." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SQL 미리보기" + "value" : "빠른 전환..." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SQL Önizleme" + "value" : "Quick Switcher..." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xem trước SQL" + "value" : "Chuyển đổi nhanh..." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "预览 SQL" + "value" : "快速切换..." } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "預覽 SQL" + "value" : "快速切換器…" } } } }, - "Preview SQL (⌘⇧P)" : { + "Quick search across all columns..." : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SQL 미리보기(⌘⇧P)" + "value" : "모든 열에서 빠르게 검색..." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Preview SQL (⌘⇧P)" + "value" : "Quick search across all columns..." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xem trước SQL (⌘⇧P)" + "value" : "Tìm kiếm nhanh trên tất cả các cột..." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "预览 SQL (⌘⇧P)" + "value" : "快速搜索所有列..." } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "預覽 SQL (⌘⇧P)" - } - } - } - }, - "Previous match" : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "이전 일치 항목" + "value" : "在所有欄位中快速搜尋…" } } } }, - "Previous page" : { + "Quit & Reopen" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이전 페이지" + "value" : "종료 후 다시 열기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Önceki sayfa" + "value" : "Çık ve Yeniden Aç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trang trước" + "value" : "Thoát và mở lại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "上一页" + "value" : "退出并重新打开" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "上一頁" + "value" : "結束並重新開啟" } } } }, - "Previous Page" : { + "Quit Anyway" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이전 페이지" + "value" : "그래도 종료" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Önceki Sayfa" + "value" : "Yine de Çık" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trang trước" + "value" : "Vẫn thoát" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "上一页" + "value" : "仍然退出" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "上一頁" + "value" : "仍要結束" } } } }, - "Previous Page (⌘[)" : { - "extractionState" : "stale", + "Quit TablePro" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이전 페이지(⌘[)" + "value" : "TablePro 종료" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Previous Page (⌘[)" + "value" : "TablePro'dan Çık" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trang trước (⌘[)" + "value" : "Thoát TablePro" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "上一页 (⌘[)" + "value" : "退出 TablePro" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "上一頁 (⌘[)" + "value" : "結束 TablePro" } } } }, - "Previous Result" : { + "Quitting stops the run against %@. Statements that already ran stay applied." : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "종료하면 %@에 대한 실행이 중단됩니다. 이미 실행된 구문은 적용된 상태로 남습니다.", + "state" : "translated" + } + } + } + }, + "Quote" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이전 결과" + "value" : "따옴표 처리" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Önceki Sonuç" + "value" : "Quote" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết quả trước" + "value" : "Dấu ngoặc kép" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "上一个结果" + "value" : "引号" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "上一個結果" + "value" : "引號" } } } }, - "Previous Statement" : { + "Quote character" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이전 문" + "value" : "따옴표 문자" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Önceki İfade" + "value" : "Tırnak karakteri" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Câu lệnh trước" + "value" : "Ký tự trích dẫn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "上一条语句" + "value" : "引号字符" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "上一個陳述式" + "value" : "引號字元" } } } }, - "Previous Tab" : { + "Quote if needed" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이전 탭" + "value" : "필요한 경우 따옴표 사용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Previous Tab" + "value" : "Quote if needed" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tab trước" + "value" : "Đặt trong ngoặc kép nếu cần" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "上一个标签页" + "value" : "按需加引号" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "上一個分頁" + "value" : "必要時加引號" } } } }, - "Previous Tab (Alt)" : { + "RECENT" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이전 탭(Alt)" + "value" : "최근" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Previous Tab (Alt)" + "value" : "RECENT" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tab trước (Alt)" + "value" : "GẦN ĐÂY" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "上一个标签页 (Alt)" + "value" : "最近" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "上一個分頁 (Alt)" + "value" : "最近" } } } }, - "Primary" : { - "extractionState" : "stale", + "Ran" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Primary" + "value" : "실행 시각" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Primary" + "value" : "Çalıştırma" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Primary" + "value" : "Số lần chạy" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Primary" + "value" : "运行次数" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Primary" + "value" : "執行次數" } } } }, - "Primary Group Name" : { + "Range" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "프라이머리 그룹 이름" + "value" : "범위" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Birincil Grup Adı" + "value" : "Aralık" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên nhóm primary" + "value" : "Khoảng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "主节点组名称" + "value" : "范围" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "主節點群組名稱" + "value" : "範圍" } } } }, - "Primary key" : { + "Rank By" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기본 키" + "value" : "순위 기준" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Birincil anahtar" + "value" : "Sıralama Ölçütü" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khoá chính" + "value" : "Xếp hạng theo" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "主键" + "value" : "排序依据" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "主鍵" + "value" : "排序依據" } } } }, - "Primary Key" : { + "Rate limited" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기본 키" + "value" : "요청 한도 초과" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Birincil Anahtar" + "value" : "Hız sınırı aşıldı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khoá chính" + "value" : "Bị giới hạn tốc độ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "主键" + "value" : "已限流" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "主鍵" + "value" : "已達速率限制" } } } }, - "Primary key change" : { - - }, - "Primary Preferred" : { - "extractionState" : "stale", + "Rate limited. Please try again later." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Primary Preferred" + "value" : "요청 한도를 초과했습니다. 나중에 다시 시도하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Primary Preferred" + "value" : "İstek sınırına ulaşıldı. Lütfen daha sonra tekrar deneyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Primary Preferred" + "value" : "Đã vượt giới hạn tốc độ. Vui lòng thử lại sau." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Primary Preferred" + "value" : "请求频率超限。请稍后再试。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Primary Preferred" + "value" : "已達速率限制。請稍後再試。" } } } }, - "Primary Text" : { + "Raw" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기본 텍스트" + "value" : "원시" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Birincil Metin" + "value" : "Ham" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Văn bản chính" + "value" : "Thô" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "主要文本" + "value" : "原始" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "主要文字" + "value" : "原始" } } } }, - "Principal name" : { - - }, - "Principal the grants belong to" : { - - }, - "Priority %d" : { + "Raw SQL" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "우선순위 %d" + "value" : "원시 SQL" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Öncelik %d" + "value" : "Raw SQL" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Độ ưu tiên %d" + "value" : "SQL thô" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "优先级 %d" + "value" : "原始 SQL" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "優先順序 %d" + "value" : "原始 SQL" } } } }, - "Privacy" : { + "Raw SQL cannot be empty" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "개인정보 보호" + "value" : "원시 SQL은 비워 둘 수 없습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Privacy" + "value" : "Ham SQL boş olamaz" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Quyền riêng tư" + "value" : "SQL thô không được để trống" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "隐私" + "value" : "原始 SQL 不能为空" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "隱私" + "value" : "原始 SQL 不可為空" } } } }, - "private (%@)" : { + "Raw Value" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "비공개(%@)" + "value" : "원시 값" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "özel (%@)" + "value" : "Ham Değer" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "private (%@)" + "value" : "Giá trị gốc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "私有(%@)" + "value" : "原始值" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "私有(%@)" + "value" : "原始值" } } } }, - "Private Key" : { + "Re-enter passphrase" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "개인 키" + "value" : "암호 구문 다시 입력" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Özel Anahtar" + "value" : "Parolayı yeniden girin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khóa riêng tư" + "value" : "Nhập lại cụm mật khẩu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "私钥" + "value" : "再次输入口令" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "私鑰" + "value" : "再次輸入密碼" } } } }, - "Private Key File" : { + "Re-read the file with these settings. This discards unsaved changes." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "개인 키 파일" + "value" : "이 설정으로 파일을 다시 읽습니다. 저장하지 않은 변경 사항은 삭제됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Özel Anahtar Dosyası" + "value" : "Dosyayı bu ayarlarla yeniden okur. Bu, kaydedilmemiş değişiklikleri atar." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tệp khóa riêng tư" + "value" : "Đọc lại tệp với các cài đặt này. Thao tác này bỏ các thay đổi chưa lưu." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "私钥文件" + "value" : "使用这些设置重新读取文件。未保存的更改会被丢弃。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "私密金鑰檔案" + "value" : "使用這些設定重新讀取檔案。未儲存的變更會被捨棄。" } } } }, - "Private Key Passphrase" : { + "Read" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "개인 키 암호 구문" + "value" : "읽기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Özel Anahtar Parolası" + "value" : "Okuma" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cụm mật khẩu khóa riêng tư" + "value" : "Đọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "私钥口令" + "value" : "读取" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "私密金鑰密碼" + "value" : "讀取" } } } }, - "Privilege" : { + "Read & Write" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "권한" + "value" : "읽기 및 쓰기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yetki" + "value" : "Okuma & Yazma" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Quyền" + "value" : "Đọc & ghi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "权限" + "value" : "读写" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "權限" + "value" : "讀寫" } } } }, - "Privilege name" : { - - }, - "Privileges" : { + "Read Only" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "권한" + "value" : "읽기 전용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yetkiler" + "value" : "Salt Okunur" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Quyền" + "value" : "Chỉ đọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "权限" + "value" : "只读" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "權限" + "value" : "唯讀" } } } }, - "Pro" : { + "Read Only Connection" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Pro" + "value" : "읽기 전용 연결" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Pro" + "value" : "Salt Okunur Bağlantı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Pro" + "value" : "Kết nối chỉ đọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Pro" + "value" : "只读连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Pro" + "value" : "唯讀連線" } } } }, - "PRO" : { + "Read Preference" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "PRO" + "value" : "읽기 기본 설정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "PRO" + "value" : "Read Preference" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "PRO" + "value" : "Read Preference" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "PRO" + "value" : "Read Preference" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "PRO" + "value" : "Read Preference" } } } }, - "Pro feature" : { + "Read saved passwords from Keychain (requires permission)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Pro 기능" + "value" : "키체인에서 저장된 암호 읽기(권한 필요)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Pro özelliği" + "value" : "Keychain'den kayıtlı parolaları oku (izin gerektirir)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tính năng Pro" + "value" : "Đọc mật khẩu đã lưu từ Keychain (cần quyền)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Pro 功能" + "value" : "从钥匙串读取已保存的密码(需要权限)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Pro 功能" + "value" : "從鑰匙圈讀取已儲存的密碼(需要權限)" } } } }, - "Pro License Required" : { - "extractionState" : "stale", + "Read schema and run SELECT queries." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Pro 라이선스 필요" + "value" : "스키마를 읽고 SELECT 쿼리를 실행합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Pro Lisans Gerekli" + "value" : "Şemayı oku ve SELECT sorguları çalıştır." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Yêu cầu giấy phép Pro" + "value" : "Đọc schema và chạy truy vấn SELECT." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "需要 Pro 许可证" + "value" : "读取架构并运行 SELECT 查询。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "需要 Pro 授權" + "value" : "讀取綱要並執行 SELECT 查詢。" } } } }, - "Pro license required for iCloud Sync" : { + "Read schema and run any non-destructive query, including INSERT, UPDATE, and DELETE." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud 동기화에는 Pro 라이선스가 필요합니다" + "value" : "스키마를 읽고 INSERT, UPDATE, DELETE를 포함한 모든 비파괴 쿼리를 실행합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud Eşitlemesi için Pro lisans gereklidir" + "value" : "Şemayı oku ve INSERT, UPDATE, DELETE dahil yıkıcı olmayan tüm sorguları çalıştır." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cần giấy phép Pro để sử dụng iCloud Sync" + "value" : "Đọc schema và chạy mọi truy vấn không phá hủy, bao gồm INSERT, UPDATE và DELETE." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud 同步需要 Pro 许可证" + "value" : "读取架构并运行任意非破坏性查询,包括 INSERT、UPDATE 和 DELETE。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud 同步需要 Pro 授權" + "value" : "讀取綱要並執行任何非破壞性查詢,包括 INSERT、UPDATE 和 DELETE。" } } } }, - "Procedure" : { + "Read-Only" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "프로시저" + "value" : "읽기 전용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Prosedür" + "value" : "Read-Only" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Procedure" + "value" : "Chỉ đọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "存储过程" + "value" : "只读" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "預存程序" + "value" : "唯讀" } } } }, - "PROCEDURE or FUNCTION" : { - - }, - "Procedure: %@" : { + "Read-Only Connection" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "프로시저: %@" + "value" : "읽기 전용 연결" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Prosedür: %@" + "value" : "Salt Okunur Bağlantı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Procedure: %@" + "value" : "Kết nối chỉ đọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "存储过程:%@" + "value" : "只读连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "預存程序:%@" + "value" : "唯讀連線" } } } }, - "Procedures" : { + "Read-Only. Choose a different connection to write changes to." : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "읽기 전용입니다. 변경 사항을 기록하려면 다른 연결을 선택하십시오.", + "state" : "translated" + } + } + } + }, + "Read-Write" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "프로시저" + "value" : "읽기 및 쓰기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Prosedürler" + "value" : "Okuma-Yazma" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Procedures" + "value" : "Đọc-ghi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "存储过程" + "value" : "读写" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "預存程序" + "value" : "讀寫" } } } }, - "Process exited with code %d" : { + "Read-only" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "프로세스가 코드 %d(으)로 종료되었습니다" + "value" : "읽기 전용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İşlem %d koduyla çıktı" + "value" : "Salt okunur" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tiến trình thoát với mã %d" + "value" : "Chỉ đọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "进程退出,退出码 %d" + "value" : "只读" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "處理程序結束,結束碼 %d" + "value" : "唯讀" } } } }, - "Process id from get_server_dashboard" : { - - }, - "Process id, accepted by stop_server_session" : { - - }, - "Production" : { + "Read-only connection" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "프로덕션" + "value" : "읽기 전용 연결" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Üretim" + "value" : "Read-only connection" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Production" + "value" : "Kết nối chỉ đọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "生产" + "value" : "只读连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "生產" + "value" : "唯讀連線" } } } }, - "Profile" : { + "Reading connections from %@…" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Profile" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "프로필" + "value" : "%@에서 연결을 읽는 중…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Profil" + "value" : "%@ konumundan bağlantılar okunuyor…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hồ sơ" + "value" : "Đang đọc kết nối từ %@…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "配置" + "value" : "正在从%@读取连接…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "設定檔" + "value" : "正在從%@讀取連線…" } } } }, - "Profile Details" : { + "Reading connections..." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "프로필 세부사항" + "value" : "연결을 읽는 중..." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Profil Ayrıntıları" + "value" : "Bağlantılar okunuyor..." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chi tiết hồ sơ" + "value" : "Đang đọc kết nối..." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "配置详情" + "value" : "正在读取连接…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "設定檔詳細資料" + "value" : "正在讀取連線…" } } } }, - "Profile Name" : { + "Ready after restart" : { + "comment" : "A description of a plugin that is ready to use after the app is restarted.", + "isCommentAutoGenerated" : true, "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Profile Name" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "프로필 이름" + "value" : "재시작 후 사용 가능" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Profil Adı" + "value" : "Yeniden başlattıktan sonra hazır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên hồ sơ" + "value" : "Sẵn sàng sau khi khởi động lại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "配置名称" + "value" : "重启后可用" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "設定檔名稱" + "value" : "重新啟動後可用" } } } }, - "Profile Settings" : { - "extractionState" : "stale", + "Real" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Profile Settings" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "프로필 설정" + "value" : "Real" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Profil Ayarları" + "value" : "Real" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cài đặt hồ sơ" + "value" : "Real" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "配置设置" + "value" : "Real" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "設定檔設定" + "value" : "Real" } } } }, - "Progress estimated (%d table(s) could not be counted)" : { + "Reasoning" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "진행률은 추정치입니다(%d개 테이블의 행 수를 계산할 수 없음)" + "value" : "추론" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tahmini ilerleme (%d tablo sayılamadı)" + "value" : "Akıl yürütme" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tiến trình ước lượng (%d bảng không thể đếm)" + "value" : "Suy luận" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "进度为估算值(%d 个表无法计数)" + "value" : "推理" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "進度為估計值(%d 個資料表無法計數)" + "value" : "推理" } } } }, - "Project ID" : { + "Reasoning…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "프로젝트 ID" + "value" : "추론 중…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Proje ID" + "value" : "Akıl yürütüyor…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Project ID" + "value" : "Đang suy luận…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "项目 ID" + "value" : "推理中…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "專案 ID" + "value" : "推理中…" } } } }, - "Prompt at Connect" : { + "Reassign" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 시 입력 요청" + "value" : "재할당" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlanırken Sor" + "value" : "Yeniden Ata" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhắc khi kết nối" + "value" : "Gán lại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接时提示" + "value" : "重新分配" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線時提示" + "value" : "重新指派" } } } }, - "Prompt for API token" : { + "Reassign owned objects" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "API 토큰 입력 요청" + "value" : "소유 객체 재할당" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "API belirtecini sor" + "value" : "Sahip olunan nesneleri devret" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hỏi token API" + "value" : "Chuyển quyền sở hữu các đối tượng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "提示输入 API 令牌" + "value" : "转移拥有的对象" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "提示輸入 API 權杖" + "value" : "轉移擁有的物件" } } } }, - "Prompt for password" : { + "Reassign to" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "암호 입력 요청" + "value" : "재할당 대상" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Parolayı sor" + "value" : "Şuna devret" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hỏi mật khẩu" + "value" : "Chuyển cho" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "提示输入密码" + "value" : "转移给" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "提示輸入密碼" + "value" : "轉移給" } } } }, - "Prompt template" : { + "Recent" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "프롬프트 템플릿" + "value" : "최근" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İstem şablonu" + "value" : "Son Kullanılanlar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mẫu prompt" + "value" : "Gần đây" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "提示词模板" + "value" : "最近" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "提示詞範本" + "value" : "最近" } } } }, - "Propose indexes for a slow query" : { - - }, - "protected" : { + "Recent Conversations" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "보호됨" + "value" : "최근 대화" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "korumalı" + "value" : "Son Konuşmalar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "protected" + "value" : "Cuộc trò chuyện gần đây" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "受保护" + "value" : "最近的会话" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "受保護" + "value" : "最近的對話" } } } }, - "Providers" : { + "Recent Queries" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "제공자" + "value" : "최근 쿼리" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Providers" + "value" : "Son Sorgular" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhà cung cấp" + "value" : "Truy vấn gần đây" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "提供商" + "value" : "最近的查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "供應商" + "value" : "最近的查詢" } } } }, - "Proxy Server" : { + "Recent query history for a connection (supports ?limit=, ?search=, ?date_filter=)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "프록시 서버" + "value" : "연결의 최근 쿼리 기록(?limit=, ?search=, ?date_filter= 지원)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Proxy Sunucusu" + "value" : "Bir bağlantının son sorgu geçmişi (?limit=, ?search=, ?date_filter= destekler)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Máy chủ proxy" + "value" : "Lịch sử truy vấn gần đây của một kết nối (hỗ trợ ?limit=, ?search=, ?date_filter=)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "代理服务器" + "value" : "连接的最近查询历史(支持 ?limit=、?search=、?date_filter=)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "代理伺服器" + "value" : "連線的最近查詢記錄(支援 ?limit=、?search=、?date_filter=)" } } } }, - "Public key authentication failed: %@" : { - "extractionState" : "stale", + "Recent query history for this connection" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "공개 키 인증에 실패했습니다: %@" + "value" : "이 연결의 최근 쿼리 기록" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Public key authentication failed: %@" + "value" : "Bu bağlantının son sorgu geçmişi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xác thực khóa công khai thất bại: %@" + "value" : "Lịch sử truy vấn gần đây của kết nối này" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "公钥认证失败:%@" + "value" : "此连接的最近查询历史" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "公鑰驗證失敗:%@" + "value" : "此連線的最近查詢記錄" } } } }, - "Publish" : { + "Recently Closed" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "게시" + "value" : "최근에 닫은 항목" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yayınla" + "value" : "Son Kapatılanlar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất bản" + "value" : "Vừa đóng gần đây" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "发布" + "value" : "最近关闭" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "發佈" + "value" : "最近關閉" } } } }, - "Publish %d Connections to Team Catalog…" : { + "Recheck" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%d개 연결을 팀 카탈로그에 게시…" + "value" : "다시 확인" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%d Bağlantıyı Takım Kataloğuna Yayınla…" + "value" : "Yeniden Denetle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất bản %d kết nối lên danh mục nhóm…" + "value" : "Kiểm tra lại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将 %d 个连接发布到团队目录…" + "value" : "重新检查" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將 %d 個連線發佈到團隊目錄…" + "value" : "重新檢查" } } } }, - "Publish %d Connections to Team Library…" : { + "Reconnect" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%d개 연결을 팀 라이브러리에 게시…" + "value" : "다시 연결" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%d Bağlantıyı Takım Kitaplığına Yayınla…" + "value" : "Yeniden Bağlan" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất bản %d kết nối lên thư viện nhóm…" + "value" : "Kết nối lại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将 %d 个连接发布到团队库…" + "value" : "重新连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將 %d 個連線發佈到團隊庫…" + "value" : "重新連線" } } } }, - "Publish connections to a shared folder your team reads from. Passwords are never included." : { + "Reconnect failed: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "팀이 사용하는 공유 폴더에 연결을 게시합니다. 암호는 포함되지 않습니다." + "value" : "다시 연결하지 못했습니다: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantıları, takımınızın okuduğu paylaşılan bir klasöre yayınlayın. Parolalar hiçbir zaman dahil edilmez." + "value" : "Yeniden bağlanma başarısız: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất bản các kết nối vào một thư mục dùng chung mà nhóm bạn đọc từ đó. Mật khẩu không bao giờ được đưa vào." + "value" : "Kết nối lại thất bại: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将连接发布到团队读取的共享文件夹。密码不会被包含在内。" + "value" : "重新连接失败:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將連線發佈到團隊讀取的共用資料夾。密碼絕不會包含在內。" + "value" : "重新連線失敗:%@" } } } }, - "Publish Saved Queries to Team..." : { + "Reconnect to Database" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "저장된 쿼리를 팀에 게시..." + "value" : "데이터베이스에 다시 연결" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kayıtlı Sorguları Takıma Yayınla..." + "value" : "Reconnect to Database" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất bản truy vấn đã lưu cho nhóm..." + "value" : "Kết nối lại cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将已保存的查询发布给团队..." + "value" : "重新连接数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將已儲存的查詢發佈給團隊..." + "value" : "重新連線資料庫" } } } }, - "Publish Saved Queries to Team…" : { - "comment" : "Text for a menu item that publishes saved queries to the user's team.", - "isCommentAutoGenerated" : true, + "Reconnecting failed after %d attempts." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "저장된 쿼리를 팀에 게시…" + "value" : "%d번 시도한 후에도 다시 연결하지 못했습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kayıtlı Sorguları Takıma Yayınla…" + "value" : "%d denemeden sonra yeniden bağlanılamadı." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất bản truy vấn đã lưu cho nhóm…" + "value" : "Kết nối lại thất bại sau %d lần thử." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将已保存的查询发布到团队…" + "value" : "重连在 %d 次尝试后失败。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將已儲存的查詢發佈到團隊…" + "value" : "重新連線在 %d 次嘗試後失敗。" } } } }, - "Publish saved queries to your team?" : { + "Record Access" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "저장된 쿼리를 팀에 게시하시겠습니까?" + "value" : "레코드 액세스" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kayıtlı sorgular takımınıza yayınlansın mı?" + "value" : "Kayıt Erişimi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất bản các truy vấn đã lưu cho nhóm của bạn?" + "value" : "Truy cập bản ghi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "要将已保存的查询发布给团队吗?" + "value" : "记录访问" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "要將已儲存的查詢發佈給團隊嗎?" + "value" : "記錄存取" } } } }, - "Publish to Team Catalog…" : { + "Recording shortcut" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "팀 카탈로그에 게시…" + "value" : "단축키 기록 중" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Takım Kataloğuna Yayınla…" + "value" : "Kısayol kaydediliyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất bản lên danh mục nhóm…" + "value" : "Đang ghi phím tắt" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "发布到团队目录…" + "value" : "正在录制快捷键" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "發佈到團隊目錄…" + "value" : "正在錄製快速鍵" } } } }, - "Publish to Team Library…" : { + "Red" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "팀 라이브러리에 게시…" + "value" : "빨간색" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Takım Kitaplığına Yayınla…" + "value" : "Kırmızı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xuất bản lên thư viện nhóm…" + "value" : "Đỏ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "发布到团队库…" + "value" : "红色" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "發佈到團隊庫…" + "value" : "紅色" } } } }, - "Published %d saved queries to your team." : { + "Redis" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "저장된 쿼리 %d개를 팀에 게시했습니다." + "value" : "Redis" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%d kayıtlı sorgu takımınıza yayınlandı." + "value" : "Redis" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã xuất bản %d truy vấn đã lưu cho nhóm của bạn." + "value" : "Redis" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已将 %d 条保存的查询发布给团队。" + "value" : "Redis" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已將 %d 條已儲存的查詢發佈給團隊。" + "value" : "Redis" } } } }, - "Published to the team library" : { + "Redis driver has no TLS fallback. Preferred and Required both force TLS. Use Required for Redis Cloud, Upstash, and AWS ElastiCache encrypted endpoints." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "팀 라이브러리에 게시됨" + "value" : "Redis 드라이버는 TLS 폴백을 지원하지 않습니다. ‘선호’와 ‘필수’ 모두 TLS를 강제합니다. Redis Cloud, Upstash 및 AWS ElastiCache 암호화 엔드포인트에는 ‘필수’를 사용하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Takım kitaplığına yayınlandı" + "value" : "Redis sürücüsünde TLS geri dönüşü yoktur. Tercih Edilen ve Zorunlu'nun ikisi de TLS'yi zorunlu kılar. Redis Cloud, Upstash ve AWS ElastiCache şifreli uç noktaları için Zorunlu kullanın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã xuất bản lên thư viện nhóm" + "value" : "Driver Redis không có cơ chế dự phòng TLS. Preferred và Required đều buộc dùng TLS. Dùng Required cho Redis Cloud, Upstash và các endpoint mã hóa của AWS ElastiCache." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已发布到团队库" + "value" : "Redis 驱动没有 TLS 回退。“首选”和“必需”都会强制使用 TLS。连接 Redis Cloud、Upstash 和 AWS ElastiCache 加密端点时请使用“必需”。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已發佈到團隊庫" + "value" : "Redis 驅動程式沒有 TLS 備援。「Preferred」和「Required」都會強制使用 TLS。連接 Redis Cloud、Upstash 和 AWS ElastiCache 加密端點時請使用「Required」。" } } } }, - "Purchase License" : { + "Redo" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Purchase License" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "라이선스 구매" + "value" : "실행 복귀" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Lisans Satın Al" + "value" : "Redo" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mua giấy phép" + "value" : "Làm lại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "购买许可证" + "value" : "重做" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "購買授權" + "value" : "重做" } } } }, - "Purple" : { + "Ref Columns" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "보라색" + "value" : "참조 열" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Mor" + "value" : "Referans Sütunlar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tím" + "value" : "Cột tham chiếu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "紫色" + "value" : "引用列" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "紫色" + "value" : "參考欄位" } } } }, - "Put field names in the first row" : { - "extractionState" : "stale", + "Ref Schema" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "첫 번째 행에 필드 이름 포함" + "value" : "참조 스키마" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Put field names in the first row" + "value" : "Referans Şema" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đặt tên trường ở dòng đầu tiên" + "value" : "Schema tham chiếu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将字段名放在第一行" + "value" : "参考 Schema" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將欄位名稱放在第一列" + "value" : "參考綱要" } } } }, - "Put the suggested SQL into the query editor" : { + "Ref Table" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "제안된 SQL을 쿼리 편집기에 삽입" + "value" : "참조 테이블" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Önerilen SQL'i sorgu düzenleyiciye koy" + "value" : "Referans Tablo" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đưa SQL được đề xuất vào trình soạn truy vấn" + "value" : "Bảng tham chiếu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将建议的 SQL 放入查询编辑器" + "value" : "引用表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將建議的 SQL 放入查詢編輯器" + "value" : "參考資料表" } } } }, - "Queries" : { - "comment" : "A section header for the list of queries in the favorites tab.", - "isCommentAutoGenerated" : true, + "Referenced columns (comma-separated)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리" + "value" : "참조 열(쉼표로 구분)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgular" + "value" : "Referenced columns (comma-separated)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Truy vấn" + "value" : "Cột tham chiếu (phân tách bằng dấu phẩy)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "查询" + "value" : "引用列(逗号分隔)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "查詢" + "value" : "參考欄位(以逗號分隔)" } } } }, - "Queries recently run against a connection, newest first. limit is 1 to 500 and defaults to 50, search matches the query text, and date_filter is today, thisWeek or thisMonth." : { - - }, - "Queries recently run against this connection, newest first" : { - - }, - "Queries you run appear here." : { + "Referenced row not found" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "실행한 쿼리가 여기에 표시됩니다." + "value" : "참조된 행을 찾을 수 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Çalıştırdığınız sorgular burada görünür." + "value" : "Referans satır bulunamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Các truy vấn bạn chạy sẽ xuất hiện ở đây." + "value" : "Không tìm thấy dòng tham chiếu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "你运行的查询会显示在这里。" + "value" : "未找到引用行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "你執行的查詢會顯示在這裡。" + "value" : "找不到參考的列" } } } }, - "Query" : { + "Referenced table" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리" + "value" : "참조된 테이블" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgu" + "value" : "Referenced table" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Truy vấn" + "value" : "Bảng tham chiếu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "查询" + "value" : "引用表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "查詢" + "value" : "參考的資料表" } } } }, - "Query Behavior" : { + "Refresh" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 동작" + "value" : "새로 고침" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgu Davranışı" + "value" : "Yenile" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hành vi truy vấn" + "value" : "Làm mới" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "查询行为" + "value" : "刷新" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "查詢行為" + "value" : "重新整理" } } } }, - "Query cancelled" : { - "extractionState" : "stale", + "Refresh & Save" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리가 취소되었습니다" + "value" : "새로 고침 및 저장" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Query cancelled" + "value" : "Yenile ve Kaydet" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã hủy truy vấn" + "value" : "Làm mới & Lưu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "查询已取消" + "value" : "刷新并保存" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "查詢已取消" + "value" : "重新整理並儲存" } } } }, - "Query executed successfully" : { + "Refresh (⌘R)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리가 성공적으로 실행되었습니다" + "value" : "새로 고침(⌘R)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgu başarıyla çalıştırıldı" + "value" : "Refresh (⌘R)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Truy vấn thực thi thành công" + "value" : "Làm mới (⌘R)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "查询执行成功" + "value" : "刷新 (⌘R)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "查詢執行成功" + "value" : "重新整理 (⌘R)" } } } }, - "Query executing" : { + "Refresh Now" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 실행 중" + "value" : "지금 새로 고침" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgu çalışıyor" + "value" : "Şimdi Yenile" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang thực hiện truy vấn" + "value" : "Làm mới ngay" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在执行查询" + "value" : "立即刷新" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在執行查詢" + "value" : "立即重新整理" } } } }, - "Query executing..." : { + "Refresh data" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 실행 중..." + "value" : "데이터 새로 고침" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Query executing..." + "value" : "Refresh data" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang thực thi truy vấn..." + "value" : "Làm mới dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在执行查询..." + "value" : "刷新数据" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在執行查詢…" + "value" : "重新整理資料" } } } }, - "Query Execution" : { + "Refresh database list" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 실행" + "value" : "데이터베이스 목록 새로 고침" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgu Çalıştırma" + "value" : "Refresh database list" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thực thi truy vấn" + "value" : "Làm mới danh sách cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "查询执行" + "value" : "刷新数据库列表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "查詢執行" + "value" : "重新整理資料庫清單" } } } }, - "Query execution failed" : { - "extractionState" : "stale", + "Refresh license status from server" : { "localizations" : { - "ko" : { + "en" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 실행 실패" + "value" : "Refresh license status from server" } - } - } - }, - "Query Execution Failed" : { - "extractionState" : "stale", - "localizations" : { + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 실행 실패" + "value" : "서버에서 라이선스 상태 새로 고침" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgu Çalıştırma Başarısız" + "value" : "Sunucudan lisans durumunu yenile" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thực thi truy vấn thất bại" + "value" : "Làm mới trạng thái giấy phép từ máy chủ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "查询执行失败" + "value" : "从服务器刷新许可证状态" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "查詢執行失敗" - } - } - } - }, - "Query failed: %@" : { - "extractionState" : "stale", - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "쿼리 실패: %@" + "value" : "從伺服器重新整理授權狀態" } } } }, - "Query failed. %@" : { - "comment" : "A message that is announced to the user when a query fails. The argument is the error message.", - "isCommentAutoGenerated" : true, + "Refresh plugin list" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리에 실패했습니다. %@" + "value" : "플러그인 목록 새로 고침" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgu başarısız oldu. %@" + "value" : "Eklenti listesini yenile" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Truy vấn thất bại. %@" + "value" : "Làm mới danh sách plugin" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "查询失败。%@" + "value" : "刷新插件列表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "查詢失敗。%@" + "value" : "重新整理外掛清單" } } } }, - "Query for a question on %@" : { - - }, - "Query History" : { + "Refreshing" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 기록" + "value" : "새로 고치는 중" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgu Geçmişi" + "value" : "Yenileniyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lịch sử truy vấn" + "value" : "Đang làm mới" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "查询历史" + "value" : "正在刷新" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "查詢歷史" + "value" : "正在重新整理" } } } }, - "Query history for %@" : { - "extractionState" : "stale", + "Refreshing will discard all unsaved changes." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@의 쿼리 기록" + "value" : "새로 고치면 저장하지 않은 모든 변경 사항이 삭제됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ için sorgu geçmişi" + "value" : "Yenileme, kaydedilmemiş tüm değişiklikleri siler." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lịch sử truy vấn của %@" + "value" : "Làm mới sẽ hủy tất cả thay đổi chưa lưu." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%@的查询历史" + "value" : "刷新将丢弃所有未保存的更改。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%@的查詢記錄" + "value" : "重新整理將捨棄所有未儲存的變更。" } } } }, - "Query History Is Unavailable" : { - "comment" : "A message that indicates that the query history is unavailable.", - "isCommentAutoGenerated" : true, + "Regenerate" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 기록을 사용할 수 없음" + "value" : "다시 생성" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgu Geçmişi Kullanılamıyor" + "value" : "Regenerate" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không dùng được lịch sử truy vấn" + "value" : "Tạo lại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "查询历史不可用" + "value" : "重新生成" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "查詢歷史無法使用" + "value" : "重新產生" } } } }, - "Query history of %@" : { - - }, - "Query history summary for %@" : { - - }, - "Query History:" : { - "extractionState" : "stale", + "Regex" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 기록:" + "value" : "정규식" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Query History:" + "value" : "Regex" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lịch sử truy vấn:" + "value" : "Regex" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "查询历史:" + "value" : "正则表达式" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "查詢歷史:" + "value" : "正規表達式" } } } }, - "Query Insights" : { + "Registry" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 인사이트" + "value" : "레지스트리" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgu Analizleri" + "value" : "Registry" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phân tích truy vấn" + "value" : "Kho plugin" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "查询分析" + "value" : "插件仓库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "查詢分析" + "value" : "外掛註冊" } } } }, - "Query parameters (:name syntax)" : { + "Relational" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 매개변수(:name 구문)" + "value" : "관계형" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgu parametreleri (:name söz dizimi)" + "value" : "İlişkisel" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tham số truy vấn (cú pháp :name)" + "value" : "Quan hệ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "查询参数(:name 语法)" + "value" : "关系型" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "查詢參數(:name 語法)" + "value" : "關聯式" } } } }, - "Query preview" : { - "comment" : "Accessibility label for the query preview text view.", - "isCommentAutoGenerated" : true, + "Relaunch Failed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 미리보기" + "value" : "재실행 실패" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgu önizlemesi" + "value" : "Yeniden Başlatma Başarısız" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xem trước truy vấn" + "value" : "Mở lại thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "查询预览" + "value" : "重新启动失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "查詢預覽" + "value" : "重新啟動失敗" } } } }, - "Query Result Limit" : { - "extractionState" : "stale", + "Reload" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 결과 제한" + "value" : "다시 로드" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgu Sonuç Limiti" + "value" : "Yeniden Yükle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giới hạn kết quả truy vấn" + "value" : "Tải lại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "查询结果限制" + "value" : "重新加载" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "查詢結果上限" + "value" : "重新載入" } } } }, - "Query result limit must be between %@ and %@" : { - "extractionState" : "stale", + "Reload from Disk" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Query result limit must be between %1$@ and %2$@" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 결과 제한은 %1$@에서 %2$@ 사이여야 합니다" + "value" : "디스크에서 다시 로드" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgu sonuç limiti %@ ile %@ arasında olmalıdır" + "value" : "Diskten Yeniden Yükle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giới hạn kết quả truy vấn phải từ %@ đến %@" + "value" : "Tải lại từ đĩa" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "查询结果限制必须在 %@ 到 %@ 之间" + "value" : "从磁盘重新载入" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "查詢結果上限必須介於 %1$@ 到 %2$@ 之間" + "value" : "從磁碟重新載入" } } } }, - "Query Result Row Cap" : { + "Reload with new properties?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 결과 행 상한" + "value" : "새 속성으로 다시 로드하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgu Sonucu Satır Sınırı" + "value" : "Yeni özelliklerle yeniden yüklensin mi?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giới hạn số hàng kết quả" + "value" : "Tải lại với các thuộc tính mới?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "查询结果行数上限" + "value" : "要用新属性重新加载吗?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "查詢結果列數上限" + "value" : "要用新屬性重新載入嗎?" } } } }, - "Query result row cap must be between %@ and %@" : { + "Remote (Quack)" : { + "extractionState" : "stale", "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Query result row cap must be between %1$@ and %2$@" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 결과 행 상한은 %1$@에서 %2$@ 사이여야 합니다" + "value" : "원격(Quack)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgu sonucu satır sınırı %@ ile %@ arasında olmalıdır" + "value" : "Uzak (Quack)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giới hạn số hàng kết quả phải nằm trong khoảng %@ đến %@" + "value" : "Từ xa (Quack)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "查询结果行数上限必须在 %@ 和 %@ 之间" + "value" : "远程 (Quack)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "查詢結果列數上限必須介於 %1$@ 到 %2$@ 之間" + "value" : "遠端 (Quack)" } } } }, - "Query Results" : { + "Remote (Quack, experimental)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 결과" + "value" : "원격(Quack, 실험적)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgu Sonuçları" + "value" : "Uzak (Quack, deneysel)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết quả truy vấn" + "value" : "Từ xa (Quack, thử nghiệm)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "查询结果" + "value" : "远程(Quack,实验性)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "查詢結果" + "value" : "遠端(Quack,實驗性)" } } } }, - "Query review on %@" : { - - }, - "Query timed out after %d seconds" : { - - }, - "Query timeout" : { + "Remote (Turso)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 제한 시간" + "value" : "원격(Turso)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgu zaman aşımı" + "value" : "Uzak (Turso)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thời gian chờ truy vấn" + "value" : "Từ xa (Turso)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "查询超时" + "value" : "远程 (Turso)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "查詢逾時" + "value" : "遠端 (Turso)" } } } }, - "Query timeout in seconds (default 30, max 300)" : { - "extractionState" : "stale", + "Remove" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 제한 시간(초, 기본값 30, 최대 300)" + "value" : "제거" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Saniye cinsinden sorgu zaman aşımı (varsayılan 30, en çok 300)" + "value" : "Kaldır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thời gian chờ truy vấn tính bằng giây (mặc định 30, tối đa 300)" + "value" : "Gỡ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "查询超时秒数(默认 30,最大 300)" + "value" : "移除" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "查詢逾時秒數(預設 30,最大 300)" + "value" : "移除" } } } }, - "Query timeout in seconds (max 300). Defaults to the server's configured query timeout." : { - "extractionState" : "stale", + "Remove %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 제한 시간(초, 최대 300). 서버에 설정된 쿼리 제한 시간이 기본값입니다." + "value" : "%@ 제거" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Saniye cinsinden sorgu zaman aşımı (en fazla 300). Varsayılan olarak sunucunun ayarlı sorgu zaman aşımıdır." + "value" : "%@ Öğesini Kaldır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thời gian chờ truy vấn tính bằng giây (tối đa 300). Mặc định là thời gian chờ truy vấn đã cấu hình của máy chủ." + "value" : "Gỡ %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "查询超时秒数(最大 300)。默认使用服务器配置的查询超时。" + "value" : "移除%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "查詢逾時秒數(最多 300)。預設使用伺服器設定的查詢逾時。" + "value" : "移除%@" } } } }, - "Query timeout:" : { + "Remove %@?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 제한 시간:" + "value" : "%@을(를) 제거하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgu zaman aşımı:" + "value" : "%@ kaldırılsın mı?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thời gian chờ truy vấn:" + "value" : "Gỡ %@?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "查询超时:" + "value" : "移除 %@?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "查詢逾時:" - } - } - } - }, - "Query was cancelled" : { - "extractionState" : "stale", - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "쿼리가 취소되었습니다" + "value" : "移除 %@?" } } } }, - "Query:" : { - "extractionState" : "stale", + "Remove All Filters" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리:" + "value" : "모든 필터 제거" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Query:" + "value" : "Tüm Filtreleri Kaldır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Truy vấn:" + "value" : "Gỡ tất cả bộ lọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "查询:" + "value" : "移除所有筛选" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "查詢:" + "value" : "移除所有篩選" } } } }, - "Question" : { - - }, - "QUICK" : { + "Remove Column" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "QUICK" + "value" : "열 제거" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "HIZLI" + "value" : "Sütunu Kaldır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "NHANH" + "value" : "Gỡ cột" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "快速" + "value" : "移除列" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "快速" + "value" : "移除欄位" } } } }, - "Quick search across all columns..." : { - "extractionState" : "stale", + "Remove Element" : { + "comment" : "A button that removes an element from an array.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 열에서 빠르게 검색..." + "value" : "요소 제거" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Quick search across all columns..." + "value" : "Öğeyi Kaldır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tìm kiếm nhanh trên tất cả các cột..." + "value" : "Xoá phần tử" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "快速搜索所有列..." + "value" : "移除元素" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在所有欄位中快速搜尋…" + "value" : "移除元素" } } } }, - "Quick Switcher" : { - "extractionState" : "stale", + "Remove Failed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "빠른 전환" + "value" : "제거 실패" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Quick Switcher" + "value" : "Kaldırma Başarısız" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển đổi nhanh" + "value" : "Gỡ thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "快速切换" + "value" : "移除失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "快速切換器" + "value" : "移除失敗" } } } }, - "Quick Switcher (⇧⌘O)" : { - "extractionState" : "stale", + "Remove Filter" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "빠른 전환(⇧⌘O)" + "value" : "필터 제거" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Hızlı Geçiş (⇧⌘O)" + "value" : "Filtreyi Kaldır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển đổi nhanh (⇧⌘O)" + "value" : "Xóa bộ lọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "快速切换 (⇧⌘O)" + "value" : "移除筛选" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "快速切換器 (⇧⌘O)" + "value" : "移除篩選" } } } }, - "Quick Switcher (⌘P)" : { - "extractionState" : "stale", + "Remove Folder" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "빠른 전환(⌘P)" + "value" : "폴더 제거" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Quick Switcher (⌘P)" + "value" : "Klasörü Kaldır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển đổi nhanh (⌘P)" + "value" : "Xóa Thư mục" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "快速切换 (⌘P)" + "value" : "移除文件夹" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "快速切換器 (⌘P)" + "value" : "移除資料夾" } } } }, - "Quick Switcher..." : { - "extractionState" : "stale", + "Remove Foreign Key" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "빠른 전환..." + "value" : "외래 키 제거" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Quick Switcher..." + "value" : "Yabancı Anahtarı Kaldır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển đổi nhanh..." + "value" : "Gỡ khóa ngoại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "快速切换..." + "value" : "移除外键" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "快速切換器…" + "value" : "移除外鍵" } } } }, - "Quit & Reopen" : { + "Remove Host" : { + "comment" : "Label for a button that removes the selected host from a list.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "종료 후 다시 열기" + "value" : "호스트 제거" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Çık ve Yeniden Aç" + "value" : "Sunucuyu Kaldır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thoát và mở lại" + "value" : "Xoá máy chủ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "退出并重新打开" + "value" : "移除主机" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "結束並重新開啟" + "value" : "移除主機" } } } }, - "Quit Anyway" : { + "Remove Index" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "그래도 종료" + "value" : "인덱스 제거" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yine de Çık" + "value" : "İndeksi Kaldır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Vẫn thoát" + "value" : "Gỡ index" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "仍然退出" + "value" : "移除索引" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "仍要結束" + "value" : "移除索引" } } } }, - "Quit TablePro" : { + "Remove Linked Folder?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro 종료" + "value" : "연결된 폴더를 제거하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro'dan Çık" + "value" : "Bağlı Klasör Kaldırılsın mı?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thoát TablePro" + "value" : "Gỡ thư mục liên kết?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "退出 TablePro" + "value" : "要移除链接的文件夹吗?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "結束 TablePro" + "value" : "要移除連結的資料夾嗎?" } } } }, - "Quitting stops the run against %@. Statements that already ran stay applied." : { - - }, - "Quote" : { - "extractionState" : "stale", + "Remove Provider" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "따옴표 처리" + "value" : "제공자 제거" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Quote" + "value" : "Sağlayıcıyı Kaldır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dấu ngoặc kép" + "value" : "Gỡ nhà cung cấp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "引号" + "value" : "移除提供方" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "引號" + "value" : "移除供應商" } } } }, - "Quote character" : { + "Remove Provider?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "따옴표 문자" + "value" : "제공자를 제거하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tırnak karakteri" + "value" : "Sağlayıcı Kaldırılsın mı?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ký tự trích dẫn" + "value" : "Gỡ nhà cung cấp?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "引号字符" + "value" : "移除提供方?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "引號字元" + "value" : "移除供應商?" } } } }, - "Quote Identifiers" : { - - }, - "Quote identifiers and escape string literals using the connection's own driver rules. Use it before putting any name or value into hand-written SQL." : { - - }, - "Quote if needed" : { + "Remove all filters and reload" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필요한 경우 따옴표 사용" + "value" : "모든 필터를 제거하고 다시 로드" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Quote if needed" + "value" : "Tüm filtreleri kaldır ve yeniden yükle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đặt trong ngoặc kép nếu cần" + "value" : "Xóa tất cả bộ lọc và tải lại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "按需加引号" + "value" : "移除所有筛选并重新加载" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "必要時加引號" + "value" : "移除所有篩選並重新載入" } } } }, - "Quoted identifiers, in the order supplied" : { - - }, - "Ran" : { + "Remove attachment" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "실행 시각" + "value" : "첨부 파일 제거" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Çalıştırma" + "value" : "Eki kaldır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Số lần chạy" + "value" : "Gỡ tệp đính kèm" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "运行次数" + "value" : "移除附件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "執行次數" + "value" : "移除附件" } } } }, - "Ran %@ statement" : { - - }, - "Ran %@ statements" : { - - }, - "ran %@×" : { - "comment" : "Run count in a detail line, %@ is a count", + "Remove filter" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "실행 %@회" + "value" : "필터 제거" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ kez çalıştı" + "value" : "Filtreyi kaldır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "chạy %@ lần" + "value" : "Xóa bộ lọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "运行 %@ 次" + "value" : "移除筛选" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "執行 %@ 次" + "value" : "移除篩選" } } } }, - "Range" : { + "Remove filter row" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "범위" + "value" : "필터 행 제거" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Aralık" + "value" : "Filtre satırını kaldır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khoảng" + "value" : "Xóa dòng bộ lọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "范围" + "value" : "移除筛选行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "範圍" + "value" : "移除篩選列" } } } }, - "Rank By" : { + "Remove folder" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "순위 기준" + "value" : "폴더 제거" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sıralama Ölçütü" + "value" : "Klasörü kaldır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xếp hạng theo" + "value" : "Xóa thư mục" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "排序依据" + "value" : "移除文件夹" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "排序依據" + "value" : "移除資料夾" } } } }, - "Rate limited" : { + "Remove from Favorites" : { + "comment" : "A button label that deletes a table from the user's favorites.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "요청 한도 초과" + "value" : "즐겨찾기에서 제거" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Hız sınırı aşıldı" + "value" : "Sık Kullanılanlardan Kaldır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bị giới hạn tốc độ" + "value" : "Gỡ khỏi Yêu thích" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已限流" + "value" : "从收藏中移除" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已達速率限制" + "value" : "從收藏中移除" } } } }, - "Rate limited. Please try again later." : { + "Remove from Group" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "요청 한도를 초과했습니다. 나중에 다시 시도하십시오." + "value" : "그룹에서 제거" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İstek sınırına ulaşıldı. Lütfen daha sonra tekrar deneyin." + "value" : "Gruptan Çıkar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã vượt giới hạn tốc độ. Vui lòng thử lại sau." + "value" : "Xóa khỏi Nhóm" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "请求频率超限。请稍后再试。" + "value" : "从分组移除" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已達速率限制。請稍後再試。" + "value" : "從群組移除" } } } }, - "Raw" : { + "Remove from Recent" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "원시" + "value" : "최근 항목에서 제거" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ham" + "value" : "Son Kullanılanlardan Kaldır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thô" + "value" : "Xóa khỏi mục Gần đây" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "原始" + "value" : "从“最近”中移除" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "原始" + "value" : "從「最近」中移除" } } } }, - "Raw Filter" : { - - }, - "Raw result columns" : { - - }, - "Raw result rows" : { - - }, - "Raw SQL" : { + "Remove from Sidebar" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "원시 SQL" + "value" : "사이드바에서 제거" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Raw SQL" + "value" : "Sidebar'dan Kaldır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "SQL thô" + "value" : "Gỡ khỏi thanh bên" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "原始 SQL" + "value" : "从侧边栏移除" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "原始 SQL" + "value" : "從側邊欄移除" } } } }, - "Raw SQL cannot be empty" : { + "Remove image" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "원시 SQL은 비워 둘 수 없습니다" + "value" : "이미지 제거" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ham SQL boş olamaz" + "value" : "Görseli kaldır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "SQL thô không được để trống" + "value" : "Gỡ hình ảnh" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "原始 SQL 不能为空" + "value" : "移除图像" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "原始 SQL 不可為空" + "value" : "移除圖片" } } } }, - "Raw SQL filters are not available over MCP." : { - - }, - "Raw Value" : { + "Remove jump host" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "원시 값" + "value" : "점프 호스트 제거" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ham Değer" + "value" : "Atlama sunucusunu kaldır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giá trị gốc" + "value" : "Xóa jump host" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "原始值" + "value" : "移除跳板机" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "原始值" + "value" : "移除跳板主機" } } } }, - "Re-enter passphrase" : { + "Remove license from this machine" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "암호 구문 다시 입력" + "value" : "이 기기에서 라이선스 제거" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Parolayı yeniden girin" + "value" : "Lisansı bu makineden kaldır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập lại cụm mật khẩu" + "value" : "Gỡ giấy phép khỏi máy này" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "再次输入口令" + "value" : "从此设备移除许可证" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "再次輸入密碼" + "value" : "從此機器移除授權" } } } }, - "Re-read the file with these settings. This discards unsaved changes." : { + "Remove provider" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 설정으로 파일을 다시 읽습니다. 저장하지 않은 변경 사항은 삭제됩니다." + "value" : "제공자 제거" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dosyayı bu ayarlarla yeniden okur. Bu, kaydedilmemiş değişiklikleri atar." + "value" : "Sağlayıcıyı kaldır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đọc lại tệp với các cài đặt này. Thao tác này bỏ các thay đổi chưa lưu." + "value" : "Xóa nhà cung cấp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "使用这些设置重新读取文件。未保存的更改会被丢弃。" + "value" : "移除提供商" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "使用這些設定重新讀取檔案。未儲存的變更會被捨棄。" + "value" : "移除供應商" } } } }, - "Read" : { + "Remove tag %@" : { + "comment" : "A label for a button that removes a tag from a list of selected tags. The argument is the name of the tag to be removed.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "읽기" + "value" : "태그 %@ 제거" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Okuma" + "value" : "%@ etiketini kaldır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đọc" + "value" : "Xoá thẻ %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "读取" + "value" : "移除标签 %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "讀取" + "value" : "移除標籤 %@" } } } }, - "Read & Write" : { + "Remove “%@”?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "읽기 및 쓰기" + "value" : "“%@”을(를) 제거하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Okuma & Yazma" + "value" : "“%@” kaldırılsın mı?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đọc & ghi" + "value" : "Gỡ “%@”?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "读写" + "value" : "要移除“%@”吗?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "讀寫" + "value" : "要移除「%@」嗎?" } } } }, - "Read Only" : { + "Removed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "읽기 전용" + "value" : "제거됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Salt Okunur" + "value" : "Kaldırıldı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chỉ đọc" + "value" : "Đã xóa" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "只读" + "value" : "移除" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "唯讀" + "value" : "移除" } } } }, - "Read Only Connection" : { - "extractionState" : "stale", + "Rename" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "읽기 전용 연결" + "value" : "이름 변경" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Salt Okunur Bağlantı" + "value" : "Yeniden Adlandır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối chỉ đọc" + "value" : "Đổi tên" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "只读连接" + "value" : "重命名" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "唯讀連線" + "value" : "重新命名" } } } }, - "Read Preference" : { - "extractionState" : "stale", + "Rename Column" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "읽기 기본 설정" + "value" : "열 이름 변경" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Read Preference" + "value" : "Sütunu Yeniden Adlandır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Read Preference" + "value" : "Đổi tên cột" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Read Preference" + "value" : "重命名列" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Read Preference" + "value" : "重新命名欄位" } } } }, - "Read rows from a table with filters, sorting and paging, built by TablePro's own query builder for this engine. Prefer it over hand-writing SELECT: it quotes identifiers, escapes values, and pages the way the app does." : { - - }, - "Read saved passwords from Keychain (requires permission)" : { + "Rename Column…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "키체인에서 저장된 암호 읽기(권한 필요)" + "value" : "열 이름 변경…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Keychain'den kayıtlı parolaları oku (izin gerektirir)" + "value" : "Sütunu Yeniden Adlandır…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đọc mật khẩu đã lưu từ Keychain (cần quyền)" + "value" : "Đổi tên cột…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "从钥匙串读取已保存的密码(需要权限)" + "value" : "重命名列…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "從鑰匙圈讀取已儲存的密碼(需要權限)" + "value" : "重新命名欄位…" } } } }, - "Read schema and run any non-destructive query, including INSERT, UPDATE, and DELETE." : { + "Rename Group" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "스키마를 읽고 INSERT, UPDATE, DELETE를 포함한 모든 비파괴 쿼리를 실행합니다." + "value" : "그룹 이름 변경" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Şemayı oku ve INSERT, UPDATE, DELETE dahil yıkıcı olmayan tüm sorguları çalıştır." + "value" : "Grubu Yeniden Adlandır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đọc schema và chạy mọi truy vấn không phá hủy, bao gồm INSERT, UPDATE và DELETE." + "value" : "Đổi tên nhóm" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "读取架构并运行任意非破坏性查询,包括 INSERT、UPDATE 和 DELETE。" + "value" : "重命名分组" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "讀取綱要並執行任何非破壞性查詢,包括 INSERT、UPDATE 和 DELETE。" + "value" : "重新命名群組" } } } }, - "Read schema and run SELECT queries." : { + "Rename…" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "스키마를 읽고 SELECT 쿼리를 실행합니다." + "value" : "이름 변경…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Şemayı oku ve SELECT sorguları çalıştır." + "value" : "Yeniden Adlandır…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đọc schema và chạy truy vấn SELECT." + "value" : "Đổi tên…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "读取架构并运行 SELECT 查询。" + "value" : "重命名…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "讀取綱要並執行 SELECT 查詢。" + "value" : "重新命名…" } } } }, - "Read the live server panels TablePro shows: active sessions, server metrics, and slow queries. Available on PostgreSQL, MySQL, SQL Server, ClickHouse, DuckDB, and SQLite." : { - - }, - "Read-only" : { - "extractionState" : "stale", + "Renew" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Renew" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "읽기 전용" + "value" : "갱신" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Salt okunur" + "value" : "Yenile" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chỉ đọc" + "value" : "Gia hạn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "只读" + "value" : "续期" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "唯讀" + "value" : "續訂" } } } }, - "Read-Only" : { + "Renew License" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Renew License" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "읽기 전용" + "value" : "라이선스 갱신" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Read-Only" + "value" : "Lisansı Yenile" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chỉ đọc" + "value" : "Gia hạn giấy phép" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "只读" + "value" : "续期许可证" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "唯讀" + "value" : "續訂授權" } } } }, - "Read-only connection" : { - "extractionState" : "stale", + "Renew License…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "읽기 전용 연결" + "value" : "라이선스 갱신…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Read-only connection" + "value" : "Lisansı Yenile…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối chỉ đọc" + "value" : "Gia hạn giấy phép…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "只读连接" + "value" : "续期许可证…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "唯讀連線" + "value" : "續訂授權…" } } } }, - "Read-Only Connection" : { - "extractionState" : "stale", + "Reopen Closed Tab" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "읽기 전용 연결" + "value" : "닫은 탭 다시 열기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Salt Okunur Bağlantı" + "value" : "Kapatılan Sekmeyi Yeniden Aç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối chỉ đọc" + "value" : "Mở lại tab đã đóng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "只读连接" + "value" : "重新打开已关闭的标签页" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "唯讀連線" + "value" : "重新開啟已關閉的分頁" } } } }, - "Read-Only. Choose a different connection to write changes to." : { - - }, - "Read-Write" : { - "extractionState" : "stale", + "Reopen Last Session" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "읽기 및 쓰기" + "value" : "마지막 세션 다시 열기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Okuma-Yazma" + "value" : "Son Oturumu Yeniden Aç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đọc-ghi" + "value" : "Mở lại phiên làm việc trước" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "读写" + "value" : "重新打开上次会话" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "讀寫" + "value" : "重新開啟上次工作階段" } } } }, - "Reading connections from %@…" : { + "Reorder Column" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@에서 연결을 읽는 중…" + "value" : "열 순서 변경" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ konumundan bağlantılar okunuyor…" + "value" : "Sütunu Yeniden Sırala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang đọc kết nối từ %@…" + "value" : "Sắp xếp lại cột" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在从%@读取连接…" + "value" : "调整列顺序" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在從%@讀取連線…" + "value" : "調整欄位順序" } } } }, - "Reading connections..." : { - "extractionState" : "stale", + "Replace" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결을 읽는 중..." + "value" : "바꾸기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantılar okunuyor..." + "value" : "Değiştir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang đọc kết nối..." + "value" : "Thay thế" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在读取连接…" + "value" : "替换" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在讀取連線…" + "value" : "取代" } } } }, - "Ready after restart" : { - "comment" : "A description of a plugin that is ready to use after the app is restarted.", - "isCommentAutoGenerated" : true, + "Replace %1$@ %2$@" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "%1$@ %2$@ 교체", + "state" : "translated" + } + } + } + }, + "Replace the estimate with an exact row count." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "재시작 후 사용 가능" + "value" : "추정치를 정확한 행 수로 바꿉니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeniden başlattıktan sonra hazır" + "value" : "Tahmini, tam satır sayısıyla değiştirir." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sẵn sàng sau khi khởi động lại" + "value" : "Thay ước tính bằng số dòng chính xác." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重启后可用" + "value" : "用精确行数替换估算值。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重新啟動後可用" + "value" : "用精確列數取代估算值。" } } } }, - "Real" : { + "Replication lag: %ds" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Real" + "value" : "복제 지연: %d초" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Real" + "value" : "Çoğaltma gecikmesi: %ds" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Real" + "value" : "Độ trễ sao chép: %ds" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Real" + "value" : "复制延迟:%d秒" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Real" + "value" : "複寫延遲:%d 秒" } } } }, - "Reasoning" : { + "Replication lag: %llds" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "추론" + "value" : "복제 지연: %lld초" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Akıl yürütme" + "value" : "Replication lag: %llds" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Suy luận" + "value" : "Độ trễ sao chép: %llds" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "推理" + "value" : "复制延迟:%llds" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "推理" + "value" : "複寫延遲:%lld 秒" } } } }, - "Reasoning…" : { + "Replies count against your Claude subscription limits. You share those limits with claude.ai and your own Claude Code sessions, so running out here stops your work there too." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "추론 중…" + "value" : "답변은 Claude 구독 한도를 사용합니다. 이 한도는 claude.ai 및 사용자의 Claude Code 세션과 공유되므로 여기서 한도를 소진하면 그곳에서도 작업이 중단됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Akıl yürütüyor…" + "value" : "Yanıtlar Claude abonelik limitlerinizden düşer. Bu limitleri claude.ai ve kendi Claude Code oturumlarınızla paylaşırsınız, bu yüzden burada limiti doldurmak oradaki işinizi de durdurur." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang suy luận…" + "value" : "Các câu trả lời được tính vào giới hạn gói Claude của bạn. Bạn dùng chung giới hạn đó với claude.ai và các phiên Claude Code của mình, nên hết hạn mức ở đây cũng làm dừng công việc bên đó." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "推理中…" + "value" : "回复会计入你的 Claude 订阅额度。该额度与 claude.ai 和你自己的 Claude Code 会话共用,因此在这里用完也会让那边的工作停下来。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "推理中…" + "value" : "回覆會計入你的 Claude 訂閱額度。該額度與 claude.ai 和你自己的 Claude Code 工作階段共用,因此在這裡用完也會讓那邊的工作停下來。" } } } }, - "Reassign" : { + "Report an Issue" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "재할당" + "value" : "문제 보고" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeniden Ata" + "value" : "Sorun Bildir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gán lại" + "value" : "Báo cáo sự cố" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重新分配" + "value" : "报告问题" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重新指派" + "value" : "回報問題" } } } }, - "Reassign owned objects" : { + "Require SSL, skip verification" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "소유 객체 재할당" + "value" : "SSL 필수, 인증서 검증 건너뛰기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sahip olunan nesneleri devret" + "value" : "SSL zorunlu, doğrulamayı atla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển quyền sở hữu các đối tượng" + "value" : "Yêu cầu SSL, bỏ qua xác minh" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "转移拥有的对象" + "value" : "要求 SSL,跳过验证" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "轉移擁有的物件" + "value" : "要求 SSL,略過驗證" } } } }, - "Reassign to" : { + "Require authentication" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "재할당 대상" + "value" : "인증 요구" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Şuna devret" + "value" : "Kimlik doğrulama gerekli" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển cho" + "value" : "Yêu cầu xác thực" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "转移给" + "value" : "需要认证" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "轉移給" + "value" : "需要驗證" } } } }, - "Recent" : { + "Require confirmation or Touch ID before executing queries." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "최근" + "value" : "쿼리 실행 전에 확인 또는 Touch ID를 요구합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Son Kullanılanlar" + "value" : "Sorguları çalıştırmadan önce onay veya Touch ID gerektirir." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gần đây" + "value" : "Yêu cầu xác nhận hoặc Touch ID trước khi thực thi truy vấn." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "最近" + "value" : "执行查询前需要确认或 Touch ID。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "最近" + "value" : "執行查詢前需要確認或 Touch ID。" } } } }, - "RECENT" : { - "extractionState" : "stale", + "Required (skip verify)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "최근" + "value" : "필수(인증서 검증 건너뛰기)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "RECENT" + "value" : "Zorunlu (doğrulamayı atla)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "GẦN ĐÂY" + "value" : "Bắt buộc (bỏ qua xác minh)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "最近" + "value" : "必需(跳过验证)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "最近" + "value" : "必要(略過驗證)" } } } }, - "Recent Conversations" : { + "Required only for an encrypted key" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "최근 대화" + "value" : "암호화된 키에만 필요" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Son Konuşmalar" + "value" : "Yalnızca şifreli bir anahtar için gerekli" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cuộc trò chuyện gần đây" + "value" : "Chỉ cần cho khóa được mã hóa" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "最近的会话" + "value" : "仅加密密钥需要" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "最近的對話" + "value" : "僅加密金鑰需要" } } } }, - "Recent Queries" : { + "Required only when the server enforces mutual TLS authentication." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "최근 쿼리" + "value" : "서버에서 상호 TLS 인증을 적용하는 경우에만 필요합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Son Sorgular" + "value" : "Yalnızca sunucu karşılıklı TLS kimlik doğrulamasını zorunlu kıldığında gerekli." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Truy vấn gần đây" + "value" : "Chỉ cần khi máy chủ bắt buộc xác thực TLS hai chiều." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "最近的查询" + "value" : "仅当服务器强制双向 TLS 认证时需要。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "最近的查詢" + "value" : "僅當伺服器強制雙向 TLS 驗證時需要。" } } } }, - "Recent query history for a connection (supports ?limit=, ?search=, ?date_filter=)" : { - "extractionState" : "stale", + "Requires" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결의 최근 쿼리 기록(?limit=, ?search=, ?date_filter= 지원)" + "value" : "필요 버전" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bir bağlantının son sorgu geçmişi (?limit=, ?search=, ?date_filter= destekler)" + "value" : "Requires" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lịch sử truy vấn gần đây của một kết nối (hỗ trợ ?limit=, ?search=, ?date_filter=)" + "value" : "Yêu cầu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接的最近查询历史(支持 ?limit=、?search=、?date_filter=)" + "value" : "需要" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線的最近查詢記錄(支援 ?limit=、?search=、?date_filter=)" + "value" : "需要" } } } }, - "Recent query history for this connection" : { - "extractionState" : "stale", + "Reserved Shortcut" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 연결의 최근 쿼리 기록" + "value" : "예약된 단축키" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu bağlantının son sorgu geçmişi" + "value" : "Ayrılmış Kısayol" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lịch sử truy vấn gần đây của kết nối này" + "value" : "Phím tắt dành riêng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此连接的最近查询历史" + "value" : "保留的快捷键" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此連線的最近查詢記錄" + "value" : "保留的快速鍵" } } } }, - "Recently Closed" : { - "extractionState" : "stale", + "Reset" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "최근에 닫은 항목" + "value" : "재설정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Son Kapatılanlar" + "value" : "Sıfırla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Vừa đóng gần đây" + "value" : "Đặt lại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "最近关闭" + "value" : "重置" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "最近關閉" + "value" : "重設" } } } }, - "Recently opened tables, newest first" : { - - }, - "Recheck" : { + "Reset All Customizations" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다시 확인" + "value" : "모든 사용자화 재설정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeniden Denetle" + "value" : "Tüm Özelleştirmeleri Sıfırla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kiểm tra lại" + "value" : "Đặt lại tất cả tùy chỉnh" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重新检查" + "value" : "重置所有自定义" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重新檢查" + "value" : "重設所有自訂設定" } } } }, - "Reconnect" : { + "Reset All Settings" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다시 연결" + "value" : "모든 설정 재설정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeniden Bağlan" + "value" : "Tüm Ayarları Sıfırla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối lại" + "value" : "Đặt lại tất cả cài đặt" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重新连接" + "value" : "重置所有设置" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重新連線" + "value" : "重設所有設定" } } } }, - "Reconnect failed: %@" : { + "Reset All Settings to Defaults" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다시 연결하지 못했습니다: %@" + "value" : "모든 설정을 기본값으로 재설정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeniden bağlanma başarısız: %@" + "value" : "Tüm Ayarları Varsayılana Sıfırla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối lại thất bại: %@" + "value" : "Đặt lại tất cả cài đặt về mặc định" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重新连接失败:%@" + "value" : "将所有设置重置为默认值" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重新連線失敗:%@" + "value" : "將所有設定重設為預設值" } } } }, - "Reconnect to Database" : { - "extractionState" : "stale", + "Reset Columns" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스에 다시 연결" + "value" : "열 재설정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Reconnect to Database" + "value" : "Sütunları Sıfırla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối lại cơ sở dữ liệu" + "value" : "Đặt lại cột" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重新连接数据库" + "value" : "重置列" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重新連線資料庫" + "value" : "重設欄位" } } } }, - "Reconnecting failed after %d attempts." : { + "Reset Filters" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%d번 시도한 후에도 다시 연결하지 못했습니다." + "value" : "필터 재설정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%d denemeden sonra yeniden bağlanılamadı." + "value" : "Filtreleri Sıfırla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối lại thất bại sau %d lần thử." + "value" : "Đặt lại bộ lọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重连在 %d 次尝试后失败。" + "value" : "重置筛选" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重新連線在 %d 次嘗試後失敗。" + "value" : "重置篩選" } } } }, - "Record Access" : { + "Reset Layout" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "레코드 액세스" + "value" : "레이아웃 재설정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kayıt Erişimi" + "value" : "Düzeni Sıfırla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Truy cập bản ghi" + "value" : "Đặt lại bố cục" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "记录访问" + "value" : "重置布局" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "記錄存取" + "value" : "重設版面配置" } } } }, - "Recording shortcut" : { + "Reset Sample" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "단축키 기록 중" + "value" : "샘플 재설정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kısayol kaydediliyor" + "value" : "Örneği Sıfırla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang ghi phím tắt" + "value" : "Đặt lại mẫu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在录制快捷键" + "value" : "重置示例" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在錄製快速鍵" + "value" : "重設範例" } } } }, - "Red" : { + "Reset Sample Database?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "빨간색" + "value" : "샘플 데이터베이스를 재설정하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kırmızı" + "value" : "Örnek Veritabanı Sıfırlansın mı?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đỏ" + "value" : "Đặt lại cơ sở dữ liệu mẫu?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "红色" + "value" : "要重置示例数据库吗?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "紅色" + "value" : "要重設範例資料庫嗎?" } } } }, - "Redacted error text when the status is error" : { - - }, - "Redacted failure text" : { - - }, - "Redis" : { - "extractionState" : "stale", + "Reset Sample Database…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Redis" + "value" : "샘플 데이터베이스 재설정…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Redis" + "value" : "Örnek Veritabanını Sıfırla…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Redis" + "value" : "Đặt lại cơ sở dữ liệu mẫu…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Redis" + "value" : "重置示例数据库…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Redis" + "value" : "重設範例資料庫…" } } } }, - "Redis driver has no TLS fallback. Preferred and Required both force TLS. Use Required for Redis Cloud, Upstash, and AWS ElastiCache encrypted endpoints." : { + "Reset Zoom" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Redis 드라이버는 TLS 폴백을 지원하지 않습니다. ‘선호’와 ‘필수’ 모두 TLS를 강제합니다. Redis Cloud, Upstash 및 AWS ElastiCache 암호화 엔드포인트에는 ‘필수’를 사용하십시오." + "value" : "확대/축소 재설정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Redis sürücüsünde TLS geri dönüşü yoktur. Tercih Edilen ve Zorunlu'nun ikisi de TLS'yi zorunlu kılar. Redis Cloud, Upstash ve AWS ElastiCache şifreli uç noktaları için Zorunlu kullanın." + "value" : "Yakınlaştırmayı Sıfırla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Driver Redis không có cơ chế dự phòng TLS. Preferred và Required đều buộc dùng TLS. Dùng Required cho Redis Cloud, Upstash và các endpoint mã hóa của AWS ElastiCache." + "value" : "Đặt lại thu phóng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Redis 驱动没有 TLS 回退。“首选”和“必需”都会强制使用 TLS。连接 Redis Cloud、Upstash 和 AWS ElastiCache 加密端点时请使用“必需”。" + "value" : "重置缩放" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Redis 驅動程式沒有 TLS 備援。「Preferred」和「Required」都會強制使用 TLS。連接 Redis Cloud、Upstash 和 AWS ElastiCache 加密端點時請使用「Required」。" + "value" : "重設縮放" } } } }, - "Redo" : { + "Reset column widths, order, and visibility to defaults" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "실행 복귀" + "value" : "열 너비, 순서 및 표시 여부를 기본값으로 재설정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Redo" + "value" : "Sütun genişliklerini, sırasını ve görünürlüğünü varsayılana sıfırla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Làm lại" + "value" : "Đặt lại độ rộng, thứ tự và khả năng hiển thị của cột về mặc định" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重做" + "value" : "将列宽、顺序和显示状态重置为默认值" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重做" + "value" : "將欄寬、順序與顯示狀態重設為預設值" } } } }, - "Ref Columns" : { + "Reset to Defaults" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "참조 열" + "value" : "기본값으로 재설정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Referans Sütunlar" + "value" : "Varsayılana Sıfırla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cột tham chiếu" + "value" : "Khôi phục mặc định" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "引用列" + "value" : "恢复默认" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "參考欄位" + "value" : "重設為預設值" } } } }, - "Ref Schema" : { + "Reset to Inferred" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "참조 스키마" + "value" : "추론된 형식으로 재설정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Referans Şema" + "value" : "Çıkarsanana Sıfırla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Schema tham chiếu" + "value" : "Đặt lại về giá trị suy luận" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "参考 Schema" + "value" : "重置为推断值" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "參考綱要" + "value" : "重設為推斷值" } } } }, - "Ref Table" : { + "Reset to System Default" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "참조 테이블" + "value" : "시스템 기본값으로 재설정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Referans Tablo" + "value" : "Sistem Varsayılanına Sıfırla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bảng tham chiếu" + "value" : "Đặt lại về mặc định hệ thống" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "引用表" + "value" : "重置为系统默认" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "參考資料表" + "value" : "重設為系統預設值" } } } }, - "Referenced column" : { - - }, - "Referenced columns (comma-separated)" : { - "extractionState" : "stale", + "Reset to default" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "참조 열(쉼표로 구분)" + "value" : "기본값으로 재설정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Referenced columns (comma-separated)" + "value" : "Varsayılana sıfırla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cột tham chiếu (phân tách bằng dấu phẩy)" + "value" : "Đặt lại về mặc định" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "引用列(逗号分隔)" + "value" : "重置为默认值" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "參考欄位(以逗號分隔)" + "value" : "重設為預設值" } } } }, - "Referenced row not found" : { + "Resource" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "참조된 행을 찾을 수 없음" + "value" : "리소스" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Referans satır bulunamadı" + "value" : "Kaynak" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy dòng tham chiếu" + "value" : "Tài nguyên" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未找到引用行" + "value" : "资源" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "找不到參考的列" + "value" : "資源" } } } }, - "Referenced schema" : { - - }, - "Referenced table" : { + "Responding" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "참조된 테이블" + "value" : "응답 중" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Referenced table" + "value" : "Yanıt veriyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bảng tham chiếu" + "value" : "Đang phản hồi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "引用表" + "value" : "响应中" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "參考的資料表" + "value" : "回應中" } } } }, - "Referencing column" : { - - }, - "Referencing table" : { - - }, - "Refresh" : { + "Response" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새로 고침" + "value" : "응답" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yenile" + "value" : "Yanıt" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Làm mới" + "value" : "Phản hồi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "刷新" + "value" : "响应" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重新整理" + "value" : "回應" } } } }, - "Refresh (⌘R)" : { - "extractionState" : "stale", + "Response failed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새로 고침(⌘R)" + "value" : "응답 실패" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Refresh (⌘R)" + "value" : "Yanıt başarısız oldu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Làm mới (⌘R)" + "value" : "Phản hồi thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "刷新 (⌘R)" + "value" : "响应失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重新整理 (⌘R)" + "value" : "回應失敗" } } } }, - "Refresh & Save" : { - "extractionState" : "stale", + "Restart Claude Desktop" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새로 고침 및 저장" + "value" : "Claude Desktop 재시작" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yenile ve Kaydet" + "value" : "Claude Desktop'ı Yeniden Başlat" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Làm mới & Lưu" + "value" : "Khởi động lại Claude Desktop" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "刷新并保存" + "value" : "重启 Claude Desktop" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重新整理並儲存" + "value" : "重新啟動 Claude Desktop" } } } }, - "Refresh data" : { - "extractionState" : "stale", + "Restart TablePro for the language change to take full effect." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터 새로 고침" + "value" : "언어 변경 사항을 완전히 적용하려면 TablePro를 재시작하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Refresh data" + "value" : "Dil değişikliğinin tam olarak uygulanması için TablePro'yu yeniden başlatın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Làm mới dữ liệu" + "value" : "Khởi động lại TablePro để thay đổi ngôn ngữ có hiệu lực hoàn toàn." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "刷新数据" + "value" : "重启 TablePro 以使语言更改完全生效。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重新整理資料" + "value" : "重新啟動 TablePro 以讓語言變更完全生效。" } } } }, - "Refresh database list" : { - "extractionState" : "stale", + "Restart TablePro to fully unload removed plugins." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 목록 새로 고침" + "value" : "제거한 플러그인을 완전히 언로드하려면 TablePro를 재시작하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Refresh database list" + "value" : "Kaldırılan eklentilerin tamamen bellekten çıkması için TablePro'yu yeniden başlatın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Làm mới danh sách cơ sở dữ liệu" + "value" : "Khởi động lại TablePro để gỡ hoàn toàn các plugin đã xoá." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "刷新数据库列表" + "value" : "重启 TablePro 以完全卸载已移除的插件。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重新整理資料庫清單" + "value" : "重新啟動 TablePro 以完全解除載入已移除的外掛。" } } } }, - "Refresh license status from server" : { + "Restore Database" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Refresh license status from server" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "서버에서 라이선스 상태 새로 고침" + "value" : "데이터베이스 복원" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sunucudan lisans durumunu yenile" + "value" : "Veritabanını Geri Yükle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Làm mới trạng thái giấy phép từ máy chủ" + "value" : "Khôi phục cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "从服务器刷新许可证状态" + "value" : "恢复数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "從伺服器重新整理授權狀態" + "value" : "還原資料庫" } } } }, - "Refresh Now" : { + "Restore Dump Cancelled" : { + "comment" : "A title for a result sheet that indicates a restore operation was cancelled.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "지금 새로 고침" + "value" : "덤프 복원 취소됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Şimdi Yenile" + "value" : "Döküm Geri Yükleme İptal Edildi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Làm mới ngay" + "value" : "Đã hủy khôi phục dump" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "立即刷新" + "value" : "转储恢复已取消" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "立即重新整理" + "value" : "還原備份已取消" } } } }, - "Refresh plugin list" : { + "Restore Dump Complete" : { + "comment" : "A title for a backup result sheet that indicates a successful restore.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플러그인 목록 새로 고침" + "value" : "덤프 복원 완료" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklenti listesini yenile" + "value" : "Döküm Geri Yükleme Tamamlandı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Làm mới danh sách plugin" + "value" : "Khôi phục dump hoàn tất" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "刷新插件列表" + "value" : "转储恢复完成" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重新整理外掛清單" + "value" : "還原備份完成" } } } }, - "Refreshing" : { + "Restore Dump Failed" : { + "comment" : "A title for a backup result sheet that indicates a failed restore.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새로 고치는 중" + "value" : "덤프 복원 실패" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yenileniyor" + "value" : "Döküm Geri Yükleme Başarısız Oldu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang làm mới" + "value" : "Khôi phục dump thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在刷新" + "value" : "转储恢复失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在重新整理" + "value" : "還原備份失敗" } } } }, - "Refreshing will discard all unsaved changes." : { + "Restore Dump…" : { + "comment" : "A button that opens a dialog to restore a database from a dump.", + "extractionState" : "stale", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새로 고치면 저장하지 않은 모든 변경 사항이 삭제됩니다." + "value" : "덤프 복원…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yenileme, kaydedilmemiş tüm değişiklikleri siler." + "value" : "Dökümü Geri Yükle…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Làm mới sẽ hủy tất cả thay đổi chưa lưu." + "value" : "Khôi phục dump…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "刷新将丢弃所有未保存的更改。" + "value" : "恢复转储…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重新整理將捨棄所有未儲存的變更。" + "value" : "正在還原備份…" } } } }, - "Regenerate" : { + "Restore Last Filter" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다시 생성" + "value" : "마지막 필터 복원" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Regenerate" + "value" : "Son Filtreyi Geri Yükle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tạo lại" + "value" : "Khôi phục bộ lọc gần nhất" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重新生成" + "value" : "恢复上次筛选" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重新產生" + "value" : "還原上次篩選" } } } }, - "Regex" : { + "Restore from" : { + "comment" : "A label displayed above the name of the source database.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "정규식" + "value" : "다음에서 복원" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Regex" + "value" : "Geri yükleme kaynağı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Regex" + "value" : "Khôi phục từ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正则表达式" + "value" : "恢复来源" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正規表達式" + "value" : "還原來源" } } } }, - "Registry" : { + "Restored “%@” from %@" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Restored “%1$@” from %2$@" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "레지스트리" + "value" : "%2$@에서 “%1$@” 복원을 완료했습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Registry" + "value" : "“%1$@” şuradan geri yüklendi: %2$@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kho plugin" + "value" : "Đã khôi phục “%1$@” từ %2$@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "插件仓库" + "value" : "已从%2$@恢复“%1$@”" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "外掛註冊" + "value" : "已從 %1$@ 還原「%2$@」" } } } }, - "Relational" : { + "Restore…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "관계형" + "value" : "복원…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İlişkisel" + "value" : "Geri Yükle…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Quan hệ" + "value" : "Khôi phục…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "关系型" + "value" : "恢复…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "關聯式" + "value" : "還原…" } } } }, - "Relaunch Failed" : { + "Restoring Dump" : { + "comment" : "A title for a progress sheet that is displayed when restoring a database dump.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "재실행 실패" + "value" : "덤프 복원 중" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeniden Başlatma Başarısız" + "value" : "Döküm Geri Yükleniyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở lại thất bại" + "value" : "Đang khôi phục dump" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重新启动失败" + "value" : "正在恢复转储" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重新啟動失敗" + "value" : "正在還原資料庫" } } } }, - "Reload" : { + "Restrict to a specific connection (UUID, optional)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다시 로드" + "value" : "특정 연결로 제한(UUID, 선택 사항)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeniden Yükle" + "value" : "Belirli bir bağlantıyla sınırla (UUID, isteğe bağlı)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tải lại" + "value" : "Giới hạn theo một kết nối cụ thể (UUID, tùy chọn)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重新加载" + "value" : "限制为特定连接(UUID,可选)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重新載入" + "value" : "限制為特定連線(UUID,選用)" } } } }, - "Reload from Disk" : { + "Result" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "디스크에서 다시 로드" + "value" : "결과" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Diskten Yeniden Yükle" + "value" : "Sonuç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tải lại từ đĩa" + "value" : "Kết quả" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "从磁盘重新载入" + "value" : "结果" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "從磁碟重新載入" + "value" : "結果" } } } }, - "Reload from the database" : { - - }, - "Reload with new properties?" : { + "Result %d" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 속성으로 다시 로드하시겠습니까?" + "value" : "결과 %d" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni özelliklerle yeniden yüklensin mi?" + "value" : "Sonuç %d" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tải lại với các thuộc tính mới?" + "value" : "Kết quả %d" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "要用新属性重新加载吗?" + "value" : "结果 %d" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "要用新屬性重新載入嗎?" + "value" : "結果 %d" } } } }, - "Remote (Quack, experimental)" : { + "Result Charts" : { "localizations" : { "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "원격(Quack, 실험적)" + "value" : "결과 차트", + "state" : "translated" } }, "tr" : { "stringUnit" : { - "state" : "translated", - "value" : "Uzak (Quack, deneysel)" + "value" : "Sonuç Grafikleri", + "state" : "translated" } }, "vi" : { "stringUnit" : { - "state" : "translated", - "value" : "Từ xa (Quack, thử nghiệm)" + "value" : "Biểu đồ kết quả", + "state" : "translated" } }, "zh-Hans" : { "stringUnit" : { - "state" : "translated", - "value" : "远程(Quack,实验性)" + "value" : "结果图表", + "state" : "translated" } }, "zh-Hant" : { "stringUnit" : { - "state" : "translated", - "value" : "遠端(Quack,實驗性)" + "value" : "結果圖表", + "state" : "translated" } } } }, - "Remote (Quack)" : { - "extractionState" : "stale", + "Result View" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "원격(Quack)" + "value" : "결과 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Uzak (Quack)" + "value" : "Sonuç Görünümü" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Từ xa (Quack)" + "value" : "Chế độ xem kết quả" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "远程 (Quack)" + "value" : "结果视图" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "遠端 (Quack)" + "value" : "結果檢視" } } } }, - "Remote (Turso)" : { + "Results" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "원격(Turso)" + "value" : "결과" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Uzak (Turso)" + "value" : "Sonuçlar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Từ xa (Turso)" + "value" : "Kết quả" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "远程 (Turso)" + "value" : "结果" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "遠端 (Turso)" + "value" : "結果" } } } }, - "Remove" : { + "Resume" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "제거" + "value" : "재개" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kaldır" + "value" : "Devam Et" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gỡ" + "value" : "Tiếp tục" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "移除" + "value" : "继续" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "移除" + "value" : "繼續" } } } }, - "Remove “%@”?" : { + "Resume Query History" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "“%@”을(를) 제거하시겠습니까?" + "value" : "쿼리 기록 재개" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "“%@” kaldırılsın mı?" + "value" : "Sorgu Geçmişini Sürdür" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gỡ “%@”?" + "value" : "Tiếp tục lịch sử truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "要移除“%@”吗?" + "value" : "恢复查询历史" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "要移除「%@」嗎?" + "value" : "繼續查詢歷史" } } } }, - "Remove %@" : { + "Resume with a fresh tool call budget." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 제거" + "value" : "새 도구 호출 한도로 재개합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ Öğesini Kaldır" + "value" : "Yeni bir araç çağrısı bütçesiyle devam eder." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gỡ %@" + "value" : "Tiếp tục với hạn mức gọi công cụ mới." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "移除%@" + "value" : "以新的工具调用额度继续。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "移除%@" + "value" : "以新的工具呼叫額度繼續。" } } } }, - "Remove %@?" : { + "Retention" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@을(를) 제거하시겠습니까?" + "value" : "보존 기간" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ kaldırılsın mı?" + "value" : "Retention" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gỡ %@?" + "value" : "Lưu giữ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "移除 %@?" + "value" : "保留" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "移除 %@?" + "value" : "保留" } } } }, - "Remove All Filters" : { + "Retry" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 필터 제거" + "value" : "재시도" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm Filtreleri Kaldır" + "value" : "Tekrar Dene" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gỡ tất cả bộ lọc" + "value" : "Thử lại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "移除所有筛选" + "value" : "重试" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "移除所有篩選" + "value" : "重試" } } } }, - "Remove all filters and reload" : { - "extractionState" : "stale", + "Retry Install" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 필터를 제거하고 다시 로드" + "value" : "설치 재시도" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm filtreleri kaldır ve yeniden yükle" + "value" : "Kurulumu Yeniden Dene" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa tất cả bộ lọc và tải lại" + "value" : "Thử cài đặt lại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "移除所有筛选并重新加载" + "value" : "重试安装" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "移除所有篩選並重新載入" + "value" : "重試安裝" } } } }, - "Remove attachment" : { + "Retry Update" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "첨부 파일 제거" + "value" : "업데이트 재시도" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eki kaldır" + "value" : "Güncellemeyi Yeniden Dene" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gỡ tệp đính kèm" + "value" : "Thử cập nhật lại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "移除附件" + "value" : "重试更新" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "移除附件" + "value" : "重試更新" } } } }, - "Remove Column" : { + "Retry Validation" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Retry Validation" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열 제거" + "value" : "유효성 검사 재시도" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sütunu Kaldır" + "value" : "Doğrulamayı Tekrar Dene" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gỡ cột" + "value" : "Thử lại xác thực" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "移除列" + "value" : "重试验证" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "移除欄位" + "value" : "重試驗證" } } } }, - "Remove Element" : { - "comment" : "A button that removes an element from an array.", - "isCommentAutoGenerated" : true, + "Reuse clean table tab" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "요소 제거" + "value" : "변경 사항이 없는 테이블 탭 재사용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Öğeyi Kaldır" + "value" : "Reuse clean table tab" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xoá phần tử" + "value" : "Tái sử dụng tab bảng trống" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "移除元素" + "value" : "复用空白表标签页" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "移除元素" + "value" : "重複使用空白資料表分頁" } } } }, - "Remove Failed" : { + "Reveal token" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "제거 실패" + "value" : "토큰 표시" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kaldırma Başarısız" + "value" : "Token'ı göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gỡ thất bại" + "value" : "Hiện token" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "移除失败" + "value" : "显示令牌" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "移除失敗" + "value" : "顯示權杖" } } } }, - "Remove filter" : { + "Review & Apply…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터 제거" + "value" : "검토 및 적용…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtreyi kaldır" + "value" : "Gözden Geçir ve Uygula…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa bộ lọc" + "value" : "Xem lại và áp dụng…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "移除筛选" + "value" : "检查并应用…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "移除篩選" + "value" : "檢視並套用…" } } } }, - "Remove Filter" : { + "Revoke" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터 제거" + "value" : "철회" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtreyi Kaldır" + "value" : "İptal Et" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa bộ lọc" + "value" : "Thu hồi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "移除筛选" + "value" : "撤销" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "移除篩選" + "value" : "撤銷" } } } }, - "Remove filter row" : { + "Revoke %1$@ on %2$@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터 행 제거" + "value" : "%2$@에 대한 %1$@ 철회" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtre satırını kaldır" + "value" : "%2$@ üzerindeki %1$@ yetkisini geri al" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa dòng bộ lọc" + "value" : "Thu hồi %1$@ trên %2$@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "移除筛选行" + "value" : "撤销 %2$@ 上的 %1$@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "移除篩選列" + "value" : "撤銷 %2$@ 上的 %1$@" } } } }, - "Remove folder" : { + "Revoke All" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "폴더 제거" + "value" : "모두 철회" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Klasörü kaldır" + "value" : "Tümünü Geri Al" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa thư mục" + "value" : "Thu hồi tất cả" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "移除文件夹" + "value" : "全部撤销" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "移除資料夾" + "value" : "全部撤銷" } } } }, - "Remove Folder" : { + "Revoke privileges from %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "폴더 제거" + "value" : "%@의 권한 철회" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Klasörü Kaldır" + "value" : "%@ hesabından yetkileri geri al" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa Thư mục" + "value" : "Thu hồi quyền của %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "移除文件夹" + "value" : "撤销 %@ 的权限" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "移除資料夾" + "value" : "撤銷 %@ 的權限" } } } }, - "Remove Foreign Key" : { + "Revoked" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "외래 키 제거" + "value" : "철회됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yabancı Anahtarı Kaldır" + "value" : "İptal Edildi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gỡ khóa ngoại" + "value" : "Đã thu hồi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "移除外键" + "value" : "已撤销" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "移除外鍵" + "value" : "已撤銷" } } } }, - "Remove from Favorites" : { - "comment" : "A button label that deletes a table from the user's favorites.", - "isCommentAutoGenerated" : true, + "Right-click to show all %@" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "즐겨찾기에서 제거" + "value" : "마우스 오른쪽 버튼을 클릭하여 모든 %@ 표시" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sık Kullanılanlardan Kaldır" + "value" : "Right-click to show all %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gỡ khỏi Yêu thích" + "value" : "Nhấp chuột phải để hiển thị tất cả %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "从收藏中移除" + "value" : "右键点击显示全部%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "從收藏中移除" + "value" : "按右鍵以顯示全部 %@" } } } }, - "Remove from Group" : { + "Right-click to show all tables" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "그룹에서 제거" + "value" : "마우스 오른쪽 버튼을 클릭하여 모든 테이블 표시" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Gruptan Çıkar" + "value" : "Right-click to show all tables" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa khỏi Nhóm" + "value" : "Nhấn chuột phải để hiện tất cả bảng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "从分组移除" + "value" : "右键单击显示所有表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "從群組移除" + "value" : "按右鍵顯示所有資料表" } } } }, - "Remove from Recent" : { + "Role" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "최근 항목에서 제거" + "value" : "역할" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Son Kullanılanlardan Kaldır" + "value" : "Rol" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa khỏi mục Gần đây" + "value" : "Vai trò" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "从“最近”中移除" + "value" : "角色" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "從「最近」中移除" + "value" : "角色" } } } }, - "Remove from Sidebar" : { + "Role Attributes" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사이드바에서 제거" + "value" : "역할 속성" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sidebar'dan Kaldır" + "value" : "Rol Öznitelikleri" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gỡ khỏi thanh bên" + "value" : "Thuộc tính vai trò" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "从侧边栏移除" + "value" : "角色属性" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "從側邊欄移除" + "value" : "角色屬性" } } } }, - "Remove Host" : { - "comment" : "Label for a button that removes the selected host from a list.", - "isCommentAutoGenerated" : true, + "Root" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "호스트 제거" + "value" : "루트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sunucuyu Kaldır" + "value" : "Root" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xoá máy chủ" + "value" : "Root" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "移除主机" + "value" : "Root" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "移除主機" + "value" : "Root" } } } }, - "Remove image" : { + "Root Level" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이미지 제거" + "value" : "최상위" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Görseli kaldır" + "value" : "Kök Seviye" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gỡ hình ảnh" + "value" : "Cấp gốc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "移除图像" + "value" : "根级别" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "移除圖片" + "value" : "根層級" } } } }, - "Remove Index" : { + "Routes this connection through a SOCKS5 proxy. The database hostname is resolved by the proxy, so names that only resolve behind it still work." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "인덱스 제거" + "value" : "SOCKS5 프록시를 통해 이 연결을 라우팅합니다. 데이터베이스 호스트 이름은 프록시가 확인하므로 프록시 측 네트워크에서만 확인되는 이름도 사용할 수 있습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İndeksi Kaldır" + "value" : "Bu bağlantıyı bir SOCKS5 proxy üzerinden yönlendirir. Veritabanı sunucu adı proxy tarafından çözümlenir, böylece yalnızca proxy arkasında çözümlenen adlar da çalışır." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gỡ index" + "value" : "Định tuyến kết nối này qua một SOCKS5 proxy. Tên máy chủ cơ sở dữ liệu do proxy phân giải, nên những tên chỉ phân giải được phía sau proxy vẫn dùng được." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "移除索引" + "value" : "通过 SOCKS5 代理转发此连接。数据库主机名由代理解析,因此只能在代理后解析的名称同样可用。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "移除索引" + "value" : "透過 SOCKS5 代理轉送此連線。資料庫主機名稱由代理解析,因此只能在代理後方解析的名稱同樣可用。" } } } }, - "Remove jump host" : { + "Row" : { "localizations" : { "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "점프 호스트 제거" + "value" : "행", + "state" : "translated" } }, "tr" : { "stringUnit" : { - "state" : "translated", - "value" : "Atlama sunucusunu kaldır" + "value" : "Satır", + "state" : "translated" } }, "vi" : { "stringUnit" : { - "state" : "translated", - "value" : "Xóa jump host" + "value" : "Hàng", + "state" : "translated" } }, "zh-Hans" : { "stringUnit" : { - "state" : "translated", - "value" : "移除跳板机" + "value" : "行", + "state" : "translated" } }, "zh-Hant" : { "stringUnit" : { - "state" : "translated", - "value" : "移除跳板主機" + "value" : "列", + "state" : "translated" } } } }, - "Remove license from this machine" : { + "Row %d" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 기기에서 라이선스 제거" + "value" : "%d행" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Lisansı bu makineden kaldır" + "value" : "Satır %d" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gỡ giấy phép khỏi máy này" + "value" : "Dòng %d" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "从此设备移除许可证" + "value" : "第%d行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "從此機器移除授權" + "value" : "第 %d 列" } } } }, - "Remove Linked Folder?" : { + "Row %d, column %d: %@" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Row %1$d, column %2$d: %3$@" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결된 폴더를 제거하시겠습니까?" + "value" : "%1$d행, %2$d열: %3$@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlı Klasör Kaldırılsın mı?" + "value" : "Satır %d, sütun %d: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gỡ thư mục liên kết?" + "value" : "Dòng %d, cột %d: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "要移除链接的文件夹吗?" + "value" : "第%d行,第%d列:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "要移除連結的資料夾嗎?" + "value" : "第 %1$d 列,第 %2$d 欄:%3$@" } } } }, - "Remove provider" : { + "Row %lld" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "제공자 제거" + "value" : "%lld행" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sağlayıcıyı kaldır" + "value" : "satır %lld" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa nhà cung cấp" + "value" : "Hàng %lld" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "移除提供商" + "value" : "行 %lld" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "移除供應商" + "value" : "第 %lld 列" } } } }, - "Remove Provider" : { + "Row %lld, column %lld: %@" : { + "extractionState" : "stale", "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Row %1$lld, column %2$lld: %3$@" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "제공자 제거" + "value" : "%1$lld행, %2$lld열: %3$@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sağlayıcıyı Kaldır" + "value" : "satır %lld, column %lld: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gỡ nhà cung cấp" + "value" : "Hàng %lld, cột %lld: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "移除提供方" + "value" : "行 %lld,列 %lld:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "移除供應商" + "value" : "第 %1$lld 列,第 %2$lld 欄:%3$@" } } } }, - "Remove Provider?" : { + "Row Details" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "제공자를 제거하시겠습니까?" + "value" : "행 세부사항" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sağlayıcı Kaldırılsın mı?" + "value" : "Row Details" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gỡ nhà cung cấp?" + "value" : "Chi tiết dòng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "移除提供方?" + "value" : "行详情" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "移除供應商?" + "value" : "列詳細資訊" } } } }, - "Remove tag %@" : { - "comment" : "A label for a button that removes a tag from a list of selected tags. The argument is the name of the tag to be removed.", - "isCommentAutoGenerated" : true, + "Row Edits" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "태그 %@ 제거" + "value" : "행 편집" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ etiketini kaldır" + "value" : "Satır Düzenlemeleri" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xoá thẻ %@" + "value" : "Sửa hàng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "移除标签 %@" + "value" : "行编辑" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "移除標籤 %@" + "value" : "列編輯" } } } }, - "Removed" : { + "Row Heights" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "제거됨" + "value" : "행 높이" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kaldırıldı" + "value" : "Row Heights" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã xóa" + "value" : "Chiều cao dòng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "移除" + "value" : "行高" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "移除" + "value" : "列高" } } } }, - "Rename" : { + "Row Number" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이름 변경" + "value" : "행 번호" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeniden Adlandır" + "value" : "Satır Numarası" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đổi tên" + "value" : "Số thứ tự dòng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重命名" + "value" : "行号" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重新命名" + "value" : "列號" } } } }, - "Rename Column" : { + "Row cap:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열 이름 변경" + "value" : "행 상한:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sütunu Yeniden Adlandır" + "value" : "Satır sınırı:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đổi tên cột" + "value" : "Giới hạn hàng:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重命名列" + "value" : "行数上限:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重新命名欄位" + "value" : "列數上限:" } } } }, - "Rename Column…" : { + "Row height:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열 이름 변경…" + "value" : "행 높이:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sütunu Yeniden Adlandır…" + "value" : "Satır yüksekliği:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đổi tên cột…" + "value" : "Chiều cao dòng:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重命名列…" + "value" : "行高:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重新命名欄位…" + "value" : "列高:" } } } }, - "Rename Group" : { + "Row limit:" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "그룹 이름 변경" + "value" : "행 제한:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Grubu Yeniden Adlandır" + "value" : "Satır limiti:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đổi tên nhóm" + "value" : "Giới hạn dòng:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重命名分组" + "value" : "行数限制:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重新命名群組" + "value" : "列數限制:" } } } }, - "Rename…" : { - "extractionState" : "stale", + "Row number" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이름 변경…" + "value" : "행 번호" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeniden Adlandır…" + "value" : "Satır numarası" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đổi tên…" + "value" : "Số hàng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重命名…" + "value" : "行号" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重新命名…" + "value" : "列號" } } } }, - "Renew" : { + "Row size:" : { + "comment" : "A label for the size of the sidebar rows.", + "isCommentAutoGenerated" : true, "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Renew" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "갱신" + "value" : "행 크기:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yenile" + "value" : "Satır boyutu:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gia hạn" + "value" : "Cỡ hàng:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "续期" + "value" : "行大小:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "續訂" + "value" : "列大小:" } } } }, - "Renew License" : { + "Rows" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Renew License" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "라이선스 갱신" + "value" : "행" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Lisansı Yenile" + "value" : "Satırlar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gia hạn giấy phép" + "value" : "Dòng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "续期许可证" + "value" : "行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "續訂授權" + "value" : "列" } } } }, - "Renew License…" : { + "Rows %lld-%lld" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "라이선스 갱신…" + "value" : "%lld-%lld행" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Lisansı Yenile…" + "value" : "%lld-%lld. satırlar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gia hạn giấy phép…" + "value" : "Hàng %lld-%lld" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "续期许可证…" + "value" : "第 %lld-%lld 行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "續訂授權…" + "value" : "第 %lld-%lld 列" } } } }, - "Reopen Closed Tab" : { + "Rows Compare Data" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "행은 데이터를 비교합니다", + "state" : "translated" + } + } + } + }, + "Rows per INSERT" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "닫은 탭 다시 열기" + "value" : "INSERT당 행 수" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kapatılan Sekmeyi Yeniden Aç" + "value" : "Rows per INSERT" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở lại tab đã đóng" + "value" : "Dòng mỗi INSERT" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重新打开已关闭的标签页" + "value" : "每条 INSERT 的行数" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重新開啟已關閉的分頁" + "value" : "每筆 INSERT 的列數" } } } }, - "Reopen Last Session" : { + "Rows per insertMany" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "마지막 세션 다시 열기" + "value" : "insertMany당 행 수" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Son Oturumu Yeniden Aç" + "value" : "Rows per insertMany" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mở lại phiên làm việc trước" + "value" : "Số dòng mỗi insertMany" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重新打开上次会话" + "value" : "每条 insertMany 的行数" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重新開啟上次工作階段" + "value" : "每筆 insertMany 的列數" } } } }, - "Reorder Column" : { + "Rows per page" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열 순서 변경" + "value" : "페이지당 행 수" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sütunu Yeniden Sırala" + "value" : "Sayfa başına satır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sắp xếp lại cột" + "value" : "Số hàng mỗi trang" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "调整列顺序" + "value" : "每页行数" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "調整欄位順序" + "value" : "每頁列數" } } } }, - "Replace" : { + "Rules" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "바꾸기" + "value" : "규칙" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Değiştir" + "value" : "Kurallar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thay thế" + "value" : "Quy tắc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "替换" + "value" : "规则" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "取代" + "value" : "規則" } } } }, - "Replace %1$@ %2$@" : { - - }, - "Replace the estimate with an exact row count." : { + "Run" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "추정치를 정확한 행 수로 바꿉니다." + "value" : "실행" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tahmini, tam satır sayısıyla değiştirir." + "value" : "Çalıştır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thay ước tính bằng số dòng chính xác." + "value" : "Chạy" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "用精确行数替换估算值。" + "value" : "运行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "用精確列數取代估算值。" + "value" : "執行" } } } }, - "Replication lag: %ds" : { - "extractionState" : "stale", + "Run Script" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "복제 지연: %d초" + "value" : "스크립트 실행" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Çoğaltma gecikmesi: %ds" + "value" : "Betiği Çalıştır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Độ trễ sao chép: %ds" + "value" : "Chạy script" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制延迟:%d秒" + "value" : "运行脚本" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複寫延遲:%d 秒" + "value" : "執行指令碼" } } } }, - "Replication lag: %llds" : { - "extractionState" : "stale", + "Run Statement and Advance" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "복제 지연: %lld초" + "value" : "문 실행 후 다음으로" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Replication lag: %llds" + "value" : "İfadeyi Çalıştır ve İlerle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Độ trễ sao chép: %llds" + "value" : "Chạy câu lệnh rồi chuyển tiếp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复制延迟:%llds" + "value" : "运行语句并前进" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "複寫延遲:%lld 秒" + "value" : "執行陳述式並前進" } } } }, - "Replies count against your Claude subscription limits. You share those limits with claude.ai and your own Claude Code sessions, so running out here stops your work there too." : { + "Run a query to see execution time" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "답변은 Claude 구독 한도를 사용합니다. 이 한도는 claude.ai 및 사용자의 Claude Code 세션과 공유되므로 여기서 한도를 소진하면 그곳에서도 작업이 중단됩니다." + "value" : "쿼리를 실행하여 실행 시간 확인" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yanıtlar Claude abonelik limitlerinizden düşer. Bu limitleri claude.ai ve kendi Claude Code oturumlarınızla paylaşırsınız, bu yüzden burada limiti doldurmak oradaki işinizi de durdurur." + "value" : "Çalışma süresini görmek için bir sorgu çalıştırın" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Các câu trả lời được tính vào giới hạn gói Claude của bạn. Bạn dùng chung giới hạn đó với claude.ai và các phiên Claude Code của mình, nên hết hạn mức ở đây cũng làm dừng công việc bên đó." + "value" : "Chạy truy vấn để xem thời gian thực thi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "回复会计入你的 Claude 订阅额度。该额度与 claude.ai 和你自己的 Claude Code 会话共用,因此在这里用完也会让那边的工作停下来。" + "value" : "运行查询以查看执行时间" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "回覆會計入你的 Claude 訂閱額度。該額度與 claude.ai 和你自己的 Claude Code 工作階段共用,因此在這裡用完也會讓那邊的工作停下來。" + "value" : "執行查詢以查看執行時間" } } } }, - "Report an Issue" : { + "Run against this database (uses current if omitted)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "문제 보고" + "value" : "이 데이터베이스에서 실행(생략 시 현재 데이터베이스 사용)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorun Bildir" + "value" : "Bu veritabanında çalıştır (belirtilmezse geçerli olan kullanılır)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Báo cáo sự cố" + "value" : "Chạy trên cơ sở dữ liệu này (bỏ trống thì dùng cái hiện tại)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "报告问题" + "value" : "在此数据库上运行(省略则使用当前数据库)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "回報問題" + "value" : "在此資料庫上執行(省略則使用目前的資料庫)" } } } }, - "Report whether a connection is open, which database and schema it is on, and the server version." : { - - }, - "Require authentication" : { + "Run against this schema (uses current if omitted)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "인증 요구" + "value" : "이 스키마에서 실행(생략 시 현재 스키마 사용)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kimlik doğrulama gerekli" + "value" : "Bu şemada çalıştır (belirtilmezse geçerli olan kullanılır)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Yêu cầu xác thực" + "value" : "Chạy trên schema này (bỏ trống thì dùng cái hiện tại)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "需要认证" + "value" : "在此 Schema 上运行(省略则使用当前 Schema)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "需要驗證" + "value" : "在此綱要上執行(省略則使用目前的綱要)" } } } }, - "Require confirmation or Touch ID before executing queries." : { - "extractionState" : "stale", + "Run button beside each statement" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 실행 전에 확인 또는 Touch ID를 요구합니다." + "value" : "각 문 옆에 실행 버튼" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorguları çalıştırmadan önce onay veya Touch ID gerektirir." + "value" : "Her ifadenin yanında çalıştır düğmesi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Yêu cầu xác nhận hoặc Touch ID trước khi thực thi truy vấn." + "value" : "Nút chạy bên cạnh mỗi câu lệnh" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "执行查询前需要确认或 Touch ID。" + "value" : "每条语句旁显示运行按钮" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "執行查詢前需要確認或 Touch ID。" + "value" : "每個陳述式旁顯示執行按鈕" } } } }, - "Require SSL, skip verification" : { + "Run in New Tab" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSL 필수, 인증서 검증 건너뛰기" + "value" : "새 탭에서 실행" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSL zorunlu, doğrulamayı atla" + "value" : "Yeni Sekmede Çalıştır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Yêu cầu SSL, bỏ qua xác minh" + "value" : "Chạy trong tab mới" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "要求 SSL,跳过验证" + "value" : "在新标签页中运行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "要求 SSL,略過驗證" + "value" : "在新分頁中執行" } } } }, - "Required (skip verify)" : { + "Run in a transaction" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "트랜잭션으로 실행", + "state" : "translated" + } + } + } + }, + "Run some queries and this tab will show which you run most, which run slowest, and which got slower." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필수(인증서 검증 건너뛰기)" + "value" : "몇 개의 쿼리를 실행하면 이 탭에서 가장 자주 실행한 쿼리, 가장 느린 쿼리, 성능이 저하된 쿼리를 확인할 수 있습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Zorunlu (doğrulamayı atla)" + "value" : "Birkaç sorgu çalıştırın; bu sekme en çok çalıştırdıklarınızı, en yavaş olanları ve yavaşlayanları gösterecek." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bắt buộc (bỏ qua xác minh)" + "value" : "Chạy vài truy vấn và tab này sẽ cho thấy truy vấn nào bạn chạy nhiều nhất, chạy chậm nhất và chậm đi." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "必需(跳过验证)" + "value" : "运行一些查询,这个标签页就会显示哪些查询你运行得最多、哪些最慢、哪些变慢了。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "必要(略過驗證)" + "value" : "執行一些查詢,這個分頁就會顯示哪些查詢你執行得最多、哪些最慢、哪些變慢了。" } } } }, - "Required only for an encrypted key" : { + "Run statement" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "암호화된 키에만 필요" + "value" : "문 실행" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yalnızca şifreli bir anahtar için gerekli" + "value" : "İfadeyi çalıştır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chỉ cần cho khóa được mã hóa" + "value" : "Chạy câu lệnh" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "仅加密密钥需要" + "value" : "运行语句" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "僅加密金鑰需要" + "value" : "執行陳述式" } } } }, - "Required only when the server enforces mutual TLS authentication." : { + "Run the command below in your terminal" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "서버에서 상호 TLS 인증을 적용하는 경우에만 필요합니다." + "value" : "터미널에서 아래 명령을 실행하십시오" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yalnızca sunucu karşılıklı TLS kimlik doğrulamasını zorunlu kıldığında gerekli." + "value" : "Aşağıdaki komutu terminalinizde çalıştırın" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chỉ cần khi máy chủ bắt buộc xác thực TLS hai chiều." + "value" : "Chạy lệnh dưới đây trong terminal" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "仅当服务器强制双向 TLS 认证时需要。" + "value" : "在终端中运行以下命令" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "僅當伺服器強制雙向 TLS 驗證時需要。" + "value" : "在終端機中執行以下指令" } } } }, - "Requires" : { + "Run the script against the target" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "대상에 대해 스크립트 실행", + "state" : "translated" + } + } + } + }, + "Run the statement starting on line %d" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필요 버전" + "value" : "%d번째 줄에서 시작하는 문 실행" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Requires" + "value" : "%d. satırda başlayan ifadeyi çalıştır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Yêu cầu" + "value" : "Chạy câu lệnh bắt đầu ở dòng %d" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "需要" + "value" : "运行从第 %d 行开始的语句" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "需要" + "value" : "執行從第 %d 行開始的陳述式" } } } }, - "Reserved Shortcut" : { + "Running Threads" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "예약된 단축키" + "value" : "실행 중인 스레드" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ayrılmış Kısayol" + "value" : "Çalışan İş Parçacıkları" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phím tắt dành riêng" + "value" : "Luồng đang chạy" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "保留的快捷键" + "value" : "运行中的线程" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "保留的快速鍵" + "value" : "執行中的執行緒" } } } }, - "Reset" : { + "Running on port %d" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "재설정" + "value" : "포트 %d에서 실행 중" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sıfırla" + "value" : "%d portunda çalışıyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đặt lại" + "value" : "Đang chạy trên cổng %d" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重置" + "value" : "运行在端口 %d" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重設" + "value" : "執行於連接埠 %d" } } } }, - "Reset All Customizations" : { - "extractionState" : "stale", + "Running the pre-connect script" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 사용자화 재설정" + "value" : "연결 전 스크립트 실행 중" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm Özelleştirmeleri Sıfırla" + "value" : "Bağlantı öncesi betik çalıştırılıyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đặt lại tất cả tùy chỉnh" + "value" : "Đang chạy script trước khi kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重置所有自定义" + "value" : "正在运行连接前脚本" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重設所有自訂設定" + "value" : "正在執行連線前指令碼" } } } }, - "Reset All Settings" : { + "Runs the claude command line tool so chat bills against your Claude subscription. Database tools need the MCP server turned on in Settings > Integrations." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 설정 재설정" + "value" : "claude 명령줄 도구를 실행하므로 채팅 사용량은 Claude 구독에 청구됩니다. 데이터베이스 도구를 사용하려면 설정 > 통합에서 MCP 서버를 켜야 합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm Ayarları Sıfırla" + "value" : "claude komut satırı aracını çalıştırır, böylece sohbet Claude aboneliğinizden düşer. Veritabanı araçları için Ayarlar > Entegrasyonlar altında MCP sunucusunun açık olması gerekir." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đặt lại tất cả cài đặt" + "value" : "Chạy công cụ dòng lệnh claude nên phần chat sẽ tính vào gói đăng ký Claude của bạn. Các công cụ cơ sở dữ liệu cần bật máy chủ MCP trong Cài đặt > Tích hợp." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重置所有设置" + "value" : "运行 claude 命令行工具,因此聊天会计入你的 Claude 订阅。数据库工具需要在“设置 > 集成”中开启 MCP 服务器。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重設所有設定" + "value" : "執行 claude 命令列工具,因此聊天會計入你的 Claude 訂閱。資料庫工具需要在「設定 > 整合」中開啟 MCP 伺服器。" } } } }, - "Reset All Settings to Defaults" : { + "SAVED CONNECTIONS" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 설정을 기본값으로 재설정" + "value" : "저장된 연결" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm Ayarları Varsayılana Sıfırla" + "value" : "KAYITLI BAĞLANTILAR" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đặt lại tất cả cài đặt về mặc định" + "value" : "KẾT NỐI ĐÃ LƯU" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将所有设置重置为默认值" + "value" : "已保存的连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將所有設定重設為預設值" + "value" : "已儲存的連線" } } } }, - "Reset column widths, order, and visibility to defaults" : { + "SELECT * FROM users WHERE id = 1;" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열 너비, 순서 및 표시 여부를 기본값으로 재설정" + "value" : "SELECT * FROM users WHERE id = 1;" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sütun genişliklerini, sırasını ve görünürlüğünü varsayılana sıfırla" + "value" : "SELECT * FROM users WHERE id = 1;" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đặt lại độ rộng, thứ tự và khả năng hiển thị của cột về mặc định" + "value" : "SELECT * FROM users WHERE id = 1;" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将列宽、顺序和显示状态重置为默认值" + "value" : "SELECT * FROM users WHERE id = 1;" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將欄寬、順序與顯示狀態重設為預設值" + "value" : "SELECT * FROM users WHERE id = 1;" } } } }, - "Reset Columns" : { + "SELECT * FROM users WHERE id = 42;" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열 재설정" + "value" : "SELECT * FROM users WHERE id = 42;" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sütunları Sıfırla" + "value" : "SELECT * FROM users WHERE id = 42;" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đặt lại cột" + "value" : "SELECT * FROM users WHERE id = 42;" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重置列" + "value" : "SELECT * FROM users WHERE id = 42;" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重設欄位" + "value" : "SELECT * FROM users WHERE id = 42;" } } } }, - "Reset Filters" : { + "SELECT queries without their own LIMIT run with this cap applied. The query text in the editor never changes. Capped results show a Fetch All button, and Execute Without Limit skips the cap for one run." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터 재설정" + "value" : "자체 LIMIT이 없는 SELECT 쿼리는 이 상한을 적용하여 실행됩니다. 편집기의 쿼리 텍스트는 변경되지 않습니다. 제한된 결과에는 '모두 가져오기' 버튼이 표시되며, 한 번만 상한을 건너뛰려면 '제한 없이 실행'을 사용합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtreleri Sıfırla" + "value" : "Kendi LIMIT'i olmayan SELECT sorguları bu sınırla çalışır. Düzenleyicideki sorgu metni hiç değişmez. Sınırlanan sonuçlarda Tümünü Getir düğmesi görünür, Limitsiz Çalıştır ise sınırı tek seferlik atlar." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đặt lại bộ lọc" + "value" : "Các truy vấn SELECT không có LIMIT riêng sẽ chạy với giới hạn này. Nội dung truy vấn trong trình soạn thảo không hề thay đổi. Kết quả bị giới hạn sẽ hiện nút Tải tất cả, còn Chạy không giới hạn sẽ bỏ qua giới hạn cho một lần chạy." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重置筛选" + "value" : "没有自带 LIMIT 的 SELECT 查询会按此上限运行。编辑器中的查询文本不会被改动。被截断的结果会显示“获取所有行”按钮,“不限行数执行”则对单次运行跳过上限。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重置篩選" + "value" : "沒有自帶 LIMIT 的 SELECT 查詢會套用此上限。編輯器中的查詢文字不會被更動。被截斷的結果會顯示「取得所有列」按鈕,「不限列數執行」則對單次執行略過上限。" } } } }, - "Reset Layout" : { + "SIZE" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "레이아웃 재설정" + "value" : "크기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Düzeni Sıfırla" + "value" : "SIZE" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đặt lại bố cục" + "value" : "KÍCH THƯỚC" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重置布局" + "value" : "大小" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重設版面配置" + "value" : "大小" } } } }, - "Reset Sample" : { + "SOCKS Proxy" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "샘플 재설정" + "value" : "SOCKS 프록시" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Örneği Sıfırla" + "value" : "SOCKS Proxy" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đặt lại mẫu" + "value" : "SOCKS Proxy" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重置示例" + "value" : "SOCKS 代理" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重設範例" + "value" : "SOCKS 代理" } } } }, - "Reset Sample Database?" : { + "SOCKS proxy disconnected. Click to reconnect." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "샘플 데이터베이스를 재설정하시겠습니까?" + "value" : "SOCKS 프록시 연결이 끊어졌습니다. 클릭하여 다시 연결하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Örnek Veritabanı Sıfırlansın mı?" + "value" : "SOCKS proxy bağlantısı kesildi. Yeniden bağlanmak için tıklayın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đặt lại cơ sở dữ liệu mẫu?" + "value" : "SOCKS proxy đã ngắt kết nối. Nhấn để kết nối lại." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "要重置示例数据库吗?" + "value" : "SOCKS 代理已断开。点按可重新连接。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "要重設範例資料庫嗎?" + "value" : "SOCKS 代理已中斷連線。點按即可重新連線。" } } } }, - "Reset Sample Database…" : { + "SOCKS proxy host is required" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "샘플 데이터베이스 재설정…" + "value" : "SOCKS 프록시 호스트가 필요합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Örnek Veritabanını Sıfırla…" + "value" : "SOCKS proxy sunucusu gerekli" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đặt lại cơ sở dữ liệu mẫu…" + "value" : "Cần nhập máy chủ SOCKS proxy" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重置示例数据库…" + "value" : "需要填写 SOCKS 代理主机" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重設範例資料庫…" + "value" : "需要填寫 SOCKS 代理主機" } } } }, - "Reset to default" : { + "SOCKS proxy port must be between 1 and 65535" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기본값으로 재설정" + "value" : "SOCKS 프록시 포트는 1~65535 사이여야 합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Varsayılana sıfırla" + "value" : "SOCKS proxy portu 1 ile 65535 arasında olmalı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đặt lại về mặc định" + "value" : "Cổng SOCKS proxy phải nằm trong khoảng 1 đến 65535" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重置为默认值" + "value" : "SOCKS 代理端口必须在 1 到 65535 之间" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重設為預設值" + "value" : "SOCKS 代理連接埠必須介於 1 到 65535 之間" } } } }, - "Reset to Defaults" : { + "SQL" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기본값으로 재설정" + "value" : "SQL" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Varsayılana Sıfırla" + "value" : "SQL" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khôi phục mặc định" + "value" : "SQL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "恢复默认" + "value" : "SQL" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重設為預設值" + "value" : "SQL" } } } }, - "Reset to Inferred" : { + "SQL Dialect" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "추론된 형식으로 재설정" + "value" : "SQL 방언" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Çıkarsanana Sıfırla" + "value" : "SQL Dialect" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đặt lại về giá trị suy luận" + "value" : "Phương ngữ SQL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重置为推断值" + "value" : "SQL 方言" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重設為推斷值" + "value" : "SQL 方言" } } } }, - "Reset to System Default" : { + "SQL Editor" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "시스템 기본값으로 재설정" + "value" : "SQL 편집기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sistem Varsayılanına Sıfırla" + "value" : "SQL Düzenleyici" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đặt lại về mặc định hệ thống" + "value" : "Trình soạn thảo SQL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重置为系统默认" + "value" : "SQL 编辑器" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重設為系統預設值" + "value" : "SQL 編輯器" } } } }, - "Reset Zoom" : { + "SQL Functions" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "확대/축소 재설정" + "value" : "SQL 함수" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yakınlaştırmayı Sıfırla" + "value" : "SQL Fonksiyonları" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đặt lại thu phóng" + "value" : "Hàm SQL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重置缩放" + "value" : "SQL 函数" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重設縮放" + "value" : "SQL 函式" } } } }, - "Resource" : { + "SQL INSERT statements. Use to recreate data in another database." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "리소스" + "value" : "SQL INSERT 문입니다. 다른 데이터베이스에 데이터를 다시 생성할 때 사용합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kaynak" + "value" : "SQL INSERT ifadeleri. Başka bir veritabanında veri yeniden oluşturmak için kullanın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tài nguyên" + "value" : "Câu lệnh SQL INSERT. Dùng để tạo lại dữ liệu trong cơ sở dữ liệu khác." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "资源" + "value" : "SQL INSERT 语句。用于在其他数据库中重建数据。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資源" + "value" : "SQL INSERT 陳述式。用於在其他資料庫中重建資料。" } } } }, - "Responding" : { + "SQL Preview" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "응답 중" + "value" : "SQL 미리보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yanıt veriyor" + "value" : "SQL Önizleme" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang phản hồi" + "value" : "Xem trước SQL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "响应中" + "value" : "SQL 预览" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "回應中" + "value" : "SQL 預覽" } } } }, - "Response" : { + "SQL Query" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "응답" + "value" : "SQL 쿼리" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yanıt" + "value" : "SQL Sorgusu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phản hồi" + "value" : "Truy vấn SQL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "响应" + "value" : "SQL 查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "回應" + "value" : "SQL 查詢" } } } }, - "Response failed" : { + "SQL Server" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "응답 실패" + "value" : "SQL Server" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yanıt başarısız oldu" + "value" : "SQL Server" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phản hồi thất bại" + "value" : "SQL Server" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "响应失败" + "value" : "SQL Server" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "回應失敗" + "value" : "SQL Server" } } } }, - "Restart Claude Desktop" : { + "SQL Server connections use the system trust store. Per-connection CA and client certificate paths are not supported by FreeTDS dblib; configure them in `freetds.conf` if you need a custom trust anchor." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Claude Desktop 재시작" + "value" : "SQL Server 연결은 시스템 신뢰 저장소를 사용합니다. FreeTDS dblib은 연결별 CA 및 클라이언트 인증서 경로를 지원하지 않습니다. 사용자 지정 신뢰 앵커가 필요한 경우 `freetds.conf`에서 구성하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Claude Desktop'ı Yeniden Başlat" + "value" : "SQL Server bağlantıları sistem güven deposunu kullanır. FreeTDS dblib, bağlantıya özel CA ve istemci sertifikası yollarını desteklemez; özel bir güven kaynağına ihtiyacınız varsa bunları `freetds.conf` dosyasında yapılandırın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khởi động lại Claude Desktop" + "value" : "Kết nối SQL Server dùng kho tin cậy của hệ thống. FreeTDS dblib không hỗ trợ đường dẫn CA và chứng chỉ client theo từng kết nối; hãy cấu hình trong `freetds.conf` nếu bạn cần trust anchor tùy chỉnh." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重启 Claude Desktop" + "value" : "SQL Server 连接使用系统信任存储。FreeTDS dblib 不支持按连接配置 CA 和客户端证书路径;如需自定义信任锚,请在 `freetds.conf` 中配置。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重新啟動 Claude Desktop" + "value" : "SQL Server 連線使用系統信任存放區。FreeTDS dblib 不支援按連線設定 CA 和用戶端憑證路徑;如果你需要自訂信任錨點,請在 `freetds.conf` 中設定。" } } } }, - "Restart TablePro for the language change to take full effect." : { + "SQL commands to run after connecting, e.g. SET time_zone = 'Asia/Ho_Chi_Minh'. One per line or separated by semicolons." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "언어 변경 사항을 완전히 적용하려면 TablePro를 재시작하십시오." + "value" : "연결 후 실행할 SQL 명령입니다(예: SET time_zone = 'Asia/Ho_Chi_Minh'). 한 줄에 하나씩 입력하거나 세미콜론으로 구분하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dil değişikliğinin tam olarak uygulanması için TablePro'yu yeniden başlatın." + "value" : "Bağlandıktan sonra çalıştırılacak SQL komutları, örneğin SET time_zone = 'Asia/Ho_Chi_Minh'. Her satıra bir tane yazın veya noktalı virgülle ayırın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khởi động lại TablePro để thay đổi ngôn ngữ có hiệu lực hoàn toàn." + "value" : "Các lệnh SQL chạy sau khi kết nối, ví dụ SET time_zone = 'Asia/Ho_Chi_Minh'. Mỗi dòng một lệnh hoặc phân cách bằng dấu chấm phẩy." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重启 TablePro 以使语言更改完全生效。" + "value" : "连接后执行的 SQL 命令,例如 SET time_zone = 'Asia/Ho_Chi_Minh'。每行一条或用分号分隔。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重新啟動 TablePro 以讓語言變更完全生效。" + "value" : "連線後執行的 SQL 指令,例如 SET time_zone = 'Asia/Ho_Chi_Minh'。每行一條或以分號分隔。" } } } }, - "Restart TablePro to fully unload removed plugins." : { + "SQL dialect for %@ is not available. The plugin may not be installed or loaded." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "제거한 플러그인을 완전히 언로드하려면 TablePro를 재시작하십시오." + "value" : "%@용 SQL 방언을 사용할 수 없습니다. 플러그인이 설치되지 않았거나 로드되지 않았을 수 있습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kaldırılan eklentilerin tamamen bellekten çıkması için TablePro'yu yeniden başlatın." + "value" : "%@ için SQL diyalekti kullanılamıyor. Eklenti kurulmamış veya yüklenmemiş olabilir." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khởi động lại TablePro để gỡ hoàn toàn các plugin đã xoá." + "value" : "Không có dialect SQL cho %@. Plugin có thể chưa được cài đặt hoặc tải." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重启 TablePro 以完全卸载已移除的插件。" + "value" : "%@ 的 SQL 方言不可用。插件可能未安装或未加载。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重新啟動 TablePro 以完全解除載入已移除的外掛。" + "value" : "%@ 的 SQL 方言無法使用。外掛可能尚未安裝或載入。" } } } }, - "Restore Database" : { + "SQL import is not supported for %@ connections." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 복원" + "value" : "%@ 연결에서는 SQL 가져오기를 지원하지 않습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanını Geri Yükle" + "value" : "%@ bağlantıları için SQL içe aktarma desteklenmiyor." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khôi phục cơ sở dữ liệu" + "value" : "Nhập SQL không được hỗ trợ cho kết nối %@." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "恢复数据库" + "value" : "不支持对 %@ 连接进行 SQL 导入。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "還原資料庫" + "value" : "%@ 連線不支援 SQL 匯入。" } } } }, - "Restore Dump Cancelled" : { - "comment" : "A title for a result sheet that indicates a restore operation was cancelled.", - "isCommentAutoGenerated" : true, + "SQL is too long: %d characters (limit %d)" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "SQL is too long: %1$d characters (limit %2$d)" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "덤프 복원 취소됨" + "value" : "SQL이 너무 깁니다: %1$d자(제한: %2$d자)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Döküm Geri Yükleme İptal Edildi" + "value" : "SQL çok uzun: %d karakter (sınır %d)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã hủy khôi phục dump" + "value" : "SQL quá dài: %d ký tự (giới hạn %d)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "转储恢复已取消" + "value" : "SQL 过长:%d 个字符(上限 %d)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "還原備份已取消" + "value" : "SQL 過長:%1$d 個字(上限 %2$d)" } } } }, - "Restore Dump Complete" : { - "comment" : "A title for a backup result sheet that indicates a successful restore.", - "isCommentAutoGenerated" : true, + "SQL or NoSQL query text" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "덤프 복원 완료" + "value" : "SQL 또는 NoSQL 쿼리 텍스트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Döküm Geri Yükleme Tamamlandı" + "value" : "SQL veya NoSQL sorgu metni" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khôi phục dump hoàn tất" + "value" : "Nội dung truy vấn SQL hoặc NoSQL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "转储恢复完成" + "value" : "SQL 或 NoSQL 查询文本" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "還原備份完成" + "value" : "SQL 或 NoSQL 查詢文字" } } } }, - "Restore Dump Failed" : { - "comment" : "A title for a backup result sheet that indicates a failed restore.", - "isCommentAutoGenerated" : true, + "SQL query editor" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "덤프 복원 실패" + "value" : "SQL 쿼리 편집기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Döküm Geri Yükleme Başarısız Oldu" + "value" : "SQL sorgu düzenleyicisi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khôi phục dump thất bại" + "value" : "Trình soạn truy vấn SQL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "转储恢复失败" + "value" : "SQL 查询编辑器" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "還原備份失敗" + "value" : "SQL 查詢編輯器" } } } }, - "Restore Dump…" : { - "comment" : "A button that opens a dialog to restore a database from a dump.", - "isCommentAutoGenerated" : true, + "SQL query to export results from" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "덤프 복원…" + "value" : "결과를 내보낼 SQL 쿼리" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dökümü Geri Yükle…" + "value" : "Sonuçları dışa aktarılacak SQL sorgusu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khôi phục dump…" + "value" : "Truy vấn SQL để xuất kết quả" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "恢复转储…" + "value" : "要导出结果的 SQL 查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在還原備份…" + "value" : "要匯出結果的 SQL 查詢" } } } }, - "Restore from" : { - "comment" : "A label displayed above the name of the source database.", - "isCommentAutoGenerated" : true, + "SQLite is file-based" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다음에서 복원" + "value" : "SQLite는 파일 기반입니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geri yükleme kaynağı" + "value" : "SQLite dosya tabanlıdır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khôi phục từ" + "value" : "SQLite dựa trên tệp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "恢复来源" + "value" : "SQLite 基于文件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "還原來源" + "value" : "SQLite 以檔案為基礎" } } } }, - "Restore Last Filter" : { + "SSH" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "마지막 필터 복원" + "value" : "SSH" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Son Filtreyi Geri Yükle" + "value" : "SSH" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khôi phục bộ lọc gần nhất" + "value" : "SSH" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "恢复上次筛选" + "value" : "SSH" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "還原上次篩選" + "value" : "SSH" } } } }, - "Restore…" : { + "SSH Agent" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "복원…" + "value" : "SSH 에이전트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geri Yükle…" + "value" : "SSH Aracısı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khôi phục…" + "value" : "SSH Agent" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "恢复…" + "value" : "SSH Agent" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "還原…" + "value" : "SSH Agent" } } } }, - "Restored “%@” from %@" : { + "SSH Connection Test Failed" : { + "extractionState" : "stale", "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Restored “%1$@” from %2$@" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%2$@에서 “%1$@” 복원을 완료했습니다" + "value" : "SSH 연결 테스트 실패" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "“%1$@” şuradan geri yüklendi: %2$@" + "value" : "SSH Bağlantı Testi Başarısız" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã khôi phục “%1$@” từ %2$@" + "value" : "Kiểm tra Kết nối SSH Thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已从%2$@恢复“%1$@”" + "value" : "SSH 连接测试失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已從 %1$@ 還原「%2$@」" + "value" : "SSH 連線測試失敗" } } } }, - "Restoring Dump" : { - "comment" : "A title for a progress sheet that is displayed when restoring a database dump.", - "isCommentAutoGenerated" : true, + "SSH Host" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "덤프 복원 중" + "value" : "SSH 호스트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Döküm Geri Yükleniyor" + "value" : "SSH Host" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang khôi phục dump" + "value" : "Máy chủ SSH" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在恢复转储" + "value" : "SSH 主机" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在還原資料庫" + "value" : "SSH 主機" } } } }, - "Restrict to a specific connection (UUID, optional)" : { - "extractionState" : "stale", + "SSH Host Key Changed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "특정 연결로 제한(UUID, 선택 사항)" + "value" : "SSH 호스트 키 변경됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Belirli bir bağlantıyla sınırla (UUID, isteğe bağlı)" + "value" : "SSH Sunucu Anahtarı Değişti" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giới hạn theo một kết nối cụ thể (UUID, tùy chọn)" + "value" : "Khóa máy chủ SSH đã thay đổi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "限制为特定连接(UUID,可选)" + "value" : "SSH 主机密钥已更改" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "限制為特定連線(UUID,選用)" + "value" : "SSH 主機金鑰已變更" } } } }, - "Restrict to one connection" : { - - }, - "Restrict to one connection. Omit for every readable connection." : { - - }, - "Restrict to one kind. Omit for both." : { - - }, - "Result" : { + "SSH Key Passphrase Required" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "결과" + "value" : "SSH 키 암호 필요" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sonuç" + "value" : "SSH Anahtarı Parolası Gerekli" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết quả" + "value" : "Cần mật khẩu khoá SSH" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "结果" + "value" : "需要 SSH 密钥密码" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "結果" + "value" : "需要 SSH 金鑰密碼短語" } } } }, - "Result %d" : { + "SSH Port" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "결과 %d" + "value" : "SSH 포트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sonuç %d" + "value" : "SSH Port" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết quả %d" + "value" : "Cổng SSH" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "结果 %d" + "value" : "SSH 端口" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "結果 %d" + "value" : "SSH 連接埠" } } } }, - "Result Charts" : { + "SSH Profile" : { + "extractionState" : "stale", "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "SSH Profile" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "결과 차트" + "value" : "SSH 프로필" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sonuç Grafikleri" + "value" : "SSH Profili" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Biểu đồ kết quả" + "value" : "Hồ sơ SSH" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "结果图表" + "value" : "SSH 配置" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "結果圖表" + "value" : "SSH 設定檔" } } } }, - "Result View" : { + "SSH Profiles:" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "SSH Profiles:" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "결과 보기" + "value" : "SSH 프로필:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sonuç Görünümü" + "value" : "SSH Profilleri:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chế độ xem kết quả" + "value" : "Hồ sơ SSH:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "结果视图" + "value" : "SSH 配置:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "結果檢視" + "value" : "SSH 設定檔:" } } } }, - "Results" : { + "SSH Tunnel" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "결과" + "value" : "SSH 터널" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sonuçlar" + "value" : "SSH Tüneli" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết quả" + "value" : "Đường hầm SSH" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "结果" + "value" : "SSH 隧道" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "結果" + "value" : "SSH 隧道" } } } }, - "Resume" : { + "SSH User" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "재개" + "value" : "SSH 사용자" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Devam Et" + "value" : "SSH User" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tiếp tục" + "value" : "Người dùng SSH" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "继续" + "value" : "SSH 用户" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "繼續" + "value" : "SSH 使用者" } } } }, - "Resume Query History" : { + "SSH Verification Rejected" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 기록 재개" + "value" : "SSH 확인 거부됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgu Geçmişini Sürdür" + "value" : "SSH Doğrulaması Reddedildi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tiếp tục lịch sử truy vấn" + "value" : "Xác minh SSH bị từ chối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "恢复查询历史" + "value" : "SSH 验证被拒绝" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "繼續查詢歷史" + "value" : "SSH 驗證遭拒" } } } }, - "Resume with a fresh tool call budget." : { + "SSH Verification Required" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 도구 호출 한도로 재개합니다." + "value" : "SSH 확인 필요" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni bir araç çağrısı bütçesiyle devam eder." + "value" : "SSH Doğrulaması Gerekli" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tiếp tục với hạn mức gọi công cụ mới." + "value" : "Cần xác minh SSH" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "以新的工具调用额度继续。" + "value" : "需要 SSH 验证" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "以新的工具呼叫額度繼續。" + "value" : "需要 SSH 驗證" } } } }, - "Retention" : { - "extractionState" : "stale", + "SSH agent did not authenticate. Run ssh-add -l to check loaded keys." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "보존 기간" + "value" : "SSH 에이전트가 인증하지 못했습니다. ssh-add -l을 실행하여 로드된 키를 확인하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Retention" + "value" : "SSH aracısı kimlik doğrulaması yapmadı. Yüklü anahtarları denetlemek için ssh-add -l komutunu çalıştırın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lưu giữ" + "value" : "SSH agent không xác thực được. Chạy ssh-add -l để kiểm tra các khóa đã nạp." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "保留" + "value" : "SSH 代理未通过身份验证。运行 ssh-add -l 检查已加载的密钥。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "保留" + "value" : "SSH 代理未通過驗證。請執行 ssh-add -l 檢查已載入的金鑰。" } } } }, - "Retry" : { + "SSH authentication cancelled." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "재시도" + "value" : "SSH 인증이 취소되었습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tekrar Dene" + "value" : "SSH kimlik doğrulaması iptal edildi." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thử lại" + "value" : "Đã hủy xác thực SSH." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重试" + "value" : "SSH 认证已取消。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重試" + "value" : "SSH 驗證已取消。" } } } }, - "Retry Install" : { + "SSH authentication failed. Check your credentials or private key." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "설치 재시도" + "value" : "SSH 인증에 실패했습니다. 자격 증명 또는 개인 키를 확인하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kurulumu Yeniden Dene" + "value" : "SSH kimlik doğrulaması başarısız. Kimlik bilgilerinizi veya özel anahtarınızı kontrol edin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thử cài đặt lại" + "value" : "Xác thực SSH thất bại. Kiểm tra thông tin đăng nhập hoặc khóa riêng tư." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重试安装" + "value" : "SSH 认证失败。请检查您的凭据或私钥。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重試安裝" + "value" : "SSH 驗證失敗。請檢查你的憑證或私鑰。" } } } }, - "Retry Update" : { + "SSH command not found. Please ensure OpenSSH is installed." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "업데이트 재시도" + "value" : "SSH 명령을 찾을 수 없습니다. OpenSSH가 설치되어 있는지 확인하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Güncellemeyi Yeniden Dene" + "value" : "SSH command not found. Please ensure OpenSSH is installed." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thử cập nhật lại" + "value" : "Không tìm thấy lệnh SSH. Vui lòng đảm bảo OpenSSH đã được cài đặt." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重试更新" + "value" : "未找到 SSH 命令。请确保已安装 OpenSSH。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重試更新" + "value" : "找不到 SSH 指令。請確認已安裝 OpenSSH。" } } } }, - "Retry Validation" : { + "SSH connection timed out" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Retry Validation" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "유효성 검사 재시도" + "value" : "SSH 연결 시간이 초과되었습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Doğrulamayı Tekrar Dene" + "value" : "SSH bağlantısı zaman aşımına uğradı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thử lại xác thực" + "value" : "Kết nối SSH đã hết thời gian" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重试验证" + "value" : "SSH 连接超时" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重試驗證" + "value" : "SSH 連線逾時" } } } }, - "Return size, engine, collation, and timestamps the engine records for one table." : { - - }, - "Return table counts and sizes for one database, or for every database when 'database' is omitted." : { - - }, - "Return the CREATE statement for one table or view." : { - - }, - "Return the SELECT statement a view is defined by." : { - - }, - "Returns %@" : { - - }, - "Reuse clean table tab" : { - "extractionState" : "stale", + "SSH host is required" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "변경 사항이 없는 테이블 탭 재사용" + "value" : "SSH 호스트가 필요합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Reuse clean table tab" + "value" : "SSH sunucusu gereklidir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tái sử dụng tab bảng trống" + "value" : "Cần nhập máy chủ SSH" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "复用空白表标签页" + "value" : "需要 SSH 主机" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重複使用空白資料表分頁" + "value" : "需要 SSH 主機" } } } }, - "Reveal token" : { + "SSH host key verification failed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "토큰 표시" + "value" : "SSH 호스트 키 확인에 실패했습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Token'ı göster" + "value" : "SSH sunucu anahtarı doğrulaması başarısız" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiện token" + "value" : "Xác minh khóa máy chủ SSH thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示令牌" + "value" : "SSH 主机密钥验证失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示權杖" + "value" : "SSH 主機金鑰驗證失敗" } } } }, - "review" : { + "SSH password rejected. Check the password and try again." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "검토" + "value" : "SSH 암호가 거부되었습니다. 암호를 확인하고 다시 시도하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "incele" + "value" : "SSH parolası reddedildi. Parolayı denetleyip yeniden deneyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "xem lại" + "value" : "Mật khẩu SSH bị từ chối. Kiểm tra mật khẩu và thử lại." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "审查" + "value" : "SSH 密码被拒绝。请检查密码后重试。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "審查" + "value" : "SSH 密碼被拒絕。請檢查密碼後再試一次。" } } } }, - "Review & Apply…" : { + "SSH port must be between 1 and 65535" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "검토 및 적용…" + "value" : "SSH 포트는 1~65535 사이여야 합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Gözden Geçir ve Uygula…" + "value" : "SSH portu 1 ile 65535 arasında olmalıdır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xem lại và áp dụng…" + "value" : "Cổng SSH phải nằm trong khoảng 1 đến 65535" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "检查并应用…" + "value" : "SSH 端口必须在 1 到 65535 之间" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "檢視並套用…" + "value" : "SSH 連接埠必須在 1 到 65535 之間" } } } }, - "Review a query before it runs" : { - - }, - "Revoke" : { + "SSH private key not found: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "철회" + "value" : "SSH 개인 키를 찾을 수 없습니다: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İptal Et" + "value" : "SSH özel anahtarı bulunamadı: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thu hồi" + "value" : "Không tìm thấy private key SSH: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "撤销" + "value" : "未找到 SSH 私钥:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "撤銷" + "value" : "找不到 SSH 私密金鑰:%@" } } } }, - "Revoke %1$@ on %2$@" : { + "SSH private key rejected. Check the key file or passphrase." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%2$@에 대한 %1$@ 철회" + "value" : "SSH 개인 키가 거부되었습니다. 키 파일 또는 암호를 확인하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%2$@ üzerindeki %1$@ yetkisini geri al" + "value" : "SSH özel anahtarı reddedildi. Anahtar dosyasını veya parola ifadesini denetleyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thu hồi %1$@ trên %2$@" + "value" : "Private key SSH bị từ chối. Kiểm tra file khóa hoặc passphrase." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "撤销 %2$@ 上的 %1$@" + "value" : "SSH 私钥被拒绝。请检查密钥文件或密码短语。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "撤銷 %2$@ 上的 %1$@" + "value" : "SSH 私密金鑰被拒絕。請檢查金鑰檔案或密碼短語。" } } } }, - "Revoke All" : { + "SSH tunnel already exists for connection: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모두 철회" + "value" : "연결에 대한 SSH 터널이 이미 있습니다: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tümünü Geri Al" + "value" : "Bu bağlantı için zaten bir SSH tüneli var: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thu hồi tất cả" + "value" : "Đường hầm SSH đã tồn tại cho kết nối: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "全部撤销" + "value" : "连接已存在 SSH 隧道:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "全部撤銷" + "value" : "此連線已存在 SSH 隧道:%@" } } } }, - "Revoke privileges from %@" : { + "SSH tunnel creation failed: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@의 권한 철회" + "value" : "SSH 터널 생성 실패: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ hesabından yetkileri geri al" + "value" : "SSH tüneli oluşturulamadı: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thu hồi quyền của %@" + "value" : "Tạo đường hầm SSH thất bại: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "撤销 %@ 的权限" + "value" : "创建 SSH 隧道失败:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "撤銷 %@ 的權限" + "value" : "建立 SSH 隧道失敗:%@" } } } }, - "Revoked" : { + "SSH tunnel did not connect within 30 seconds" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "철회됨" + "value" : "SSH 터널이 30초 이내에 연결되지 않았습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İptal Edildi" + "value" : "SSH tüneli 30 saniye içinde bağlanamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã thu hồi" + "value" : "Đường hầm SSH không kết nối được trong 30 giây" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已撤销" + "value" : "SSH 隧道在 30 秒内未能连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已撤銷" + "value" : "SSH 隧道未能在 30 秒內連線" } } } }, - "Right-click to show all %@" : { - "extractionState" : "stale", + "SSH tunnel disconnected. Click to reconnect." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "마우스 오른쪽 버튼을 클릭하여 모든 %@ 표시" + "value" : "SSH 터널 연결이 끊어졌습니다. 클릭하여 다시 연결하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Right-click to show all %@" + "value" : "SSH tüneli bağlantısı kesildi. Yeniden bağlanmak için tıklayın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhấp chuột phải để hiển thị tất cả %@" + "value" : "SSH tunnel đã ngắt kết nối. Bấm để kết nối lại." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "右键点击显示全部%@" + "value" : "SSH 隧道已断开。点按以重新连接。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "按右鍵以顯示全部 %@" + "value" : "SSH 隧道已中斷連線。點按以重新連線。" } } } }, - "Right-click to show all tables" : { - "extractionState" : "stale", + "SSH tunneling and SSL/TLS encryption support" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "마우스 오른쪽 버튼을 클릭하여 모든 테이블 표시" + "value" : "SSH 터널링 및 SSL/TLS 암호화 지원" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Right-click to show all tables" + "value" : "SSH tünelleme ve SSL/TLS şifreleme desteği" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhấn chuột phải để hiện tất cả bảng" + "value" : "Hỗ trợ đường hầm SSH và mã hóa SSL/TLS" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "右键单击显示所有表" + "value" : "SSH 隧道和 SSL/TLS 加密支持" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "按右鍵顯示所有資料表" + "value" : "支援 SSH 隧道與 SSL/TLS 加密" } } } }, - "Role" : { + "SSH tunneling only forwards the first host. Other replica set members must be directly reachable from the SSH server." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "역할" + "value" : "SSH 터널링은 첫 번째 호스트만 전달합니다. 다른 복제 세트 멤버는 SSH 서버에서 직접 연결할 수 있어야 합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Rol" + "value" : "SSH tüneli yalnızca ilk sunucuyu yönlendirir. Diğer replica set üyelerine SSH sunucusundan doğrudan erişilebilir olmalıdır." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Vai trò" + "value" : "SSH tunnel chỉ chuyển tiếp host đầu tiên. Các thành viên replica set khác phải truy cập được trực tiếp từ SSH server." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "角色" + "value" : "SSH 隧道仅转发第一个主机。其他副本集成员必须能从 SSH 服务器直接访问。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "角色" + "value" : "SSH 隧道僅會轉送第一個主機。其他複本集成員必須能從 SSH 伺服器直接連線。" } } } }, - "Role Attributes" : { + "SSH verification rejected. Check your response and try again." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "역할 속성" + "value" : "SSH 확인이 거부되었습니다. 응답을 확인하고 다시 시도하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Rol Öznitelikleri" + "value" : "SSH doğrulaması reddedildi. Yanıtınızı denetleyip tekrar deneyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thuộc tính vai trò" + "value" : "Xác minh SSH bị từ chối. Kiểm tra lại câu trả lời và thử lại." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "角色属性" + "value" : "SSH 验证被拒绝。请检查你的回答后重试。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "角色屬性" + "value" : "SSH 驗證遭拒。請檢查你的回答後再試一次。" } } } }, - "Roles it belongs to" : { - - }, - "root" : { - "extractionState" : "stale", + "SSL" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "root" + "value" : "SSL" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "root" + "value" : "SSL" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "root" + "value" : "SSL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "root" + "value" : "SSL" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "root" + "value" : "SSL" } } } }, - "Root" : { + "SSL Mode" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "루트" + "value" : "SSL 모드" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Root" + "value" : "SSL Modu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Root" + "value" : "Chế độ SSL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Root" + "value" : "SSL 模式" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Root" + "value" : "SSL 模式" } } } }, - "Root Level" : { + "SSL/TLS" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "최상위" + "value" : "SSL/TLS" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kök Seviye" + "value" : "SSL/TLS" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cấp gốc" + "value" : "SSL/TLS" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "根级别" + "value" : "SSL/TLS" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "根層級" + "value" : "SSL/TLS" } } } }, - "Round trip in milliseconds" : { - - }, - "Routes this connection through a SOCKS5 proxy. The database hostname is resolved by the proxy, so names that only resolve behind it still work." : { + "STATISTICS" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SOCKS5 프록시를 통해 이 연결을 라우팅합니다. 데이터베이스 호스트 이름은 프록시가 확인하므로 프록시 측 네트워크에서만 확인되는 이름도 사용할 수 있습니다." + "value" : "통계" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu bağlantıyı bir SOCKS5 proxy üzerinden yönlendirir. Veritabanı sunucu adı proxy tarafından çözümlenir, böylece yalnızca proxy arkasında çözümlenen adlar da çalışır." + "value" : "STATISTICS" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Định tuyến kết nối này qua một SOCKS5 proxy. Tên máy chủ cơ sở dữ liệu do proxy phân giải, nên những tên chỉ phân giải được phía sau proxy vẫn dùng được." + "value" : "THỐNG KÊ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "通过 SOCKS5 代理转发此连接。数据库主机名由代理解析,因此只能在代理后解析的名称同样可用。" + "value" : "统计信息" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "透過 SOCKS5 代理轉送此連線。資料庫主機名稱由代理解析,因此只能在代理後方解析的名稱同樣可用。" + "value" : "統計資訊" } } } }, - "Routine name" : { - - }, - "Routines, sorted by qualified name" : { - - }, - "Row" : { + "Safe Mode" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "행" + "value" : "안전 모드" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satır" + "value" : "Güvenli Mod" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hàng" + "value" : "Chế độ an toàn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "行" + "value" : "安全模式" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "列" + "value" : "安全模式" } } } }, - "Row %d" : { + "Safe Mode (Full)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%d행" + "value" : "안전 모드(전체)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satır %d" + "value" : "Güvenli Mod (Tam)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dòng %d" + "value" : "Chế độ an toàn (Đầy đủ)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "第%d行" + "value" : "安全模式(完整)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "第 %d 列" + "value" : "安全模式(完整)" } } } }, - "Row %d, column %d: %@" : { + "Safe Mode Is Read-Only" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Row %1$d, column %2$d: %3$@" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$d행, %2$d열: %3$@" + "value" : "안전 모드는 읽기 전용입니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satır %d, sütun %d: %@" + "value" : "Safe Mode Salt Okunur" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dòng %d, cột %d: %@" + "value" : "Chế độ an toàn đang ở mức chỉ đọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "第%d行,第%d列:%@" + "value" : "安全模式为只读" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "第 %1$d 列,第 %2$d 欄:%3$@" + "value" : "安全模式為唯讀" } } } }, - "Row %lld" : { + "Safe Mode, Safe Mode (Full), and Read-Only require a Pro license." : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%lld행" + "value" : "안전 모드, 안전 모드(전체) 및 읽기 전용 기능에는 Pro 라이선스가 필요합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "satır %lld" + "value" : "Güvenli Mod, Güvenli Mod (Tam) ve Salt Okunur için Pro lisans gereklidir." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hàng %lld" + "value" : "Chế độ an toàn, Chế độ an toàn (toàn phần) và Chỉ đọc yêu cầu giấy phép Pro." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "行 %lld" + "value" : "安全模式、安全模式(完整)和只读模式需要 Pro 许可证。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "第 %lld 列" + "value" : "安全模式、安全模式(完整)和唯讀模式需要 Pro 授權。" } } } }, - "Row %lld, column %lld: %@" : { - "extractionState" : "stale", + "Safe Mode: %@" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Row %1$lld, column %2$lld: %3$@" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$lld행, %2$lld열: %3$@" + "value" : "안전 모드: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "satır %lld, column %lld: %@" + "value" : "Güvenli Mod: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hàng %lld, cột %lld: %@" + "value" : "Chế độ an toàn: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "行 %lld,列 %lld:%@" + "value" : "安全模式:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "第 %1$lld 列,第 %2$lld 欄:%3$@" + "value" : "安全模式:%@" } } } }, - "Row cap:" : { + "Same" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "동일", + "state" : "translated" + } + } + } + }, + "Same options will be applied to all selected tables." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "행 상한:" + "value" : "선택한 모든 테이블에 동일한 옵션이 적용됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satır sınırı:" + "value" : "Aynı seçenekler seçili tüm tablolara uygulanır." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giới hạn hàng:" + "value" : "Cùng tùy chọn sẽ được áp dụng cho tất cả bảng đã chọn." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "行数上限:" + "value" : "相同选项将应用于所有选中的表。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "列數上限:" + "value" : "相同的選項將套用至所有選取的資料表。" } } } }, - "Row count the engine reports" : { - - }, - "Row counts come from engine statistics, not COUNT(*)" : { - - }, - "Row data size" : { - - }, - "Row Details" : { + "Sanitize formula-like values" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "행 세부사항" + "value" : "수식 형태의 값 무해화" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Row Details" + "value" : "Sanitize formula-like values" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chi tiết dòng" + "value" : "Làm sạch giá trị giống công thức" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "行详情" + "value" : "清理类公式值" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "列詳細資訊" + "value" : "清理類公式值" } } } }, - "Row edits" : { - - }, - "Row Edits" : { + "Save" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "행 편집" + "value" : "저장" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satır Düzenlemeleri" + "value" : "Kaydet" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sửa hàng" + "value" : "Lưu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "行编辑" + "value" : "保存" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "列編輯" + "value" : "儲存" } } } }, - "Row height:" : { + "Save & Connect" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "행 높이:" + "value" : "저장 및 연결" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satır yüksekliği:" + "value" : "Kaydet & Bağlan" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chiều cao dòng:" + "value" : "Lưu & kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "行高:" + "value" : "保存并连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "列高:" + "value" : "儲存並連線" } } } }, - "Row Heights" : { - "extractionState" : "stale", + "Save Anyway" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "행 높이" + "value" : "그래도 저장" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Row Heights" + "value" : "Yine de Kaydet" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chiều cao dòng" + "value" : "Vẫn lưu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "行高" + "value" : "仍然保存" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "列高" + "value" : "仍要儲存" } } } }, - "Row limit:" : { - "extractionState" : "stale", + "Save As" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "행 제한:" + "value" : "다른 이름으로 저장" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satır limiti:" + "value" : "Farklı Kaydet" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giới hạn dòng:" + "value" : "Lưu thành" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "行数限制:" + "value" : "另存为" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "列數限制:" + "value" : "另存新檔" } } } }, - "Row number" : { + "Save As…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "행 번호" + "value" : "다른 이름으로 저장…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satır numarası" + "value" : "Farklı Kaydet…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Số hàng" + "value" : "Lưu thành…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "行号" + "value" : "另存为…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "列號" + "value" : "另存新檔…" } } } }, - "Row Number" : { + "Save Changes" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "행 번호" + "value" : "변경 사항 저장" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satır Numarası" + "value" : "Değişiklikleri Kaydet" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Số thứ tự dòng" + "value" : "Lưu thay đổi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "行号" + "value" : "保存更改" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "列號" + "value" : "儲存變更" } } } }, - "ROW or STATEMENT" : { - - }, - "Row size:" : { - "comment" : "A label for the size of the sidebar rows.", - "isCommentAutoGenerated" : true, + "Save Changes (⌘S)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "행 크기:" + "value" : "변경 사항 저장(⌘S)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satır boyutu:" + "value" : "Save Changes (⌘S)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cỡ hàng:" + "value" : "Lưu thay đổi (⌘S)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "行大小:" + "value" : "保存更改 (⌘S)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "列大小:" + "value" : "儲存變更 (⌘S)" } } } }, - "Rows" : { + "Save Current as Profile…" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Save Current as Profile…" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "행" + "value" : "현재 설정을 프로필로 저장…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satırlar" + "value" : "Geçerli Ayarları Profil Olarak Kaydet…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dòng" + "value" : "Lưu hiện tại thành hồ sơ…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "行" + "value" : "将当前设置保存为配置…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "列" + "value" : "將目前設定儲存為設定檔…" } } } }, - "Rows %lld-%lld" : { + "Save Dump" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%lld-%lld행" + "value" : "덤프 저장" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%lld-%lld. satırlar" + "value" : "Dökümü Kaydet" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hàng %lld-%lld" + "value" : "Lưu dump" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "第 %lld-%lld 行" + "value" : "保存转储" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "第 %lld-%lld 列" + "value" : "儲存備份檔" } } } }, - "Rows Compare Data" : { - - }, - "Rows in this export" : { - - }, - "Rows per INSERT" : { - "extractionState" : "stale", + "Save Failed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "INSERT당 행 수" + "value" : "저장 실패" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Rows per INSERT" + "value" : "Kaydetme Başarısız" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dòng mỗi INSERT" + "value" : "Lưu thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "每条 INSERT 的行数" + "value" : "保存失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "每筆 INSERT 的列數" + "value" : "儲存失敗" } } } }, - "Rows per insertMany" : { - "extractionState" : "stale", + "Save Filter Preset" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "insertMany당 행 수" + "value" : "필터 프리셋 저장" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Rows per insertMany" + "value" : "Filtre Ön Ayarını Kaydet" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Số dòng mỗi insertMany" + "value" : "Lưu mẫu bộ lọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "每条 insertMany 的行数" + "value" : "保存筛选预设" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "每筆 insertMany 的列數" + "value" : "儲存篩選預設集" } } } }, - "Rows per page" : { + "Save SQL file" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "페이지당 행 수" + "value" : "SQL 파일 저장" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sayfa başına satır" + "value" : "SQL dosyasını kaydet" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Số hàng mỗi trang" + "value" : "Lưu tệp SQL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "每页行数" + "value" : "保存 SQL 文件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "每頁列數" + "value" : "儲存 SQL 檔案" } } } }, - "Rows per page. Defaults to the server's configured row limit." : { - - }, - "Rows sent" : { - - }, - "Rows set to “same element” must all match one %@ element" : { - - }, - "Rows the engine reported inserting" : { - - }, - "Rows the statement changed" : { - - }, - "Rows the statement returned" : { - - }, - "Rows to insert, each an array aligned with 'columns'" : { - - }, - "Rows to skip (default 0)" : { - - }, - "Rows, each an array aligned with columns" : { - - }, - "Rules" : { + "Save Sidebar Changes" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "규칙" + "value" : "사이드바 변경 사항 저장" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kurallar" + "value" : "Kenar Çubuğu Değişikliklerini Kaydet" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Quy tắc" + "value" : "Lưu thay đổi thanh bên" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "规则" + "value" : "保存侧边栏更改" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "規則" + "value" : "儲存側邊欄變更" } } } }, - "Run" : { + "Save Table Template" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "실행" + "value" : "테이블 템플릿 저장" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Çalıştır" + "value" : "Save Table Template" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chạy" + "value" : "Lưu mẫu bảng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "运行" + "value" : "保存表模板" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "執行" + "value" : "儲存資料表範本" } } } }, - "Run a maintenance operation the engine supports, on one table or on the whole database. TablePro generates the statements; the user approves them. Needs tools:write." : { - - }, - "Run a query to see execution time" : { + "Save and load filter presets" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리를 실행하여 실행 시간 확인" + "value" : "필터 프리셋 저장 및 불러오기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Çalışma süresini görmek için bir sorgu çalıştırın" + "value" : "Save and load filter presets" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chạy truy vấn để xem thời gian thực thi" + "value" : "Lưu và tải mẫu bộ lọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "运行查询以查看执行时间" + "value" : "保存和加载筛选预设" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "執行查詢以查看執行時間" + "value" : "儲存並載入篩選預設集" } } } }, - "Run against this database (uses current if omitted)" : { - "extractionState" : "stale", + "Save as Favorite" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 데이터베이스에서 실행(생략 시 현재 데이터베이스 사용)" + "value" : "즐겨찾기로 저장" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu veritabanında çalıştır (belirtilmezse geçerli olan kullanılır)" + "value" : "Favori Olarak Kaydet" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chạy trên cơ sở dữ liệu này (bỏ trống thì dùng cái hiện tại)" + "value" : "Lưu vào yêu thích" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在此数据库上运行(省略则使用当前数据库)" + "value" : "保存为收藏" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在此資料庫上執行(省略則使用目前的資料庫)" + "value" : "儲存為我的最愛" } } } }, - "Run against this schema (uses current if omitted)" : { - "extractionState" : "stale", + "Save as Favorite…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 스키마에서 실행(생략 시 현재 스키마 사용)" + "value" : "즐겨찾기로 저장…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu şemada çalıştır (belirtilmezse geçerli olan kullanılır)" + "value" : "Sık Kullanılan Olarak Kaydet…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chạy trên schema này (bỏ trống thì dùng cái hiện tại)" + "value" : "Lưu vào mục yêu thích…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在此 Schema 上运行(省略则使用当前 Schema)" + "value" : "存储为收藏…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在此綱要上執行(省略則使用目前的綱要)" + "value" : "儲存為我的最愛…" } } } }, - "Run button beside each statement" : { + "Save as Preset…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "각 문 옆에 실행 버튼" + "value" : "프리셋으로 저장…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Her ifadenin yanında çalıştır düğmesi" + "value" : "Ön Ayar Olarak Kaydet…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nút chạy bên cạnh mỗi câu lệnh" + "value" : "Lưu dưới dạng mẫu…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "每条语句旁显示运行按钮" + "value" : "另存为预设…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "每個陳述式旁顯示執行按鈕" + "value" : "另存為預設集…" } } } }, - "Run in a transaction" : { - - }, - "Run in New Tab" : { + "Save as Template" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "새 탭에서 실행" + "value" : "템플릿으로 저장" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeni Sekmede Çalıştır" + "value" : "Save as Template" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chạy trong tab mới" + "value" : "Lưu dưới dạng mẫu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在新标签页中运行" + "value" : "另存为模板" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在新分頁中執行" + "value" : "另存為範本" } } } }, - "Run Maintenance" : { - - }, - "Run one destructive statement (DROP, TRUNCATE, ALTER ... DROP). The user approves it before it runs: through your elicitation prompt when your client supports elicitation, otherwise through TablePro's own confirmation dialog on the user's Mac. Needs tools:write and a connection the user left writable for external clients." : { - - }, - "Run one statement. Reads need tools:read; anything that writes needs tools:write and is subject to the connection's Safe Mode, which asks the user to approve it. DROP and TRUNCATE go through confirm_destructive_operation instead. Statements that read or write files, or run server-side code, are refused. Send one statement per call." : { - - }, - "Run Script" : { + "Save failed: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "스크립트 실행" + "value" : "저장 실패: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Betiği Çalıştır" + "value" : "Kaydetme başarısız: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chạy script" + "value" : "Lưu thất bại: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "运行脚本" + "value" : "保存失败:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "執行指令碼" + "value" : "儲存失敗:%@" } } } }, - "Run some queries and this tab will show which you run most, which run slowest, and which got slower." : { + "Save frequently used queries\nfor quick access." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "몇 개의 쿼리를 실행하면 이 탭에서 가장 자주 실행한 쿼리, 가장 느린 쿼리, 성능이 저하된 쿼리를 확인할 수 있습니다." + "value" : "자주 사용하는 쿼리를 저장하여\n빠르게 이용하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Birkaç sorgu çalıştırın; bu sekme en çok çalıştırdıklarınızı, en yavaş olanları ve yavaşlayanları gösterecek." + "value" : "Save frequently used queries\nfor quick access." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chạy vài truy vấn và tab này sẽ cho thấy truy vấn nào bạn chạy nhiều nhất, chạy chậm nhất và chậm đi." + "value" : "Lưu các truy vấn thường dùng\nđể truy cập nhanh." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "运行一些查询,这个标签页就会显示哪些查询你运行得最多、哪些最慢、哪些变慢了。" + "value" : "保存常用查询\n以便快速访问。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "執行一些查詢,這個分頁就會顯示哪些查詢你執行得最多、哪些最慢、哪些變慢了。" + "value" : "儲存常用查詢\n以便快速存取。" } } } }, - "Run statement" : { + "Save frequently used queries for quick access." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "문 실행" + "value" : "자주 사용하는 쿼리를 저장하여 빠르게 이용하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İfadeyi çalıştır" + "value" : "Sık kullanılan sorguları hızlı erişim için kaydedin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chạy câu lệnh" + "value" : "Lưu các truy vấn thường dùng để truy cập nhanh." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "运行语句" + "value" : "保存常用查询以便快速访问。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "執行陳述式" + "value" : "儲存常用查詢以便快速存取。" } } } }, - "Run Statement and Advance" : { + "Save frequently used queries, or link a folder of .sql files to share with your team." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "문 실행 후 다음으로" + "value" : "자주 사용하는 쿼리를 저장하거나 .sql 파일 폴더를 연결하여 팀과 공유하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İfadeyi Çalıştır ve İlerle" + "value" : "Sık kullanılan sorguları kaydedin veya ekibinizle paylaşmak için bir .sql dosyaları klasörü bağlayın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chạy câu lệnh rồi chuyển tiếp" + "value" : "Lưu các truy vấn thường dùng, hoặc liên kết một thư mục chứa file .sql để chia sẻ với nhóm của bạn." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "运行语句并前进" + "value" : "保存常用查询,或链接包含 .sql 文件的文件夹以与团队共享。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "執行陳述式並前進" + "value" : "儲存常用查詢,或連結包含 .sql 檔案的資料夾以與你的團隊共用。" } } } }, - "Run the command below in your terminal" : { + "Save passphrase in Keychain" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "터미널에서 아래 명령을 실행하십시오" + "value" : "키체인에 암호 저장" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Aşağıdaki komutu terminalinizde çalıştırın" + "value" : "Parolayı Keychain'e kaydet" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chạy lệnh dưới đây trong terminal" + "value" : "Lưu cụm mật khẩu vào Keychain" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在终端中运行以下命令" + "value" : "将密码保存到钥匙串" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在終端機中執行以下指令" + "value" : "將通關密語儲存至鑰匙圈" } } } }, - "Run the script against the target" : { - - }, - "Run the statement and report actual timings (default false)" : { - - }, - "Run the statement starting on line %d" : { + "Saved %@ of “%@” to %@" : { + "comment" : "A detail line that shows the size of the backed-up database and the path of the backup destination.", + "isCommentAutoGenerated" : true, "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Saved %1$@ of “%2$@” to %3$@" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%d번째 줄에서 시작하는 문 실행" + "value" : "“%2$@”의 %1$@을(를) %3$@에 저장했습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%d. satırda başlayan ifadeyi çalıştır" + "value" : "“%2$@” (%1$@) şuraya kaydedildi: %3$@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chạy câu lệnh bắt đầu ở dòng %d" + "value" : "Đã lưu %1$@ của “%2$@” vào %3$@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "运行从第 %d 行开始的语句" + "value" : "已将“%2$@”的 %1$@ 保存到 %3$@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "執行從第 %d 行開始的陳述式" + "value" : "已將「%1$@」的 %2$@ 儲存至 %3$@" } } } }, - "Running on port %d" : { + "Saved Comparisons" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "저장된 비교", + "state" : "translated" + } + } + } + }, + "Saved Connections" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "포트 %d에서 실행 중" + "value" : "저장된 연결" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%d portunda çalışıyor" + "value" : "Kayıtlı Bağlantılar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang chạy trên cổng %d" + "value" : "Kết nối đã lưu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "运行在端口 %d" + "value" : "已保存的连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "執行於連接埠 %d" + "value" : "已儲存的連線" } } } }, - "Running the pre-connect script" : { + "Saved Customizations" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 전 스크립트 실행 중" + "value" : "저장된 사용자화" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı öncesi betik çalıştırılıyor" + "value" : "Kaydedilmiş Özelleştirmeler" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang chạy script trước khi kết nối" + "value" : "Tùy chỉnh đã lưu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在运行连接前脚本" + "value" : "已保存的自定义" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在執行連線前指令碼" + "value" : "已儲存的自訂設定" } } } }, - "Running Threads" : { + "Saved Queries" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "실행 중인 스레드" + "value" : "저장된 쿼리" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Çalışan İş Parçacıkları" + "value" : "Kayıtlı Sorgular" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Luồng đang chạy" + "value" : "Truy vấn đã lưu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "运行中的线程" + "value" : "已保存的查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "執行中的執行緒" + "value" : "已儲存的查詢" } } } }, - "Runs the claude command line tool so chat bills against your Claude subscription. Database tools need the MCP server turned on in Settings > Integrations." : { + "Saved Queries:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "claude 명령줄 도구를 실행하므로 채팅 사용량은 Claude 구독에 청구됩니다. 데이터베이스 도구를 사용하려면 설정 > 통합에서 MCP 서버를 켜야 합니다." + "value" : "저장된 쿼리:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "claude komut satırı aracını çalıştırır, böylece sohbet Claude aboneliğinizden düşer. Veritabanı araçları için Ayarlar > Entegrasyonlar altında MCP sunucusunun açık olması gerekir." + "value" : "Kayıtlı Sorgular:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chạy công cụ dòng lệnh claude nên phần chat sẽ tính vào gói đăng ký Claude của bạn. Các công cụ cơ sở dữ liệu cần bật máy chủ MCP trong Cài đặt > Tích hợp." + "value" : "Truy vấn đã lưu:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "运行 claude 命令行工具,因此聊天会计入你的 Claude 订阅。数据库工具需要在“设置 > 集成”中开启 MCP 服务器。" + "value" : "已保存的查询:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "執行 claude 命令列工具,因此聊天會計入你的 Claude 訂閱。資料庫工具需要在「設定 > 整合」中開啟 MCP 伺服器。" + "value" : "已儲存的查詢:" } } } }, - "Safe Mode" : { + "Saved Query" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "안전 모드" + "value" : "저장된 쿼리" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Güvenli Mod" + "value" : "Kaydedilmiş Sorgu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chế độ an toàn" + "value" : "Truy vấn đã lưu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "安全模式" + "value" : "已保存的查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "安全模式" + "value" : "已儲存的查詢" } } } }, - "Safe Mode (Full)" : { + "Saved passwords are decrypted during import" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "안전 모드(전체)" + "value" : "저장된 암호는 가져오는 동안 복호화됩니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Güvenli Mod (Tam)" + "value" : "Kaydedilmiş parolaların şifresi içe aktarma sırasında çözülür" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chế độ an toàn (Đầy đủ)" + "value" : "Mật khẩu đã lưu sẽ được giải mã trong quá trình nhập" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "安全模式(完整)" + "value" : "导入时会解密已保存的密码" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "安全模式(完整)" + "value" : "匯入時會解密已儲存的密碼" } } } }, - "Safe Mode Is Read-Only" : { + "Save…" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "저장…", + "state" : "translated" + } + } + } + }, + "Scale" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "안전 모드는 읽기 전용입니다" + "value" : "배율" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Safe Mode Salt Okunur" + "value" : "Scale" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chế độ an toàn đang ở mức chỉ đọc" + "value" : "Tỉ lệ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "安全模式为只读" + "value" : "小数位数" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "安全模式為唯讀" + "value" : "小數位數" } } } }, - "Safe mode level" : { - - }, - "Safe Mode, Safe Mode (Full), and Read-Only require a Pro license." : { + "Scale:" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "안전 모드, 안전 모드(전체) 및 읽기 전용 기능에는 Pro 라이선스가 필요합니다." + "value" : "배율:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Güvenli Mod, Güvenli Mod (Tam) ve Salt Okunur için Pro lisans gereklidir." + "value" : "Scale:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chế độ an toàn, Chế độ an toàn (toàn phần) và Chỉ đọc yêu cầu giấy phép Pro." + "value" : "Tỉ lệ:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "安全模式、安全模式(完整)和只读模式需要 Pro 许可证。" + "value" : "小数位数:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "安全模式、安全模式(完整)和唯讀模式需要 Pro 授權。" + "value" : "小數位數:" } } } }, - "Safe Mode: %@" : { + "Scatter" : { "localizations" : { "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "안전 모드: %@" + "value" : "분산형", + "state" : "translated" } }, "tr" : { "stringUnit" : { - "state" : "translated", - "value" : "Güvenli Mod: %@" + "value" : "Dağılım", + "state" : "translated" } }, "vi" : { "stringUnit" : { - "state" : "translated", - "value" : "Chế độ an toàn: %@" + "value" : "Phân tán", + "state" : "translated" } }, "zh-Hans" : { "stringUnit" : { - "state" : "translated", - "value" : "安全模式:%@" + "value" : "散点", + "state" : "translated" } }, "zh-Hant" : { "stringUnit" : { - "state" : "translated", - "value" : "安全模式:%@" + "value" : "散佈", + "state" : "translated" } } } }, - "Same" : { - - }, - "same element" : { - - }, - "Same options will be applied to all selected tables." : { + "Schema" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "선택한 모든 테이블에 동일한 옵션이 적용됩니다." + "value" : "스키마" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Aynı seçenekler seçili tüm tablolara uygulanır." + "value" : "Şema" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cùng tùy chọn sẽ được áp dụng cho tất cả bảng đã chọn." + "value" : "Schema" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "相同选项将应用于所有选中的表。" + "value" : "Schema" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "相同的選項將套用至所有選取的資料表。" + "value" : "綱要" } } } }, - "Sanitize formula-like values" : { - "extractionState" : "stale", + "Schema SQL" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "수식 형태의 값 무해화" + "value" : "스키마 SQL" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sanitize formula-like values" + "value" : "Şema SQL'i" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Làm sạch giá trị giống công thức" + "value" : "SQL của schema" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "清理类公式值" + "value" : "Schema SQL" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "清理類公式值" + "value" : "綱要 SQL" } } } }, - "Save" : { + "Schema Switch Failed" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "저장" + "value" : "스키마 전환 실패" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kaydet" + "value" : "Schema Switch Failed" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lưu" + "value" : "Chuyển schema thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "保存" + "value" : "切换 Schema 失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "儲存" + "value" : "切換綱要失敗" } } } }, - "Save & Connect" : { + "Schema Switching Not Supported" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "저장 및 연결" + "value" : "스키마 전환이 지원되지 않음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kaydet & Bağlan" + "value" : "Şema Değiştirme Desteklenmiyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lưu & kết nối" + "value" : "Không hỗ trợ chuyển schema" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "保存并连接" + "value" : "不支持切换 Schema" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "儲存並連線" + "value" : "不支援切換綱要" } } } }, - "Save and load filter presets" : { - "extractionState" : "stale", + "Schema and table privileges in this database are only visible when the connection is using it." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터 프리셋 저장 및 불러오기" + "value" : "이 데이터베이스의 스키마 및 테이블 권한은 연결에서 해당 데이터베이스를 사용 중일 때만 볼 수 있습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Save and load filter presets" + "value" : "Bu veritabanındaki şema ve tablo yetkileri yalnızca bağlantı bu veritabanını kullanırken görünür." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lưu và tải mẫu bộ lọc" + "value" : "Quyền trên schema và bảng của cơ sở dữ liệu này chỉ hiển thị khi kết nối đang dùng nó." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "保存和加载筛选预设" + "value" : "只有当连接正在使用此数据库时,才能看到其中的 Schema 和表权限。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "儲存並載入篩選預設集" + "value" : "只有當連線正在使用此資料庫時,才看得到其中的綱要與資料表權限。" } } } }, - "Save Anyway" : { + "Schema change was not authorized" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "그래도 저장" + "value" : "스키마 변경 권한이 없습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yine de Kaydet" + "value" : "Şema değişikliğine izin verilmedi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Vẫn lưu" + "value" : "Thay đổi schema không được cho phép" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "仍然保存" + "value" : "Schema 更改未获授权" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "仍要儲存" + "value" : "綱要變更未獲授權" } } } }, - "Save As" : { + "Schema for %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다른 이름으로 저장" + "value" : "%@의 스키마" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Farklı Kaydet" + "value" : "%@ şeması" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lưu thành" + "value" : "Schema của %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "另存为" + "value" : "%@ 的 Schema" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "另存新檔" + "value" : "%@ 的綱要" } } } }, - "Save as Favorite" : { + "Schema name (for multi-schema databases)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "즐겨찾기로 저장" + "value" : "스키마 이름(다중 스키마 데이터베이스용)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Favori Olarak Kaydet" + "value" : "Şema adı (çok şemalı veritabanları için)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lưu vào yêu thích" + "value" : "Tên schema (cho cơ sở dữ liệu nhiều schema)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "保存为收藏" + "value" : "Schema 名称(用于多 Schema 数据库)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "儲存為我的最愛" + "value" : "綱要名稱(用於多綱要資料庫)" } } } }, - "Save as Favorite…" : { + "Schema name (uses current if omitted)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "즐겨찾기로 저장…" + "value" : "스키마 이름(생략 시 현재 스키마 사용)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sık Kullanılan Olarak Kaydet…" + "value" : "Şema adı (boş bırakılırsa geçerli şema kullanılır)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lưu vào mục yêu thích…" + "value" : "Tên schema (dùng schema hiện tại nếu bỏ trống)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "存储为收藏…" + "value" : "Schema 名称(省略时使用当前 Schema)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "儲存為我的最愛…" + "value" : "綱要名稱(省略時使用目前的綱要)" } } } }, - "Save as Preset…" : { + "Schema name to switch to" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "프리셋으로 저장…" + "value" : "전환할 스키마 이름" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ön Ayar Olarak Kaydet…" + "value" : "Geçilecek şema adı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lưu dưới dạng mẫu…" + "value" : "Tên schema cần chuyển sang" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "另存为预设…" + "value" : "要切换到的 Schema 名称" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "另存為預設集…" + "value" : "要切換到的綱要名稱" } } } }, - "Save as Template" : { + "Schema: %@" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "템플릿으로 저장" + "value" : "스키마: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Save as Template" + "value" : "Şema: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lưu dưới dạng mẫu" + "value" : "Schema: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "另存为模板" + "value" : "Schema:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "另存為範本" + "value" : "綱要:%@" } } } }, - "Save As…" : { + "Schemas" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다른 이름으로 저장…" + "value" : "스키마" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Farklı Kaydet…" + "value" : "Şemalar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lưu thành…" + "value" : "Schema" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "另存为…" + "value" : "Schema" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "另存新檔…" + "value" : "綱要" } } } }, - "Save Changes" : { + "Scope" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "변경 사항 저장" + "value" : "범위" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Değişiklikleri Kaydet" + "value" : "Kapsam" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lưu thay đổi" + "value" : "Phạm vi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "保存更改" + "value" : "范围" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "儲存變更" + "value" : "範圍" } } } }, - "Save Changes (⌘S)" : { - "extractionState" : "stale", + "Script" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "스크립트", + "state" : "translated" + } + } + } + }, + "Script generation cancelled." : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "스크립트 생성이 취소되었습니다.", + "state" : "translated" + } + } + } + }, + "Scroll to latest message" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "변경 사항 저장(⌘S)" + "value" : "최신 메시지로 스크롤" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Save Changes (⌘S)" + "value" : "En son mesaja kaydır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lưu thay đổi (⌘S)" + "value" : "Cuộn đến tin nhắn mới nhất" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "保存更改 (⌘S)" + "value" : "滚动到最新消息" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "儲存變更 (⌘S)" + "value" : "捲動到最新訊息" } } } }, - "Save Current as Profile…" : { + "Scrollback lines:" : { + "extractionState" : "stale", "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Save Current as Profile…" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "현재 설정을 프로필로 저장…" + "value" : "스크롤백 줄 수:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geçerli Ayarları Profil Olarak Kaydet…" + "value" : "Geri kaydırma satırları:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lưu hiện tại thành hồ sơ…" + "value" : "Số dòng cuộn lại:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将当前设置保存为配置…" + "value" : "回滚行数:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將目前設定儲存為設定檔…" + "value" : "向後捲動行數:" } } } }, - "Save Dump" : { + "Search" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "덤프 저장" + "value" : "검색" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dökümü Kaydet" + "value" : "Ara" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lưu dump" + "value" : "Tìm kiếm" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "保存转储" + "value" : "搜索" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "儲存備份檔" + "value" : "搜尋" } } } }, - "Save Failed" : { + "Search %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "저장 실패" + "value" : "%@ 검색" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kaydetme Başarısız" + "value" : "%@ ara" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lưu thất bại" + "value" : "Tìm %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "保存失败" + "value" : "搜索 %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "儲存失敗" + "value" : "搜尋 %@" } } } }, - "Save failed: %@" : { + "Search All Rows" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "저장 실패: %@" + "value" : "모든 행 검색" + } + } + } + }, + "Search Query History" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "쿼리 기록 검색" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kaydetme başarısız: %@" + "value" : "Sorgu Geçmişinde Ara" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lưu thất bại: %@" + "value" : "Tìm trong lịch sử truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "保存失败:%@" + "value" : "搜索查询历史记录" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "儲存失敗:%@" + "value" : "搜尋查詢歷程記錄" } } } }, - "Save Filter Preset" : { + "Search activity" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터 프리셋 저장" + "value" : "활동 검색" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtre Ön Ayarını Kaydet" + "value" : "Etkinlik ara" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lưu mẫu bộ lọc" + "value" : "Tìm hoạt động" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "保存筛选预设" + "value" : "搜索活动" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "儲存篩選預設集" + "value" : "搜尋活動" } } } }, - "Save frequently used queries\nfor quick access." : { - "extractionState" : "stale", + "Search and analytics engine" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "자주 사용하는 쿼리를 저장하여\n빠르게 이용하십시오." + "value" : "검색 및 분석 엔진" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Save frequently used queries\nfor quick access." + "value" : "Arama ve analiz motoru" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lưu các truy vấn thường dùng\nđể truy cập nhanh." + "value" : "Công cụ tìm kiếm và phân tích" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "保存常用查询\n以便快速访问。" + "value" : "搜索与分析引擎" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "儲存常用查詢\n以便快速存取。" + "value" : "搜尋與分析引擎" } } } }, - "Save frequently used queries for quick access." : { - "extractionState" : "stale", + "Search columns…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "자주 사용하는 쿼리를 저장하여 빠르게 이용하십시오." + "value" : "열 검색…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sık kullanılan sorguları hızlı erişim için kaydedin." + "value" : "Sütunlarda ara…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lưu các truy vấn thường dùng để truy cập nhanh." + "value" : "Tìm cột…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "保存常用查询以便快速访问。" + "value" : "搜索列…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "儲存常用查詢以便快速存取。" + "value" : "搜尋欄位…" } } } }, - "Save frequently used queries, or link a folder of .sql files to share with your team." : { + "Search connections" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "자주 사용하는 쿼리를 저장하거나 .sql 파일 폴더를 연결하여 팀과 공유하십시오." + "value" : "연결 검색" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sık kullanılan sorguları kaydedin veya ekibinizle paylaşmak için bir .sql dosyaları klasörü bağlayın." + "value" : "Bağlantı ara" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lưu các truy vấn thường dùng, hoặc liên kết một thư mục chứa file .sql để chia sẻ với nhóm của bạn." + "value" : "Tìm kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "保存常用查询,或链接包含 .sql 文件的文件夹以与团队共享。" + "value" : "搜索连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "儲存常用查詢,或連結包含 .sql 檔案的資料夾以與你的團隊共用。" + "value" : "搜尋連線" } } } }, - "Save passphrase in Keychain" : { + "Search databases" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "키체인에 암호 저장" + "value" : "데이터베이스 검색" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Parolayı Keychain'e kaydet" + "value" : "Veritabanlarında ara" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lưu cụm mật khẩu vào Keychain" + "value" : "Tìm kiếm cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将密码保存到钥匙串" + "value" : "搜索数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將通關密語儲存至鑰匙圈" + "value" : "搜尋資料庫" } } } }, - "Save Sidebar Changes" : { + "Search databases..." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사이드바 변경 사항 저장" + "value" : "데이터베이스 검색..." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kenar Çubuğu Değişikliklerini Kaydet" + "value" : "Search databases..." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lưu thay đổi thanh bên" + "value" : "Tìm cơ sở dữ liệu..." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "保存侧边栏更改" + "value" : "搜索数据库..." } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "儲存側邊欄變更" + "value" : "搜尋資料庫…" } } } }, - "Save SQL file" : { + "Search fields…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SQL 파일 저장" + "value" : "필드 검색…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SQL dosyasını kaydet" + "value" : "Alanlarda ara…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lưu tệp SQL" + "value" : "Tìm trường…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "保存 SQL 文件" + "value" : "搜索字段…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "儲存 SQL 檔案" + "value" : "搜尋欄位…" } } } }, - "Save Table Template" : { - "extractionState" : "stale", + "Search for connection…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 템플릿 저장" + "value" : "연결 검색…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Save Table Template" + "value" : "Bağlantı ara…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lưu mẫu bảng" + "value" : "Tìm kết nối…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "保存表模板" + "value" : "搜索连接…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "儲存資料表範本" + "value" : "搜尋連線…" } } } }, - "Save…" : { - - }, - "Saved %@ of “%@” to %@" : { - "comment" : "A detail line that shows the size of the backed-up database and the path of the backup destination.", - "isCommentAutoGenerated" : true, + "Search for field..." : { + "extractionState" : "stale", "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Saved %1$@ of “%2$@” to %3$@" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "“%2$@”의 %1$@을(를) %3$@에 저장했습니다" + "value" : "필드 검색..." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "“%2$@” (%1$@) şuraya kaydedildi: %3$@" + "value" : "Search for field..." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã lưu %1$@ của “%2$@” vào %3$@" + "value" : "Tìm trường..." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已将“%2$@”的 %1$@ 保存到 %3$@" + "value" : "搜索字段..." } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已將「%1$@」的 %2$@ 儲存至 %3$@" + "value" : "搜尋欄位…" } } } }, - "Saved Comparisons" : { - - }, - "Saved Connections" : { + "Search or type…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "저장된 연결" + "value" : "검색 또는 입력…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kayıtlı Bağlantılar" + "value" : "Arayın veya yazın…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối đã lưu" + "value" : "Tìm kiếm hoặc nhập…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已保存的连接" + "value" : "搜索或输入…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已儲存的連線" + "value" : "搜尋或輸入…" } } } }, - "SAVED CONNECTIONS" : { + "Search plugins..." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "저장된 연결" + "value" : "플러그인 검색..." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "KAYITLI BAĞLANTILAR" + "value" : "Search plugins..." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "KẾT NỐI ĐÃ LƯU" + "value" : "Tìm kiếm plugin..." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已保存的连接" + "value" : "搜索插件..." } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已儲存的連線" + "value" : "搜尋外掛…" } } } }, - "Saved Customizations" : { + "Search queries..." : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "저장된 사용자화" + "value" : "쿼리 검색..." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kaydedilmiş Özelleştirmeler" + "value" : "Search queries..." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tùy chỉnh đã lưu" + "value" : "Tìm truy vấn..." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已保存的自定义" + "value" : "搜索查询..." } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已儲存的自訂設定" + "value" : "搜尋查詢…" } } } }, - "Saved passwords are decrypted during import" : { + "Search saved query history. Returns matching entries with execution time, row count, and outcome." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "저장된 암호는 가져오는 동안 복호화됩니다" + "value" : "저장된 쿼리 기록을 검색합니다. 실행 시간, 행 수 및 결과가 포함된 일치 항목을 반환합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kaydedilmiş parolaların şifresi içe aktarma sırasında çözülür" + "value" : "Kaydedilmiş sorgu geçmişinde arama yapar. Eşleşen kayıtları yürütme süresi, satır sayısı ve sonuçla birlikte döndürür." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mật khẩu đã lưu sẽ được giải mã trong quá trình nhập" + "value" : "Tìm trong lịch sử truy vấn đã lưu. Trả về các mục khớp kèm thời gian thực thi, số hàng và kết quả." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导入时会解密已保存的密码" + "value" : "搜索已保存的查询历史记录。返回匹配条目及其执行时间、行数和结果。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯入時會解密已儲存的密碼" + "value" : "搜尋已儲存的查詢歷程記錄。傳回相符的項目,包含執行時間、列數和結果。" } } } }, - "Saved Queries" : { + "Search schemas..." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "저장된 쿼리" + "value" : "스키마 검색..." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kayıtlı Sorgular" + "value" : "Search schemas..." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Truy vấn đã lưu" + "value" : "Tìm schema..." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已保存的查询" + "value" : "搜索 Schema..." } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已儲存的查詢" + "value" : "搜尋綱要…" } } } }, - "Saved Queries:" : { + "Search shortcuts…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "저장된 쿼리:" + "value" : "단축키 검색…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kayıtlı Sorgular:" + "value" : "Kısayollarda ara…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Truy vấn đã lưu:" + "value" : "Tìm phím tắt…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已保存的查询:" + "value" : "搜索快捷键…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已儲存的查詢:" + "value" : "搜尋快速鍵…" } } } }, - "Saved Query" : { + "Search tables, views, databases, queries…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "저장된 쿼리" + "value" : "테이블, 뷰, 데이터베이스, 쿼리 검색…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kaydedilmiş Sorgu" + "value" : "Tabloları, görünümleri, veritabanlarını, sorguları ara…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Truy vấn đã lưu" + "value" : "Tìm bảng, view, cơ sở dữ liệu, truy vấn…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已保存的查询" + "value" : "搜索表、视图、数据库、查询…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已儲存的查詢" + "value" : "搜尋資料表、檢視、資料庫、查詢…" } } } }, - "Scale" : { + "Search tables, views, databases..." : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "배율" + "value" : "테이블, 뷰, 데이터베이스 검색..." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Scale" + "value" : "Search tables, views, databases..." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tỉ lệ" + "value" : "Tìm bảng, view, cơ sở dữ liệu..." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "小数位数" + "value" : "搜索表、视图、数据库..." } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "小數位數" + "value" : "搜尋資料表、檢視表、資料庫…" } } } }, - "Scale:" : { - "extractionState" : "stale", + "Search text (full-text matched against the query column)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "배율:" + "value" : "검색 텍스트(쿼리 열에서 전문 검색으로 일치 항목 찾기)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Scale:" + "value" : "Arama metni (sorgu sütununda tam metin eşleşmesi yapılır)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tỉ lệ:" + "value" : "Văn bản tìm kiếm (so khớp toàn văn với cột query)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "小数位数:" + "value" : "搜索文本(对 query 列进行全文匹配)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "小數位數:" + "value" : "搜尋文字(對 query 欄位進行全文比對)" } } } }, - "Scatter" : { + "Search values" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "분산형" + "value" : "값 검색" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dağılım" + "value" : "Değerlerde ara" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phân tán" + "value" : "Tìm giá trị" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "散点" + "value" : "搜索值" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "散佈" + "value" : "搜尋值" } } } }, - "Schema" : { + "Search…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "스키마" + "value" : "검색…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Şema" + "value" : "Ara…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Schema" + "value" : "Tìm kiếm…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Schema" + "value" : "搜索…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "綱要" + "value" : "搜尋…" } } } }, - "schema %@" : { + "Second filter value" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "스키마 %@" + "value" : "두 번째 필터 값" } }, "tr" : { "stringUnit" : { - "state" : "needs_review", - "value" : "şema %@" + "state" : "translated", + "value" : "İkinci filtre değeri" } }, "vi" : { "stringUnit" : { - "state" : "needs_review", - "value" : "schema %@" + "state" : "translated", + "value" : "Giá trị lọc thứ hai" } }, "zh-Hans" : { "stringUnit" : { - "state" : "needs_review", - "value" : "架构 %@" + "state" : "translated", + "value" : "第二个筛选值" } }, "zh-Hant" : { "stringUnit" : { - "state" : "needs_review", - "value" : "綱要 %@" + "state" : "translated", + "value" : "第二個篩選值" } } } }, - "Schema and table privileges in this database are only visible when the connection is using it." : { + "Second value is required for BETWEEN" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 데이터베이스의 스키마 및 테이블 권한은 연결에서 해당 데이터베이스를 사용 중일 때만 볼 수 있습니다." + "value" : "BETWEEN에는 두 번째 값이 필요합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu veritabanındaki şema ve tablo yetkileri yalnızca bağlantı bu veritabanını kullanırken görünür." + "value" : "BETWEEN için ikinci değer gereklidir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Quyền trên schema và bảng của cơ sở dữ liệu này chỉ hiển thị khi kết nối đang dùng nó." + "value" : "Giá trị thứ hai là bắt buộc cho BETWEEN" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "只有当连接正在使用此数据库时,才能看到其中的 Schema 和表权限。" + "value" : "BETWEEN 需要第二个值" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "只有當連線正在使用此資料庫時,才看得到其中的綱要與資料表權限。" + "value" : "BETWEEN 需要第二個值" } } } }, - "Schema change was not authorized" : { + "Secondary" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "스키마 변경 권한이 없습니다" + "value" : "보조 노드" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Şema değişikliğine izin verilmedi" + "value" : "Secondary" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thay đổi schema không được cho phép" + "value" : "Secondary" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Schema 更改未获授权" + "value" : "Secondary" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "綱要變更未獲授權" + "value" : "Secondary" } } } }, - "Schema for %@" : { + "Secondary Preferred" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@의 스키마" + "value" : "보조 노드 우선" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ şeması" + "value" : "Secondary Preferred" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Schema của %@" + "value" : "Secondary Preferred" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 的 Schema" + "value" : "Secondary Preferred" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 的綱要" + "value" : "Secondary Preferred" } } } }, - "Schema it lives in" : { - - }, - "Schema it ran against" : { - - }, - "Schema List" : { - - }, - "Schema name (for multi-schema databases)" : { - "extractionState" : "stale", + "Secondary Text" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "스키마 이름(다중 스키마 데이터베이스용)" + "value" : "보조 텍스트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Şema adı (çok şemalı veritabanları için)" + "value" : "İkincil Metin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên schema (cho cơ sở dữ liệu nhiều schema)" + "value" : "Văn bản phụ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Schema 名称(用于多 Schema 数据库)" + "value" : "次要文本" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "綱要名稱(用於多綱要資料庫)" + "value" : "次要文字" } } } }, - "Schema name (uses current if omitted)" : { - "extractionState" : "stale", + "Secret Access Key" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Secret Access Key" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "스키마 이름(생략 시 현재 스키마 사용)" + "value" : "보안 액세스 키" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Şema adı (boş bırakılırsa geçerli şema kullanılır)" + "value" : "Secret Access Key" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên schema (dùng schema hiện tại nếu bỏ trống)" + "value" : "Secret Access Key" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Schema 名称(省略时使用当前 Schema)" + "value" : "Secret Access Key" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "綱要名稱(省略時使用目前的綱要)" + "value" : "Secret Access Key" } } } }, - "Schema name to switch to" : { + "Section Header" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "전환할 스키마 이름" + "value" : "섹션 헤더" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geçilecek şema adı" + "value" : "Bölüm Başlığı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên schema cần chuyển sang" + "value" : "Tiêu đề mục" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "要切换到的 Schema 名称" + "value" : "分区标题" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "要切換到的綱要名稱" + "value" : "區段標題" } } } }, - "Schema name. Uses the connection's current schema when omitted." : { - - }, - "Schema names inside a database, on engines that have schemas." : { - - }, - "Schema names, sorted" : { - - }, - "Schema now selected" : { - - }, - "Schema of %@" : { - - }, - "Schema SQL" : { + "Secure Connections" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "스키마 SQL" + "value" : "보안 연결" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Şema SQL'i" + "value" : "Güvenli Bağlantılar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "SQL của schema" + "value" : "Kết nối bảo mật" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Schema SQL" + "value" : "安全连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "綱要 SQL" + "value" : "安全連線" } } } }, - "Schema Switch Failed" : { - "extractionState" : "stale", + "See which queries you run most, which run slowest, and which got slower." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "스키마 전환 실패" + "value" : "가장 자주 실행한 쿼리, 가장 느린 쿼리, 성능이 저하된 쿼리를 확인하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Schema Switch Failed" + "value" : "Hangi sorguları en çok çalıştırdığınızı, hangilerinin en yavaş olduğunu ve hangilerinin yavaşladığını görün." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển schema thất bại" + "value" : "Xem truy vấn nào bạn chạy nhiều nhất, chạy chậm nhất và chậm đi." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "切换 Schema 失败" + "value" : "查看哪些查询你运行得最多、哪些最慢、哪些变慢了。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "切換綱要失敗" + "value" : "查看哪些查詢你執行得最多、哪些最慢、哪些變慢了。" } } } }, - "Schema Switching Not Supported" : { + "Select" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "선택", + "state" : "translated" + } + } + } + }, + "Select %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "스키마 전환이 지원되지 않음" + "value" : "%@ 선택" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Şema Değiştirme Desteklenmiyor" + "value" : "%@ seç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không hỗ trợ chuyển schema" + "value" : "Chọn %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "不支持切换 Schema" + "value" : "选择%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "不支援切換綱要" - } - } - } - }, - "Schema that was dropped" : { - - }, - "Schema the listing covers" : { - - }, - "Schema the object belongs to" : { - - }, - "Schema the routine lives in" : { - - }, - "Schema the session is on" : { - - }, - "Schema the session opened on" : { - - }, - "Schema the statement ran against" : { - - }, - "Schema the tab is on" : { - - }, - "Schema the table lives in" : { - - }, - "Schema the trigger belongs to" : { - - }, - "Schema the view lives in" : { - - }, - "Schema to read. Uses the connection's current schema when omitted" : { - - }, - "Schema tour of %@ on %@" : { - "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Schema tour of %1$@ on %2$@" + "value" : "選擇%@" } } } }, - "Schema-qualified name" : { - - }, - "Schema, for a table match" : { - - }, - "Schema: %@" : { - "extractionState" : "stale", + "Select %@ file to import" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "스키마: %@" + "value" : "가져올 %@ 파일 선택" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Şema: %@" + "value" : "İçe aktarılacak %@ dosyasını seçin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Schema: %@" + "value" : "Chọn file %@ để nhập" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Schema:%@" + "value" : "选择要导入的 %@ 文件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "綱要:%@" + "value" : "選擇要匯入的 %@ 檔案" } } } }, - "Schemas" : { + "Select All" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "스키마" + "value" : "전체 선택" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Şemalar" + "value" : "Tümünü Seç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Schema" + "value" : "Chọn tất cả" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Schema" + "value" : "全选" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "綱要" + "value" : "全選" } } } }, - "Scope" : { + "Select Connections" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "범위" + "value" : "연결 선택" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kapsam" + "value" : "Bağlantıları Seç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phạm vi" + "value" : "Chọn kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "范围" + "value" : "选择连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "範圍" + "value" : "選擇連線" } } } }, - "Script" : { - - }, - "Script generation cancelled." : { - - }, - "Scroll to latest message" : { + "Select Model" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "최신 메시지로 스크롤" + "value" : "모델 선택" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "En son mesaja kaydır" + "value" : "Model Seç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cuộn đến tin nhắn mới nhất" + "value" : "Chọn mô hình" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "滚动到最新消息" + "value" : "选择模型" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "捲動到最新訊息" + "value" : "選擇模型" } } } }, - "Scrollback lines:" : { - "extractionState" : "stale", + "Select Plugin" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "스크롤백 줄 수:" + "value" : "플러그인 선택" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geri kaydırma satırları:" + "value" : "Eklenti Seç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Số dòng cuộn lại:" + "value" : "Chọn Plugin" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "回滚行数:" + "value" : "选择插件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "向後捲動行數:" + "value" : "選擇外掛" } } } }, - "Search" : { + "Select SQL File..." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "검색" + "value" : "SQL 파일 선택..." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ara" + "value" : "Select SQL File..." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tìm kiếm" + "value" : "Chọn tệp SQL..." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "搜索" + "value" : "选择 SQL 文件..." } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "搜尋" + "value" : "選擇 SQL 檔案…" } } } }, - "Search %@" : { + "Select SQL files to open" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 검색" + "value" : "열 SQL 파일 선택" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ ara" + "value" : "Açılacak SQL dosyalarını seç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tìm %@" + "value" : "Chọn tệp SQL để mở" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "搜索 %@" + "value" : "选择要打开的 SQL 文件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "搜尋 %@" + "value" : "選擇要開啟的 SQL 檔案" } } } }, - "Search activity" : { + "Select Tab %d" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "활동 검색" + "value" : "탭 %d 선택" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Etkinlik ara" + "value" : "%d. Sekmeyi Seç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tìm hoạt động" + "value" : "Chọn tab %d" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "搜索活动" + "value" : "选择标签页 %d" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "搜尋活動" - } - } - } - }, - "Search All Rows" : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "모든 행 검색" + "value" : "選擇分頁 %d" } } } }, - "Search and analytics engine" : { + "Select Tab %lld" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "검색 및 분석 엔진" + "value" : "탭 %lld 선택" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Arama ve analiz motoru" + "value" : "Select Tab %lld" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Công cụ tìm kiếm và phân tích" + "value" : "Chọn tab %lld" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "搜索与分析引擎" + "value" : "选择标签页 %lld" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "搜尋與分析引擎" + "value" : "選擇分頁 %lld" } } } }, - "Search columns…" : { + "Select a Plugin" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열 검색…" + "value" : "플러그인 선택" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sütunlarda ara…" + "value" : "Bir Eklenti Seçin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tìm cột…" + "value" : "Chọn một Plugin" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "搜索列…" + "value" : "选择一个插件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "搜尋欄位…" + "value" : "選擇外掛" } } } }, - "Search connections" : { + "Select a Query" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 검색" + "value" : "쿼리 선택" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı ara" + "value" : "Select a Query" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tìm kết nối" + "value" : "Chọn một truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "搜索连接" + "value" : "选择一个查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "搜尋連線" + "value" : "選擇查詢" } } } }, - "Search databases" : { + "Select a dump file produced by pg_dump in custom archive format." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 검색" + "value" : "pg_dump로 생성한 사용자 지정 아카이브 형식의 덤프 파일을 선택하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanlarında ara" + "value" : "pg_dump tarafından özel arşiv biçiminde oluşturulmuş bir döküm dosyası seçin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tìm kiếm cơ sở dữ liệu" + "value" : "Chọn file dump do pg_dump tạo ở định dạng custom archive." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "搜索数据库" + "value" : "选择由 pg_dump 以自定义归档格式生成的转储文件。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "搜尋資料庫" + "value" : "請選擇由 pg_dump 產生的自訂封存格式備份檔。" } } } }, - "Search databases..." : { - "extractionState" : "stale", + "Select a plugin to view details" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 검색..." + "value" : "세부사항을 볼 플러그인을 선택하십시오" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Search databases..." + "value" : "Ayrıntıları görmek için bir eklenti seçin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tìm cơ sở dữ liệu..." + "value" : "Chọn plugin để xem chi tiết" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "搜索数据库..." + "value" : "选择插件查看详情" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "搜尋資料庫…" + "value" : "選擇外掛以檢視詳細資訊" } } } }, - "Search fields…" : { + "Select a query to see its full text and details." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필드 검색…" + "value" : "전체 텍스트와 세부사항을 볼 쿼리를 선택하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Alanlarda ara…" + "value" : "Tam metnini ve ayrıntılarını görmek için bir sorgu seçin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tìm trường…" + "value" : "Chọn một truy vấn để xem toàn văn và chi tiết." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "搜索字段…" + "value" : "选择一个查询以查看其完整文本和详情。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "搜尋欄位…" + "value" : "選擇一個查詢以查看其完整文字和詳細資訊。" } } } }, - "Search for connection…" : { + "Select a row or table to view details" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 검색…" + "value" : "세부사항을 볼 행 또는 테이블을 선택하십시오" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı ara…" + "value" : "Ayrıntıları görmek için bir satır veya tablo seçin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tìm kết nối…" + "value" : "Chọn một hàng hoặc bảng để xem chi tiết" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "搜索连接…" + "value" : "选择一行或一个表以查看详情" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "搜尋連線…" + "value" : "選擇一列或資料表以檢視詳細資訊" } } } }, - "Search for field..." : { - "extractionState" : "stale", + "Select a step in the plan to see what it does." : { + "comment" : "A description of the view's body.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필드 검색..." + "value" : "작업을 확인할 실행 계획 단계를 선택하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Search for field..." + "value" : "Ne yaptığını görmek için plandaki bir adımı seçin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tìm trường..." + "value" : "Chọn một bước trong kế hoạch để xem nó làm gì." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "搜索字段..." + "value" : "选择执行计划中的一个步骤,查看它做了什么。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "搜尋欄位…" + "value" : "選擇執行計畫中的一個步驟,查看它做了什麼。" } } } }, - "Search or type a field path…" : { - - }, - "Search or type…" : { + "Select a table to copy its structure:" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "검색 또는 입력…" + "value" : "구조를 복사할 테이블 선택:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Arayın veya yazın…" + "value" : "Select a table to copy its structure:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tìm kiếm hoặc nhập…" + "value" : "Chọn bảng để sao chép cấu trúc:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "搜索或输入…" + "value" : "选择要复制结构的表:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "搜尋或輸入…" + "value" : "選擇要複製結構的資料表:" } } } }, - "Search plugins..." : { - "extractionState" : "stale", + "Select a table to see its row differences." : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "행 차이를 보려면 테이블을 선택하십시오.", + "state" : "translated" + } + } + } + }, + "Select a table…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플러그인 검색..." + "value" : "테이블 선택…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Search plugins..." + "value" : "Bir tablo seçin…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tìm kiếm plugin..." + "value" : "Chọn một bảng…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "搜索插件..." + "value" : "选择表…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "搜尋外掛…" + "value" : "選擇資料表…" } } } }, - "Search queries..." : { - "extractionState" : "stale", + "Select a user or role to view its privileges." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 검색..." + "value" : "권한을 볼 사용자 또는 역할을 선택하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Search queries..." + "value" : "Yetkilerini görmek için bir kullanıcı veya rol seçin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tìm truy vấn..." + "value" : "Chọn một người dùng hoặc vai trò để xem quyền của họ." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "搜索查询..." + "value" : "选择一个用户或角色以查看其权限。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "搜尋查詢…" + "value" : "選擇一個使用者或角色以檢視其權限。" } } } }, - "Search Query History" : { + "Select an activity entry to see its details." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 기록 검색" + "value" : "세부사항을 볼 활동 항목을 선택하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgu Geçmişinde Ara" + "value" : "Ayrıntılarını görmek için bir etkinlik kaydı seçin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tìm trong lịch sử truy vấn" + "value" : "Chọn một mục hoạt động để xem chi tiết." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "搜索查询历史记录" + "value" : "选择一个活动条目以查看详细信息。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "搜尋查詢歷程記錄" + "value" : "選擇一個活動項目以查看詳細資訊。" } } } }, - "Search saved query history. Returns matching entries with execution time, row count, and outcome." : { - "extractionState" : "stale", + "Select an object on the left to edit its privileges." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "저장된 쿼리 기록을 검색합니다. 실행 시간, 행 수 및 결과가 포함된 일치 항목을 반환합니다." + "value" : "권한을 편집할 왼쪽의 객체를 선택하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kaydedilmiş sorgu geçmişinde arama yapar. Eşleşen kayıtları yürütme süresi, satır sayısı ve sonuçla birlikte döndürür." + "value" : "Yetkilerini düzenlemek için soldan bir nesne seçin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tìm trong lịch sử truy vấn đã lưu. Trả về các mục khớp kèm thời gian thực thi, số hàng và kết quả." + "value" : "Chọn một đối tượng ở bên trái để sửa quyền của nó." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "搜索已保存的查询历史记录。返回匹配条目及其执行时间、行数和结果。" + "value" : "在左侧选择一个对象以编辑其权限。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "搜尋已儲存的查詢歷程記錄。傳回相符的項目,包含執行時間、列數和結果。" + "value" : "在左側選擇一個物件以編輯其權限。" } } } }, - "Search Schema" : { - + "Select an object to see its definition on both sides." : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "양쪽 정의를 보려면 객체를 선택하십시오.", + "state" : "translated" + } + } + } }, - "Search schemas..." : { - "extractionState" : "stale", + "Select filter column" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "스키마 검색..." + "value" : "필터 열 선택" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Search schemas..." + "value" : "Filtre sütunu seç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tìm schema..." + "value" : "Chọn cột lọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "搜索 Schema..." + "value" : "选择筛选列" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "搜尋綱要…" + "value" : "選擇篩選欄位" } } } }, - "Search shortcuts…" : { + "Select filter for %@" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "단축키 검색…" + "value" : "%@의 필터 선택" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kısayollarda ara…" + "value" : "Select filter for %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tìm phím tắt…" + "value" : "Chọn bộ lọc cho %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "搜索快捷键…" + "value" : "为 %@ 选择筛选条件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "搜尋快速鍵…" + "value" : "為 %@ 選擇篩選條件" } } } }, - "Search tables, views, databases, queries…" : { + "Select filter operator" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블, 뷰, 데이터베이스, 쿼리 검색…" + "value" : "필터 연산자 선택" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tabloları, görünümleri, veritabanlarını, sorguları ara…" + "value" : "Filtre operatörü seç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tìm bảng, view, cơ sở dữ liệu, truy vấn…" + "value" : "Chọn toán tử lọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "搜索表、视图、数据库、查询…" + "value" : "选择筛选运算符" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "搜尋資料表、檢視、資料庫、查詢…" + "value" : "選擇篩選運算子" } } } }, - "Search tables, views, databases..." : { + "Select images to attach" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블, 뷰, 데이터베이스 검색..." + "value" : "첨부할 이미지 선택" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Search tables, views, databases..." + "value" : "Eklenecek resimleri seçin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tìm bảng, view, cơ sở dữ liệu..." + "value" : "Chọn ảnh để đính kèm" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "搜索表、视图、数据库..." + "value" : "选择要附加的图片" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "搜尋資料表、檢視表、資料庫…" + "value" : "選擇要附加的圖片" } } } }, - "Search text (full-text matched against the query column)" : { - "extractionState" : "stale", + "Select objects of the same kind to edit their privileges." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "검색 텍스트(쿼리 열에서 전문 검색으로 일치 항목 찾기)" + "value" : "권한을 편집할 같은 종류의 객체를 선택하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Arama metni (sorgu sütununda tam metin eşleşmesi yapılır)" + "value" : "Yetkilerini düzenlemek için aynı türden nesneler seçin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Văn bản tìm kiếm (so khớp toàn văn với cột query)" + "value" : "Chọn các đối tượng cùng loại để sửa quyền của chúng." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "搜索文本(对 query 列进行全文匹配)" + "value" : "选择同一类型的对象才能编辑它们的权限。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "搜尋文字(對 query 欄位進行全文比對)" + "value" : "選擇同一類型的物件才能編輯它們的權限。" } } } }, - "Search the query history TablePro keeps on this Mac. Results cover only connections this client may reach, whether or not connection_id is given." : { - - }, - "Search values" : { + "Select schema" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "값 검색" + "value" : "스키마 선택" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Değerlerde ara" + "value" : "Şema seçin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tìm giá trị" + "value" : "Chọn schema" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "搜索值" + "value" : "选择 Schema" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "搜尋值" + "value" : "選擇綱要" } } } }, - "Search…" : { + "Selected Item" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "검색…" + "value" : "선택된 항목" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ara…" + "value" : "Seçili Öğe" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tìm kiếm…" + "value" : "Mục đã chọn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "搜索…" + "value" : "选中项" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "搜尋…" + "value" : "選取的項目" } } } }, - "Second filter value" : { + "Selected SSH profile no longer exists." : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Selected SSH profile no longer exists." + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "두 번째 필터 값" + "value" : "선택한 SSH 프로필이 더 이상 존재하지 않습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İkinci filtre değeri" + "value" : "Seçilen SSH profili artık mevcut değil." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giá trị lọc thứ hai" + "value" : "Hồ sơ SSH đã chọn không còn tồn tại." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "第二个筛选值" + "value" : "所选 SSH 配置已不存在。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "第二個篩選值" + "value" : "選取的 SSH 設定檔已不存在。" } } } }, - "Second value is required for BETWEEN" : { + "Selection" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "BETWEEN에는 두 번째 값이 필요합니다" + "value" : "선택 영역" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "BETWEEN için ikinci değer gereklidir" + "value" : "Selection" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giá trị thứ hai là bắt buộc cho BETWEEN" + "value" : "Vùng chọn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "BETWEEN 需要第二个值" + "value" : "选区" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "BETWEEN 需要第二個值" + "value" : "選取範圍" } } } }, - "Secondary" : { - "extractionState" : "stale", + "Semicolon ;" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "보조 노드" + "value" : "세미콜론 ;" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Secondary" + "value" : "Noktalı Virgül ;" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Secondary" + "value" : "Dấu chấm phẩy ;" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Secondary" + "value" : "分号 ;" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Secondary" + "value" : "分號 ;" } } } }, - "Secondary Preferred" : { - "extractionState" : "stale", + "Send Message" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "보조 노드 우선" + "value" : "메시지 보내기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Secondary Preferred" + "value" : "Mesaj Gönder" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Secondary Preferred" + "value" : "Gửi tin nhắn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Secondary Preferred" + "value" : "发送消息" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Secondary Preferred" + "value" : "傳送訊息" } } } }, - "Secondary Text" : { + "Send telemetry to GitHub" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "보조 텍스트" + "value" : "GitHub에 텔레메트리 보내기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İkincil Metin" + "value" : "Telemetriyi GitHub'a gönder" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Văn bản phụ" + "value" : "Gửi telemetry tới GitHub" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "次要文本" + "value" : "向 GitHub 发送遥测数据" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "次要文字" + "value" : "向 GitHub 傳送遙測資料" } } } }, - "seconds" : { + "Sentinel" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "초" + "value" : "센티널" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "saniye" + "value" : "Sentinel" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "giây" + "value" : "Sentinel" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "秒" + "value" : "哨兵" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "秒" + "value" : "哨兵" } } } }, - "Secret Access Key" : { + "Sentinel Nodes" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Secret Access Key" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "보안 액세스 키" + "value" : "센티널 노드" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Secret Access Key" + "value" : "Sentinel Düğümleri" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Secret Access Key" + "value" : "Nút Sentinel" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Secret Access Key" + "value" : "哨兵节点" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Secret Access Key" + "value" : "哨兵節點" } } } }, - "Section Header" : { + "Sentinel Password" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "섹션 헤더" + "value" : "센티널 암호" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bölüm Başlığı" + "value" : "Sentinel Parolası" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tiêu đề mục" + "value" : "Mật khẩu Sentinel" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "分区标题" + "value" : "哨兵密码" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "區段標題" + "value" : "哨兵密碼" } } } }, - "Secure Connections" : { + "Sentinel Username" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "보안 연결" + "value" : "센티널 사용자 이름" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Güvenli Bağlantılar" + "value" : "Sentinel Kullanıcı Adı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối bảo mật" + "value" : "Tên người dùng Sentinel" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "安全连接" + "value" : "哨兵用户名" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "安全連線" + "value" : "哨兵使用者名稱" } } } }, - "See which queries you run most, which run slowest, and which got slower." : { + "Separator (optional)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "가장 자주 실행한 쿼리, 가장 느린 쿼리, 성능이 저하된 쿼리를 확인하십시오." + "value" : "구분 기호(선택 사항)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Hangi sorguları en çok çalıştırdığınızı, hangilerinin en yavaş olduğunu ve hangilerinin yavaşladığını görün." + "value" : "Ayırıcı (isteğe bağlı)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xem truy vấn nào bạn chạy nhiều nhất, chạy chậm nhất và chậm đi." + "value" : "Dấu phân cách (tùy chọn)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "查看哪些查询你运行得最多、哪些最慢、哪些变慢了。" + "value" : "分隔符(可选)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "查看哪些查詢你執行得最多、哪些最慢、哪些變慢了。" + "value" : "分隔符號(選填)" } } } }, - "Select" : { - - }, - "SELECT * FROM users WHERE id = 1;" : { - "extractionState" : "stale", + "Separator or pattern" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SELECT * FROM users WHERE id = 1;" + "value" : "구분 기호 또는 패턴" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SELECT * FROM users WHERE id = 1;" + "value" : "Ayırıcı veya desen" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "SELECT * FROM users WHERE id = 1;" + "value" : "Dấu phân cách hoặc mẫu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SELECT * FROM users WHERE id = 1;" + "value" : "分隔符或模式" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SELECT * FROM users WHERE id = 1;" + "value" : "分隔符號或模式" } } } }, - "SELECT * FROM users WHERE id = 42;" : { + "Sequence" : { "localizations" : { "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "SELECT * FROM users WHERE id = 42;" + "value" : "시퀀스", + "state" : "translated" + } + } + } + }, + "Series" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "계열", + "state" : "translated" } }, "tr" : { "stringUnit" : { - "state" : "translated", - "value" : "SELECT * FROM users WHERE id = 42;" + "value" : "Seri", + "state" : "translated" } }, "vi" : { "stringUnit" : { - "state" : "translated", - "value" : "SELECT * FROM users WHERE id = 42;" + "value" : "Chuỗi", + "state" : "translated" } }, "zh-Hans" : { "stringUnit" : { - "state" : "translated", - "value" : "SELECT * FROM users WHERE id = 42;" + "value" : "系列", + "state" : "translated" } }, "zh-Hant" : { "stringUnit" : { - "state" : "translated", - "value" : "SELECT * FROM users WHERE id = 42;" + "value" : "數列", + "state" : "translated" } } } }, - "Select %@" : { + "Server" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 선택" + "value" : "서버" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ seç" + "value" : "Server" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn %@" + "value" : "Máy chủ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选择%@" + "value" : "服务器" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選擇%@" + "value" : "伺服器" } } } }, - "Select %@ file to import" : { + "Server Configuration" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "가져올 %@ 파일 선택" + "value" : "서버 구성" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İçe aktarılacak %@ dosyasını seçin" + "value" : "Sunucu Yapılandırması" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn file %@ để nhập" + "value" : "Cấu hình server" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选择要导入的 %@ 文件" + "value" : "服务器配置" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選擇要匯入的 %@ 檔案" + "value" : "伺服器設定" } } } }, - "Select a dump file produced by pg_dump in custom archive format." : { + "Server Dashboard" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "pg_dump로 생성한 사용자 지정 아카이브 형식의 덤프 파일을 선택하십시오." + "value" : "서버 대시보드" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "pg_dump tarafından özel arşiv biçiminde oluşturulmuş bir döküm dosyası seçin." + "value" : "Sunucu Panosu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn file dump do pg_dump tạo ở định dạng custom archive." + "value" : "Bảng điều khiển máy chủ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选择由 pg_dump 以自定义归档格式生成的转储文件。" + "value" : "服务器仪表盘" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "請選擇由 pg_dump 產生的自訂封存格式備份檔。" + "value" : "伺服器儀表板" } } } }, - "Select a Library" : { - - }, - "Select a Plugin" : { - "extractionState" : "stale", + "Server Metrics" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플러그인 선택" + "value" : "서버 지표" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bir Eklenti Seçin" + "value" : "Sunucu Metrikleri" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn một Plugin" + "value" : "Chỉ số máy chủ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选择一个插件" + "value" : "服务器指标" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選擇外掛" + "value" : "伺服器指標" } } } }, - "Select a plugin to view details" : { + "Server error (%d): %@" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Server error (%1$d): %2$@" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "세부사항을 볼 플러그인을 선택하십시오" + "value" : "서버 오류(%1$d): %2$@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ayrıntıları görmek için bir eklenti seçin" + "value" : "Sunucu hatası (%d): %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn plugin để xem chi tiết" + "value" : "Lỗi máy chủ (%d): %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选择插件查看详情" + "value" : "服务器错误(%d):%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選擇外掛以檢視詳細資訊" + "value" : "伺服器錯誤(%1$d):%2$@" } } } }, - "Select a Query" : { + "Server error (%lld): %@" : { "extractionState" : "stale", "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Server error (%1$lld): %2$@" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 선택" + "value" : "서버 오류(%1$lld): %2$@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Select a Query" + "value" : "Server error (%lld): %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn một truy vấn" + "value" : "Lỗi máy chủ (%1$lld): %2$@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选择一个查询" + "value" : "服务器错误 (%lld):%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選擇查詢" + "value" : "伺服器錯誤(%1$lld):%2$@" } } } }, - "Select a query to see its full text and details." : { + "Server monitoring is not available for this database type." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "전체 텍스트와 세부사항을 볼 쿼리를 선택하십시오." + "value" : "이 데이터베이스 유형에서는 서버 모니터링을 사용할 수 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tam metnini ve ayrıntılarını görmek için bir sorgu seçin." + "value" : "Bu veritabanı türü için sunucu izleme kullanılamaz." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn một truy vấn để xem toàn văn và chi tiết." + "value" : "Giám sát máy chủ không khả dụng cho loại cơ sở dữ liệu này." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选择一个查询以查看其完整文本和详情。" + "value" : "此数据库类型不支持服务器监控。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選擇一個查詢以查看其完整文字和詳細資訊。" + "value" : "此資料庫類型不支援伺服器監控。" } } } }, - "Select a row or table to view details" : { + "Serverless SQLite at the edge" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "세부사항을 볼 행 또는 테이블을 선택하십시오" + "value" : "엣지의 서버리스 SQLite" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ayrıntıları görmek için bir satır veya tablo seçin" + "value" : "Uçta sunucusuz SQLite" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn một hàng hoặc bảng để xem chi tiết" + "value" : "SQLite serverless tại biên" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选择一行或一个表以查看详情" + "value" : "边缘端的无服务器 SQLite" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選擇一列或資料表以檢視詳細資訊" + "value" : "邊緣端的無伺服器 SQLite" } } } }, - "Select a step in the plan to see what it does." : { - "comment" : "A description of the view's body.", - "isCommentAutoGenerated" : true, + "Service" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "작업을 확인할 실행 계획 단계를 선택하십시오." + "value" : "서비스" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ne yaptığını görmek için plandaki bir adımı seçin." + "value" : "Servis" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn một bước trong kế hoạch để xem nó làm gì." + "value" : "Dịch vụ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选择执行计划中的一个步骤,查看它做了什么。" + "value" : "服务" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選擇執行計畫中的一個步驟,查看它做了什麼。" + "value" : "服務" } } } }, - "Select a table to copy its structure:" : { - "extractionState" : "stale", + "Service Account Key" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "구조를 복사할 테이블 선택:" + "value" : "서비스 계정 키" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Select a table to copy its structure:" + "value" : "Hizmet Hesabı Anahtarı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn bảng để sao chép cấu trúc:" + "value" : "Khóa tài khoản dịch vụ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选择要复制结构的表:" + "value" : "服务账号密钥" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選擇要複製結構的資料表:" + "value" : "服務帳戶金鑰" } } } }, - "Select a table to see its row differences." : { - - }, - "Select a table…" : { + "Service Name" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 선택…" + "value" : "서비스 이름" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bir tablo seçin…" + "value" : "Service Name" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn một bảng…" + "value" : "Tên dịch vụ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选择表…" + "value" : "服务名称" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選擇資料表…" + "value" : "服務名稱" } } } }, - "Select a user or role to view its privileges." : { + "Service Token" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "권한을 볼 사용자 또는 역할을 선택하십시오." + "value" : "서비스 토큰" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yetkilerini görmek için bir kullanıcı veya rol seçin." + "value" : "Hizmet Jetonu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn một người dùng hoặc vai trò để xem quyền của họ." + "value" : "Service Token" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选择一个用户或角色以查看其权限。" + "value" : "服务令牌" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選擇一個使用者或角色以檢視其權限。" + "value" : "服務權杖" } } } }, - "Select All" : { + "Service account key (JSON)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "전체 선택" + "value" : "서비스 계정 키(JSON)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tümünü Seç" + "value" : "Servis hesabı anahtarı (JSON)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn tất cả" + "value" : "Khóa tài khoản dịch vụ (JSON)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "全选" + "value" : "服务账号密钥(JSON)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "全選" + "value" : "服務帳號金鑰(JSON)" } } } }, - "Select an activity entry to see its details." : { + "Service stopped" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "세부사항을 볼 활동 항목을 선택하십시오." + "value" : "서비스 중지됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ayrıntılarını görmek için bir etkinlik kaydı seçin." + "value" : "Servis durduruldu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn một mục hoạt động để xem chi tiết." + "value" : "Dịch vụ đã dừng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选择一个活动条目以查看详细信息。" + "value" : "服务已停止" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選擇一個活動項目以查看詳細資訊。" + "value" : "服務已停止" } } } }, - "Select an object on the left to edit its privileges." : { + "Service token ID and secret are required" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "권한을 편집할 왼쪽의 객체를 선택하십시오." + "value" : "서비스 토큰 ID와 시크릿이 필요합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yetkilerini düzenlemek için soldan bir nesne seçin." + "value" : "Hizmet jetonu kimliği ve gizli anahtarı gereklidir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn một đối tượng ở bên trái để sửa quyền của nó." + "value" : "Cần ID và secret của service token" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在左侧选择一个对象以编辑其权限。" + "value" : "需要服务令牌 ID 和密钥" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在左側選擇一個物件以編輯其權限。" + "value" : "需要服務權杖 ID 和金鑰" } } } }, - "Select an object to see its definition on both sides." : { - - }, - "Select Connections" : { + "Services" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 선택" + "value" : "서비스" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantıları Seç" + "value" : "Servisler" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn kết nối" + "value" : "Dịch vụ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选择连接" + "value" : "服务" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選擇連線" + "value" : "服務" } } } }, - "Select filter column" : { + "Session Token" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Session Token" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터 열 선택" + "value" : "세션 토큰" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtre sütunu seç" + "value" : "Session Token" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn cột lọc" + "value" : "Session Token" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选择筛选列" + "value" : "Session Token" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選擇篩選欄位" + "value" : "Session Token" } } } }, - "Select filter for %@" : { + "Set CSV Properties…" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@의 필터 선택" + "value" : "CSV 속성 설정…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Select filter for %@" + "value" : "CSV Özelliklerini Ayarla…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn bộ lọc cho %@" + "value" : "Đặt thuộc tính CSV…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "为 %@ 选择筛选条件" + "value" : "设置 CSV 属性…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "為 %@ 選擇篩選條件" + "value" : "設定 CSV 屬性…" } } } }, - "Select filter operator" : { + "Set DEFAULT" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터 연산자 선택" + "value" : "DEFAULT로 설정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtre operatörü seç" + "value" : "Set DEFAULT" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn toán tử lọc" + "value" : "Đặt DEFAULT" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选择筛选运算符" + "value" : "设为 DEFAULT" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選擇篩選運算子" + "value" : "設為 DEFAULT" } } } }, - "Select images to attach" : { - "extractionState" : "stale", + "Set EMPTY" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "첨부할 이미지 선택" + "value" : "EMPTY로 설정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklenecek resimleri seçin" + "value" : "Set EMPTY" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn ảnh để đính kèm" + "value" : "Đặt TRỐNG" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选择要附加的图片" + "value" : "设为空" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選擇要附加的圖片" + "value" : "設為空" } } } }, - "Select Model" : { + "Set NULL" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모델 선택" + "value" : "NULL로 설정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Model Seç" + "value" : "Set NULL" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn mô hình" + "value" : "Đặt NULL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选择模型" + "value" : "设为 NULL" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選擇模型" + "value" : "設為 NULL" } } } }, - "Select objects of the same kind to edit their privileges." : { + "Set Password" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "권한을 편집할 같은 종류의 객체를 선택하십시오." + "value" : "암호 설정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yetkilerini düzenlemek için aynı türden nesneler seçin." + "value" : "Parola Ayarla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn các đối tượng cùng loại để sửa quyền của chúng." + "value" : "Đặt mật khẩu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选择同一类型的对象才能编辑它们的权限。" + "value" : "设置密码" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選擇同一類型的物件才能編輯它們的權限。" + "value" : "設定密碼" } } } }, - "Select Plugin" : { + "Set Up AI Provider" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플러그인 선택" + "value" : "AI 제공업체 설정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklenti Seç" + "value" : "Set Up AI Provider" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn Plugin" + "value" : "Thiết lập nhà cung cấp AI" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选择插件" + "value" : "设置 AI 提供商" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選擇外掛" + "value" : "設定 AI 供應商" } } } }, - "SELECT queries without their own LIMIT run with this cap applied. The query text in the editor never changes. Capped results show a Fetch All button, and Execute Without Limit skips the cap for one run." : { + "Set Value" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "자체 LIMIT이 없는 SELECT 쿼리는 이 상한을 적용하여 실행됩니다. 편집기의 쿼리 텍스트는 변경되지 않습니다. 제한된 결과에는 '모두 가져오기' 버튼이 표시되며, 한 번만 상한을 건너뛰려면 '제한 없이 실행'을 사용합니다." + "value" : "값 설정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kendi LIMIT'i olmayan SELECT sorguları bu sınırla çalışır. Düzenleyicideki sorgu metni hiç değişmez. Sınırlanan sonuçlarda Tümünü Getir düğmesi görünür, Limitsiz Çalıştır ise sınırı tek seferlik atlar." + "value" : "Değer Ata" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Các truy vấn SELECT không có LIMIT riêng sẽ chạy với giới hạn này. Nội dung truy vấn trong trình soạn thảo không hề thay đổi. Kết quả bị giới hạn sẽ hiện nút Tải tất cả, còn Chạy không giới hạn sẽ bỏ qua giới hạn cho một lần chạy." + "value" : "Đặt giá trị" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有自带 LIMIT 的 SELECT 查询会按此上限运行。编辑器中的查询文本不会被改动。被截断的结果会显示“获取所有行”按钮,“不限行数执行”则对单次运行跳过上限。" + "value" : "设置值" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有自帶 LIMIT 的 SELECT 查詢會套用此上限。編輯器中的查詢文字不會被更動。被截斷的結果會顯示「取得所有列」按鈕,「不限列數執行」則對單次執行略過上限。" + "value" : "設定值" } } } }, - "Select schema" : { - "extractionState" : "stale", + "Set as Active" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "스키마 선택" + "value" : "활성으로 설정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Şema seçin" + "value" : "Aktif Olarak Ayarla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn schema" + "value" : "Đặt làm đang hoạt động" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选择 Schema" + "value" : "设为活动" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選擇綱要" + "value" : "設為使用中" } } } }, - "Select SQL File..." : { - "extractionState" : "stale", + "Set by the column's collation" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SQL 파일 선택..." + "value" : "열의 정렬 규칙에 따라 설정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Select SQL File..." + "value" : "Sütunun harmanlamasına göre belirlenir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn tệp SQL..." + "value" : "Do đối chiếu của cột quyết định" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选择 SQL 文件..." + "value" : "由列的排序规则决定" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選擇 SQL 檔案…" + "value" : "由欄位的定序決定" } } } }, - "Select SQL files to open" : { + "Set special value" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열 SQL 파일 선택" + "value" : "특수 값 설정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Açılacak SQL dosyalarını seç" + "value" : "Set special value" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn tệp SQL để mở" + "value" : "Đặt giá trị đặc biệt" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选择要打开的 SQL 文件" + "value" : "设置特殊值" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選擇要開啟的 SQL 檔案" + "value" : "設定特殊值" } } } }, - "Select Tab %d" : { + "Set the connection's username to the IAM principal (a user email, or `name@project.iam` for a service account). The database password is not used." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "탭 %d 선택" + "value" : "연결의 사용자 이름을 IAM 주체(사용자 이메일 또는 서비스 계정의 경우 `name@project.iam`)로 설정하십시오. 데이터베이스 암호는 사용되지 않습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%d. Sekmeyi Seç" + "value" : "Bağlantının kullanıcı adını IAM principal'ı yapın (bir kullanıcı e-postası veya servis hesabı için `name@project.iam`). Veritabanı parolası kullanılmaz." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn tab %d" + "value" : "Đặt tên đăng nhập của kết nối thành IAM principal (email người dùng, hoặc `name@project.iam` với tài khoản dịch vụ). Mật khẩu cơ sở dữ liệu không được dùng." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选择标签页 %d" + "value" : "将连接的用户名设为 IAM 主体(用户邮箱,或服务账号的 `name@project.iam`)。不会使用数据库密码。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選擇分頁 %d" + "value" : "將連線的使用者名稱設為 IAM 主體(使用者電子郵件,或服務帳號的 `name@project.iam`)。不會使用資料庫密碼。" } } } }, - "Select Tab %lld" : { - "extractionState" : "stale", + "Set to NULL" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "탭 %lld 선택" + "value" : "NULL로 설정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Select Tab %lld" + "value" : "NULL Olarak Ayarla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chọn tab %lld" + "value" : "Đặt thành NULL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选择标签页 %lld" + "value" : "设为 NULL" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選擇分頁 %lld" + "value" : "設為 NULL" } } } }, - "Selected Item" : { + "Settings" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "선택된 항목" + "value" : "설정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Seçili Öğe" + "value" : "Ayarlar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mục đã chọn" + "value" : "Cài đặt" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选中项" + "value" : "设置" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選取的項目" + "value" : "設定" } } } }, - "Selected SSH profile no longer exists." : { + "Settings were changed" : { + "extractionState" : "stale", "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Selected SSH profile no longer exists." - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "선택한 SSH 프로필이 더 이상 존재하지 않습니다." + "value" : "설정이 변경되었습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Seçilen SSH profili artık mevcut değil." + "value" : "Settings were changed" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hồ sơ SSH đã chọn không còn tồn tại." + "value" : "Cài đặt đã bị thay đổi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "所选 SSH 配置已不存在。" + "value" : "设置已更改" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選取的 SSH 設定檔已不存在。" + "value" : "設定已變更" } } } }, - "Selection" : { + "Settings were changed on both this Mac and another device." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "선택 영역" + "value" : "이 Mac과 다른 기기 모두에서 설정이 변경되었습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Selection" + "value" : "Settings were changed on both this Mac and another device." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Vùng chọn" + "value" : "Cài đặt đã bị thay đổi trên cả máy Mac này và thiết bị khác." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "选区" + "value" : "设置在此 Mac 和另一台设备上均已更改。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "選取範圍" + "value" : "設定在此 Mac 和另一台裝置上都已變更。" } } } }, - "Semicolon ;" : { + "Settings:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "세미콜론 ;" + "value" : "설정:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Noktalı Virgül ;" + "value" : "Settings:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dấu chấm phẩy ;" + "value" : "Cài đặt:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "分号 ;" + "value" : "设置:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "分號 ;" + "value" : "設定:" } } } }, - "Send Message" : { + "Settings…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "메시지 보내기" + "value" : "설정…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Mesaj Gönder" + "value" : "Ayarlar…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gửi tin nhắn" + "value" : "Cài đặt…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "发送消息" + "value" : "设置…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "傳送訊息" + "value" : "設定…" } } } }, - "Send one statement at a time." : { - - }, - "Send telemetry to GitHub" : { + "Setup Instructions" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "GitHub에 텔레메트리 보내기" + "value" : "설정 지침" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Telemetriyi GitHub'a gönder" + "value" : "Kurulum Talimatları" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gửi telemetry tới GitHub" + "value" : "Hướng dẫn thiết lập" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "向 GitHub 发送遥测数据" + "value" : "设置说明" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "向 GitHub 傳送遙測資料" + "value" : "設定說明" } } } }, - "Sentinel" : { + "Shadows the SQL keyword '%@'" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "센티널" + "value" : "SQL 키워드 '%@'와 이름이 겹칩니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sentinel" + "value" : "'%@' SQL anahtar sözcüğünü gölgeliyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sentinel" + "value" : "Trùng với từ khoá SQL '%@'" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "哨兵" + "value" : "与 SQL 关键字 '%@' 冲突" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "哨兵" + "value" : "與 SQL 關鍵字「%@」衝突" } } } }, - "Sentinel Nodes" : { + "Share" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "센티널 노드" + "value" : "공유" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sentinel Düğümleri" + "value" : "Paylaş" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nút Sentinel" + "value" : "Chia sẻ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "哨兵节点" + "value" : "分享" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "哨兵節點" + "value" : "分享" } } } }, - "Sentinel Password" : { + "Share anonymous usage data" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "센티널 암호" + "value" : "익명 사용 데이터 공유" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sentinel Parolası" + "value" : "Anonim kullanım verilerini paylaş" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mật khẩu Sentinel" + "value" : "Chia sẻ dữ liệu sử dụng ẩn danh" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "哨兵密码" + "value" : "共享匿名使用数据" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "哨兵密碼" + "value" : "分享匿名使用資料" } } } }, - "Sentinel Username" : { + "Share connections and saved queries with your team through your account. Passwords are never included." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "센티널 사용자 이름" + "value" : "계정을 통해 연결 및 저장된 쿼리를 팀과 공유하십시오. 암호는 절대 포함되지 않습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sentinel Kullanıcı Adı" + "value" : "Bağlantıları ve kayıtlı sorguları hesabınız üzerinden takımınızla paylaşın. Parolalar hiçbir zaman dahil edilmez." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên người dùng Sentinel" + "value" : "Chia sẻ kết nối và truy vấn đã lưu với nhóm của bạn thông qua tài khoản. Mật khẩu không bao giờ được đưa vào." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "哨兵用户名" + "value" : "通过你的账户与团队共享连接和已保存的查询。密码不会被包含在内。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "哨兵使用者名稱" + "value" : "透過你的帳號與團隊共享連線和已儲存的查詢。密碼絕不會包含在內。" } } } }, - "Separator (optional)" : { + "Shell script to run before connecting. Non-zero exit aborts connection." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "구분 기호(선택 사항)" + "value" : "연결 전에 실행할 셸 스크립트입니다. 0이 아닌 종료 코드는 연결을 중단합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ayırıcı (isteğe bağlı)" + "value" : "Bağlanmadan önce çalıştırılacak kabuk betiği. Sıfırdan farklı çıkış kodu bağlantıyı iptal eder." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dấu phân cách (tùy chọn)" + "value" : "Shell script chạy trước khi kết nối. Exit code khác 0 sẽ hủy kết nối." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "分隔符(可选)" + "value" : "连接前运行的 Shell 脚本。非零退出码将中止连接。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "分隔符號(選填)" + "value" : "連線前執行的 Shell 指令稿。非零結束碼會中止連線。" } } } }, - "Separator or pattern" : { + "Shortcut Conflict" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "구분 기호 또는 패턴" + "value" : "단축키 충돌" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ayırıcı veya desen" + "value" : "Kısayol Çakışması" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dấu phân cách hoặc mẫu" + "value" : "Xung đột phím tắt" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "分隔符或模式" + "value" : "快捷键冲突" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "分隔符號或模式" + "value" : "快速鍵衝突" } } } }, - "Sequence" : { - - }, - "Series" : { + "Shortcut recorder" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "계열" + "value" : "단축키 기록기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Seri" + "value" : "Kısayol kaydedici" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuỗi" + "value" : "Ghi phím tắt" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "系列" + "value" : "快捷键录制" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "數列" + "value" : "快速鍵錄製器" } } } }, - "Server" : { + "Show" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "표시", + "state" : "translated" + } + } + } + }, + "Show All" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "서버" + "value" : "모두 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Server" + "value" : "Tümünü Göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Máy chủ" + "value" : "Hiển thị tất cả" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "服务器" + "value" : "显示全部" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "伺服器" + "value" : "顯示全部" } } } }, - "Server Configuration" : { + "Show All %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "서버 구성" + "value" : "%@ 모두 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sunucu Yapılandırması" + "value" : "Tüm %@ Göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cấu hình server" + "value" : "Hiển thị tất cả %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "服务器配置" + "value" : "显示全部%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "伺服器設定" + "value" : "顯示全部 %@" } } } }, - "Server Dashboard" : { + "Show All Collections" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "서버 대시보드" + "value" : "모든 컬렉션 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sunucu Panosu" + "value" : "Show All Collections" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bảng điều khiển máy chủ" + "value" : "Hiển thị tất cả Collection" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "服务器仪表盘" + "value" : "显示所有集合" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "伺服器儀表板" + "value" : "顯示所有集合" } } } }, - "Server error (%d): %@" : { + "Show All Columns" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Server error (%1$d): %2$@" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "서버 오류(%1$d): %2$@" + "value" : "모든 열 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sunucu hatası (%d): %@" + "value" : "Tüm Sütunları Göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lỗi máy chủ (%d): %@" + "value" : "Hiện tất cả cột" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "服务器错误(%d):%@" + "value" : "显示所有列" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "伺服器錯誤(%1$d):%2$@" + "value" : "顯示所有欄位" } } } }, - "Server error (%lld): %@" : { - "extractionState" : "stale", + "Show All Databases" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Server error (%1$lld): %2$@" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "서버 오류(%1$lld): %2$@" + "value" : "모든 데이터베이스 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Server error (%lld): %@" + "value" : "Tüm Veritabanlarını Göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lỗi máy chủ (%1$lld): %2$@" + "value" : "Hiển thị tất cả cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "服务器错误 (%lld):%@" + "value" : "显示所有数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "伺服器錯誤(%1$lld):%2$@" + "value" : "顯示所有資料庫" } } } }, - "Server host" : { - - }, - "Server metrics" : { - - }, - "Server Metrics" : { + "Show All Rows" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "서버 지표" + "value" : "모든 행 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sunucu Metrikleri" + "value" : "Tüm Satırları Göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chỉ số máy chủ" + "value" : "Hiện tất cả hàng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "服务器指标" + "value" : "显示所有行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "伺服器指標" + "value" : "顯示所有列" } } } }, - "Server monitoring is not available for this database type." : { + "Show All Tables" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 데이터베이스 유형에서는 서버 모니터링을 사용할 수 없습니다." + "value" : "모든 테이블 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu veritabanı türü için sunucu izleme kullanılamaz." + "value" : "Show All Tables" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giám sát máy chủ không khả dụng cho loại cơ sở dữ liệu này." + "value" : "Hiện tất cả bảng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此数据库类型不支持服务器监控。" + "value" : "显示所有表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此資料庫類型不支援伺服器監控。" + "value" : "顯示所有資料表" } } } }, - "Server port" : { - - }, - "Server round trip in milliseconds" : { - - }, - "Server version string" : { - - }, - "Serverless SQLite at the edge" : { + "Show Completions" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "엣지의 서버리스 SQLite" + "value" : "자동 완성 표시" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Uçta sunucusuz SQLite" + "value" : "Tamamlamaları Göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "SQLite serverless tại biên" + "value" : "Hiện gợi ý hoàn thành" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "边缘端的无服务器 SQLite" + "value" : "显示补全" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "邊緣端的無伺服器 SQLite" + "value" : "顯示自動完成" } } } }, - "Service" : { + "Show Connections" : { + "comment" : "Text for a menu item that toggles the visibility of the connections sidebar.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "서비스" + "value" : "연결 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Servis" + "value" : "Bağlantıları Göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dịch vụ" + "value" : "Hiện kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "服务" + "value" : "显示连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "服務" + "value" : "顯示連線" } } } }, - "Service Account Key" : { + "Show DDL" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "서비스 계정 키" + "value" : "DDL 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Hizmet Hesabı Anahtarı" + "value" : "DDL'yi Göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khóa tài khoản dịch vụ" + "value" : "Hiện DDL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "服务账号密钥" + "value" : "显示 DDL" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "服務帳戶金鑰" + "value" : "顯示 DDL" } } } }, - "Service account key (JSON)" : { + "Show ER Diagram" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "서비스 계정 키(JSON)" + "value" : "ER 다이어그램 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Servis hesabı anahtarı (JSON)" + "value" : "ER Diyagramını Göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khóa tài khoản dịch vụ (JSON)" + "value" : "Hiện sơ đồ ER" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "服务账号密钥(JSON)" + "value" : "显示 ER 图" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "服務帳號金鑰(JSON)" + "value" : "顯示 ER 圖" } } } }, - "Service Name" : { + "Show Favorites Sidebar" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "서비스 이름" + "value" : "즐겨찾기 사이드바 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Service Name" + "value" : "Sık Kullanılanlar Sidebar'ını Göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên dịch vụ" + "value" : "Hiện thanh bên yêu thích" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "服务名称" + "value" : "显示收藏侧边栏" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "服務名稱" + "value" : "顯示我的最愛側邊欄" } } } }, - "Service stopped" : { + "Show Filter Bar" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "서비스 중지됨" + "value" : "필터 막대 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Servis durduruldu" + "value" : "Filtre Çubuğunu Göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dịch vụ đã dừng" + "value" : "Hiện thanh bộ lọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "服务已停止" + "value" : "显示筛选栏" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "服務已停止" + "value" : "顯示篩選列" } } } }, - "Service Token" : { + "Show Identical Objects" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "동일한 객체 표시", + "state" : "translated" + } + } + } + }, + "Show Inspector" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "서비스 토큰" + "value" : "인스펙터 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Hizmet Jetonu" + "value" : "Denetçiyi Göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Service Token" + "value" : "Hiện thanh kiểm tra" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "服务令牌" + "value" : "显示检查器" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "服務權杖" + "value" : "顯示檢閱器" } } } }, - "Service token ID and secret are required" : { + "Show Next Connection" : { + "comment" : "Text for a menu item that shows the next connection.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "서비스 토큰 ID와 시크릿이 필요합니다" + "value" : "다음 연결 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Hizmet jetonu kimliği ve gizli anahtarı gereklidir" + "value" : "Sonraki Bağlantıyı Göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cần ID và secret của service token" + "value" : "Hiện kết nối tiếp theo" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "需要服务令牌 ID 和密钥" + "value" : "显示下一个连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "需要服務權杖 ID 和金鑰" + "value" : "顯示下一個連線" } } } }, - "Services" : { + "Show Next Tab" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "서비스" + "value" : "다음 탭 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Servisler" + "value" : "Sonraki Sekmeyi Göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dịch vụ" + "value" : "Hiện tab tiếp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "服务" + "value" : "显示下一个标签页" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "服務" + "value" : "顯示下一個分頁" } } } }, - "Session contexts" : { - - }, - "Session state" : { - - }, - "Session status" : { - - }, - "Session Token" : { + "Show Next Workspace" : { + "extractionState" : "stale", "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Session Token" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "세션 토큰" + "value" : "다음 작업 공간 보기" } }, "tr" : { "stringUnit" : { - "state" : "translated", - "value" : "Session Token" + "state" : "needs_review", + "value" : "Sonraki Çalışma Alanını Göster" } }, "vi" : { "stringUnit" : { - "state" : "translated", - "value" : "Session Token" + "state" : "needs_review", + "value" : "Hiện không gian làm việc tiếp theo" } }, "zh-Hans" : { "stringUnit" : { - "state" : "translated", - "value" : "Session Token" + "state" : "needs_review", + "value" : "显示下一个工作区" } }, "zh-Hant" : { "stringUnit" : { - "state" : "translated", - "value" : "Session Token" + "state" : "needs_review", + "value" : "顯示下一個工作區" } } } }, - "Session user" : { - - }, - "Sessions the server reports" : { - - }, - "Set as Active" : { + "Show Object Comments" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "활성으로 설정" + "value" : "객체 주석 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Aktif Olarak Ayarla" + "value" : "Nesne Yorumlarını Göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đặt làm đang hoạt động" + "value" : "Hiện ghi chú đối tượng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "设为活动" + "value" : "显示对象注释" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "設為使用中" + "value" : "顯示物件註解" } } } }, - "Set by the column's collation" : { + "Show Previous Connection" : { + "comment" : "Text for a menu item that shows the previous connection.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열의 정렬 규칙에 따라 설정" + "value" : "이전 연결 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sütunun harmanlamasına göre belirlenir" + "value" : "Önceki Bağlantıyı Göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Do đối chiếu của cột quyết định" + "value" : "Hiện kết nối trước" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "由列的排序规则决定" + "value" : "显示上一个连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "由欄位的定序決定" + "value" : "顯示上一個連線" } } } }, - "Set CSV Properties…" : { + "Show Previous Tab" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "CSV 속성 설정…" + "value" : "이전 탭 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "CSV Özelliklerini Ayarla…" + "value" : "Önceki Sekmeyi Göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đặt thuộc tính CSV…" + "value" : "Hiện tab trước" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "设置 CSV 属性…" + "value" : "显示上一个标签页" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "設定 CSV 屬性…" + "value" : "顯示上一個分頁" } } } }, - "Set DEFAULT" : { + "Show Previous Workspace" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "DEFAULT로 설정" + "value" : "이전 작업 공간 보기" } }, "tr" : { "stringUnit" : { - "state" : "translated", - "value" : "Set DEFAULT" + "state" : "needs_review", + "value" : "Önceki Çalışma Alanını Göster" } }, "vi" : { "stringUnit" : { - "state" : "translated", - "value" : "Đặt DEFAULT" + "state" : "needs_review", + "value" : "Hiện không gian làm việc trước" } }, "zh-Hans" : { "stringUnit" : { - "state" : "translated", - "value" : "设为 DEFAULT" + "state" : "needs_review", + "value" : "显示上一个工作区" } }, "zh-Hant" : { "stringUnit" : { - "state" : "translated", - "value" : "設為 DEFAULT" + "state" : "needs_review", + "value" : "顯示上一個工作區" } } } }, - "Set EMPTY" : { + "Show Query History" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "EMPTY로 설정" + "value" : "쿼리 기록 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Set EMPTY" + "value" : "Sorgu Geçmişini Göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đặt TRỐNG" + "value" : "Hiện lịch sử truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "设为空" + "value" : "显示查询历史" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "設為空" + "value" : "顯示查詢歷史" } } } }, - "Set NULL" : { + "Show Results" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "NULL로 설정" + "value" : "결과 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Set NULL" + "value" : "Sonuçları Göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đặt NULL" + "value" : "Hiện kết quả" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "设为 NULL" + "value" : "显示结果" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "設為 NULL" + "value" : "顯示結果" } } } }, - "Set Password" : { + "Show Sidebar" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "암호 설정" + "value" : "사이드바 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Parola Ayarla" + "value" : "Kenar Çubuğunu Göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đặt mật khẩu" + "value" : "Hiện thanh bên" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "设置密码" + "value" : "显示侧边栏" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "設定密碼" + "value" : "顯示側邊欄" } } } }, - "Set special value" : { - "extractionState" : "stale", + "Show Structure" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "특수 값 설정" + "value" : "구조 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Set special value" + "value" : "Yapıyı Göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đặt giá trị đặc biệt" + "value" : "Hiện cấu trúc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "设置特殊值" + "value" : "显示结构" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "設定特殊值" + "value" : "顯示結構" } } } }, - "Set the connection's username to the IAM principal (a user email, or `name@project.iam` for a service account). The database password is not used." : { + "Show System %@s" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결의 사용자 이름을 IAM 주체(사용자 이메일 또는 서비스 계정의 경우 `name@project.iam`)로 설정하십시오. 데이터베이스 암호는 사용되지 않습니다." + "value" : "시스템 %@s 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantının kullanıcı adını IAM principal'ı yapın (bir kullanıcı e-postası veya servis hesabı için `name@project.iam`). Veritabanı parolası kullanılmaz." + "value" : "Sistem %@ Göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đặt tên đăng nhập của kết nối thành IAM principal (email người dùng, hoặc `name@project.iam` với tài khoản dịch vụ). Mật khẩu cơ sở dữ liệu không được dùng." + "value" : "Hiện %@ hệ thống" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将连接的用户名设为 IAM 主体(用户邮箱,或服务账号的 `name@project.iam`)。不会使用数据库密码。" + "value" : "显示系统%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將連線的使用者名稱設為 IAM 主體(使用者電子郵件,或服務帳號的 `name@project.iam`)。不會使用資料庫密碼。" + "value" : "顯示系統%@" } } } }, - "Set to NULL" : { + "Show System Schemas" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "NULL로 설정" + "value" : "시스템 스키마 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "NULL Olarak Ayarla" + "value" : "Sistem Şemalarını Göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đặt thành NULL" + "value" : "Hiện schema hệ thống" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "设为 NULL" + "value" : "显示系统 Schema" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "設為 NULL" + "value" : "顯示系統綱要" } } } }, - "Set Up AI Provider" : { - "extractionState" : "stale", + "Show Table Structure" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "AI 제공업체 설정" + "value" : "테이블 구조 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Set Up AI Provider" + "value" : "Tablo Yapısını Göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thiết lập nhà cung cấp AI" + "value" : "Hiện cấu trúc bảng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "设置 AI 提供商" + "value" : "显示表结构" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "設定 AI 供應商" + "value" : "顯示資料表結構" } } } }, - "Set Value" : { + "Show Tables Sidebar" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "값 설정" + "value" : "테이블 사이드바 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Değer Ata" + "value" : "Tablolar Sidebar'ını Göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đặt giá trị" + "value" : "Hiện thanh bên bảng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "设置值" + "value" : "显示表侧边栏" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "設定值" + "value" : "顯示資料表側邊欄" } } } }, - "Settings" : { - "extractionState" : "stale", + "Show Toolbar" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "설정" + "value" : "도구 막대 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ayarlar" + "value" : "Araç Çubuğunu Göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cài đặt" + "value" : "Hiện thanh công cụ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "设置" + "value" : "显示工具栏" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "設定" + "value" : "顯示工具列" } } } }, - "Settings were changed" : { - "extractionState" : "stale", + "Show Welcome Screen" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "설정이 변경되었습니다" + "value" : "시작 화면 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Settings were changed" + "value" : "Hoş Geldiniz Ekranını Göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cài đặt đã bị thay đổi" + "value" : "Hiện màn hình chào mừng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "设置已更改" + "value" : "显示欢迎屏幕" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "設定已變更" + "value" : "顯示歡迎畫面" } } } }, - "Settings were changed on both this Mac and another device." : { - "extractionState" : "stale", + "Show Welcome Window" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 Mac과 다른 기기 모두에서 설정이 변경되었습니다." + "value" : "시작 윈도우 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Settings were changed on both this Mac and another device." + "value" : "Karşılama Penceresini Göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cài đặt đã bị thay đổi trên cả máy Mac này và thiết bị khác." + "value" : "Hiện cửa sổ chào mừng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "设置在此 Mac 和另一台设备上均已更改。" + "value" : "显示欢迎窗口" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "設定在此 Mac 和另一台裝置上都已變更。" + "value" : "顯示歡迎視窗" } } } }, - "Settings:" : { + "Show Workspace Rail" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "설정:" + "value" : "워크스페이스 레일 보기" } }, "tr" : { "stringUnit" : { - "state" : "translated", - "value" : "Settings:" + "state" : "needs_review", + "value" : "Çalışma Alanı Şeridini Göster" } }, "vi" : { "stringUnit" : { - "state" : "translated", - "value" : "Cài đặt:" + "state" : "needs_review", + "value" : "Hiện thanh không gian làm việc" } }, "zh-Hans" : { "stringUnit" : { - "state" : "translated", - "value" : "设置:" + "state" : "needs_review", + "value" : "显示工作区栏" } }, "zh-Hant" : { "stringUnit" : { - "state" : "translated", - "value" : "設定:" + "state" : "needs_review", + "value" : "顯示工作區列" } } } }, - "Settings…" : { + "Show all results" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "설정…" + "value" : "모든 결과 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ayarlar…" + "value" : "Tüm sonuçları göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cài đặt…" + "value" : "Hiển thị tất cả kết quả" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "设置…" + "value" : "显示所有结果" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "設定…" + "value" : "顯示所有結果" } } } }, - "Setup Instructions" : { + "Show alternate row backgrounds" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "설정 지침" + "value" : "행 배경을 번갈아 표시" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kurulum Talimatları" + "value" : "Satırları dönüşümlü arka planla göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hướng dẫn thiết lập" + "value" : "Hiện nền xen kẽ dòng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "设置说明" + "value" : "显示交替行背景" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "設定說明" + "value" : "顯示交替列背景" } } } }, - "Shadows the SQL keyword '%@'" : { + "Show connections" : { + "comment" : "A checkbox that toggles whether the sidebar shows a list of open connections.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SQL 키워드 '%@'와 이름이 겹칩니다" + "value" : "연결 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "'%@' SQL anahtar sözcüğünü gölgeliyor" + "value" : "Bağlantıları göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trùng với từ khoá SQL '%@'" + "value" : "Hiện kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "与 SQL 关键字 '%@' 冲突" + "value" : "显示连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "與 SQL 關鍵字「%@」衝突" + "value" : "顯示連線" } } } }, - "Share" : { + "Show details" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "공유" + "value" : "세부사항 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Paylaş" + "value" : "Ayrıntıları göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chia sẻ" + "value" : "Hiện chi tiết" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "分享" + "value" : "显示详细信息" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "分享" + "value" : "顯示詳細資訊" } } } }, - "Share anonymous usage data" : { + "Show in Finder" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "익명 사용 데이터 공유" + "value" : "Finder에서 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Anonim kullanım verilerini paylaş" + "value" : "Finder'da Göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chia sẻ dữ liệu sử dụng ẩn danh" + "value" : "Hiện trong Finder" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "共享匿名使用数据" + "value" : "在访达中显示" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "分享匿名使用資料" + "value" : "在 Finder 中顯示" } } } }, - "Share connections and saved queries with your team through your account. Passwords are never included." : { + "Show line numbers" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "계정을 통해 연결 및 저장된 쿼리를 팀과 공유하십시오. 암호는 절대 포함되지 않습니다." + "value" : "줄 번호 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantıları ve kayıtlı sorguları hesabınız üzerinden takımınızla paylaşın. Parolalar hiçbir zaman dahil edilmez." + "value" : "Satır numaralarını göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chia sẻ kết nối và truy vấn đã lưu với nhóm của bạn thông qua tài khoản. Mật khẩu không bao giờ được đưa vào." + "value" : "Hiện số dòng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "通过你的账户与团队共享连接和已保存的查询。密码不会被包含在内。" + "value" : "显示行号" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "透過你的帳號與團隊共享連線和已儲存的查詢。密碼絕不會包含在內。" + "value" : "顯示行號" } } } }, - "Shell script to run before connecting. Non-zero exit aborts connection." : { + "Show object comments" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 전에 실행할 셸 스크립트입니다. 0이 아닌 종료 코드는 연결을 중단합니다." + "value" : "객체 주석 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlanmadan önce çalıştırılacak kabuk betiği. Sıfırdan farklı çıkış kodu bağlantıyı iptal eder." + "value" : "Nesne yorumlarını göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Shell script chạy trước khi kết nối. Exit code khác 0 sẽ hủy kết nối." + "value" : "Hiện ghi chú đối tượng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接前运行的 Shell 脚本。非零退出码将中止连接。" + "value" : "显示对象注释" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線前執行的 Shell 指令稿。非零結束碼會中止連線。" + "value" : "顯示物件註解" } } } }, - "Shortcut Conflict" : { + "Show object icons" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "단축키 충돌" + "value" : "객체 아이콘 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kısayol Çakışması" + "value" : "Nesne simgelerini göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xung đột phím tắt" + "value" : "Hiện biểu tượng đối tượng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "快捷键冲突" + "value" : "显示对象图标" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "快速鍵衝突" + "value" : "顯示物件圖像" } } } }, - "Shortcut recorder" : { + "Show only the objects whose name contains this text" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "이 텍스트가 이름에 포함된 객체만 표시합니다", + "state" : "translated" + } + } + } + }, + "Show password" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "단축키 기록기" + "value" : "암호 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kısayol kaydedici" + "value" : "Parolayı göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ghi phím tắt" + "value" : "Hiện mật khẩu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "快捷键录制" + "value" : "显示密码" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "快速鍵錄製器" + "value" : "顯示密碼" } } } }, - "Show" : { - - }, - "Show All" : { + "Show recent tables" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모두 보기" + "value" : "최근 테이블 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tümünü Göster" + "value" : "Son tabloları göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiển thị tất cả" + "value" : "Hiện bảng gần đây" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示全部" + "value" : "显示最近的表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示全部" + "value" : "顯示最近的資料表" } } } }, - "Show All %@" : { + "Show row numbers" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 모두 보기" + "value" : "행 번호 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm %@ Göster" + "value" : "Satır numaralarını göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiển thị tất cả %@" + "value" : "Hiển thị số thứ tự hàng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示全部%@" + "value" : "显示行号" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示全部 %@" + "value" : "顯示列號" } } } }, - "Show All Collections" : { + "Show workspace rail" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 컬렉션 보기" + "value" : "워크스페이스 레일 보기" } }, "tr" : { "stringUnit" : { - "state" : "translated", - "value" : "Show All Collections" + "state" : "needs_review", + "value" : "Çalışma alanı şeridini göster" } }, "vi" : { "stringUnit" : { - "state" : "translated", - "value" : "Hiển thị tất cả Collection" + "state" : "needs_review", + "value" : "Hiện thanh không gian làm việc" } }, "zh-Hans" : { "stringUnit" : { - "state" : "translated", - "value" : "显示所有集合" + "state" : "needs_review", + "value" : "显示工作区栏" } }, "zh-Hant" : { "stringUnit" : { - "state" : "translated", - "value" : "顯示所有集合" + "state" : "needs_review", + "value" : "顯示工作區列" } } } }, - "Show All Columns" : { + "Showing %1$lld of %2$lld" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 열 보기" + "value" : "전체 %2$lld개 중 %1$lld개 표시" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm Sütunları Göster" + "value" : "%2$lld öğeden %1$lld tanesi gösteriliyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiện tất cả cột" + "value" : "Đang hiển thị %1$lld trên %2$lld" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示所有列" + "value" : "正在显示 %2$lld 中的 %1$lld 项" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示所有欄位" + "value" : "正在顯示 %2$lld 中的 %1$lld 項" } } } }, - "Show All Databases" : { + "Showing %@ rows" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 데이터베이스 보기" + "value" : "%@개 행 표시" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm Veritabanlarını Göster" + "value" : "%@ satır gösteriliyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiển thị tất cả cơ sở dữ liệu" + "value" : "Đang hiển thị %@ hàng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示所有数据库" + "value" : "显示 %@ 行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示所有資料庫" + "value" : "顯示 %@ 列" } } } }, - "Show all results" : { - "extractionState" : "stale", + "Showing %lld ^[rows](inflect: true)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 결과 보기" + "value" : "%lld개 행 표시" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm sonuçları göster" + "value" : "%lld satır gösteriliyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiển thị tất cả kết quả" + "value" : "Đang hiển thị %lld dòng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示所有结果" + "value" : "显示 %lld 行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示所有結果" + "value" : "顯示 %lld 列" } } } }, - "Show All Rows" : { + "Showing %lld of %lld" : { + "comment" : "A description of the number of visible databases in the sidebar. The first argument is the number of visible databases. The second argument is the number of all databases.", + "isCommentAutoGenerated" : true, "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Showing %1$lld of %2$lld" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 행 보기" + "value" : "전체 %2$lld개 중 %1$lld개 표시" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm Satırları Göster" + "value" : "%2$lld içinden %1$lld gösteriliyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiện tất cả hàng" + "value" : "Đang hiện %1$lld trên %2$lld" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示所有行" + "value" : "正在显示 %1$lld / %2$lld" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示所有列" + "value" : "正在顯示 %1$lld / %2$lld" } } } }, - "Show All Tables" : { - "extractionState" : "stale", + "Showing all databases" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 테이블 보기" + "value" : "모든 데이터베이스 표시" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Show All Tables" + "value" : "Tüm veritabanları gösteriliyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiện tất cả bảng" + "value" : "Đang hiển thị tất cả cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示所有表" + "value" : "正在显示所有数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示所有資料表" + "value" : "正在顯示所有資料庫" } } } }, - "Show alternate row backgrounds" : { + "Showing first %lld keys" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "행 배경을 번갈아 표시" + "value" : "처음 %lld개 키 표시" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satırları dönüşümlü arka planla göster" + "value" : "İlk %lld anahtar gösteriliyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiện nền xen kẽ dòng" + "value" : "Hiển thị %lld khóa đầu tiên" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示交替行背景" + "value" : "显示前 %lld 个键" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示交替列背景" + "value" : "顯示前 %lld 個鍵" } } } }, - "Show Completions" : { + "Showing saved plugin list. %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "자동 완성 표시" + "value" : "저장된 플러그인 목록을 표시합니다. %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tamamlamaları Göster" + "value" : "Kaydedilmiş eklenti listesi gösteriliyor. %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiện gợi ý hoàn thành" + "value" : "Đang hiển thị danh sách plugin đã lưu. %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示补全" + "value" : "正在显示已保存的插件列表。%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示自動完成" + "value" : "正在顯示已儲存的外掛清單。%@" } } } }, - "Show connections" : { - "comment" : "A checkbox that toggles whether the sidebar shows a list of open connections.", - "isCommentAutoGenerated" : true, + "Showing the first %1$@ points of %2$@ loaded rows" : { "localizations" : { "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "연결 보기" + "value" : "불러온 %2$@행 중 처음 %1$@개 지점을 표시 중", + "state" : "translated" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantıları göster" + "value" : "Yüklenen %2$@ satırın ilk %1$@ noktası gösteriliyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiện kết nối" + "value" : "Đang hiển thị %1$@ điểm đầu tiên trong %2$@ hàng đã tải" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示连接" + "value" : "显示已加载 %2$@ 行中的前 %1$@ 个点" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示連線" + "value" : "顯示已載入 %2$@ 列中的前 %1$@ 個點" } } } }, - "Show Connections" : { - "comment" : "Text for a menu item that toggles the visibility of the connections sidebar.", - "isCommentAutoGenerated" : true, + "Showing the first %@ series" : { "localizations" : { "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "연결 보기" + "value" : "처음 %@개 계열을 표시 중", + "state" : "translated" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantıları Göster" + "value" : "İlk %@ seri gösteriliyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiện kết nối" + "value" : "Đang hiển thị %@ chuỗi đầu tiên" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示连接" + "value" : "显示前 %@ 个系列" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示連線" + "value" : "顯示前 %@ 個系列" } } } }, - "Show DDL" : { + "Shows a type icon before each object name in the sidebar. Turn it off for a plain list of names." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "DDL 보기" + "value" : "사이드바에서 각 객체 이름 앞에 유형 아이콘을 표시합니다. 이름만 있는 단순한 목록을 사용하려면 끄십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "DDL'yi Göster" + "value" : "Kenar çubuğunda her nesne adının önünde bir tür simgesi gösterir. Sade bir ad listesi için kapatın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiện DDL" + "value" : "Hiện biểu tượng loại trước mỗi tên đối tượng trong thanh bên. Tắt đi để có danh sách tên đơn thuần." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示 DDL" + "value" : "在侧边栏中每个对象名称前显示类型图标。关闭后只显示纯名称列表。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示 DDL" + "value" : "在側邊欄中每個物件名稱前顯示類型圖像。關閉後只顯示純名稱清單。" } } } }, - "Show details" : { + "Shows database object comments next to tables in the sidebar and in grid column headers." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "세부사항 보기" + "value" : "사이드바의 테이블 옆과 그리드 열 머리글에 데이터베이스 객체 주석을 표시합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ayrıntıları göster" + "value" : "Veritabanı nesne yorumlarını kenar çubuğundaki tabloların yanında ve tablo sütun başlıklarında gösterir." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiện chi tiết" + "value" : "Hiển thị ghi chú của đối tượng cơ sở dữ liệu cạnh các bảng trong thanh bên và trên tiêu đề cột của lưới." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示详细信息" + "value" : "在侧边栏的表旁边和数据网格列标题中显示数据库对象注释。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示詳細資訊" + "value" : "在側邊欄的資料表旁與資料格欄位標題中顯示資料庫物件註解。" } } } }, - "Show ER Diagram" : { + "Sidebar" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "ER 다이어그램 보기" + "value" : "사이드바" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "ER Diyagramını Göster" + "value" : "Sidebar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiện sơ đồ ER" + "value" : "Thanh bên" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示 ER 图" + "value" : "侧边栏" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示 ER 圖" + "value" : "側邊欄" } } } }, - "Show Favorites Sidebar" : { - "extractionState" : "stale", + "Sidebar Layout" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "즐겨찾기 사이드바 보기" + "value" : "사이드바 레이아웃" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sık Kullanılanlar Sidebar'ını Göster" + "value" : "Sidebar Düzeni" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiện thanh bên yêu thích" + "value" : "Bố cục thanh bên" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示收藏侧边栏" + "value" : "侧边栏布局" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示我的最愛側邊欄" + "value" : "側邊欄版面配置" } } } }, - "Show Filter Bar" : { + "Sidebar Panel" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터 막대 보기" + "value" : "사이드바 패널" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtre Çubuğunu Göster" + "value" : "Sidebar Panel" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiện thanh bộ lọc" + "value" : "Thanh bên" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示筛选栏" + "value" : "侧边栏" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示篩選列" + "value" : "側邊欄" } } } }, - "Show Identical Objects" : { - - }, - "Show in Finder" : { + "Sidebar as List" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Finder에서 보기" + "value" : "목록형 사이드바" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Finder'da Göster" + "value" : "Sidebar'ı Liste Olarak Göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiện trong Finder" + "value" : "Thanh bên dạng danh sách" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在访达中显示" + "value" : "侧边栏显示为列表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在 Finder 中顯示" + "value" : "側邊欄顯示為清單" } } } }, - "Show Inspector" : { + "Sidebar as Tree" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "인스펙터 보기" + "value" : "트리형 사이드바" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Denetçiyi Göster" + "value" : "Sidebar'ı Ağaç Olarak Göster" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiện thanh kiểm tra" + "value" : "Thanh bên dạng cây" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示检查器" + "value" : "侧边栏显示为树状" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示檢閱器" + "value" : "側邊欄顯示為樹狀" } } } }, - "Show line numbers" : { + "Sign In" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "줄 번호 보기" + "value" : "로그인" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satır numaralarını göster" + "value" : "Giriş Yap" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiện số dòng" + "value" : "Đăng nhập" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示行号" + "value" : "登录" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示行號" + "value" : "登入" } } } }, - "Show Next Connection" : { - "comment" : "Text for a menu item that shows the next connection.", - "isCommentAutoGenerated" : true, + "Sign In with Browser…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다음 연결 보기" + "value" : "브라우저로 로그인…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sonraki Bağlantıyı Göster" + "value" : "Tarayıcıyla Giriş Yap…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiện kết nối tiếp theo" + "value" : "Đăng nhập bằng trình duyệt…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示下一个连接" + "value" : "通过浏览器登录…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示下一個連線" + "value" : "透過瀏覽器登入…" } } } }, - "Show Next Tab" : { + "Sign Out" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다음 탭 보기" + "value" : "로그아웃" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sonraki Sekmeyi Göster" + "value" : "Oturumu Kapat" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiện tab tiếp" + "value" : "Đăng xuất" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示下一个标签页" + "value" : "退出登录" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示下一個分頁" + "value" : "登出" } } } }, - "Show Next Workspace" : { - "extractionState" : "stale", + "Sign in to Microsoft Entra ID with your browser?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다음 작업 공간 보기" + "value" : "브라우저에서 Microsoft Entra ID에 로그인하시겠습니까?" } }, "tr" : { "stringUnit" : { - "state" : "needs_review", - "value" : "Sonraki Çalışma Alanını Göster" + "state" : "translated", + "value" : "Microsoft Entra ID'ye tarayıcınızla oturum açılsın mı?" } }, "vi" : { "stringUnit" : { - "state" : "needs_review", - "value" : "Hiện không gian làm việc tiếp theo" + "state" : "translated", + "value" : "Đăng nhập Microsoft Entra ID bằng trình duyệt?" } }, "zh-Hans" : { "stringUnit" : { - "state" : "needs_review", - "value" : "显示下一个工作区" + "state" : "translated", + "value" : "要用浏览器登录 Microsoft Entra ID 吗?" } }, "zh-Hant" : { "stringUnit" : { - "state" : "needs_review", - "value" : "顯示下一個工作區" + "state" : "translated", + "value" : "要用瀏覽器登入 Microsoft Entra ID 嗎?" } } } }, - "Show object comments" : { + "Sign in to iCloud in System Settings to enable sync." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "객체 주석 보기" + "value" : "동기화를 활성화하려면 시스템 설정에서 iCloud에 로그인하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Nesne yorumlarını göster" + "value" : "Eşitlemeyi açmak için Sistem Ayarları'ndan iCloud'a giriş yapın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiện ghi chú đối tượng" + "value" : "Đăng nhập iCloud trong Cài đặt hệ thống để bật đồng bộ." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示对象注释" + "value" : "请在系统设置中登录 iCloud 以启用同步。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示物件註解" + "value" : "請在系統設定中登入 iCloud 以啟用同步。" } } } }, - "Show Object Comments" : { - "extractionState" : "stale", + "Sign in to iCloud to enable sync" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "객체 주석 보기" + "value" : "동기화를 활성화하려면 iCloud에 로그인하십시오" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Nesne Yorumlarını Göster" + "value" : "Eşitlemeyi açmak için iCloud'a giriş yapın" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiện ghi chú đối tượng" + "value" : "Đăng nhập iCloud để bật đồng bộ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示对象注释" + "value" : "登录 iCloud 以启用同步" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示物件註解" + "value" : "登入 iCloud 以啟用同步" } } } }, - "Show object icons" : { + "Sign in to use your ChatGPT subscription" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "객체 아이콘 보기" + "value" : "ChatGPT 구독을 사용하려면 로그인하십시오" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Nesne simgelerini göster" + "value" : "ChatGPT aboneliğinizi kullanmak için giriş yapın" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiện biểu tượng đối tượng" + "value" : "Đăng nhập để dùng gói đăng ký ChatGPT của bạn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示对象图标" + "value" : "登录以使用你的 ChatGPT 订阅" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示物件圖像" + "value" : "登入以使用你的 ChatGPT 訂閱" } } } }, - "Show only the objects whose name contains this text" : { - - }, - "Show password" : { + "Sign in with ChatGPT" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "암호 보기" + "value" : "ChatGPT로 로그인" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Parolayı göster" + "value" : "ChatGPT ile giriş yap" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiện mật khẩu" + "value" : "Đăng nhập bằng ChatGPT" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示密码" + "value" : "使用 ChatGPT 登录" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示密碼" + "value" : "使用 ChatGPT 登入" } } } }, - "Show Previous Connection" : { - "comment" : "Text for a menu item that shows the previous connection.", - "isCommentAutoGenerated" : true, + "Sign in with Cursor" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이전 연결 보기" + "value" : "Cursor로 로그인" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Önceki Bağlantıyı Göster" + "value" : "Cursor ile giriş yap" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiện kết nối trước" + "value" : "Đăng nhập bằng Cursor" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示上一个连接" + "value" : "使用 Cursor 登录" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示上一個連線" + "value" : "使用 Cursor 登入" } } } }, - "Show Previous Tab" : { + "Sign in with GitHub" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이전 탭 보기" + "value" : "GitHub로 로그인" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Önceki Sekmeyi Göster" + "value" : "GitHub ile Oturum Aç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiện tab trước" + "value" : "Đăng nhập bằng GitHub" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示上一个标签页" + "value" : "使用 GitHub 登录" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示上一個分頁" + "value" : "使用 GitHub 登入" } } } }, - "Show Previous Workspace" : { - "extractionState" : "stale", + "Sign in with xAI" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이전 작업 공간 보기" + "value" : "xAI로 로그인" } }, "tr" : { "stringUnit" : { - "state" : "needs_review", - "value" : "Önceki Çalışma Alanını Göster" + "state" : "translated", + "value" : "xAI ile giriş yap" } }, "vi" : { "stringUnit" : { - "state" : "needs_review", - "value" : "Hiện không gian làm việc trước" + "state" : "translated", + "value" : "Đăng nhập bằng xAI" } }, "zh-Hans" : { "stringUnit" : { - "state" : "needs_review", - "value" : "显示上一个工作区" + "state" : "translated", + "value" : "使用 xAI 登录" } }, "zh-Hant" : { "stringUnit" : { - "state" : "needs_review", - "value" : "顯示上一個工作區" + "state" : "translated", + "value" : "使用 xAI 登入" } } } }, - "Show Query History" : { + "Sign-in cancelled" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 기록 보기" + "value" : "로그인이 취소되었습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgu Geçmişini Göster" + "value" : "Oturum açma iptal edildi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiện lịch sử truy vấn" + "value" : "Đăng nhập đã hủy" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示查询历史" + "value" : "登录已取消" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示查詢歷史" + "value" : "登入已取消" } } } }, - "Show recent tables" : { + "Sign-in could not be verified. Please try again." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "최근 테이블 보기" + "value" : "로그인을 확인할 수 없습니다. 다시 시도하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Son tabloları göster" + "value" : "Giriş doğrulanamadı. Lütfen tekrar deneyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiện bảng gần đây" + "value" : "Không thể xác minh đăng nhập. Vui lòng thử lại." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示最近的表" + "value" : "无法验证登录。请重试。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示最近的資料表" + "value" : "無法驗證登入。請再試一次。" } } } }, - "Show Results" : { + "Sign-in timed out" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "결과 보기" + "value" : "로그인 시간이 초과되었습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sonuçları Göster" + "value" : "Oturum açma zaman aşımına uğradı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiện kết quả" + "value" : "Đăng nhập hết thời gian chờ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示结果" + "value" : "登录超时" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示結果" + "value" : "登入逾時" } } } }, - "Show row numbers" : { + "Sign-in timed out. Please try again." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "행 번호 보기" + "value" : "로그인 시간이 초과되었습니다. 다시 시도하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satır numaralarını göster" + "value" : "Giriş zaman aşımına uğradı. Lütfen tekrar deneyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiển thị số thứ tự hàng" + "value" : "Đăng nhập đã hết thời gian chờ. Vui lòng thử lại." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示行号" + "value" : "登录超时。请重试。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示列號" + "value" : "登入逾時。請再試一次。" } } } }, - "Show Sidebar" : { + "Signed In" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사이드바 보기" + "value" : "로그인 완료" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kenar Çubuğunu Göster" + "value" : "Giriş Yapıldı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiện thanh bên" + "value" : "Đã đăng nhập" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示侧边栏" + "value" : "已登录" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示側邊欄" + "value" : "已登入" } } } }, - "Show Structure" : { + "Signed in" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "구조 보기" + "value" : "로그인됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yapıyı Göster" + "value" : "Giriş yapıldı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiện cấu trúc" + "value" : "Đã đăng nhập" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示结构" + "value" : "已登录" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示結構" + "value" : "已登入" } } } }, - "Show System %@s" : { + "Signed in as %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "시스템 %@s 보기" + "value" : "%@ 계정으로 로그인됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sistem %@ Göster" + "value" : "%@ olarak oturum açıldı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiện %@ hệ thống" + "value" : "Đã đăng nhập với %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示系统%@" + "value" : "已登录为 %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示系統%@" + "value" : "已登入為 %@" } } } }, - "Show System Schemas" : { - "extractionState" : "stale", + "Signed in as %@ on the %@ plan." : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Signed in as %1$@ on the %2$@ plan." + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "시스템 스키마 보기" + "value" : "%1$@ 계정으로 로그인했습니다. 현재 %2$@ 요금제를 사용 중입니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sistem Şemalarını Göster" + "value" : "%2$@ planıyla %1$@ olarak oturum açıldı." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiện schema hệ thống" + "value" : "Đã đăng nhập với tên %1$@ trên gói %2$@." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示系统 Schema" + "value" : "已以 %1$@ 身份登录,使用 %2$@ 方案。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示系統綱要" + "value" : "已以 %1$@ 身分登入,使用 %2$@ 方案。" } } } }, - "Show Table Structure" : { + "Signed in as %@." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 구조 보기" + "value" : "%@ 계정으로 로그인했습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tablo Yapısını Göster" + "value" : "%@ olarak oturum açıldı." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiện cấu trúc bảng" + "value" : "Đã đăng nhập với tên %@." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示表结构" + "value" : "已以 %@ 身份登录。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示資料表結構" + "value" : "已以 %@ 身分登入。" } } } }, - "Show Tables Sidebar" : { - "extractionState" : "stale", + "Signed in with Cursor" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 사이드바 보기" + "value" : "Cursor로 로그인됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tablolar Sidebar'ını Göster" + "value" : "Cursor ile giriş yapıldı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiện thanh bên bảng" + "value" : "Đã đăng nhập bằng Cursor" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示表侧边栏" + "value" : "已使用 Cursor 登录" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示資料表側邊欄" + "value" : "已使用 Cursor 登入" } } } }, - "Show Toolbar" : { + "Signed in with xAI" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "도구 막대 보기" + "value" : "xAI로 로그인됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Araç Çubuğunu Göster" + "value" : "xAI ile oturum açıldı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiện thanh công cụ" + "value" : "Đã đăng nhập bằng xAI" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示工具栏" + "value" : "已使用 xAI 登录" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示工具列" + "value" : "已使用 xAI 登入" } } } }, - "Show Welcome Screen" : { + "Signed in." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "시작 화면 보기" + "value" : "로그인했습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Hoş Geldiniz Ekranını Göster" + "value" : "Oturum açıldı." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiện màn hình chào mừng" + "value" : "Đã đăng nhập." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示欢迎屏幕" + "value" : "已登录。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示歡迎畫面" + "value" : "已登入。" } } } }, - "Show Welcome Window" : { + "Signing in…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "시작 윈도우 보기" + "value" : "로그인 중…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Karşılama Penceresini Göster" + "value" : "Oturum açılıyor…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiện cửa sổ chào mừng" + "value" : "Đang đăng nhập…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示欢迎窗口" + "value" : "正在登录…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示歡迎視窗" + "value" : "正在登入…" } } } }, - "Show workspace rail" : { - "extractionState" : "stale", + "Signs in to Cloudflare Access once and caches the token, so connecting doesn't open a browser." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "워크스페이스 레일 보기" + "value" : "Cloudflare Access에 한 번 로그인하고 토큰을 캐시하므로 연결할 때 브라우저가 열리지 않습니다." } }, "tr" : { "stringUnit" : { - "state" : "needs_review", - "value" : "Çalışma alanı şeridini göster" + "state" : "translated", + "value" : "Cloudflare Access'e bir kez giriş yapar ve jetonu önbelleğe alır, böylece bağlanırken tarayıcı açılmaz." } }, "vi" : { "stringUnit" : { - "state" : "needs_review", - "value" : "Hiện thanh không gian làm việc" + "state" : "translated", + "value" : "Đăng nhập Cloudflare Access một lần và lưu token vào bộ nhớ đệm, nên khi kết nối sẽ không mở trình duyệt." } }, "zh-Hans" : { "stringUnit" : { - "state" : "needs_review", - "value" : "显示工作区栏" + "state" : "translated", + "value" : "登录 Cloudflare Access 一次并缓存令牌,连接时不再打开浏览器。" } }, "zh-Hant" : { "stringUnit" : { - "state" : "needs_review", - "value" : "顯示工作區列" + "state" : "translated", + "value" : "登入 Cloudflare Access 一次並快取權杖,這樣連線時就不會開啟瀏覽器。" } } } }, - "Show Workspace Rail" : { - "extractionState" : "stale", + "Silent" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "워크스페이스 레일 보기" + "value" : "알림 없음" } }, "tr" : { "stringUnit" : { - "state" : "needs_review", - "value" : "Çalışma Alanı Şeridini Göster" + "state" : "translated", + "value" : "Silent" } }, "vi" : { "stringUnit" : { - "state" : "needs_review", - "value" : "Hiện thanh không gian làm việc" + "state" : "translated", + "value" : "Im lặng" } }, "zh-Hans" : { "stringUnit" : { - "state" : "needs_review", - "value" : "显示工作区栏" + "state" : "translated", + "value" : "静默" } }, "zh-Hant" : { "stringUnit" : { - "state" : "needs_review", - "value" : "顯示工作區列" + "state" : "translated", + "value" : "靜音" } } } }, - "Showing %@ rows" : { - "extractionState" : "stale", + "Single Quote '" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@개 행 표시" + "value" : "작은따옴표 '" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ satır gösteriliyor" + "value" : "Tek Tırnak '" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang hiển thị %@ hàng" + "value" : "Dấu nháy đơn '" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示 %@ 行" + "value" : "单引号 '" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示 %@ 列" + "value" : "單引號 '" } } } }, - "Showing %1$lld of %2$lld" : { + "Single-clicking a table opens a temporary tab that gets replaced on next click." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "전체 %2$lld개 중 %1$lld개 표시" + "value" : "테이블을 한 번 클릭하면 임시 탭에서 열리며, 다음 테이블을 클릭하면 대체됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%2$lld öğeden %1$lld tanesi gösteriliyor" + "value" : "Bir tabloya tek tıklamak, sonraki tıklamada yerini bırakan geçici bir sekme açar." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang hiển thị %1$lld trên %2$lld" + "value" : "Nhấp một lần vào bảng sẽ mở tab tạm thời, tab này sẽ được thay thế khi nhấp tiếp." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在显示 %2$lld 中的 %1$lld 项" + "value" : "单击表时打开临时标签页,下次点击时会被替换。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在顯示 %2$lld 中的 %1$lld 項" + "value" : "按一下資料表會開啟暫時分頁,下次按一下時會被取代。" } } } }, - "Showing %lld ^[rows](inflect: true)" : { + "Size" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%lld개 행 표시" + "value" : "크기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%lld satır gösteriliyor" + "value" : "Boyut" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang hiển thị %lld dòng" + "value" : "Kích thước" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示 %lld 行" + "value" : "大小" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示 %lld 列" + "value" : "大小" } } } }, - "Showing %lld of %lld" : { - "comment" : "A description of the number of visible databases in the sidebar. The first argument is the number of visible databases. The second argument is the number of all databases.", - "isCommentAutoGenerated" : true, + "Size All Columns to Fit" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Showing %1$lld of %2$lld" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "전체 %2$lld개 중 %1$lld개 표시" + "value" : "모든 열을 내용에 맞게 조절" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%2$lld içinden %1$lld gösteriliyor" + "value" : "Tüm Sütunları Sığdır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang hiện %1$lld trên %2$lld" + "value" : "Tự điều chỉnh tất cả cột" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在显示 %1$lld / %2$lld" + "value" : "自动调整所有列宽" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在顯示 %1$lld / %2$lld" + "value" : "自動調整所有欄位寬度" } } } }, - "Showing all databases" : { + "Size to Fit" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 데이터베이스 표시" + "value" : "내용에 맞게 조절" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm veritabanları gösteriliyor" + "value" : "Sığdır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang hiển thị tất cả cơ sở dữ liệu" + "value" : "Tự điều chỉnh" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在显示所有数据库" + "value" : "自动调整" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在顯示所有資料庫" + "value" : "自動調整大小" } } } }, - "Showing another result will discard all unsaved changes." : { - - }, - "Showing first %lld keys" : { + "Size:" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "처음 %lld개 키 표시" + "value" : "크기:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İlk %lld anahtar gösteriliyor" + "value" : "Size:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiển thị %lld khóa đầu tiên" + "value" : "Kích thước:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示前 %lld 个键" + "value" : "大小:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示前 %lld 個鍵" + "value" : "大小:" } } } }, - "Showing saved plugin list. %@" : { + "Skip" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "저장된 플러그인 목록을 표시합니다. %@" + "value" : "건너뛰기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kaydedilmiş eklenti listesi gösteriliyor. %@" + "value" : "Skip" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang hiển thị danh sách plugin đã lưu. %@" + "value" : "Bỏ qua" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在显示已保存的插件列表。%@" + "value" : "跳过" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在顯示已儲存的外掛清單。%@" + "value" : "略過" } } } }, - "Showing the first %@ series" : { + "Skip TLS Verification" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "처음 %@개 계열을 표시 중" + "value" : "TLS 검증 건너뛰기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İlk %@ seri gösteriliyor" + "value" : "TLS Doğrulamasını Atla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang hiển thị %@ chuỗi đầu tiên" + "value" : "Bỏ qua xác minh TLS" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示前 %@ 个系列" + "value" : "跳过 TLS 验证" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示前 %@ 個系列" + "value" : "略過 TLS 驗證" } } } }, - "Showing the first %1$@ points of %2$@ loaded rows" : { + "Skip and continue" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "건너뛰고 계속하기", + "state" : "translated" + } + } + } + }, + "Skips foreign key constraint checks for this operation" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "불러온 %2$@행 중 처음 %1$@개 지점을 표시 중" + "value" : "이 작업에서 외래 키 제약 조건 검사를 건너뜁니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yüklenen %2$@ satırın ilk %1$@ noktası gösteriliyor" + "value" : "Bu işlem için yabancı anahtar kısıtlaması denetimlerini atlar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang hiển thị %1$@ điểm đầu tiên trong %2$@ hàng đã tải" + "value" : "Bỏ qua kiểm tra ràng buộc khóa ngoại cho thao tác này" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示已加载 %2$@ 行中的前 %1$@ 个点" + "value" : "此操作将跳过外键约束检查" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示已載入 %2$@ 列中的前 %1$@ 個點" + "value" : "此操作會跳過外鍵約束檢查" } } } }, - "Shows a type icon before each object name in the sidebar. Turn it off for a plain list of names." : { + "Slash commands" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사이드바에서 각 객체 이름 앞에 유형 아이콘을 표시합니다. 이름만 있는 단순한 목록을 사용하려면 끄십시오." + "value" : "슬래시 명령" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kenar çubuğunda her nesne adının önünde bir tür simgesi gösterir. Sade bir ad listesi için kapatın." + "value" : "Eğik çizgi komutları" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiện biểu tượng loại trước mỗi tên đối tượng trong thanh bên. Tắt đi để có danh sách tên đơn thuần." + "value" : "Lệnh slash" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在侧边栏中每个对象名称前显示类型图标。关闭后只显示纯名称列表。" + "value" : "斜杠命令" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在側邊欄中每個物件名稱前顯示類型圖像。關閉後只顯示純名稱清單。" + "value" : "斜線命令" } } } }, - "Shows database object comments next to tables in the sidebar and in grid column headers." : { + "Slow" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사이드바의 테이블 옆과 그리드 열 머리글에 데이터베이스 객체 주석을 표시합니다." + "value" : "느림" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı nesne yorumlarını kenar çubuğundaki tabloların yanında ve tablo sütun başlıklarında gösterir." + "value" : "Slow" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hiển thị ghi chú của đối tượng cơ sở dữ liệu cạnh các bảng trong thanh bên và trên tiêu đề cột của lưới." + "value" : "Chậm" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在侧边栏的表旁边和数据网格列标题中显示数据库对象注释。" + "value" : "慢速" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在側邊欄的資料表旁與資料格欄位標題中顯示資料庫物件註解。" + "value" : "慢速" } } } }, - "Sidebar" : { + "Slow Queries" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사이드바" + "value" : "느린 쿼리" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sidebar" + "value" : "Yavaş Sorgular" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thanh bên" + "value" : "Truy vấn chậm" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "侧边栏" + "value" : "慢查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "側邊欄" + "value" : "緩慢查詢" } } } }, - "Sidebar as List" : { + "Slowest" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "목록형 사이드바" + "value" : "가장 느림" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sidebar'ı Liste Olarak Göster" + "value" : "En Yavaş" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thanh bên dạng danh sách" + "value" : "Chậm nhất" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "侧边栏显示为列表" + "value" : "最慢" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "側邊欄顯示為清單" + "value" : "最慢" } } } }, - "Sidebar as Tree" : { + "Small" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "트리형 사이드바" + "value" : "작게" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sidebar'ı Ağaç Olarak Göster" + "value" : "Small" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thanh bên dạng cây" + "value" : "Nhỏ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "侧边栏显示为树状" + "value" : "小" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "側邊欄顯示為樹狀" + "value" : "小" } } } }, - "Sidebar Layout" : { + "Smart SQL Editor" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사이드바 레이아웃" + "value" : "스마트 SQL 편집기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sidebar Düzeni" + "value" : "Akıllı SQL Düzenleyici" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bố cục thanh bên" + "value" : "Trình soạn SQL thông minh" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "侧边栏布局" + "value" : "智能 SQL 编辑器" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "側邊欄版面配置" + "value" : "智慧 SQL 編輯器" } } } }, - "Sidebar Panel" : { - "extractionState" : "stale", + "Smart value detection" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사이드바 패널" + "value" : "스마트 값 감지" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sidebar Panel" + "value" : "Akıllı değer algılama" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thanh bên" + "value" : "Nhận dạng giá trị thông minh" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "侧边栏" + "value" : "智能值识别" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "側邊欄" + "value" : "智慧值偵測" } } } }, - "Sign In" : { + "Smooth" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "로그인" + "value" : "부드럽게" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Giriş Yap" + "value" : "Smooth" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đăng nhập" + "value" : "Mượt" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "登录" + "value" : "平滑" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "登入" + "value" : "平滑" } } } }, - "Sign in to iCloud in System Settings to enable sync." : { + "Socket Path" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "동기화를 활성화하려면 시스템 설정에서 iCloud에 로그인하십시오." + "value" : "소켓 경로" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eşitlemeyi açmak için Sistem Ayarları'ndan iCloud'a giriş yapın." + "value" : "Soket Yolu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đăng nhập iCloud trong Cài đặt hệ thống để bật đồng bộ." + "value" : "Đường dẫn socket" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "请在系统设置中登录 iCloud 以启用同步。" + "value" : "Socket 路径" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "請在系統設定中登入 iCloud 以啟用同步。" + "value" : "Socket 路徑" } } } }, - "Sign in to iCloud to enable sync" : { + "Software Update" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "동기화를 활성화하려면 iCloud에 로그인하십시오" + "value" : "소프트웨어 업데이트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eşitlemeyi açmak için iCloud'a giriş yapın" + "value" : "Yazılım Güncellemesi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đăng nhập iCloud để bật đồng bộ" + "value" : "Cập nhật phần mềm" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "登录 iCloud 以启用同步" + "value" : "软件更新" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "登入 iCloud 以啟用同步" + "value" : "軟體更新" } } } }, - "Sign in to Microsoft Entra ID with your browser?" : { + "Some columns in this preset don't exist in the current table" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "브라우저에서 Microsoft Entra ID에 로그인하시겠습니까?" + "value" : "이 프리셋의 일부 열이 현재 테이블에 없습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Microsoft Entra ID'ye tarayıcınızla oturum açılsın mı?" + "value" : "Bu ön ayardaki bazı sütunlar mevcut tabloda yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đăng nhập Microsoft Entra ID bằng trình duyệt?" + "value" : "Một số cột trong bộ lọc không tồn tại trong bảng hiện tại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "要用浏览器登录 Microsoft Entra ID 吗?" + "value" : "此预设中的某些列在当前表中不存在" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "要用瀏覽器登入 Microsoft Entra ID 嗎?" + "value" : "此預設集中的某些欄位在目前資料表中不存在" } } } }, - "Sign in to use your ChatGPT subscription" : { + "Some passwords were not read. You can enter them in the connection editor after import." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "ChatGPT 구독을 사용하려면 로그인하십시오" + "value" : "일부 암호를 읽지 못했습니다. 가져온 후 연결 편집기에서 입력할 수 있습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "ChatGPT aboneliğinizi kullanmak için giriş yapın" + "value" : "Bazı parolalar okunamadı. İçe aktarma sonrasında bunları bağlantı düzenleyicisinde girebilirsiniz." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đăng nhập để dùng gói đăng ký ChatGPT của bạn" + "value" : "Một số mật khẩu không đọc được. Bạn có thể điền lại trong trình sửa kết nối sau khi nhập xong." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "登录以使用你的 ChatGPT 订阅" + "value" : "部分密码未能读取。导入后可在连接编辑器中输入。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "登入以使用你的 ChatGPT 訂閱" + "value" : "部分密碼未能讀取。你可以在匯入後於連線編輯器中輸入。" } } } }, - "Sign In with Browser…" : { + "Some tables have not been compared with the columns now chosen." : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "지금 선택한 열로 아직 비교하지 않은 테이블이 있습니다.", + "state" : "translated" + } + } + } + }, + "Some tabs have unsaved edits. Quitting will discard these changes." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "브라우저로 로그인…" + "value" : "일부 탭에 저장하지 않은 편집 내용이 있습니다. 종료하면 변경 사항이 폐기됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tarayıcıyla Giriş Yap…" + "value" : "Bazı sekmelerde kaydedilmemiş düzenlemeler var. Çıkmak bu değişiklikleri silecektir." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đăng nhập bằng trình duyệt…" + "value" : "Một số tab có chỉnh sửa chưa lưu. Thoát sẽ huỷ bỏ các thay đổi này." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "通过浏览器登录…" + "value" : "部分标签页有未保存的编辑。退出将丢弃这些更改。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "透過瀏覽器登入…" + "value" : "部分分頁有未儲存的編輯。結束將捨棄這些變更。" } } } }, - "Sign in with ChatGPT" : { + "Some values are set outside this file" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "ChatGPT로 로그인" + "value" : "일부 값은 이 파일 외부에서 설정됩니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "ChatGPT ile giriş yap" + "value" : "Bazı değerler bu dosyanın dışında ayarlanmış" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đăng nhập bằng ChatGPT" + "value" : "Một số giá trị được đặt bên ngoài tệp này" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "使用 ChatGPT 登录" + "value" : "部分值是在此文件之外设置的" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "使用 ChatGPT 登入" + "value" : "部分值是在此檔案之外設定的" } } } }, - "Sign in with Cursor" : { + "Some values come from Ruby code and were not read" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Cursor로 로그인" + "value" : "일부 값은 Ruby 코드에서 가져왔으며 읽지 못했습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Cursor ile giriş yap" + "value" : "Bazı değerler Ruby kodundan geliyor ve okunmadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đăng nhập bằng Cursor" + "value" : "Một số giá trị đến từ mã Ruby và không được đọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "使用 Cursor 登录" + "value" : "部分值来自 Ruby 代码,未被读取" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "使用 Cursor 登入" + "value" : "部分值來自 Ruby 程式碼,未被讀取" } } } }, - "Sign in with GitHub" : { + "Something went wrong (error %d). Try again in a moment." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "GitHub로 로그인" + "value" : "문제가 발생했습니다(오류 %d). 잠시 후 다시 시도하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "GitHub ile Oturum Aç" + "value" : "Bir hata oluştu (hata %d). Lütfen tekrar deneyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đăng nhập bằng GitHub" + "value" : "Đã xảy ra lỗi (mã %d). Vui lòng thử lại." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "使用 GitHub 登录" + "value" : "出错了(错误%d),请稍后重试。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "使用 GitHub 登入" + "value" : "發生錯誤(錯誤 %d)。請稍後再試。" } } } }, - "Sign in with xAI" : { + "Something went wrong (error %lld). Try again in a moment." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "xAI로 로그인" + "value" : "문제가 발생했습니다(오류 %lld). 잠시 후 다시 시도하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "xAI ile giriş yap" + "value" : "Bir sorun oluştu (hata %lld). Biraz sonra tekrar deneyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đăng nhập bằng xAI" + "value" : "Đã xảy ra lỗi (mã %lld). Vui lòng thử lại sau." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "使用 xAI 登录" + "value" : "出现问题(错误 %lld)。请稍后重试。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "使用 xAI 登入" + "value" : "發生錯誤(錯誤 %lld)。請稍後再試。" } } } }, - "Sign Out" : { + "Sort Ascending" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "로그아웃" + "value" : "오름차순 정렬" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Oturumu Kapat" + "value" : "Artan Sırala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đăng xuất" + "value" : "Sắp xếp tăng dần" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "退出登录" + "value" : "升序排列" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "登出" + "value" : "遞增排序" } } } }, - "Sign-in cancelled" : { + "Sort Descending" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "로그인이 취소되었습니다" + "value" : "내림차순 정렬" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Oturum açma iptal edildi" + "value" : "Azalan Sırala" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đăng nhập đã hủy" + "value" : "Sắp xếp giảm dần" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "登录已取消" + "value" : "降序排列" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "登入已取消" + "value" : "遞減排序" } } } }, - "Sign-in could not be verified. Please try again." : { + "Sorted ascending" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "로그인을 확인할 수 없습니다. 다시 시도하십시오." + "value" : "오름차순으로 정렬됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Giriş doğrulanamadı. Lütfen tekrar deneyin." + "value" : "Artan sıralı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể xác minh đăng nhập. Vui lòng thử lại." + "value" : "Đã sắp xếp tăng dần" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法验证登录。请重试。" + "value" : "升序排序" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法驗證登入。請再試一次。" + "value" : "已遞增排序" } } } }, - "Sign-in timed out" : { + "Sorted descending" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "로그인 시간이 초과되었습니다" + "value" : "내림차순으로 정렬됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Oturum açma zaman aşımına uğradı" + "value" : "Azalan sıralı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đăng nhập hết thời gian chờ" + "value" : "Đã sắp xếp giảm dần" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "登录超时" + "value" : "降序排序" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "登入逾時" + "value" : "已遞減排序" } } } }, - "Sign-in timed out. Please try again." : { + "Sorting will reload data and discard all unsaved changes." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "로그인 시간이 초과되었습니다. 다시 시도하십시오." + "value" : "정렬하면 데이터를 다시 불러오고 저장하지 않은 모든 변경 사항이 폐기됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Giriş zaman aşımına uğradı. Lütfen tekrar deneyin." + "value" : "Sıralama verileri yeniden yükler ve kaydedilmemiş tüm değişiklikleri siler." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đăng nhập đã hết thời gian chờ. Vui lòng thử lại." + "value" : "Sắp xếp sẽ tải lại dữ liệu và hủy tất cả thay đổi chưa lưu." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "登录超时。请重试。" + "value" : "排序将重新加载数据并丢弃所有未保存的更改。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "登入逾時。請再試一次。" + "value" : "排序將重新載入資料並捨棄所有未儲存的變更。" } } } }, - "Signed in" : { + "Source" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "로그인됨" + "value" : "소스" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Giriş yapıldı" + "value" : "Kaynak" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã đăng nhập" + "value" : "Nguồn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已登录" + "value" : "来源" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已登入" + "value" : "來源" } } } }, - "Signed In" : { + "Source:" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "로그인 완료" + "value" : "소스:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Giriş Yapıldı" + "value" : "Source:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã đăng nhập" + "value" : "Nguồn:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已登录" + "value" : "来源:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已登入" + "value" : "來源:" } } } }, - "Signed in as %@" : { + "Space" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 계정으로 로그인됨" + "value" : "공백" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ olarak oturum açıldı" + "value" : "Boşluk" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã đăng nhập với %@" + "value" : "Khoảng trắng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已登录为 %@" + "value" : "空格" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已登入為 %@" + "value" : "空格" } } } }, - "Signed in as %@ on the %@ plan." : { + "Spacing" : { + "extractionState" : "stale", "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Signed in as %1$@ on the %2$@ plan." - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@ 계정으로 로그인했습니다. 현재 %2$@ 요금제를 사용 중입니다." + "value" : "간격" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%2$@ planıyla %1$@ olarak oturum açıldı." + "value" : "Spacing" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã đăng nhập với tên %1$@ trên gói %2$@." + "value" : "Khoảng cách" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已以 %1$@ 身份登录,使用 %2$@ 方案。" + "value" : "间距" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已以 %1$@ 身分登入,使用 %2$@ 方案。" + "value" : "間距" } } } }, - "Signed in as %@." : { + "Spacious" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 계정으로 로그인했습니다." + "value" : "넓게" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ olarak oturum açıldı." + "value" : "Spacious" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã đăng nhập với tên %@." + "value" : "Rộng rãi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已以 %@ 身份登录。" + "value" : "宽松" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已以 %@ 身分登入。" + "value" : "寬鬆" } } } }, - "Signed in with Cursor" : { + "Split" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Cursor로 로그인됨" + "value" : "분할" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Cursor ile giriş yapıldı" + "value" : "Ayır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã đăng nhập bằng Cursor" + "value" : "Tách" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已使用 Cursor 登录" + "value" : "拆分" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已使用 Cursor 登入" + "value" : "拆分" } } } }, - "Signed in with xAI" : { + "Split Column…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "xAI로 로그인됨" + "value" : "열 분할…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "xAI ile oturum açıldı" + "value" : "Sütunu Ayır…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã đăng nhập bằng xAI" + "value" : "Tách cột…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已使用 xAI 登录" + "value" : "拆分列…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已使用 xAI 登入" + "value" : "拆分欄位…" } } } }, - "Signed in." : { + "Split each value into new columns at every match." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "로그인했습니다." + "value" : "일치할 때마다 각 값을 새 열로 분할합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Oturum açıldı." + "value" : "Her değeri, her eşleşmede yeni sütunlara ayırır." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã đăng nhập." + "value" : "Tách mỗi giá trị thành các cột mới tại mọi vị trí khớp." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已登录。" + "value" : "在每个匹配处将每个值拆分到新列中。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已登入。" + "value" : "在每個符合處將每個值拆分到新欄位中。" } } } }, - "Signing in…" : { + "Split mode" : { + "comment" : "Accessibility label for the segmented control in the alert that allows the user to choose between using a delimiter or a regex to split the values in a column.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "로그인 중…" + "value" : "분할 모드" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Oturum açılıyor…" + "value" : "Bölme modu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang đăng nhập…" + "value" : "Chế độ tách" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在登录…" + "value" : "拆分方式" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在登入…" + "value" : "分割方式" } } } }, - "Signs in to Cloudflare Access once and caches the token, so connecting doesn't open a browser." : { + "Split “%@”" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Cloudflare Access에 한 번 로그인하고 토큰을 캐시하므로 연결할 때 브라우저가 열리지 않습니다." + "value" : "“%@” 분할" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Cloudflare Access'e bir kez giriş yapar ve jetonu önbelleğe alır, böylece bağlanırken tarayıcı açılmaz." + "value" : "“%@” ayrılsın" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đăng nhập Cloudflare Access một lần và lưu token vào bộ nhớ đệm, nên khi kết nối sẽ không mở trình duyệt." + "value" : "Tách “%@”" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "登录 Cloudflare Access 一次并缓存令牌,连接时不再打开浏览器。" + "value" : "拆分“%@”" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "登入 Cloudflare Access 一次並快取權杖,這樣連線時就不會開啟瀏覽器。" + "value" : "拆分「%@」" } } } }, - "Silent" : { + "Sponsor" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "알림 없음" + "value" : "후원" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Silent" + "value" : "Sponsor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Im lặng" + "value" : "Tài trợ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "静默" + "value" : "赞助" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "靜音" + "value" : "贊助" } } } }, - "Single Quote '" : { + "Sponsor TablePro" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "작은따옴표 '" + "value" : "TablePro 후원" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tek Tırnak '" + "value" : "Sponsor TablePro" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dấu nháy đơn '" + "value" : "Tài trợ TablePro" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "单引号 '" + "value" : "赞助 TablePro" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "單引號 '" + "value" : "贊助 TablePro" } } } }, - "Single-clicking a table opens a temporary tab that gets replaced on next click." : { + "Standalone" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블을 한 번 클릭하면 임시 탭에서 열리며, 다음 테이블을 클릭하면 대체됩니다." + "value" : "단독 실행" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bir tabloya tek tıklamak, sonraki tıklamada yerini bırakan geçici bir sekme açar." + "value" : "Bağımsız" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhấp một lần vào bảng sẽ mở tab tạm thời, tab này sẽ được thay thế khi nhấp tiếp." + "value" : "Độc lập" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "单击表时打开临时标签页,下次点击时会被替换。" + "value" : "单机" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "按一下資料表會開啟暫時分頁,下次按一下時會被取代。" + "value" : "單機" } } } }, - "Size" : { + "Start recording queries again" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "크기" + "value" : "쿼리 기록 재개" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Boyut" + "value" : "Sorguları yeniden kaydetmeye başla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kích thước" + "value" : "Bắt đầu ghi lại truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "大小" + "value" : "重新开始记录查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "大小" + "value" : "重新開始記錄查詢" } } } }, - "SIZE" : { + "Starter" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "크기" + "value" : "Starter" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SIZE" + "value" : "Starter" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "KÍCH THƯỚC" + "value" : "Starter" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "大小" + "value" : "Starter" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "大小" + "value" : "Starter" } } } }, - "Size All Columns to Fit" : { + "Starting service…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 열을 내용에 맞게 조절" + "value" : "서비스 시작 중…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tüm Sütunları Sığdır" + "value" : "Servis başlatılıyor…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tự điều chỉnh tất cả cột" + "value" : "Đang khởi động dịch vụ…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "自动调整所有列宽" + "value" : "正在启动服务…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "自動調整所有欄位寬度" + "value" : "正在啟動服務…" } } } }, - "Size to Fit" : { + "Starting…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "내용에 맞게 조절" + "value" : "시작 중…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sığdır" + "value" : "Başlatılıyor…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tự điều chỉnh" + "value" : "Đang khởi động…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "自动调整" + "value" : "正在启动…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "自動調整大小" + "value" : "正在啟動…" } } } }, - "Size:" : { - "extractionState" : "stale", + "Starts and stops `cloudflared access tcp` with this connection and routes it through a local port." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "크기:" + "value" : "이 연결과 함께 `cloudflared access tcp`를 시작 및 중지하고 로컬 포트를 통해 라우팅합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Size:" + "value" : "`cloudflared access tcp` komutunu bu bağlantıyla birlikte başlatıp durdurur ve bağlantıyı yerel bir port üzerinden yönlendirir." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kích thước:" + "value" : "Khởi động và dừng `cloudflared access tcp` cùng kết nối này và định tuyến qua một cổng cục bộ." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "大小:" + "value" : "随此连接启动和停止 `cloudflared access tcp`,并通过本地端口路由。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "大小:" + "value" : "隨此連線啟動和停止 `cloudflared access tcp`,並透過本機連接埠路由。" } } } }, - "Skip" : { + "Starts and stops the Cloud SQL Auth Proxy with this connection and routes it through a local port." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "건너뛰기" + "value" : "이 연결과 함께 Cloud SQL Auth Proxy를 시작 및 중지하고 로컬 포트를 통해 라우팅합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Skip" + "value" : "Cloud SQL Auth Proxy'yi bu bağlantıyla birlikte başlatıp durdurur ve bağlantıyı yerel bir port üzerinden yönlendirir." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bỏ qua" + "value" : "Khởi động và dừng Cloud SQL Auth Proxy cùng với kết nối này, đồng thời định tuyến qua một cổng cục bộ." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "跳过" + "value" : "随此连接启动和停止 Cloud SQL Auth Proxy,并通过本地端口转发。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "略過" + "value" : "隨此連線啟動與停止 Cloud SQL Auth Proxy,並透過本機連接埠轉送。" } } } }, - "Skip and continue" : { - - }, - "Skip TLS Verification" : { + "Startup Commands" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "TLS 검증 건너뛰기" + "value" : "시작 명령" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "TLS Doğrulamasını Atla" + "value" : "Başlangıç Komutları" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bỏ qua xác minh TLS" + "value" : "Lệnh khởi động" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "跳过 TLS 验证" + "value" : "启动命令" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "略過 TLS 驗證" + "value" : "啟動指令" } } } }, - "Skips foreign key constraint checks for this operation" : { - "extractionState" : "stale", + "Startup SQL" : { + "comment" : "A section header for the startup SQL commands of a connection.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 작업에서 외래 키 제약 조건 검사를 건너뜁니다" + "value" : "시작 SQL" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu işlem için yabancı anahtar kısıtlaması denetimlerini atlar" + "value" : "Başlangıç SQL" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bỏ qua kiểm tra ràng buộc khóa ngoại cho thao tác này" + "value" : "SQL khởi động" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此操作将跳过外键约束检查" + "value" : "启动 SQL" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此操作會跳過外鍵約束檢查" + "value" : "啟動 SQL" } } } }, - "Slash commands" : { + "State" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "슬래시 명령" + "value" : "상태" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eğik çizgi komutları" + "value" : "Durum" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lệnh slash" + "value" : "Trạng thái" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "斜杠命令" + "value" : "状态" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "斜線命令" + "value" : "狀態" } } } }, - "Slow" : { - "extractionState" : "stale", + "Statement %1$d/%2$d failed: %3$@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "느림" + "value" : "%2$d개 중 %1$d번째 문 실패: %3$@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Slow" + "value" : "%1$d/%2$d numaralı ifade başarısız oldu: %3$@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chậm" + "value" : "Câu lệnh %1$d/%2$d thất bại: %3$@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "慢速" + "value" : "第 %1$d/%2$d 条语句失败:%3$@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "慢速" + "value" : "第 %1$d/%2$d 條陳述式失敗:%3$@" } } } }, - "Slow Queries" : { + "Statement %lld" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "느린 쿼리" + "value" : "SQL 문 %lld" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yavaş Sorgular" + "value" : "ifade %lld" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Truy vấn chậm" + "value" : "Câu lệnh %lld" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "慢查询" + "value" : "语句 %lld" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "緩慢查詢" + "value" : "陳述式 %lld" } } } }, - "Slow queries the server recorded" : { - - }, - "Slowest" : { + "Statement %lld of %lld" : { + "extractionState" : "stale", "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Statement %1$lld of %2$lld" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "가장 느림" + "value" : "전체 %2$lld개 중 %1$lld번째 SQL 문" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "En Yavaş" + "value" : "ifade %lld / %lld" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chậm nhất" + "value" : "Câu lệnh %1$lld / %2$lld" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "最慢" + "value" : "语句 %lld / %lld" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "最慢" + "value" : "陳述式 %1$lld / %2$lld" } } } }, - "Small" : { + "Statement:" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "작게" + "value" : "SQL 문:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Small" + "value" : "Statement:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhỏ" + "value" : "Câu lệnh:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "小" + "value" : "语句:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "小" + "value" : "陳述式:" } } } }, - "Smart SQL Editor" : { + "Statements that already ran stay applied to %@. Compare again to see where it stands." : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "이미 실행된 구문은 %@에 적용된 상태로 남습니다. 현재 상태를 보려면 다시 비교하십시오.", + "state" : "translated" + } + } + } + }, + "Status" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "스마트 SQL 편집기" + "value" : "상태" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Akıllı SQL Düzenleyici" + "value" : "Durum" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trình soạn SQL thông minh" + "value" : "Trạng thái" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "智能 SQL 编辑器" + "value" : "状态" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "智慧 SQL 編輯器" + "value" : "狀態" } } } }, - "Smart value detection" : { + "Status Colors" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "스마트 값 감지" + "value" : "상태 색상" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Akıllı değer algılama" + "value" : "Durum Renkleri" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhận dạng giá trị thông minh" + "value" : "Màu trạng thái" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "智能值识别" + "value" : "状态颜色" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "智慧值偵測" + "value" : "狀態顏色" } } } }, - "Smooth" : { + "Status Dot" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "부드럽게" + "value" : "상태 표시점" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Smooth" + "value" : "Status Dot" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mượt" + "value" : "Chấm trạng thái" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "平滑" + "value" : "状态指示点" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "平滑" + "value" : "狀態指示點" } } } }, - "Socket Path" : { + "Status:" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Status:" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "소켓 경로" + "value" : "상태:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Soket Yolu" + "value" : "Durum:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đường dẫn socket" + "value" : "Trạng thái:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Socket 路径" + "value" : "状态:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Socket 路徑" + "value" : "狀態:" } } } }, - "SOCKS Proxy" : { + "Status: active" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SOCKS 프록시" + "value" : "상태: 활성" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SOCKS Proxy" + "value" : "Durum: aktif" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "SOCKS Proxy" + "value" : "Trạng thái: đang hoạt động" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SOCKS 代理" + "value" : "状态:活动" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SOCKS 代理" + "value" : "狀態:使用中" } } } }, - "SOCKS proxy disconnected. Click to reconnect." : { + "Status: error" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SOCKS 프록시 연결이 끊어졌습니다. 클릭하여 다시 연결하십시오." + "value" : "상태: 오류" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SOCKS proxy bağlantısı kesildi. Yeniden bağlanmak için tıklayın." + "value" : "Durum: hata" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "SOCKS proxy đã ngắt kết nối. Nhấn để kết nối lại." + "value" : "Trạng thái: lỗi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SOCKS 代理已断开。点按可重新连接。" + "value" : "状态:错误" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SOCKS 代理已中斷連線。點按即可重新連線。" + "value" : "狀態:錯誤" } } } }, - "SOCKS proxy host is required" : { + "Status: expired" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SOCKS 프록시 호스트가 필요합니다" + "value" : "상태: 만료됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SOCKS proxy sunucusu gerekli" + "value" : "Durum: süresi dolmuş" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cần nhập máy chủ SOCKS proxy" + "value" : "Trạng thái: đã hết hạn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "需要填写 SOCKS 代理主机" + "value" : "状态:已过期" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "需要填寫 SOCKS 代理主機" + "value" : "狀態:已過期" } } } }, - "SOCKS proxy port must be between 1 and 65535" : { + "Status: failed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SOCKS 프록시 포트는 1~65535 사이여야 합니다" + "value" : "상태: 실패" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SOCKS proxy portu 1 ile 65535 arasında olmalı" + "value" : "Durum: başarısız" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cổng SOCKS proxy phải nằm trong khoảng 1 đến 65535" + "value" : "Trạng thái: thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SOCKS 代理端口必须在 1 到 65535 之间" + "value" : "状态:失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SOCKS 代理連接埠必須介於 1 到 65535 之間" + "value" : "狀態:失敗" } } } }, - "Software Update" : { + "Status: revoked" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "소프트웨어 업데이트" + "value" : "상태: 철회됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yazılım Güncellemesi" + "value" : "Durum: iptal edildi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cập nhật phần mềm" + "value" : "Trạng thái: đã thu hồi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "软件更新" + "value" : "状态:已撤销" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "軟體更新" + "value" : "狀態:已撤銷" } } } }, - "Some columns in this preset don't exist in the current table" : { + "Status: running" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 프리셋의 일부 열이 현재 테이블에 없습니다" + "value" : "상태: 실행 중" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu ön ayardaki bazı sütunlar mevcut tabloda yok" + "value" : "Durum: çalışıyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Một số cột trong bộ lọc không tồn tại trong bảng hiện tại" + "value" : "Trạng thái: đang chạy" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此预设中的某些列在当前表中不存在" + "value" : "状态:运行中" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此預設集中的某些欄位在目前資料表中不存在" + "value" : "狀態:執行中" } } } }, - "Some passwords were not read. You can enter them in the connection editor after import." : { + "Status: starting" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "일부 암호를 읽지 못했습니다. 가져온 후 연결 편집기에서 입력할 수 있습니다." + "value" : "상태: 시작 중" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bazı parolalar okunamadı. İçe aktarma sonrasında bunları bağlantı düzenleyicisinde girebilirsiniz." + "value" : "Durum: başlatılıyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Một số mật khẩu không đọc được. Bạn có thể điền lại trong trình sửa kết nối sau khi nhập xong." + "value" : "Trạng thái: đang khởi động" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "部分密码未能读取。导入后可在连接编辑器中输入。" + "value" : "状态:启动中" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "部分密碼未能讀取。你可以在匯入後於連線編輯器中輸入。" + "value" : "狀態:啟動中" } } } }, - "Some tables have not been compared with the columns now chosen." : { - - }, - "Some tabs have unsaved edits. Quitting will discard these changes." : { + "Status: stopped" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "일부 탭에 저장하지 않은 편집 내용이 있습니다. 종료하면 변경 사항이 폐기됩니다." + "value" : "상태: 중지됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bazı sekmelerde kaydedilmemiş düzenlemeler var. Çıkmak bu değişiklikleri silecektir." + "value" : "Durum: durduruldu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Một số tab có chỉnh sửa chưa lưu. Thoát sẽ huỷ bỏ các thay đổi này." + "value" : "Trạng thái: đã dừng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "部分标签页有未保存的编辑。退出将丢弃这些更改。" + "value" : "状态:已停止" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "部分分頁有未儲存的編輯。結束將捨棄這些變更。" + "value" : "狀態:已停止" } } } }, - "Some values are set outside this file" : { + "Status: success" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "일부 값은 이 파일 외부에서 설정됩니다" + "value" : "상태: 성공" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bazı değerler bu dosyanın dışında ayarlanmış" + "value" : "Durum: başarılı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Một số giá trị được đặt bên ngoài tệp này" + "value" : "Trạng thái: thành công" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "部分值是在此文件之外设置的" + "value" : "状态:成功" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "部分值是在此檔案之外設定的" + "value" : "狀態:成功" } } } }, - "Some values come from Ruby code and were not read" : { + "Status: warning" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "일부 값은 Ruby 코드에서 가져왔으며 읽지 못했습니다" + "value" : "상태: 경고" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bazı değerler Ruby kodundan geliyor ve okunmadı" + "value" : "Durum: uyarı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Một số giá trị đến từ mã Ruby và không được đọc" + "value" : "Trạng thái: cảnh báo" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "部分值来自 Ruby 代码,未被读取" + "value" : "状态:警告" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "部分值來自 Ruby 程式碼,未被讀取" + "value" : "狀態:警告" } } } }, - "Something went wrong (error %d). Try again in a moment." : { + "Step" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "문제가 발생했습니다(오류 %d). 잠시 후 다시 시도하십시오." + "value" : "단계" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bir hata oluştu (hata %d). Lütfen tekrar deneyin." + "value" : "Adım" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã xảy ra lỗi (mã %d). Vui lòng thử lại." + "value" : "Bước" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "出错了(错误%d),请稍后重试。" + "value" : "步骤" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "發生錯誤(錯誤 %d)。請稍後再試。" + "value" : "步驟" } } } }, - "Something went wrong (error %lld). Try again in a moment." : { + "Steps to Reproduce" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "문제가 발생했습니다(오류 %lld). 잠시 후 다시 시도하십시오." + "value" : "재현 단계" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bir sorun oluştu (hata %lld). Biraz sonra tekrar deneyin." + "value" : "Yeniden Üretme Adımları" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã xảy ra lỗi (mã %lld). Vui lòng thử lại sau." + "value" : "Các bước tái hiện" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "出现问题(错误 %lld)。请稍后重试。" + "value" : "重现步骤" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "發生錯誤(錯誤 %lld)。請稍後再試。" + "value" : "重現步驟" } } } }, - "Sort Ascending" : { + "Stop" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "오름차순 정렬" + "value" : "중지" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Artan Sırala" + "value" : "Stop" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sắp xếp tăng dần" + "value" : "Dừng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "升序排列" + "value" : "停止" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "遞增排序" + "value" : "停止" } } } }, - "Sort columns in priority order" : { - + "Stop Comparison" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "비교 중지", + "state" : "translated" + } + } + } }, - "Sort Descending" : { + "Stop Export?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "내림차순 정렬" + "value" : "내보내기를 중지하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Azalan Sırala" + "value" : "Dışa Aktarma Durdurulsun mu?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sắp xếp giảm dần" + "value" : "Dừng xuất?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "降序排列" + "value" : "停止导出?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "遞減排序" + "value" : "停止匯出?" } } } }, - "Sort direction (default ascending)" : { - - }, - "Sorted ascending" : { + "Stop Generating" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "오름차순으로 정렬됨" + "value" : "생성 중지" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Artan sıralı" + "value" : "Üretmeyi Durdur" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã sắp xếp tăng dần" + "value" : "Dừng tạo phản hồi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "升序排序" + "value" : "停止生成" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已遞增排序" + "value" : "停止生成" } } } }, - "Sorted descending" : { + "Stop Trusting" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "내림차순으로 정렬됨" + "value" : "신뢰 해제" } - }, - "tr" : { + } + } + }, + "Stop and Close" : { + "localizations" : { + "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "Azalan sıralı" + "value" : "중지하고 닫기", + "state" : "translated" } - }, - "vi" : { + } + } + }, + "Stop and Quit" : { + "localizations" : { + "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "Đã sắp xếp giảm dần" + "value" : "중지하고 종료", + "state" : "translated" } - }, - "zh-Hans" : { + } + } + }, + "Stop and keep what ran" : { + "localizations" : { + "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "降序排序" + "value" : "중지하고 실행된 내용 유지", + "state" : "translated" } - }, - "zh-Hant" : { + } + } + }, + "Stop and roll back" : { + "localizations" : { + "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "已遞減排序" + "value" : "중지하고 롤백", + "state" : "translated" } } } }, - "Sorting will reload data and discard all unsaved changes." : { + "Stop recording queries on this Mac" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "정렬하면 데이터를 다시 불러오고 저장하지 않은 모든 변경 사항이 폐기됩니다." + "value" : "이 Mac에서 쿼리 기록 중지" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sıralama verileri yeniden yükler ve kaydedilmemiş tüm değişiklikleri siler." + "value" : "Bu Mac'te sorgu kaydını durdur" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sắp xếp sẽ tải lại dữ liệu và hủy tất cả thay đổi chưa lưu." + "value" : "Ngừng ghi truy vấn trên máy Mac này" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "排序将重新加载数据并丢弃所有未保存的更改。" + "value" : "停止在这台 Mac 上记录查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "排序將重新載入資料並捨棄所有未儲存的變更。" + "value" : "停止在這台 Mac 上記錄查詢" } } } }, - "source" : { - + "Stop trusting %@?" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@에 대한 신뢰를 해제하시겠습니까?" + } + } + } }, - "Source" : { + "Stop trusting this developer?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "소스" + "value" : "이 개발자에 대한 신뢰를 해제하시겠습니까?" + } + } + } + }, + "Stopped" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "중지됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kaynak" + "value" : "Durduruldu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nguồn" + "value" : "Đã dừng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "来源" + "value" : "已停止" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "來源" + "value" : "已停止" } } } }, - "Source Unavailable" : { - - }, - "Source:" : { - "extractionState" : "stale", + "Storage engine" : { "localizations" : { "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "소스:" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "Source:" + "value" : "스토리지 엔진", + "state" : "translated" } - }, - "vi" : { + } + } + }, + "Storage engine change" : { + "localizations" : { + "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "Nguồn:" + "value" : "스토리지 엔진 변경", + "state" : "translated" } - }, - "zh-Hans" : { + } + } + }, + "Storage engine differs: %@ on source, %@ on target." : { + "localizations" : { + "en" : { "stringUnit" : { - "state" : "translated", - "value" : "来源:" + "state" : "new", + "value" : "Storage engine differs: %1$@ on source, %2$@ on target." } }, - "zh-Hant" : { + "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "來源:" + "value" : "스토리지 엔진이 다릅니다. 원본은 %@, 대상은 %@입니다.", + "state" : "translated" } } } }, - "Space" : { + "Stored in the macOS Keychain and written to a temporary file only while the proxy runs." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "공백" + "value" : "macOS 키체인에 저장되며, 프록시가 실행되는 동안에만 임시 파일에 기록됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Boşluk" + "value" : "macOS Keychain'de saklanır ve yalnızca proxy çalışırken geçici bir dosyaya yazılır." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khoảng trắng" + "value" : "Được lưu trong macOS Keychain và chỉ ghi ra tệp tạm khi proxy đang chạy." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "空格" + "value" : "保存在 macOS 钥匙串中,仅在代理运行期间写入临时文件。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "空格" + "value" : "儲存在 macOS 鑰匙圈中,僅在代理執行期間寫入暫存檔案。" } } } }, - "Spacing" : { - "extractionState" : "stale", + "Streaming failed: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "간격" + "value" : "스트리밍 실패: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Spacing" + "value" : "Akış başarısız: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khoảng cách" + "value" : "Phát trực tuyến thất bại: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "间距" + "value" : "流式传输失败:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "間距" + "value" : "串流失敗:%@" } } } }, - "Spacious" : { + "String" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "넓게" + "value" : "문자열" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Spacious" + "value" : "String" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Rộng rãi" + "value" : "Chuỗi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "宽松" + "value" : "字符串" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "寬鬆" + "value" : "字串" } } } }, - "Split" : { + "Structure" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "분할" + "value" : "구조" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ayır" + "value" : "Structure" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tách" + "value" : "Cấu trúc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "拆分" + "value" : "结构" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "拆分" + "value" : "結構" } } } }, - "Split “%@”" : { + "Structure Changes" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "“%@” 분할" + "value" : "구조 변경 사항" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "“%@” ayrılsın" + "value" : "Yapı Değişiklikleri" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tách “%@”" + "value" : "Thay đổi cấu trúc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "拆分“%@”" + "value" : "结构更改" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "拆分「%@」" + "value" : "結構變更" } } } }, - "Split Column…" : { + "Structure Comparison" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "구조 비교", + "state" : "translated" + } + } + } + }, + "Structure sync needs matching database types. %@ and %@ can be compared, but no script is generated." : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Structure sync needs matching database types. %1$@ and %2$@ can be compared, but no script is generated." + } + }, + "ko" : { + "stringUnit" : { + "value" : "구조 동기화에는 같은 데이터베이스 타입이 필요합니다. %@과(와) %@은(는) 비교할 수 있지만 스크립트는 생성되지 않습니다.", + "state" : "translated" + } + } + } + }, + "Structure, Drop, and Data options are configured per table in the table list." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열 분할…" + "value" : "구조, 삭제 및 데이터 옵션은 테이블 목록에서 각 테이블별로 구성합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sütunu Ayır…" + "value" : "Structure, Drop, and Data options are configured per table in the table list." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tách cột…" + "value" : "Tùy chọn Cấu trúc, Xóa và Dữ liệu được cấu hình cho từng bảng trong danh sách bảng." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "拆分列…" + "value" : "结构、删除和数据选项在表列表中按表单独配置。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "拆分欄位…" + "value" : "結構、刪除與資料選項會在資料表清單中針對每個資料表個別設定。" } } } }, - "Split each value into new columns at every match." : { + "Structured data format. Ideal for APIs and web applications." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "일치할 때마다 각 값을 새 열로 분할합니다." + "value" : "구조화된 데이터 형식입니다. API와 웹 애플리케이션에 적합합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Her değeri, her eşleşmede yeni sütunlara ayırır." + "value" : "Yapılandırılmış veri biçimi. API'ler ve web uygulamaları için ideal." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tách mỗi giá trị thành các cột mới tại mọi vị trí khớp." + "value" : "Định dạng dữ liệu có cấu trúc. Lý tưởng cho API và ứng dụng web." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在每个匹配处将每个值拆分到新列中。" + "value" : "结构化数据格式。适用于 API 和 Web 应用。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在每個符合處將每個值拆分到新欄位中。" + "value" : "結構化資料格式。適合用於 API 與網頁應用程式。" } } } }, - "Split mode" : { - "comment" : "Accessibility label for the segmented control in the alert that allows the user to choose between using a delimiter or a regex to split the values in a column.", - "isCommentAutoGenerated" : true, + "Submit" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "분할 모드" + "value" : "제출" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bölme modu" + "value" : "Gönder" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chế độ tách" + "value" : "Gửi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "拆分方式" + "value" : "提交" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "分割方式" + "value" : "提交" } } } }, - "Sponsor" : { + "Submit Another" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "후원" + "value" : "다른 항목 제출" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sponsor" + "value" : "Bir Tane Daha Gönder" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tài trợ" + "value" : "Gửi tiếp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "赞助" + "value" : "提交另一个" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "贊助" + "value" : "再提交一筆" } } } }, - "Sponsor TablePro" : { + "Submitting..." : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro 후원" + "value" : "제출 중..." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sponsor TablePro" + "value" : "Gönderiliyor..." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tài trợ TablePro" + "value" : "Đang gửi..." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "赞助 TablePro" + "value" : "正在提交…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "贊助 TablePro" + "value" : "正在提交…" } } } }, - "SQL" : { + "Succeeded" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SQL" + "value" : "성공" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SQL" + "value" : "Başarılı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "SQL" + "value" : "Thành công" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SQL" + "value" : "成功" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SQL" + "value" : "成功" } } } }, - "SQL commands to run after connecting, e.g. SET time_zone = 'Asia/Ho_Chi_Minh'. One per line or separated by semicolons." : { + "Success" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 후 실행할 SQL 명령입니다(예: SET time_zone = 'Asia/Ho_Chi_Minh'). 한 줄에 하나씩 입력하거나 세미콜론으로 구분하십시오." + "value" : "성공" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlandıktan sonra çalıştırılacak SQL komutları, örneğin SET time_zone = 'Asia/Ho_Chi_Minh'. Her satıra bir tane yazın veya noktalı virgülle ayırın." + "value" : "Başarılı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Các lệnh SQL chạy sau khi kết nối, ví dụ SET time_zone = 'Asia/Ho_Chi_Minh'. Mỗi dòng một lệnh hoặc phân cách bằng dấu chấm phẩy." + "value" : "Thành công" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接后执行的 SQL 命令,例如 SET time_zone = 'Asia/Ho_Chi_Minh'。每行一条或用分号分隔。" + "value" : "成功" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線後執行的 SQL 指令,例如 SET time_zone = 'Asia/Ho_Chi_Minh'。每行一條或以分號分隔。" + "value" : "成功" } } } }, - "SQL Dialect" : { - "extractionState" : "stale", + "Suggest optimizations for the current query" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SQL 방언" + "value" : "현재 쿼리의 최적화 제안" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SQL Dialect" + "value" : "Geçerli sorgu için optimizasyon öner" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phương ngữ SQL" + "value" : "Gợi ý tối ưu cho truy vấn hiện tại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SQL 方言" + "value" : "为当前查询提供优化建议" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SQL 方言" + "value" : "為目前的查詢提供最佳化建議" } } } }, - "SQL dialect for %@ is not available. The plugin may not be installed or loaded." : { + "Suggested Actions" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@용 SQL 방언을 사용할 수 없습니다. 플러그인이 설치되지 않았거나 로드되지 않았을 수 있습니다." + "value" : "제안된 작업" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ için SQL diyalekti kullanılamıyor. Eklenti kurulmamış veya yüklenmemiş olabilir." + "value" : "Önerilen İşlemler" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có dialect SQL cho %@. Plugin có thể chưa được cài đặt hoặc tải." + "value" : "Hành động gợi ý" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 的 SQL 方言不可用。插件可能未安装或未加载。" + "value" : "建议的操作" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 的 SQL 方言無法使用。外掛可能尚未安裝或載入。" + "value" : "建議的操作" } } } }, - "SQL Editor" : { + "Summary" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "요약", + "state" : "translated" + } + } + } + }, + "Suspended" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SQL 편집기" + "value" : "일시 중단됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SQL Düzenleyici" + "value" : "Suspended" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trình soạn thảo SQL" + "value" : "Tạm ngưng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SQL 编辑器" + "value" : "已暂停" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SQL 編輯器" + "value" : "已暫停" } } } }, - "SQL Functions" : { + "Swap" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "바꾸기", + "state" : "translated" + } + } + } + }, + "Swap Source and Target" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "원본과 대상 바꾸기", + "state" : "translated" + } + } + } + }, + "Switch" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SQL 함수" + "value" : "전환" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SQL Fonksiyonları" + "value" : "Değiştir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hàm SQL" + "value" : "Chuyển" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SQL 函数" + "value" : "切换" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SQL 函式" + "value" : "切換" } } } }, - "SQL import is not supported for %@ connections." : { - "extractionState" : "stale", + "Switch %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 연결에서는 SQL 가져오기를 지원하지 않습니다." + "value" : "%@ 전환" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ bağlantıları için SQL içe aktarma desteklenmiyor." + "value" : "%@ Değiştir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập SQL không được hỗ trợ cho kết nối %@." + "value" : "Chuyển %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "不支持对 %@ 连接进行 SQL 导入。" + "value" : "切换 %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 連線不支援 SQL 匯入。" + "value" : "切換 %@" } } } }, - "SQL INSERT statements. Use to recreate data in another database." : { + "Switch Connection" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SQL INSERT 문입니다. 다른 데이터베이스에 데이터를 다시 생성할 때 사용합니다." + "value" : "연결 전환" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SQL INSERT ifadeleri. Başka bir veritabanında veri yeniden oluşturmak için kullanın." + "value" : "Bağlantı Değiştir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Câu lệnh SQL INSERT. Dùng để tạo lại dữ liệu trong cơ sở dữ liệu khác." + "value" : "Chuyển kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SQL INSERT 语句。用于在其他数据库中重建数据。" + "value" : "切换连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SQL INSERT 陳述式。用於在其他資料庫中重建資料。" + "value" : "切換連線" } } } }, - "SQL is too long: %d characters (limit %d)" : { + "Switch Connection (⌘⌥C)" : { + "extractionState" : "stale", "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "SQL is too long: %1$d characters (limit %2$d)" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SQL이 너무 깁니다: %1$d자(제한: %2$d자)" + "value" : "연결 전환 (⌘⌥C)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SQL çok uzun: %d karakter (sınır %d)" + "value" : "Switch Connection (⌘⌥C)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "SQL quá dài: %d ký tự (giới hạn %d)" + "value" : "Chuyển kết nối (⌘⌥C)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SQL 过长:%d 个字符(上限 %d)" + "value" : "切换连接 (⌘⌥C)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SQL 過長:%1$d 個字(上限 %2$d)" + "value" : "切換連線 (⌘⌥C)" } } } }, - "SQL or NoSQL query text" : { - "extractionState" : "stale", + "Switch Connection…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SQL 또는 NoSQL 쿼리 텍스트" + "value" : "연결 전환…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SQL veya NoSQL sorgu metni" + "value" : "Bağlantı Değiştir…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nội dung truy vấn SQL hoặc NoSQL" + "value" : "Chuyển kết nối…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SQL 或 NoSQL 查询文本" + "value" : "切换连接…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SQL 或 NoSQL 查詢文字" + "value" : "切換連線…" } } } }, - "SQL Preview" : { + "Switch Database" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SQL 미리보기" + "value" : "데이터베이스 전환" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SQL Önizleme" + "value" : "Veritabanı Değiştir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xem trước SQL" + "value" : "Chuyển cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SQL 预览" + "value" : "切换数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SQL 預覽" + "value" : "切換資料庫" } } } }, - "SQL Query" : { + "Switch Database (⌘K)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SQL 쿼리" + "value" : "데이터베이스 전환 (⌘K)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SQL Sorgusu" + "value" : "Switch Database (⌘K)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Truy vấn SQL" + "value" : "Chuyển cơ sở dữ liệu (⌘K)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SQL 查询" + "value" : "切换数据库 (⌘K)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SQL 查詢" + "value" : "切換資料庫 (⌘K)" } } } }, - "SQL query editor" : { + "Switch Failed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SQL 쿼리 편집기" + "value" : "전환 실패" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SQL sorgu düzenleyicisi" + "value" : "Geçiş Başarısız Oldu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trình soạn truy vấn SQL" + "value" : "Chuyển thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SQL 查询编辑器" + "value" : "切换失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SQL 查詢編輯器" + "value" : "切換失敗" } } } }, - "SQL query to export results from" : { - "extractionState" : "stale", + "Switch First Row Between Header and Data" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "결과를 내보낼 SQL 쿼리" + "value" : "첫 번째 행을 머리글과 데이터 간에 전환" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sonuçları dışa aktarılacak SQL sorgusu" + "value" : "İlk Satırı Başlık ve Veri Arasında Değiştir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Truy vấn SQL để xuất kết quả" + "value" : "Chuyển hàng đầu giữa tiêu đề và dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "要导出结果的 SQL 查询" + "value" : "在标题行与数据行之间切换第一行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "要匯出結果的 SQL 查詢" + "value" : "在標題列與資料列之間切換第一列" } } } }, - "SQL Server" : { - "extractionState" : "stale", + "Switch First Row Between Header/Data" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SQL Server" + "value" : "첫 번째 행을 머리글/데이터 간에 전환" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SQL Server" + "value" : "İlk Satırı Başlık/Veri Arasında Değiştir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "SQL Server" + "value" : "Chuyển dòng đầu giữa tiêu đề và dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SQL Server" + "value" : "将首行在表头与数据之间切换" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SQL Server" + "value" : "將首列在標題與資料之間切換" } } } }, - "SQL Server connections use the system trust store. Per-connection CA and client certificate paths are not supported by FreeTDS dblib; configure them in `freetds.conf` if you need a custom trust anchor." : { + "Switch Schema" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SQL Server 연결은 시스템 신뢰 저장소를 사용합니다. FreeTDS dblib은 연결별 CA 및 클라이언트 인증서 경로를 지원하지 않습니다. 사용자 지정 신뢰 앵커가 필요한 경우 `freetds.conf`에서 구성하십시오." + "value" : "스키마 전환" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SQL Server bağlantıları sistem güven deposunu kullanır. FreeTDS dblib, bağlantıya özel CA ve istemci sertifikası yollarını desteklemez; özel bir güven kaynağına ihtiyacınız varsa bunları `freetds.conf` dosyasında yapılandırın." + "value" : "Şema Değiştir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối SQL Server dùng kho tin cậy của hệ thống. FreeTDS dblib không hỗ trợ đường dẫn CA và chứng chỉ client theo từng kết nối; hãy cấu hình trong `freetds.conf` nếu bạn cần trust anchor tùy chỉnh." + "value" : "Chuyển schema" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SQL Server 连接使用系统信任存储。FreeTDS dblib 不支持按连接配置 CA 和客户端证书路径;如需自定义信任锚,请在 `freetds.conf` 中配置。" + "value" : "切换 Schema" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SQL Server 連線使用系統信任存放區。FreeTDS dblib 不支援按連線設定 CA 和用戶端憑證路徑;如果你需要自訂信任錨點,請在 `freetds.conf` 中設定。" + "value" : "切換綱要" } } } }, - "SQLite is file-based" : { + "Switch connection" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SQLite는 파일 기반입니다" + "value" : "연결 전환" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SQLite dosya tabanlıdır" + "value" : "Switch connection" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "SQLite dựa trên tệp" + "value" : "Chuyển kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SQLite 基于文件" + "value" : "切换连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SQLite 以檔案為基礎" + "value" : "切換連線" } } } }, - "sqlite3 is included with macOS" : { - "extractionState" : "stale", + "Switch the active database on a connection" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "sqlite3는 macOS에 포함되어 있습니다" + "value" : "연결의 활성 데이터베이스를 전환합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "sqlite3 macOS ile birlikte gelir" + "value" : "Bir bağlantıdaki etkin veritabanını değiştirir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "sqlite3 đã có sẵn trên macOS" + "value" : "Chuyển cơ sở dữ liệu đang hoạt động trên một kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "sqlite3 已包含在 macOS 中" + "value" : "切换连接的活动数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "sqlite3 已內建於 macOS" + "value" : "切換連線上使用中的資料庫" } } } }, - "SSH" : { + "Switch the active schema on a connection" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH" + "value" : "연결의 활성 스키마를 전환합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH" + "value" : "Bir bağlantıdaki etkin şemayı değiştirir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "SSH" + "value" : "Chuyển schema đang hoạt động trên một kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SSH" + "value" : "切换连接的活动 Schema" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SSH" + "value" : "切換連線上使用中的綱要" } } } }, - "SSH Agent" : { + "Switch the comparison to Data to see row differences." : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "행 차이를 보려면 비교를 데이터로 전환하십시오.", + "state" : "translated" + } + } + } + }, + "Switch the comparison to Structure to see definitions." : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "정의를 보려면 비교를 구조로 전환하십시오.", + "state" : "translated" + } + } + } + }, + "Switch to Inline Configuration" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Switch to Inline Configuration" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 에이전트" + "value" : "인라인 구성으로 전환" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH Aracısı" + "value" : "Satır İçi Yapılandırmaya Geç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "SSH Agent" + "value" : "Chuyển sang cấu hình nội tuyến" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SSH Agent" + "value" : "切换为内联配置" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SSH Agent" + "value" : "切換為內嵌設定" } } } }, - "SSH agent did not authenticate. Run ssh-add -l to check loaded keys." : { + "Switch to Tab" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 에이전트가 인증하지 못했습니다. ssh-add -l을 실행하여 로드된 키를 확인하십시오." + "value" : "탭으로 전환" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH aracısı kimlik doğrulaması yapmadı. Yüklü anahtarları denetlemek için ssh-add -l komutunu çalıştırın." + "value" : "Sekmeye Geç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "SSH agent không xác thực được. Chạy ssh-add -l để kiểm tra các khóa đã nạp." + "value" : "Chuyển đến tab" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 代理未通过身份验证。运行 ssh-add -l 检查已加载的密钥。" + "value" : "切换到标签页" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 代理未通過驗證。請執行 ssh-add -l 檢查已載入的金鑰。" + "value" : "切換到分頁" } } } }, - "SSH authentication cancelled." : { + "Switch to this database before executing" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 인증이 취소되었습니다." + "value" : "실행 전에 이 데이터베이스로 전환" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH kimlik doğrulaması iptal edildi." + "value" : "Yürütmeden önce bu veritabanına geç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã hủy xác thực SSH." + "value" : "Chuyển sang cơ sở dữ liệu này trước khi thực thi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 认证已取消。" + "value" : "执行前切换到此数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 驗證已取消。" + "value" : "執行前切換到此資料庫" } } } }, - "SSH authentication failed. Check your credentials or private key." : { + "Switch to this schema before executing" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 인증에 실패했습니다. 자격 증명 또는 개인 키를 확인하십시오." + "value" : "실행 전에 이 스키마로 전환" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH kimlik doğrulaması başarısız. Kimlik bilgilerinizi veya özel anahtarınızı kontrol edin." + "value" : "Yürütmeden önce bu şemaya geç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xác thực SSH thất bại. Kiểm tra thông tin đăng nhập hoặc khóa riêng tư." + "value" : "Chuyển sang schema này trước khi thực thi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 认证失败。请检查您的凭据或私钥。" + "value" : "执行前切换到此 Schema" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 驗證失敗。請檢查你的憑證或私鑰。" + "value" : "執行前切換到此綱要" } } } }, - "SSH command not found. Please ensure OpenSSH is installed." : { - "extractionState" : "stale", + "Switching to database '%@' timed out." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 명령을 찾을 수 없습니다. OpenSSH가 설치되어 있는지 확인하십시오." + "value" : "데이터베이스 '%@' 전환 시간이 초과되었습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH command not found. Please ensure OpenSSH is installed." + "value" : "'%@' veritabanına geçiş zaman aşımına uğradı." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy lệnh SSH. Vui lòng đảm bảo OpenSSH đã được cài đặt." + "value" : "Chuyển sang cơ sở dữ liệu '%@' đã hết thời gian chờ." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未找到 SSH 命令。请确保已安装 OpenSSH。" + "value" : "切换到数据库 '%@' 超时。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "找不到 SSH 指令。請確認已安裝 OpenSSH。" + "value" : "切換到資料庫 '%@' 已逾時。" } } } }, - "SSH Connection Test Failed" : { - "extractionState" : "stale", + "Switching to schema '%@' timed out." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 연결 테스트 실패" + "value" : "스키마 '%@' 전환 시간이 초과되었습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH Bağlantı Testi Başarısız" + "value" : "'%@' şemasına geçiş zaman aşımına uğradı." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kiểm tra Kết nối SSH Thất bại" + "value" : "Chuyển sang schema '%@' đã hết thời gian chờ." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 连接测试失败" + "value" : "切换到 Schema '%@' 超时。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 連線測試失敗" + "value" : "切換到綱要 '%@' 已逾時。" } } } }, - "SSH connection timed out" : { + "Sync" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 연결 시간이 초과되었습니다" + "value" : "동기화" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH bağlantısı zaman aşımına uğradı" + "value" : "Sync" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối SSH đã hết thời gian" + "value" : "Đồng bộ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 连接超时" + "value" : "同步" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 連線逾時" + "value" : "同步" } } } }, - "SSH Host" : { + "Sync (Pro)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 호스트" + "value" : "동기화 (Pro)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH Host" + "value" : "Senkronizasyon (Pro)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Máy chủ SSH" + "value" : "Đồng bộ (Pro)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 主机" + "value" : "同步(Pro)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 主機" + "value" : "同步(Pro)" } } } }, - "SSH host is required" : { + "Sync Categories" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 호스트가 필요합니다" + "value" : "동기화 범주" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH sunucusu gereklidir" + "value" : "Eşitleme Kategorileri" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cần nhập máy chủ SSH" + "value" : "Danh mục đồng bộ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "需要 SSH 主机" + "value" : "同步分类" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "需要 SSH 主機" + "value" : "同步分類" } } } }, - "SSH Host Key Changed" : { + "Sync Conflict" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 호스트 키 변경됨" + "value" : "동기화 충돌" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH Sunucu Anahtarı Değişti" + "value" : "Sync Conflict" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khóa máy chủ SSH đã thay đổi" + "value" : "Xung đột đồng bộ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 主机密钥已更改" + "value" : "同步冲突" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 主機金鑰已變更" + "value" : "同步衝突" } } } }, - "SSH host key verification failed" : { + "Sync Error" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 호스트 키 확인에 실패했습니다" + "value" : "동기화 오류" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH sunucu anahtarı doğrulaması başarısız" + "value" : "Eşitleme Hatası" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xác minh khóa máy chủ SSH thất bại" + "value" : "Lỗi đồng bộ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 主机密钥验证失败" + "value" : "同步错误" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 主機金鑰驗證失敗" + "value" : "同步錯誤" } } } }, - "SSH Key Passphrase Required" : { + "Sync Now" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 키 암호 필요" + "value" : "지금 동기화" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH Anahtarı Parolası Gerekli" + "value" : "Şimdi Eşitle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cần mật khẩu khoá SSH" + "value" : "Đồng bộ ngay" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "需要 SSH 密钥密码" + "value" : "立即同步" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "需要 SSH 金鑰密碼短語" + "value" : "立即同步" } } } }, - "SSH password rejected. Check the password and try again." : { + "Sync Off" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 암호가 거부되었습니다. 암호를 확인하고 다시 시도하십시오." + "value" : "동기화 끔" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH parolası reddedildi. Parolayı denetleyip yeniden deneyin." + "value" : "Eşitleme Kapalı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mật khẩu SSH bị từ chối. Kiểm tra mật khẩu và thử lại." + "value" : "Tắt đồng bộ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 密码被拒绝。请检查密码后重试。" + "value" : "同步已关闭" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 密碼被拒絕。請檢查密碼後再試一次。" + "value" : "同步已關閉" } } } }, - "SSH Port" : { + "Sync Status" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 포트" + "value" : "동기화 상태" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH Port" + "value" : "Eşitleme Durumu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cổng SSH" + "value" : "Trạng thái đồng bộ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 端口" + "value" : "同步状态" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 連接埠" + "value" : "同步狀態" } } } }, - "SSH port must be between 1 and 65535" : { + "Sync connections, settings, and favorites across your Macs." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 포트는 1~65535 사이여야 합니다" + "value" : "Mac 간에 연결, 설정 및 즐겨찾기를 동기화합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH portu 1 ile 65535 arasında olmalıdır" + "value" : "Bağlantıları, ayarları ve sık kullanılanları Mac'leriniz arasında eşitleyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cổng SSH phải nằm trong khoảng 1 đến 65535" + "value" : "Đồng bộ kết nối, cài đặt và mục yêu thích giữa các máy Mac của bạn." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 端口必须在 1 到 65535 之间" + "value" : "在你的多台 Mac 之间同步连接、设置和收藏。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 連接埠必須在 1 到 65535 之間" + "value" : "在你的多台 Mac 之間同步連線、設定和我的最愛。" } } } }, - "SSH private key not found: %@" : { + "Sync connections, settings, and history across your Macs." : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 개인 키를 찾을 수 없습니다: %@" + "value" : "Mac 간에 연결, 설정 및 기록을 동기화합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH özel anahtarı bulunamadı: %@" + "value" : "Sync connections, settings, and history across your Macs." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy private key SSH: %@" + "value" : "Đồng bộ kết nối, cài đặt và lịch sử giữa các máy Mac." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未找到 SSH 私钥:%@" + "value" : "在多台 Mac 之间同步连接、设置和历史记录。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "找不到 SSH 私密金鑰:%@" + "value" : "在你的多台 Mac 之間同步連線、設定與歷程記錄。" } } } }, - "SSH private key rejected. Check the key file or passphrase." : { + "Sync paused — Pro license expired" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 개인 키가 거부되었습니다. 키 파일 또는 암호를 확인하십시오." + "value" : "동기화 일시 중지 — Pro 라이선스 만료" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH özel anahtarı reddedildi. Anahtar dosyasını veya parola ifadesini denetleyin." + "value" : "Sync paused — Pro license expired" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Private key SSH bị từ chối. Kiểm tra file khóa hoặc passphrase." + "value" : "Tạm dừng đồng bộ — giấy phép Pro đã hết hạn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 私钥被拒绝。请检查密钥文件或密码短语。" + "value" : "同步已暂停 - Pro 许可证已过期" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 私密金鑰被拒絕。請檢查金鑰檔案或密碼短語。" + "value" : "同步已暫停,Pro 授權已過期" } } } }, - "SSH Profile" : { - "extractionState" : "stale", + "Sync paused, Pro license expired" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "SSH Profile" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 프로필" + "value" : "동기화 일시 중지, Pro 라이선스 만료" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH Profili" + "value" : "Eşitleme duraklatıldı, Pro lisansının süresi doldu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hồ sơ SSH" + "value" : "Đồng bộ đã tạm dừng, giấy phép Pro đã hết hạn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 配置" + "value" : "同步已暂停,Pro 许可证已过期" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 設定檔" + "value" : "同步已暫停,Pro 授權已過期" } } } }, - "SSH Profiles:" : { + "Sync token expired. A full sync will be performed." : { "localizations" : { - "en" : { + "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH Profiles:" + "value" : "동기화 토큰이 만료되었습니다. 전체 동기화를 수행합니다." } - }, + } + } + }, + "Sync zone not found. A full sync will be performed." : { + "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 프로필:" + "value" : "동기화 영역을 찾을 수 없습니다. 전체 동기화를 수행합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH Profilleri:" + "value" : "Eşitleme bölgesi bulunamadı. Tam eşitleme yapılacak." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hồ sơ SSH:" + "value" : "Không tìm thấy vùng đồng bộ. Sẽ thực hiện đồng bộ toàn bộ." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 配置:" + "value" : "未找到同步区域。将执行完整同步。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 設定檔:" + "value" : "找不到同步區域。將執行完整同步。" } } } }, - "SSH Tunnel" : { + "Synced" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 터널" + "value" : "동기화됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH Tüneli" + "value" : "Synced" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đường hầm SSH" + "value" : "Đã đồng bộ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 隧道" + "value" : "已同步" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 隧道" + "value" : "已同步" } } } }, - "SSH tunnel already exists for connection: %@" : { + "Syncing data from %@ to %@. Value formatting can differ between engines; review the script before applying." : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Syncing data from %1$@ to %2$@. Value formatting can differ between engines; review the script before applying." + } + }, + "ko" : { + "stringUnit" : { + "value" : "%@에서 %@(으)로 데이터를 동기화합니다. 값 형식은 엔진마다 다를 수 있으므로, 적용하기 전에 스크립트를 확인하십시오.", + "state" : "translated" + } + } + } + }, + "Syncing with iCloud…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결에 대한 SSH 터널이 이미 있습니다: %@" + "value" : "iCloud와 동기화 중…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu bağlantı için zaten bir SSH tüneli var: %@" + "value" : "iCloud ile eşitleniyor…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đường hầm SSH đã tồn tại cho kết nối: %@" + "value" : "Đang đồng bộ với iCloud…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接已存在 SSH 隧道:%@" + "value" : "正在与 iCloud 同步…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此連線已存在 SSH 隧道:%@" + "value" : "正在與 iCloud 同步…" } } } }, - "SSH tunnel creation failed: %@" : { + "Syncing…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 터널 생성 실패: %@" + "value" : "동기화 중…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH tüneli oluşturulamadı: %@" + "value" : "Syncing…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tạo đường hầm SSH thất bại: %@" + "value" : "Đang đồng bộ…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "创建 SSH 隧道失败:%@" + "value" : "正在同步…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "建立 SSH 隧道失敗:%@" + "value" : "正在同步…" } } } }, - "SSH tunnel did not connect within 30 seconds" : { + "Syncs connections, settings, and SSH profiles across your Macs via iCloud." : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 터널이 30초 이내에 연결되지 않았습니다" + "value" : "iCloud를 통해 Mac 간에 연결, 설정 및 SSH 프로필을 동기화합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH tüneli 30 saniye içinde bağlanamadı" + "value" : "Bağlantıları, ayarları ve SSH profillerini iCloud üzerinden Mac'leriniz arasında senkronize eder." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đường hầm SSH không kết nối được trong 30 giây" + "value" : "Đồng bộ kết nối, cài đặt và cấu hình SSH giữa các máy Mac qua iCloud." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 隧道在 30 秒内未能连接" + "value" : "通过 iCloud 在多台 Mac 之间同步连接、设置和 SSH 配置。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 隧道未能在 30 秒內連線" + "value" : "透過 iCloud 在你的多台 Mac 之間同步連線、設定與 SSH 設定檔。" } } } }, - "SSH tunnel disconnected. Click to reconnect." : { + "Syncs connections, settings, and history across your Macs via iCloud." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 터널 연결이 끊어졌습니다. 클릭하여 다시 연결하십시오." + "value" : "iCloud를 통해 Mac 간에 연결, 설정 및 기록을 동기화합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH tüneli bağlantısı kesildi. Yeniden bağlanmak için tıklayın." + "value" : "Syncs connections, settings, and history across your Macs via iCloud." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "SSH tunnel đã ngắt kết nối. Bấm để kết nối lại." + "value" : "Đồng bộ kết nối, cài đặt và lịch sử giữa các máy Mac qua iCloud." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 隧道已断开。点按以重新连接。" + "value" : "通过 iCloud 在多台 Mac 之间同步连接、设置和历史记录。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 隧道已中斷連線。點按以重新連線。" + "value" : "透過 iCloud 在你的多台 Mac 之間同步連線、設定與歷程記錄。" } } } }, - "SSH tunneling and SSL/TLS encryption support" : { + "Syncs connections, table favorites, settings, and SSH profiles across your Macs via iCloud." : { + "comment" : "A description of the functionality of the \"iCloud Sync\" toggle.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 터널링 및 SSL/TLS 암호화 지원" + "value" : "iCloud를 통해 Mac 간에 연결, 테이블 즐겨찾기, 설정 및 SSH 프로필을 동기화합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH tünelleme ve SSL/TLS şifreleme desteği" + "value" : "Bağlantıları, tablo sık kullanılanlarını, ayarları ve SSH profillerini iCloud aracılığıyla Mac'leriniz arasında eşzamanlar." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hỗ trợ đường hầm SSH và mã hóa SSL/TLS" + "value" : "Đồng bộ kết nối, bảng yêu thích, cài đặt và hồ sơ SSH giữa các máy Mac của bạn qua iCloud." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 隧道和 SSL/TLS 加密支持" + "value" : "通过 iCloud 在你的多台 Mac 之间同步连接、表收藏、设置和 SSH 配置。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "支援 SSH 隧道與 SSL/TLS 加密" + "value" : "透過 iCloud 在你的多台 Mac 之間同步連線、資料表我的最愛、設定和 SSH 設定檔。" } } } }, - "SSH tunneling only forwards the first host. Other replica set members must be directly reachable from the SSH server." : { - "extractionState" : "stale", + "Syncs passwords via iCloud Keychain (end-to-end encrypted)." : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Syncs passwords via iCloud Keychain (end-to-end encrypted)." + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 터널링은 첫 번째 호스트만 전달합니다. 다른 복제 세트 멤버는 SSH 서버에서 직접 연결할 수 있어야 합니다." + "value" : "iCloud 키체인을 통해 암호를 동기화합니다(종단 간 암호화)." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH tüneli yalnızca ilk sunucuyu yönlendirir. Diğer replica set üyelerine SSH sunucusundan doğrudan erişilebilir olmalıdır." + "value" : "Parolaları iCloud Keychain ile senkronize eder (uçtan uca şifreli)." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "SSH tunnel chỉ chuyển tiếp host đầu tiên. Các thành viên replica set khác phải truy cập được trực tiếp từ SSH server." + "value" : "Đồng bộ mật khẩu qua iCloud Keychain (mã hoá đầu cuối)." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 隧道仅转发第一个主机。其他副本集成员必须能从 SSH 服务器直接访问。" + "value" : "通过 iCloud 钥匙串同步密码(端到端加密)。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 隧道僅會轉送第一個主機。其他複本集成員必須能從 SSH 伺服器直接連線。" + "value" : "透過 iCloud 鑰匙圈同步密碼(端對端加密)。" } } } }, - "SSH User" : { + "Syntax Colors" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 사용자" + "value" : "구문 색상" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH User" + "value" : "Sözdizimi Renkleri" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Người dùng SSH" + "value" : "Màu cú pháp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 用户" + "value" : "语法颜色" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 使用者" + "value" : "語法顏色" } } } }, - "SSH Verification Rejected" : { + "Syntax highlighting, autocomplete, and multi-tab editing" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 확인 거부됨" + "value" : "구문 강조, 자동 완성 및 다중 탭 편집" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH Doğrulaması Reddedildi" + "value" : "Sözdizimi vurgulama, otomatik tamamlama ve çoklu sekme düzenleme" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xác minh SSH bị từ chối" + "value" : "Tô sáng cú pháp, tự động hoàn thành và chỉnh sửa nhiều tab" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 验证被拒绝" + "value" : "语法高亮、自动补全和多标签编辑" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 驗證遭拒" + "value" : "語法上色、自動完成與多分頁編輯" } } } }, - "SSH verification rejected. Check your response and try again." : { + "System" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 확인이 거부되었습니다. 응답을 확인하고 다시 시도하십시오." + "value" : "시스템" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH doğrulaması reddedildi. Yanıtınızı denetleyip tekrar deneyin." + "value" : "Sistem" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xác minh SSH bị từ chối. Kiểm tra lại câu trả lời và thử lại." + "value" : "Hệ thống" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 验证被拒绝。请检查你的回答后重试。" + "value" : "系统" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 驗證遭拒。請檢查你的回答後再試一次。" + "value" : "系統" } } } }, - "SSH Verification Required" : { + "System Reserved Shortcut" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 확인 필요" + "value" : "시스템 예약 단축키" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH Doğrulaması Gerekli" + "value" : "Sistem Ayrılmış Kısayol" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cần xác minh SSH" + "value" : "Phím tắt hệ thống" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "需要 SSH 验证" + "value" : "系统保留快捷键" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "需要 SSH 驗證" + "value" : "系統保留快速鍵" } } } }, - "ssh.example.com" : { + "System Table" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "ssh.example.com" + "value" : "시스템 테이블" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "ssh.example.com" + "value" : "Sistem Tablosu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "ssh.example.com" + "value" : "Bảng hệ thống" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "ssh.example.com" + "value" : "系统表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "ssh.example.com" + "value" : "系統資料表" } } } }, - "SSL" : { + "System Tables" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSL" + "value" : "시스템 테이블" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSL" + "value" : "Sistem Tabloları" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "SSL" + "value" : "Bảng hệ thống" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SSL" + "value" : "系统表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SSL" + "value" : "系統資料表" } } } }, - "SSL Mode" : { + "TIMESTAMPS" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSL 모드" + "value" : "TIMESTAMPS" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSL Modu" + "value" : "TIMESTAMPS" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chế độ SSL" + "value" : "THỜI GIAN" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SSL 模式" + "value" : "时间戳" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SSL 模式" + "value" : "時間戳記" } } } }, - "SSL/TLS" : { + "TLS Mode" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSL/TLS" + "value" : "TLS 모드" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSL/TLS" + "value" : "TLS Modu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "SSL/TLS" + "value" : "Chế độ TLS" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SSL/TLS" + "value" : "TLS 模式" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SSL/TLS" + "value" : "TLS 模式" } } } }, - "Standalone" : { + "TLS certificate expired or near expiry" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "단독 실행" + "value" : "TLS 인증서가 만료되었거나 곧 만료됩니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağımsız" + "value" : "TLS sertifikasının süresi dolmuş veya dolmak üzere" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Độc lập" + "value" : "Chứng chỉ TLS đã hoặc sắp hết hạn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "单机" + "value" : "TLS 证书已过期或即将过期" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "單機" + "value" : "TLS 憑證已過期或即將過期" } } } }, - "Starred tables, sorted" : { - + "TLS handshake failed: %@" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "TLS 핸드셰이크 실패: %@" + } + } + } }, - "Start recording queries again" : { + "TLS identity not found in Keychain" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 기록 재개" + "value" : "키체인에서 TLS ID를 찾을 수 없습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorguları yeniden kaydetmeye başla" + "value" : "Keychain'de TLS kimliği bulunamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bắt đầu ghi lại truy vấn" + "value" : "Không tìm thấy TLS identity trong Keychain" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重新开始记录查询" + "value" : "在钥匙串中未找到 TLS 身份" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重新開始記錄查詢" + "value" : "在鑰匙圈中找不到 TLS 身分" } } } }, - "Starter" : { + "TOTP" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Starter" + "value" : "TOTP" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Starter" + "value" : "TOTP" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Starter" + "value" : "TOTP" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Starter" + "value" : "TOTP" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Starter" + "value" : "TOTP" } } } }, - "Starting service…" : { + "TOTP Secret" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "서비스 시작 중…" + "value" : "TOTP 비밀 키" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Servis başlatılıyor…" + "value" : "TOTP Secret" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang khởi động dịch vụ…" + "value" : "Mã bí mật TOTP" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在启动服务…" + "value" : "TOTP 密钥" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在啟動服務…" + "value" : "TOTP 金鑰" } } } }, - "Starting…" : { + "TRUE" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "시작 중…" + "value" : "TRUE" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Başlatılıyor…" + "value" : "TRUE" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang khởi động…" + "value" : "TRUE" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在启动…" + "value" : "TRUE" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在啟動…" + "value" : "TRUE" } } } }, - "Starts and stops `cloudflared access tcp` with this connection and routes it through a local port." : { + "Tab" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 연결과 함께 `cloudflared access tcp`를 시작 및 중지하고 로컬 포트를 통해 라우팅합니다." + "value" : "탭" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "`cloudflared access tcp` komutunu bu bağlantıyla birlikte başlatıp durdurur ve bağlantıyı yerel bir port üzerinden yönlendirir." + "value" : "Sekme" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khởi động và dừng `cloudflared access tcp` cùng kết nối này và định tuyến qua một cổng cục bộ." + "value" : "Tab" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "随此连接启动和停止 `cloudflared access tcp`,并通过本地端口路由。" + "value" : "制表符" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "隨此連線啟動和停止 `cloudflared access tcp`,並透過本機連接埠路由。" + "value" : "定位字元" } } } }, - "Starts and stops the Cloud SQL Auth Proxy with this connection and routes it through a local port." : { + "Tab Behavior" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 연결과 함께 Cloud SQL Auth Proxy를 시작 및 중지하고 로컬 포트를 통해 라우팅합니다." + "value" : "탭 동작" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Cloud SQL Auth Proxy'yi bu bağlantıyla birlikte başlatıp durdurur ve bağlantıyı yerel bir port üzerinden yönlendirir." + "value" : "Tab Behavior" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khởi động và dừng Cloud SQL Auth Proxy cùng với kết nối này, đồng thời định tuyến qua một cổng cục bộ." + "value" : "Hành vi tab" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "随此连接启动和停止 Cloud SQL Auth Proxy,并通过本地端口转发。" + "value" : "标签页行为" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "隨此連線啟動與停止 Cloud SQL Auth Proxy,並透過本機連接埠轉送。" + "value" : "分頁行為" } } } }, - "starts with" : { + "Tab width:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다음으로 시작" + "value" : "탭 너비:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "ile başlar" + "value" : "Sekme genişliği:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "bắt đầu bằng" + "value" : "Độ rộng tab:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "以...开头" + "value" : "制表符宽度:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "開頭為" + "value" : "Tab 寬度:" } } } }, - "Startup Commands" : { + "Table" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "시작 명령" + "value" : "테이블" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Başlangıç Komutları" + "value" : "Tablo" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lệnh khởi động" + "value" : "Bảng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "启动命令" + "value" : "表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "啟動指令" + "value" : "資料表" } } } }, - "Startup SQL" : { - "comment" : "A section header for the startup SQL commands of a connection.", - "isCommentAutoGenerated" : true, + "Table '%@' has no columns or does not exist" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "시작 SQL" + "value" : "테이블 '%@'에 열이 없거나 테이블이 존재하지 않습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Başlangıç SQL" + "value" : "tablo '%@' has no columns or does not exist" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "SQL khởi động" + "value" : "Bảng '%@' không có cột hoặc không tồn tại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "启动 SQL" + "value" : "表 '%@' 没有列或不存在" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "啟動 SQL" + "value" : "資料表「%@」沒有欄位或不存在" } } } }, - "State" : { + "Table Actions" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "상태" + "value" : "테이블 작업" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Durum" + "value" : "Tablo İşlemleri" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trạng thái" + "value" : "Thao tác bảng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "状态" + "value" : "表操作" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "狀態" + "value" : "資料表操作" } } } }, - "statement" : { + "Table Browsing" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "문" + "value" : "테이블 탐색" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "statement" + "value" : "Tablo Gezinme" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "câu lệnh" + "value" : "Duyệt bảng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "条语句" + "value" : "表浏览" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "陳述式" + "value" : "資料表瀏覽" } } } }, - "Statement %1$d/%2$d failed: %3$@" : { + "Table Favorites:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%2$d개 중 %1$d번째 문 실패: %3$@" + "value" : "테이블 즐겨찾기:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%1$d/%2$d numaralı ifade başarısız oldu: %3$@" + "value" : "Tablo Sık Kullanılanları:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Câu lệnh %1$d/%2$d thất bại: %3$@" + "value" : "Bảng yêu thích:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "第 %1$d/%2$d 条语句失败:%3$@" + "value" : "表收藏:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "第 %1$d/%2$d 條陳述式失敗:%3$@" + "value" : "資料表我的最愛:" } } } }, - "Statement %lld" : { + "Table Info" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SQL 문 %lld" + "value" : "테이블 정보" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "ifade %lld" + "value" : "Table Info" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Câu lệnh %lld" + "value" : "Thông tin bảng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "语句 %lld" + "value" : "表信息" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "陳述式 %lld" + "value" : "資料表資訊" } } } }, - "Statement %lld of %lld" : { - "extractionState" : "stale", + "Table Maintenance" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Statement %1$lld of %2$lld" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "전체 %2$lld개 중 %1$lld번째 SQL 문" + "value" : "테이블 유지 관리" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "ifade %lld / %lld" + "value" : "Tablo Bakımı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Câu lệnh %1$lld / %2$lld" + "value" : "Bảo trì bảng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "语句 %lld / %lld" + "value" : "表维护" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "陳述式 %1$lld / %2$lld" + "value" : "資料表維護" } } } }, - "Statement batches" : { - - }, - "Statement text" : { - - }, - "Statement that ran" : { - - }, - "Statement timeout" : { - - }, - "Statement timeout. Defaults to the server's configured timeout." : { - - }, - "Statement:" : { + "Table Name" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SQL 문:" + "value" : "테이블 이름" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Statement:" + "value" : "Table Name" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Câu lệnh:" + "value" : "Tên bảng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "语句:" + "value" : "表名" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "陳述式:" + "value" : "資料表名稱" } } } }, - "statements" : { + "Table Name:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "문" + "value" : "테이블 이름:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "statements" + "value" : "Tablo Adı:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "câu lệnh" + "value" : "Tên bảng:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "条语句" + "value" : "表名:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "陳述式" + "value" : "資料表名稱:" } } } }, - "Statements TablePro generated and ran" : { - - }, - "Statements that already ran stay applied to %@. Compare again to see where it stands." : { - - }, - "Statements that read or write files, or that run server-side code, cannot be sent through MCP. Run this one in TablePro instead." : { - + "Table collation differs: %@ on source, %@ on target." : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Table collation differs: %1$@ on source, %2$@ on target." + } + }, + "ko" : { + "stringUnit" : { + "value" : "테이블 콜레이션이 다릅니다. 원본은 %@, 대상은 %@입니다.", + "state" : "translated" + } + } + } }, - "STATISTICS" : { + "Table creation options not available" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "통계" + "value" : "테이블 생성 옵션을 사용할 수 없습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "STATISTICS" + "value" : "Table creation options not available" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "THỐNG KÊ" + "value" : "Tùy chọn tạo bảng không khả dụng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "统计信息" + "value" : "表创建选项不可用" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "統計資訊" + "value" : "無法使用資料表建立選項" } } } }, - "Status" : { + "Table name" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "상태" + "value" : "테이블 이름" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Durum" + "value" : "Tablo adı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trạng thái" + "value" : "Tên bảng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "状态" + "value" : "表名" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "狀態" + "value" : "資料表名稱" } } } }, - "Status Colors" : { + "Table name to open" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "상태 색상" + "value" : "열려는 테이블 이름" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Durum Renkleri" + "value" : "Açılacak tablo adı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Màu trạng thái" + "value" : "Tên bảng cần mở" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "状态颜色" + "value" : "要打开的表名" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "狀態顏色" + "value" : "要開啟的資料表名稱" } } } }, - "Status Dot" : { - "extractionState" : "stale", + "Table names to export (alternative to query)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "상태 표시점" + "value" : "내보낼 테이블 이름(쿼리 대신 사용)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Status Dot" + "value" : "Dışa aktarılacak tablo adları (sorguya alternatif)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chấm trạng thái" + "value" : "Tên các bảng cần xuất (thay cho truy vấn)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "状态指示点" + "value" : "要导出的表名(可代替查询)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "狀態指示點" + "value" : "要匯出的資料表名稱(可代替查詢)" } } } }, - "Status:" : { + "Table rebuild" : { "localizations" : { - "en" : { + "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "Status:" + "value" : "테이블 재생성", + "state" : "translated" } - }, + } + } + }, + "Table: %@" : { + "extractionState" : "stale", + "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "상태:" + "value" : "테이블: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Durum:" + "value" : "tablo: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trạng thái:" + "value" : "Bảng: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "状态:" + "value" : "表:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "狀態:" + "value" : "資料表:%@" } } } }, - "Status: active" : { + "TablePro" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "상태: 활성" + "value" : "TablePro" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Durum: aktif" + "value" : "TablePro" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trạng thái: đang hoạt động" + "value" : "TablePro" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "状态:活动" + "value" : "TablePro" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "狀態:使用中" + "value" : "TablePro" } } } }, - "Status: error" : { + "TablePro Website" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "상태: 오류" + "value" : "TablePro 웹사이트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Durum: hata" + "value" : "TablePro Website" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trạng thái: lỗi" + "value" : "Trang web TablePro" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "状态:错误" + "value" : "TablePro 网站" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "狀態:錯誤" + "value" : "TablePro 網站" } } } }, - "Status: expired" : { + "TablePro could not do this for you. Run this in Terminal instead:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "상태: 만료됨" + "value" : "TablePro가 이 작업을 수행할 수 없습니다. 대신 터미널에서 다음을 실행하십시오:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Durum: süresi dolmuş" + "value" : "TablePro bunu sizin için yapamadı. Bunun yerine Terminal'de şunu çalıştırın:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trạng thái: đã hết hạn" + "value" : "TablePro không thể làm việc này giúp bạn. Hãy chạy lệnh sau trong Terminal:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "状态:已过期" + "value" : "TablePro 无法替你完成此操作。请在终端中运行:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "狀態:已過期" + "value" : "TablePro 無法替你完成此操作。請改在終端機執行:" } } } }, - "Status: failed" : { + "TablePro could not open its query history database, so nothing is being recorded and nothing can be shown. Your existing history is still on disk." : { + "comment" : "A description of the error that occurs when the query history database cannot be opened.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "상태: 실패" + "value" : "TablePro에서 쿼리 기록 데이터베이스를 열 수 없어 기록되거나 표시되는 항목이 없습니다. 기존 기록은 디스크에 그대로 남아 있습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Durum: başarısız" + "value" : "TablePro sorgu geçmişi veritabanını açamadı, bu yüzden hiçbir şey kaydedilmiyor ve gösterilemiyor. Mevcut geçmişiniz hâlâ diskte." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trạng thái: thất bại" + "value" : "TablePro không mở được cơ sở dữ liệu lịch sử truy vấn, nên không có gì được ghi lại và không có gì để hiển thị. Lịch sử hiện có của bạn vẫn nằm trên đĩa." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "状态:失败" + "value" : "TablePro 无法打开它的查询历史数据库,因此不会记录任何内容,也无法显示任何内容。你已有的历史仍在磁盘上。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "狀態:失敗" + "value" : "TablePro 無法開啟它的查詢歷史資料庫,因此不會記錄任何內容,也無法顯示任何內容。你已有的記錄仍在磁碟上。" } } } }, - "Status: revoked" : { + "TablePro couldn't reach the plugin registry to update this plugin. Check your connection and reopen TablePro." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "상태: 철회됨" + "value" : "TablePro에서 이 플러그인을 업데이트하기 위해 플러그인 레지스트리에 연결할 수 없습니다. 연결을 확인하고 TablePro를 다시 여십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Durum: iptal edildi" + "value" : "TablePro bu eklentiyi güncellemek için eklenti deposuna ulaşamadı. Bağlantınızı denetleyip TablePro'yu yeniden açın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trạng thái: đã thu hồi" + "value" : "TablePro không thể truy cập registry plugin để cập nhật plugin này. Kiểm tra kết nối mạng và mở lại TablePro." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "状态:已撤销" + "value" : "TablePro 无法访问插件注册表来更新此插件。请检查网络连接并重新打开 TablePro。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "狀態:已撤銷" + "value" : "TablePro 無法連上外掛註冊來更新此外掛。請檢查你的網路連線並重新開啟 TablePro。" } } } }, - "Status: running" : { + "TablePro runs Anthropic's claude tool in headless mode. Claude Code is built for you to use directly, not as a backend for other apps, so this path can break with any Claude Code release." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "상태: 실행 중" + "value" : "TablePro는 Anthropic의 claude 도구를 헤드리스 모드로 실행합니다. Claude Code는 다른 앱의 백엔드가 아니라 사용자가 직접 사용하도록 만들어졌으므로, 이 방식은 Claude Code 릴리스에 따라 작동하지 않을 수 있습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Durum: çalışıyor" + "value" : "TablePro, Anthropic'in claude aracını başsız modda çalıştırır. Claude Code doğrudan sizin kullanmanız için yapıldı, başka uygulamalara arka uç olsun diye değil; bu yüzden bu yol herhangi bir Claude Code sürümüyle bozulabilir." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trạng thái: đang chạy" + "value" : "TablePro chạy công cụ claude của Anthropic ở chế độ headless. Claude Code được tạo ra để bạn dùng trực tiếp, không phải làm backend cho ứng dụng khác, nên cách này có thể hỏng sau bất kỳ bản phát hành Claude Code nào." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "状态:运行中" + "value" : "TablePro 以无界面模式运行 Anthropic 的 claude 工具。Claude Code 是给你直接使用的,不是给其他应用当后端,因此这条路径可能在任何一次 Claude Code 更新后失效。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "狀態:執行中" + "value" : "TablePro 以無介面模式執行 Anthropic 的 claude 工具。Claude Code 是給你直接使用的,不是給其他應用程式當後端,因此這條路徑可能在任何一次 Claude Code 更新後失效。" } } } }, - "Status: starting" : { + "TablePro's Safe Mode is set to read-only for this connection. Destructive operations are not permitted." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "상태: 시작 중" + "value" : "이 연결에서는 TablePro의 안전 모드가 읽기 전용으로 설정되어 있습니다. 파괴적인 작업은 허용되지 않습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Durum: başlatılıyor" + "value" : "Bu bağlantı için TablePro'nun Safe Mode ayarı salt okunur. Yıkıcı işlemlere izin verilmez." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trạng thái: đang khởi động" + "value" : "Chế độ an toàn của TablePro đang đặt kết nối này ở chế độ chỉ đọc. Không cho phép các thao tác phá hủy dữ liệu." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "状态:启动中" + "value" : "TablePro 的安全模式已将此连接设为只读。不允许执行破坏性操作。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "狀態:啟動中" + "value" : "TablePro 的安全模式已將此連線設為唯讀。不允許執行破壞性操作。" } } } }, - "Status: stopped" : { + "TablePro's Safe Mode is set to read-only for this connection. Set it to Confirm Writes or higher to allow this tool." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "상태: 중지됨" + "value" : "이 연결에서는 TablePro의 안전 모드가 읽기 전용으로 설정되어 있습니다. 이 도구를 허용하려면 쓰기 확인 이상으로 설정하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Durum: durduruldu" + "value" : "Bu bağlantı için TablePro'nun Safe Mode ayarı salt okunur. Bu araca izin vermek için Confirm Writes veya daha üstünü seçin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trạng thái: đã dừng" + "value" : "Chế độ an toàn của TablePro đang đặt kết nối này ở chế độ chỉ đọc. Đặt thành Confirm Writes hoặc cao hơn để cho phép công cụ này." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "状态:已停止" + "value" : "TablePro 的安全模式已将此连接设为只读。请设为 Confirm Writes 或更高级别以允许此工具。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "狀態:已停止" + "value" : "TablePro 的安全模式已將此連線設為唯讀。請設為 Confirm Writes 或更高層級以允許此工具。" } } } }, - "Status: success" : { + "Tables" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "상태: 성공" + "value" : "테이블" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Durum: başarılı" + "value" : "Tablolar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trạng thái: thành công" + "value" : "Bảng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "状态:成功" + "value" : "表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "狀態:成功" + "value" : "資料表" } } } }, - "Status: warning" : { + "Tables always take part." : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "테이블은 항상 포함됩니다.", + "state" : "translated" + } + } + } + }, + "Tables start out of the comparison so a first run cannot stream every row." : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "첫 실행에서 모든 행을 읽지 않도록, 테이블은 비교에서 빠진 상태로 시작합니다.", + "state" : "translated" + } + } + } + }, + "Tables with more estimated rows use approximate counts to avoid slow COUNT(*) queries" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "상태: 경고" + "value" : "예상 행 수가 더 많은 테이블은 느린 COUNT(*) 쿼리를 피하기 위해 근삿값을 사용합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Durum: uyarı" + "value" : "Daha fazla tahmini satıra sahip tablolar, yavaş COUNT(*) sorgularından kaçınmak için yaklaşık sayımlar kullanır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trạng thái: cảnh báo" + "value" : "Các bảng có nhiều dòng ước tính sử dụng đếm xấp xỉ để tránh truy vấn COUNT(*) chậm" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "状态:警告" + "value" : "估算行数较多的表使用近似计数以避免慢速 COUNT(*) 查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "狀態:警告" + "value" : "估算列數較多的資料表會使用近似計數,以避免緩慢的 COUNT(*) 查詢" } } } }, - "Step" : { + "Tables, columns, indexes, and foreign keys for a connected database" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "단계" + "value" : "연결된 데이터베이스의 테이블, 열, 인덱스 및 외래 키" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Adım" + "value" : "Bağlı bir veritabanının tabloları, sütunları, indeksleri ve yabancı anahtarları" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bước" + "value" : "Bảng, cột, index và khóa ngoại của một cơ sở dữ liệu đã kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "步骤" + "value" : "某个已连接数据库的表、列、索引和外键" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "步驟" + "value" : "某個已連線資料庫的資料表、欄位、索引和外鍵" } } } }, - "Steps to Reproduce" : { - "extractionState" : "stale", + "Tables, columns, indexes, and foreign keys for the connected database" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "재현 단계" + "value" : "연결된 데이터베이스의 테이블, 열, 인덱스 및 외래 키" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yeniden Üretme Adımları" + "value" : "Bağlı veritabanının tabloları, sütunları, indeksleri ve yabancı anahtarları" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Các bước tái hiện" + "value" : "Bảng, cột, index và khóa ngoại của cơ sở dữ liệu đã kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重现步骤" + "value" : "已连接数据库的表、列、索引和外键" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重現步驟" + "value" : "已連線資料庫的資料表、欄位、索引和外鍵" } } } }, - "Stop" : { + "Tables, views, and functions owned by this role will be deleted." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "중지" + "value" : "이 역할이 소유한 테이블, 뷰 및 함수가 삭제됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Stop" + "value" : "Bu role ait tablolar, görünümler ve fonksiyonlar silinecek." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dừng" + "value" : "Các bảng, view và hàm thuộc sở hữu của vai trò này sẽ bị xóa." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "停止" + "value" : "该角色拥有的表、视图和函数将被删除。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "停止" + "value" : "該角色擁有的資料表、檢視表和函式將被刪除。" } } } }, - "Stop and Close" : { - - }, - "Stop and keep what ran" : { - - }, - "Stop and Quit" : { - - }, - "Stop and roll back" : { - - }, - "Stop Comparison" : { - - }, - "Stop Export?" : { + "Tablespace" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "내보내기를 중지하시겠습니까?" + "value" : "테이블스페이스" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dışa Aktarma Durdurulsun mu?" + "value" : "Tablespace" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dừng xuất?" + "value" : "Tablespace" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "停止导出?" + "value" : "表空间" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "停止匯出?" + "value" : "資料表空間" } } } }, - "Stop Generating" : { + "Tabs" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "생성 중지" + "value" : "탭" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Üretmeyi Durdur" + "value" : "Tabs" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dừng tạo phản hồi" + "value" : "Tab" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "停止生成" + "value" : "标签页" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "停止生成" + "value" : "分頁" } } } }, - "Stop recording queries on this Mac" : { + "Tag" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 Mac에서 쿼리 기록 중지" + "value" : "태그" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu Mac'te sorgu kaydını durdur" + "value" : "Etiket" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ngừng ghi truy vấn trên máy Mac này" + "value" : "Nhãn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "停止在这台 Mac 上记录查询" + "value" : "标签" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "停止在這台 Mac 上記錄查詢" + "value" : "標籤" } } } }, - "Stop Server Session" : { - - }, - "Stop Trusting" : { + "Tag name" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "신뢰 해제" + "value" : "태그 이름" } - } - } - }, - "Stop trusting %@?" : { - "localizations" : { - "ko" : { + }, + "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@에 대한 신뢰를 해제하시겠습니까?" + "value" : "Etiket adı" } - } - } - }, - "Stop trusting this developer?" : { - "localizations" : { - "ko" : { + }, + "vi" : { "stringUnit" : { "state" : "translated", - "value" : "이 개발자에 대한 신뢰를 해제하시겠습니까?" + "value" : "Tên thẻ" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "标签名称" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "標籤名稱" } } } }, - "Stopped" : { + "Tag: %@" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "중지됨" + "value" : "태그: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Durduruldu" + "value" : "Tag: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã dừng" + "value" : "Thẻ: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已停止" + "value" : "标签:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已停止" - } - } - } - }, - "Stopped after %@" : { - - }, - "Storage engine" : { - - }, - "Storage engine change" : { - - }, - "Storage engine differs: %@ on source, %@ on target." : { - "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Storage engine differs: %1$@ on source, %2$@ on target." + "value" : "標籤:%@" } } } }, - "Stored in the macOS Keychain and written to a temporary file only while the proxy runs." : { + "Tags" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "macOS 키체인에 저장되며, 프록시가 실행되는 동안에만 임시 파일에 기록됩니다." + "value" : "태그" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "macOS Keychain'de saklanır ve yalnızca proxy çalışırken geçici bir dosyaya yazılır." + "value" : "Etiketler" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Được lưu trong macOS Keychain và chỉ ghi ra tệp tạm khi proxy đang chạy." + "value" : "Thẻ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "保存在 macOS 钥匙串中,仅在代理运行期间写入临时文件。" + "value" : "标签" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "儲存在 macOS 鑰匙圈中,僅在代理執行期間寫入暫存檔案。" + "value" : "標籤" } } } }, - "Streaming failed: %@" : { + "Tags: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "스트리밍 실패: %@" + "value" : "태그: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Akış başarısız: %@" + "value" : "Etiketler: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phát trực tuyến thất bại: %@" + "value" : "Thẻ: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "流式传输失败:%@" + "value" : "标签:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "串流失敗:%@" + "value" : "標籤:%@" } } } }, - "String" : { + "Target" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "대상", + "state" : "translated" + } + } + } + }, + "Target: %@" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "대상: %@", + "state" : "translated" + } + } + } + }, + "Team" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "문자열" + "value" : "팀" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "String" + "value" : "Team" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuỗi" + "value" : "Team" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "字符串" + "value" : "Team" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "字串" + "value" : "Team" } } } }, - "String values to escape" : { - - }, - "Structure" : { + "Team Catalog" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "구조" + "value" : "팀 카탈로그" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Structure" + "value" : "Takım Kataloğu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cấu trúc" + "value" : "Danh mục nhóm" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "结构" + "value" : "团队目录" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "結構" + "value" : "團隊目錄" } } } }, - "Structure changes" : { - - }, - "Structure Changes" : { + "Team Library" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "구조 변경 사항" + "value" : "팀 라이브러리" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yapı Değişiklikleri" + "value" : "Takım Kitaplığı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thay đổi cấu trúc" + "value" : "Thư viện nhóm" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "结构更改" + "value" : "团队库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "結構變更" - } - } - } - }, - "Structure Comparison" : { - - }, - "Structure sync needs matching database types. %@ and %@ can be compared, but no script is generated." : { - "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Structure sync needs matching database types. %1$@ and %2$@ can be compared, but no script is generated." + "value" : "團隊庫" } } } }, - "Structure, Drop, and Data options are configured per table in the table list." : { + "Template" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "구조, 삭제 및 데이터 옵션은 테이블 목록에서 각 테이블별로 구성합니다." + "value" : "템플릿" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Structure, Drop, and Data options are configured per table in the table list." + "value" : "Template" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tùy chọn Cấu trúc, Xóa và Dữ liệu được cấu hình cho từng bảng trong danh sách bảng." + "value" : "Mẫu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "结构、删除和数据选项在表列表中按表单独配置。" + "value" : "模板" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "結構、刪除與資料選項會在資料表清單中針對每個資料表個別設定。" + "value" : "範本" } } } }, - "Structured data format. Ideal for APIs and web applications." : { + "Template Name" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "구조화된 데이터 형식입니다. API와 웹 애플리케이션에 적합합니다." + "value" : "템플릿 이름" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yapılandırılmış veri biçimi. API'ler ve web uygulamaları için ideal." + "value" : "Template Name" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Định dạng dữ liệu có cấu trúc. Lý tưởng cho API và ứng dụng web." + "value" : "Tên mẫu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "结构化数据格式。适用于 API 和 Web 应用。" + "value" : "模板名称" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "結構化資料格式。適合用於 API 與網頁應用程式。" + "value" : "範本名稱" } } } }, - "Submit" : { + "Temporarily disable foreign key constraints during import. Useful for importing data with circular dependencies." : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "제출" + "value" : "가져오는 동안 외래 키 제약 조건을 일시적으로 비활성화합니다. 순환 종속성이 있는 데이터를 가져올 때 유용합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Gönder" + "value" : "Temporarily disable foreign key constraints during import. Useful for importing data with circular dependencies." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gửi" + "value" : "Tạm thời tắt ràng buộc khóa ngoại trong quá trình nhập. Hữu ích khi nhập dữ liệu có phụ thuộc vòng." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "提交" + "value" : "导入时临时禁用外键约束。适用于导入具有循环依赖的数据。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "提交" + "value" : "匯入時暫時停用外鍵限制。適合用於匯入有循環相依關係的資料。" } } } }, - "Submit Another" : { - "extractionState" : "stale", + "Teradata Vantage data warehouse" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다른 항목 제출" + "value" : "Teradata Vantage 데이터 웨어하우스" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bir Tane Daha Gönder" + "value" : "Teradata Vantage veri ambarı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gửi tiếp" + "value" : "Kho dữ liệu Teradata Vantage" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "提交另一个" + "value" : "Teradata Vantage 数据仓库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "再提交一筆" + "value" : "Teradata Vantage 資料倉儲" } } } }, - "Submitting..." : { + "Terminal" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "제출 중..." + "value" : "터미널" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Gönderiliyor..." + "value" : "Terminal" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang gửi..." + "value" : "Terminal" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在提交…" + "value" : "终端" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在提交…" + "value" : "終端機" } } } }, - "Succeeded" : { + "Terminal Unavailable" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "성공" + "value" : "터미널을 사용할 수 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Başarılı" + "value" : "Terminal Kullanılamıyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thành công" + "value" : "Terminal không khả dụng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "成功" + "value" : "终端不可用" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "成功" + "value" : "終端機無法使用" } } } }, - "Success" : { + "Terminal bell" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "성공" + "value" : "터미널 벨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Başarılı" + "value" : "Terminal zili" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thành công" + "value" : "Chuông terminal" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "成功" + "value" : "终端响铃" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "成功" + "value" : "終端機提示音" } } } }, - "Suggest indexes for a slow query from its plan and the indexes the tables already have" : { - - }, - "Suggest optimizations for the current query" : { + "Terminate" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "현재 쿼리의 최적화 제안" + "value" : "종료" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geçerli sorgu için optimizasyon öner" + "value" : "Sonlandır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gợi ý tối ưu cho truy vấn hiện tại" + "value" : "Kết thúc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "为当前查询提供优化建议" + "value" : "终止" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "為目前的查詢提供最佳化建議" + "value" : "終止" } } } }, - "Suggested Actions" : { + "Terminate Session" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "제안된 작업" + "value" : "세션 종료" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Önerilen İşlemler" + "value" : "Oturumu Sonlandır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hành động gợi ý" + "value" : "Kết thúc phiên" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "建议的操作" + "value" : "终止会话" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "建議的操作" + "value" : "終止工作階段" } } } }, - "Summarize query history" : { - - }, - "Summarize what was run against a connection over a period, from the recorded history" : { - - }, - "Summary" : { - - }, - "Suspended" : { + "Terminate session %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "일시 중단됨" + "value" : "세션 %@ 종료" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Suspended" + "value" : "%@ oturumunu sonlandır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tạm ngưng" + "value" : "Kết thúc phiên %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已暂停" + "value" : "终止会话 %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已暫停" + "value" : "終止工作階段 %@" } } } }, - "Swap" : { - - }, - "Swap Source and Target" : { - - }, - "Switch" : { + "Tertiary Text" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "전환" + "value" : "3차 텍스트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Değiştir" + "value" : "Üçüncül Metin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển" + "value" : "Văn bản thứ ba" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "切换" + "value" : "辅助文本" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "切換" + "value" : "第三層文字" } } } }, - "switch %@" : { + "Test" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 전환" + "value" : "테스트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ değiştir" + "value" : "Test" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "chuyển %@" + "value" : "Kiểm tra" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "切换 %@" + "value" : "测试" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "切換 %@" + "value" : "測試" } } } }, - "Switch %@" : { + "Test Connection" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 전환" + "value" : "연결 테스트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ Değiştir" + "value" : "Bağlantıyı Test Et" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển %@" + "value" : "Kiểm tra kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "切换 %@" + "value" : "测试连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "切換 %@" + "value" : "測試連線" } } } }, - "Switch connection" : { - "extractionState" : "stale", + "Test the current connection settings" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 전환" + "value" : "현재 연결 설정 테스트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Switch connection" + "value" : "Geçerli bağlantı ayarlarını test et" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển kết nối" + "value" : "Kiểm tra cài đặt kết nối hiện tại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "切换连接" + "value" : "测试当前连接设置" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "切換連線" + "value" : "測試目前的連線設定" } } } }, - "Switch Connection" : { + "Testing" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 전환" + "value" : "테스트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı Değiştir" + "value" : "Test" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển kết nối" + "value" : "Kiểm thử" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "切换连接" + "value" : "测试" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "切換連線" + "value" : "測試" } } } }, - "Switch Connection (⌘⌥C)" : { - "extractionState" : "stale", + "Testing connection" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 전환 (⌘⌥C)" + "value" : "연결 테스트 중" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Switch Connection (⌘⌥C)" + "value" : "Bağlantı test ediliyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển kết nối (⌘⌥C)" + "value" : "Đang kiểm tra kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "切换连接 (⌘⌥C)" + "value" : "正在测试连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "切換連線 (⌘⌥C)" + "value" : "正在測試連線" } } } }, - "Switch Connection…" : { + "Text" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 전환…" + "value" : "텍스트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı Değiştir…" + "value" : "Metin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển kết nối…" + "value" : "Văn bản" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "切换连接…" + "value" : "文本" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "切換連線…" + "value" : "文字" } } } }, - "switch database" : { - "extractionState" : "stale", + "Text Viewer" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 전환" + "value" : "텍스트 뷰어" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "veritabanı değiştir" + "value" : "Metin Görüntüleyici" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "chuyển cơ sở dữ liệu" + "value" : "Trình xem văn bản" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "切换数据库" + "value" : "文本查看器" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "切換資料庫" + "value" : "文字檢視器" } } } }, - "Switch Database" : { + "Text: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 전환" + "value" : "텍스트: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı Değiştir" + "value" : "Metin: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển cơ sở dữ liệu" + "value" : "Văn bản: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "切换数据库" + "value" : "文本:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "切換資料庫" + "value" : "文字:%@" } } } }, - "Switch Database (⌘K)" : { - "extractionState" : "stale", + "That doesn't look like a valid license key. Check for typos and try again." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 전환 (⌘K)" + "value" : "올바른 라이선스 키가 아닌 것 같습니다. 오타가 있는지 확인하고 다시 시도하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Switch Database (⌘K)" + "value" : "Bu geçerli bir lisans anahtarı gibi görünmüyor. Yazım hatalarını kontrol edip tekrar deneyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển cơ sở dữ liệu (⌘K)" + "value" : "Mã giấy phép không hợp lệ. Kiểm tra lỗi chính tả và thử lại." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "切换数据库 (⌘K)" + "value" : "这看起来不是有效的许可证密钥。请检查是否有拼写错误后重试。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "切換資料庫 (⌘K)" + "value" : "這看起來不是有效的授權金鑰。請檢查是否有拼字錯誤後再試一次。" } } } }, - "Switch Failed" : { + "That folder could not be read." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "전환 실패" + "value" : "해당 폴더를 읽을 수 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geçiş Başarısız Oldu" + "value" : "Bu klasör okunamadı." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển thất bại" + "value" : "Không thể đọc thư mục đó." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "切换失败" + "value" : "无法读取该文件夹。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "切換失敗" + "value" : "無法讀取該資料夾。" } } } }, - "Switch First Row Between Header and Data" : { + "That regular expression could not be read. Check the syntax and try again." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "첫 번째 행을 머리글과 데이터 간에 전환" + "value" : "해당 정규식을 해석할 수 없습니다. 구문을 확인하고 다시 시도하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İlk Satırı Başlık ve Veri Arasında Değiştir" + "value" : "Bu düzenli ifade okunamadı. Söz dizimini denetleyip tekrar deneyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển hàng đầu giữa tiêu đề và dữ liệu" + "value" : "Không thể đọc biểu thức chính quy đó. Kiểm tra cú pháp và thử lại." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在标题行与数据行之间切换第一行" + "value" : "无法解析该正则表达式。请检查语法后重试。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在標題列與資料列之間切換第一列" + "value" : "無法解析該正規表達式。請檢查語法後再試一次。" } } } }, - "Switch First Row Between Header/Data" : { + "The %1$@ sorted rows differently than the comparison expects, near key %2$@. Pick a numeric key, or one that sorts by byte value." : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "%1$@이(가) 키 %2$@ 부근에서 비교가 예상한 것과 다른 순서로 행을 정렬했습니다. 숫자 키나 바이트 값으로 정렬되는 키를 선택하십시오.", + "state" : "translated" + } + } + } + }, + "The %@ command line tool is not installed." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "첫 번째 행을 머리글/데이터 간에 전환" + "value" : "%@ 명령줄 도구가 설치되어 있지 않습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İlk Satırı Başlık/Veri Arasında Değiştir" + "value" : "%@ komut satırı aracı yüklü değil." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển dòng đầu giữa tiêu đề và dữ liệu" + "value" : "Công cụ dòng lệnh %@ chưa được cài đặt." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将首行在表头与数据之间切换" + "value" : "尚未安装 %@ 命令行工具。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將首列在標題與資料之間切換" + "value" : "尚未安裝 %@ 命令列工具。" } } } }, - "switch schema" : { - "extractionState" : "stale", + "The %@ plugin is not installed. Would you like to download it from the plugin marketplace?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "스키마 전환" + "value" : "%@ 플러그인이 설치되어 있지 않습니다. 플러그인 마켓플레이스에서 다운로드하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "şema değiştir" + "value" : "The %@ plugin is not installed. Would you like to indirme it from the plugin marketplace?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "chuyển schema" + "value" : "Plugin %@ chưa được cài đặt. Bạn có muốn tải về từ chợ plugin?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "切换 Schema" + "value" : "%@ 插件未安装。是否要从插件市场下载?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "切換綱要" + "value" : "尚未安裝 %@ 外掛。是否要從外掛市集下載?" } } } }, - "Switch Schema" : { + "The %@ plugin is not installed. You can download it from the plugin marketplace." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "스키마 전환" + "value" : "%@ 플러그인이 설치되어 있지 않습니다. 플러그인 마켓플레이스에서 다운로드할 수 있습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Şema Değiştir" + "value" : "The %@ plugin is not installed. You can indirme it from the plugin marketplace." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển schema" + "value" : "Plugin %@ chưa được cài đặt. Bạn có thể tải về từ chợ plugin." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "切换 Schema" + "value" : "%@ 插件未安装。您可以从插件市场下载。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "切換綱要" + "value" : "尚未安裝 %@ 外掛。你可以從外掛市集下載。" } } } }, - "Switch the active database on a connection" : { - "extractionState" : "stale", + "The API key will be permanently deleted." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결의 활성 데이터베이스를 전환합니다" + "value" : "API 키가 영구적으로 삭제됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bir bağlantıdaki etkin veritabanını değiştirir" + "value" : "API anahtarı kalıcı olarak silinecek." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển cơ sở dữ liệu đang hoạt động trên một kết nối" + "value" : "API key sẽ bị xóa vĩnh viễn." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "切换连接的活动数据库" + "value" : "API 密钥将被永久删除。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "切換連線上使用中的資料庫" + "value" : "API 金鑰將被永久刪除。" } } } }, - "Switch the active schema on a connection" : { - "extractionState" : "stale", + "The Access application policy must use a Service Auth rule, or Cloudflare still prompts for browser sign-in." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결의 활성 스키마를 전환합니다" + "value" : "Access 애플리케이션 정책에서 Service Auth 규칙을 사용해야 합니다. 그렇지 않으면 Cloudflare가 계속 브라우저 로그인을 요청합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bir bağlantıdaki etkin şemayı değiştirir" + "value" : "Access uygulama politikası bir Service Auth kuralı kullanmalıdır; aksi halde Cloudflare yine tarayıcıdan giriş ister." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển schema đang hoạt động trên một kết nối" + "value" : "Chính sách ứng dụng Access phải dùng quy tắc Service Auth, nếu không Cloudflare vẫn yêu cầu đăng nhập qua trình duyệt." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "切换连接的活动 Schema" + "value" : "Access 应用策略必须使用 Service Auth 规则,否则 Cloudflare 仍会要求浏览器登录。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "切換連線上使用中的綱要" + "value" : "Access 應用程式原則必須使用 Service Auth 規則,否則 Cloudflare 仍會要求透過瀏覽器登入。" } } } }, - "Switch the comparison to Data to see row differences." : { - - }, - "Switch the comparison to Structure to see definitions." : { - - }, - "Switch to Inline Configuration" : { + "The ChatGPT account could not be identified." : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Switch to Inline Configuration" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "인라인 구성으로 전환" + "value" : "ChatGPT 계정을 확인할 수 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Satır İçi Yapılandırmaya Geç" + "value" : "ChatGPT hesabı tanımlanamadı." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển sang cấu hình nội tuyến" + "value" : "Không thể xác định tài khoản ChatGPT." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "切换为内联配置" + "value" : "无法识别 ChatGPT 账户。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "切換為內嵌設定" + "value" : "無法識別 ChatGPT 帳戶。" } } } }, - "Switch to Tab" : { + "The ChatGPT sign-in token could not be read." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "탭으로 전환" + "value" : "ChatGPT 로그인 토큰을 읽을 수 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sekmeye Geç" + "value" : "ChatGPT giriş belirteci okunamadı." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển đến tab" + "value" : "Không thể đọc mã đăng nhập ChatGPT." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "切换到标签页" + "value" : "无法读取 ChatGPT 登录令牌。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "切換到分頁" + "value" : "無法讀取 ChatGPT 登入權杖。" } } } }, - "Switch to this database before executing" : { - "extractionState" : "stale", + "The Cloud SQL Auth Proxy did not become ready in time." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "실행 전에 이 데이터베이스로 전환" + "value" : "Cloud SQL Auth Proxy가 제한 시간 내에 준비되지 않았습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yürütmeden önce bu veritabanına geç" + "value" : "Cloud SQL Auth Proxy zamanında hazır olmadı." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển sang cơ sở dữ liệu này trước khi thực thi" + "value" : "Cloud SQL Auth Proxy không sẵn sàng kịp thời." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "执行前切换到此数据库" + "value" : "Cloud SQL Auth Proxy 未能及时就绪。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "執行前切換到此資料庫" + "value" : "Cloud SQL Auth Proxy 未能及時就緒。" } } } }, - "Switch to this schema before executing" : { - "extractionState" : "stale", + "The Cloud SQL Auth Proxy did not become ready in time: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "실행 전에 이 스키마로 전환" + "value" : "Cloud SQL Auth Proxy가 제한 시간 내에 준비되지 않았습니다: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yürütmeden önce bu şemaya geç" + "value" : "Cloud SQL Auth Proxy zamanında hazır olmadı: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển sang schema này trước khi thực thi" + "value" : "Cloud SQL Auth Proxy không sẵn sàng kịp thời: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "执行前切换到此 Schema" + "value" : "Cloud SQL Auth Proxy 未能及时就绪:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "執行前切換到此綱要" + "value" : "Cloud SQL Auth Proxy 未能及時就緒:%@" } } } }, - "Switching to database '%@' timed out." : { + "The Cloud SQL Auth Proxy failed to start." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 '%@' 전환 시간이 초과되었습니다." + "value" : "Cloud SQL Auth Proxy를 시작하지 못했습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "'%@' veritabanına geçiş zaman aşımına uğradı." + "value" : "Cloud SQL Auth Proxy başlatılamadı." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển sang cơ sở dữ liệu '%@' đã hết thời gian chờ." + "value" : "Cloud SQL Auth Proxy không khởi động được." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "切换到数据库 '%@' 超时。" + "value" : "Cloud SQL Auth Proxy 启动失败。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "切換到資料庫 '%@' 已逾時。" + "value" : "Cloud SQL Auth Proxy 啟動失敗。" } } } }, - "Switching to schema '%@' timed out." : { + "The Cloud SQL Auth Proxy failed to start: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "스키마 '%@' 전환 시간이 초과되었습니다." + "value" : "Cloud SQL Auth Proxy를 시작하지 못했습니다: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "'%@' şemasına geçiş zaman aşımına uğradı." + "value" : "Cloud SQL Auth Proxy başlatılamadı: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển sang schema '%@' đã hết thời gian chờ." + "value" : "Cloud SQL Auth Proxy không khởi động được: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "切换到 Schema '%@' 超时。" + "value" : "Cloud SQL Auth Proxy 启动失败:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "切換到綱要 '%@' 已逾時。" + "value" : "Cloud SQL Auth Proxy 啟動失敗:%@" } } } }, - "Sync" : { - "extractionState" : "stale", + "The Cloudflare tunnel did not become ready in time." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "동기화" + "value" : "Cloudflare 터널이 제한 시간 내에 준비되지 않았습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sync" + "value" : "Cloudflare tüneli zamanında hazır olmadı." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đồng bộ" + "value" : "Tunnel Cloudflare không sẵn sàng kịp thời." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "同步" + "value" : "Cloudflare 隧道未能及时就绪。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "同步" + "value" : "Cloudflare 隧道未能及時就緒。" } } } }, - "Sync (Pro)" : { - "extractionState" : "stale", + "The Cloudflare tunnel did not become ready in time: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "동기화 (Pro)" + "value" : "Cloudflare 터널이 제한 시간 내에 준비되지 않았습니다: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Senkronizasyon (Pro)" + "value" : "Cloudflare tüneli zamanında hazır olmadı: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đồng bộ (Pro)" + "value" : "Tunnel Cloudflare không sẵn sàng kịp thời: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "同步(Pro)" + "value" : "Cloudflare 隧道未能及时就绪:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "同步(Pro)" + "value" : "Cloudflare 隧道未能及時就緒:%@" } } } }, - "Sync Categories" : { + "The Codex CLI login could not be read." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "동기화 범주" + "value" : "Codex CLI 로그인을 읽을 수 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eşitleme Kategorileri" + "value" : "Codex CLI girişi okunamadı." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Danh mục đồng bộ" + "value" : "Không thể đọc đăng nhập Codex CLI." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "同步分类" + "value" : "无法读取 Codex CLI 登录。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "同步分類" + "value" : "無法讀取 Codex CLI 登入。" } } } }, - "Sync Conflict" : { - "extractionState" : "stale", + "The Cursor CLI is not installed." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "동기화 충돌" + "value" : "Cursor CLI가 설치되어 있지 않습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sync Conflict" + "value" : "Cursor CLI yüklü değil." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xung đột đồng bộ" + "value" : "Cursor CLI chưa được cài đặt." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "同步冲突" + "value" : "未安装 Cursor CLI。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "同步衝突" + "value" : "尚未安裝 Cursor CLI。" } } } }, - "Sync connections, settings, and favorites across your Macs." : { + "The Cursor CLI is not installed. Install it, then sign in." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Mac 간에 연결, 설정 및 즐겨찾기를 동기화합니다." + "value" : "Cursor CLI가 설치되어 있지 않습니다. 설치한 다음 로그인하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantıları, ayarları ve sık kullanılanları Mac'leriniz arasında eşitleyin." + "value" : "Cursor CLI yüklü değil. Yükleyin, sonra giriş yapın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đồng bộ kết nối, cài đặt và mục yêu thích giữa các máy Mac của bạn." + "value" : "Cursor CLI chưa được cài đặt. Hãy cài đặt rồi đăng nhập." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在你的多台 Mac 之间同步连接、设置和收藏。" + "value" : "未安装 Cursor CLI。请先安装,然后登录。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在你的多台 Mac 之間同步連線、設定和我的最愛。" + "value" : "尚未安裝 Cursor CLI。請先安裝,然後登入。" } } } }, - "Sync connections, settings, and history across your Macs." : { - "extractionState" : "stale", + "The Microsoft Entra ID access token was rejected by the driver." : { "localizations" : { "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "Mac 간에 연결, 설정 및 기록을 동기화합니다." - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "Sync connections, settings, and history across your Macs." + "value" : "Microsoft Entra ID 액세스 토큰이 드라이버에서 거부되었습니다.", + "state" : "translated" } - }, - "vi" : { + } + } + }, + "The Oracle listener refused the connection (ORA-%ld)." : { + "localizations" : { + "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Đồng bộ kết nối, cài đặt và lịch sử giữa các máy Mac." + "value" : "Oracle 리스너가 연결을 거부했습니다(ORA-%ld)." } - }, - "zh-Hans" : { + } + } + }, + "The Oracle listener refused the connection." : { + "localizations" : { + "ko" : { "stringUnit" : { "state" : "translated", - "value" : "在多台 Mac 之间同步连接、设置和历史记录。" + "value" : "Oracle 리스너가 연결을 거부했습니다." } - }, - "zh-Hant" : { + } + } + }, + "The Oracle server closed the connection during the login handshake." : { + "localizations" : { + "ko" : { "stringUnit" : { "state" : "translated", - "value" : "在你的多台 Mac 之間同步連線、設定與歷程記錄。" + "value" : "Oracle 서버가 로그인 핸드셰이크 중 연결을 종료했습니다." } } } }, - "Sync Error" : { + "The SOCKS proxy configuration is incomplete. Enter a proxy host and port." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "동기화 오류" + "value" : "SOCKS 프록시 구성이 완료되지 않았습니다. 프록시 호스트와 포트를 입력하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eşitleme Hatası" + "value" : "SOCKS proxy yapılandırması eksik. Bir proxy sunucusu ve portu girin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lỗi đồng bộ" + "value" : "Cấu hình SOCKS proxy chưa đầy đủ. Hãy nhập máy chủ và cổng proxy." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "同步错误" + "value" : "SOCKS 代理配置不完整。请输入代理主机和端口。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "同步錯誤" + "value" : "SOCKS 代理設定不完整。請輸入代理主機與連接埠。" } } } }, - "Sync Now" : { + "The SSH server connects to this socket instead of Host and Port. A database on a socket cannot negotiate TLS, so TablePro turns it off; the SSH tunnel still encrypts the whole path." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "지금 동기화" + "value" : "SSH 서버는 호스트 및 포트 대신 이 소켓에 연결합니다. 소켓의 데이터베이스는 TLS를 협상할 수 없으므로 TablePro에서 TLS를 끕니다. 단, SSH 터널은 전체 경로를 계속 암호화합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Şimdi Eşitle" + "value" : "SSH sunucusu, Sunucu ve Port yerine bu sokete bağlanır. Soket üzerindeki bir veritabanı TLS anlaşması yapamaz, bu yüzden TablePro TLS'i kapatır; SSH tüneli yine de tüm yolu şifreler." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đồng bộ ngay" + "value" : "Máy chủ SSH kết nối tới socket này thay vì Máy chủ và Cổng. Cơ sở dữ liệu trên socket không thể thương lượng TLS, nên TablePro tắt TLS; đường hầm SSH vẫn mã hóa toàn bộ đường truyền." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "立即同步" + "value" : "SSH 服务器会连接到此 socket,而不是主机和端口。socket 上的数据库无法协商 TLS,因此 TablePro 会关闭 TLS;SSH 隧道仍然加密整条链路。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "立即同步" + "value" : "SSH 伺服器會連線到此 socket,而不是主機與連接埠。socket 上的資料庫無法協商 TLS,因此 TablePro 會關閉 TLS;SSH 通道仍會加密整條路徑。" } } } }, - "Sync Off" : { + "The SSH server could not reach %@. That address is resolved from the SSH server, not from your Mac, so a database that only listens on 127.0.0.1 needs Host set to localhost. Also check that sshd allows TCP forwarding (AllowTcpForwarding). (%@)" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "The SSH server could not reach %1$@. That address is resolved from the SSH server, not from your Mac, so a database that only listens on 127.0.0.1 needs Host set to localhost. Also check that sshd allows TCP forwarding (AllowTcpForwarding). (%2$@)" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "동기화 끔" + "value" : "SSH 서버에서 %1$@에 연결할 수 없습니다. 이 주소는 Mac이 아니라 SSH 서버에서 확인되므로, 127.0.0.1에서만 수신하는 데이터베이스의 호스트는 localhost로 설정해야 합니다. sshd에서 TCP 전달(AllowTcpForwarding)을 허용하는지도 확인하십시오. (%2$@)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eşitleme Kapalı" + "value" : "SSH sunucusu %1$@ adresine ulaşamadı. Bu adres sizin Mac'inizden değil, SSH sunucusundan çözümlenir; bu yüzden yalnızca 127.0.0.1 dinleyen bir veritabanı için Sunucu alanı localhost olmalıdır. Ayrıca sshd'nin TCP yönlendirmeye izin verdiğini denetleyin (AllowTcpForwarding). (%2$@)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tắt đồng bộ" + "value" : "Máy chủ SSH không thể kết nối tới %1$@. Địa chỉ đó được phân giải từ máy chủ SSH chứ không phải từ máy Mac của bạn, nên cơ sở dữ liệu chỉ lắng nghe trên 127.0.0.1 cần đặt Máy chủ là localhost. Ngoài ra hãy kiểm tra sshd có cho phép chuyển tiếp TCP không (AllowTcpForwarding). (%2$@)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "同步已关闭" + "value" : "SSH 服务器无法访问 %1$@。该地址是从 SSH 服务器解析的,而不是从你的 Mac 解析,因此只监听 127.0.0.1 的数据库需要把主机设为 localhost。另请检查 sshd 是否允许 TCP 转发(AllowTcpForwarding)。(%2$@)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "同步已關閉" + "value" : "SSH 伺服器無法連到 %1$@。該位址是從 SSH 伺服器解析的,而不是從你的 Mac 解析,因此只監聽 127.0.0.1 的資料庫需要將主機設為 localhost。另請檢查 sshd 是否允許 TCP 轉送(AllowTcpForwarding)。(%2$@)" } } } }, - "Sync paused — Pro license expired" : { - "extractionState" : "stale", + "The SSH server did not accept passwordless authentication. Choose Password, Private Key, or SSH Agent." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "동기화 일시 중지 — Pro 라이선스 만료" + "value" : "SSH 서버에서 암호 없는 인증을 허용하지 않았습니다. 암호, 개인 키 또는 SSH 에이전트를 선택하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sync paused — Pro license expired" + "value" : "SSH sunucusu parolasız kimlik doğrulamayı kabul etmedi. Parola, Özel Anahtar veya SSH Agent seçin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tạm dừng đồng bộ — giấy phép Pro đã hết hạn" + "value" : "Máy chủ SSH không chấp nhận xác thực không mật khẩu. Hãy chọn Mật khẩu, Khóa riêng hoặc SSH Agent." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "同步已暂停 - Pro 许可证已过期" + "value" : "SSH 服务器不接受无密码认证。请选择密码、私钥或 SSH Agent。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "同步已暫停,Pro 授權已過期" + "value" : "SSH 伺服器不接受無密碼驗證。請選擇密碼、私密金鑰或 SSH Agent。" } } } }, - "Sync paused, Pro license expired" : { + "The SSH server did not open a forwarding channel to %@ within %d seconds. Check for a firewall between the SSH server and that address." : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "The SSH server did not open a forwarding channel to %1$@ within %2$d seconds. Check for a firewall between the SSH server and that address." + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "동기화 일시 중지, Pro 라이선스 만료" + "value" : "SSH 서버가 %2$d초 이내에 %1$@에 대한 전달 채널을 열지 못했습니다. SSH 서버와 해당 주소 사이에 방화벽이 있는지 확인하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eşitleme duraklatıldı, Pro lisansının süresi doldu" + "value" : "SSH sunucusu %2$d saniye içinde %1$@ adresine bir yönlendirme kanalı açmadı. SSH sunucusu ile bu adres arasında güvenlik duvarı olup olmadığını denetleyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đồng bộ đã tạm dừng, giấy phép Pro đã hết hạn" + "value" : "Máy chủ SSH không mở kênh chuyển tiếp tới %1$@ trong %2$d giây. Hãy kiểm tra tường lửa giữa máy chủ SSH và địa chỉ đó." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "同步已暂停,Pro 许可证已过期" + "value" : "SSH 服务器未在 %2$d 秒内建立到 %1$@ 的转发通道。请检查 SSH 服务器与该地址之间是否有防火墙。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "同步已暫停,Pro 授權已過期" + "value" : "SSH 伺服器未在 %2$d 秒內建立到 %1$@ 的轉送通道。請檢查 SSH 伺服器與該位址之間是否有防火牆。" } } } }, - "Sync Status" : { + "The SSH server is asking for additional verification." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "동기화 상태" + "value" : "SSH 서버에서 추가 인증을 요청하고 있습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eşitleme Durumu" + "value" : "SSH sunucusu ek doğrulama istiyor." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trạng thái đồng bộ" + "value" : "Máy chủ SSH đang yêu cầu xác minh bổ sung." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "同步状态" + "value" : "SSH 服务器要求进行额外验证。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "同步狀態" + "value" : "SSH 伺服器要求進行額外驗證。" } } } }, - "Sync token expired. A full sync will be performed." : { - "extractionState" : "stale", + "The SSH server would not forward the socket %@. Check that the path exists on the server and that sshd allows socket forwarding (AllowStreamLocalForwarding). (%@)" : { "localizations" : { - "ko" : { + "en" : { "stringUnit" : { - "state" : "translated", - "value" : "동기화 토큰이 만료되었습니다. 전체 동기화를 수행합니다." + "state" : "new", + "value" : "The SSH server would not forward the socket %1$@. Check that the path exists on the server and that sshd allows socket forwarding (AllowStreamLocalForwarding). (%2$@)" } - } - } - }, - "Sync zone not found. A full sync will be performed." : { - "extractionState" : "stale", - "localizations" : { + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "동기화 영역을 찾을 수 없습니다. 전체 동기화를 수행합니다." + "value" : "SSH 서버에서 소켓 %1$@ 전달을 허용하지 않았습니다. 서버에 해당 경로가 있는지, sshd에서 소켓 전달(AllowStreamLocalForwarding)을 허용하는지 확인하십시오. (%2$@)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eşitleme bölgesi bulunamadı. Tam eşitleme yapılacak." + "value" : "SSH sunucusu %1$@ soketini yönlendirmedi. Yolun sunucuda var olduğunu ve sshd'nin soket yönlendirmeye izin verdiğini denetleyin (AllowStreamLocalForwarding). (%2$@)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy vùng đồng bộ. Sẽ thực hiện đồng bộ toàn bộ." + "value" : "Máy chủ SSH không chuyển tiếp socket %1$@. Hãy kiểm tra đường dẫn có tồn tại trên máy chủ và sshd có cho phép chuyển tiếp socket không (AllowStreamLocalForwarding). (%2$@)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未找到同步区域。将执行完整同步。" + "value" : "SSH 服务器未转发 socket %1$@。请检查该路径在服务器上是否存在,以及 sshd 是否允许 socket 转发(AllowStreamLocalForwarding)。(%2$@)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "找不到同步區域。將執行完整同步。" + "value" : "SSH 伺服器未轉送 socket %1$@。請檢查該路徑在伺服器上是否存在,以及 sshd 是否允許 socket 轉送(AllowStreamLocalForwarding)。(%2$@)" } } } }, - "Synced" : { + "The SSO session for profile \"%@\" has expired. Sign in with your browser?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "동기화됨" + "value" : "프로필 \"%@\"의 SSO 세션이 만료되었습니다. 브라우저에서 로그인하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Synced" + "value" : "\"%@\" profilinin SSO oturumunun süresi doldu. Tarayıcınızla giriş yapmak ister misiniz?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã đồng bộ" + "value" : "Phiên SSO của hồ sơ \"%@\" đã hết hạn. Đăng nhập bằng trình duyệt?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已同步" + "value" : "配置文件 \"%@\" 的 SSO 会话已过期。要通过浏览器登录吗?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已同步" + "value" : "設定檔「%@」的 SSO 工作階段已過期。要透過瀏覽器登入嗎?" } } } }, - "Syncing data from %@ to %@. Value formatting can differ between engines; review the script before applying." : { + "The authenticity of host '%@' can't be established.\n\n%@ key fingerprint is:\n%@\n\nAre you sure you want to continue connecting?" : { "localizations" : { "en" : { "stringUnit" : { "state" : "new", - "value" : "Syncing data from %1$@ to %2$@. Value formatting can differ between engines; review the script before applying." + "value" : "The authenticity of host '%1$@' can't be established.\n\n%2$@ key fingerprint is:\n%3$@\n\nAre you sure you want to continue connecting?" } - } - } - }, - "Syncing with iCloud…" : { - "localizations" : { + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud와 동기화 중…" + "value" : "호스트 '%1$@'의 신뢰성을 확인할 수 없습니다.\n\n%2$@ 키 지문:\n%3$@\n\n계속 연결하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud ile eşitleniyor…" + "value" : "The authenticity / host '%@' can't be established.\n\n%@ key fingerprint is:\n%@\n\nAre you sure you want to continue connecting?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang đồng bộ với iCloud…" + "value" : "Không thể xác minh tính xác thực của máy chủ '%@'.\n\nVân tay khóa %@ là:\n%@\n\nBạn có chắc chắn muốn tiếp tục kết nối?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在与 iCloud 同步…" + "value" : "无法确认主机 '%@' 的真实性。\n\n%@ 密钥指纹为:\n%@\n\n确定要继续连接吗?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在與 iCloud 同步…" + "value" : "無法確認主機「%1$@」的真實性。\n\n%2$@ 金鑰指紋為:\n%3$@\n\n你確定要繼續連線嗎?" } } } }, - "Syncing…" : { + "The bundled sample database is missing from the app." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "동기화 중…" + "value" : "앱에 포함된 샘플 데이터베이스가 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Syncing…" + "value" : "Uygulamayla birlikte gelen örnek veritabanı eksik." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang đồng bộ…" + "value" : "Cơ sở dữ liệu mẫu đi kèm bị thiếu trong ứng dụng." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在同步…" + "value" : "应用中缺少内置的示例数据库。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在同步…" + "value" : "應用程式中缺少內建的範例資料庫。" } } } }, - "Syncs connections, settings, and history across your Macs via iCloud." : { - "extractionState" : "stale", + "The catalog location is not a folder: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud를 통해 Mac 간에 연결, 설정 및 기록을 동기화합니다." + "value" : "카탈로그 위치가 폴더가 아닙니다: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Syncs connections, settings, and history across your Macs via iCloud." + "value" : "Katalog konumu bir klasör değil: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đồng bộ kết nối, cài đặt và lịch sử giữa các máy Mac qua iCloud." + "value" : "Vị trí danh mục không phải là thư mục: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "通过 iCloud 在多台 Mac 之间同步连接、设置和历史记录。" + "value" : "目录位置不是文件夹:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "透過 iCloud 在你的多台 Mac 之間同步連線、設定與歷程記錄。" + "value" : "目錄位置不是資料夾:%@" } } } }, - "Syncs connections, settings, and SSH profiles across your Macs via iCloud." : { - "extractionState" : "stale", + "The code expires in 15 minutes." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud를 통해 Mac 간에 연결, 설정 및 SSH 프로필을 동기화합니다." + "value" : "코드는 15분 후 만료됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantıları, ayarları ve SSH profillerini iCloud üzerinden Mac'leriniz arasında senkronize eder." + "value" : "Kod 15 dakika içinde sona erer." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đồng bộ kết nối, cài đặt và cấu hình SSH giữa các máy Mac qua iCloud." + "value" : "Mã sẽ hết hạn sau 15 phút." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "通过 iCloud 在多台 Mac 之间同步连接、设置和 SSH 配置。" + "value" : "代码将在 15 分钟后过期。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "透過 iCloud 在你的多台 Mac 之間同步連線、設定與 SSH 設定檔。" + "value" : "驗證碼將在 15 分鐘後過期。" } } } }, - "Syncs connections, table favorites, settings, and SSH profiles across your Macs via iCloud." : { - "comment" : "A description of the functionality of the \"iCloud Sync\" toggle.", - "isCommentAutoGenerated" : true, + "The code has been copied to your clipboard." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud를 통해 Mac 간에 연결, 테이블 즐겨찾기, 설정 및 SSH 프로필을 동기화합니다." + "value" : "코드가 클립보드에 복사되었습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantıları, tablo sık kullanılanlarını, ayarları ve SSH profillerini iCloud aracılığıyla Mac'leriniz arasında eşzamanlar." + "value" : "Kod panonuza kopyalandı." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đồng bộ kết nối, bảng yêu thích, cài đặt và hồ sơ SSH giữa các máy Mac của bạn qua iCloud." + "value" : "Mã đã được sao chép vào clipboard." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "通过 iCloud 在你的多台 Mac 之间同步连接、表收藏、设置和 SSH 配置。" + "value" : "代码已复制到剪贴板。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "透過 iCloud 在你的多台 Mac 之間同步連線、資料表我的最愛、設定和 SSH 設定檔。" + "value" : "驗證碼已複製到剪貼簿。" } } } }, - "Syncs passwords via iCloud Keychain (end-to-end encrypted)." : { + "The connection is not available. Reconnect and try again." : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Syncs passwords via iCloud Keychain (end-to-end encrypted)." - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "iCloud 키체인을 통해 암호를 동기화합니다(종단 간 암호화)." + "value" : "연결을 사용할 수 없습니다. 다시 연결한 후 재시도하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Parolaları iCloud Keychain ile senkronize eder (uçtan uca şifreli)." + "value" : "Bağlantı kullanılamıyor. Yeniden bağlanıp tekrar deneyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đồng bộ mật khẩu qua iCloud Keychain (mã hoá đầu cuối)." + "value" : "Kết nối không khả dụng. Hãy kết nối lại và thử lại." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "通过 iCloud 钥匙串同步密码(端到端加密)。" + "value" : "连接不可用。请重新连接后重试。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "透過 iCloud 鑰匙圈同步密碼(端對端加密)。" + "value" : "連線無法使用。請重新連線後再試一次。" } } } }, - "Syntax Colors" : { + "The connection this query was recorded against no longer exists." : { + "comment" : "Error message shown when a query cannot be opened because the connection it was recorded against no longer exists.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "구문 색상" + "value" : "이 쿼리를 기록한 연결이 더 이상 존재하지 않습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sözdizimi Renkleri" + "value" : "Bu sorgunun kaydedildiği bağlantı artık yok." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Màu cú pháp" + "value" : "Kết nối mà truy vấn này được ghi lại không còn tồn tại." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "语法颜色" + "value" : "记录此查询时使用的连接已不存在。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "語法顏色" + "value" : "記錄此查詢時使用的連線已不存在。" } } } }, - "Syntax highlighting, autocomplete, and multi-tab editing" : { + "The connection was closed." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "구문 강조, 자동 완성 및 다중 탭 편집" + "value" : "연결이 종료되었습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sözdizimi vurgulama, otomatik tamamlama ve çoklu sekme düzenleme" + "value" : "Bağlantı kapatıldı." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tô sáng cú pháp, tự động hoàn thành và chỉnh sửa nhiều tab" + "value" : "Kết nối đã bị đóng." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "语法高亮、自动补全和多标签编辑" + "value" : "连接已关闭。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "語法上色、自動完成與多分頁編輯" + "value" : "連線已關閉。" } } } }, - "System" : { + "The database filter hides every database on this connection." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "시스템" + "value" : "데이터베이스 필터로 인해 이 연결의 모든 데이터베이스가 숨겨졌습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sistem" + "value" : "Veritabanı filtresi bu bağlantıdaki tüm veritabanlarını gizliyor." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hệ thống" + "value" : "Bộ lọc cơ sở dữ liệu đang ẩn mọi cơ sở dữ liệu trên kết nối này." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "系统" + "value" : "数据库筛选隐藏了此连接上的所有数据库。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "系統" + "value" : "資料庫篩選隱藏了此連線上的所有資料庫。" } } } }, - "System Reserved Shortcut" : { + "The database server enforced this, not TablePro's Safe Mode. You are most likely connected to a read replica, or the server sets new transactions to read-only. Connect to the primary server to write.\n\nServer response: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "시스템 예약 단축키" + "value" : "TablePro의 안전 모드가 아니라 데이터베이스 서버에서 적용한 제한입니다. 읽기 전용 복제본에 연결했거나 서버에서 새 트랜잭션을 읽기 전용으로 설정했을 가능성이 큽니다. 쓰려면 기본 서버에 연결하십시오.\n\n서버 응답: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sistem Ayrılmış Kısayol" + "value" : "Bunu TablePro'nun Safe Mode ayarı değil, veritabanı sunucusu uyguladı. Büyük olasılıkla bir okuma kopyasına bağlısınız veya sunucu yeni işlemleri salt okunur yapıyor. Yazmak için birincil sunucuya bağlanın.\n\nSunucu yanıtı: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phím tắt hệ thống" + "value" : "Đây là do máy chủ cơ sở dữ liệu áp đặt, không phải Chế độ an toàn của TablePro. Nhiều khả năng bạn đang kết nối tới bản sao chỉ đọc, hoặc máy chủ đặt các giao dịch mới ở chế độ chỉ đọc. Hãy kết nối tới máy chủ chính để ghi.\n\nPhản hồi của máy chủ: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "系统保留快捷键" + "value" : "这是数据库服务器的限制,不是 TablePro 的安全模式。你很可能连接到了只读副本,或者服务器将新事务设为只读。请连接主服务器以写入。\n\n服务器响应:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "系統保留快速鍵" + "value" : "這是資料庫伺服器的限制,不是 TablePro 的安全模式。你很可能連線到唯讀副本,或伺服器將新交易設為唯讀。請連線到主要伺服器以寫入。\n\n伺服器回應:%@" } } } }, - "System Table" : { + "The database server rejected this write because the connection is read-only." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "시스템 테이블" + "value" : "연결이 읽기 전용이어서 데이터베이스 서버에서 이 쓰기 작업을 거부했습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sistem Tablosu" + "value" : "Bağlantı salt okunur olduğu için veritabanı sunucusu bu yazma işlemini reddetti." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bảng hệ thống" + "value" : "Máy chủ cơ sở dữ liệu từ chối thao tác ghi này vì kết nối ở chế độ chỉ đọc." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "系统表" + "value" : "数据库服务器拒绝了此次写入,因为该连接为只读。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "系統資料表" + "value" : "資料庫伺服器拒絕了這次寫入,因為該連線為唯讀。" } } } }, - "System Tables" : { + "The database this user belongs to" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "시스템 테이블" + "value" : "이 사용자가 속한 데이터베이스" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sistem Tabloları" + "value" : "Bu kullanıcının ait olduğu veritabanı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bảng hệ thống" + "value" : "Cơ sở dữ liệu mà người dùng này thuộc về" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "系统表" + "value" : "此用户所属的数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "系統資料表" + "value" : "此使用者所屬的資料庫" } } } }, - "Tab" : { + "The destructive query to execute" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "탭" + "value" : "실행할 파괴적 쿼리" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sekme" + "value" : "Yürütülecek yıkıcı sorgu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tab" + "value" : "Truy vấn có tính phá hủy cần thực thi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "制表符" + "value" : "要执行的破坏性查询" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "定位字元" + "value" : "要執行的破壞性查詢" } } } }, - "Tab Behavior" : { - "extractionState" : "stale", + "The diagram could not be converted to a PNG image." : { + "comment" : "Error message when the ER diagram could not be exported as PNG.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "탭 동작" + "value" : "다이어그램을 PNG 이미지로 변환할 수 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tab Behavior" + "value" : "Diyagram PNG görüntüsüne dönüştürülemedi." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hành vi tab" + "value" : "Không thể chuyển sơ đồ thành ảnh PNG." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "标签页行为" + "value" : "无法将图表转换为 PNG 图片。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "分頁行為" + "value" : "無法將圖表轉換為 PNG 圖片。" } } } }, - "Tab id from list_recent_tabs" : { - - }, - "Tab id, accepted by focus_query_tab" : { - - }, - "Tab label" : { - - }, - "Tab that came forward" : { - - }, - "Tab that was raised" : { - + "The driver did not return this object's definition, so only its name was compared." : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "드라이버가 이 객체의 정의를 반환하지 않아 이름만 비교했습니다.", + "state" : "translated" + } + } + } }, - "Tab width:" : { + "The encrypted file is corrupt or incomplete" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "탭 너비:" + "value" : "암호화된 파일이 손상되었거나 불완전합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sekme genişliği:" + "value" : "Şifreli dosya bozuk veya eksik" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Độ rộng tab:" + "value" : "Tệp mã hóa bị hỏng hoặc không đầy đủ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "制表符宽度:" + "value" : "加密文件已损坏或不完整" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Tab 寬度:" + "value" : "加密的檔案已損毀或不完整" } } } }, - "Table" : { + "The filter field is not in the toolbar." : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "필터 필드가 도구 막대에 없습니다.", + "state" : "translated" + } + } + } + }, + "The folder \"%@\" will be deleted. Items inside will be moved to the parent level." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블" + "value" : "\"%@\" 폴더가 삭제됩니다. 폴더 안의 항목은 상위 단계로 이동됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tablo" + "value" : "\"%@\" klasörü silinecek. İçindeki öğeler bir üst seviyeye taşınacak." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bảng" + "value" : "Thư mục \"%@\" sẽ bị xoá. Các mục bên trong sẽ được chuyển lên cấp cha." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "表" + "value" : "文件夹 \"%@\" 将被删除。其中的项目将移至上一级。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料表" + "value" : "資料夾「%@」將被刪除。其中的項目將移至上一層。" } } } }, - "Table '%@' has no columns or does not exist" : { + "The following %d queries may permanently modify or delete data. This action cannot be undone.\n\n%@" : { "extractionState" : "stale", "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "The following %1$d queries may permanently modify or delete data. This action cannot be undone.\n\n%2$@" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 '%@'에 열이 없거나 테이블이 존재하지 않습니다" + "value" : "다음 %1$d개 쿼리는 데이터를 영구적으로 변경하거나 삭제할 수 있습니다. 이 작업은 실행 취소할 수 없습니다.\n\n%2$@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "tablo '%@' has no columns or does not exist" + "value" : "Aşağıdaki %d sorgu verileri kalıcı olarak değiştirebilir veya silebilir. Bu işlem geri alınamaz.\n\n%@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bảng '%@' không có cột hoặc không tồn tại" + "value" : "%d truy vấn sau có thể sửa đổi hoặc xóa dữ liệu vĩnh viễn. Hành động này không thể hoàn tác.\n\n%@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "表 '%@' 没有列或不存在" + "value" : "以下 %d 条查询可能永久修改或删除数据。此操作无法撤销。\n\n%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料表「%@」沒有欄位或不存在" + "value" : "下列 %1$d 個查詢可能會永久修改或刪除資料。此動作無法復原。\n\n%2$@" } } } }, - "Table Actions" : { + "The following %lld queries may permanently modify or delete data. This action cannot be undone.\n\n%@" : { + "extractionState" : "stale", "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "The following %1$lld queries may permanently modify or delete data. This action cannot be undone.\n\n%2$@" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 작업" + "value" : "다음 %1$lld개 쿼리는 데이터를 영구적으로 변경하거나 삭제할 수 있습니다. 이 작업은 실행 취소할 수 없습니다.\n\n%2$@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tablo İşlemleri" + "value" : "The following %lld queries may permanently modify or delete data. This action cannot be undone.\n\n%@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thao tác bảng" + "value" : "%1$lld truy vấn sau có thể thay đổi hoặc xóa dữ liệu vĩnh viễn. Hành động này không thể hoàn tác.\n\n%2$@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "表操作" + "value" : "以下 %lld 个查询可能会永久修改或删除数据。此操作无法撤销。\n\n%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料表操作" + "value" : "下列 %1$lld 個查詢可能會永久修改或刪除資料。此動作無法復原。\n\n%2$@" } } } }, - "Table and view names in a database. Pass database and schema to look outside the browsed one, and row_counts=true for approximate row counts." : { - - }, - "Table and view names, without columns" : { - - }, - "Table Browsing" : { + "The following changes may cause data loss:\n\n%@\n\nDo you want to proceed?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 탐색" + "value" : "다음 변경 사항으로 인해 데이터가 손실될 수 있습니다.\n\n%@\n\n계속하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tablo Gezinme" + "value" : "Aşağıdaki değişiklikler veri kaybına neden olabilir:\n\n%@\n\nDevam etmek istiyor musunuz?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Duyệt bảng" + "value" : "Các thay đổi sau có thể gây mất dữ liệu:\n\n%@\n\nBạn có muốn tiếp tục?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "表浏览" + "value" : "以下更改可能导致数据丢失:\n\n%@\n\n是否继续?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料表瀏覽" - } - } - } - }, - "Table collation differs: %@ on source, %@ on target." : { - "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Table collation differs: %1$@ on source, %2$@ on target." + "value" : "下列變更可能導致資料遺失:\n\n%@\n\n是否要繼續?" } } } }, - "Table comment" : { - - }, - "Table creation options not available" : { + "The following plugins were rejected:\n\n%@\n\nPlease update them from the plugin registry." : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 생성 옵션을 사용할 수 없습니다" + "value" : "다음 플러그인이 거부되었습니다.\n\n%@\n\n플러그인 레지스트리에서 업데이트하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Table creation options not available" + "value" : "Aşağıdaki eklentiler reddedildi:\n\n%@\n\nLütfen eklenti kayıt defterinden güncelleyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tùy chọn tạo bảng không khả dụng" + "value" : "Các plugin sau bị từ chối:\n\n%@\n\nVui lòng cập nhật chúng từ kho plugin." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "表创建选项不可用" + "value" : "以下插件被拒绝:\n\n%@\n\n请从插件注册表中更新它们。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法使用資料表建立選項" + "value" : "下列外掛已遭拒絕:\n\n%@\n\n請從外掛註冊更新它們。" } } } }, - "Table DDL" : { - - }, - "Table Description" : { - - }, - "Table Favorites:" : { + "The following plugins were rejected:\n\n%@\n\nYou can update them from the plugin registry in Settings." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 즐겨찾기:" + "value" : "다음 플러그인이 거부되었습니다.\n\n%@\n\n설정의 플러그인 레지스트리에서 업데이트할 수 있습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tablo Sık Kullanılanları:" + "value" : "Aşağıdaki eklentiler reddedildi:\n\n%@\n\nBunları Ayarlar'daki eklenti kayıt defterinden güncelleyebilirsiniz." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bảng yêu thích:" + "value" : "Các plugin sau đã bị từ chối:\n\n%@\n\nBạn có thể cập nhật chúng từ plugin registry trong Cài đặt." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "表收藏:" + "value" : "以下插件已被拒绝:\n\n%@\n\n你可以在设置中的插件注册表更新它们。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料表我的最愛:" + "value" : "下列外掛已遭拒絕:\n\n%@\n\n你可以在「設定」的外掛註冊更新它們。" } } } }, - "Table Info" : { - "extractionState" : "stale", + "The instance connection name must be in the form project:region:instance." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 정보" + "value" : "인스턴스 연결 이름은 project:region:instance 형식이어야 합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Table Info" + "value" : "Örnek bağlantı adı project:region:instance biçiminde olmalıdır." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thông tin bảng" + "value" : "Tên kết nối instance phải theo dạng project:region:instance." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "表信息" + "value" : "实例连接名称必须为 project:region:instance 形式。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料表資訊" + "value" : "執行個體連線名稱必須為 project:region:instance 形式。" } } } }, - "Table List" : { - - }, - "Table Maintenance" : { + "The license has been suspended." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 유지 관리" + "value" : "라이선스가 정지되었습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tablo Bakımı" + "value" : "Lisans askıya alındı." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bảo trì bảng" + "value" : "Giấy phép đã bị đình chỉ." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "表维护" + "value" : "许可证已被暂停。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料表維護" + "value" : "授權已遭停用。" } } } }, - "Table name" : { + "The license has expired." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 이름" + "value" : "라이선스가 만료되었습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tablo adı" + "value" : "Lisansın süresi doldu." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên bảng" + "value" : "Giấy phép đã hết hạn." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "表名" + "value" : "许可证已过期。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料表名稱" + "value" : "授權已過期。" } } } }, - "Table Name" : { - "extractionState" : "stale", + "The license key is invalid." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 이름" + "value" : "라이선스 키가 유효하지 않습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Table Name" + "value" : "Lisans anahtarı geçersiz." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên bảng" + "value" : "Mã giấy phép không hợp lệ." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "表名" + "value" : "许可证密钥无效。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料表名稱" + "value" : "授權金鑰無效。" } } } }, - "Table name '%@' may only contain letters, digits, underscore, and '.'." : { - - }, - "Table name to open" : { - "extractionState" : "stale", + "The listener does not know the requested SID" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "열려는 테이블 이름" + "value" : "리스너가 요청한 SID를 인식하지 못합니다" } - }, - "tr" : { + } + } + }, + "The listener does not know the requested service name" : { + "localizations" : { + "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Açılacak tablo adı" + "value" : "리스너가 요청한 서비스 이름을 인식하지 못합니다" } - }, - "vi" : { + } + } + }, + "The listener has no handler available for the requested service" : { + "localizations" : { + "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Tên bảng cần mở" + "value" : "리스너에 요청한 서비스를 처리할 수 있는 핸들러가 없습니다" } - }, - "zh-Hans" : { + } + } + }, + "The listener is blocking new connections to the requested service" : { + "localizations" : { + "ko" : { "stringUnit" : { "state" : "translated", - "value" : "要打开的表名" + "value" : "리스너가 요청한 서비스에 대한 새 연결을 차단하고 있습니다" } - }, - "zh-Hant" : { + } + } + }, + "The object types taking part in the comparison are set in Options." : { + "localizations" : { + "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "要開啟的資料表名稱" + "value" : "비교에 포함할 객체 유형은 옵션에서 설정합니다.", + "state" : "translated" } } } }, - "Table name, or 'query'" : { - - }, - "Table Name:" : { + "The partial backup file will be removed." : { + "comment" : "A message displayed in a cancel confirmation alert for a backup.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 이름:" + "value" : "부분 백업 파일이 삭제됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tablo Adı:" + "value" : "Kısmi yedek dosyası kaldırılacak." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên bảng:" + "value" : "File sao lưu dở dang sẽ bị xóa." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "表名:" + "value" : "未完成的备份文件将被移除。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料表名稱:" + "value" : "未完成的備份檔案將被移除。" } } } }, - "Table name. Omit to cover the whole schema." : { - - }, - "Table names to export (alternative to query)" : { - "extractionState" : "stale", + "The password source produced an empty password" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "내보낼 테이블 이름(쿼리 대신 사용)" + "value" : "암호 소스에서 빈 암호를 반환했습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dışa aktarılacak tablo adları (sorguya alternatif)" + "value" : "Parola kaynağı boş bir parola döndürdü" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên các bảng cần xuất (thay cho truy vấn)" + "value" : "Nguồn mật khẩu trả về mật khẩu rỗng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "要导出的表名(可代替查询)" + "value" : "密码来源返回了空密码" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "要匯出的資料表名稱(可代替查詢)" + "value" : "密碼來源產生了空白密碼" } } } }, - "Table or column names to quote" : { - - }, - "Table or view name" : { - - }, - "Table rebuild" : { - - }, - "Table that received the rows" : { - - }, - "Table that was counted" : { - - }, - "Table that was described" : { - - }, - "Table that was opened" : { - - }, - "Table the change applies to, if it is one table" : { - - }, - "Table the DDL describes" : { - - }, - "Table the statistics describe" : { - - }, - "Table the tab shows" : { - - }, - "Table the trigger fires for" : { - - }, - "Table the triggers belong to, when one was named" : { - - }, - "Table to act on. Omit for the whole database." : { - - }, - "Table to audit" : { - - }, - "Table to explain" : { - - }, - "Table to open" : { - - }, - "table_name" : { + "The passwords do not match." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "table_name" + "value" : "암호가 일치하지 않습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "table_name" + "value" : "Parolalar eşleşmiyor." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "table_name" + "value" : "Mật khẩu không khớp." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "table_name" + "value" : "两次输入的密码不一致。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "table_name" + "value" : "兩次輸入的密碼不一致。" } } } }, - "Table: %@" : { - "extractionState" : "stale", + "The plugin depends on a component that's missing or incompatible with this Mac." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블: %@" + "value" : "이 플러그인에 필요한 구성 요소가 없거나 이 Mac과 호환되지 않습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "tablo: %@" + "value" : "Eklenti, eksik olan veya bu Mac ile uyumsuz bir bileşene bağlı." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bảng: %@" + "value" : "Plugin phụ thuộc vào một thành phần bị thiếu hoặc không tương thích với máy Mac này." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "表:%@" + "value" : "该插件依赖的组件缺失或与这台 Mac 不兼容。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料表:%@" + "value" : "該外掛依賴的元件遺失或與這台 Mac 不相容。" } } } }, - "TablePro" : { - "extractionState" : "stale", + "The plugin doesn't include a build for this Mac's processor architecture." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro" + "value" : "이 플러그인에는 이 Mac의 프로세서 아키텍처용 빌드가 포함되어 있지 않습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro" + "value" : "Eklenti, bu Mac'in işlemci mimarisi için bir sürüm içermiyor." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro" + "value" : "Plugin không có bản dựng cho kiến trúc bộ xử lý của máy Mac này." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro" + "value" : "该插件不包含适用于这台 Mac 处理器架构的版本。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro" + "value" : "該外掛不含適用於這台 Mac 處理器架構的版本。" } } } }, - "tablepro command" : { + "The plugin isn't compatible with this version of TablePro. Update the app or reinstall the plugin." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "tablepro 명령" + "value" : "이 플러그인은 현재 TablePro 버전과 호환되지 않습니다. 앱을 업데이트하거나 플러그인을 다시 설치하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "tablepro komutu" + "value" : "Eklenti bu TablePro sürümüyle uyumlu değil. Uygulamayı güncelleyin veya eklentiyi yeniden yükleyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "lệnh tablepro" + "value" : "Plugin không tương thích với phiên bản TablePro này. Hãy cập nhật ứng dụng hoặc cài lại plugin." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "tablepro 命令" + "value" : "该插件与此版本的 TablePro 不兼容。请更新应用或重新安装插件。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "tablepro 指令" + "value" : "該外掛與此版本的 TablePro 不相容。請更新應用程式或重新安裝外掛。" } } } }, - "TablePro could not do this for you. Run this in Terminal instead:" : { + "The plugin was built for an incompatible runtime." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro가 이 작업을 수행할 수 없습니다. 대신 터미널에서 다음을 실행하십시오:" + "value" : "이 플러그인은 호환되지 않는 런타임용으로 빌드되었습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro bunu sizin için yapamadı. Bunun yerine Terminal'de şunu çalıştırın:" + "value" : "Eklenti uyumsuz bir çalışma zamanı için derlenmiş." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro không thể làm việc này giúp bạn. Hãy chạy lệnh sau trong Terminal:" + "value" : "Plugin được xây dựng cho một runtime không tương thích." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro 无法替你完成此操作。请在终端中运行:" + "value" : "该插件是为不兼容的运行时构建的。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro 無法替你完成此操作。請改在終端機執行:" + "value" : "該外掛是為不相容的執行環境建置的。" } } } }, - "TablePro could not open its query history database, so nothing is being recorded and nothing can be shown. Your existing history is still on disk." : { - "comment" : "A description of the error that occurs when the query history database cannot be opened.", - "isCommentAutoGenerated" : true, + "The plugin's executable couldn't be loaded. It may be damaged or improperly signed." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro에서 쿼리 기록 데이터베이스를 열 수 없어 기록되거나 표시되는 항목이 없습니다. 기존 기록은 디스크에 그대로 남아 있습니다." + "value" : "플러그인의 실행 파일을 불러올 수 없습니다. 파일이 손상되었거나 올바르게 서명되지 않았을 수 있습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro sorgu geçmişi veritabanını açamadı, bu yüzden hiçbir şey kaydedilmiyor ve gösterilemiyor. Mevcut geçmişiniz hâlâ diskte." + "value" : "Eklentinin çalıştırılabilir dosyası yüklenemedi. Hasarlı veya hatalı imzalanmış olabilir." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro không mở được cơ sở dữ liệu lịch sử truy vấn, nên không có gì được ghi lại và không có gì để hiển thị. Lịch sử hiện có của bạn vẫn nằm trên đĩa." + "value" : "Không thể tải tệp thực thi của plugin. Có thể tệp bị hỏng hoặc ký không đúng." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro 无法打开它的查询历史数据库,因此不会记录任何内容,也无法显示任何内容。你已有的历史仍在磁盘上。" + "value" : "无法加载插件的可执行文件。它可能已损坏或签名不正确。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro 無法開啟它的查詢歷史資料庫,因此不會記錄任何內容,也無法顯示任何內容。你已有的記錄仍在磁碟上。" + "value" : "無法載入外掛的執行檔。它可能已損壞或簽章不正確。" } } } }, - "TablePro couldn't reach the plugin registry to update this plugin. Check your connection and reopen TablePro." : { + "The plugin's executable file is missing." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro에서 이 플러그인을 업데이트하기 위해 플러그인 레지스트리에 연결할 수 없습니다. 연결을 확인하고 TablePro를 다시 여십시오." + "value" : "플러그인의 실행 파일이 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro bu eklentiyi güncellemek için eklenti deposuna ulaşamadı. Bağlantınızı denetleyip TablePro'yu yeniden açın." + "value" : "Eklentinin çalıştırılabilir dosyası eksik." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro không thể truy cập registry plugin để cập nhật plugin này. Kiểm tra kết nối mạng và mở lại TablePro." + "value" : "Thiếu tệp thực thi của plugin." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro 无法访问插件注册表来更新此插件。请检查网络连接并重新打开 TablePro。" + "value" : "缺少插件的可执行文件。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro 無法連上外掛註冊來更新此外掛。請檢查你的網路連線並重新開啟 TablePro。" + "value" : "缺少外掛的執行檔。" } } } }, - "TablePro did not open a window for that connection in time." : { - - }, - "TablePro did not open that table in time." : { - - }, - "TablePro has no server dashboard for this engine." : { - - }, - "TablePro has not looked up this table's key columns, so it cannot tell which row an edit would change." : { - - }, - "TablePro includes these open source libraries. Pick one to read its license." : { - - }, - "TablePro is a native macOS database client. This server exposes the connections the user has already configured, so you never handle credentials: name a connection by its id and TablePro opens, reuses and authorizes it for you.\n\nStart with list_connections, then list_databases, list_schemas and list_tables to find your way around, and describe_table before writing any query, because it returns the columns, indexes and foreign keys you need to get the SQL right the first time. Prefer the dedicated tools over hand-written SQL wherever one exists: they quote identifiers correctly for the engine in front of you, apply the user's row limits, and are allowed on connections where raw execution is not.\n\nEvery connection carries the user's own policy. A connection may be read-only for external clients, may be invisible to AI entirely, and may be in a safe mode that asks the user to confirm each write. A refusal is that policy speaking, not a transient error, so do not retry it and do not look for a way around it. Destructive statements need the user's consent, which TablePro collects itself." : { - - }, - "TablePro only notifies when the result is not already on screen." : { - - }, - "TablePro runs Anthropic's claude tool in headless mode. Claude Code is built for you to use directly, not as a backend for other apps, so this path can break with any Claude Code release." : { + "The previous code wasn't accepted. Wait for your authenticator to refresh, then enter the new code." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro는 Anthropic의 claude 도구를 헤드리스 모드로 실행합니다. Claude Code는 다른 앱의 백엔드가 아니라 사용자가 직접 사용하도록 만들어졌으므로, 이 방식은 Claude Code 릴리스에 따라 작동하지 않을 수 있습니다." + "value" : "이전 코드는 승인되지 않았습니다. 인증 앱이 새로 고침될 때까지 기다린 다음 새 코드를 입력하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro, Anthropic'in claude aracını başsız modda çalıştırır. Claude Code doğrudan sizin kullanmanız için yapıldı, başka uygulamalara arka uç olsun diye değil; bu yüzden bu yol herhangi bir Claude Code sürümüyle bozulabilir." + "value" : "Önceki kod kabul edilmedi. Kimlik doğrulayıcınızın yenilenmesini bekleyin, ardından yeni kodu girin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro chạy công cụ claude của Anthropic ở chế độ headless. Claude Code được tạo ra để bạn dùng trực tiếp, không phải làm backend cho ứng dụng khác, nên cách này có thể hỏng sau bất kỳ bản phát hành Claude Code nào." + "value" : "Mã trước đó không được chấp nhận. Chờ ứng dụng xác thực làm mới rồi nhập mã mới." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro 以无界面模式运行 Anthropic 的 claude 工具。Claude Code 是给你直接使用的,不是给其他应用当后端,因此这条路径可能在任何一次 Claude Code 更新后失效。" + "value" : "上一个验证码未被接受。请等待验证器刷新后输入新验证码。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro 以無介面模式執行 Anthropic 的 claude 工具。Claude Code 是給你直接使用的,不是給其他應用程式當後端,因此這條路徑可能在任何一次 Claude Code 更新後失效。" + "value" : "上一個驗證碼未被接受。請等待你的驗證器重新整理後,再輸入新的驗證碼。" } } } }, - "TablePro Website" : { + "The previous response wasn't accepted. Try again." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro 웹사이트" + "value" : "이전 응답이 승인되지 않았습니다. 다시 시도하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro Website" + "value" : "Önceki yanıt kabul edilmedi. Tekrar deneyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trang web TablePro" + "value" : "Câu trả lời trước không được chấp nhận. Hãy thử lại." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro 网站" + "value" : "上一次的回答未被接受。请重试。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro 網站" + "value" : "上一次的回答未被接受。請再試一次。" } } } }, - "TablePro's MCP server does not provide this endpoint." : { - - }, - "TablePro's MCP server has too many open connections." : { - - }, - "TablePro's Safe Mode is set to read-only for this connection. Destructive operations are not permitted." : { + "The provider configuration and stored API key will be deleted." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 연결에서는 TablePro의 안전 모드가 읽기 전용으로 설정되어 있습니다. 파괴적인 작업은 허용되지 않습니다." + "value" : "제공업체 구성과 저장된 API 키가 삭제됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu bağlantı için TablePro'nun Safe Mode ayarı salt okunur. Yıkıcı işlemlere izin verilmez." + "value" : "Sağlayıcı yapılandırması ve saklanan API anahtarı silinecek." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chế độ an toàn của TablePro đang đặt kết nối này ở chế độ chỉ đọc. Không cho phép các thao tác phá hủy dữ liệu." + "value" : "Cấu hình nhà cung cấp và khóa API đã lưu sẽ bị xóa." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro 的安全模式已将此连接设为只读。不允许执行破坏性操作。" + "value" : "将删除提供商配置和已存储的 API 密钥。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro 的安全模式已將此連線設為唯讀。不允許執行破壞性操作。" + "value" : "供應商設定與已儲存的 API 金鑰將被刪除。" } } } }, - "TablePro's Safe Mode is set to read-only for this connection. Set it to Confirm Writes or higher to allow this tool." : { + "The query did not finish within the configured timeout, so the connection was reset. Run the query again." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 연결에서는 TablePro의 안전 모드가 읽기 전용으로 설정되어 있습니다. 이 도구를 허용하려면 쓰기 확인 이상으로 설정하십시오." + "value" : "쿼리가 설정된 제한 시간 내에 완료되지 않아 연결을 재설정했습니다. 쿼리를 다시 실행하십시오." + } + } + } + }, + "The query history database could not be opened, so there is nothing to summarize." : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "쿼리 기록 데이터베이스를 열 수 없어 요약할 내용이 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu bağlantı için TablePro'nun Safe Mode ayarı salt okunur. Bu araca izin vermek için Confirm Writes veya daha üstünü seçin." + "value" : "Sorgu geçmişi veritabanı açılamadı, bu yüzden özetlenecek bir şey yok." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chế độ an toàn của TablePro đang đặt kết nối này ở chế độ chỉ đọc. Đặt thành Confirm Writes hoặc cao hơn để cho phép công cụ này." + "value" : "Không mở được cơ sở dữ liệu lịch sử truy vấn, nên không có gì để tổng hợp." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro 的安全模式已将此连接设为只读。请设为 Confirm Writes 或更高级别以允许此工具。" + "value" : "无法打开查询历史数据库,因此没有可汇总的内容。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro 的安全模式已將此連線設為唯讀。請設為 Confirm Writes 或更高層級以允許此工具。" + "value" : "無法開啟查詢歷史資料庫,因此沒有可彙總的內容。" } } } }, - "Tables" : { + "The run was rolled back. %@ is unchanged." : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "실행이 롤백되었습니다. %@은(는) 변경되지 않았습니다.", + "state" : "translated" + } + } + } + }, + "The script already ran. Compare again to see where the target stands." : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "스크립트가 이미 실행되었습니다. 대상의 현재 상태를 보려면 다시 비교하십시오.", + "state" : "translated" + } + } + } + }, + "The secret manager did not return valid JSON." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블" + "value" : "보안 정보 관리자가 유효한 JSON을 반환하지 않았습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tablolar" + "value" : "Secret manager geçerli bir JSON döndürmedi." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bảng" + "value" : "Trình quản lý secret không trả về JSON hợp lệ." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "表" + "value" : "secret manager 未返回有效的 JSON。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料表" + "value" : "secret manager 未回傳有效的 JSON。" } } } }, - "Tables always take part." : { - - }, - "Tables and columns of the database this connection is browsing" : { - - }, - "Tables and their columns for the database a connection is browsing. Capped at 100 tables." : { - - }, - "Tables and views in scope" : { - - }, - "Tables of %@" : { - - }, - "Tables start out of the comparison so a first run cannot stream every row." : { - - }, - "Tables that carry at least one foreign key" : { - - }, - "Tables that carry at least one index" : { - - }, - "Tables to export. Use instead of 'query'." : { - - }, - "Tables with more estimated rows use approximate counts to avoid slow COUNT(*) queries" : { + "The selected axes contain only null, binary, or invalid values." : { "localizations" : { "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "예상 행 수가 더 많은 테이블은 느린 COUNT(*) 쿼리를 피하기 위해 근삿값을 사용합니다" + "value" : "선택한 축에 null, 바이너리 또는 유효하지 않은 값만 있습니다.", + "state" : "translated" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Daha fazla tahmini satıra sahip tablolar, yavaş COUNT(*) sorgularından kaçınmak için yaklaşık sayımlar kullanır" + "value" : "Seçilen eksenler yalnızca null, ikili veya geçersiz değerler içeriyor." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Các bảng có nhiều dòng ước tính sử dụng đếm xấp xỉ để tránh truy vấn COUNT(*) chậm" + "value" : "Các trục đã chọn chỉ chứa giá trị null, nhị phân hoặc không hợp lệ." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "估算行数较多的表使用近似计数以避免慢速 COUNT(*) 查询" + "value" : "所选坐标轴只包含空值、二进制或无效值。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "估算列數較多的資料表會使用近似計數,以避免緩慢的 COUNT(*) 查詢" + "value" : "所選座標軸只包含空值、二進位或無效值。" } } } }, - "Tables, columns, indexes, and foreign keys for a connected database" : { - "extractionState" : "stale", + "The selected backup file is not readable." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결된 데이터베이스의 테이블, 열, 인덱스 및 외래 키" + "value" : "선택한 백업 파일을 읽을 수 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlı bir veritabanının tabloları, sütunları, indeksleri ve yabancı anahtarları" + "value" : "Seçilen yedek dosyası okunamıyor." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bảng, cột, index và khóa ngoại của một cơ sở dữ liệu đã kết nối" + "value" : "Không đọc được file sao lưu đã chọn." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "某个已连接数据库的表、列、索引和外键" + "value" : "所选备份文件不可读。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "某個已連線資料庫的資料表、欄位、索引和外鍵" + "value" : "所選的備份檔案無法讀取。" } } } }, - "Tables, columns, indexes, and foreign keys for the connected database" : { - "extractionState" : "stale", + "The server sent an unexpected message and the connection was reset. Run the query again." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결된 데이터베이스의 테이블, 열, 인덱스 및 외래 키" + "value" : "서버에서 예상하지 못한 메시지를 보내 연결을 재설정했습니다. 쿼리를 다시 실행하십시오." + } + } + } + }, + "The server will be accessible from other devices on your network. Authentication and TLS are enabled automatically." : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "네트워크의 다른 기기에서 서버에 접근할 수 있습니다. 인증과 TLS가 자동으로 활성화됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlı veritabanının tabloları, sütunları, indeksleri ve yabancı anahtarları" + "value" : "Sunucuya ağınızdaki diğer cihazlardan erişilebilecek. Kimlik doğrulama ve TLS otomatik olarak etkinleştirilir." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bảng, cột, index và khóa ngoại của cơ sở dữ liệu đã kết nối" + "value" : "Server sẽ truy cập được từ các thiết bị khác trong mạng của bạn. Xác thực và TLS được bật tự động." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已连接数据库的表、列、索引和外键" + "value" : "服务器将可被网络上的其他设备访问。认证和 TLS 会自动启用。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已連線資料庫的資料表、欄位、索引和外鍵" + "value" : "伺服器將可由網路上的其他裝置存取。驗證與 TLS 會自動啟用。" } } } }, - "Tables, views, and functions owned by this role will be deleted." : { + "The source and the target are the same database." : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "원본과 대상이 같은 데이터베이스입니다.", + "state" : "translated" + } + } + } + }, + "The source driver cannot stream rows for a comparison." : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "원본 드라이버는 비교를 위해 행을 스트리밍할 수 없습니다.", + "state" : "translated" + } + } + } + }, + "The statements ran but the transaction could not be committed: %@" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "구문은 실행되었지만 트랜잭션을 커밋할 수 없었습니다: %@", + "state" : "translated" + } + } + } + }, + "The target connection is no longer open." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 역할이 소유한 테이블, 뷰 및 함수가 삭제됩니다." + "value" : "대상 연결이 더 이상 열려 있지 않습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu role ait tablolar, görünümler ve fonksiyonlar silinecek." + "value" : "Hedef bağlantı artık açık değil." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Các bảng, view và hàm thuộc sở hữu của vai trò này sẽ bị xóa." + "value" : "Kết nối đích không còn mở." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "该角色拥有的表、视图和函数将被删除。" + "value" : "目标连接已不再打开。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "該角色擁有的資料表、檢視表和函式將被刪除。" + "value" : "目標連線已不再開啟。" } } } }, - "Tablespace" : { - "extractionState" : "stale", + "The target database may be in a partial state. Review the database and clean up as needed." : { + "comment" : "A message that appears when restoring a database and the user is advised to review and clean up the database.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블스페이스" + "value" : "대상 데이터베이스가 불완전한 상태일 수 있습니다. 데이터베이스를 검토하고 필요에 따라 정리하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tablespace" + "value" : "Hedef veritabanı kısmi bir durumda olabilir. Veritabanını gözden geçirin ve gerektiği gibi temizleyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tablespace" + "value" : "Cơ sở dữ liệu đích có thể đang ở trạng thái dở dang. Hãy xem lại và dọn dẹp nếu cần." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "表空间" + "value" : "目标数据库可能处于不完整状态。请检查数据库并按需清理。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料表空間" + "value" : "目標資料庫可能處於不完整的狀態。請檢查資料庫並視需要清理。" } } } }, - "Tabs" : { + "The target database may be left in a partial state." : { + "comment" : "A message displayed in a cancel confirmation alert for a database restore.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "탭" + "value" : "대상 데이터베이스가 불완전한 상태로 남을 수 있습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tabs" + "value" : "Hedef veritabanı kısmi bir durumda kalabilir." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tab" + "value" : "Cơ sở dữ liệu đích có thể bị bỏ lại ở trạng thái dở dang." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "标签页" + "value" : "目标数据库可能会处于不完整状态。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "分頁" + "value" : "目標資料庫可能會處於不完整的狀態。" } } } }, - "Tag" : { + "The target does not support creating table %@." : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "대상은 테이블 %@ 생성을 지원하지 않습니다.", + "state" : "translated" + } + } + } + }, + "The target driver cannot generate a sync script." : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "대상 드라이버는 동기화 스크립트를 생성할 수 없습니다.", + "state" : "translated" + } + } + } + }, + "The target driver cannot run a sync script." : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "대상 드라이버는 동기화 스크립트를 실행할 수 없습니다.", + "state" : "translated" + } + } + } + }, + "The target driver cannot stream rows for a comparison." : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "대상 드라이버는 비교를 위해 행을 스트리밍할 수 없습니다.", + "state" : "translated" + } + } + } + }, + "The text could not be parsed as JSON." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "태그" + "value" : "텍스트를 JSON으로 구문 분석할 수 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Etiket" + "value" : "Metin JSON olarak ayrıştırılamadı." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhãn" + "value" : "Không thể phân tích văn bản dưới dạng JSON." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "标签" + "value" : "无法将文本解析为 JSON。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "標籤" + "value" : "無法將文字剖析為 JSON。" } } } }, - "Tag name" : { + "The text could not be parsed as JSON. Use text mode to view or edit." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "태그 이름" + "value" : "텍스트를 JSON으로 구문 분석할 수 없습니다. 텍스트 모드에서 보거나 편집하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Etiket adı" + "value" : "Metin JSON olarak ayrıştırılamadı. Görüntülemek veya düzenlemek için metin modunu kullanın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên thẻ" + "value" : "Không thể phân tích văn bản dưới dạng JSON. Dùng chế độ văn bản để xem hoặc chỉnh sửa." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "标签名称" + "value" : "文本无法解析为 JSON。请使用文本模式查看或编辑。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "標籤名稱" + "value" : "無法將文字剖析為 JSON。請使用文字模式檢視或編輯。" } } } }, - "Tag: %@" : { - "extractionState" : "stale", + "The text doesn't look like a connection URL." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "태그: %@" + "value" : "텍스트가 연결 URL 형식이 아닙니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tag: %@" + "value" : "Metin bir bağlantı URL'sine benzemiyor." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thẻ: %@" + "value" : "Văn bản này không giống một URL kết nối." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "标签:%@" + "value" : "该文本看起来不是连接 URL。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "標籤:%@" + "value" : "這段文字看起來不像連線 URL。" } } } }, - "Tags" : { + "The text is not valid JSON. Save anyway?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "태그" + "value" : "텍스트가 유효한 JSON이 아닙니다. 그래도 저장하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Etiketler" + "value" : "Metin geçerli bir JSON değil. Yine de kaydedilsin mi?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thẻ" + "value" : "Nội dung không phải JSON hợp lệ. Vẫn lưu?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "标签" + "value" : "文本不是有效的 JSON。仍然保存?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "標籤" + "value" : "文字並非有效的 JSON。仍要儲存嗎?" } } } }, - "Tags: %@" : { + "The transaction could not be committed: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "태그: %@" + "value" : "트랜잭션을 커밋할 수 없습니다: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Etiketler: %@" + "value" : "İşlem kaydedilemedi: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thẻ: %@" + "value" : "Không thể commit giao dịch: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "标签:%@" + "value" : "事务无法提交:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "標籤:%@" + "value" : "交易無法提交:%@" } } } }, - "target" : { - - }, - "Target" : { - - }, - "Target table for SQL output when exporting a query" : { - - }, - "Target: %@" : { - - }, - "Team" : { + "The value could not be parsed. Use raw mode to inspect it as text." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "팀" + "value" : "값을 구문 분석할 수 없습니다. 원시 모드에서 텍스트로 확인하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Team" + "value" : "Değer ayrıştırılamadı. Metin olarak incelemek için ham modu kullanın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Team" + "value" : "Không phân tích được giá trị. Dùng chế độ raw để xem dưới dạng văn bản." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Team" + "value" : "无法解析该值。请使用原始模式以文本形式查看。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Team" + "value" : "無法解析該值。請使用原始模式以文字形式檢視。" } } } }, - "Team Catalog" : { + "Theme" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "팀 카탈로그" + "value" : "테마" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Takım Kataloğu" + "value" : "Tema" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Danh mục nhóm" + "value" : "Giao diện" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "团队目录" + "value" : "主题" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "團隊目錄" + "value" : "佈景主題" } } } }, - "Team Library" : { + "Theme Actions" : { + "comment" : "A heading displayed above the theme actions.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "팀 라이브러리" + "value" : "테마 작업" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Takım Kitaplığı" + "value" : "Tema İşlemleri" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thư viện nhóm" + "value" : "Thao tác giao diện" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "团队库" + "value" : "主题操作" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "團隊庫" + "value" : "佈景主題操作" } } } }, - "Template" : { - "extractionState" : "stale", + "Theme Update Failed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "템플릿" + "value" : "테마 업데이트 실패" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Template" + "value" : "Tema Güncellemesi Başarısız Oldu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mẫu" + "value" : "Cập nhật theme thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "模板" + "value" : "主题更新失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "範本" + "value" : "佈景主題更新失敗" } } } }, - "Template Name" : { + "Theme:" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "템플릿 이름" + "value" : "테마:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Template Name" + "value" : "Tema:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên mẫu" + "value" : "Giao diện:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "模板名称" + "value" : "主题:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "範本名稱" + "value" : "佈景主題:" } } } }, - "Temporarily disable foreign key constraints during import. Useful for importing data with circular dependencies." : { - "extractionState" : "stale", + "Themes" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "가져오는 동안 외래 키 제약 조건을 일시적으로 비활성화합니다. 순환 종속성이 있는 데이터를 가져올 때 유용합니다." + "value" : "테마" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Temporarily disable foreign key constraints during import. Useful for importing data with circular dependencies." + "value" : "Themes" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tạm thời tắt ràng buộc khóa ngoại trong quá trình nhập. Hữu ích khi nhập dữ liệu có phụ thuộc vòng." + "value" : "Giao diện" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "导入时临时禁用外键约束。适用于导入具有循环依赖的数据。" + "value" : "主题" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "匯入時暫時停用外鍵限制。適合用於匯入有循環相依關係的資料。" + "value" : "佈景主題" } } } }, - "Teradata Vantage data warehouse" : { + "There are no connections to publish." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Teradata Vantage 데이터 웨어하우스" + "value" : "게시할 연결이 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Teradata Vantage veri ambarı" + "value" : "Yayınlanacak bağlantı yok." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kho dữ liệu Teradata Vantage" + "value" : "Không có kết nối nào để xuất bản." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Teradata Vantage 数据仓库" + "value" : "没有可发布的连接。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Teradata Vantage 資料倉儲" + "value" : "沒有可發佈的連線。" } } } }, - "Term that was searched" : { - - }, - "Terminal" : { - "extractionState" : "stale", + "These changes alter %@, the account this connection uses." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "터미널" + "value" : "이 변경 사항은 이 연결에서 사용하는 계정 %@을(를) 변경합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Terminal" + "value" : "Bu değişiklikler, bu bağlantının kullandığı hesap olan %@ hesabını değiştirir." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Terminal" + "value" : "Các thay đổi này sửa %@, tài khoản mà kết nối này đang dùng." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "终端" + "value" : "这些更改会修改 %@,也就是此连接使用的账户。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "終端機" + "value" : "這些變更會修改 %@,也就是此連線使用的帳號。" } } } }, - "Terminal bell" : { - "extractionState" : "stale", + "These changes drop %@, the account this connection uses." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "터미널 벨" + "value" : "이 변경 사항은 이 연결에서 사용하는 계정 %@을(를) 삭제합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Terminal zili" + "value" : "Bu değişiklikler, bu bağlantının kullandığı hesap olan %@ hesabını siler." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuông terminal" + "value" : "Các thay đổi này xoá %@, tài khoản mà kết nối này đang dùng." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "终端响铃" + "value" : "这些更改会删除 %@,也就是此连接使用的账户。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "終端機提示音" + "value" : "這些變更會刪除 %@,也就是此連線使用的帳號。" } } } }, - "Terminal Unavailable" : { - "extractionState" : "stale", + "These changes revoke every privilege from %@, the account this connection uses." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "터미널을 사용할 수 없음" + "value" : "이 변경 사항은 이 연결에서 사용하는 계정 %@의 모든 권한을 취소합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Terminal Kullanılamıyor" + "value" : "Bu değişiklikler, bu bağlantının kullandığı hesap olan %@ hesabından tüm yetkileri geri alır." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Terminal không khả dụng" + "value" : "Các thay đổi này thu hồi mọi quyền của %@, tài khoản mà kết nối này đang dùng." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "终端不可用" + "value" : "这些更改会撤销 %@ 的所有权限,也就是此连接使用的账户。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "終端機無法使用" + "value" : "這些變更會撤銷 %@ 的所有權限,也就是此連線使用的帳號。" } } } }, - "Terminate" : { + "These two engines cannot share a script." : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "이 두 엔진은 스크립트를 공유할 수 없습니다.", + "state" : "translated" + } + } + } + }, + "This %1$@ has no %2$@ yet." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "종료" + "value" : "이 %1$@에는 아직 %2$@이(가) 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sonlandır" + "value" : "Bu %1$@ henüz %2$@ içermiyor." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết thúc" + "value" : "%1$@ này chưa có %2$@." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "终止" + "value" : "此%1$@还没有%2$@。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "終止" + "value" : "此%1$@還沒有%2$@。" } } } }, - "Terminate Session" : { + "This Connection" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "세션 종료" + "value" : "이 연결" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Oturumu Sonlandır" + "value" : "Bu Bağlantı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết thúc phiên" + "value" : "Kết nối này" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "终止会话" + "value" : "此连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "終止工作階段" + "value" : "此連線" } } } }, - "Terminate session %@" : { + "This DELETE query has no WHERE clause and will delete ALL rows in the table. This action cannot be undone." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "세션 %@ 종료" + "value" : "이 DELETE 쿼리에는 WHERE 절이 없으므로 테이블의 모든 행이 삭제됩니다. 이 작업은 실행 취소할 수 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ oturumunu sonlandır" + "value" : "This DELETE query has no WHERE clause and will delete ALL rows in the table. This action cannot be undone." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết thúc phiên %@" + "value" : "Truy vấn DELETE này không có mệnh đề WHERE và sẽ xóa TẤT CẢ dòng trong bảng. Thao tác này không thể hoàn tác." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "终止会话 %@" + "value" : "此 DELETE 查询没有 WHERE 子句,将删除表中的所有行。此操作无法撤销。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "終止工作階段 %@" + "value" : "此 DELETE 查詢沒有 WHERE 子句,將刪除資料表中的所有列。此動作無法復原。" } } } }, - "Tertiary Text" : { + "This DROP query will permanently remove database objects. This action cannot be undone." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "3차 텍스트" + "value" : "이 DROP 쿼리는 데이터베이스 객체를 영구적으로 제거합니다. 이 작업은 실행 취소할 수 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Üçüncül Metin" + "value" : "This DROP query will permanently remove database objects. This action cannot be undone." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Văn bản thứ ba" + "value" : "Truy vấn DROP này sẽ xóa vĩnh viễn các đối tượng cơ sở dữ liệu. Thao tác này không thể hoàn tác." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "辅助文本" + "value" : "此 DROP 查询将永久删除数据库对象。此操作无法撤销。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "第三層文字" + "value" : "此 DROP 查詢將永久移除資料庫物件。此動作無法復原。" } } } }, - "Test" : { - "extractionState" : "stale", + "This JSON document is too large for tree view. Use text mode instead." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테스트" + "value" : "이 JSON 문서는 트리 보기로 표시하기에 너무 큽니다. 대신 텍스트 모드를 사용하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Test" + "value" : "Bu JSON belgesi ağaç görünümü için çok büyük. Bunun yerine metin modunu kullanın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kiểm tra" + "value" : "Tài liệu JSON này quá lớn cho chế độ cây. Hãy dùng chế độ văn bản." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "测试" + "value" : "此 JSON 文档对于树形视图过大,请使用文本模式。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "測試" + "value" : "此 JSON 文件對樹狀檢視而言過大。請改用文字模式。" } } } }, - "Test Connection" : { + "This Mac" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 테스트" + "value" : "이 Mac" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantıyı Test Et" + "value" : "This Mac" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kiểm tra kết nối" + "value" : "Máy Mac này" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "测试连接" + "value" : "此 Mac" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "測試連線" + "value" : "這台 Mac" } } } }, - "Test the current connection settings" : { + "This Month" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "현재 연결 설정 테스트" + "value" : "이번 달" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geçerli bağlantı ayarlarını test et" + "value" : "Bu Ay" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kiểm tra cài đặt kết nối hiện tại" + "value" : "Tháng này" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "测试当前连接设置" + "value" : "本月" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "測試目前的連線設定" + "value" : "本月" } } } }, - "Testing" : { + "This Oracle server is older than release 11.1, which the database driver does not support." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테스트" + "value" : "이 Oracle 서버는 릴리스 11.1보다 이전 버전이며 데이터베이스 드라이버에서 지원하지 않습니다." + } + } + } + }, + "This SQL query failed with an error. Please fix it.\n\nQuery:\n```sql\n%@\n```\n\nError: %@" : { + "extractionState" : "stale", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "This SQL query failed with an error. Please fix it.\n\nQuery:\n```sql\n%1$@\n```\n\nError: %2$@" + } + }, + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "이 SQL 쿼리가 오류로 실패했습니다. 오류를 수정하십시오.\n\n쿼리:\n```sql\n%1$@\n```\n\n오류: %2$@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Test" + "value" : "This SQL query failed with an error. Please fix it.\n\nQuery:\n```sql\n%@\n```\n\nError: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kiểm thử" + "value" : "Câu truy vấn SQL sau đã thất bại với lỗi. Vui lòng sửa lỗi.\n\nTruy vấn:\n```sql\n%1$@\n```\n\nLỗi: %2$@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "测试" + "value" : "此 SQL 查询执行失败并报错。请修复。\n\n查询:\n```sql\n%@\n```\n\n错误:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "測試" + "value" : "此 SQL 查詢執行失敗並出現錯誤。請修正。\n\n查詢:\n```sql\n%1$@\n```\n\n錯誤:%2$@" } } } }, - "Testing connection" : { + "This TRUNCATE query will permanently delete all rows in the table. This action cannot be undone." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 테스트 중" + "value" : "이 TRUNCATE 쿼리는 테이블의 모든 행을 영구적으로 삭제합니다. 이 작업은 실행 취소할 수 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı test ediliyor" + "value" : "This TRUNCATE query will permanently delete all rows in the table. This action cannot be undone." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang kiểm tra kết nối" + "value" : "Truy vấn TRUNCATE này sẽ xóa vĩnh viễn tất cả dòng trong bảng. Thao tác này không thể hoàn tác." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在测试连接" + "value" : "此 TRUNCATE 查询将永久删除表中的所有行。此操作无法撤销。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在測試連線" + "value" : "此 TRUNCATE 查詢將永久刪除資料表中的所有列。此動作無法復原。" } } } }, - "Text" : { + "This Week" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "텍스트" + "value" : "이번 주" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Metin" + "value" : "Bu Hafta" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Văn bản" + "value" : "Tuần này" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "文本" + "value" : "本周" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "文字" + "value" : "本週" } } } }, - "Text matched against the recorded statement" : { - + "This account uses a password verifier the database driver does not support." : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "이 계정은 데이터베이스 드라이버가 지원하지 않는 암호 검증 형식을 사용합니다." + } + } + } }, - "Text Viewer" : { + "This action needs a modifier key like ⌘ or ⌥. A plain key won't reach the menu reliably." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "텍스트 뷰어" + "value" : "이 작업에는 ⌘ 또는 ⌥ 같은 보조 키가 필요합니다. 일반 키는 메뉴에 안정적으로 전달되지 않습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Metin Görüntüleyici" + "value" : "Bu işlem ⌘ veya ⌥ gibi bir değiştirici tuş gerektirir. Tek başına bir tuş menüye güvenilir şekilde ulaşmaz." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trình xem văn bản" + "value" : "Hành động này cần phím bổ trợ như ⌘ hoặc ⌥. Phím đơn sẽ không đến được menu một cách ổn định." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "文本查看器" + "value" : "此操作需要 ⌘ 或 ⌥ 等修饰键。单个普通按键无法可靠地触发菜单。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "文字檢視器" + "value" : "此操作需要 ⌘ 或 ⌥ 之類的輔助按鍵。單獨的普通按鍵無法可靠地觸發選單。" } } } }, - "Text: %@" : { + "This connection does not support user and role management." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "텍스트: %@" + "value" : "이 연결은 사용자 및 역할 관리를 지원하지 않습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Metin: %@" + "value" : "Bu bağlantı kullanıcı ve rol yönetimini desteklemiyor." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Văn bản: %@" + "value" : "Kết nối này không hỗ trợ quản lý người dùng và vai trò." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "文本:%@" + "value" : "此连接不支持用户和角色管理。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "文字:%@" + "value" : "此連線不支援使用者與角色管理。" } } } }, - "That doesn't look like a valid license key. Check for typos and try again." : { + "This connection runs SQL every time it connects, using your credentials." : { + "comment" : "A description of the startup SQL for a database connection.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "올바른 라이선스 키가 아닌 것 같습니다. 오타가 있는지 확인하고 다시 시도하십시오." + "value" : "이 연결은 연결될 때마다 사용자의 자격 증명으로 SQL을 실행합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu geçerli bir lisans anahtarı gibi görünmüyor. Yazım hatalarını kontrol edip tekrar deneyin." + "value" : "Bu bağlantı her bağlandığında, kimlik bilgilerinizle SQL çalıştırır." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mã giấy phép không hợp lệ. Kiểm tra lỗi chính tả và thử lại." + "value" : "Kết nối này chạy SQL mỗi lần kết nối, bằng thông tin đăng nhập của bạn." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "这看起来不是有效的许可证密钥。请检查是否有拼写错误后重试。" + "value" : "此连接每次连接时都会用你的凭据运行 SQL。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "這看起來不是有效的授權金鑰。請檢查是否有拼字錯誤後再試一次。" + "value" : "此連線每次連線時都會用你的憑證執行 SQL。" } } } }, - "That filter is incomplete." : { - - }, - "That filter operator is not supported." : { - - }, - "That folder could not be read." : { + "This connection was deleted on another device or window. Your changes were not saved." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "해당 폴더를 읽을 수 없습니다." + "value" : "이 연결이 다른 기기 또는 창에서 삭제되었습니다. 변경 사항은 저장되지 않았습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu klasör okunamadı." + "value" : "Bu bağlantı başka bir aygıtta veya pencerede silindi. Değişiklikleriniz kaydedilmedi." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể đọc thư mục đó." + "value" : "Kết nối này đã bị xóa trên thiết bị hoặc cửa sổ khác. Các thay đổi của bạn chưa được lưu." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法读取该文件夹。" + "value" : "此连接已在其他设备或窗口中被删除。你的更改未保存。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法讀取該資料夾。" + "value" : "此連線已在其他裝置或視窗中被刪除。你的變更未儲存。" } } } }, - "That maintenance operation is not available on this connection." : { - - }, - "That regular expression could not be read. Check the syntax and try again." : { + "This connection won't sync to other devices via iCloud." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "해당 정규식을 해석할 수 없습니다. 구문을 확인하고 다시 시도하십시오." + "value" : "이 연결은 iCloud를 통해 다른 기기와 동기화되지 않습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu düzenli ifade okunamadı. Söz dizimini denetleyip tekrar deneyin." + "value" : "Bu bağlantı iCloud üzerinden diğer cihazlarla eşitlenmeyecek." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể đọc biểu thức chính quy đó. Kiểm tra cú pháp và thử lại." + "value" : "Kết nối này sẽ không đồng bộ sang thiết bị khác qua iCloud." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法解析该正则表达式。请检查语法后重试。" + "value" : "此连接不会通过 iCloud 同步到其他设备。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法解析該正規表達式。請檢查語法後再試一次。" + "value" : "此連線不會透過 iCloud 同步到其他裝置。" } } } }, - "That tab no longer has a window." : { - + "This connection's CA certificate is not readable on this device (%@). Certificate files do not sync between devices, so add the certificate here or lower the SSL mode to Required." : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "이 기기에서 이 연결의 CA 인증서를 읽을 수 없습니다(%@). 인증서 파일은 기기 간에 동기화되지 않으므로 이 기기에 인증서를 추가하거나 SSL 모드를 필수(Required)로 낮추십시오." + } + } + } }, - "That table has no readable columns." : { - + "This connection's client certificate is not readable on this device (%@). Certificate files do not sync between devices, so add the certificate here before connecting." : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "이 기기에서 이 연결의 클라이언트 인증서를 읽을 수 없습니다(%@). 인증서 파일은 기기 간에 동기화되지 않으므로 연결하기 전에 이 기기에 인증서를 추가하십시오." + } + } + } }, - "The %@ command line tool is not installed." : { + "This connection's client key is not readable on this device (%@). Key files do not sync between devices, so add the key here before connecting." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 명령줄 도구가 설치되어 있지 않습니다." + "value" : "이 기기에서 이 연결의 클라이언트 키를 읽을 수 없습니다(%@). 키 파일은 기기 간에 동기화되지 않으므로 연결하기 전에 이 기기에 키를 추가하십시오." + } + } + } + }, + "This database cannot drop triggers" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "이 데이터베이스에서는 트리거를 삭제할 수 없습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ komut satırı aracı yüklü değil." + "value" : "Bu veritabanı tetikleyici silemez" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Công cụ dòng lệnh %@ chưa được cài đặt." + "value" : "Cơ sở dữ liệu này không thể xoá trigger" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "尚未安装 %@ 命令行工具。" + "value" : "此数据库无法删除触发器" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "尚未安裝 %@ 命令列工具。" + "value" : "此資料庫無法刪除觸發器" } } } }, - "The %@ plugin is not installed. Would you like to download it from the plugin marketplace?" : { + "This database did not return a query plan for the statement." : { + "comment" : "Text displayed in a description when the database did not return a query plan for the statement.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 플러그인이 설치되어 있지 않습니다. 플러그인 마켓플레이스에서 다운로드하시겠습니까?" + "value" : "데이터베이스에서 이 문에 대한 쿼리 계획을 반환하지 않았습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "The %@ plugin is not installed. Would you like to indirme it from the plugin marketplace?" + "value" : "Bu veritabanı ifade için bir sorgu planı döndürmedi." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Plugin %@ chưa được cài đặt. Bạn có muốn tải về từ chợ plugin?" + "value" : "Cơ sở dữ liệu này không trả về kế hoạch truy vấn cho câu lệnh." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 插件未安装。是否要从插件市场下载?" + "value" : "此数据库没有为该语句返回查询计划。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "尚未安裝 %@ 外掛。是否要從外掛市集下載?" + "value" : "此資料庫沒有為該陳述式回傳查詢計畫。" } } } }, - "The %@ plugin is not installed. You can download it from the plugin marketplace." : { + "This database has no %@ yet." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 플러그인이 설치되어 있지 않습니다. 플러그인 마켓플레이스에서 다운로드할 수 있습니다." + "value" : "이 데이터베이스에는 아직 %@이(가) 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "The %@ plugin is not installed. You can indirme it from the plugin marketplace." + "value" : "This database has no %@ yet." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Plugin %@ chưa được cài đặt. Bạn có thể tải về từ chợ plugin." + "value" : "Cơ sở dữ liệu này chưa có %@ nào." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 插件未安装。您可以从插件市场下载。" + "value" : "此数据库还没有%@。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "尚未安裝 %@ 外掛。你可以從外掛市集下載。" + "value" : "此資料庫尚未有任何%@。" } } } }, - "The %1$@ sorted rows differently than the comparison expects, near key %2$@. Pick a numeric key, or one that sorts by byte value." : { - - }, - "The Access application policy must use a Service Auth rule, or Cloudflare still prompts for browser sign-in." : { + "This database has no tables yet." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Access 애플리케이션 정책에서 Service Auth 규칙을 사용해야 합니다. 그렇지 않으면 Cloudflare가 계속 브라우저 로그인을 요청합니다." + "value" : "이 데이터베이스에는 아직 테이블이 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Access uygulama politikası bir Service Auth kuralı kullanmalıdır; aksi halde Cloudflare yine tarayıcıdan giriş ister." + "value" : "This database has no tables yet." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chính sách ứng dụng Access phải dùng quy tắc Service Auth, nếu không Cloudflare vẫn yêu cầu đăng nhập qua trình duyệt." + "value" : "Cơ sở dữ liệu này chưa có bảng nào." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Access 应用策略必须使用 Service Auth 规则,否则 Cloudflare 仍会要求浏览器登录。" + "value" : "此数据库还没有表。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Access 應用程式原則必須使用 Service Auth 規則,否則 Cloudflare 仍會要求透過瀏覽器登入。" + "value" : "此資料庫尚未有任何資料表。" } } } }, - "The action that completed" : { - - }, - "The API key will be permanently deleted." : { + "This deletes only the queries listed here, across every connection. Queries the source, date, outcome and search filters are hiding stay. You cannot undo this." : { + "comment" : "Message for the \"Delete this connection's query history\" button.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "API 키가 영구적으로 삭제됩니다." + "value" : "여기에 나열된 쿼리만 모든 연결에서 삭제합니다. 소스, 날짜, 결과 및 검색 필터로 숨겨진 쿼리는 유지됩니다. 이 작업은 실행 취소할 수 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "API anahtarı kalıcı olarak silinecek." + "value" : "Bu, yalnızca burada listelenen sorguları tüm bağlantılarda siler. Kaynak, tarih, sonuç ve arama filtrelerinin gizlediği sorgular kalır. Bu işlem geri alınamaz." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "API key sẽ bị xóa vĩnh viễn." + "value" : "Thao tác này chỉ xoá các truy vấn được liệt kê ở đây, trên mọi kết nối. Các truy vấn đang bị bộ lọc nguồn, ngày, kết quả và tìm kiếm ẩn đi sẽ được giữ lại. Bạn không thể hoàn tác." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "API 密钥将被永久删除。" + "value" : "这只会删除此处列出的查询,涵盖所有连接。被来源、日期、结果和搜索筛选隐藏的查询会保留。此操作无法撤销。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "API 金鑰將被永久刪除。" + "value" : "這只會刪除此處列出的查詢,涵蓋所有連線。被來源、日期、結果和搜尋篩選隱藏的查詢會保留。此動作無法復原。" } } } }, - "The authenticity of host '%@' can't be established.\n\n%@ key fingerprint is:\n%@\n\nAre you sure you want to continue connecting?" : { + "This deletes only the queries listed here, from this connection. Queries the source, date, outcome and search filters are hiding stay. You cannot undo this." : { + "comment" : "The second line of the message above.", + "isCommentAutoGenerated" : true, "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "The authenticity of host '%1$@' can't be established.\n\n%2$@ key fingerprint is:\n%3$@\n\nAre you sure you want to continue connecting?" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "호스트 '%1$@'의 신뢰성을 확인할 수 없습니다.\n\n%2$@ 키 지문:\n%3$@\n\n계속 연결하시겠습니까?" + "value" : "여기에 나열된 쿼리만 이 연결에서 삭제합니다. 소스, 날짜, 결과 및 검색 필터로 숨겨진 쿼리는 유지됩니다. 이 작업은 실행 취소할 수 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "The authenticity / host '%@' can't be established.\n\n%@ key fingerprint is:\n%@\n\nAre you sure you want to continue connecting?" + "value" : "Bu, yalnızca burada listelenen sorguları bu bağlantıdan siler. Kaynak, tarih, sonuç ve arama filtrelerinin gizlediği sorgular kalır. Bu işlem geri alınamaz." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể xác minh tính xác thực của máy chủ '%@'.\n\nVân tay khóa %@ là:\n%@\n\nBạn có chắc chắn muốn tiếp tục kết nối?" + "value" : "Thao tác này chỉ xoá các truy vấn được liệt kê ở đây, từ kết nối này. Các truy vấn đang bị bộ lọc nguồn, ngày, kết quả và tìm kiếm ẩn đi sẽ được giữ lại. Bạn không thể hoàn tác." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法确认主机 '%@' 的真实性。\n\n%@ 密钥指纹为:\n%@\n\n确定要继续连接吗?" + "value" : "这只会删除此处列出的查询,仅限此连接。被来源、日期、结果和搜索筛选隐藏的查询会保留。此操作无法撤销。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法確認主機「%1$@」的真實性。\n\n%2$@ 金鑰指紋為:\n%3$@\n\n你確定要繼續連線嗎?" + "value" : "這只會刪除此處列出的查詢,僅限此連線。被來源、日期、結果和搜尋篩選隱藏的查詢會保留。此動作無法復原。" } } } }, - "The bundled sample database is missing from the app." : { + "This deletes the query history of every connection. You cannot undo this." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "앱에 포함된 샘플 데이터베이스가 없습니다." + "value" : "모든 연결의 쿼리 기록을 삭제합니다. 이 작업은 실행 취소할 수 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Uygulamayla birlikte gelen örnek veritabanı eksik." + "value" : "Bu, her bağlantının sorgu geçmişini siler. Bu işlem geri alınamaz." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cơ sở dữ liệu mẫu đi kèm bị thiếu trong ứng dụng." + "value" : "Thao tác này xoá lịch sử truy vấn của mọi kết nối. Bạn không thể hoàn tác." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "应用中缺少内置的示例数据库。" + "value" : "这会删除所有连接的查询历史。此操作无法撤销。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "應用程式中缺少內建的範例資料庫。" + "value" : "這會刪除所有連線的查詢歷史。此動作無法復原。" } } } }, - "The catalog location is not a folder: %@" : { + "This deletes this connection's query history. You cannot undo this." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "카탈로그 위치가 폴더가 아닙니다: %@" + "value" : "이 연결의 쿼리 기록을 삭제합니다. 이 작업은 실행 취소할 수 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Katalog konumu bir klasör değil: %@" + "value" : "Bu, bu bağlantının sorgu geçmişini siler. Bu işlem geri alınamaz." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Vị trí danh mục không phải là thư mục: %@" + "value" : "Thao tác này xoá lịch sử truy vấn của kết nối này. Bạn không thể hoàn tác." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "目录位置不是文件夹:%@" + "value" : "这会删除此连接的查询历史。此操作无法撤销。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "目錄位置不是資料夾:%@" + "value" : "這會刪除此連線的查詢歷史。此動作無法復原。" } } } }, - "The ChatGPT account could not be identified." : { + "This diagram is not bound to a database" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "ChatGPT 계정을 확인할 수 없습니다." + "value" : "이 다이어그램은 데이터베이스에 연결되어 있지 않습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "ChatGPT hesabı tanımlanamadı." + "value" : "Bu diyagram bir veritabanına bağlı değil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể xác định tài khoản ChatGPT." + "value" : "Sơ đồ này không gắn với cơ sở dữ liệu nào" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法识别 ChatGPT 账户。" + "value" : "此图表未绑定到数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法識別 ChatGPT 帳戶。" + "value" : "此圖表未綁定到資料庫" } } } }, - "The ChatGPT sign-in token could not be read." : { + "This discards your edits to the Chinook sample and restores the original copy." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "ChatGPT 로그인 토큰을 읽을 수 없습니다." + "value" : "Chinook 샘플의 편집 내용을 취소하고 원본을 복원합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "ChatGPT giriş belirteci okunamadı." + "value" : "Bu, Chinook örneğindeki düzenlemelerinizi atar ve özgün kopyayı geri yükler." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể đọc mã đăng nhập ChatGPT." + "value" : "Thao tác này bỏ các chỉnh sửa của bạn trên mẫu Chinook và khôi phục bản gốc." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法读取 ChatGPT 登录令牌。" + "value" : "这将放弃你对 Chinook 示例的编辑并恢复原始副本。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法讀取 ChatGPT 登入權杖。" + "value" : "這會放棄你對 Chinook 範例的編輯,並還原成原始副本。" } } } }, - "The Cloud SQL Auth Proxy did not become ready in time: %@" : { + "This discards your unsaved changes and re-reads the file with the chosen settings." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Cloud SQL Auth Proxy가 제한 시간 내에 준비되지 않았습니다: %@" + "value" : "저장하지 않은 변경 사항을 취소하고 선택한 설정으로 파일을 다시 읽습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Cloud SQL Auth Proxy zamanında hazır olmadı: %@" + "value" : "Bu, kaydedilmemiş değişikliklerinizi atar ve dosyayı seçilen ayarlarla yeniden okur." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cloud SQL Auth Proxy không sẵn sàng kịp thời: %@" + "value" : "Thao tác này bỏ các thay đổi chưa lưu và đọc lại tệp với cài đặt đã chọn." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Cloud SQL Auth Proxy 未能及时就绪:%@" + "value" : "此操作会丢弃未保存的更改,并按所选设置重新读取文件。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Cloud SQL Auth Proxy 未能及時就緒:%@" + "value" : "此操作會捨棄未儲存的變更,並依所選設定重新讀取檔案。" } } } }, - "The Cloud SQL Auth Proxy did not become ready in time." : { + "This driver does not expose routine DDL." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Cloud SQL Auth Proxy가 제한 시간 내에 준비되지 않았습니다." + "value" : "이 드라이버는 루틴 DDL을 제공하지 않습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Cloud SQL Auth Proxy zamanında hazır olmadı." + "value" : "Bu sürücü rutinler için DDL sağlamıyor." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cloud SQL Auth Proxy không sẵn sàng kịp thời." + "value" : "Driver này không cung cấp DDL của routine." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Cloud SQL Auth Proxy 未能及时就绪。" + "value" : "此驱动不提供例程 DDL。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Cloud SQL Auth Proxy 未能及時就緒。" + "value" : "此驅動程式不提供常式 DDL。" } } } }, - "The Cloud SQL Auth Proxy failed to start: %@" : { + "This driver has no TLS fallback. Preferred forces TLS, same as Required." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Cloud SQL Auth Proxy를 시작하지 못했습니다: %@" + "value" : "이 드라이버에는 TLS 대체 옵션이 없습니다. 선호는 필수와 동일하게 TLS 연결을 강제합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Cloud SQL Auth Proxy başlatılamadı: %@" + "value" : "Bu sürücünün TLS yedeği yok. Preferred, Required ile aynı şekilde TLS'yi zorunlu kılar." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cloud SQL Auth Proxy không khởi động được: %@" + "value" : "Driver này không có phương án dự phòng TLS. Preferred buộc dùng TLS, giống Required." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Cloud SQL Auth Proxy 启动失败:%@" + "value" : "此驱动没有 TLS 回退。“首选”会强制使用 TLS,与“必需”相同。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Cloud SQL Auth Proxy 啟動失敗:%@" + "value" : "此驅動程式沒有 TLS 回退機制。「偏好」會強制使用 TLS,與「必要」相同。" } } } }, - "The Cloud SQL Auth Proxy failed to start." : { + "This engine does not support creating databases." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Cloud SQL Auth Proxy를 시작하지 못했습니다." + "value" : "이 엔진은 데이터베이스 생성을 지원하지 않습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Cloud SQL Auth Proxy başlatılamadı." + "value" : "Bu motor veritabanı oluşturmayı desteklemiyor." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cloud SQL Auth Proxy không khởi động được." + "value" : "Engine này không hỗ trợ tạo cơ sở dữ liệu." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Cloud SQL Auth Proxy 启动失败。" + "value" : "此引擎不支持创建数据库。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Cloud SQL Auth Proxy 啟動失敗。" + "value" : "此引擎不支援建立資料庫。" } } } }, - "The Cloudflare tunnel did not become ready in time: %@" : { + "This file is encrypted" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Cloudflare 터널이 제한 시간 내에 준비되지 않았습니다: %@" + "value" : "이 파일은 암호화되어 있습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Cloudflare tüneli zamanında hazır olmadı: %@" + "value" : "Bu dosya şifrelenmiş" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tunnel Cloudflare không sẵn sàng kịp thời: %@" + "value" : "Tệp này được mã hóa" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Cloudflare 隧道未能及时就绪:%@" + "value" : "此文件已加密" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Cloudflare 隧道未能及時就緒:%@" + "value" : "此檔案已加密" } } } }, - "The Cloudflare tunnel did not become ready in time." : { + "This file is encrypted and requires a passphrase" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Cloudflare 터널이 제한 시간 내에 준비되지 않았습니다." + "value" : "이 파일은 암호화되어 있어 암호가 필요합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Cloudflare tüneli zamanında hazır olmadı." + "value" : "Bu dosya şifrelenmiş ve bir parola gerektiriyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tunnel Cloudflare không sẵn sàng kịp thời." + "value" : "Tệp này được mã hóa và yêu cầu cụm mật khẩu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Cloudflare 隧道未能及时就绪。" + "value" : "此文件已加密,需要密码短语" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Cloudflare 隧道未能及時就緒。" + "value" : "此檔案已加密,需要通關密語" } } } }, - "The code expires in 15 minutes." : { + "This file is not a valid TablePro export" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "코드는 15분 후 만료됩니다." + "value" : "이 파일은 올바른 TablePro 내보내기 파일이 아닙니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kod 15 dakika içinde sona erer." + "value" : "Bu dosya geçerli bir TablePro dışa aktarma dosyası değil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mã sẽ hết hạn sau 15 phút." + "value" : "Tệp này không phải là tệp xuất TablePro hợp lệ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "代码将在 15 分钟后过期。" + "value" : "此文件不是有效的 TablePro 导出文件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "驗證碼將在 15 分鐘後過期。" + "value" : "此檔案不是有效的 TablePro 匯出檔" } } } }, - "The code has been copied to your clipboard." : { + "This file requires a newer version of TablePro (format version %d)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "코드가 클립보드에 복사되었습니다." + "value" : "이 파일을 사용하려면 더 최신 버전의 TablePro가 필요합니다(파일 형식 버전 %d)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kod panonuza kopyalandı." + "value" : "Bu dosya daha yeni bir TablePro sürümü gerektiriyor (format sürümü %d)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mã đã được sao chép vào clipboard." + "value" : "Tệp này yêu cầu phiên bản TablePro mới hơn (phiên bản định dạng %d)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "代码已复制到剪贴板。" + "value" : "此文件需要更新版本的TablePro(格式版本%d)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "驗證碼已複製到剪貼簿。" + "value" : "此檔案需要較新版本的 TablePro(格式版本 %d)" } } } }, - "The Codex CLI login could not be read." : { + "This file requires a newer version of TablePro (format version %lld)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Codex CLI 로그인을 읽을 수 없습니다." + "value" : "이 파일에는 더 최신 버전의 TablePro가 필요합니다(형식 버전 %lld)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Codex CLI girişi okunamadı." + "value" : "Bu dosya daha yeni bir TablePro sürümü gerektiriyor (format sürümü %lld)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể đọc đăng nhập Codex CLI." + "value" : "Tệp này yêu cầu phiên bản TablePro mới hơn (phiên bản định dạng %lld)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法读取 Codex CLI 登录。" + "value" : "此文件需要更新版本的 TablePro(格式版本 %lld)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法讀取 Codex CLI 登入。" + "value" : "此檔案需要較新版本的 TablePro(格式版本 %lld)" } } } }, - "The connection is not available. Reconnect and try again." : { + "This folder is already linked" : { + "comment" : "Alert title when trying to add a folder that is already linked.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결을 사용할 수 없습니다. 다시 연결한 후 재시도하십시오." + "value" : "이 폴더는 이미 연결되어 있습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı kullanılamıyor. Yeniden bağlanıp tekrar deneyin." + "value" : "Bu klasör zaten bağlı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối không khả dụng. Hãy kết nối lại và thử lại." + "value" : "Thư mục này đã được liên kết" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接不可用。请重新连接后重试。" + "value" : "此文件夹已关联" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線無法使用。請重新連線後再試一次。" + "value" : "此資料夾已連結" } } } }, - "The connection is not open. Call connect first." : { - - }, - "The connection this query was recorded against no longer exists." : { - "comment" : "Error message shown when a query cannot be opened because the connection it was recorded against no longer exists.", - "isCommentAutoGenerated" : true, + "This is a built-in theme." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 쿼리를 기록한 연결이 더 이상 존재하지 않습니다." + "value" : "이 테마는 기본 제공 테마입니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu sorgunun kaydedildiği bağlantı artık yok." + "value" : "Bu, yerleşik bir temadır." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối mà truy vấn này được ghi lại không còn tồn tại." + "value" : "Đây là chủ đề mặc định." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "记录此查询时使用的连接已不存在。" + "value" : "这是内置主题。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "記錄此查詢時使用的連線已不存在。" + "value" : "這是內建的佈景主題。" } } } }, - "The connection was closed." : { + "This is a registry theme." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결이 종료되었습니다." + "value" : "이 테마는 레지스트리 테마입니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı kapatıldı." + "value" : "Bu, kayıt defterinden gelen bir temadır." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối đã bị đóng." + "value" : "Đây là chủ đề từ kho plugin." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接已关闭。" + "value" : "这是插件仓库主题。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線已關閉。" + "value" : "這是外掛註冊的佈景主題。" } } } }, - "The CREATE statement for one table, as the engine reports it." : { - - }, - "The Cursor CLI is not installed." : { + "This is not a value the list editor can read back." : { + "comment" : "A warning that the value entered in the array editor is not a valid value for the type.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Cursor CLI가 설치되어 있지 않습니다." + "value" : "목록 편집기에서 다시 읽을 수 있는 값이 아닙니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Cursor CLI yüklü değil." + "value" : "Bu, liste düzenleyicisinin geri okuyabileceği bir değer değil." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cursor CLI chưa được cài đặt." + "value" : "Đây không phải giá trị mà trình sửa danh sách đọc lại được." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未安装 Cursor CLI。" + "value" : "这不是列表编辑器能读回的值。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "尚未安裝 Cursor CLI。" + "value" : "這不是列表編輯器能讀回的值。" } } } }, - "The Cursor CLI is not installed. Install it, then sign in." : { + "This is taking longer than usual." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Cursor CLI가 설치되어 있지 않습니다. 설치한 다음 로그인하십시오." + "value" : "평소보다 오래 걸리고 있습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Cursor CLI yüklü değil. Yükleyin, sonra giriş yapın." + "value" : "Bu her zamankinden uzun sürüyor." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cursor CLI chưa được cài đặt. Hãy cài đặt rồi đăng nhập." + "value" : "Việc này lâu hơn bình thường." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未安装 Cursor CLI。请先安装,然后登录。" + "value" : "这比平时花的时间更久。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "尚未安裝 Cursor CLI。請先安裝,然後登入。" + "value" : "這比平時花的時間更久。" } } } }, - "The database filter hides every database on this connection." : { + "This keyword is already in use" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스 필터로 인해 이 연결의 모든 데이터베이스가 숨겨졌습니다." + "value" : "이 키워드는 이미 사용 중입니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı filtresi bu bağlantıdaki tüm veritabanlarını gizliyor." + "value" : "Bu anahtar sözcük zaten kullanımda" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bộ lọc cơ sở dữ liệu đang ẩn mọi cơ sở dữ liệu trên kết nối này." + "value" : "Từ khoá này đã được sử dụng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "数据库筛选隐藏了此连接上的所有数据库。" + "value" : "此关键字已被使用" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料庫篩選隱藏了此連線上的所有資料庫。" + "value" : "此關鍵字已被使用" } } } }, - "The database server enforced this, not TablePro's Safe Mode. You are most likely connected to a read replica, or the server sets new transactions to read-only. Connect to the primary server to write.\n\nServer response: %@" : { + "This license has been suspended. Contact support for help." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro의 안전 모드가 아니라 데이터베이스 서버에서 적용한 제한입니다. 읽기 전용 복제본에 연결했거나 서버에서 새 트랜잭션을 읽기 전용으로 설정했을 가능성이 큽니다. 쓰려면 기본 서버에 연결하십시오.\n\n서버 응답: %@" + "value" : "이 라이선스는 정지되었습니다. 지원팀에 문의하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bunu TablePro'nun Safe Mode ayarı değil, veritabanı sunucusu uyguladı. Büyük olasılıkla bir okuma kopyasına bağlısınız veya sunucu yeni işlemleri salt okunur yapıyor. Yazmak için birincil sunucuya bağlanın.\n\nSunucu yanıtı: %@" + "value" : "Bu lisans askıya alındı. Yardım için destek ile iletişime geçin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đây là do máy chủ cơ sở dữ liệu áp đặt, không phải Chế độ an toàn của TablePro. Nhiều khả năng bạn đang kết nối tới bản sao chỉ đọc, hoặc máy chủ đặt các giao dịch mới ở chế độ chỉ đọc. Hãy kết nối tới máy chủ chính để ghi.\n\nPhản hồi của máy chủ: %@" + "value" : "Giấy phép này đã bị đình chỉ. Liên hệ hỗ trợ để được giúp đỡ." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "这是数据库服务器的限制,不是 TablePro 的安全模式。你很可能连接到了只读副本,或者服务器将新事务设为只读。请连接主服务器以写入。\n\n服务器响应:%@" + "value" : "此许可证已被暂停。请联系支持团队获取帮助。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "這是資料庫伺服器的限制,不是 TablePro 的安全模式。你很可能連線到唯讀副本,或伺服器將新交易設為唯讀。請連線到主要伺服器以寫入。\n\n伺服器回應:%@" + "value" : "此授權已遭停用。請聯絡支援團隊尋求協助。" } } } }, - "The database server rejected this write because the connection is read-only." : { + "This license has expired. Renew it to continue using Pro features." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결이 읽기 전용이어서 데이터베이스 서버에서 이 쓰기 작업을 거부했습니다." + "value" : "이 라이선스는 만료되었습니다. Pro 기능을 계속 사용하려면 갱신하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı salt okunur olduğu için veritabanı sunucusu bu yazma işlemini reddetti." + "value" : "Bu lisansın süresi doldu. Pro özellikleri kullanmaya devam etmek için yenileyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Máy chủ cơ sở dữ liệu từ chối thao tác ghi này vì kết nối ở chế độ chỉ đọc." + "value" : "Giấy phép này đã hết hạn. Gia hạn để tiếp tục sử dụng các tính năng Pro." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "数据库服务器拒绝了此次写入,因为该连接为只读。" + "value" : "此许可证已过期。请续期以继续使用 Pro 功能。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料庫伺服器拒絕了這次寫入,因為該連線為唯讀。" + "value" : "此授權已過期。請續訂以繼續使用 Pro 功能。" } } } }, - "The database this user belongs to" : { + "This license has reached its activation limit. Deactivate another Mac first." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 사용자가 속한 데이터베이스" + "value" : "이 라이선스는 활성화 한도에 도달했습니다. 먼저 다른 Mac에서 비활성화하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu kullanıcının ait olduğu veritabanı" + "value" : "Bu lisans etkinleştirme sınırına ulaştı. Önce başka bir Mac'i devre dışı bırakın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cơ sở dữ liệu mà người dùng này thuộc về" + "value" : "Giấy phép này đã đạt giới hạn kích hoạt. Hãy huỷ kích hoạt một máy Mac khác trước." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此用户所属的数据库" + "value" : "此许可证已达到激活上限。请先停用另一台 Mac。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此使用者所屬的資料庫" + "value" : "此授權已達啟用上限。請先停用另一台 Mac。" } } } }, - "The destructive query to execute" : { - "extractionState" : "stale", + "This license was activated on a different Mac. Activate it here to use Pro features." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "실행할 파괴적 쿼리" + "value" : "이 라이선스는 다른 Mac에서 활성화되었습니다. 여기에서 활성화하면 Pro 기능을 사용할 수 있습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yürütülecek yıkıcı sorgu" + "value" : "Bu lisans başka bir Mac'te etkinleştirildi. Pro özelliklerini kullanmak için burada etkinleştirin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Truy vấn có tính phá hủy cần thực thi" + "value" : "Giấy phép này đã được kích hoạt trên một máy Mac khác. Kích hoạt tại đây để dùng các tính năng Pro." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "要执行的破坏性查询" + "value" : "此许可证已在另一台 Mac 上激活。在此激活以使用 Pro 功能。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "要執行的破壞性查詢" + "value" : "此授權已在另一台 Mac 上啟用。在此啟用以使用 Pro 功能。" } } } }, - "The destructive statement to run" : { - - }, - "The diagram could not be converted to a PNG image." : { - "comment" : "Error message when the ER diagram could not be exported as PNG.", - "isCommentAutoGenerated" : true, + "This license was issued for a different Mac." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다이어그램을 PNG 이미지로 변환할 수 없습니다." + "value" : "이 라이선스는 다른 Mac용으로 발급되었습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Diyagram PNG görüntüsüne dönüştürülemedi." + "value" : "Bu lisans başka bir Mac için verildi." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể chuyển sơ đồ thành ảnh PNG." + "value" : "Giấy phép này được cấp cho một máy Mac khác." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法将图表转换为 PNG 图片。" + "value" : "此许可证是为另一台 Mac 签发的。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法將圖表轉換為 PNG 圖片。" + "value" : "此授權是為另一台 Mac 簽發的。" } } } }, - "The Downloads folder is not available." : { - - }, - "The driver did not return this object's definition, so only its name was compared." : { - + "This list is a capped preview. Apply covers every difference, not only the rows listed here." : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "이 목록은 개수가 제한된 미리 보기입니다. 적용은 여기 나열된 행뿐 아니라 모든 차이점을 포함합니다.", + "state" : "translated" + } + } + } }, - "The encrypted file is corrupt or incomplete" : { - "extractionState" : "stale", + "This machine is not activated for this license." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "암호화된 파일이 손상되었거나 불완전합니다" + "value" : "이 컴퓨터에서는 이 라이선스가 활성화되어 있지 않습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Şifreli dosya bozuk veya eksik" + "value" : "Bu makine bu lisans için etkinleştirilmemiş." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tệp mã hóa bị hỏng hoặc không đầy đủ" + "value" : "Máy này chưa được kích hoạt cho giấy phép này." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "加密文件已损坏或不完整" + "value" : "此设备未激活该许可证。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "加密的檔案已損毀或不完整" + "value" : "此機器尚未針對此授權啟用。" } } } }, - "The engine returned no result set to export." : { - - }, - "The export file could not be written." : { - - }, - "The filter field is not in the toolbar." : { - - }, - "The folder \"%@\" will be deleted. Items inside will be moved to the parent level." : { + "This machine is not activated." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "\"%@\" 폴더가 삭제됩니다. 폴더 안의 항목은 상위 단계로 이동됩니다." + "value" : "이 컴퓨터는 활성화되어 있지 않습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "\"%@\" klasörü silinecek. İçindeki öğeler bir üst seviyeye taşınacak." + "value" : "Bu makine etkinleştirilmemiş." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thư mục \"%@\" sẽ bị xoá. Các mục bên trong sẽ được chuyển lên cấp cha." + "value" : "Máy này chưa được kích hoạt." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "文件夹 \"%@\" 将被删除。其中的项目将移至上一级。" + "value" : "此设备未激活。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "資料夾「%@」將被刪除。其中的項目將移至上一層。" + "value" : "此機器尚未啟用。" } } } }, - "The following %d queries may permanently modify or delete data. This action cannot be undone.\n\n%@" : { - "extractionState" : "stale", + "This operation is not supported" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "The following %1$d queries may permanently modify or delete data. This action cannot be undone.\n\n%2$@" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다음 %1$d개 쿼리는 데이터를 영구적으로 변경하거나 삭제할 수 있습니다. 이 작업은 실행 취소할 수 없습니다.\n\n%2$@" + "value" : "이 작업은 지원되지 않습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Aşağıdaki %d sorgu verileri kalıcı olarak değiştirebilir veya silebilir. Bu işlem geri alınamaz.\n\n%@" + "value" : "Bu işlem desteklenmiyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%d truy vấn sau có thể sửa đổi hoặc xóa dữ liệu vĩnh viễn. Hành động này không thể hoàn tác.\n\n%@" + "value" : "Thao tác này không được hỗ trợ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "以下 %d 条查询可能永久修改或删除数据。此操作无法撤销。\n\n%@" + "value" : "不支持此操作" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "下列 %1$d 個查詢可能會永久修改或刪除資料。此動作無法復原。\n\n%2$@" + "value" : "不支援此操作" } } } }, - "The following %lld queries may permanently modify or delete data. This action cannot be undone.\n\n%@" : { - "extractionState" : "stale", + "This permanently deletes the selected rows from the database and can't be undone." : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "The following %1$lld queries may permanently modify or delete data. This action cannot be undone.\n\n%2$@" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다음 %1$lld개 쿼리는 데이터를 영구적으로 변경하거나 삭제할 수 있습니다. 이 작업은 실행 취소할 수 없습니다.\n\n%2$@" + "value" : "선택한 행을 데이터베이스에서 영구적으로 삭제하며 실행 취소할 수 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "The following %lld queries may permanently modify or delete data. This action cannot be undone.\n\n%@" + "value" : "Bu, seçili satırları veritabanından kalıcı olarak siler ve geri alınamaz." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%1$lld truy vấn sau có thể thay đổi hoặc xóa dữ liệu vĩnh viễn. Hành động này không thể hoàn tác.\n\n%2$@" + "value" : "Thao tác này xóa vĩnh viễn các dòng đã chọn khỏi cơ sở dữ liệu và không thể hoàn tác." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "以下 %lld 个查询可能会永久修改或删除数据。此操作无法撤销。\n\n%@" + "value" : "此操作会从数据库中永久删除所选行,且无法撤销。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "下列 %1$lld 個查詢可能會永久修改或刪除資料。此動作無法復原。\n\n%2$@" + "value" : "此操作會從資料庫中永久刪除所選的列,且無法復原。" } } } }, - "The following changes may cause data loss:\n\n%@\n\nDo you want to proceed?" : { + "This plan could not be read as a tree. Showing the raw output." : { + "comment" : "A message that appears when the query plan cannot be displayed as a tree.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다음 변경 사항으로 인해 데이터가 손실될 수 있습니다.\n\n%@\n\n계속하시겠습니까?" + "value" : "이 계획을 트리로 읽을 수 없습니다. 원시 출력을 표시합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Aşağıdaki değişiklikler veri kaybına neden olabilir:\n\n%@\n\nDevam etmek istiyor musunuz?" + "value" : "Bu plan ağaç olarak okunamadı. Ham çıktı gösteriliyor." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Các thay đổi sau có thể gây mất dữ liệu:\n\n%@\n\nBạn có muốn tiếp tục?" + "value" : "Không đọc được kế hoạch này dưới dạng cây. Đang hiển thị kết quả thô." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "以下更改可能导致数据丢失:\n\n%@\n\n是否继续?" + "value" : "无法将此执行计划读取为树形结构。显示原始输出。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "下列變更可能導致資料遺失:\n\n%@\n\n是否要繼續?" + "value" : "無法將此執行計畫讀取為樹狀結構。顯示原始輸出。" } } } }, - "The following plugins were rejected:\n\n%@\n\nPlease update them from the plugin registry." : { - "extractionState" : "stale", + "This plugin is not in the registry, so it can't be updated automatically." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다음 플러그인이 거부되었습니다.\n\n%@\n\n플러그인 레지스트리에서 업데이트하십시오." + "value" : "이 플러그인은 레지스트리에 없으므로 자동으로 업데이트할 수 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Aşağıdaki eklentiler reddedildi:\n\n%@\n\nLütfen eklenti kayıt defterinden güncelleyin." + "value" : "Bu eklenti depoda bulunmadığından otomatik olarak güncellenemez." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Các plugin sau bị từ chối:\n\n%@\n\nVui lòng cập nhật chúng từ kho plugin." + "value" : "Plugin này không có trong registry nên không thể cập nhật tự động." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "以下插件被拒绝:\n\n%@\n\n请从插件注册表中更新它们。" + "value" : "此插件不在注册表中,无法自动更新。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "下列外掛已遭拒絕:\n\n%@\n\n請從外掛註冊更新它們。" + "value" : "此外掛不在外掛註冊中,因此無法自動更新。" } } } }, - "The following plugins were rejected:\n\n%@\n\nYou can update them from the plugin registry in Settings." : { - "extractionState" : "stale", + "This plugin is signed by %@, a developer you have not trusted yet." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다음 플러그인이 거부되었습니다.\n\n%@\n\n설정의 플러그인 레지스트리에서 업데이트할 수 있습니다." + "value" : "%@ 개발자가 서명한 플러그인입니다. 이 개발자는 아직 신뢰하지 않았습니다." + } + } + } + }, + "This plugin requires TablePro %@ or later" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "이 플러그인에는 TablePro %@ 이상이 필요합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Aşağıdaki eklentiler reddedildi:\n\n%@\n\nBunları Ayarlar'daki eklenti kayıt defterinden güncelleyebilirsiniz." + "value" : "Bu eklenti TablePro %@ veya sonrasını gerektiriyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Các plugin sau đã bị từ chối:\n\n%@\n\nBạn có thể cập nhật chúng từ plugin registry trong Cài đặt." + "value" : "Plugin này yêu cầu TablePro %@ trở lên" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "以下插件已被拒绝:\n\n%@\n\n你可以在设置中的插件注册表更新它们。" + "value" : "此插件需要 TablePro %@ 或更高版本" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "下列外掛已遭拒絕:\n\n%@\n\n你可以在「設定」的外掛註冊更新它們。" + "value" : "此外掛需要 TablePro %@ 或更新版本" } } } }, - "The instance connection name must be in the form project:region:instance." : { + "This profile will be permanently deleted." : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "This profile will be permanently deleted." + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "인스턴스 연결 이름은 project:region:instance 형식이어야 합니다." + "value" : "이 프로필은 영구적으로 삭제됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Örnek bağlantı adı project:region:instance biçiminde olmalıdır." + "value" : "Bu profil kalıcı olarak silinecek." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên kết nối instance phải theo dạng project:region:instance." + "value" : "Hồ sơ này sẽ bị xoá vĩnh viễn." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "实例连接名称必须为 project:region:instance 形式。" + "value" : "此配置将被永久删除。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "執行個體連線名稱必須為 project:region:instance 形式。" + "value" : "此設定檔將被永久刪除。" } } } }, - "The license has been suspended." : { + "This project has no datasets yet." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "라이선스가 정지되었습니다." + "value" : "이 프로젝트에는 아직 데이터 세트가 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Lisans askıya alındı." + "value" : "Bu projede henüz veri kümesi yok." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giấy phép đã bị đình chỉ." + "value" : "Dự án này chưa có dataset nào." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "许可证已被暂停。" + "value" : "此项目还没有数据集。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "授權已遭停用。" + "value" : "此專案還沒有資料集。" } } } }, - "The license has expired." : { + "This puts the AI-generated SQL into the query editor, replacing what is there. Nothing runs until you execute it." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "라이선스가 만료되었습니다." + "value" : "AI가 생성한 SQL을 쿼리 편집기에 넣고 기존 내용을 대체합니다. 직접 실행하기 전까지는 아무것도 실행되지 않습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Lisansın süresi doldu." + "value" : "Bu, yapay zekanın ürettiği SQL'i sorgu düzenleyiciye koyar ve oradakinin yerini alır. Siz çalıştırana kadar hiçbir şey yürütülmez." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giấy phép đã hết hạn." + "value" : "Thao tác này đưa SQL do AI tạo vào trình soạn truy vấn, thay cho nội dung hiện có. Không có gì chạy cho đến khi bạn thực thi." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "许可证已过期。" + "value" : "此操作会把 AI 生成的 SQL 放入查询编辑器,替换其中的内容。在你执行之前不会运行任何语句。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "授權已過期。" + "value" : "此操作會把 AI 產生的 SQL 放入查詢編輯器,取代其中的內容。在你執行之前不會執行任何陳述式。" } } } }, - "The license key is invalid." : { + "This query belongs to another connection. Load it in the editor to run it there." : { + "comment" : "A description of why the \"Load in Editor\" button is disabled.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "라이선스 키가 유효하지 않습니다." + "value" : "이 쿼리는 다른 연결에 속합니다. 해당 연결에서 실행하려면 편집기로 불러오십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Lisans anahtarı geçersiz." + "value" : "Bu sorgu başka bir bağlantıya ait. Orada çalıştırmak için düzenleyicide açın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mã giấy phép không hợp lệ." + "value" : "Truy vấn này thuộc về một kết nối khác. Hãy mở nó trong trình soạn thảo để chạy ở đó." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "许可证密钥无效。" + "value" : "此查询属于另一个连接。在编辑器中载入它以在那里运行。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "授權金鑰無效。" - } - } - } - }, - "The license text is missing from this build." : { - - }, - "The list of open source libraries is missing from this build." : { - - }, - "The listener does not know the requested service name" : { - "extractionState" : "stale", - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "리스너가 요청한 서비스 이름을 인식하지 못합니다" - } - } - } - }, - "The listener does not know the requested SID" : { - "extractionState" : "stale", - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "리스너가 요청한 SID를 인식하지 못합니다" + "value" : "此查詢屬於另一個連線。在編輯器中載入它以在那裡執行。" } } } }, - "The listener has no handler available for the requested service" : { - "extractionState" : "stale", + "This query may permanently modify or delete data and cannot be undone.\n\n%@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "리스너에 요청한 서비스를 처리할 수 있는 핸들러가 없습니다" + "value" : "이 쿼리는 데이터를 영구적으로 변경하거나 삭제할 수 있으며 실행 취소할 수 없습니다.\n\n%@" } - } - } - }, - "The listener is blocking new connections to the requested service" : { - "extractionState" : "stale", - "localizations" : { - "ko" : { + }, + "tr" : { "stringUnit" : { "state" : "translated", - "value" : "리스너가 요청한 서비스에 대한 새 연결을 차단하고 있습니다" + "value" : "Bu sorgu verileri kalıcı olarak değiştirebilir veya silebilir ve geri alınamaz.\n\n%@" } - } - } - }, - "The MCP server could not bind a port (%@)" : { - - }, - "The MCP server could not issue its bridge credential" : { - - }, - "The MCP server started without a port" : { - - }, - "The Microsoft Entra ID access token was rejected by the driver." : { - "extractionState" : "stale", - "localizations" : { - "ko" : { + }, + "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Microsoft Entra ID 액세스 토큰이 드라이버에서 거부되었습니다." + "value" : "Truy vấn này có thể sửa đổi hoặc xóa dữ liệu vĩnh viễn và không thể hoàn tác.\n\n%@" } - } - } - }, - "The object types taking part in the comparison are set in Options." : { - - }, - "The Oracle listener refused the connection (ORA-%ld)." : { - "extractionState" : "stale", - "localizations" : { - "ko" : { + }, + "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Oracle 리스너가 연결을 거부했습니다(ORA-%ld)." + "value" : "此查询可能永久修改或删除数据,且无法撤销。\n\n%@" } - } - } - }, - "The Oracle listener refused the connection." : { - "extractionState" : "stale", - "localizations" : { - "ko" : { + }, + "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Oracle 리스너가 연결을 거부했습니다." + "value" : "此查詢可能會永久修改或刪除資料,且無法復原。\n\n%@" } } } }, - "The Oracle server closed the connection during the login handshake." : { + "This query may permanently modify or delete data." : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Oracle 서버가 로그인 핸드셰이크 중 연결을 종료했습니다." - } - } - } - }, - "The pairing challenge is malformed." : { - - }, - "The pairing verifier is malformed." : { - - }, - "The partial backup file will be removed." : { - "comment" : "A message displayed in a cancel confirmation alert for a backup.", - "isCommentAutoGenerated" : true, - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "부분 백업 파일이 삭제됩니다." + "value" : "이 쿼리는 데이터를 영구적으로 변경하거나 삭제할 수 있습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kısmi yedek dosyası kaldırılacak." + "value" : "This query may permanently modify or delete data." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "File sao lưu dở dang sẽ bị xóa." + "value" : "Truy vấn này có thể sửa đổi hoặc xóa dữ liệu vĩnh viễn." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未完成的备份文件将被移除。" + "value" : "此查询可能会永久修改或删除数据。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "未完成的備份檔案將被移除。" + "value" : "此查詢可能會永久修改或刪除資料。" } } } }, - "The password source produced an empty password" : { + "This server has no databases yet." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "암호 소스에서 빈 암호를 반환했습니다" + "value" : "이 서버에는 아직 데이터베이스가 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Parola kaynağı boş bir parola döndürdü" + "value" : "Bu sunucuda henüz veritabanı yok." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nguồn mật khẩu trả về mật khẩu rỗng" + "value" : "Máy chủ này chưa có cơ sở dữ liệu nào." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "密码来源返回了空密码" + "value" : "此服务器还没有数据库。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "密碼來源產生了空白密碼" + "value" : "此伺服器還沒有資料庫。" } } } }, - "The passwords do not match." : { + "This server has no users or roles you can manage." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "암호가 일치하지 않습니다." + "value" : "이 서버에는 관리할 수 있는 사용자 또는 역할이 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Parolalar eşleşmiyor." + "value" : "Bu sunucuda yönetebileceğiniz kullanıcı veya rol yok." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mật khẩu không khớp." + "value" : "Máy chủ này không có người dùng hoặc vai trò nào bạn quản lý được." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "两次输入的密码不一致。" + "value" : "此服务器没有你可以管理的用户或角色。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "兩次輸入的密碼不一致。" + "value" : "此伺服器沒有你可以管理的使用者或角色。" } } } }, - "The plugin depends on a component that's missing or incompatible with this Mac." : { + "This sets %lld loaded rows. Review and Save to apply." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 플러그인에 필요한 구성 요소가 없거나 이 Mac과 호환되지 않습니다." + "value" : "불러온 행을 %lld개로 설정합니다. 적용하려면 검토한 후 저장하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklenti, eksik olan veya bu Mac ile uyumsuz bir bileşene bağlı." + "value" : "Bu, yüklenmiş %lld satırın değerini ayarlar. Uygulamak için gözden geçirip kaydedin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Plugin phụ thuộc vào một thành phần bị thiếu hoặc không tương thích với máy Mac này." + "value" : "Thao tác này đặt giá trị cho %lld hàng đã tải. Xem lại và Lưu để áp dụng." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "该插件依赖的组件缺失或与这台 Mac 不兼容。" + "value" : "这将设置 %lld 个已加载的行。请检查后保存以应用。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "該外掛依賴的元件遺失或與這台 Mac 不相容。" + "value" : "這會設定 %lld 列已載入的資料。請檢查後儲存以套用。" } } } }, - "The plugin doesn't include a build for this Mac's processor architecture." : { + "This sets 1 loaded row. Review and Save to apply." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 플러그인에는 이 Mac의 프로세서 아키텍처용 빌드가 포함되어 있지 않습니다." + "value" : "불러온 행을 1개로 설정합니다. 적용하려면 검토한 후 저장하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklenti, bu Mac'in işlemci mimarisi için bir sürüm içermiyor." + "value" : "Bu, yüklenmiş 1 satırın değerini ayarlar. Uygulamak için gözden geçirip kaydedin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Plugin không có bản dựng cho kiến trúc bộ xử lý của máy Mac này." + "value" : "Thao tác này đặt giá trị cho 1 hàng đã tải. Xem lại và Lưu để áp dụng." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "该插件不包含适用于这台 Mac 处理器架构的版本。" + "value" : "这将设置 1 个已加载的行。请检查后保存以应用。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "該外掛不含適用於這台 Mac 處理器架構的版本。" + "value" : "這會設定 1 列已載入的資料。請檢查後儲存以套用。" } } } }, - "The plugin isn't compatible with this version of TablePro. Update the app or reinstall the plugin." : { + "This shortcut is reserved by macOS and cannot be assigned." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 플러그인은 현재 TablePro 버전과 호환되지 않습니다. 앱을 업데이트하거나 플러그인을 다시 설치하십시오." + "value" : "이 단축키는 macOS에서 예약되어 있어 지정할 수 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklenti bu TablePro sürümüyle uyumlu değil. Uygulamayı güncelleyin veya eklentiyi yeniden yükleyin." + "value" : "Bu kısayol macOS tarafından ayrılmıştır ve atanamaz." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Plugin không tương thích với phiên bản TablePro này. Hãy cập nhật ứng dụng hoặc cài lại plugin." + "value" : "Phím tắt này được macOS dành riêng và không thể gán." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "该插件与此版本的 TablePro 不兼容。请更新应用或重新安装插件。" + "value" : "此快捷键已被 macOS 保留,无法分配。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "該外掛與此版本的 TablePro 不相容。請更新應用程式或重新安裝外掛。" + "value" : "此快速鍵已由 macOS 保留,無法指派。" } } } }, - "The plugin was built for an incompatible runtime." : { + "This shortcut is reserved for \"%@\" and cannot be assigned." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 플러그인은 호환되지 않는 런타임용으로 빌드되었습니다." + "value" : "이 단축키는 \"%@\"에 예약되어 있어 지정할 수 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklenti uyumsuz bir çalışma zamanı için derlenmiş." + "value" : "Bu kısayol \"%@\" için ayrılmıştır ve atanamaz." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Plugin được xây dựng cho một runtime không tương thích." + "value" : "Phím tắt này được dành riêng cho \"%@\" và không thể gán." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "该插件是为不兼容的运行时构建的。" + "value" : "此快捷键已保留给 \"%@\",无法分配。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "該外掛是為不相容的執行環境建置的。" + "value" : "此快速鍵已保留給「%@」,無法指派。" } } } }, - "The plugin's executable couldn't be loaded. It may be damaged or improperly signed." : { + "This tab is on %@. Switch the connection to that database to run it." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플러그인의 실행 파일을 불러올 수 없습니다. 파일이 손상되었거나 올바르게 서명되지 않았을 수 있습니다." + "value" : "이 탭은 %@에 있습니다. 실행하려면 연결을 해당 데이터베이스로 전환하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklentinin çalıştırılabilir dosyası yüklenemedi. Hasarlı veya hatalı imzalanmış olabilir." + "value" : "Bu sekme %@ üzerinde. Çalıştırmak için bağlantıyı o veritabanına geçirin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể tải tệp thực thi của plugin. Có thể tệp bị hỏng hoặc ký không đúng." + "value" : "Tab này đang ở %@. Chuyển kết nối sang cơ sở dữ liệu đó để chạy." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法加载插件的可执行文件。它可能已损坏或签名不正确。" + "value" : "此标签页位于 %@。请将连接切换到该数据库后再运行。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法載入外掛的執行檔。它可能已損壞或簽章不正確。" + "value" : "此分頁位於 %@。請將連線切換到該資料庫後再執行。" } } } }, - "The plugin's executable file is missing." : { + "This table has no triggers. Triggers run automatically when rows are inserted, updated, or deleted." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플러그인의 실행 파일이 없습니다." + "value" : "이 테이블에는 트리거가 없습니다. 트리거는 행을 삽입, 업데이트 또는 삭제할 때 자동으로 실행됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklentinin çalıştırılabilir dosyası eksik." + "value" : "Bu tablonun tetikleyicisi yok. Tetikleyiciler, satırlar eklendiğinde, güncellendiğinde veya silindiğinde otomatik olarak çalışır." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thiếu tệp thực thi của plugin." + "value" : "Bảng này không có trigger. Trigger tự động chạy khi các dòng được chèn, cập nhật hoặc xóa." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "缺少插件的可执行文件。" + "value" : "此表没有触发器。当插入、更新或删除行时,触发器会自动运行。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "缺少外掛的執行檔。" + "value" : "此資料表沒有觸發器。當插入、更新或刪除列時,觸發器會自動執行。" } } } }, - "The previous code wasn't accepted. Wait for your authenticator to refresh, then enter the new code." : { - "extractionState" : "stale", + "This token will not be shown again" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이전 코드는 승인되지 않았습니다. 인증 앱이 새로 고침될 때까지 기다린 다음 새 코드를 입력하십시오." + "value" : "이 토큰은 다시 표시되지 않습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Önceki kod kabul edilmedi. Kimlik doğrulayıcınızın yenilenmesini bekleyin, ardından yeni kodu girin." + "value" : "Bu token bir daha gösterilmeyecek" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mã trước đó không được chấp nhận. Chờ ứng dụng xác thực làm mới rồi nhập mã mới." + "value" : "Token này sẽ không hiển thị lại nữa" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "上一个验证码未被接受。请等待验证器刷新后输入新验证码。" + "value" : "此令牌将不再显示" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "上一個驗證碼未被接受。請等待你的驗證器重新整理後,再輸入新的驗證碼。" + "value" : "此權杖將不會再次顯示" } } } }, - "The previous response wasn't accepted. Try again." : { + "This user can grant this privilege to others." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이전 응답이 승인되지 않았습니다. 다시 시도하십시오." + "value" : "이 사용자는 다른 사용자에게 이 권한을 부여할 수 있습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Önceki yanıt kabul edilmedi. Tekrar deneyin." + "value" : "Bu kullanıcı bu yetkiyi başkalarına verebilir." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Câu trả lời trước không được chấp nhận. Hãy thử lại." + "value" : "Người dùng này có thể cấp quyền đó cho người khác." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "上一次的回答未被接受。请重试。" + "value" : "此用户可以将该权限授予他人。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "上一次的回答未被接受。請再試一次。" + "value" : "此使用者可以將該權限授予他人。" } } } }, - "The provider configuration and stored API key will be deleted." : { + "This value is not one of the type's current labels" : { + "comment" : "A tooltip for a warning icon in the array value editor.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "제공업체 구성과 저장된 API 키가 삭제됩니다." + "value" : "이 값은 현재 유형 레이블 중 하나가 아닙니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sağlayıcı yapılandırması ve saklanan API anahtarı silinecek." + "value" : "Bu değer, türün geçerli etiketlerinden biri değil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cấu hình nhà cung cấp và khóa API đã lưu sẽ bị xóa." + "value" : "Giá trị này không nằm trong các nhãn hiện có của kiểu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将删除提供商配置和已存储的 API 密钥。" + "value" : "此值不在该类型的现有标签中" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "供應商設定與已儲存的 API 金鑰將被刪除。" - } - } - } - }, - "The query did not finish within the configured timeout, so the connection was reset. Run the query again." : { - "extractionState" : "stale", - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "쿼리가 설정된 제한 시간 내에 완료되지 않아 연결을 재설정했습니다. 쿼리를 다시 실행하십시오." + "value" : "此值不在該類型的現有標籤中" } } } }, - "The query exceeds the 100KB limit." : { - - }, - "The query history database could not be opened, so there is nothing to summarize." : { + "This value is too large to parse. Use raw mode to inspect it as text." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 기록 데이터베이스를 열 수 없어 요약할 내용이 없습니다." + "value" : "이 값은 구문 분석하기에 너무 큽니다. 원시 모드에서 텍스트로 확인하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgu geçmişi veritabanı açılamadı, bu yüzden özetlenecek bir şey yok." + "value" : "Bu değer ayrıştırılamayacak kadar büyük. Metin olarak incelemek için ham modu kullanın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không mở được cơ sở dữ liệu lịch sử truy vấn, nên không có gì để tổng hợp." + "value" : "Giá trị này quá lớn để phân tích. Dùng chế độ raw để xem dưới dạng văn bản." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法打开查询历史数据库,因此没有可汇总的内容。" + "value" : "此值太大,无法解析。请使用原始模式以文本形式查看。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法開啟查詢歷史資料庫,因此沒有可彙總的內容。" + "value" : "此值太大,無法解析。請使用原始模式以文字形式檢視。" } } } }, - "The query is empty." : { - - }, - "The query to review" : { - - }, - "The question to answer, in plain language" : { - - }, - "The redirect address is not a local callback, so pairing was refused." : { - - }, - "The run was rolled back. %@ is unchanged." : { - - }, - "The schema change to make, in plain language" : { - - }, - "The script already ran. Compare again to see where the target stands." : { - - }, - "The secret manager did not return valid JSON." : { + "This will detach partition '%@'. Data will be preserved but inaccessible until re-attached." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "보안 정보 관리자가 유효한 JSON을 반환하지 않았습니다." + "value" : "파티션 '%@'을(를) 분리합니다. 데이터는 보존되지만 다시 연결할 때까지 접근할 수 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Secret manager geçerli bir JSON döndürmedi." + "value" : "'%@' bölümü ayrılacak. Veriler korunacak ancak yeniden bağlanana kadar erişilemez olacak." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trình quản lý secret không trả về JSON hợp lệ." + "value" : "Thao tác này sẽ tách rời phân vùng '%@'. Dữ liệu sẽ được giữ lại nhưng không truy cập được cho đến khi gắn lại." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "secret manager 未返回有效的 JSON。" + "value" : "此操作将分离分区 '%@'。数据将被保留但在重新挂载前不可访问。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "secret manager 未回傳有效的 JSON。" + "value" : "此操作將分離分割區「%@」。資料會保留,但在重新附加前無法存取。" } } } }, - "The selected axes contain only null, binary, or invalid values." : { + "This will fetch all remaining rows. Large result sets use significant memory. Continue?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "선택한 축에 null, 바이너리 또는 유효하지 않은 값만 있습니다." + "value" : "남은 행을 모두 가져옵니다. 결과 집합이 크면 상당한 메모리를 사용합니다. 계속하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Seçilen eksenler yalnızca null, ikili veya geçersiz değerler içeriyor." + "value" : "Kalan tüm satırlar getirilecek. Büyük sonuç kümeleri önemli bellek kullanır. Devam edilsin mi?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Các trục đã chọn chỉ chứa giá trị null, nhị phân hoặc không hợp lệ." + "value" : "Thao tác này sẽ tải tất cả dòng còn lại. Tập kết quả lớn sử dụng nhiều bộ nhớ. Tiếp tục?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "所选坐标轴只包含空值、二进制或无效值。" + "value" : "此操作将获取所有剩余行。大量结果会占用较多内存。是否继续?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "所選座標軸只包含空值、二進位或無效值。" + "value" : "此操作將擷取所有剩餘的列。大量結果集會佔用大量記憶體。是否繼續?" } } } }, - "The selected backup file is not readable." : { + "This will fetch approximately %@ more rows. Large result sets use significant memory. Continue?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "선택한 백업 파일을 읽을 수 없습니다." + "value" : "약 %@개의 행을 더 가져옵니다. 결과 집합이 크면 상당한 메모리를 사용합니다. 계속하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Seçilen yedek dosyası okunamıyor." + "value" : "Yaklaşık %@ satır daha getirilecek. Büyük sonuç kümeleri önemli bellek kullanır. Devam edilsin mi?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không đọc được file sao lưu đã chọn." + "value" : "Thao tác này sẽ tải thêm khoảng %@ dòng. Tập kết quả lớn sử dụng nhiều bộ nhớ. Tiếp tục?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "所选备份文件不可读。" + "value" : "此操作将获取约 %@ 行更多数据。大量结果会占用较多内存。是否继续?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "所選的備份檔案無法讀取。" - } - } - } - }, - "The server sent an unexpected message and the connection was reset. Run the query again." : { - "extractionState" : "stale", - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "서버에서 예상하지 못한 메시지를 보내 연결을 재설정했습니다. 쿼리를 다시 실행하십시오." + "value" : "此操作將額外擷取約 %@ 列。大量結果集會佔用大量記憶體。是否繼續?" } } } }, - "The server will be accessible from other devices on your network. Authentication and TLS are enabled automatically." : { - "extractionState" : "stale", + "This will load all %@ rows on a single page. Large result sets use significant memory. Continue?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "네트워크의 다른 기기에서 서버에 접근할 수 있습니다. 인증과 TLS가 자동으로 활성화됩니다." + "value" : "%@개 행을 모두 한 페이지에 불러옵니다. 결과 집합이 크면 상당한 메모리를 사용합니다. 계속하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sunucuya ağınızdaki diğer cihazlardan erişilebilecek. Kimlik doğrulama ve TLS otomatik olarak etkinleştirilir." + "value" : "Bu işlem %@ satırın tamamını tek bir sayfada yükler. Büyük sonuç kümeleri önemli ölçüde bellek kullanır. Devam edilsin mi?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Server sẽ truy cập được từ các thiết bị khác trong mạng của bạn. Xác thực và TLS được bật tự động." + "value" : "Thao tác này sẽ tải toàn bộ %@ hàng trên một trang. Tập kết quả lớn dùng nhiều bộ nhớ. Tiếp tục?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "服务器将可被网络上的其他设备访问。认证和 TLS 会自动启用。" + "value" : "这将在单个页面加载全部 %@ 行。大型结果集会占用大量内存。要继续吗?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "伺服器將可由網路上的其他裝置存取。驗證與 TLS 會自動啟用。" + "value" : "這會在單一頁面載入全部 %@ 列。大型結果集會佔用大量記憶體。要繼續嗎?" } } } }, - "The slow query" : { - - }, - "the SOCKS proxy" : { + "This will permanently delete %lld %@. This action cannot be undone." : { + "extractionState" : "stale", "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "This will permanently delete %1$lld %2$@. This action cannot be undone." + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SOCKS 프록시" + "value" : "%1$lld개의 %2$@을(를) 영구적으로 삭제합니다. 이 작업은 실행 취소할 수 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SOCKS proxy" + "value" : "This will permanently delete %lld %@. This action cannot be undone." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "SOCKS proxy" + "value" : "Thao tác này sẽ xóa vĩnh viễn %1$lld %2$@. Không thể hoàn tác." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SOCKS 代理" + "value" : "此操作将永久删除 %lld 个%@。无法撤销。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SOCKS 代理" + "value" : "此操作將永久刪除 %1$lld 個%2$@。此動作無法復原。" } } } }, - "The SOCKS proxy configuration is incomplete. Enter a proxy host and port." : { + "This will permanently delete all conversation history." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SOCKS 프록시 구성이 완료되지 않았습니다. 프록시 호스트와 포트를 입력하십시오." + "value" : "모든 대화 기록을 영구적으로 삭제합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SOCKS proxy yapılandırması eksik. Bir proxy sunucusu ve portu girin." + "value" : "Bu işlem tüm konuşma geçmişini kalıcı olarak silecek." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cấu hình SOCKS proxy chưa đầy đủ. Hãy nhập máy chủ và cổng proxy." + "value" : "Hành động này sẽ xóa vĩnh viễn toàn bộ lịch sử hội thoại." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SOCKS 代理配置不完整。请输入代理主机和端口。" + "value" : "这将永久删除所有对话历史。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SOCKS 代理設定不完整。請輸入代理主機與連接埠。" + "value" : "此操作將永久刪除所有對話記錄。" } } } }, - "The source and the target are the same database." : { - - }, - "The source driver cannot stream rows for a comparison." : { - - }, - "The SSH server connects to this socket instead of Host and Port. A database on a socket cannot negotiate TLS, so TablePro turns it off; the SSH tunnel still encrypts the whole path." : { + "This will permanently delete all data in partition '%@'." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 서버는 호스트 및 포트 대신 이 소켓에 연결합니다. 소켓의 데이터베이스는 TLS를 협상할 수 없으므로 TablePro에서 TLS를 끕니다. 단, SSH 터널은 전체 경로를 계속 암호화합니다." + "value" : "파티션 '%@'의 모든 데이터를 영구적으로 삭제합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH sunucusu, Sunucu ve Port yerine bu sokete bağlanır. Soket üzerindeki bir veritabanı TLS anlaşması yapamaz, bu yüzden TablePro TLS'i kapatır; SSH tüneli yine de tüm yolu şifreler." + "value" : "'%@' bölümündeki tüm veriler kalıcı olarak silinecek." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Máy chủ SSH kết nối tới socket này thay vì Máy chủ và Cổng. Cơ sở dữ liệu trên socket không thể thương lượng TLS, nên TablePro tắt TLS; đường hầm SSH vẫn mã hóa toàn bộ đường truyền." + "value" : "Thao tác này sẽ xoá vĩnh viễn tất cả dữ liệu trong phân vùng '%@'." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 服务器会连接到此 socket,而不是主机和端口。socket 上的数据库无法协商 TLS,因此 TablePro 会关闭 TLS;SSH 隧道仍然加密整条链路。" + "value" : "此操作将永久删除分区 '%@' 中的所有数据。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 伺服器會連線到此 socket,而不是主機與連接埠。socket 上的資料庫無法協商 TLS,因此 TablePro 會關閉 TLS;SSH 通道仍會加密整條路徑。" + "value" : "此操作將永久刪除分割區「%@」中的所有資料。" } } } }, - "The SSH server could not reach %@. That address is resolved from the SSH server, not from your Mac, so a database that only listens on 127.0.0.1 needs Host set to localhost. Also check that sshd allows TCP forwarding (AllowTcpForwarding). (%@)" : { + "This will permanently delete all query history entries. This action cannot be undone." : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "The SSH server could not reach %1$@. That address is resolved from the SSH server, not from your Mac, so a database that only listens on 127.0.0.1 needs Host set to localhost. Also check that sshd allows TCP forwarding (AllowTcpForwarding). (%2$@)" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 서버에서 %1$@에 연결할 수 없습니다. 이 주소는 Mac이 아니라 SSH 서버에서 확인되므로, 127.0.0.1에서만 수신하는 데이터베이스의 호스트는 localhost로 설정해야 합니다. sshd에서 TCP 전달(AllowTcpForwarding)을 허용하는지도 확인하십시오. (%2$@)" + "value" : "모든 쿼리 기록 항목을 영구적으로 삭제합니다. 이 작업은 실행 취소할 수 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH sunucusu %1$@ adresine ulaşamadı. Bu adres sizin Mac'inizden değil, SSH sunucusundan çözümlenir; bu yüzden yalnızca 127.0.0.1 dinleyen bir veritabanı için Sunucu alanı localhost olmalıdır. Ayrıca sshd'nin TCP yönlendirmeye izin verdiğini denetleyin (AllowTcpForwarding). (%2$@)" + "value" : "Bu işlem tüm sorgu geçmişi kayıtlarını kalıcı olarak siler. Bu işlem geri alınamaz." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Máy chủ SSH không thể kết nối tới %1$@. Địa chỉ đó được phân giải từ máy chủ SSH chứ không phải từ máy Mac của bạn, nên cơ sở dữ liệu chỉ lắng nghe trên 127.0.0.1 cần đặt Máy chủ là localhost. Ngoài ra hãy kiểm tra sshd có cho phép chuyển tiếp TCP không (AllowTcpForwarding). (%2$@)" + "value" : "Thao tác này sẽ xóa vĩnh viễn toàn bộ lịch sử truy vấn. Không thể hoàn tác." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 服务器无法访问 %1$@。该地址是从 SSH 服务器解析的,而不是从你的 Mac 解析,因此只监听 127.0.0.1 的数据库需要把主机设为 localhost。另请检查 sshd 是否允许 TCP 转发(AllowTcpForwarding)。(%2$@)" + "value" : "此操作将永久删除所有查询历史记录。无法撤销。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 伺服器無法連到 %1$@。該位址是從 SSH 伺服器解析的,而不是從你的 Mac 解析,因此只監聽 127.0.0.1 的資料庫需要將主機設為 localhost。另請檢查 sshd 是否允許 TCP 轉送(AllowTcpForwarding)。(%2$@)" + "value" : "此操作將永久刪除所有查詢歷程記錄項目。此動作無法復原。" } } } }, - "The SSH server did not accept passwordless authentication. Choose Password, Private Key, or SSH Agent." : { + "This will remove the license from this machine. You can reactivate later." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 서버에서 암호 없는 인증을 허용하지 않았습니다. 암호, 개인 키 또는 SSH 에이전트를 선택하십시오." + "value" : "이 컴퓨터에서 라이선스를 제거합니다. 나중에 다시 활성화할 수 있습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH sunucusu parolasız kimlik doğrulamayı kabul etmedi. Parola, Özel Anahtar veya SSH Agent seçin." + "value" : "Bu işlem lisansı bu makineden kaldırır. Daha sonra yeniden etkinleştirebilirsiniz." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Máy chủ SSH không chấp nhận xác thực không mật khẩu. Hãy chọn Mật khẩu, Khóa riêng hoặc SSH Agent." + "value" : "Thao tác này sẽ gỡ giấy phép khỏi máy này. Bạn có thể kích hoạt lại sau." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 服务器不接受无密码认证。请选择密码、私钥或 SSH Agent。" + "value" : "此操作将从本机移除许可证。您可以稍后重新激活。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 伺服器不接受無密碼驗證。請選擇密碼、私密金鑰或 SSH Agent。" + "value" : "此操作將從這台機器移除授權。你可以稍後重新啟用。" } } } }, - "The SSH server did not open a forwarding channel to %@ within %d seconds. Check for a firewall between the SSH server and that address." : { + "This will reset all settings across every section to their default values." : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "The SSH server did not open a forwarding channel to %1$@ within %2$d seconds. Check for a firewall between the SSH server and that address." - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 서버가 %2$d초 이내에 %1$@에 대한 전달 채널을 열지 못했습니다. SSH 서버와 해당 주소 사이에 방화벽이 있는지 확인하십시오." + "value" : "모든 섹션의 설정을 기본값으로 재설정합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH sunucusu %2$d saniye içinde %1$@ adresine bir yönlendirme kanalı açmadı. SSH sunucusu ile bu adres arasında güvenlik duvarı olup olmadığını denetleyin." + "value" : "Bu işlem tüm bölümlerdeki ayarları varsayılan değerlerine sıfırlayacaktır." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Máy chủ SSH không mở kênh chuyển tiếp tới %1$@ trong %2$d giây. Hãy kiểm tra tường lửa giữa máy chủ SSH và địa chỉ đó." + "value" : "Thao tác này sẽ đặt lại tất cả cài đặt ở mọi mục về giá trị mặc định." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 服务器未在 %2$d 秒内建立到 %1$@ 的转发通道。请检查 SSH 服务器与该地址之间是否有防火墙。" + "value" : "这将把所有部分的设置重置为默认值。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 伺服器未在 %2$d 秒內建立到 %1$@ 的轉送通道。請檢查 SSH 伺服器與該位址之間是否有防火牆。" + "value" : "此操作會將所有區段的設定重設為預設值。" } } } }, - "The SSH server is asking for additional verification." : { + "Threads" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 서버에서 추가 인증을 요청하고 있습니다." + "value" : "스레드" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH sunucusu ek doğrulama istiyor." + "value" : "İş Parçacıkları" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Máy chủ SSH đang yêu cầu xác minh bổ sung." + "value" : "Luồng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 服务器要求进行额外验证。" + "value" : "线程" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 伺服器要求進行額外驗證。" + "value" : "執行緒" } } } }, - "The SSH server would not forward the socket %@. Check that the path exists on the server and that sshd allows socket forwarding (AllowStreamLocalForwarding). (%@)" : { + "Tier:" : { "localizations" : { "en" : { "stringUnit" : { - "state" : "new", - "value" : "The SSH server would not forward the socket %1$@. Check that the path exists on the server and that sshd allows socket forwarding (AllowStreamLocalForwarding). (%2$@)" + "state" : "translated", + "value" : "Tier:" } }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 서버에서 소켓 %1$@ 전달을 허용하지 않았습니다. 서버에 해당 경로가 있는지, sshd에서 소켓 전달(AllowStreamLocalForwarding)을 허용하는지 확인하십시오. (%2$@)" + "value" : "등급:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "SSH sunucusu %1$@ soketini yönlendirmedi. Yolun sunucuda var olduğunu ve sshd'nin soket yönlendirmeye izin verdiğini denetleyin (AllowStreamLocalForwarding). (%2$@)" + "value" : "Katman:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Máy chủ SSH không chuyển tiếp socket %1$@. Hãy kiểm tra đường dẫn có tồn tại trên máy chủ và sshd có cho phép chuyển tiếp socket không (AllowStreamLocalForwarding). (%2$@)" + "value" : "Hạng:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 服务器未转发 socket %1$@。请检查该路径在服务器上是否存在,以及 sshd 是否允许 socket 转发(AllowStreamLocalForwarding)。(%2$@)" + "value" : "等级:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "SSH 伺服器未轉送 socket %1$@。請檢查該路徑在伺服器上是否存在,以及 sshd 是否允許 socket 轉送(AllowStreamLocalForwarding)。(%2$@)" + "value" : "等級:" } } } }, - "The SSO session for profile \"%@\" has expired. Sign in with your browser?" : { + "Time" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "프로필 \"%@\"의 SSO 세션이 만료되었습니다. 브라우저에서 로그인하시겠습니까?" + "value" : "시간" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "\"%@\" profilinin SSO oturumunun süresi doldu. Tarayıcınızla giriş yapmak ister misiniz?" + "value" : "Zaman" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phiên SSO của hồ sơ \"%@\" đã hết hạn. Đăng nhập bằng trình duyệt?" + "value" : "Thời gian" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "配置文件 \"%@\" 的 SSO 会话已过期。要通过浏览器登录吗?" + "value" : "时间" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "設定檔「%@」的 SSO 工作階段已過期。要透過瀏覽器登入嗎?" + "value" : "時間" } } } }, - "The statement that was sent, with its prefix" : { - - }, - "The statement to explain, without an EXPLAIN prefix" : { - - }, - "The statements ran but the transaction could not be committed: %@" : { - - }, - "The table %@ was already created with different columns. Choose another name." : { - - }, - "the target" : { - - }, - "The target connection is no longer open." : { + "Time Zone" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "대상 연결이 더 이상 열려 있지 않습니다." + "value" : "시간대" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Hedef bağlantı artık açık değil." + "value" : "Saat Dilimi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối đích không còn mở." + "value" : "Múi giờ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "目标连接已不再打开。" + "value" : "时区" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "目標連線已不再開啟。" + "value" : "時區" } } } }, - "The target database may be in a partial state. Review the database and clean up as needed." : { - "comment" : "A message that appears when restoring a database and the user is advised to review and clean up the database.", - "isCommentAutoGenerated" : true, + "Time spent waiting" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "대상 데이터베이스가 불완전한 상태일 수 있습니다. 데이터베이스를 검토하고 필요에 따라 정리하십시오." + "value" : "대기 시간" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Hedef veritabanı kısmi bir durumda olabilir. Veritabanını gözden geçirin ve gerektiği gibi temizleyin." + "value" : "Beklemede geçen süre" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cơ sở dữ liệu đích có thể đang ở trạng thái dở dang. Hãy xem lại và dọn dẹp nếu cần." + "value" : "Thời gian chờ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "目标数据库可能处于不完整状态。请检查数据库并按需清理。" + "value" : "等待耗时" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "目標資料庫可能處於不完整的狀態。請檢查資料庫並視需要清理。" + "value" : "等待耗時" } } } }, - "The target database may be left in a partial state." : { - "comment" : "A message displayed in a cancel confirmation alert for a database restore.", - "isCommentAutoGenerated" : true, + "Time: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "대상 데이터베이스가 불완전한 상태로 남을 수 있습니다." + "value" : "시간: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Hedef veritabanı kısmi bir durumda kalabilir." + "value" : "Zaman: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cơ sở dữ liệu đích có thể bị bỏ lại ở trạng thái dở dang." + "value" : "Thời gian: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "目标数据库可能会处于不完整状态。" + "value" : "时间:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "目標資料庫可能會處於不完整的狀態。" + "value" : "時間:%@" } } } }, - "The target does not support creating table %@." : { - - }, - "The target driver cannot generate a sync script." : { - - }, - "The target driver cannot run a sync script." : { - - }, - "The target driver cannot stream rows for a comparison." : { - + "Timed out completing Kerberos authentication. The Kerberos KDC (domain controller) may be unreachable, the server's SPN may be missing, or this device's clock may be off. Check your network to the domain, or use SQL Server Authentication." : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "Kerberos 인증을 완료하는 동안 시간이 초과되었습니다. Kerberos KDC(도메인 컨트롤러)에 연결할 수 없거나, 서버의 SPN이 없거나, 이 기기의 시계가 맞지 않을 수 있습니다. 도메인에 대한 네트워크 연결을 확인하거나 SQL Server 인증을 사용하십시오." + } + } + } }, - "The text could not be parsed as JSON." : { + "Timed out connecting through the SOCKS proxy at %@:%@. Check that the proxy is reachable and the credentials are correct." : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Timed out connecting through the SOCKS proxy at %1$@:%2$@. Check that the proxy is reachable and the credentials are correct." + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "텍스트를 JSON으로 구문 분석할 수 없습니다." + "value" : "%1$@:%2$@의 SOCKS 프록시를 통해 연결하는 동안 시간이 초과되었습니다. 프록시에 연결할 수 있는지와 자격 증명이 올바른지 확인하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Metin JSON olarak ayrıştırılamadı." + "value" : "%1$@:%2$@ adresindeki SOCKS proxy üzerinden bağlanırken zaman aşımı oluştu. Proxy'ye erişilebildiğini ve kimlik bilgilerinin doğru olduğunu denetleyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể phân tích văn bản dưới dạng JSON." + "value" : "Hết thời gian chờ khi kết nối qua SOCKS proxy tại %1$@:%2$@. Hãy kiểm tra proxy có truy cập được và thông tin đăng nhập có đúng không." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法将文本解析为 JSON。" + "value" : "通过 %1$@:%2$@ 的 SOCKS 代理连接超时。请检查该代理是否可达、凭据是否正确。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法將文字剖析為 JSON。" + "value" : "透過 %1$@:%2$@ 的 SOCKS 代理連線逾時。請檢查該代理是否可連線、認證資訊是否正確。" } } } }, - "The text could not be parsed as JSON. Use text mode to view or edit." : { + "Timed out connecting to the server. Check the host, port, and that the server is reachable and accepting connections." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "텍스트를 JSON으로 구문 분석할 수 없습니다. 텍스트 모드에서 보거나 편집하십시오." - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "Metin JSON olarak ayrıştırılamadı. Görüntülemek veya düzenlemek için metin modunu kullanın." + "value" : "서버에 연결하는 동안 시간이 초과되었습니다. 호스트와 포트가 올바른지, 서버에 연결할 수 있고 서버가 연결을 수락하는지 확인하십시오." } - }, - "vi" : { + } + } + }, + "Timed out during the Oracle login handshake. The server accepted the network connection but did not finish logging in." : { + "localizations" : { + "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể phân tích văn bản dưới dạng JSON. Dùng chế độ văn bản để xem hoặc chỉnh sửa." + "value" : "Oracle 로그인 핸드셰이크 중 시간이 초과되었습니다. 서버가 네트워크 연결을 수락했지만 로그인을 완료하지 않았습니다." } - }, - "zh-Hans" : { + } + } + }, + "Timestamp digits compared" : { + "localizations" : { + "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "文本无法解析为 JSON。请使用文本模式查看或编辑。" + "value" : "비교할 타임스탬프 자릿수", + "state" : "translated" } - }, - "zh-Hant" : { + } + } + }, + "Timestamp precision" : { + "localizations" : { + "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "無法將文字剖析為 JSON。請使用文字模式檢視或編輯。" + "value" : "타임스탬프 정밀도", + "state" : "translated" } } } }, - "The text doesn't look like a connection URL." : { + "Timing" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "텍스트가 연결 URL 형식이 아닙니다." + "value" : "타이밍" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Metin bir bağlantı URL'sine benzemiyor." + "value" : "Zamanlama" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Văn bản này không giống một URL kết nối." + "value" : "Thời điểm" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "该文本看起来不是连接 URL。" + "value" : "时机" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "這段文字看起來不像連線 URL。" + "value" : "時機" } } } }, - "The text is not valid JSON. Save anyway?" : { + "Tiny" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "텍스트가 유효한 JSON이 아닙니다. 그래도 저장하시겠습니까?" + "value" : "매우 작게" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Metin geçerli bir JSON değil. Yine de kaydedilsin mi?" + "value" : "Tiny" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nội dung không phải JSON hợp lệ. Vẫn lưu?" + "value" : "Rất nhỏ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "文本不是有效的 JSON。仍然保存?" + "value" : "极小" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "文字並非有效的 JSON。仍要儲存嗎?" + "value" : "極小" } } } }, - "The transaction could not be committed: %@" : { + "Tiny Dot" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "트랜잭션을 커밋할 수 없습니다: %@" + "value" : "작은 점" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İşlem kaydedilemedi: %@" + "value" : "Tiny Dot" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không thể commit giao dịch: %@" + "value" : "Chấm nhỏ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "事务无法提交:%@" + "value" : "极小圆点" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "交易無法提交:%@" + "value" : "極小圓點" } } } }, - "The user cancelled this operation." : { - - }, - "The user did not approve this operation." : { - - }, - "The value could not be parsed. Use raw mode to inspect it as text." : { + "Title" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "값을 구문 분석할 수 없습니다. 원시 모드에서 텍스트로 확인하십시오." + "value" : "제목" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Değer ayrıştırılamadı. Metin olarak incelemek için ham modu kullanın." + "value" : "Başlık" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không phân tích được giá trị. Dùng chế độ raw để xem dưới dạng văn bản." + "value" : "Tiêu đề" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法解析该值。请使用原始模式以文本形式查看。" + "value" : "标题" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法解析該值。請使用原始模式以文字形式檢視。" + "value" : "標題" } } } }, - "Theme" : { + "Title 2" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테마" + "value" : "제목 2" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tema" + "value" : "Title 2" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giao diện" + "value" : "Tiêu đề 2" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "主题" + "value" : "标题 2" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "佈景主題" + "value" : "標題 2" } } } }, - "Theme Actions" : { - "comment" : "A heading displayed above the theme actions.", - "isCommentAutoGenerated" : true, + "Title 3" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테마 작업" + "value" : "제목 3" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tema İşlemleri" + "value" : "Title 3" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thao tác giao diện" + "value" : "Tiêu đề 3" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "主题操作" + "value" : "标题 3" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "佈景主題操作" + "value" : "標題 3" } } } }, - "Theme Update Failed" : { + "Today" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테마 업데이트 실패" + "value" : "오늘" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tema Güncellemesi Başarısız Oldu" + "value" : "Bugün" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cập nhật theme thất bại" + "value" : "Hôm nay" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "主题更新失败" + "value" : "今天" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "佈景主題更新失敗" + "value" : "今天" } } } }, - "Theme:" : { + "Toggle AI Chat" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테마:" + "value" : "AI 채팅 표시/숨기기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tema:" + "value" : "Toggle AI Chat" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giao diện:" + "value" : "Bật/tắt AI Chat" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "主题:" + "value" : "切换 AI 聊天" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "佈景主題:" + "value" : "切換 AI 聊天" } } } }, - "Themes" : { + "Toggle AI Chat (⌘⇧L)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테마" + "value" : "AI 채팅 표시/숨기기(⌘⇧L)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Themes" + "value" : "Toggle AI Chat (⌘⇧L)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giao diện" + "value" : "Bật/tắt AI Chat (⌘⇧L)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "主题" + "value" : "切换 AI 聊天 (⌘⇧L)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "佈景主題" + "value" : "切換 AI 聊天 (⌘⇧L)" } } } }, - "There are no connections to publish." : { + "Toggle Comment" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "게시할 연결이 없습니다." + "value" : "주석 전환" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yayınlanacak bağlantı yok." + "value" : "Yorumu Aç/Kapat" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có kết nối nào để xuất bản." + "value" : "Bật/tắt comment" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "没有可发布的连接。" + "value" : "切换注释" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "沒有可發佈的連線。" + "value" : "切換註解" } } } }, - "These changes alter %@, the account this connection uses." : { + "Toggle Connections" : { + "comment" : "Text for the \"Toggle Connections\" shortcut action.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 변경 사항은 이 연결에서 사용하는 계정 %@을(를) 변경합니다." + "value" : "연결 표시/숨기기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu değişiklikler, bu bağlantının kullandığı hesap olan %@ hesabını değiştirir." + "value" : "Bağlantıları Aç/Kapat" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Các thay đổi này sửa %@, tài khoản mà kết nối này đang dùng." + "value" : "Bật/tắt kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "这些更改会修改 %@,也就是此连接使用的账户。" + "value" : "切换连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "這些變更會修改 %@,也就是此連線使用的帳號。" + "value" : "切換連線" } } } }, - "These changes drop %@, the account this connection uses." : { + "Toggle Filters" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 변경 사항은 이 연결에서 사용하는 계정 %@을(를) 삭제합니다." + "value" : "필터 표시/숨기기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu değişiklikler, bu bağlantının kullandığı hesap olan %@ hesabını siler." + "value" : "Filtreleri Aç/Kapat" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Các thay đổi này xoá %@, tài khoản mà kết nối này đang dùng." + "value" : "Bật/tắt bộ lọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "这些更改会删除 %@,也就是此连接使用的账户。" + "value" : "切换筛选" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "這些變更會刪除 %@,也就是此連線使用的帳號。" + "value" : "切換篩選" } } } }, - "These changes revoke every privilege from %@, the account this connection uses." : { + "Toggle Filters (Cmd+F)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 변경 사항은 이 연결에서 사용하는 계정 %@의 모든 권한을 취소합니다." + "value" : "필터 표시/숨기기(Cmd+F)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu değişiklikler, bu bağlantının kullandığı hesap olan %@ hesabından tüm yetkileri geri alır." + "value" : "Toggle Filters (Cmd+F)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Các thay đổi này thu hồi mọi quyền của %@, tài khoản mà kết nối này đang dùng." + "value" : "Bật/tắt bộ lọc (Cmd+F)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "这些更改会撤销 %@ 的所有权限,也就是此连接使用的账户。" + "value" : "切换筛选 (Cmd+F)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "這些變更會撤銷 %@ 的所有權限,也就是此連線使用的帳號。" + "value" : "切換篩選 (Cmd+F)" } } } }, - "These rows came from another database than the one this tab is now using." : { - - }, - "These rows cannot be edited because TablePro cannot tell which table they came from." : { - - }, - "These rows come from a view, which cannot be edited." : { - - }, - "These two engines cannot share a script." : { - - }, - "This %1$@ has no %2$@ yet." : { + "Toggle Filters (⇧⌘F)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 %1$@에는 아직 %2$@이(가) 없습니다." + "value" : "필터 표시/숨기기(⇧⌘F)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu %1$@ henüz %2$@ içermiyor." + "value" : "Filtreleri Aç/Kapat (⇧⌘F)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@ này chưa có %2$@." + "value" : "Bật/tắt bộ lọc (⇧⌘F)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此%1$@还没有%2$@。" + "value" : "切换筛选 (⇧⌘F)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此%1$@還沒有%2$@。" + "value" : "切換篩選 (⇧⌘F)" } } } }, - "This account uses a password verifier the database driver does not support." : { + "Toggle Filters (⌘F)" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 계정은 데이터베이스 드라이버가 지원하지 않는 암호 검증 형식을 사용합니다." - } - } - } - }, - "This action needs a modifier key like ⌘ or ⌥. A plain key won't reach the menu reliably." : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "이 작업에는 ⌘ 또는 ⌥ 같은 보조 키가 필요합니다. 일반 키는 메뉴에 안정적으로 전달되지 않습니다." + "value" : "필터 표시/숨기기(⌘F)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu işlem ⌘ veya ⌥ gibi bir değiştirici tuş gerektirir. Tek başına bir tuş menüye güvenilir şekilde ulaşmaz." + "value" : "Toggle Filters (⌘F)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hành động này cần phím bổ trợ như ⌘ hoặc ⌥. Phím đơn sẽ không đến được menu một cách ổn định." + "value" : "Bật/tắt bộ lọc (⌘F)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此操作需要 ⌘ 或 ⌥ 等修饰键。单个普通按键无法可靠地触发菜单。" + "value" : "切换筛选 (⌘F)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此操作需要 ⌘ 或 ⌥ 之類的輔助按鍵。單獨的普通按鍵無法可靠地觸發選單。" + "value" : "切換篩選 (⌘F)" } } } }, - "This client does not have access to that connection." : { - - }, - "This Connection" : { + "Toggle History" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 연결" + "value" : "기록 표시/숨기기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu Bağlantı" + "value" : "Geçmişi Aç/Kapat" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối này" + "value" : "Bật/tắt lịch sử" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此连接" + "value" : "切换历史记录" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此連線" + "value" : "切換歷程記錄" } } } }, - "This connection does not support user and role management." : { + "Toggle Inspector" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 연결은 사용자 및 역할 관리를 지원하지 않습니다." + "value" : "검사기 표시/숨기기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu bağlantı kullanıcı ve rol yönetimini desteklemiyor." + "value" : "Denetçiyi Aç/Kapat" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối này không hỗ trợ quản lý người dùng và vai trò." + "value" : "Bật/tắt thanh kiểm tra" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此连接不支持用户和角色管理。" + "value" : "切换检查器" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此連線不支援使用者與角色管理。" + "value" : "切換檢閱器" } } } }, - "This connection is read only for external clients." : { - - }, - "This connection runs SQL every time it connects, using your credentials." : { - "comment" : "A description of the startup SQL for a database connection.", - "isCommentAutoGenerated" : true, + "Toggle Inspector (⌘⌥I)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 연결은 연결될 때마다 사용자의 자격 증명으로 SQL을 실행합니다." + "value" : "검사기 표시/숨기기(⌘⌥I)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu bağlantı her bağlandığında, kimlik bilgilerinizle SQL çalıştırır." + "value" : "Toggle Inspector (⌘⌥I)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối này chạy SQL mỗi lần kết nối, bằng thông tin đăng nhập của bạn." + "value" : "Bật/tắt thanh kiểm tra (⌘⌥I)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此连接每次连接时都会用你的凭据运行 SQL。" + "value" : "切换检查器 (⌘⌥I)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此連線每次連線時都會用你的憑證執行 SQL。" + "value" : "切換檢閱器 (⌘⌥I)" } } } }, - "This connection was deleted on another device or window. Your changes were not saved." : { + "Toggle Query History" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 연결이 다른 기기 또는 창에서 삭제되었습니다. 변경 사항은 저장되지 않았습니다." + "value" : "쿼리 기록 표시/숨기기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu bağlantı başka bir aygıtta veya pencerede silindi. Değişiklikleriniz kaydedilmedi." + "value" : "Sorgu Geçmişini Aç/Kapat" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối này đã bị xóa trên thiết bị hoặc cửa sổ khác. Các thay đổi của bạn chưa được lưu." + "value" : "Bật/tắt lịch sử truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此连接已在其他设备或窗口中被删除。你的更改未保存。" + "value" : "切换查询历史" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此連線已在其他裝置或視窗中被刪除。你的變更未儲存。" + "value" : "切換查詢歷史" } } } }, - "This connection won't sync to other devices via iCloud." : { + "Toggle Query History (⌘Y)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 연결은 iCloud를 통해 다른 기기와 동기화되지 않습니다." + "value" : "쿼리 기록 표시/숨기기(⌘Y)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu bağlantı iCloud üzerinden diğer cihazlarla eşitlenmeyecek." + "value" : "Toggle Query History (⌘Y)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kết nối này sẽ không đồng bộ sang thiết bị khác qua iCloud." + "value" : "Bật/tắt lịch sử truy vấn (⌘Y)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此连接不会通过 iCloud 同步到其他设备。" + "value" : "切换查询历史 (⌘Y)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此連線不會透過 iCloud 同步到其他裝置。" - } - } - } - }, - "This connection's CA certificate is not readable on this device (%@). Certificate files do not sync between devices, so add the certificate here or lower the SSL mode to Required." : { - "extractionState" : "stale", - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "이 기기에서 이 연결의 CA 인증서를 읽을 수 없습니다(%@). 인증서 파일은 기기 간에 동기화되지 않으므로 이 기기에 인증서를 추가하거나 SSL 모드를 필수(Required)로 낮추십시오." - } - } - } - }, - "This connection's client certificate is not readable on this device (%@). Certificate files do not sync between devices, so add the certificate here before connecting." : { - "extractionState" : "stale", - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "이 기기에서 이 연결의 클라이언트 인증서를 읽을 수 없습니다(%@). 인증서 파일은 기기 간에 동기화되지 않으므로 연결하기 전에 이 기기에 인증서를 추가하십시오." + "value" : "切換查詢歷史 (⌘Y)" } } } }, - "This connection's client key is not readable on this device (%@). Key files do not sync between devices, so add the key here before connecting." : { + "Toggle Query History (⌘⇧H)" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 기기에서 이 연결의 클라이언트 키를 읽을 수 없습니다(%@). 키 파일은 기기 간에 동기화되지 않으므로 연결하기 전에 이 기기에 키를 추가하십시오." - } - } - } - }, - "This database cannot drop triggers" : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "이 데이터베이스에서는 트리거를 삭제할 수 없습니다" + "value" : "쿼리 기록 표시/숨기기(⌘⇧H)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu veritabanı tetikleyici silemez" + "value" : "Toggle Query History (⌘⇧H)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cơ sở dữ liệu này không thể xoá trigger" + "value" : "Bật/tắt lịch sử truy vấn (⌘⇧H)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此数据库无法删除触发器" + "value" : "切换查询历史 (⌘⇧H)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此資料庫無法刪除觸發器" + "value" : "切換查詢歷史 (⌘⇧H)" } } } }, - "This database did not return a query plan for the statement." : { - "comment" : "Text displayed in a description when the database did not return a query plan for the statement.", - "isCommentAutoGenerated" : true, + "Toggle Results" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터베이스에서 이 문에 대한 쿼리 계획을 반환하지 않았습니다." + "value" : "결과 표시/숨기기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu veritabanı ifade için bir sorgu planı döndürmedi." + "value" : "Sonuçları Aç/Kapat" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cơ sở dữ liệu này không trả về kế hoạch truy vấn cho câu lệnh." + "value" : "Ẩn/hiện kết quả" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此数据库没有为该语句返回查询计划。" + "value" : "显示/隐藏结果" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此資料庫沒有為該陳述式回傳查詢計畫。" + "value" : "顯示/隱藏結果" } } } }, - "This database has no %@ yet." : { + "Toggle Results (⌘⌥R)" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 데이터베이스에는 아직 %@이(가) 없습니다." + "value" : "결과 표시/숨기기(⌘⌥R)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "This database has no %@ yet." + "value" : "Sonuçları Aç/Kapat (⌘⌥R)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cơ sở dữ liệu này chưa có %@ nào." + "value" : "Ẩn/hiện kết quả (⌘⌥R)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此数据库还没有%@。" + "value" : "显示/隐藏结果(⌘⌥R)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此資料庫尚未有任何%@。" + "value" : "顯示/隱藏結果 (⌘⌥R)" } } } }, - "This database has no tables yet." : { + "Toggle Sidebar" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 데이터베이스에는 아직 테이블이 없습니다." + "value" : "사이드바 표시/숨기기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "This database has no tables yet." + "value" : "Kenar Çubuğunu Aç/Kapat" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cơ sở dữ liệu này chưa có bảng nào." + "value" : "Bật/tắt thanh bên" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此数据库还没有表。" + "value" : "切换侧栏" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此資料庫尚未有任何資料表。" + "value" : "切換側邊欄" } } } }, - "This DELETE query has no WHERE clause and will delete ALL rows in the table. This action cannot be undone." : { - "extractionState" : "stale", + "Toggle Table Browser" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 DELETE 쿼리에는 WHERE 절이 없으므로 테이블의 모든 행이 삭제됩니다. 이 작업은 실행 취소할 수 없습니다." + "value" : "테이블 브라우저 표시/숨기기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "This DELETE query has no WHERE clause and will delete ALL rows in the table. This action cannot be undone." + "value" : "Tablo Tarayıcısını Aç/Kapat" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Truy vấn DELETE này không có mệnh đề WHERE và sẽ xóa TẤT CẢ dòng trong bảng. Thao tác này không thể hoàn tác." + "value" : "Bật/tắt trình duyệt bảng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此 DELETE 查询没有 WHERE 子句,将删除表中的所有行。此操作无法撤销。" + "value" : "切换表浏览器" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此 DELETE 查詢沒有 WHERE 子句,將刪除資料表中的所有列。此動作無法復原。" + "value" : "切換資料表瀏覽器" } } } }, - "This deletes only the queries listed here, across every connection. Queries the source, date, outcome and search filters are hiding stay. You cannot undo this." : { - "comment" : "Message for the \"Delete this connection's query history\" button.", - "isCommentAutoGenerated" : true, + "Toggle Workspace Rail" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "여기에 나열된 쿼리만 모든 연결에서 삭제합니다. 소스, 날짜, 결과 및 검색 필터로 숨겨진 쿼리는 유지됩니다. 이 작업은 실행 취소할 수 없습니다." + "value" : "작업 공간 레일 표시/숨기기" } }, "tr" : { "stringUnit" : { - "state" : "translated", - "value" : "Bu, yalnızca burada listelenen sorguları tüm bağlantılarda siler. Kaynak, tarih, sonuç ve arama filtrelerinin gizlediği sorgular kalır. Bu işlem geri alınamaz." + "state" : "needs_review", + "value" : "Çalışma Alanı Şeridini Aç/Kapat" } }, "vi" : { "stringUnit" : { - "state" : "translated", - "value" : "Thao tác này chỉ xoá các truy vấn được liệt kê ở đây, trên mọi kết nối. Các truy vấn đang bị bộ lọc nguồn, ngày, kết quả và tìm kiếm ẩn đi sẽ được giữ lại. Bạn không thể hoàn tác." + "state" : "needs_review", + "value" : "Bật/tắt thanh không gian làm việc" } }, "zh-Hans" : { "stringUnit" : { - "state" : "translated", - "value" : "这只会删除此处列出的查询,涵盖所有连接。被来源、日期、结果和搜索筛选隐藏的查询会保留。此操作无法撤销。" + "state" : "needs_review", + "value" : "切换工作区栏" } }, "zh-Hant" : { "stringUnit" : { - "state" : "translated", - "value" : "這只會刪除此處列出的查詢,涵蓋所有連線。被來源、日期、結果和搜尋篩選隱藏的查詢會保留。此動作無法復原。" + "state" : "needs_review", + "value" : "切換工作區列" } } } }, - "This deletes only the queries listed here, from this connection. Queries the source, date, outcome and search filters are hiding stay. You cannot undo this." : { - "comment" : "The second line of the message above.", - "isCommentAutoGenerated" : true, + "Toggle filters" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "여기에 나열된 쿼리만 이 연결에서 삭제합니다. 소스, 날짜, 결과 및 검색 필터로 숨겨진 쿼리는 유지됩니다. 이 작업은 실행 취소할 수 없습니다." + "value" : "필터 표시/숨기기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu, yalnızca burada listelenen sorguları bu bağlantıdan siler. Kaynak, tarih, sonuç ve arama filtrelerinin gizlediği sorgular kalır. Bu işlem geri alınamaz." + "value" : "Toggle filters" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thao tác này chỉ xoá các truy vấn được liệt kê ở đây, từ kết nối này. Các truy vấn đang bị bộ lọc nguồn, ngày, kết quả và tìm kiếm ẩn đi sẽ được giữ lại. Bạn không thể hoàn tác." + "value" : "Bật/tắt bộ lọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "这只会删除此处列出的查询,仅限此连接。被来源、日期、结果和搜索筛选隐藏的查询会保留。此操作无法撤销。" + "value" : "切换筛选" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "這只會刪除此處列出的查詢,僅限此連線。被來源、日期、結果和搜尋篩選隱藏的查詢會保留。此動作無法復原。" + "value" : "切換篩選" } } } }, - "This deletes the query history of every connection. You cannot undo this." : { + "Toggle inspector" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 연결의 쿼리 기록을 삭제합니다. 이 작업은 실행 취소할 수 없습니다." + "value" : "검사기 표시/숨기기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu, her bağlantının sorgu geçmişini siler. Bu işlem geri alınamaz." + "value" : "Toggle inspector" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thao tác này xoá lịch sử truy vấn của mọi kết nối. Bạn không thể hoàn tác." + "value" : "Bật/tắt thanh kiểm tra" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "这会删除所有连接的查询历史。此操作无法撤销。" + "value" : "切换检查器" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "這會刪除所有連線的查詢歷史。此動作無法復原。" + "value" : "切換檢閱器" } } } }, - "This deletes this connection's query history. You cannot undo this." : { + "Toggle query history" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 연결의 쿼리 기록을 삭제합니다. 이 작업은 실행 취소할 수 없습니다." + "value" : "쿼리 기록 표시/숨기기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu, bu bağlantının sorgu geçmişini siler. Bu işlem geri alınamaz." + "value" : "Toggle query history" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thao tác này xoá lịch sử truy vấn của kết nối này. Bạn không thể hoàn tác." + "value" : "Bật/tắt lịch sử truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "这会删除此连接的查询历史。此操作无法撤销。" + "value" : "切换查询历史" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "這會刪除此連線的查詢歷史。此動作無法復原。" + "value" : "切換查詢歷史" } } } }, - "This diagram is not bound to a database" : { + "Token" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 다이어그램은 데이터베이스에 연결되어 있지 않습니다" + "value" : "토큰" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu diyagram bir veritabanına bağlı değil" + "value" : "Token" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sơ đồ này không gắn với cơ sở dữ liệu nào" + "value" : "Token" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此图表未绑定到数据库" + "value" : "令牌" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此圖表未綁定到資料庫" + "value" : "權杖" } } } }, - "This discards your edits to the Chinook sample and restores the original copy." : { + "Token '%@' with permission '%@' cannot access '%@'" : { + "extractionState" : "stale", "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Token '%1$@' with permission '%2$@' cannot access '%3$@'" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Chinook 샘플의 편집 내용을 취소하고 원본을 복원합니다." + "value" : "권한 '%2$@'이(가) 있는 토큰 '%1$@'은(는) '%3$@'에 접근할 수 없습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu, Chinook örneğindeki düzenlemelerinizi atar ve özgün kopyayı geri yükler." + "value" : "'%@' izinli '%@' token'ı '%@' kaynağına erişemiyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thao tác này bỏ các chỉnh sửa của bạn trên mẫu Chinook và khôi phục bản gốc." + "value" : "Token '%@' với quyền '%@' không thể truy cập '%@'" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "这将放弃你对 Chinook 示例的编辑并恢复原始副本。" + "value" : "权限为 '%@' 的令牌 '%@' 无法访问 '%@'" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "這會放棄你對 Chinook 範例的編輯,並還原成原始副本。" + "value" : "權限為 '%1$@' 的權杖 '%2$@' 無法存取 '%3$@'" } } } }, - "This discards your unsaved changes and re-reads the file with the chosen settings." : { + "Token Name" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "저장하지 않은 변경 사항을 취소하고 선택한 설정으로 파일을 다시 읽습니다." + "value" : "토큰 이름" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu, kaydedilmemiş değişikliklerinizi atar ve dosyayı seçilen ayarlarla yeniden okur." + "value" : "Token Adı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thao tác này bỏ các thay đổi chưa lưu và đọc lại tệp với cài đặt đã chọn." + "value" : "Tên token" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此操作会丢弃未保存的更改,并按所选设置重新读取文件。" + "value" : "令牌名称" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此操作會捨棄未儲存的變更,並依所選設定重新讀取檔案。" + "value" : "權杖名稱" } } } }, - "This driver does not expose routine DDL." : { - "extractionState" : "stale", + "Token does not have access to this connection" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 드라이버는 루틴 DDL을 제공하지 않습니다." + "value" : "토큰에 이 연결에 대한 접근 권한이 없습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu sürücü rutinler için DDL sağlamıyor." + "value" : "Token'ın bu bağlantıya erişimi yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Driver này không cung cấp DDL của routine." + "value" : "Token không có quyền truy cập kết nối này" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此驱动不提供例程 DDL。" + "value" : "令牌没有访问此连接的权限" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此驅動程式不提供常式 DDL。" + "value" : "權杖沒有存取此連線的權限" } } } }, - "This driver has no TLS fallback. Preferred forces TLS, same as Required." : { + "Token: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 드라이버에는 TLS 대체 옵션이 없습니다. 선호는 필수와 동일하게 TLS 연결을 강제합니다." + "value" : "토큰: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu sürücünün TLS yedeği yok. Preferred, Required ile aynı şekilde TLS'yi zorunlu kılar." + "value" : "Jeton: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Driver này không có phương án dự phòng TLS. Preferred buộc dùng TLS, giống Required." + "value" : "Token: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此驱动没有 TLS 回退。“首选”会强制使用 TLS,与“必需”相同。" + "value" : "令牌:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此驅動程式沒有 TLS 回退機制。「偏好」會強制使用 TLS,與「必要」相同。" + "value" : "權杖:%@" } } } }, - "This DROP query will permanently remove database objects. This action cannot be undone." : { - "extractionState" : "stale", + "Too many pending pairing codes. Try again later." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 DROP 쿼리는 데이터베이스 객체를 영구적으로 제거합니다. 이 작업은 실행 취소할 수 없습니다." + "value" : "대기 중인 페어링 코드가 너무 많습니다. 나중에 다시 시도하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "This DROP query will permanently remove database objects. This action cannot be undone." + "value" : "Çok fazla bekleyen eşleştirme kodu. Daha sonra tekrar deneyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Truy vấn DROP này sẽ xóa vĩnh viễn các đối tượng cơ sở dữ liệu. Thao tác này không thể hoàn tác." + "value" : "Có quá nhiều mã ghép nối đang chờ. Hãy thử lại sau." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此 DROP 查询将永久删除数据库对象。此操作无法撤销。" + "value" : "待处理的配对代码过多。请稍后重试。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此 DROP 查詢將永久移除資料庫物件。此動作無法復原。" + "value" : "待處理的配對碼過多。請稍後再試。" } } } }, - "This engine cannot count rows for that table." : { - - }, - "This engine cannot stop a session from TablePro." : { - - }, - "This engine does not expose users and roles." : { - - }, - "This engine does not support creating databases." : { + "Tool" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 엔진은 데이터베이스 생성을 지원하지 않습니다." + "value" : "도구" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu motor veritabanı oluşturmayı desteklemiyor." + "value" : "Araç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Engine này không hỗ trợ tạo cơ sở dữ liệu." + "value" : "Công cụ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此引擎不支持创建数据库。" + "value" : "工具" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此引擎不支援建立資料庫。" + "value" : "工具" } } } }, - "This engine does not support transactions." : { - - }, - "This engine has no SQL dialect, so it cannot produce SQL output." : { - - }, - "This engine has no SQL dialect, so tables cannot be selected generically." : { - - }, - "This file is encrypted" : { + "Tool call limit: %d" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 파일은 암호화되어 있습니다" + "value" : "도구 호출 한도: %d" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu dosya şifrelenmiş" + "value" : "Araç çağrısı limiti: %d" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tệp này được mã hóa" + "value" : "Giới hạn gọi công cụ: %d" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此文件已加密" + "value" : "工具调用上限:%d" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此檔案已加密" + "value" : "工具呼叫上限:%d" } } } }, - "This file is encrypted and requires a passphrase" : { - "extractionState" : "stale", + "Toolbar" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 파일은 암호화되어 있어 암호가 필요합니다" + "value" : "도구 막대" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu dosya şifrelenmiş ve bir parola gerektiriyor" + "value" : "Toolbar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tệp này được mã hóa và yêu cầu cụm mật khẩu" + "value" : "Thanh công cụ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此文件已加密,需要密码短语" + "value" : "工具栏" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此檔案已加密,需要通關密語" + "value" : "工具列" } } } }, - "This file is not a valid TablePro export" : { - "extractionState" : "stale", + "Top Level" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 파일은 올바른 TablePro 내보내기 파일이 아닙니다" + "value" : "최상위" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu dosya geçerli bir TablePro dışa aktarma dosyası değil" + "value" : "Üst Düzey" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tệp này không phải là tệp xuất TablePro hợp lệ" + "value" : "Cấp cao nhất" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此文件不是有效的 TablePro 导出文件" + "value" : "顶级" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此檔案不是有效的 TablePro 匯出檔" + "value" : "頂層" } } } }, - "This file requires a newer version of TablePro (format version %d)" : { - "extractionState" : "stale", + "Total Blocks" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 파일을 사용하려면 더 최신 버전의 TablePro가 필요합니다(파일 형식 버전 %d)" + "value" : "총 블록 수" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu dosya daha yeni bir TablePro sürümü gerektiriyor (format sürümü %d)" + "value" : "Toplam Blok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tệp này yêu cầu phiên bản TablePro mới hơn (phiên bản định dạng %d)" + "value" : "Tổng số khối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此文件需要更新版本的TablePro(格式版本%d)" + "value" : "总块数" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此檔案需要較新版本的 TablePro(格式版本 %d)" + "value" : "區塊總數" } } } }, - "This file requires a newer version of TablePro (format version %lld)" : { - "extractionState" : "stale", + "Total Queries" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 파일에는 더 최신 버전의 TablePro가 필요합니다(형식 버전 %lld)" + "value" : "총 쿼리 수" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu dosya daha yeni bir TablePro sürümü gerektiriyor (format sürümü %lld)" + "value" : "Toplam Sorgu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tệp này yêu cầu phiên bản TablePro mới hơn (phiên bản định dạng %lld)" + "value" : "Tổng số truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此文件需要更新版本的 TablePro(格式版本 %lld)" + "value" : "总查询数" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此檔案需要較新版本的 TablePro(格式版本 %lld)" + "value" : "查詢總數" } } } }, - "This folder is already linked" : { - "comment" : "Alert title when trying to add a folder that is already linked.", - "isCommentAutoGenerated" : true, + "Total Size" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 폴더는 이미 연결되어 있습니다" + "value" : "전체 크기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu klasör zaten bağlı" + "value" : "Toplam Boyut" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thư mục này đã được liên kết" + "value" : "Tổng kích thước" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此文件夹已关联" + "value" : "总大小" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此資料夾已連結" + "value" : "總大小" } } } }, - "This Host header is not allowed to reach TablePro's MCP server." : { - - }, - "This HTTP method is not supported." : { - - }, - "This is a built-in theme." : { + "Total Time" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 테마는 기본 제공 테마입니다." + "value" : "총 시간" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu, yerleşik bir temadır." + "value" : "Toplam Süre" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đây là chủ đề mặc định." + "value" : "Tổng thời gian" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "这是内置主题。" + "value" : "总耗时" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "這是內建的佈景主題。" + "value" : "總耗時" } } } }, - "This is a registry theme." : { + "Tradeoffs" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 테마는 레지스트리 테마입니다." + "value" : "장단점" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu, kayıt defterinden gelen bir temadır." + "value" : "Ödünleşimler" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đây là chủ đề từ kho plugin." + "value" : "Đánh đổi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "这是插件仓库主题。" + "value" : "取舍" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "這是外掛註冊的佈景主題。" + "value" : "取捨" } } } }, - "This is not a value the list editor can read back." : { - "comment" : "A warning that the value entered in the array editor is not a valid value for the type.", - "isCommentAutoGenerated" : true, + "Tree" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "목록 편집기에서 다시 읽을 수 있는 값이 아닙니다." + "value" : "트리" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu, liste düzenleyicisinin geri okuyabileceği bir değer değil." + "value" : "Ağaç" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đây không phải giá trị mà trình sửa danh sách đọc lại được." + "value" : "Cây" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "这不是列表编辑器能读回的值。" + "value" : "树形" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "這不是列表編輯器能讀回的值。" + "value" : "樹狀" } } } }, - "This is taking longer than usual." : { + "Trigger" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "트리거", + "state" : "translated" + } + } + } + }, + "Trigger operation failed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "평소보다 오래 걸리고 있습니다." + "value" : "트리거 작업 실패" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu her zamankinden uzun sürüyor." + "value" : "Tetikleyici işlemi başarısız oldu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Việc này lâu hơn bình thường." + "value" : "Thao tác trigger thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "这比平时花的时间更久。" + "value" : "触发器操作失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "這比平時花的時間更久。" + "value" : "觸發器操作失敗" } } } }, - "This JSON document is too large for tree view. Use text mode instead." : { + "Triggers" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 JSON 문서는 트리 보기로 표시하기에 너무 큽니다. 대신 텍스트 모드를 사용하십시오." + "value" : "트리거" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu JSON belgesi ağaç görünümü için çok büyük. Bunun yerine metin modunu kullanın." + "value" : "Tetikleyiciler" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tài liệu JSON này quá lớn cho chế độ cây. Hãy dùng chế độ văn bản." + "value" : "Trigger" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此 JSON 文档对于树形视图过大,请使用文本模式。" + "value" : "触发器" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此 JSON 文件對樹狀檢視而言過大。請改用文字模式。" + "value" : "觸發器" } } } }, - "This keyword is already in use" : { + "Truncate" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 키워드는 이미 사용 중입니다" + "value" : "비우기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu anahtar sözcük zaten kullanımda" + "value" : "Truncate" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Từ khoá này đã được sử dụng" + "value" : "Truncate" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此关键字已被使用" + "value" : "清空" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此關鍵字已被使用" + "value" : "清空" } } } }, - "This library's own project publishes no license file, so TablePro cannot state one for it. It is listed here so the gap stays visible instead of looking settled." : { - - }, - "This license has been suspended. Contact support for help." : { + "Truncate %d tables" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 라이선스는 정지되었습니다. 지원팀에 문의하십시오." + "value" : "%d개 테이블 비우기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu lisans askıya alındı. Yardım için destek ile iletişime geçin." + "value" : "%d tabloyu boşalt" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giấy phép này đã bị đình chỉ. Liên hệ hỗ trợ để được giúp đỡ." + "value" : "Xoá dữ liệu %d bảng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此许可证已被暂停。请联系支持团队获取帮助。" + "value" : "清空%d个表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此授權已遭停用。請聯絡支援團隊尋求協助。" + "value" : "清空 %d 個資料表" } } } }, - "This license has expired. Renew it to continue using Pro features." : { + "Truncate %lld tables" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 라이선스는 만료되었습니다. Pro 기능을 계속 사용하려면 갱신하십시오." + "value" : "%lld개 테이블 비우기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu lisansın süresi doldu. Pro özellikleri kullanmaya devam etmek için yenileyin." + "value" : "Truncate %lld tablo" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giấy phép này đã hết hạn. Gia hạn để tiếp tục sử dụng các tính năng Pro." + "value" : "Làm trống %lld bảng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此许可证已过期。请续期以继续使用 Pro 功能。" + "value" : "清空 %lld 个表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此授權已過期。請續訂以繼續使用 Pro 功能。" + "value" : "清空 %lld 個資料表" } } } }, - "This license has reached its activation limit. Deactivate another Mac first." : { + "Truncate Table" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 라이선스는 활성화 한도에 도달했습니다. 먼저 다른 Mac에서 비활성화하십시오." + "value" : "테이블 비우기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu lisans etkinleştirme sınırına ulaştı. Önce başka bir Mac'i devre dışı bırakın." + "value" : "Tabloyu Boşalt" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giấy phép này đã đạt giới hạn kích hoạt. Hãy huỷ kích hoạt một máy Mac khác trước." + "value" : "Truncate bảng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此许可证已达到激活上限。请先停用另一台 Mac。" + "value" : "清空表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此授權已達啟用上限。請先停用另一台 Mac。" + "value" : "清空資料表" } } } }, - "This license was activated on a different Mac. Activate it here to use Pro features." : { + "Truncate all tables linked by foreign keys" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 라이선스는 다른 Mac에서 활성화되었습니다. 여기에서 활성화하면 Pro 기능을 사용할 수 있습니다." + "value" : "외래 키로 연결된 모든 테이블 비우기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu lisans başka bir Mac'te etkinleştirildi. Pro özelliklerini kullanmak için burada etkinleştirin." + "value" : "Yabancı anahtarlarla bağlı tüm tabloları boşalt" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giấy phép này đã được kích hoạt trên một máy Mac khác. Kích hoạt tại đây để dùng các tính năng Pro." + "value" : "Xóa dữ liệu tất cả bảng liên kết bằng khóa ngoại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此许可证已在另一台 Mac 上激活。在此激活以使用 Pro 功能。" + "value" : "清空所有通过外键关联的表" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此授權已在另一台 Mac 上啟用。在此啟用以使用 Pro 功能。" + "value" : "清空所有透過外鍵關聯的資料表" } } } }, - "This license was issued for a different Mac." : { + "Truncate query results" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 라이선스는 다른 Mac용으로 발급되었습니다." + "value" : "쿼리 결과 자르기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu lisans başka bir Mac için verildi." + "value" : "Sorgu sonuçlarını kırp" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giấy phép này được cấp cho một máy Mac khác." + "value" : "Cắt bớt kết quả truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此许可证是为另一台 Mac 签发的。" + "value" : "截断查询结果" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此授權是為另一台 Mac 簽發的。" + "value" : "截斷查詢結果" } } } }, - "This list is a capped preview. Apply covers every difference, not only the rows listed here." : { - - }, - "This Mac" : { - "extractionState" : "stale", + "Truncate table '%@'" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 Mac" + "value" : "'%@' 테이블 비우기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "This Mac" + "value" : "Truncate tablo '%@'" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Máy Mac này" + "value" : "Làm trống bảng '%@'" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此 Mac" + "value" : "清空表 '%@'" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "這台 Mac" + "value" : "清空資料表 '%@'" } } } }, - "This machine is not activated for this license." : { + "Truncated — read only" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 컴퓨터에서는 이 라이선스가 활성화되어 있지 않습니다." + "value" : "잘림 — 읽기 전용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu makine bu lisans için etkinleştirilmemiş." + "value" : "Kısaltıldı - salt okunur" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Máy này chưa được kích hoạt cho giấy phép này." + "value" : "Đã cắt bớt — chỉ đọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此设备未激活该许可证。" + "value" : "已截断 - 只读" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此機器尚未針對此授權啟用。" + "value" : "已截斷,唯讀" } } } }, - "This machine is not activated." : { + "Truncated, read only" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 컴퓨터는 활성화되어 있지 않습니다." + "value" : "잘림, 읽기 전용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu makine etkinleştirilmemiş." + "value" : "Kısaltıldı, salt okunur" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Máy này chưa được kích hoạt." + "value" : "Đã cắt bớt, chỉ đọc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此设备未激活。" + "value" : "已截断,只读" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此機器尚未啟用。" + "value" : "已截斷,唯讀" } } } }, - "This Month" : { - "extractionState" : "stale", + "Trust" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이번 달" + "value" : "신뢰" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu Ay" + "value" : "Güven" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tháng này" + "value" : "Tin cậy" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "本月" + "value" : "信任" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "本月" + "value" : "信任" } } } }, - "This operation is not supported" : { + "Trust and Install" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 작업은 지원되지 않습니다" + "value" : "신뢰하고 설치" + } + } + } + }, + "Trust plugins from %@?" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "%@의 플러그인을 신뢰하시겠습니까?" + } + } + } + }, + "Trusted Links" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "신뢰할 수 있는 링크" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu işlem desteklenmiyor" + "value" : "Güvenilen Bağlantılar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thao tác này không được hỗ trợ" + "value" : "Liên kết tin cậy" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "不支持此操作" + "value" : "受信任的链接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "不支援此操作" + "value" : "受信任的連結" } } } }, - "This Oracle server is older than release 11.1, which the database driver does not support." : { - "extractionState" : "stale", + "Trusted Plugin Developers" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 Oracle 서버는 릴리스 11.1보다 이전 버전이며 데이터베이스 드라이버에서 지원하지 않습니다." + "value" : "신뢰하는 플러그인 개발자" } } } }, - "This origin is not allowed to reach TablePro's MCP server." : { - - }, - "This permanently deletes the selected rows from the database and can't be undone." : { + "Try Again" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "선택한 행을 데이터베이스에서 영구적으로 삭제하며 실행 취소할 수 없습니다." + "value" : "다시 시도" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu, seçili satırları veritabanından kalıcı olarak siler ve geri alınamaz." + "value" : "Tekrar Dene" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thao tác này xóa vĩnh viễn các dòng đã chọn khỏi cơ sở dữ liệu và không thể hoàn tác." + "value" : "Thử lại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此操作会从数据库中永久删除所选行,且无法撤销。" + "value" : "重试" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此操作會從資料庫中永久刪除所選的列,且無法復原。" + "value" : "重試" } } } }, - "This plan could not be read as a tree. Showing the raw output." : { - "comment" : "A message that appears when the query plan cannot be displayed as a tree.", - "isCommentAutoGenerated" : true, + "Try Sample Database" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 계획을 트리로 읽을 수 없습니다. 원시 출력을 표시합니다." + "value" : "샘플 데이터베이스 사용해 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu plan ağaç olarak okunamadı. Ham çıktı gösteriliyor." + "value" : "Örnek Veritabanını Dene" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không đọc được kế hoạch này dưới dạng cây. Đang hiển thị kết quả thô." + "value" : "Dùng thử cơ sở dữ liệu mẫu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法将此执行计划读取为树形结构。显示原始输出。" + "value" : "试用示例数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法將此執行計畫讀取為樹狀結構。顯示原始輸出。" + "value" : "試用範例資料庫" } } } }, - "This plugin is not in the registry, so it can't be updated automatically." : { + "Try a different search term" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 플러그인은 레지스트리에 없으므로 자동으로 업데이트할 수 없습니다." + "value" : "다른 검색어를 입력해 보십시오" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu eklenti depoda bulunmadığından otomatik olarak güncellenemez." + "value" : "Try a different search term" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Plugin này không có trong registry nên không thể cập nhật tự động." + "value" : "Thử từ khoá tìm kiếm khác" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此插件不在注册表中,无法自动更新。" + "value" : "尝试其他搜索词" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此外掛不在外掛註冊中,因此無法自動更新。" - } - } - } - }, - "This plugin is signed by %@, a developer you have not trusted yet." : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "%@ 개발자가 서명한 플러그인입니다. 이 개발자는 아직 신뢰하지 않았습니다." + "value" : "請嘗試其他搜尋字詞" } } } }, - "This plugin requires TablePro %@ or later" : { + "Try a different search term." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 플러그인에는 TablePro %@ 이상이 필요합니다" + "value" : "다른 검색어를 입력해 보십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu eklenti TablePro %@ veya sonrasını gerektiriyor" + "value" : "Farklı bir arama terimi deneyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Plugin này yêu cầu TablePro %@ trở lên" + "value" : "Thử từ khóa tìm kiếm khác." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此插件需要 TablePro %@ 或更高版本" + "value" : "请尝试其他搜索词。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此外掛需要 TablePro %@ 或更新版本" + "value" : "請嘗試其他搜尋詞。" } } } }, - "This profile will be permanently deleted." : { + "Try adjusting your search terms\nor date filter." : { + "extractionState" : "stale", "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "This profile will be permanently deleted." - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 프로필은 영구적으로 삭제됩니다." + "value" : "검색어 또는 날짜 필터를\n조정해 보십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu profil kalıcı olarak silinecek." + "value" : "Try adjusting your search terms\nor date filter." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hồ sơ này sẽ bị xoá vĩnh viễn." + "value" : "Thử điều chỉnh từ khoá tìm kiếm\nhoặc bộ lọc ngày." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此配置将被永久删除。" + "value" : "尝试调整搜索词\n或日期筛选。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此設定檔將被永久刪除。" + "value" : "請嘗試調整搜尋字詞\n或日期篩選。" } } } }, - "This project has no datasets yet." : { + "Try the sample database, or click + above to add your own." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 프로젝트에는 아직 데이터 세트가 없습니다." + "value" : "샘플 데이터베이스를 사용하거나 위의 +를 클릭하여 데이터베이스를 추가하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu projede henüz veri kümesi yok." + "value" : "Örnek veritabanını deneyin veya kendi bağlantınızı eklemek için yukarıdaki + düğmesine tıklayın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dự án này chưa có dataset nào." + "value" : "Dùng thử cơ sở dữ liệu mẫu, hoặc bấm + ở trên để thêm của riêng bạn." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此项目还没有数据集。" + "value" : "试用示例数据库,或点按上方的 + 添加你自己的数据库。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此專案還沒有資料集。" + "value" : "試用範例資料庫,或點按上方的 + 來新增你自己的資料庫。" } } } }, - "This puts the AI-generated SQL into the query editor, replacing what is there. Nothing runs until you execute it." : { + "Turn loaded query results into native bar, line, area, and scatter charts." : { "localizations" : { "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "AI가 생성한 SQL을 쿼리 편집기에 넣고 기존 내용을 대체합니다. 직접 실행하기 전까지는 아무것도 실행되지 않습니다." + "value" : "불러온 쿼리 결과를 막대, 선, 영역, 분산형 차트로 그립니다.", + "state" : "translated" } }, "tr" : { "stringUnit" : { - "state" : "translated", - "value" : "Bu, yapay zekanın ürettiği SQL'i sorgu düzenleyiciye koyar ve oradakinin yerini alır. Siz çalıştırana kadar hiçbir şey yürütülmez." + "value" : "Yüklenen sorgu sonuçlarını yerel çubuk, çizgi, alan ve dağılım grafiklerine dönüştürün.", + "state" : "translated" } }, "vi" : { "stringUnit" : { - "state" : "translated", - "value" : "Thao tác này đưa SQL do AI tạo vào trình soạn truy vấn, thay cho nội dung hiện có. Không có gì chạy cho đến khi bạn thực thi." + "value" : "Chuyển kết quả truy vấn đã tải thành biểu đồ cột, đường, miền và phân tán theo chuẩn hệ thống.", + "state" : "translated" } }, "zh-Hans" : { "stringUnit" : { - "state" : "translated", - "value" : "此操作会把 AI 生成的 SQL 放入查询编辑器,替换其中的内容。在你执行之前不会运行任何语句。" + "value" : "将已加载的查询结果转换为原生柱状图、折线图、面积图和散点图。", + "state" : "translated" } }, "zh-Hant" : { "stringUnit" : { - "state" : "translated", - "value" : "此操作會把 AI 產生的 SQL 放入查詢編輯器,取代其中的內容。在你執行之前不會執行任何陳述式。" + "value" : "將已載入的查詢結果轉換為原生長條圖、折線圖、面積圖和散佈圖。", + "state" : "translated" } } } }, - "This query belongs to another connection. Load it in the editor to run it there." : { - "comment" : "A description of why the \"Load in Editor\" button is disabled.", - "isCommentAutoGenerated" : true, + "Two-Factor Authentication" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 쿼리는 다른 연결에 속합니다. 해당 연결에서 실행하려면 편집기로 불러오십시오." + "value" : "2단계 인증" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu sorgu başka bir bağlantıya ait. Orada çalıştırmak için düzenleyicide açın." + "value" : "İki Aşamalı Doğrulama" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Truy vấn này thuộc về một kết nối khác. Hãy mở nó trong trình soạn thảo để chạy ở đó." + "value" : "Xác thực hai yếu tố" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此查询属于另一个连接。在编辑器中载入它以在那里运行。" + "value" : "双因素认证" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此查詢屬於另一個連線。在編輯器中載入它以在那裡執行。" + "value" : "雙重驗證" } } } }, - "This query may permanently modify or delete data and cannot be undone.\n\n%@" : { + "Type" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 쿼리는 데이터를 영구적으로 변경하거나 삭제할 수 있으며 실행 취소할 수 없습니다.\n\n%@" + "value" : "유형" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu sorgu verileri kalıcı olarak değiştirebilir veya silebilir ve geri alınamaz.\n\n%@" + "value" : "Tür" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Truy vấn này có thể sửa đổi hoặc xóa dữ liệu vĩnh viễn và không thể hoàn tác.\n\n%@" + "value" : "Kiểu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此查询可能永久修改或删除数据,且无法撤销。\n\n%@" + "value" : "类型" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此查詢可能會永久修改或刪除資料,且無法復原。\n\n%@" + "value" : "類型" } } } }, - "This query may permanently modify or delete data." : { - "extractionState" : "stale", + "Type %@ in the query to set where the cursor lands after keyword expansion." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 쿼리는 데이터를 영구적으로 변경하거나 삭제할 수 있습니다." + "value" : "키워드 확장 후 커서가 놓일 위치를 지정하려면 쿼리에 %@을(를) 입력하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "This query may permanently modify or delete data." + "value" : "İmlecin anahtar kelime genişletmesinden sonra nereye geleceğini belirlemek için sorguya %@ yazın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Truy vấn này có thể sửa đổi hoặc xóa dữ liệu vĩnh viễn." + "value" : "Gõ %@ trong truy vấn để chỉ định vị trí con trỏ sau khi từ khóa được mở rộng." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此查询可能会永久修改或删除数据。" + "value" : "在查询中输入 %@,用于指定关键字展开后光标停留的位置。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此查詢可能會永久修改或刪除資料。" + "value" : "在查詢中輸入 %@,用來指定關鍵字展開後游標停留的位置。" } } } }, - "This server has no databases yet." : { + "Type shortcut…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 서버에는 아직 데이터베이스가 없습니다." + "value" : "단축키 입력…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu sunucuda henüz veritabanı yok." + "value" : "Kısayolu yazın…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Máy chủ này chưa có cơ sở dữ liệu nào." + "value" : "Nhập phím tắt…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此服务器还没有数据库。" + "value" : "输入快捷键…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此伺服器還沒有資料庫。" + "value" : "輸入快速鍵…" } } } }, - "This server has no users or roles you can manage." : { + "Type: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 서버에는 관리할 수 있는 사용자 또는 역할이 없습니다." + "value" : "유형: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu sunucuda yönetebileceğiniz kullanıcı veya rol yok." + "value" : "Tür: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Máy chủ này không có người dùng hoặc vai trò nào bạn quản lý được." + "value" : "Loại: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此服务器没有你可以管理的用户或角色。" + "value" : "类型:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此伺服器沒有你可以管理的使用者或角色。" + "value" : "類型:%@" } } } }, - "This sets %lld loaded rows. Review and Save to apply." : { + "Typography" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "불러온 행을 %lld개로 설정합니다. 적용하려면 검토한 후 저장하십시오." + "value" : "타이포그래피" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu, yüklenmiş %lld satırın değerini ayarlar. Uygulamak için gözden geçirip kaydedin." + "value" : "Typography" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thao tác này đặt giá trị cho %lld hàng đã tải. Xem lại và Lưu để áp dụng." + "value" : "Kiểu chữ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "这将设置 %lld 个已加载的行。请检查后保存以应用。" + "value" : "排版" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "這會設定 %lld 列已載入的資料。請檢查後儲存以套用。" + "value" : "排版" } } } }, - "This sets 1 loaded row. Review and Save to apply." : { + "UNIQUE" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "불러온 행을 1개로 설정합니다. 적용하려면 검토한 후 저장하십시오." + "value" : "UNIQUE" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu, yüklenmiş 1 satırın değerini ayarlar. Uygulamak için gözden geçirip kaydedin." + "value" : "UNIQUE" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thao tác này đặt giá trị cho 1 hàng đã tải. Xem lại và Lưu để áp dụng." + "value" : "UNIQUE" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "这将设置 1 个已加载的行。请检查后保存以应用。" + "value" : "UNIQUE" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "這會設定 1 列已載入的資料。請檢查後儲存以套用。" + "value" : "UNIQUE" } } } }, - "This shortcut is reserved by macOS and cannot be assigned." : { + "UPDATE Statement(s)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 단축키는 macOS에서 예약되어 있어 지정할 수 없습니다." + "value" : "UPDATE 문" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu kısayol macOS tarafından ayrılmıştır ve atanamaz." + "value" : "UPDATE Statement(s)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phím tắt này được macOS dành riêng và không thể gán." + "value" : "Câu lệnh UPDATE" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此快捷键已被 macOS 保留,无法分配。" + "value" : "UPDATE 语句" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此快速鍵已由 macOS 保留,無法指派。" + "value" : "UPDATE 陳述式" } } } }, - "This shortcut is reserved for \"%@\" and cannot be assigned." : { + "US Long (12/31/2024 11:59:59 PM)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 단축키는 \"%@\"에 예약되어 있어 지정할 수 없습니다." + "value" : "미국식 긴 형식(12/31/2024 11:59:59 PM)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu kısayol \"%@\" için ayrılmıştır ve atanamaz." + "value" : "US Long (12/31/2024 11:59:59 PM)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phím tắt này được dành riêng cho \"%@\" và không thể gán." + "value" : "Mỹ dài (12/31/2024 11:59:59 PM)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此快捷键已保留给 \"%@\",无法分配。" + "value" : "美式长格式 (12/31/2024 11:59:59 PM)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此快速鍵已保留給「%@」,無法指派。" + "value" : "美式長格式 (12/31/2024 11:59:59 PM)" } } } }, - "This SQL query failed with an error. Please fix it.\n\nQuery:\n```sql\n%@\n```\n\nError: %@" : { - "extractionState" : "stale", + "US Short (12/31/2024)" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "This SQL query failed with an error. Please fix it.\n\nQuery:\n```sql\n%1$@\n```\n\nError: %2$@" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 SQL 쿼리가 오류로 실패했습니다. 오류를 수정하십시오.\n\n쿼리:\n```sql\n%1$@\n```\n\n오류: %2$@" + "value" : "미국식 짧은 형식(12/31/2024)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "This SQL query failed with an error. Please fix it.\n\nQuery:\n```sql\n%@\n```\n\nError: %@" + "value" : "US Short (12/31/2024)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Câu truy vấn SQL sau đã thất bại với lỗi. Vui lòng sửa lỗi.\n\nTruy vấn:\n```sql\n%1$@\n```\n\nLỗi: %2$@" + "value" : "Mỹ ngắn (12/31/2024)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此 SQL 查询执行失败并报错。请修复。\n\n查询:\n```sql\n%@\n```\n\n错误:%@" + "value" : "美式短格式 (12/31/2024)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此 SQL 查詢執行失敗並出現錯誤。請修正。\n\n查詢:\n```sql\n%1$@\n```\n\n錯誤:%2$@" + "value" : "美式短格式 (12/31/2024)" } } } }, - "This statement drops or truncates data. Use confirm_destructive_operation for it." : { - - }, - "This tab is on %@. Switch the connection to that database to run it." : { + "UTC_TIMESTAMP()" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 탭은 %@에 있습니다. 실행하려면 연결을 해당 데이터베이스로 전환하십시오." + "value" : "UTC_TIMESTAMP()" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu sekme %@ üzerinde. Çalıştırmak için bağlantıyı o veritabanına geçirin." + "value" : "UTC_TIMESTAMP()" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tab này đang ở %@. Chuyển kết nối sang cơ sở dữ liệu đó để chạy." + "value" : "UTC_TIMESTAMP()" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此标签页位于 %@。请将连接切换到该数据库后再运行。" + "value" : "UTC_TIMESTAMP()" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此分頁位於 %@。請將連線切換到該資料庫後再執行。" + "value" : "UTC_TIMESTAMP()" } } } }, - "This table has no triggers. Triggers run automatically when rows are inserted, updated, or deleted." : { + "UUID" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 테이블에는 트리거가 없습니다. 트리거는 행을 삽입, 업데이트 또는 삭제할 때 자동으로 실행됩니다." + "value" : "UUID" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu tablonun tetikleyicisi yok. Tetikleyiciler, satırlar eklendiğinde, güncellendiğinde veya silindiğinde otomatik olarak çalışır." + "value" : "UUID" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bảng này không có trigger. Trigger tự động chạy khi các dòng được chèn, cập nhật hoặc xóa." + "value" : "UUID" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此表没有触发器。当插入、更新或删除行时,触发器会自动运行。" + "value" : "UUID" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此資料表沒有觸發器。當插入、更新或刪除列時,觸發器會自動執行。" + "value" : "UUID" } } } }, - "This token will not be shown again" : { + "UUID of the active connection" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 토큰은 다시 표시되지 않습니다" + "value" : "활성 연결의 UUID" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu token bir daha gösterilmeyecek" + "value" : "Etkin bağlantının UUID'si" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Token này sẽ không hiển thị lại nữa" + "value" : "UUID của kết nối đang hoạt động" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此令牌将不再显示" + "value" : "活动连接的 UUID" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此權杖將不會再次顯示" + "value" : "使用中連線的 UUID" } } } }, - "This tool only runs destructive statements. Use execute_query for everything else." : { - - }, - "This TRUNCATE query will permanently delete all rows in the table. This action cannot be undone." : { - "extractionState" : "stale", + "UUID of the connection" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 TRUNCATE 쿼리는 테이블의 모든 행을 영구적으로 삭제합니다. 이 작업은 실행 취소할 수 없습니다." + "value" : "연결의 UUID" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "This TRUNCATE query will permanently delete all rows in the table. This action cannot be undone." + "value" : "Bağlantının UUID'si" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Truy vấn TRUNCATE này sẽ xóa vĩnh viễn tất cả dòng trong bảng. Thao tác này không thể hoàn tác." + "value" : "UUID của kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此 TRUNCATE 查询将永久删除表中的所有行。此操作无法撤销。" + "value" : "连接的 UUID" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此 TRUNCATE 查詢將永久刪除資料表中的所有列。此動作無法復原。" + "value" : "連線的 UUID" } } } }, - "This user can grant this privilege to others." : { + "UUID of the connection to disconnect" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 사용자는 다른 사용자에게 이 권한을 부여할 수 있습니다." + "value" : "연결을 해제할 연결의 UUID" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu kullanıcı bu yetkiyi başkalarına verebilir." + "value" : "Bağlantısı kesilecek bağlantının UUID'si" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Người dùng này có thể cấp quyền đó cho người khác." + "value" : "UUID của kết nối cần ngắt" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此用户可以将该权限授予他人。" + "value" : "要断开的连接的 UUID" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此使用者可以將該權限授予他人。" + "value" : "要中斷的連線的 UUID" } } } }, - "This value is not one of the type's current labels" : { - "comment" : "A tooltip for a warning icon in the array value editor.", - "isCommentAutoGenerated" : true, + "UUID of the saved connection" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 값은 현재 유형 레이블 중 하나가 아닙니다" + "value" : "저장된 연결의 UUID" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu değer, türün geçerli etiketlerinden biri değil" + "value" : "Kaydedilmiş bağlantının UUID'si" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giá trị này không nằm trong các nhãn hiện có của kiểu" + "value" : "UUID của kết nối đã lưu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此值不在该类型的现有标签中" + "value" : "已保存连接的 UUID" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此值不在該類型的現有標籤中" + "value" : "已儲存連線的 UUID" } } } }, - "This value is too large to parse. Use raw mode to inspect it as text." : { + "Unable to Load Privileges" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 값은 구문 분석하기에 너무 큽니다. 원시 모드에서 텍스트로 확인하십시오." + "value" : "권한을 불러올 수 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu değer ayrıştırılamayacak kadar büyük. Metin olarak incelemek için ham modu kullanın." + "value" : "Yetkiler Yüklenemedi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giá trị này quá lớn để phân tích. Dùng chế độ raw để xem dưới dạng văn bản." + "value" : "Không tải được quyền" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此值太大,无法解析。请使用原始模式以文本形式查看。" + "value" : "无法加载权限" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此值太大,無法解析。請使用原始模式以文字形式檢視。" + "value" : "無法載入權限" } } } }, - "This Week" : { - "extractionState" : "stale", + "Unable to Load Users and Roles" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이번 주" + "value" : "사용자 및 역할을 불러올 수 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu Hafta" + "value" : "Kullanıcılar ve Roller Yüklenemedi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tuần này" + "value" : "Không tải được người dùng và vai trò" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "本周" + "value" : "无法加载用户和角色" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "本週" + "value" : "無法載入使用者與角色" } } } }, - "This will detach partition '%@'. Data will be preserved but inaccessible until re-attached." : { + "Unassigned" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "파티션 '%@'을(를) 분리합니다. 데이터는 보존되지만 다시 연결할 때까지 접근할 수 없습니다." + "value" : "미지정" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "'%@' bölümü ayrılacak. Veriler korunacak ancak yeniden bağlanana kadar erişilemez olacak." + "value" : "Atanmamış" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thao tác này sẽ tách rời phân vùng '%@'. Dữ liệu sẽ được giữ lại nhưng không truy cập được cho đến khi gắn lại." + "value" : "Chưa gán" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此操作将分离分区 '%@'。数据将被保留但在重新挂载前不可访问。" + "value" : "未分配" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此操作將分離分割區「%@」。資料會保留,但在重新附加前無法存取。" + "value" : "未指派" } } } }, - "This will fetch all remaining rows. Large result sets use significant memory. Continue?" : { + "Unchanged" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "남은 행을 모두 가져옵니다. 결과 집합이 크면 상당한 메모리를 사용합니다. 계속하시겠습니까?" + "value" : "변경 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kalan tüm satırlar getirilecek. Büyük sonuç kümeleri önemli bellek kullanır. Devam edilsin mi?" + "value" : "Değişmedi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thao tác này sẽ tải tất cả dòng còn lại. Tập kết quả lớn sử dụng nhiều bộ nhớ. Tiếp tục?" + "value" : "Không đổi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此操作将获取所有剩余行。大量结果会占用较多内存。是否继续?" + "value" : "未更改" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此操作將擷取所有剩餘的列。大量結果集會佔用大量記憶體。是否繼續?" + "value" : "未變更" } } } }, - "This will fetch approximately %@ more rows. Large result sets use significant memory. Continue?" : { + "Under MCP Servers click \"+ Add Custom Server\", select the Local tab, paste the JSON below, then click Add Server" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "약 %@개의 행을 더 가져옵니다. 결과 집합이 크면 상당한 메모리를 사용합니다. 계속하시겠습니까?" + "value" : "MCP 서버에서 \"+ 사용자 지정 서버 추가\"를 클릭하고 로컬 탭을 선택한 다음 아래 JSON을 붙여넣고 서버 추가를 클릭하십시오" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yaklaşık %@ satır daha getirilecek. Büyük sonuç kümeleri önemli bellek kullanır. Devam edilsin mi?" + "value" : "MCP Servers bölümünde \"+ Add Custom Server\" düğmesine tıklayın, Local sekmesini seçin, aşağıdaki JSON'u yapıştırın, sonra Add Server düğmesine tıklayın" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thao tác này sẽ tải thêm khoảng %@ dòng. Tập kết quả lớn sử dụng nhiều bộ nhớ. Tiếp tục?" + "value" : "Trong mục MCP Servers, bấm \"+ Add Custom Server\", chọn tab Local, dán JSON bên dưới rồi bấm Add Server" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此操作将获取约 %@ 行更多数据。大量结果会占用较多内存。是否继续?" + "value" : "在 MCP Servers 下点按 \"+ Add Custom Server\",选择 Local 标签页,粘贴下方的 JSON,然后点按 Add Server" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此操作將額外擷取約 %@ 列。大量結果集會佔用大量記憶體。是否繼續?" + "value" : "在 MCP Servers 下點按「+ Add Custom Server」,選擇 Local 標籤頁,貼上下方的 JSON,然後點按 Add Server" } } } }, - "This will load all %@ rows on a single page. Large result sets use significant memory. Continue?" : { + "Underline" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@개 행을 모두 한 페이지에 불러옵니다. 결과 집합이 크면 상당한 메모리를 사용합니다. 계속하시겠습니까?" + "value" : "밑줄" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu işlem %@ satırın tamamını tek bir sayfada yükler. Büyük sonuç kümeleri önemli ölçüde bellek kullanır. Devam edilsin mi?" + "value" : "Altı Çizili" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thao tác này sẽ tải toàn bộ %@ hàng trên một trang. Tập kết quả lớn dùng nhiều bộ nhớ. Tiếp tục?" + "value" : "Gạch chân" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "这将在单个页面加载全部 %@ 行。大型结果集会占用大量内存。要继续吗?" + "value" : "下划线" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "這會在單一頁面載入全部 %@ 列。大型結果集會佔用大量記憶體。要繼續嗎?" + "value" : "底線" } } } }, - "This will permanently delete %lld %@. This action cannot be undone." : { - "extractionState" : "stale", + "Undo" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "This will permanently delete %1$lld %2$@. This action cannot be undone." - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$lld개의 %2$@을(를) 영구적으로 삭제합니다. 이 작업은 실행 취소할 수 없습니다." + "value" : "실행 취소" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "This will permanently delete %lld %@. This action cannot be undone." + "value" : "Undo" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thao tác này sẽ xóa vĩnh viễn %1$lld %2$@. Không thể hoàn tác." + "value" : "Hoàn tác" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此操作将永久删除 %lld 个%@。无法撤销。" + "value" : "撤销" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此操作將永久刪除 %1$lld 個%2$@。此動作無法復原。" + "value" : "復原" } } } }, - "This will permanently delete all conversation history." : { + "Undo Delete" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 대화 기록을 영구적으로 삭제합니다." + "value" : "삭제 실행 취소" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu işlem tüm konuşma geçmişini kalıcı olarak silecek." + "value" : "Silmeyi Geri Al" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hành động này sẽ xóa vĩnh viễn toàn bộ lịch sử hội thoại." + "value" : "Hoàn tác xóa" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "这将永久删除所有对话历史。" + "value" : "撤销删除" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此操作將永久刪除所有對話記錄。" + "value" : "復原刪除" } } } }, - "This will permanently delete all data in partition '%@'." : { + "Undo Staged Drop" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "파티션 '%@'의 모든 데이터를 영구적으로 삭제합니다." + "value" : "대기 중인 삭제 실행 취소" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "'%@' bölümündeki tüm veriler kalıcı olarak silinecek." + "value" : "Bekleyen Silmeyi Geri Al" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thao tác này sẽ xoá vĩnh viễn tất cả dữ liệu trong phân vùng '%@'." + "value" : "Hoàn tác thao tác xoá đang chờ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此操作将永久删除分区 '%@' 中的所有数据。" + "value" : "撤销待执行的删除" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此操作將永久刪除分割區「%@」中的所有資料。" + "value" : "復原待執行的刪除" } } } }, - "This will permanently delete all query history entries. This action cannot be undone." : { + "Unified" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 쿼리 기록 항목을 영구적으로 삭제합니다. 이 작업은 실행 취소할 수 없습니다." + "value" : "통합" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu işlem tüm sorgu geçmişi kayıtlarını kalıcı olarak siler. Bu işlem geri alınamaz." + "value" : "Tek Sütun" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thao tác này sẽ xóa vĩnh viễn toàn bộ lịch sử truy vấn. Không thể hoàn tác." + "value" : "Gộp chung" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此操作将永久删除所有查询历史记录。无法撤销。" + "value" : "统一视图" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此操作將永久刪除所有查詢歷程記錄項目。此動作無法復原。" + "value" : "統一檢視" } } } }, - "This will remove the license from this machine. You can reactivate later." : { + "Uninstall" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 컴퓨터에서 라이선스를 제거합니다. 나중에 다시 활성화할 수 있습니다." + "value" : "제거" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu işlem lisansı bu makineden kaldırır. Daha sonra yeniden etkinleştirebilirsiniz." + "value" : "Kaldır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thao tác này sẽ gỡ giấy phép khỏi máy này. Bạn có thể kích hoạt lại sau." + "value" : "Gỡ cài đặt" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此操作将从本机移除许可证。您可以稍后重新激活。" + "value" : "卸载" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此操作將從這台機器移除授權。你可以稍後重新啟用。" + "value" : "解除安裝" } } } }, - "This will reset all settings across every section to their default values." : { + "Uninstall %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 섹션의 설정을 기본값으로 재설정합니다." + "value" : "%@ 제거" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu işlem tüm bölümlerdeki ayarları varsayılan değerlerine sıfırlayacaktır." + "value" : "%@ Kaldır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thao tác này sẽ đặt lại tất cả cài đặt ở mọi mục về giá trị mặc định." + "value" : "Gỡ cài đặt %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "这将把所有部分的设置重置为默认值。" + "value" : "卸载 %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此操作會將所有區段的設定重設為預設值。" + "value" : "解除安裝 %@" } } } }, - "Threads" : { + "Uninstall Failed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "스레드" + "value" : "제거 실패" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İş Parçacıkları" + "value" : "Kaldırma Başarısız" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Luồng" + "value" : "Gỡ cài đặt thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "线程" + "value" : "卸载失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "執行緒" + "value" : "解除安裝失敗" } } } }, - "Tier:" : { + "Uninstall Plugin?" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Tier:" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "등급:" + "value" : "플러그인을 제거하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Katman:" + "value" : "Eklenti kaldırılsın mı?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hạng:" + "value" : "Gỡ cài đặt Plugin?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "等级:" + "value" : "卸载插件?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "等級:" + "value" : "解除安裝外掛?" } } } }, - "Time" : { + "Uninstall plugin" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "시간" + "value" : "플러그인 제거" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Zaman" + "value" : "Eklentiyi kaldır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thời gian" + "value" : "Gỡ cài đặt plugin" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "时间" + "value" : "卸载插件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "時間" + "value" : "解除安裝外掛" } } } }, - "Time spent waiting" : { + "Unique" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "대기 시간" + "value" : "고유" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Beklemede geçen süre" + "value" : "Unique" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thời gian chờ" + "value" : "Duy nhất" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "等待耗时" + "value" : "唯一" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "等待耗時" + "value" : "唯一" } } } }, - "Time Zone" : { + "Unix Timestamp (milliseconds)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "시간대" + "value" : "Unix 타임스탬프(밀리초)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Saat Dilimi" + "value" : "Unix Zaman Damgası (milisaniye)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Múi giờ" + "value" : "Unix Timestamp (mili giây)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "时区" + "value" : "Unix时间戳(毫秒)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "時區" + "value" : "Unix 時間戳記(毫秒)" } } } }, - "Time: %@" : { + "Unix Timestamp (seconds)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "시간: %@" + "value" : "Unix 타임스탬프(초)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Zaman: %@" + "value" : "Unix Zaman Damgası (saniye)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thời gian: %@" + "value" : "Unix Timestamp (giây)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "时间:%@" + "value" : "Unix时间戳(秒)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "時間:%@" - } - } - } - }, - "Timed out completing Kerberos authentication. The Kerberos KDC (domain controller) may be unreachable, the server's SPN may be missing, or this device's clock may be off. Check your network to the domain, or use SQL Server Authentication." : { - "extractionState" : "stale", - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "Kerberos 인증을 완료하는 동안 시간이 초과되었습니다. Kerberos KDC(도메인 컨트롤러)에 연결할 수 없거나, 서버의 SPN이 없거나, 이 기기의 시계가 맞지 않을 수 있습니다. 도메인에 대한 네트워크 연결을 확인하거나 SQL Server 인증을 사용하십시오." + "value" : "Unix 時間戳記(秒)" } } } }, - "Timed out connecting through the SOCKS proxy at %@:%@. Check that the proxy is reachable and the credentials are correct." : { + "Unknown" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Timed out connecting through the SOCKS proxy at %1$@:%2$@. Check that the proxy is reachable and the credentials are correct." - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@:%2$@의 SOCKS 프록시를 통해 연결하는 동안 시간이 초과되었습니다. 프록시에 연결할 수 있는지와 자격 증명이 올바른지 확인하십시오." + "value" : "알 수 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%1$@:%2$@ adresindeki SOCKS proxy üzerinden bağlanırken zaman aşımı oluştu. Proxy'ye erişilebildiğini ve kimlik bilgilerinin doğru olduğunu denetleyin." + "value" : "Bilinmiyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hết thời gian chờ khi kết nối qua SOCKS proxy tại %1$@:%2$@. Hãy kiểm tra proxy có truy cập được và thông tin đăng nhập có đúng không." + "value" : "Không xác định" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "通过 %1$@:%2$@ 的 SOCKS 代理连接超时。请检查该代理是否可达、凭据是否正确。" + "value" : "未知" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "透過 %1$@:%2$@ 的 SOCKS 代理連線逾時。請檢查該代理是否可連線、認證資訊是否正確。" - } - } - } - }, - "Timed out connecting to the server. Check the host, port, and that the server is reachable and accepting connections." : { - "extractionState" : "stale", - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "서버에 연결하는 동안 시간이 초과되었습니다. 호스트와 포트가 올바른지, 서버에 연결할 수 있고 서버가 연결을 수락하는지 확인하십시오." - } - } - } - }, - "Timed out during the Oracle login handshake. The server accepted the network connection but did not finish logging in." : { - "extractionState" : "stale", - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "Oracle 로그인 핸드셰이크 중 시간이 초과되었습니다. 서버가 네트워크 연결을 수락했지만 로그인을 완료하지 않았습니다." + "value" : "未知" } } } }, - "Timestamp digits compared" : { - - }, - "Timestamp precision" : { - - }, - "TIMESTAMPS" : { + "Unknown SSH Host" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "TIMESTAMPS" + "value" : "알 수 없는 SSH 호스트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "TIMESTAMPS" + "value" : "Bilinmeyen SSH Sunucusu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "THỜI GIAN" + "value" : "Máy chủ SSH không xác định" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "时间戳" + "value" : "未知 SSH 主机" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "時間戳記" + "value" : "未知的 SSH 主機" } } } }, - "Timing" : { + "Unknown URL scheme: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "타이밍" + "value" : "알 수 없는 URL 스킴: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Zamanlama" + "value" : "Bilinmeyen URL şeması: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thời điểm" + "value" : "URL scheme không xác định: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "时机" + "value" : "未知的 URL scheme:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "時機" + "value" : "未知的 URL scheme:%@" } } } }, - "Tiny" : { - "extractionState" : "stale", + "Unknown deep link host: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "매우 작게" + "value" : "알 수 없는 딥 링크 호스트: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tiny" + "value" : "Bilinmeyen deep link sunucusu: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Rất nhỏ" + "value" : "Host deep link không xác định: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "极小" + "value" : "未知的深层链接主机:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "極小" + "value" : "未知的深層連結主機:%@" } } } }, - "Tiny Dot" : { - "extractionState" : "stale", + "Unknown error" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "작은 점" + "value" : "알 수 없는 오류" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tiny Dot" + "value" : "Bilinmeyen hata" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chấm nhỏ" + "value" : "Lỗi không xác định" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "极小圆点" + "value" : "未知错误" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "極小圓點" + "value" : "未知錯誤" } } } }, - "Title" : { - "extractionState" : "stale", + "Unlicensed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "제목" + "value" : "라이선스 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Başlık" + "value" : "Unlicensed" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tiêu đề" + "value" : "Chưa có giấy phép" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "标题" + "value" : "未授权" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "標題" + "value" : "未授權" } } } }, - "Title 2" : { - "extractionState" : "stale", + "Unlimited" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "제목 2" + "value" : "무제한" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Title 2" + "value" : "Sınırsız" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tiêu đề 2" + "value" : "Không giới hạn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "标题 2" + "value" : "无限制" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "標題 2" + "value" : "無限制" } } } }, - "Title 3" : { + "Unpin" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "제목 3" + "value" : "고정 해제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Title 3" + "value" : "Sabitlemeyi Kaldır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tiêu đề 3" + "value" : "Bỏ ghim" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "标题 3" + "value" : "取消固定" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "標題 3" + "value" : "取消釘選" } } } }, - "TLS certificate expired or near expiry" : { - "extractionState" : "stale", + "Unpin Result" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "TLS 인증서가 만료되었거나 곧 만료됩니다" + "value" : "결과 고정 해제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "TLS sertifikasının süresi dolmuş veya dolmak üzere" + "value" : "Sonucun Sabitlemesini Kaldır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chứng chỉ TLS đã hoặc sắp hết hạn" + "value" : "Bỏ ghim kết quả" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "TLS 证书已过期或即将过期" + "value" : "取消固定结果" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "TLS 憑證已過期或即將過期" - } - } - } - }, - "TLS handshake failed: %@" : { - "extractionState" : "stale", - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "TLS 핸드셰이크 실패: %@" + "value" : "取消釘選結果" } } } }, - "TLS identity not found in Keychain" : { - "extractionState" : "stale", + "Unsaved changes will be lost." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "키체인에서 TLS ID를 찾을 수 없습니다" + "value" : "저장하지 않은 변경 사항이 사라집니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Keychain'de TLS kimliği bulunamadı" + "value" : "Kaydedilmemiş değişiklikler kaybolacak." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tìm thấy TLS identity trong Keychain" + "value" : "Các thay đổi chưa lưu sẽ bị mất." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在钥匙串中未找到 TLS 身份" + "value" : "未保存的更改将会丢失。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在鑰匙圈中找不到 TLS 身分" + "value" : "未儲存的變更將會遺失。" } } } }, - "TLS Mode" : { + "Unset" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "TLS 모드" + "value" : "설정 안 됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "TLS Modu" + "value" : "Unset" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chế độ TLS" + "value" : "Bỏ đặt" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "TLS 模式" + "value" : "取消设置" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "TLS 模式" + "value" : "取消設定" } } } }, - "to view data" : { + "Unsigned" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "데이터 보기" + "value" : "서명되지 않음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "veriyi görüntülemek için" + "value" : "Unsigned" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "để xem dữ liệu" + "value" : "Không dấu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "以查看数据" + "value" : "无符号" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "以檢視資料" + "value" : "無符號" } } } }, - "Today" : { + "Unsupported MongoDB method: %@" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "오늘" + "value" : "지원되지 않는 MongoDB 메서드: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bugün" + "value" : "Unsupported MongoDB method: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hôm nay" + "value" : "Phương thức MongoDB không được hỗ trợ: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "今天" + "value" : "不支持的 MongoDB 方法:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "今天" + "value" : "不支援的 MongoDB 方法:%@" } } } }, - "Toggle AI Chat" : { - "extractionState" : "stale", + "Unsupported connection scheme: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "AI 채팅 표시/숨기기" + "value" : "지원되지 않는 연결 스킴: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Toggle AI Chat" + "value" : "Desteklenmeyen bağlantı şeması: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bật/tắt AI Chat" + "value" : "Scheme kết nối không được hỗ trợ: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "切换 AI 聊天" + "value" : "不支持的连接协议:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "切換 AI 聊天" + "value" : "不支援的連線協定:%@" } } } }, - "Toggle AI Chat (⌘⇧L)" : { - "extractionState" : "stale", + "Unsupported database scheme: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "AI 채팅 표시/숨기기(⌘⇧L)" + "value" : "지원되지 않는 데이터베이스 스킴: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Toggle AI Chat (⌘⇧L)" + "value" : "Desteklenmeyen veritabanı şeması: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bật/tắt AI Chat (⌘⇧L)" + "value" : "Scheme cơ sở dữ liệu không được hỗ trợ: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "切换 AI 聊天 (⌘⇧L)" + "value" : "不支持的数据库方案:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "切換 AI 聊天 (⌘⇧L)" + "value" : "不支援的資料庫 scheme:%@" } } } }, - "Toggle Comment" : { + "Unsupported database type: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "주석 전환" + "value" : "지원되지 않는 데이터베이스 유형: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yorumu Aç/Kapat" + "value" : "Desteklenmeyen veritabanı türü: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bật/tắt comment" + "value" : "Kiểu cơ sở dữ liệu không hỗ trợ: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "切换注释" + "value" : "不支持的数据库类型:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "切換註解" + "value" : "不支援的資料庫類型:%@" } } } }, - "Toggle Connections" : { - "comment" : "Text for the \"Toggle Connections\" shortcut action.", - "isCommentAutoGenerated" : true, + "Unsupported encryption version %d" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 표시/숨기기" + "value" : "지원되지 않는 암호화 버전 %d" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantıları Aç/Kapat" + "value" : "Desteklenmeyen şifreleme sürümü %d" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bật/tắt kết nối" + "value" : "Phiên bản mã hoá %d không được hỗ trợ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "切换连接" + "value" : "不支持的加密版本%d" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "切換連線" + "value" : "不支援的加密版本 %d" } } } }, - "Toggle filters" : { + "Unsupported encryption version %u" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터 표시/숨기기" + "value" : "지원되지 않는 암호화 버전 %u" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Toggle filters" + "value" : "Desteklenmeyen şifreleme sürümü %u" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bật/tắt bộ lọc" + "value" : "Phiên bản mã hóa không được hỗ trợ %u" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "切换筛选" + "value" : "不支持的加密版本 %u" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "切換篩選" + "value" : "不支援的加密版本 %u" } } } }, - "Toggle Filters" : { + "Unsupported file format: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터 표시/숨기기" + "value" : "지원되지 않는 파일 형식: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtreleri Aç/Kapat" + "value" : "Desteklenmeyen dosya biçimi: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bật/tắt bộ lọc" + "value" : "Định dạng tệp không được hỗ trợ: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "切换筛选" + "value" : "不支持的文件格式:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "切換篩選" + "value" : "不支援的檔案格式:%@" } } } }, - "Toggle Filters (⇧⌘F)" : { - "extractionState" : "stale", + "Unsupported image format" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터 표시/숨기기(⇧⌘F)" + "value" : "지원되지 않는 이미지 형식" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Filtreleri Aç/Kapat (⇧⌘F)" + "value" : "Desteklenmeyen görüntü biçimi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bật/tắt bộ lọc (⇧⌘F)" + "value" : "Định dạng ảnh không được hỗ trợ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "切换筛选 (⇧⌘F)" + "value" : "不支持的图像格式" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "切換篩選 (⇧⌘F)" + "value" : "不支援的影像格式" } } } }, - "Toggle Filters (⌘F)" : { - "extractionState" : "stale", + "Unsupported intent: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터 표시/숨기기(⌘F)" + "value" : "지원되지 않는 인텐트: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Toggle Filters (⌘F)" + "value" : "Desteklenmeyen niyet: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bật/tắt bộ lọc (⌘F)" + "value" : "Intent không hỗ trợ: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "切换筛选 (⌘F)" + "value" : "不支持的 intent:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "切換篩選 (⌘F)" + "value" : "不支援的 intent:%@" } } } }, - "Toggle Filters (Cmd+F)" : { - "extractionState" : "stale", + "Unsupported schema operation: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "필터 표시/숨기기(Cmd+F)" + "value" : "지원되지 않는 스키마 작업: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Toggle Filters (Cmd+F)" + "value" : "Desteklenmeyen şema işlemi: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bật/tắt bộ lọc (Cmd+F)" + "value" : "Thao tác schema không được hỗ trợ: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "切换筛选 (Cmd+F)" + "value" : "不支持的 Schema 操作:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "切換篩選 (Cmd+F)" + "value" : "不支援的綱要操作:%@" } } } }, - "Toggle Fold" : { - - }, - "Toggle History" : { + "Unsupported token: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기록 표시/숨기기" + "value" : "지원되지 않는 토큰: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geçmişi Aç/Kapat" + "value" : "Desteklenmeyen belirteç: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bật/tắt lịch sử" + "value" : "Token không được hỗ trợ: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "切换历史记录" + "value" : "不支持的标记:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "切換歷程記錄" + "value" : "不支援的權杖:%@" } } } }, - "Toggle inspector" : { - "extractionState" : "stale", + "Unterminated comment" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "검사기 표시/숨기기" + "value" : "종료되지 않은 주석" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Toggle inspector" + "value" : "Sonlandırılmamış yorum" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bật/tắt thanh kiểm tra" + "value" : "Ghi chú chưa đóng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "切换检查器" + "value" : "注释未闭合" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "切換檢閱器" + "value" : "註解未結束" } } } }, - "Toggle Inspector" : { + "Untitled" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "검사기 표시/숨기기" + "value" : "제목 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Denetçiyi Aç/Kapat" + "value" : "Untitled" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bật/tắt thanh kiểm tra" + "value" : "Không có tiêu đề" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "切换检查器" + "value" : "未命名" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "切換檢閱器" + "value" : "未命名" } } } }, - "Toggle Inspector (⌘⌥I)" : { - "extractionState" : "stale", + "Update" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "검사기 표시/숨기기(⌘⌥I)" + "value" : "업데이트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Toggle Inspector (⌘⌥I)" + "value" : "Güncelle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bật/tắt thanh kiểm tra (⌘⌥I)" + "value" : "Cập nhật" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "切换检查器 (⌘⌥I)" + "value" : "更新" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "切換檢閱器 (⌘⌥I)" + "value" : "更新" } } } }, - "Toggle query history" : { - "extractionState" : "stale", + "Update %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 기록 표시/숨기기" + "value" : "%@ 업데이트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Toggle query history" + "value" : "%@ Güncelle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bật/tắt lịch sử truy vấn" + "value" : "Cập nhật %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "切换查询历史" + "value" : "更新 %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "切換查詢歷史" + "value" : "更新 %@" } } } }, - "Toggle Query History" : { + "Update %@ plugin" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 기록 표시/숨기기" + "value" : "%@ 플러그인 업데이트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgu Geçmişini Aç/Kapat" + "value" : "%@ eklentisini güncelle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bật/tắt lịch sử truy vấn" + "value" : "Cập nhật plugin %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "切换查询历史" + "value" : "更新 %@ 插件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "切換查詢歷史" + "value" : "更新 %@ 外掛" } } } }, - "Toggle Query History (⌘⇧H)" : { - "extractionState" : "stale", + "Update Now" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 기록 표시/숨기기(⌘⇧H)" + "value" : "지금 업데이트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Toggle Query History (⌘⇧H)" + "value" : "Şimdi Güncelle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bật/tắt lịch sử truy vấn (⌘⇧H)" + "value" : "Cập nhật ngay" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "切换查询历史 (⌘⇧H)" + "value" : "立即更新" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "切換查詢歷史 (⌘⇧H)" + "value" : "立即更新" } } } }, - "Toggle Query History (⌘Y)" : { - "extractionState" : "stale", + "Update Plugin" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 기록 표시/숨기기(⌘Y)" + "value" : "플러그인 업데이트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Toggle Query History (⌘Y)" + "value" : "Eklentiyi Güncelle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bật/tắt lịch sử truy vấn (⌘Y)" + "value" : "Cập nhật plugin" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "切换查询历史 (⌘Y)" + "value" : "更新插件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "切換查詢歷史 (⌘Y)" + "value" : "更新外掛" } } } }, - "Toggle Results" : { + "Update TablePro" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "결과 표시/숨기기" + "value" : "TablePro 업데이트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sonuçları Aç/Kapat" + "value" : "TablePro'yu Güncelle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ẩn/hiện kết quả" + "value" : "Cập nhật TablePro" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示/隐藏结果" + "value" : "更新 TablePro" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示/隱藏結果" + "value" : "更新 TablePro" } } } }, - "Toggle Results (⌘⌥R)" : { - "extractionState" : "stale", + "Update row %@ in %@" : { + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Update row %1$@ in %2$@" + } + }, + "ko" : { + "stringUnit" : { + "value" : "%2$@의 행 %1$@ 업데이트", + "state" : "translated" + } + } + } + }, + "Update rows that differ" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "다른 행 업데이트", + "state" : "translated" + } + } + } + }, + "Update to v%@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "결과 표시/숨기기(⌘⌥R)" + "value" : "버전 v%@ 업데이트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sonuçları Aç/Kapat (⌘⌥R)" + "value" : "v%@ sürümüne güncelle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ẩn/hiện kết quả (⌘⌥R)" + "value" : "Cập nhật lên v%@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示/隐藏结果(⌘⌥R)" + "value" : "更新到 v%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示/隱藏結果 (⌘⌥R)" + "value" : "更新至 v%@" } } } }, - "Toggle Sidebar" : { - "extractionState" : "stale", + "Updated" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사이드바 표시/숨기기" + "value" : "업데이트됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kenar Çubuğunu Aç/Kapat" + "value" : "Updated" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bật/tắt thanh bên" + "value" : "Đã cập nhật" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "切换侧栏" + "value" : "已更新" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "切換側邊欄" + "value" : "已更新" } } } }, - "Toggle Table Browser" : { + "Updated to v%@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 브라우저 표시/숨기기" + "value" : "버전 v%@ 업데이트됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tablo Tarayıcısını Aç/Kapat" + "value" : "v%@ sürümüne güncellendi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bật/tắt trình duyệt bảng" + "value" : "Đã cập nhật lên v%@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "切换表浏览器" + "value" : "已更新到 v%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "切換資料表瀏覽器" + "value" : "已更新至 v%@" } } } }, - "Toggle Workspace Rail" : { - "extractionState" : "stale", + "Updating this plugin didn't finish. TablePro will try again the next time it launches." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "작업 공간 레일 표시/숨기기" + "value" : "이 플러그인의 업데이트가 완료되지 않았습니다. 다음에 TablePro를 실행할 때 다시 시도합니다." } }, "tr" : { "stringUnit" : { - "state" : "needs_review", - "value" : "Çalışma Alanı Şeridini Aç/Kapat" + "state" : "translated", + "value" : "Bu eklentinin güncellenmesi tamamlanmadı. TablePro bir sonraki açılışta yeniden deneyecek." } }, "vi" : { "stringUnit" : { - "state" : "needs_review", - "value" : "Bật/tắt thanh không gian làm việc" + "state" : "translated", + "value" : "Cập nhật plugin này chưa hoàn tất. TablePro sẽ thử lại lần khởi động tiếp theo." } }, "zh-Hans" : { "stringUnit" : { - "state" : "needs_review", - "value" : "切换工作区栏" + "state" : "translated", + "value" : "此插件更新未完成。TablePro 将在下次启动时重试。" } }, "zh-Hant" : { "stringUnit" : { - "state" : "needs_review", - "value" : "切換工作區列" + "state" : "translated", + "value" : "此外掛的更新尚未完成。TablePro 會在下次啟動時重試。" } } } }, - "Token" : { + "Updating…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "토큰" + "value" : "업데이트 중…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Token" + "value" : "Güncelleniyor…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Token" + "value" : "Đang cập nhật…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "令牌" + "value" : "正在更新…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "權杖" + "value" : "正在更新…" } } } }, - "Token '%@' with permission '%@' cannot access '%@'" : { - "extractionState" : "stale", + "Upgrade Plan" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Token '%1$@' with permission '%2$@' cannot access '%3$@'" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "권한 '%2$@'이(가) 있는 토큰 '%1$@'은(는) '%3$@'에 접근할 수 없습니다" + "value" : "요금제 업그레이드" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "'%@' izinli '%@' token'ı '%@' kaynağına erişemiyor" + "value" : "Planı Yükselt" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Token '%@' với quyền '%@' không thể truy cập '%@'" + "value" : "Nâng cấp gói" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "权限为 '%@' 的令牌 '%@' 无法访问 '%@'" + "value" : "升级方案" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "權限為 '%1$@' 的權杖 '%2$@' 無法存取 '%3$@'" + "value" : "升級方案" } } } }, - "Token does not have access to this connection" : { + "Uptime" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "토큰에 이 연결에 대한 접근 권한이 없습니다" + "value" : "가동 시간" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Token'ın bu bağlantıya erişimi yok" + "value" : "Çalışma Süresi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Token không có quyền truy cập kết nối này" + "value" : "Thời gian hoạt động" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "令牌没有访问此连接的权限" + "value" : "运行时间" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "權杖沒有存取此連線的權限" + "value" : "運作時間" } } } }, - "Token Name" : { + "Use" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "토큰 이름" + "value" : "사용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Token Adı" + "value" : "Kullan" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên token" + "value" : "Dùng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "令牌名称" + "value" : "使用" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "權杖名稱" + "value" : "使用" } } } }, - "Token: %@" : { + "Use % to allow any host." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "토큰: %@" + "value" : "모든 호스트를 허용하려면 %를 사용하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Jeton: %@" + "value" : "Herhangi bir sunucuya izin vermek için % kullanın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Token: %@" + "value" : "Dùng % để cho phép mọi máy chủ." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "令牌:%@" + "value" : "使用 % 表示允许任意主机。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "權杖:%@" + "value" : "使用 % 表示允許任何主機。" } } } }, - "Too many pending pairing codes. Try again later." : { + "Use Default" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "대기 중인 페어링 코드가 너무 많습니다. 나중에 다시 시도하십시오." + "value" : "기본값 사용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Çok fazla bekleyen eşleştirme kodu. Daha sonra tekrar deneyin." + "value" : "Varsayılanı Kullan" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Có quá nhiều mã ghép nối đang chờ. Hãy thử lại sau." + "value" : "Mặc định" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "待处理的配对代码过多。请稍后重试。" + "value" : "使用默认" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "待處理的配對碼過多。請稍後再試。" + "value" : "使用預設" } } } }, - "Tool" : { + "Use DuckLake" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "도구" + "value" : "DuckLake 사용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Araç" + "value" : "DuckLake Kullan" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Công cụ" + "value" : "Dùng DuckLake" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "工具" + "value" : "使用 DuckLake" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "工具" + "value" : "使用 DuckLake" } } } }, - "Tool call limit: %d" : { + "Use IAM database authentication" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "도구 호출 한도: %d" + "value" : "IAM 데이터베이스 인증 사용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Araç çağrısı limiti: %d" + "value" : "IAM veritabanı kimlik doğrulamasını kullan" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giới hạn gọi công cụ: %d" + "value" : "Dùng xác thực cơ sở dữ liệu IAM" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "工具调用上限:%d" + "value" : "使用 IAM 数据库认证" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "工具呼叫上限:%d" + "value" : "使用 IAM 資料庫驗證" } } } }, - "Toolbar" : { + "Use Password File" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "도구 막대" + "value" : "암호 파일 사용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Toolbar" + "value" : "Parola Dosyası Kullan" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thanh công cụ" + "value" : "Dùng file mật khẩu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "工具栏" + "value" : "使用密码文件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "工具列" + "value" : "使用密碼檔案" } } } }, - "Top Level" : { + "Use Required for AstraDB, DataStax Astra, and other hosted Cassandra deployments." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "최상위" + "value" : "AstraDB, DataStax Astra 및 기타 호스팅된 Cassandra 배포에서는 Required를 사용하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Üst Düzey" + "value" : "AstraDB, DataStax Astra ve diğer barındırılan Cassandra dağıtımları için Required kullanın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cấp cao nhất" + "value" : "Dùng Required cho AstraDB, DataStax Astra và các triển khai Cassandra được lưu trữ khác." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "顶级" + "value" : "对于 AstraDB、DataStax Astra 和其他托管 Cassandra 部署,请使用“必需”。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "頂層" + "value" : "對於 AstraDB、DataStax Astra 和其他託管的 Cassandra 部署,請使用「必要」。" } } } }, - "total %@" : { - "comment" : "Total duration, %@ is a duration", + "Use Required for ClickHouse Cloud and other managed instances." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "합계 %@" + "value" : "ClickHouse Cloud 및 기타 관리형 인스턴스에서는 Required를 사용하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "toplam %@" + "value" : "ClickHouse Cloud ve diğer yönetilen örnekler için Required kullanın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "tổng %@" + "value" : "Dùng Required cho ClickHouse Cloud và các phiên bản được quản lý khác." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "总计 %@" + "value" : "对于 ClickHouse Cloud 和其他托管实例,请使用“必需”。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "總計 %@" + "value" : "對於 ClickHouse Cloud 和其他託管執行個體,請使用「必要」。" } } } }, - "Total Blocks" : { + "Use SSL if available" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "총 블록 수" + "value" : "사용 가능한 경우 SSL 사용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Toplam Blok" + "value" : "Varsa SSL kullan" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tổng số khối" + "value" : "Sử dụng SSL nếu có" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "总块数" + "value" : "可用时使用 SSL" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "區塊總數" + "value" : "可用時使用 SSL" } } } }, - "Total Queries" : { + "Use as Active %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "총 쿼리 수" + "value" : "활성 %@(으)로 사용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Toplam Sorgu" + "value" : "Etkin %@ Olarak Kullan" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tổng số truy vấn" + "value" : "Dùng làm %@ hiện hành" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "总查询数" + "value" : "设为当前%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "查詢總數" + "value" : "設為使用中的%@" } } } }, - "Total rows written" : { - - }, - "Total size" : { - - }, - "Total Size" : { + "Use as Active Database" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "전체 크기" + "value" : "활성 데이터베이스로 사용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Toplam Boyut" + "value" : "Etkin Veritabanı Olarak Kullan" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tổng kích thước" + "value" : "Dùng làm cơ sở dữ liệu hoạt động" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "总大小" + "value" : "用作活动数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "總大小" + "value" : "用作使用中的資料庫" } } } }, - "Total size in bytes" : { - - }, - "Total Time" : { + "Use as Active Schema" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "총 시간" + "value" : "활성 스키마로 사용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Toplam Süre" + "value" : "Etkin Şema Olarak Kullan" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tổng thời gian" + "value" : "Dùng làm schema hoạt động" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "总耗时" + "value" : "用作活动 Schema" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "總耗時" + "value" : "用作使用中的綱要" } } } }, - "TOTP" : { + "Use at least 8 characters" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "TOTP" + "value" : "8자 이상 사용하십시오" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "TOTP" + "value" : "En az 8 karakter kullanın" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "TOTP" + "value" : "Dùng ít nhất 8 ký tự" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "TOTP" + "value" : "请至少使用 8 个字符" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "TOTP" + "value" : "請至少使用 8 個字元" } } } }, - "TOTP Secret" : { + "Use clipboard URL" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "TOTP 비밀 키" + "value" : "클립보드 URL 사용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "TOTP Secret" + "value" : "Panodaki URL'yi kullan" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mã bí mật TOTP" + "value" : "Dùng URL trong clipboard" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "TOTP 密钥" + "value" : "使用剪贴板中的 URL" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "TOTP 金鑰" + "value" : "使用剪貼簿中的 URL" } } } }, - "Tour the tables of a live database and how they relate, built from the current schema" : { - - }, - "Tradeoffs" : { + "Use environment variables in connection fields." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "장단점" + "value" : "연결 필드에서 환경 변수를 사용합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ödünleşimler" + "value" : "Bağlantı alanlarında ortam değişkenlerini kullanın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đánh đổi" + "value" : "Sử dụng biến môi trường trong trường kết nối." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "取舍" + "value" : "在连接字段中使用环境变量。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "取捨" + "value" : "在連線欄位中使用環境變數。" } } } }, - "transaction %@" : { - - }, - "Transaction action must be begin, commit, or rollback." : { - - }, - "Transaction Control" : { - - }, - "Tree" : { + "Use the instance's private IP address instead of its public IP." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "트리" + "value" : "인스턴스의 공용 IP 대신 비공개 IP 주소를 사용합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Ağaç" + "value" : "Örneğin genel IP'si yerine özel IP adresini kullanır." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cây" + "value" : "Dùng địa chỉ IP riêng của instance thay cho IP công khai." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "树形" + "value" : "使用该实例的专用 IP 地址,而不是公共 IP。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "樹狀" + "value" : "使用該執行個體的專用 IP 位址,而不是公用 IP。" } } } }, - "Trigger" : { - - }, - "Trigger body" : { - - }, - "Trigger name" : { - - }, - "Trigger operation failed" : { + "Use your Cursor subscription with no API key. Requires the Cursor CLI." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "트리거 작업 실패" + "value" : "API 키 없이 Cursor 구독을 사용합니다. Cursor CLI가 필요합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tetikleyici işlemi başarısız oldu" + "value" : "API anahtarı olmadan Cursor aboneliğinizi kullanın. Cursor CLI gerektirir." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thao tác trigger thất bại" + "value" : "Dùng gói đăng ký Cursor của bạn mà không cần khóa API. Yêu cầu Cursor CLI." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "触发器操作失败" + "value" : "无需 API 密钥即可使用你的 Cursor 订阅。需要 Cursor CLI。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "觸發器操作失敗" + "value" : "無需 API 金鑰即可使用你的 Cursor 訂閱。需要 Cursor CLI。" } } } }, - "Trigger: %@" : { - - }, - "Triggers" : { + "Use your SuperGrok or X Premium+ subscription with no API key. Sign-in opens the Grok Build consent screen. This is an unofficial interface that may change." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "트리거" + "value" : "API 키 없이 SuperGrok 또는 X Premium+ 구독을 사용합니다. 로그인하면 Grok Build 동의 화면이 열립니다. 이는 변경될 수 있는 비공식 인터페이스입니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tetikleyiciler" + "value" : "API anahtarı olmadan SuperGrok veya X Premium+ aboneliğinizi kullanın. Oturum açma, Grok Build onay ekranını açar. Bu, değişebilecek resmi olmayan bir arayüzdür." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trigger" + "value" : "Dùng gói SuperGrok hoặc X Premium+ của bạn mà không cần khóa API. Khi đăng nhập sẽ mở màn hình đồng ý của Grok Build. Đây là giao diện không chính thức và có thể thay đổi." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "触发器" + "value" : "无需 API 密钥即可使用你的 SuperGrok 或 X Premium+ 订阅。登录时会打开 Grok Build 的授权页面。这是非官方接口,可能会变动。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "觸發器" + "value" : "無需 API 金鑰即可使用你的 SuperGrok 或 X Premium+ 訂閱。登入時會開啟 Grok Build 的授權畫面。這是非官方介面,可能會變動。" } } } }, - "Triggers, sorted by table then name" : { - - }, - "true" : { + "Use {{query}} for the current editor query, {{schema}} for the active schema, {{database}} for the active database name, and {{body}} for any text typed after the command." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "true" + "value" : "현재 편집기 쿼리에는 {{query}}, 활성 스키마에는 {{schema}}, 활성 데이터베이스 이름에는 {{database}}, 명령 뒤에 입력한 텍스트에는 {{body}}를 사용하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "true" + "value" : "Geçerli düzenleyici sorgusu için {{query}}, etkin şema için {{schema}}, etkin veritabanı adı için {{database}} ve komuttan sonra yazılan metin için {{body}} kullanın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "true" + "value" : "Dùng {{query}} cho truy vấn hiện tại trong trình soạn, {{schema}} cho schema đang hoạt động, {{database}} cho tên cơ sở dữ liệu đang hoạt động, và {{body}} cho văn bản gõ sau lệnh." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "true" + "value" : "使用 {{query}} 表示当前编辑器查询,{{schema}} 表示活动 Schema,{{database}} 表示活动数据库名称,{{body}} 表示命令后输入的任意文本。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "true" + "value" : "使用 {{query}} 代表目前編輯器的查詢,{{schema}} 代表使用中的綱要,{{database}} 代表使用中的資料庫名稱,{{body}} 代表指令後輸入的任何文字。" } } } }, - "TRUE" : { + "Use ~/.pgpass" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "TRUE" + "value" : "~/.pgpass 사용" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "TRUE" + "value" : "~/.pgpass kullan" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "TRUE" + "value" : "Sử dụng ~/.pgpass" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "TRUE" + "value" : "使用 ~/.pgpass" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "TRUE" + "value" : "使用 ~/.pgpass" } } } }, - "Truncate" : { + "User" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "비우기" + "value" : "사용자" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Truncate" + "value" : "Kullanıcı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Truncate" + "value" : "Người dùng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "清空" + "value" : "用户" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "清空" + "value" : "使用者" } } } }, - "Truncate %d tables" : { + "User Sessions" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%d개 테이블 비우기" + "value" : "사용자 세션" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%d tabloyu boşalt" + "value" : "Kullanıcı Oturumları" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xoá dữ liệu %d bảng" + "value" : "Phiên người dùng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "清空%d个表" + "value" : "用户会话" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "清空 %d 個資料表" + "value" : "使用者工作階段" } } } }, - "Truncate %lld tables" : { - "extractionState" : "stale", + "User and role changes were not authorized" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%lld개 테이블 비우기" + "value" : "사용자 및 역할 변경이 승인되지 않았습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Truncate %lld tablo" + "value" : "Kullanıcı ve rol değişikliklerine izin verilmedi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Làm trống %lld bảng" + "value" : "Các thay đổi người dùng và vai trò không được cho phép" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "清空 %lld 个表" + "value" : "用户和角色更改未获授权" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "清空 %lld 個資料表" + "value" : "使用者與角色變更未獲授權" } } } }, - "Truncate all tables linked by foreign keys" : { + "User approval timed out after 30 seconds" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "외래 키로 연결된 모든 테이블 비우기" + "value" : "사용자 승인이 30초 후 시간 초과되었습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yabancı anahtarlarla bağlı tüm tabloları boşalt" + "value" : "Kullanıcı onayı 30 saniye sonra zaman aşımına uğradı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xóa dữ liệu tất cả bảng liên kết bằng khóa ngoại" + "value" : "Yêu cầu phê duyệt hết hạn sau 30 giây" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "清空所有通过外键关联的表" + "value" : "用户审批在 30 秒后超时" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "清空所有透過外鍵關聯的資料表" + "value" : "使用者核准在 30 秒後逾時" } } } }, - "Truncate query results" : { + "User denied MCP access to this connection" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리 결과 자르기" + "value" : "사용자가 이 연결에 대한 MCP 접근을 거부했습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgu sonuçlarını kırp" + "value" : "Kullanıcı bu bağlantıya MCP erişimini reddetti" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cắt bớt kết quả truy vấn" + "value" : "Người dùng đã từ chối quyền truy cập MCP cho kết nối này" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "截断查询结果" + "value" : "用户拒绝了此连接的 MCP 访问" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "截斷查詢結果" + "value" : "使用者拒絕了此連線的 MCP 存取" } } } }, - "Truncate Table" : { + "User-installed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 비우기" + "value" : "사용자 설치" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tabloyu Boşalt" + "value" : "User-installed" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Truncate bảng" + "value" : "Người dùng cài đặt" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "清空表" + "value" : "用户安装" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "清空資料表" + "value" : "使用者安裝" } } } }, - "Truncate table '%@'" : { + "User: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "'%@' 테이블 비우기" + "value" : "사용자: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Truncate tablo '%@'" + "value" : "Kullanıcı: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Làm trống bảng '%@'" + "value" : "Người dùng: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "清空表 '%@'" + "value" : "用户:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "清空資料表 '%@'" + "value" : "使用者:%@" } } } }, - "truncated" : { - "extractionState" : "stale", + "Username" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "잘림" + "value" : "사용자 이름" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "kısaltıldı" + "value" : "Kullanıcı adı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "đã cắt ngắn" + "value" : "Tên người dùng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已截断" + "value" : "用户名" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已截斷" + "value" : "使用者名稱" } } } }, - "Truncated — read only" : { - "extractionState" : "stale", + "Users & Roles" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "잘림 — 읽기 전용" + "value" : "사용자 및 역할" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kısaltıldı - salt okunur" + "value" : "Kullanıcılar ve Roller" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã cắt bớt — chỉ đọc" + "value" : "Người dùng và vai trò" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已截断 - 只读" + "value" : "用户与角色" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已截斷,唯讀" + "value" : "使用者與角色" } } } }, - "Truncated, read only" : { + "Uses this Mac's Application Default Credentials. Run `gcloud auth application-default login` first, or set GOOGLE_APPLICATION_CREDENTIALS." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "잘림, 읽기 전용" + "value" : "이 Mac의 Application Default Credentials를 사용합니다. 먼저 `gcloud auth application-default login`을 실행하거나 GOOGLE_APPLICATION_CREDENTIALS를 설정하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kısaltıldı, salt okunur" + "value" : "Bu Mac'teki Application Default Credentials'ı kullanır. Önce `gcloud auth application-default login` çalıştırın veya GOOGLE_APPLICATION_CREDENTIALS ayarlayın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã cắt bớt, chỉ đọc" + "value" : "Dùng Application Default Credentials của máy Mac này. Hãy chạy `gcloud auth application-default login` trước, hoặc đặt GOOGLE_APPLICATION_CREDENTIALS." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已截断,只读" + "value" : "使用这台 Mac 的 Application Default Credentials。请先运行 `gcloud auth application-default login`,或设置 GOOGLE_APPLICATION_CREDENTIALS。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已截斷,唯讀" + "value" : "使用這台 Mac 的 Application Default Credentials。請先執行 `gcloud auth application-default login`,或設定 GOOGLE_APPLICATION_CREDENTIALS。" } } } }, - "Trust" : { + "VERBOSE (print progress)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "신뢰" + "value" : "VERBOSE (진행 상황 출력)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Güven" + "value" : "VERBOSE (ilerlemeyi yazdır)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tin cậy" + "value" : "VERBOSE (in tiến trình)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "信任" + "value" : "VERBOSE(打印进度)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "信任" - } - } - } - }, - "Trust and Install" : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "신뢰하고 설치" - } - } - } - }, - "Trust plugins from %@?" : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "%@의 플러그인을 신뢰하시겠습니까?" + "value" : "VERBOSE(輸出進度)" } } } }, - "Trusted Links" : { + "Validation Failed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "신뢰할 수 있는 링크" + "value" : "유효성 검사 실패" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Güvenilen Bağlantılar" + "value" : "Doğrulama Başarısız" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Liên kết tin cậy" + "value" : "Xác thực thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "受信任的链接" + "value" : "验证失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "受信任的連結" - } - } - } - }, - "Trusted Plugin Developers" : { - "localizations" : { - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "신뢰하는 플러그인 개발자" + "value" : "驗證失敗" } } } }, - "Try a different search term" : { - "extractionState" : "stale", + "Value" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다른 검색어를 입력해 보십시오" + "value" : "값" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Try a different search term" + "value" : "Değer" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thử từ khoá tìm kiếm khác" + "value" : "Giá trị" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "尝试其他搜索词" + "value" : "值" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "請嘗試其他搜尋字詞" + "value" : "值" } } } }, - "Try a different search term." : { + "Value Too Large" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다른 검색어를 입력해 보십시오." + "value" : "값이 너무 큼" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Farklı bir arama terimi deneyin." + "value" : "Değer Çok Büyük" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thử từ khóa tìm kiếm khác." + "value" : "Giá trị quá lớn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "请尝试其他搜索词。" + "value" : "值太大" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "請嘗試其他搜尋詞。" + "value" : "值太大" } } } }, - "Try adjusting your search terms\nor date filter." : { + "Value excluded from query" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "검색어 또는 날짜 필터를\n조정해 보십시오." + "value" : "쿼리에서 제외된 값" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Try adjusting your search terms\nor date filter." + "value" : "Sorgudan hariç tutulan değer" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thử điều chỉnh từ khoá tìm kiếm\nhoặc bộ lọc ngày." + "value" : "Giá trị bị loại khỏi truy vấn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "尝试调整搜索词\n或日期筛选。" + "value" : "从查询中排除的值" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "請嘗試調整搜尋字詞\n或日期篩選。" + "value" : "已從查詢中排除的值" } } } }, - "Try Again" : { + "Value is not in the declared enum." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "다시 시도" + "value" : "선언된 enum에 포함되지 않은 값입니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tekrar Dene" + "value" : "Değer, bildirilen enum değerleri arasında değil." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thử lại" + "value" : "Giá trị không nằm trong enum đã khai báo." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "重试" + "value" : "该值不在声明的枚举中。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "重試" + "value" : "該值不在宣告的列舉中。" } } } }, - "Try Sample Database" : { + "Value is not in the declared set." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "샘플 데이터베이스 사용해 보기" + "value" : "선언된 집합에 포함되지 않은 값입니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Örnek Veritabanını Dene" + "value" : "Değer, bildirilen küme içinde değil." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dùng thử cơ sở dữ liệu mẫu" + "value" : "Giá trị không nằm trong tập đã khai báo." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "试用示例数据库" + "value" : "该值不在声明的集合中。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "試用範例資料庫" + "value" : "該值不在宣告的集合中。" } } } }, - "Try the sample database, or click + above to add your own." : { + "Value is required" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "샘플 데이터베이스를 사용하거나 위의 +를 클릭하여 데이터베이스를 추가하십시오." + "value" : "값이 필요합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Örnek veritabanını deneyin veya kendi bağlantınızı eklemek için yukarıdaki + düğmesine tıklayın." + "value" : "Değer gereklidir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dùng thử cơ sở dữ liệu mẫu, hoặc bấm + ở trên để thêm của riêng bạn." + "value" : "Giá trị là bắt buộc" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "试用示例数据库,或点按上方的 + 添加你自己的数据库。" + "value" : "值为必填项" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "試用範例資料庫,或點按上方的 + 來新增你自己的資料庫。" + "value" : "值為必填" } } } }, - "Turn a described schema change into migration statements plus the rollback, for this engine" : { - - }, - "Turn a question into SQL" : { - + "Value kind differs" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "값 종류가 다름", + "state" : "translated" + } + } + } }, - "Turn loaded query results into native bar, line, area, and scatter charts." : { + "Value too large to parse" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "불러온 쿼리 결과를 막대, 선, 영역, 분산형 차트로 그립니다." + "value" : "구문 분석하기에 값이 너무 큽니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yüklenen sorgu sonuçlarını yerel çubuk, çizgi, alan ve dağılım grafiklerine dönüştürün." + "value" : "Değer ayrıştırılamayacak kadar büyük" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chuyển kết quả truy vấn đã tải thành biểu đồ cột, đường, miền và phân tán theo chuẩn hệ thống." + "value" : "Giá trị quá lớn để phân tích" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "将已加载的查询结果转换为原生柱状图、折线图、面积图和散点图。" + "value" : "值太大,无法解析" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "將已載入的查詢結果轉換為原生長條圖、折線圖、面積圖和散佈圖。" + "value" : "值太大,無法解析" } } } }, - "Turn one table's structure into a runnable checklist of data quality queries" : { - - }, - "Two-Factor Authentication" : { + "Values from %d loaded rows" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "2단계 인증" + "value" : "불러온 행 %d개의 값" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İki Aşamalı Doğrulama" + "value" : "Yüklenen %d satırdan gelen değerler" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xác thực hai yếu tố" + "value" : "Giá trị từ %d dòng đã tải" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "双因素认证" + "value" : "来自已加载的 %d 行的值" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "雙重驗證" + "value" : "來自已載入的 %d 列的值" } } } }, - "Type" : { + "Verification Code Rejected" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "유형" + "value" : "인증 코드 거부됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tür" + "value" : "Doğrulama Kodu Reddedildi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kiểu" + "value" : "Mã xác minh bị từ chối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "类型" + "value" : "验证码被拒绝" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "類型" + "value" : "驗證碼被拒絕" } } } }, - "Type %@ in the query to set where the cursor lands after keyword expansion." : { + "Verification Code Required" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "키워드 확장 후 커서가 놓일 위치를 지정하려면 쿼리에 %@을(를) 입력하십시오." + "value" : "인증 코드 필요" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İmlecin anahtar kelime genişletmesinden sonra nereye geleceğini belirlemek için sorguya %@ yazın." + "value" : "Doğrulama Kodu Gerekli" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gõ %@ trong truy vấn để chỉ định vị trí con trỏ sau khi từ khóa được mở rộng." + "value" : "Cần mã xác minh" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在查询中输入 %@,用于指定关键字展开后光标停留的位置。" + "value" : "需要验证码" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在查詢中輸入 %@,用來指定關鍵字展開後游標停留的位置。" + "value" : "需要驗證碼" } } } }, - "Type shortcut…" : { + "Verification code rejected. Get a new code from your authenticator app and try again." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "단축키 입력…" + "value" : "인증 코드가 거부되었습니다. 인증 앱에서 새 코드를 받아 다시 시도하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kısayolu yazın…" + "value" : "Doğrulama kodu reddedildi. Kimlik doğrulayıcı uygulamanızdan yeni bir kod alın ve yeniden deneyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhập phím tắt…" + "value" : "Mã xác minh bị từ chối. Lấy mã mới từ ứng dụng xác thực và thử lại." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "输入快捷键…" + "value" : "验证码被拒绝。请从验证器应用获取新验证码后重试。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "輸入快速鍵…" + "value" : "驗證碼被拒絕。請從你的驗證器應用程式取得新的驗證碼後再試一次。" } } } }, - "Type: %@" : { + "Verified" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "유형: %@" + "value" : "확인됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tür: %@" + "value" : "Verified" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Loại: %@" + "value" : "Đã xác minh" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "类型:%@" + "value" : "已验证" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "類型:%@" + "value" : "已驗證" } } } }, - "Typography" : { + "Verified by TablePro" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "타이포그래피" + "value" : "TablePro에서 확인됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Typography" + "value" : "Verified by TablePro" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kiểu chữ" + "value" : "Đã xác minh bởi TablePro" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "排版" + "value" : "已通过 TablePro 验证" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "排版" + "value" : "已通過 TablePro 驗證" } } } }, - "Unable to Load Privileges" : { + "Verify CA" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "권한을 불러올 수 없음" + "value" : "CA 확인" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yetkiler Yüklenemedi" + "value" : "CA Doğrula" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tải được quyền" + "value" : "Xác minh CA" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法加载权限" + "value" : "验证 CA" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法載入權限" + "value" : "驗證 CA" } } } }, - "Unable to Load Users and Roles" : { + "Verify Identity" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사용자 및 역할을 불러올 수 없음" + "value" : "신원 확인" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kullanıcılar ve Roller Yüklenemedi" + "value" : "Kimliği Doğrula" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không tải được người dùng và vai trò" + "value" : "Xác minh danh tính" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无法加载用户和角色" + "value" : "验证身份" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無法載入使用者與角色" + "value" : "驗證身分" } } } }, - "Unassigned" : { + "Verify certificate and hostname" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "미지정" + "value" : "인증서 및 호스트 이름 확인" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Atanmamış" + "value" : "Sertifikayı ve sunucu adını doğrula" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa gán" + "value" : "Xác minh chứng chỉ và tên máy chủ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未分配" + "value" : "验证证书和主机名" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "未指派" + "value" : "驗證憑證與主機名稱" } } } }, - "Unchanged" : { + "Verify server certificate" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "변경 없음" + "value" : "서버 인증서 확인" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Değişmedi" + "value" : "Sunucu sertifikasını doğrula" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không đổi" + "value" : "Xác minh chứng chỉ máy chủ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未更改" + "value" : "验证服务器证书" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "未變更" + "value" : "驗證伺服器憑證" } } } }, - "Under MCP Servers click \"+ Add Custom Server\", select the Local tab, paste the JSON below, then click Add Server" : { + "Verify:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "MCP 서버에서 \"+ 사용자 지정 서버 추가\"를 클릭하고 로컬 탭을 선택한 다음 아래 JSON을 붙여넣고 서버 추가를 클릭하십시오" + "value" : "확인:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "MCP Servers bölümünde \"+ Add Custom Server\" düğmesine tıklayın, Local sekmesini seçin, aşağıdaki JSON'u yapıştırın, sonra Add Server düğmesine tıklayın" + "value" : "Doğrula:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trong mục MCP Servers, bấm \"+ Add Custom Server\", chọn tab Local, dán JSON bên dưới rồi bấm Add Server" + "value" : "Xác nhận:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在 MCP Servers 下点按 \"+ Add Custom Server\",选择 Local 标签页,粘贴下方的 JSON,然后点按 Add Server" + "value" : "确认:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在 MCP Servers 下點按「+ Add Custom Server」,選擇 Local 標籤頁,貼上下方的 JSON,然後點按 Add Server" + "value" : "確認:" } } } }, - "Underline" : { - "extractionState" : "stale", + "Version" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "밑줄" + "value" : "버전" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Altı Çizili" + "value" : "Sürüm" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gạch chân" + "value" : "Phiên bản" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "下划线" + "value" : "版本" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "底線" + "value" : "版本" } } } }, - "Undo" : { + "Version %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "실행 취소" + "value" : "버전 %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Undo" + "value" : "Sürüm %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hoàn tác" + "value" : "Phiên bản %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "撤销" + "value" : "版本 %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "復原" + "value" : "版本 %@" } } } }, - "Undo Delete" : { + "Version %@ (Build %@)" : { + "extractionState" : "stale", "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Version %1$@ (Build %2$@)" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "삭제 실행 취소" + "value" : "버전 %1$@ (빌드 %2$@)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Silmeyi Geri Al" + "value" : "Version %@ (Build %@)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hoàn tác xóa" + "value" : "Phiên bản %1$@ (Bản dựng %2$@)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "撤销删除" + "value" : "版本 %@(构建 %@)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "復原刪除" + "value" : "版本 %1$@(組建 %2$@)" } } } }, - "Undo Staged Drop" : { + "Version:" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "대기 중인 삭제 실행 취소" + "value" : "버전:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bekleyen Silmeyi Geri Al" + "value" : "Version:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hoàn tác thao tác xoá đang chờ" + "value" : "Phiên bản:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "撤销待执行的删除" + "value" : "版本:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "復原待執行的刪除" + "value" : "版本:" } } } }, - "Unfold" : { - - }, - "Unfold All" : { - - }, - "Unified" : { + "View" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "통합" + "value" : "보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tek Sütun" + "value" : "Görünüm" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gộp chung" + "value" : "Xem" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "统一视图" + "value" : "视图" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "統一檢視" + "value" : "檢視" } } } }, - "Uninstall" : { + "View Account" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "계정 보기", + "state" : "translated" + } + } + } + }, + "View Activity…" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "제거" + "value" : "활동 보기…" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kaldır" + "value" : "Etkinliği Görüntüle…" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gỡ cài đặt" + "value" : "Xem hoạt động…" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "卸载" + "value" : "查看活动…" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "解除安裝" + "value" : "檢視活動…" } } } }, - "Uninstall %@" : { + "View ER Diagram" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 제거" + "value" : "ER 다이어그램 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ Kaldır" + "value" : "ER Diyagramını Görüntüle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gỡ cài đặt %@" + "value" : "Xem sơ đồ ER" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "卸载 %@" + "value" : "查看 ER 图" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "解除安裝 %@" + "value" : "檢視 ER 圖" } } } }, - "Uninstall Failed" : { + "View Mode" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "제거 실패" + "value" : "보기 모드" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kaldırma Başarısız" + "value" : "Görünüm Modu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gỡ cài đặt thất bại" + "value" : "Chế độ xem" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "卸载失败" + "value" : "视图模式" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "解除安裝失敗" + "value" : "檢視模式" } } } }, - "Uninstall plugin" : { + "View Options" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플러그인 제거" + "value" : "보기 옵션" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklentiyi kaldır" + "value" : "Görünüm Seçenekleri" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gỡ cài đặt plugin" + "value" : "Tuỳ chọn hiển thị" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "卸载插件" + "value" : "显示选项" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "解除安裝外掛" + "value" : "顯示選項" } } } }, - "Uninstall Plugin?" : { + "View on GitHub" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플러그인을 제거하시겠습니까?" + "value" : "GitHub에서 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklenti kaldırılsın mı?" + "value" : "GitHub'da Görüntüle" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gỡ cài đặt Plugin?" + "value" : "Xem trên GitHub" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "卸载插件?" + "value" : "在 GitHub 上查看" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "解除安裝外掛?" + "value" : "在 GitHub 上檢視" } } } }, - "Unique" : { + "View: %@" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "고유" + "value" : "보기: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Unique" + "value" : "View: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Duy nhất" + "value" : "Chế độ xem: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "唯一" + "value" : "视图:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "唯一" + "value" : "檢視表:%@" } } } }, - "UNIQUE" : { - "extractionState" : "stale", + "Views" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "UNIQUE" + "value" : "뷰" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "UNIQUE" + "value" : "Görünümler" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "UNIQUE" + "value" : "Views" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "UNIQUE" + "value" : "视图" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "UNIQUE" + "value" : "檢視表" } } } }, - "Unix epoch seconds" : { - - }, - "Unix Timestamp (milliseconds)" : { + "Vim mode" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Unix 타임스탬프(밀리초)" + "value" : "Vim 모드" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Unix Zaman Damgası (milisaniye)" + "value" : "Vim modu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Unix Timestamp (mili giây)" + "value" : "Chế độ Vim" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Unix时间戳(毫秒)" + "value" : "Vim 模式" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Unix 時間戳記(毫秒)" + "value" : "Vim 模式" } } } }, - "Unix Timestamp (seconds)" : { + "WARNING: Failed to re-enable foreign key checks: %@. Please manually verify FK constraints are enabled." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Unix 타임스탬프(초)" + "value" : "경고: 외래 키 검사를 다시 활성화하지 못했습니다: %@. FK 제약 조건이 활성화되어 있는지 직접 확인하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Unix Zaman Damgası (saniye)" + "value" : "WARNING: Failed to re-enable foreign key checks: %@. Please manually verify FK constraints are enabled." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Unix Timestamp (giây)" + "value" : "CẢNH BÁO: Bật lại kiểm tra khóa ngoại thất bại: %@. Vui lòng kiểm tra thủ công rằng ràng buộc FK đã được bật." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Unix时间戳(秒)" + "value" : "警告:重新启用外键检查失败:%@。请手动验证外键约束已启用。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Unix 時間戳記(秒)" + "value" : "警告:重新啟用外鍵檢查失敗:%@。請手動確認外鍵約束已啟用。" } } } }, - "unknown" : { + "WARNING: The host key for '%@' has changed!\n\nThis could mean someone is doing something malicious, or the server was reinstalled.\n\nPrevious fingerprint: %@\nCurrent fingerprint: %@" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "WARNING: The host key for '%1$@' has changed!\n\nThis could mean someone is doing something malicious, or the server was reinstalled.\n\nPrevious fingerprint: %2$@\nCurrent fingerprint: %3$@" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "알 수 없음" + "value" : "경고: '%1$@'의 호스트 키가 변경되었습니다!\n\n누군가 악의적인 작업을 시도하고 있거나 서버가 재설치되었을 수 있습니다.\n\n이전 지문: %2$@\n현재 지문: %3$@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "bilinmiyor" + "value" : "UYARI: '%@' sunucusunun anahtarı değişti!\n\nBu, birinin kötü niyetli bir şey yaptığı anlamına gelebilir veya sunucu yeniden kurulmuş olabilir.\n\nÖnceki parmak izi: %@\nGeçerli parmak izi: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "không rõ" + "value" : "CẢNH BÁO: Khóa máy chủ của '%@' đã thay đổi!\n\nĐiều này có thể do ai đó đang tấn công, hoặc máy chủ đã được cài đặt lại.\n\nVân tay trước: %@\nVân tay hiện tại: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未知" + "value" : "警告:主机 '%@' 的密钥已更改!\n\n这可能意味着有人进行恶意操作,或者服务器已被重新安装。\n\n之前的指纹:%@\n当前指纹:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "未知" + "value" : "警告:主機 '%1$@' 的主機金鑰已變更!\n\n這可能表示有人正進行惡意操作,或伺服器已重新安裝。\n\n先前的指紋:%2$@\n目前的指紋:%3$@" } } } }, - "Unknown" : { + "WHERE clause" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "알 수 없음" + "value" : "WHERE 절" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bilinmiyor" + "value" : "WHERE ifadesi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không xác định" + "value" : "Mệnh đề WHERE" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未知" + "value" : "WHERE 子句" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "未知" + "value" : "WHERE 子句" } } } }, - "Unknown client" : { - - }, - "Unknown column(s): %@" : { - - }, - "Unknown deep link host: %@" : { + "WHERE clause..." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "알 수 없는 딥 링크 호스트: %@" + "value" : "WHERE 절..." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bilinmeyen deep link sunucusu: %@" + "value" : "WHERE clause..." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Host deep link không xác định: %@" + "value" : "Mệnh đề WHERE..." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未知的深层链接主机:%@" + "value" : "WHERE 子句..." } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "未知的深層連結主機:%@" + "value" : "WHERE 子句..." } } } }, - "Unknown error" : { + "Waiting for your password" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "알 수 없는 오류" + "value" : "암호 입력 대기 중" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bilinmeyen hata" + "value" : "Parolanız bekleniyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lỗi không xác định" + "value" : "Đang chờ mật khẩu của bạn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未知错误" + "value" : "正在等待你的密码" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "未知錯誤" + "value" : "正在等待你的密碼" } } } }, - "Unknown explain variant '%@'." : { - - }, - "Unknown panel(s): %@" : { - - }, - "Unknown SSH Host" : { + "Warehouse" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "알 수 없는 SSH 호스트" + "value" : "웨어하우스" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bilinmeyen SSH Sunucusu" + "value" : "Warehouse" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Máy chủ SSH không xác định" + "value" : "Warehouse" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未知 SSH 主机" + "value" : "仓库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "未知的 SSH 主機" + "value" : "倉儲" } } } }, - "Unknown URL scheme: %@" : { + "Warning" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "알 수 없는 URL 스킴: %@" + "value" : "경고" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bilinmeyen URL şeması: %@" + "value" : "Uyarı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "URL scheme không xác định: %@" + "value" : "Cảnh báo" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未知的 URL scheme:%@" + "value" : "警告" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "未知的 URL scheme:%@" + "value" : "警告" } } } }, - "Unlicensed" : { + "Warnings" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "경고", + "state" : "translated" + } + } + } + }, + "Watch shared folders for connection files." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "라이선스 없음" + "value" : "공유 폴더에서 연결 파일을 감시합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Unlicensed" + "value" : "Paylaşılan klasörleri bağlantı dosyaları için izleyin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chưa có giấy phép" + "value" : "Theo dõi thư mục chia sẻ để tìm tệp kết nối." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未授权" + "value" : "监视共享文件夹中的连接文件。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "未授權" + "value" : "監看共用資料夾中的連線檔案。" } } } }, - "Unlimited" : { + "Watched folders are scanned for .tablepro files. Connections appear read only in the sidebar." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "무제한" + "value" : "감시 중인 폴더에서 .tablepro 파일을 검색합니다. 연결은 사이드바에 읽기 전용으로 표시됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sınırsız" + "value" : "İzlenen klasörler .tablepro dosyaları için taranır. Bağlantılar Sidebar'da salt okunur olarak görünür." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không giới hạn" + "value" : "Các thư mục theo dõi được quét để tìm file .tablepro. Kết nối hiển thị chỉ đọc trong thanh bên." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无限制" + "value" : "会扫描受监视文件夹中的 .tablepro 文件。这些连接在侧边栏中以只读方式显示。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無限制" + "value" : "受監視的資料夾會被掃描以尋找 .tablepro 檔案。這些連線會在側邊欄中以唯讀方式顯示。" } } } }, - "Unpin" : { + "Watched folders are scanned for .tablepro files. Connections appear read-only in the sidebar." : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "고정 해제" + "value" : "감시 중인 폴더에서 .tablepro 파일을 검색합니다. 연결은 사이드바에 읽기 전용으로 표시됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sabitlemeyi Kaldır" + "value" : "İzlenen klasörler .tablepro dosyaları için taranır. Bağlantılar kenar çubuğunda salt okunur olarak görünür." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bỏ ghim" + "value" : "Các thư mục được theo dõi sẽ quét tệp .tablepro. Kết nối hiển thị chỉ đọc trên thanh bên." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "取消固定" + "value" : "监视的文件夹会扫描 .tablepro 文件。连接在侧边栏中以只读方式显示。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "取消釘選" + "value" : "受監看的資料夾會掃描 .tablepro 檔案。連線會在側邊欄中以唯讀方式顯示。" } } } }, - "Unpin Result" : { + "Website" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "결과 고정 해제" + "value" : "웹사이트" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sonucun Sabitlemesini Kaldır" + "value" : "Website" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bỏ ghim kết quả" + "value" : "Trang web" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "取消固定结果" + "value" : "网站" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "取消釘選結果" + "value" : "網站" } } } }, - "Unsaved changes will be lost." : { + "Welcome to TablePro" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "저장하지 않은 변경 사항이 사라집니다." + "value" : "TablePro에 오신 것을 환영합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kaydedilmemiş değişiklikler kaybolacak." + "value" : "TablePro'ya Hoş Geldiniz" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Các thay đổi chưa lưu sẽ bị mất." + "value" : "Chào mừng đến với TablePro" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未保存的更改将会丢失。" + "value" : "欢迎使用 TablePro" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "未儲存的變更將會遺失。" + "value" : "歡迎使用 TablePro" } } } }, - "Unset" : { - "extractionState" : "stale", + "What is switched on here is ignored when two structures are compared. These drift between environments by design." : { "localizations" : { "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "설정 안 됨" + "value" : "여기서 켠 항목은 두 구조를 비교할 때 무시됩니다. 이 항목들은 환경마다 다른 것이 정상입니다.", + "state" : "translated" } - }, - "tr" : { + } + } + }, + "What ran against %@" : { + "localizations" : { + "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "Unset" + "value" : "%@에 대해 실행된 내용", + "state" : "translated" } - }, - "vi" : { + } + } + }, + "What to Compare" : { + "localizations" : { + "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "Bỏ đặt" + "value" : "비교할 대상", + "state" : "translated" } - }, - "zh-Hans" : { + } + } + }, + "What to compare, and how" : { + "localizations" : { + "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "取消设置" + "value" : "무엇을 어떻게 비교할지", + "state" : "translated" } - }, - "zh-Hant" : { + } + } + }, + "What will run against %@" : { + "localizations" : { + "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "取消設定" + "value" : "%@에 대해 실행될 내용", + "state" : "translated" } } } }, - "Unsigned" : { - "extractionState" : "stale", + "What you can do" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "서명되지 않음" + "value" : "사용 가능한 기능" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Unsigned" + "value" : "Neler yapabilirsiniz" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không dấu" + "value" : "Bạn có thể làm gì" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无符号" + "value" : "您可以做什么" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無符號" + "value" : "你可以做什麼" } } } }, - "Unsupported connection scheme: %@" : { + "When TablePro starts:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "지원되지 않는 연결 스킴: %@" + "value" : "TablePro 시작 시:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Desteklenmeyen bağlantı şeması: %@" + "value" : "TablePro başlarken:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Scheme kết nối không được hỗ trợ: %@" + "value" : "Khi TablePro khởi động:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "不支持的连接协议:%@" + "value" : "TablePro 启动时:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "不支援的連線協定:%@" + "value" : "TablePro 啟動時:" } } } }, - "Unsupported database scheme: %@" : { + "When enabled, clicking a new table replaces the current clean table tab instead of opening a new tab" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "지원되지 않는 데이터베이스 스킴: %@" + "value" : "활성화하면 새 테이블을 클릭할 때 새 탭을 여는 대신 현재의 변경 사항 없는 테이블 탭을 대체합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Desteklenmeyen veritabanı şeması: %@" + "value" : "When enabled, clicking a new table replaces the current clean table tab instead of opening a new tab" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Scheme cơ sở dữ liệu không được hỗ trợ: %@" + "value" : "Khi bật, nhấp vào bảng mới sẽ thay thế tab bảng trống hiện tại thay vì mở tab mới" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "不支持的数据库方案:%@" + "value" : "启用后,点击新表将替换当前空白表标签页,而不是打开新标签页" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "不支援的資料庫 scheme:%@" + "value" : "啟用後,點按新的資料表會取代目前的乾淨資料表分頁,而不是開啟新分頁" } } } }, - "Unsupported database type: %@" : { + "When enabled, clicking a table in the sidebar will replace the current tab if it has no unsaved changes and you haven't interacted with it (sorted, filtered, etc.)." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "지원되지 않는 데이터베이스 유형: %@" + "value" : "활성화하면 사이드바에서 테이블을 클릭할 때 현재 탭에 저장하지 않은 변경 사항이 없고 정렬이나 필터링 등의 작업을 하지 않은 경우 해당 탭을 대체합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Desteklenmeyen veritabanı türü: %@" + "value" : "When enabled, clicking a table in the sidebar will replace the current tab if it has no unsaved changes and you haven't interacted with it (sorted, filtered, etc.)." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kiểu cơ sở dữ liệu không hỗ trợ: %@" + "value" : "Khi bật, nhấp vào bảng trong thanh bên sẽ thay thế tab hiện tại nếu không có thay đổi chưa lưu và bạn chưa tương tác với nó (sắp xếp, lọc, v.v.)." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "不支持的数据库类型:%@" + "value" : "启用后,点击侧边栏中的表将替换当前标签页(如果没有未保存的更改且您未与之交互过,如排序、筛选等)。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "不支援的資料庫類型:%@" + "value" : "啟用後,若目前分頁沒有未儲存的變更且你尚未與其互動(排序、篩選等),點按側邊欄中的資料表會取代目前的分頁。" } } } }, - "Unsupported encryption version %d" : { + "When enabled, this favorite is visible in all connections" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "지원되지 않는 암호화 버전 %d" + "value" : "활성화하면 이 즐겨찾기가 모든 연결에 표시됩니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Desteklenmeyen şifreleme sürümü %d" + "value" : "When enabled, this favorite is visible in all connections" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phiên bản mã hoá %d không được hỗ trợ" + "value" : "Khi bật, mục yêu thích này hiển thị trong tất cả kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "不支持的加密版本%d" + "value" : "启用后,此收藏在所有连接中可见" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "不支援的加密版本 %d" + "value" : "啟用後,此我的最愛會在所有連線中顯示" } } } }, - "Unsupported encryption version %u" : { - "extractionState" : "stale", + "Whitespace in text" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "텍스트의 공백", + "state" : "translated" + } + } + } + }, + "Wide-Column" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "지원되지 않는 암호화 버전 %u" + "value" : "와이드 컬럼" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Desteklenmeyen şifreleme sürümü %u" + "value" : "Geniş Sütunlu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phiên bản mã hóa không được hỗ trợ %u" + "value" : "Wide-Column" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "不支持的加密版本 %u" + "value" : "宽列" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "不支援的加密版本 %u" + "value" : "寬欄" } } } }, - "Unsupported export format." : { - - }, - "Unsupported file format: %@" : { + "Width" : { + "comment" : "Label for the width of a table.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "지원되지 않는 파일 형식: %@" + "value" : "너비" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Desteklenmeyen dosya biçimi: %@" + "value" : "Genişlik" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Định dạng tệp không được hỗ trợ: %@" + "value" : "Chiều rộng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "不支持的文件格式:%@" + "value" : "宽度" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "不支援的檔案格式:%@" + "value" : "寬度" } } } }, - "Unsupported image format" : { + "Will be changed" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "변경됩니다", + "state" : "translated" + } + } + } + }, + "Will be created when you apply changes" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "지원되지 않는 이미지 형식" + "value" : "변경 사항을 적용하면 생성됩니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Desteklenmeyen görüntü biçimi" + "value" : "Değişiklikleri uyguladığınızda oluşturulacak" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Định dạng ảnh không được hỗ trợ" + "value" : "Sẽ được tạo khi bạn áp dụng thay đổi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "不支持的图像格式" + "value" : "应用更改时将会创建" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "不支援的影像格式" + "value" : "套用變更時將會建立" } } } }, - "Unsupported intent: %@" : { + "Will be dropped when you apply changes" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "지원되지 않는 인텐트: %@" + "value" : "변경 사항을 적용하면 삭제됩니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Desteklenmeyen niyet: %@" + "value" : "Değişiklikleri uyguladığınızda silinecek" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Intent không hỗ trợ: %@" + "value" : "Sẽ bị xoá khi bạn áp dụng thay đổi" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "不支持的 intent:%@" + "value" : "应用更改时将会删除" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "不支援的 intent:%@" + "value" : "套用變更時將會刪除" } } } }, - "Unsupported MongoDB method: %@" : { - "extractionState" : "stale", + "Will not change" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "변경되지 않습니다", + "state" : "translated" + } + } + } + }, + "Will run" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "실행됨", + "state" : "translated" + } + } + } + }, + "Window" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "지원되지 않는 MongoDB 메서드: %@" + "value" : "윈도우" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Unsupported MongoDB method: %@" + "value" : "Pencere" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phương thức MongoDB không được hỗ trợ: %@" + "value" : "Cửa sổ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "不支持的 MongoDB 方法:%@" + "value" : "窗口" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "不支援的 MongoDB 方法:%@" + "value" : "視窗" } } } }, - "Unsupported schema operation: %@" : { + "Window Background" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "지원되지 않는 스키마 작업: %@" + "value" : "윈도우 배경" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Desteklenmeyen şema işlemi: %@" + "value" : "Pencere Arka Planı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thao tác schema không được hỗ trợ: %@" + "value" : "Nền cửa sổ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "不支持的 Schema 操作:%@" + "value" : "窗口背景" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "不支援的綱要操作:%@" + "value" : "視窗背景" } } } }, - "Unsupported token: %@" : { + "Windows Authentication needs the server's hostname, not an IP address. Kerberos service principals aren't registered against IP addresses." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "지원되지 않는 토큰: %@" + "value" : "Windows 인증에는 IP 주소가 아닌 서버의 호스트 이름이 필요합니다. Kerberos 서비스 주체는 IP 주소에 등록되지 않습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Desteklenmeyen belirteç: %@" + "value" : "Windows Authentication, IP adresini değil sunucunun ana bilgisayar adını ister. Kerberos servis principal'ları IP adreslerine kayıtlı değildir." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Token không được hỗ trợ: %@" + "value" : "Windows Authentication cần tên máy chủ, không phải địa chỉ IP. Các service principal của Kerberos không đăng ký theo địa chỉ IP." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "不支持的标记:%@" + "value" : "Windows 身份验证需要服务器的主机名,而不是 IP 地址。Kerberos 服务主体不会针对 IP 地址注册。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "不支援的權杖:%@" + "value" : "Windows 驗證需要伺服器的主機名稱,而不是 IP 位址。Kerberos 服務主體不會針對 IP 位址註冊。" } } } }, - "Unterminated comment" : { + "With Headers" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "종료되지 않은 주석" + "value" : "헤더 포함" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sonlandırılmamış yorum" + "value" : "Başlıklarla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Ghi chú chưa đóng" + "value" : "Kèm tiêu đề" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "注释未闭合" + "value" : "含表头" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "註解未結束" + "value" : "含標題列" } } } }, - "Untitled" : { + "Word wrap" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "제목 없음" + "value" : "자동 줄 바꿈" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Untitled" + "value" : "Sözcük kaydırma" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Không có tiêu đề" + "value" : "Tự động xuống dòng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "未命名" + "value" : "自动换行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "未命名" + "value" : "自動換行" } } } }, - "Update" : { + "Wrap in transaction (BEGIN/COMMIT)" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "업데이트" + "value" : "트랜잭션으로 감싸기(BEGIN/COMMIT)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Güncelle" + "value" : "İşlem içine al (BEGIN/COMMIT)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cập nhật" + "value" : "Bọc trong giao dịch (BEGIN/COMMIT)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "更新" + "value" : "包裹在事务中 (BEGIN/COMMIT)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "更新" + "value" : "包覆於交易中 (BEGIN/COMMIT)" } } } }, - "Update %@" : { + "Write Concern" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 업데이트" + "value" : "쓰기 고려" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ Güncelle" + "value" : "Yazma Endişesi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cập nhật %@" + "value" : "Write Concern" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "更新 %@" + "value" : "Write Concern" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "更新 %@" + "value" : "Write Concern" } } } }, - "Update %@ plugin" : { + "Write operations are not permitted for this client" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 플러그인 업데이트" + "value" : "이 클라이언트에는 쓰기 작업이 허용되지 않습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ eklentisini güncelle" + "value" : "Bu istemci için yazma işlemlerine izin verilmiyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cập nhật plugin %@" + "value" : "Thao tác ghi không được phép với client này" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "更新 %@ 插件" + "value" : "此客户端不允许写入操作" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "更新 %@ 外掛" + "value" : "此用戶端不允許寫入操作" } } } }, - "Update Now" : { + "X Axis" : { "localizations" : { "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "지금 업데이트" + "value" : "X축", + "state" : "translated" } }, "tr" : { "stringUnit" : { - "state" : "translated", - "value" : "Şimdi Güncelle" + "value" : "X Ekseni", + "state" : "translated" } }, "vi" : { "stringUnit" : { - "state" : "translated", - "value" : "Cập nhật ngay" + "value" : "Trục X", + "state" : "translated" } }, "zh-Hans" : { "stringUnit" : { - "state" : "translated", - "value" : "立即更新" + "value" : "X 轴", + "state" : "translated" } }, "zh-Hant" : { "stringUnit" : { - "state" : "translated", - "value" : "立即更新" + "value" : "X 軸", + "state" : "translated" } } } }, - "Update Plugin" : { + "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "플러그인 업데이트" + "value" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Eklentiyi Güncelle" + "value" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cập nhật plugin" + "value" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "更新插件" + "value" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "更新外掛" - } - } - } - }, - "Update row %@ in %@" : { - "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Update row %1$@ in %2$@" + "value" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX" } } } }, - "Update rows that differ" : { - - }, - "UPDATE Statement(s)" : { + "Y Axis" : { "localizations" : { "ko" : { "stringUnit" : { - "state" : "translated", - "value" : "UPDATE 문" + "value" : "Y축", + "state" : "translated" } }, "tr" : { "stringUnit" : { - "state" : "translated", - "value" : "UPDATE Statement(s)" + "value" : "Y Ekseni", + "state" : "translated" } }, "vi" : { "stringUnit" : { - "state" : "translated", - "value" : "Câu lệnh UPDATE" + "value" : "Trục Y", + "state" : "translated" } }, "zh-Hans" : { "stringUnit" : { - "state" : "translated", - "value" : "UPDATE 语句" + "value" : "Y 轴", + "state" : "translated" } }, "zh-Hant" : { "stringUnit" : { - "state" : "translated", - "value" : "UPDATE 陳述式" + "value" : "Y 軸", + "state" : "translated" } } } }, - "Update TablePro" : { + "Yellow" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro 업데이트" + "value" : "노란색" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro'yu Güncelle" + "value" : "Sarı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cập nhật TablePro" + "value" : "Vàng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "更新 TablePro" + "value" : "黄色" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "更新 TablePro" + "value" : "黃色" } } } }, - "Update to v%@" : { + "Yesterday" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "버전 v%@ 업데이트" + "value" : "어제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "v%@ sürümüne güncelle" + "value" : "Dün" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cập nhật lên v%@" + "value" : "Hôm qua" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "更新到 v%@" + "value" : "昨天" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "更新至 v%@" + "value" : "昨天" } } } }, - "Updated" : { + "You" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "업데이트됨" + "value" : "나" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Updated" + "value" : "Siz" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã cập nhật" + "value" : "Bạn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已更新" + "value" : "你" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已更新" + "value" : "你" } } } }, - "Updated %@ row" : { - - }, - "Updated %@ rows" : { - - }, - "Updated to v%@" : { + "You can re-enable this in Settings" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "버전 v%@ 업데이트됨" + "value" : "설정에서 다시 활성화할 수 있습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "v%@ sürümüne güncellendi" + "value" : "Bunu Ayarlar'dan tekrar etkinleştirebilirsiniz" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã cập nhật lên v%@" + "value" : "Bạn có thể bật lại trong Cài đặt" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已更新到 v%@" + "value" : "您可以在设置中重新启用" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已更新至 v%@" + "value" : "你可以在「設定」中重新啟用" } } } }, - "Updating this plugin didn't finish. TablePro will try again the next time it launches." : { + "You edit these inline in the grid and filter bar. Reset a table here to return it to defaults." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 플러그인의 업데이트가 완료되지 않았습니다. 다음에 TablePro를 실행할 때 다시 시도합니다." + "value" : "그리드와 필터 막대에서 인라인으로 편집할 수 있습니다. 테이블을 기본값으로 되돌리려면 여기서 재설정하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu eklentinin güncellenmesi tamamlanmadı. TablePro bir sonraki açılışta yeniden deneyecek." + "value" : "Bunları doğrudan tabloda ve filtre çubuğunda düzenlersiniz. Bir tabloyu varsayılana döndürmek için buradan sıfırlayın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cập nhật plugin này chưa hoàn tất. TablePro sẽ thử lại lần khởi động tiếp theo." + "value" : "Bạn chỉnh những mục này ngay trong lưới và thanh bộ lọc. Đặt lại một bảng ở đây để đưa nó về mặc định." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此插件更新未完成。TablePro 将在下次启动时重试。" + "value" : "你可以直接在数据网格和筛选栏中修改这些设置。在这里重置某个表即可恢复默认值。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此外掛的更新尚未完成。TablePro 會在下次啟動時重試。" + "value" : "你可以直接在資料格與篩選列中修改這些設定。在這裡重設某個資料表即可回復預設值。" } } } }, - "Updating…" : { + "You have no saved queries to publish." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "업데이트 중…" + "value" : "게시할 저장된 쿼리가 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Güncelleniyor…" + "value" : "Yayınlanacak kayıtlı sorgunuz yok." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang cập nhật…" + "value" : "Bạn không có truy vấn đã lưu nào để xuất bản." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在更新…" + "value" : "你没有可发布的已保存查询。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在更新…" + "value" : "你沒有可發佈的已儲存查詢。" } } } }, - "Upgrade Plan" : { + "You have unsaved changes" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "요금제 업그레이드" + "value" : "저장하지 않은 변경 사항이 있습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Planı Yükselt" + "value" : "Kaydedilmemiş değişiklikleriniz var" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nâng cấp gói" + "value" : "Bạn có thay đổi chưa lưu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "升级方案" + "value" : "您有未保存的更改" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "升級方案" + "value" : "你有未儲存的變更" } } } }, - "Upper bound, for BETWEEN" : { - - }, - "Uptime" : { + "You have unsaved changes to the table structure. Refreshing will discard these changes." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "가동 시간" + "value" : "테이블 구조에 저장하지 않은 변경 사항이 있습니다. 새로 고치면 변경 사항이 사라집니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Çalışma Süresi" + "value" : "Tablo yapısında kaydedilmemiş değişiklikleriniz var. Yenileme bu değişiklikleri siler." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thời gian hoạt động" + "value" : "Bạn có thay đổi chưa lưu trong cấu trúc bảng. Làm mới sẽ hủy các thay đổi này." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "运行时间" + "value" : "您有未保存的表结构更改。刷新将丢弃这些更改。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "運作時間" + "value" : "你對資料表結構有未儲存的變更。重新整理會捨棄這些變更。" } } } }, - "US Long (12/31/2024 11:59:59 PM)" : { + "You will be prompted for a verification code each time you connect." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "미국식 긴 형식(12/31/2024 11:59:59 PM)" + "value" : "연결할 때마다 인증 코드를 입력해야 합니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "US Long (12/31/2024 11:59:59 PM)" + "value" : "Her bağlandığınızda doğrulama kodu istenecektir." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mỹ dài (12/31/2024 11:59:59 PM)" + "value" : "Bạn sẽ được yêu cầu nhập mã xác minh mỗi lần kết nối." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "美式长格式 (12/31/2024 11:59:59 PM)" + "value" : "每次连接时都会要求您输入验证码。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "美式長格式 (12/31/2024 11:59:59 PM)" + "value" : "每次連線時都會要求你輸入驗證碼。" } } } }, - "US Short (12/31/2024)" : { + "You're all set!" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "미국식 짧은 형식(12/31/2024)" + "value" : "모든 준비가 완료되었습니다!" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "US Short (12/31/2024)" + "value" : "Hazırsınız!" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mỹ ngắn (12/31/2024)" + "value" : "Bạn đã sẵn sàng!" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "美式短格式 (12/31/2024)" + "value" : "一切就绪!" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "美式短格式 (12/31/2024)" + "value" : "一切就緒!" } } } }, - "Use" : { + "Your Changes" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사용" + "value" : "변경 사항" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kullan" + "value" : "Değişiklikleriniz" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dùng" + "value" : "Thay đổi của bạn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "使用" + "value" : "你的更改" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "使用" + "value" : "你的變更" } } } }, - "Use “%@” anyway" : { - - }, - "Use {{query}} for the current editor query, {{schema}} for the active schema, {{database}} for the active database name, and {{body}} for any text typed after the command." : { + "Your changes will be lost if you don't save them." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "현재 편집기 쿼리에는 {{query}}, 활성 스키마에는 {{schema}}, 활성 데이터베이스 이름에는 {{database}}, 명령 뒤에 입력한 텍스트에는 {{body}}를 사용하십시오." + "value" : "저장하지 않으면 변경 사항이 사라집니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geçerli düzenleyici sorgusu için {{query}}, etkin şema için {{schema}}, etkin veritabanı adı için {{database}} ve komuttan sonra yazılan metin için {{body}} kullanın." + "value" : "Kaydetmezseniz değişiklikleriniz kaybolacaktır." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dùng {{query}} cho truy vấn hiện tại trong trình soạn, {{schema}} cho schema đang hoạt động, {{database}} cho tên cơ sở dữ liệu đang hoạt động, và {{body}} cho văn bản gõ sau lệnh." + "value" : "Thay đổi của bạn sẽ bị mất nếu không lưu." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "使用 {{query}} 表示当前编辑器查询,{{schema}} 表示活动 Schema,{{database}} 表示活动数据库名称,{{body}} 表示命令后输入的任意文本。" + "value" : "如果不保存,您的更改将会丢失。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "使用 {{query}} 代表目前編輯器的查詢,{{schema}} 代表使用中的綱要,{{database}} 代表使用中的資料庫名稱,{{body}} 代表指令後輸入的任何文字。" + "value" : "若不儲存,你的變更將會遺失。" } } } }, - "Use % to allow any host." : { + "Your connections file was changed outside TablePro, so this connection's password source was not run. Open the connection and save it again to confirm the change." : { + "comment" : "Error message when the app is not trusted to access the keychain.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 호스트를 허용하려면 %를 사용하십시오." + "value" : "TablePro 외부에서 연결 파일이 변경되어 이 연결의 암호 소스를 실행하지 않았습니다. 연결을 열고 다시 저장하여 변경 사항을 확인하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Herhangi bir sunucuya izin vermek için % kullanın." + "value" : "Bağlantı dosyanız TablePro dışında değiştirildi, bu yüzden bu bağlantının parola kaynağı çalıştırılmadı. Değişikliği onaylamak için bağlantıyı açıp yeniden kaydedin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dùng % để cho phép mọi máy chủ." + "value" : "Tệp kết nối của bạn đã bị thay đổi bên ngoài TablePro, nên nguồn mật khẩu của kết nối này không được chạy. Hãy mở kết nối và lưu lại để xác nhận thay đổi." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "使用 % 表示允许任意主机。" + "value" : "你的连接文件在 TablePro 之外被修改过,因此没有运行此连接的密码来源。请打开该连接并重新保存以确认这次更改。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "使用 % 表示允許任何主機。" + "value" : "你的連線檔案在 TablePro 之外被修改過,因此沒有執行此連線的密碼來源。請開啟該連線並重新儲存以確認這次變更。" } } } }, - "Use ~/.pgpass" : { - "extractionState" : "stale", + "Your database schema and query data will be sent to the AI provider for analysis. Allow for this connection?" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "~/.pgpass 사용" + "value" : "분석을 위해 데이터베이스 스키마와 쿼리 데이터가 AI 제공업체로 전송됩니다. 이 연결에 대해 허용하시겠습니까?" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "~/.pgpass kullan" + "value" : "Veritabanı şemanız ve sorgu verileriniz analiz için yapay zeka sağlayıcısına gönderilecek. Bu bağlantı için izin verilsin mi?" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sử dụng ~/.pgpass" + "value" : "Lược đồ cơ sở dữ liệu và dữ liệu truy vấn sẽ được gửi đến nhà cung cấp AI để phân tích. Cho phép kết nối này?" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "使用 ~/.pgpass" + "value" : "您的数据库结构和查询数据将被发送给 AI 提供商进行分析。是否允许此连接?" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "使用 ~/.pgpass" + "value" : "你的資料庫綱要與查詢資料將傳送給 AI 供應商進行分析。要允許此連線嗎?" } } } }, - "Use as Active %@" : { + "Your executed queries will\nappear here for quick access." : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "활성 %@(으)로 사용" + "value" : "실행한 쿼리가 빠른 접근을 위해\n여기에 표시됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Etkin %@ Olarak Kullan" + "value" : "Çalıştırdığınız sorgular\nhızlı erişim için burada görünecektir." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dùng làm %@ hiện hành" + "value" : "Các truy vấn đã thực thi sẽ\nxuất hiện ở đây để truy cập nhanh." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "设为当前%@" + "value" : "已执行的查询将\n显示在此处以便快速访问。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "設為使用中的%@" + "value" : "你執行過的查詢將\n顯示於此處以便快速存取。" } } } }, - "Use as Active Database" : { - "extractionState" : "stale", + "Your license has expired" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "활성 데이터베이스로 사용" + "value" : "라이선스가 만료되었습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Etkin Veritabanı Olarak Kullan" + "value" : "Lisansınızın süresi doldu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dùng làm cơ sở dữ liệu hoạt động" + "value" : "Giấy phép của bạn đã hết hạn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "用作活动数据库" + "value" : "您的许可证已过期" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "用作使用中的資料庫" + "value" : "你的授權已過期" } } } }, - "Use as Active Schema" : { - "extractionState" : "stale", + "Your prompts, schema, and query text reach Anthropic under your consumer plan and its privacy settings, not the API's commercial terms." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "활성 스키마로 사용" + "value" : "프롬프트, 스키마 및 쿼리 텍스트는 API의 상업용 약관이 아닌 소비자 요금제와 해당 개인정보 보호 설정에 따라 Anthropic으로 전송됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Etkin Şema Olarak Kullan" + "value" : "İstemleriniz, şemanız ve sorgu metniniz Anthropic'e API'nin ticari koşullarıyla değil, tüketici planınız ve onun gizlilik ayarları kapsamında ulaşır." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dùng làm schema hoạt động" + "value" : "Câu lệnh, schema và nội dung truy vấn của bạn đến Anthropic theo gói người dùng và các thiết lập riêng tư của gói đó, không phải theo điều khoản thương mại của API." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "用作活动 Schema" + "value" : "你的提示词、Schema 和查询文本按你的消费者套餐及其隐私设置发送到 Anthropic,而不是按 API 的商业条款。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "用作使用中的綱要" + "value" : "你的提示詞、綱要和查詢文字會依你的消費者方案及其隱私設定傳送到 Anthropic,而不是依 API 的商業條款。" } } } }, - "Use at least 8 characters" : { + "Your subscription is governed by Anthropic's Consumer Terms and Usage Policy. Read them and decide whether this use fits. TablePro cannot grant rights under them." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "8자 이상 사용하십시오" + "value" : "구독에는 Anthropic의 소비자 약관 및 사용 정책이 적용됩니다. 해당 내용을 읽고 이 사용 방식이 적합한지 판단하십시오. TablePro는 해당 약관에 따른 권리를 부여할 수 없습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "En az 8 karakter kullanın" + "value" : "Aboneliğiniz Anthropic'in Tüketici Koşulları ve Kullanım Politikası'na tabidir. Bunları okuyun ve bu kullanımın uygun olup olmadığına karar verin. TablePro bu koşullar kapsamında size hak veremez." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dùng ít nhất 8 ký tự" + "value" : "Gói đăng ký của bạn chịu sự điều chỉnh của Điều khoản Người dùng và Chính sách Sử dụng của Anthropic. Hãy đọc và tự quyết định cách dùng này có phù hợp không. TablePro không thể cấp quyền theo các điều khoản đó." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "请至少使用 8 个字符" + "value" : "你的订阅受 Anthropic 的消费者条款和使用政策约束。请阅读这些条款,自行判断这种用法是否合适。TablePro 无法据此授予你任何权利。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "請至少使用 8 個字元" + "value" : "你的訂閱受 Anthropic 的消費者條款與使用政策約束。請閱讀這些條款,自行判斷這種用法是否合適。TablePro 無法據此授予你任何權利。" } } } }, - "Use clipboard URL" : { + "Your team can now see %d shared connections. Passwords were not included." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "클립보드 URL 사용" + "value" : "이제 팀에서 공유 연결 %d개를 볼 수 있습니다. 암호는 포함되지 않았습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Panodaki URL'yi kullan" + "value" : "Takımınız artık %d paylaşılan bağlantıyı görebiliyor. Parolalar dahil edilmedi." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dùng URL trong clipboard" + "value" : "Nhóm của bạn giờ có thể thấy %d kết nối được chia sẻ. Mật khẩu không được đưa vào." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "使用剪贴板中的 URL" + "value" : "你的团队现在可以看到 %d 个共享连接。密码未被包含。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "使用剪貼簿中的 URL" + "value" : "你的團隊現在可以看到 %d 個共享連線。密碼未包含在內。" } } } }, - "Use Default" : { + "Your team will see the names and SQL of %d saved queries. This replaces what you previously published." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "기본값 사용" + "value" : "팀에서 저장된 쿼리 %d개의 이름과 SQL을 볼 수 있습니다. 이전에 게시한 내용은 이 내용으로 대체됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Varsayılanı Kullan" + "value" : "Takımınız %d kayıtlı sorgunun adlarını ve SQL'ini görecek. Bu, daha önce yayınladıklarınızın yerini alır." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mặc định" + "value" : "Nhóm của bạn sẽ thấy tên và SQL của %d truy vấn đã lưu. Nội dung này thay thế những gì bạn đã xuất bản trước đó." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "使用默认" + "value" : "你的团队将看到 %d 条已保存查询的名称和 SQL。这会替换你之前发布的内容。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "使用預設" + "value" : "你的團隊將看到 %d 條已儲存查詢的名稱和 SQL。這會取代你先前發佈的內容。" } } } }, - "Use DuckLake" : { - "extractionState" : "stale", + "Zed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "DuckLake 사용" + "value" : "Zed" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "DuckLake Kullan" + "value" : "Zed" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dùng DuckLake" + "value" : "Zed" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "使用 DuckLake" + "value" : "Zed" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "使用 DuckLake" + "value" : "Zed" } } } }, - "Use environment variables in connection fields." : { + "Zero Fill" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결 필드에서 환경 변수를 사용합니다." + "value" : "0 채우기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı alanlarında ortam değişkenlerini kullanın." + "value" : "Sıfırla Doldur" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sử dụng biến môi trường trong trường kết nối." + "value" : "Điền số 0" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在连接字段中使用环境变量。" + "value" : "零填充" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在連線欄位中使用環境變數。" + "value" : "零填補" } } } }, - "Use IAM database authentication" : { + "Zoom" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "IAM 데이터베이스 인증 사용" + "value" : "확대/축소" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "IAM veritabanı kimlik doğrulamasını kullan" + "value" : "Yakınlaştır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dùng xác thực cơ sở dữ liệu IAM" + "value" : "Thu phóng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "使用 IAM 数据库认证" + "value" : "缩放" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "使用 IAM 資料庫驗證" + "value" : "縮放" } } } }, - "Use Password File" : { + "Zoom In" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "암호 파일 사용" + "value" : "확대" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Parola Dosyası Kullan" + "value" : "Yakınlaştır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dùng file mật khẩu" + "value" : "Phóng to" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "使用密码文件" + "value" : "放大" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "使用密碼檔案" + "value" : "放大" } } } }, - "Use Required for AstraDB, DataStax Astra, and other hosted Cassandra deployments." : { + "Zoom Out" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "AstraDB, DataStax Astra 및 기타 호스팅된 Cassandra 배포에서는 Required를 사용하십시오." + "value" : "축소" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "AstraDB, DataStax Astra ve diğer barındırılan Cassandra dağıtımları için Required kullanın." + "value" : "Uzaklaştır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dùng Required cho AstraDB, DataStax Astra và các triển khai Cassandra được lưu trữ khác." + "value" : "Thu nhỏ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "对于 AstraDB、DataStax Astra 和其他托管 Cassandra 部署,请使用“必需”。" + "value" : "缩小" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "對於 AstraDB、DataStax Astra 和其他託管的 Cassandra 部署,請使用「必要」。" + "value" : "縮小" } } } }, - "Use Required for ClickHouse Cloud and other managed instances." : { + "Zoom in" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "ClickHouse Cloud 및 기타 관리형 인스턴스에서는 Required를 사용하십시오." + "value" : "확대" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "ClickHouse Cloud ve diğer yönetilen örnekler için Required kullanın." + "value" : "Yakınlaştır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dùng Required cho ClickHouse Cloud và các phiên bản được quản lý khác." + "value" : "Phóng to" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "对于 ClickHouse Cloud 和其他托管实例,请使用“必需”。" + "value" : "放大" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "對於 ClickHouse Cloud 和其他託管執行個體,請使用「必要」。" + "value" : "放大" } } } }, - "Use SSL if available" : { + "Zoom out" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사용 가능한 경우 SSL 사용" + "value" : "축소" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Varsa SSL kullan" + "value" : "Uzaklaştır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sử dụng SSL nếu có" + "value" : "Thu nhỏ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "可用时使用 SSL" + "value" : "缩小" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "可用時使用 SSL" + "value" : "縮小" } } } }, - "Use the instance's private IP address instead of its public IP." : { + "a query" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "쿼리", + "state" : "translated" + } + } + } + }, + "admin" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "인스턴스의 공용 IP 대신 비공개 IP 주소를 사용합니다." + "value" : "admin" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Örneğin genel IP'si yerine özel IP adresini kullanır." + "value" : "yönetici" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dùng địa chỉ IP riêng của instance thay cho IP công khai." + "value" : "admin" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "使用该实例的专用 IP 地址,而不是公共 IP。" + "value" : "admin" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "使用該執行個體的專用 IP 位址,而不是公用 IP。" + "value" : "admin" } } } }, - "Use your Cursor subscription with no API key. Requires the Cursor CLI." : { + "an export" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "내보내기", + "state" : "translated" + } + } + } + }, + "and" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "API 키 없이 Cursor 구독을 사용합니다. Cursor CLI가 필요합니다." + "value" : "그리고" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "API anahtarı olmadan Cursor aboneliğinizi kullanın. Cursor CLI gerektirir." + "value" : "ve" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dùng gói đăng ký Cursor của bạn mà không cần khóa API. Yêu cầu Cursor CLI." + "value" : "và" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无需 API 密钥即可使用你的 Cursor 订阅。需要 Cursor CLI。" + "value" : "和" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無需 API 金鑰即可使用你的 Cursor 訂閱。需要 Cursor CLI。" + "value" : "且" } } } }, - "Use your SuperGrok or X Premium+ subscription with no API key. Sign-in opens the Grok Build consent screen. This is an unofficial interface that may change." : { + "avg %@" : { + "comment" : "Average duration, %@ is a duration", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "API 키 없이 SuperGrok 또는 X Premium+ 구독을 사용합니다. 로그인하면 Grok Build 동의 화면이 열립니다. 이는 변경될 수 있는 비공식 인터페이스입니다." + "value" : "평균 %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "API anahtarı olmadan SuperGrok veya X Premium+ aboneliğinizi kullanın. Oturum açma, Grok Build onay ekranını açar. Bu, değişebilecek resmi olmayan bir arayüzdür." + "value" : "ort. %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dùng gói SuperGrok hoặc X Premium+ của bạn mà không cần khóa API. Khi đăng nhập sẽ mở màn hình đồng ý của Grok Build. Đây là giao diện không chính thức và có thể thay đổi." + "value" : "trung bình %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "无需 API 密钥即可使用你的 SuperGrok 或 X Premium+ 订阅。登录时会打开 Grok Build 的授权页面。这是非官方接口,可能会变动。" + "value" : "平均 %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "無需 API 金鑰即可使用你的 SuperGrok 或 X Premium+ 訂閱。登入時會開啟 Grok Build 的授權畫面。這是非官方介面,可能會變動。" + "value" : "平均 %@" } } } }, - "User" : { + "bastion.example.com" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사용자" + "value" : "bastion.example.com" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kullanıcı" + "value" : "bastion.example.com" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Người dùng" + "value" : "bastion.example.com" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "用户" + "value" : "bastion.example.com" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "使用者" + "value" : "bastion.example.com" } } } }, - "User and role changes were not authorized" : { + "between" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사용자 및 역할 변경이 승인되지 않았습니다" + "value" : "사이" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kullanıcı ve rol değişikliklerine izin verilmedi" + "value" : "between" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Các thay đổi người dùng và vai trò không được cho phép" + "value" : "giữa" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "用户和角色更改未获授权" + "value" : "介于" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "使用者與角色變更未獲授權" + "value" : "介於" } } } }, - "User approval timed out after 30 seconds" : { + "cloud-sql-proxy not found. Install it with `brew install cloud-sql-proxy`, download it above, or choose the binary." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사용자 승인이 30초 후 시간 초과되었습니다" + "value" : "cloud-sql-proxy를 찾을 수 없습니다. `brew install cloud-sql-proxy`로 설치하거나 위에서 다운로드하거나 바이너리를 선택하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kullanıcı onayı 30 saniye sonra zaman aşımına uğradı" + "value" : "cloud-sql-proxy bulunamadı. `brew install cloud-sql-proxy` ile yükleyin, yukarıdan indirin veya çalıştırılabilir dosyayı seçin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Yêu cầu phê duyệt hết hạn sau 30 giây" + "value" : "Không tìm thấy cloud-sql-proxy. Cài bằng `brew install cloud-sql-proxy`, tải xuống ở trên, hoặc chọn tệp thực thi." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "用户审批在 30 秒后超时" + "value" : "未找到 cloud-sql-proxy。可用 `brew install cloud-sql-proxy` 安装、在上方下载,或直接选择可执行文件。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "使用者核准在 30 秒後逾時" + "value" : "找不到 cloud-sql-proxy。可用 `brew install cloud-sql-proxy` 安裝、在上方下載,或直接選擇執行檔。" } } } }, - "User denied MCP access to this connection" : { + "cloud-sql-proxy was not found. Install it with `brew install cloud-sql-proxy`, or download it in the Cloud SQL Auth Proxy settings." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사용자가 이 연결에 대한 MCP 접근을 거부했습니다" + "value" : "cloud-sql-proxy를 찾을 수 없습니다. `brew install cloud-sql-proxy`로 설치하거나 Cloud SQL Auth Proxy 설정에서 다운로드하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kullanıcı bu bağlantıya MCP erişimini reddetti" + "value" : "cloud-sql-proxy bulunamadı. `brew install cloud-sql-proxy` ile yükleyin veya Cloud SQL Auth Proxy ayarlarından indirin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Người dùng đã từ chối quyền truy cập MCP cho kết nối này" + "value" : "Không tìm thấy cloud-sql-proxy. Cài bằng `brew install cloud-sql-proxy`, hoặc tải xuống trong cài đặt Cloud SQL Auth Proxy." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "用户拒绝了此连接的 MCP 访问" + "value" : "未找到 cloud-sql-proxy。可用 `brew install cloud-sql-proxy` 安装,或在 Cloud SQL Auth Proxy 设置中下载。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "使用者拒絕了此連線的 MCP 存取" + "value" : "找不到 cloud-sql-proxy。可用 `brew install cloud-sql-proxy` 安裝,或在 Cloud SQL Auth Proxy 設定中下載。" } } } }, - "User or role name" : { - - }, - "User Sessions" : { + "cloudflared failed to start." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사용자 세션" + "value" : "cloudflared를 시작하지 못했습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kullanıcı Oturumları" + "value" : "cloudflared başlatılamadı." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phiên người dùng" + "value" : "cloudflared không khởi động được." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "用户会话" + "value" : "cloudflared启动失败。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "使用者工作階段" + "value" : "cloudflared 啟動失敗。" } } } }, - "User that ran it" : { - - }, - "User-installed" : { + "cloudflared failed to start: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사용자 설치" + "value" : "cloudflared를 시작하지 못했습니다: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "User-installed" + "value" : "cloudflared başlatılamadı: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Người dùng cài đặt" + "value" : "cloudflared không khởi động được: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "用户安装" + "value" : "cloudflared启动失败:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "使用者安裝" + "value" : "cloudflared 啟動失敗:%@" } } } }, - "User: %@" : { + "cloudflared not found. Install it with `brew install cloudflared`, or choose the binary above." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사용자: %@" + "value" : "cloudflared를 찾을 수 없습니다. `brew install cloudflared`로 설치하거나 위에서 바이너리를 선택하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kullanıcı: %@" + "value" : "cloudflared bulunamadı. `brew install cloudflared` ile yükleyin veya yukarıdan ikili dosyayı seçin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Người dùng: %@" + "value" : "Không tìm thấy cloudflared. Cài đặt bằng `brew install cloudflared`, hoặc chọn tệp thực thi ở trên." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "用户:%@" + "value" : "未找到cloudflared。请使用`brew install cloudflared`安装,或在上方选择其二进制文件。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "使用者:%@" + "value" : "找不到 cloudflared。請使用 `brew install cloudflared` 安裝,或在上方選擇其二進位檔。" } } } }, - "username" : { + "cloudflared was not found. Install it with `brew install cloudflared`, or set its path in the connection's Cloudflare Tunnel settings." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사용자 이름" + "value" : "cloudflared를 찾을 수 없습니다. `brew install cloudflared`로 설치하거나 연결의 Cloudflare Tunnel 설정에서 경로를 지정하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "username" + "value" : "cloudflared bulunamadı. `brew install cloudflared` ile yükleyin veya bağlantının Cloudflare Tüneli ayarlarında yolunu belirtin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "username" + "value" : "Không tìm thấy cloudflared. Cài đặt bằng `brew install cloudflared`, hoặc đặt đường dẫn trong cài đặt Cloudflare Tunnel của kết nối." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "username" + "value" : "未找到cloudflared。请使用`brew install cloudflared`安装,或在该连接的Cloudflare隧道设置中设置其路径。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "username" + "value" : "找不到 cloudflared。請使用 `brew install cloudflared` 安裝,或在該連線的 Cloudflare 隧道設定中設定其路徑。" } } } }, - "Username" : { + "cloudflared was not found. Set its path below first." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사용자 이름" + "value" : "cloudflared를 찾을 수 없습니다. 먼저 아래에서 경로를 설정하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kullanıcı adı" + "value" : "cloudflared bulunamadı. Önce aşağıda yolunu belirtin." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tên người dùng" + "value" : "Không tìm thấy cloudflared. Hãy đặt đường dẫn bên dưới trước." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "用户名" + "value" : "未找到cloudflared。请先在下方设置其路径。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "使用者名稱" + "value" : "找不到 cloudflared。請先在下方設定其路徑。" } } } }, - "Users & Roles" : { + "collapse" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사용자 및 역할" + "value" : "접기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kullanıcılar ve Roller" + "value" : "daralt" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Người dùng và vai trò" + "value" : "thu gọn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "用户与角色" + "value" : "收起" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "使用者與角色" + "value" : "收合" } } } }, - "Users and roles, sorted by name" : { - - }, - "Uses this Mac's Application Default Credentials. Run `gcloud auth application-default login` first, or set GOOGLE_APPLICATION_CREDENTIALS." : { + "connected" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 Mac의 Application Default Credentials를 사용합니다. 먼저 `gcloud auth application-default login`을 실행하거나 GOOGLE_APPLICATION_CREDENTIALS를 설정하십시오." + "value" : "연결됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu Mac'teki Application Default Credentials'ı kullanır. Önce `gcloud auth application-default login` çalıştırın veya GOOGLE_APPLICATION_CREDENTIALS ayarlayın." + "value" : "bağlı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Dùng Application Default Credentials của máy Mac này. Hãy chạy `gcloud auth application-default login` trước, hoặc đặt GOOGLE_APPLICATION_CREDENTIALS." + "value" : "đã kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "使用这台 Mac 的 Application Default Credentials。请先运行 `gcloud auth application-default login`,或设置 GOOGLE_APPLICATION_CREDENTIALS。" + "value" : "已连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "使用這台 Mac 的 Application Default Credentials。請先執行 `gcloud auth application-default login`,或設定 GOOGLE_APPLICATION_CREDENTIALS。" + "value" : "已連線" } } } }, - "using %@" : { + "connecting" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "%@ 사용 중" + "value" : "연결 중" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ kullanılıyor" + "value" : "bağlanıyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "đang dùng %@" + "value" : "đang kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "使用 %@" + "value" : "正在连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "使用 %@" + "value" : "正在連線" } } } }, - "UTC_TIMESTAMP()" : { - "extractionState" : "stale", + "connection failed" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "UTC_TIMESTAMP()" + "value" : "연결 실패" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "UTC_TIMESTAMP()" + "value" : "bağlantı başarısız" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "UTC_TIMESTAMP()" + "value" : "kết nối thất bại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "UTC_TIMESTAMP()" + "value" : "连接失败" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "UTC_TIMESTAMP()" + "value" : "連線失敗" } } } }, - "UUID" : { + "contains" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "UUID" + "value" : "포함" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "UUID" + "value" : "içerir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "UUID" + "value" : "chứa" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "UUID" + "value" : "包含" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "UUID" + "value" : "包含" } } } }, - "UUID of the active connection" : { + "current" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "활성 연결의 UUID" + "value" : "현재" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Etkin bağlantının UUID'si" + "value" : "current" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "UUID của kết nối đang hoạt động" + "value" : "hiện tại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "活动连接的 UUID" + "value" : "当前" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "使用中連線的 UUID" + "value" : "目前" } } } }, - "UUID of the connection" : { + "database %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결의 UUID" + "value" : "데이터베이스 %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantının UUID'si" + "value" : "veritabanı %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "UUID của kết nối" + "value" : "cơ sở dữ liệu %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "连接的 UUID" + "value" : "数据库 %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "連線的 UUID" + "value" : "資料庫 %@" } } } }, - "UUID of the connection to disconnect" : { + "database_name" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결을 해제할 연결의 UUID" + "value" : "database_name" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantısı kesilecek bağlantının UUID'si" + "value" : "database_name" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "UUID của kết nối cần ngắt" + "value" : "database_name" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "要断开的连接的 UUID" + "value" : "database_name" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "要中斷的連線的 UUID" + "value" : "database_name" } } } }, - "UUID of the saved connection" : { - "extractionState" : "stale", + "db %d" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "저장된 연결의 UUID" + "value" : "db %d" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kaydedilmiş bağlantının UUID'si" + "value" : "db %d" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "UUID của kết nối đã lưu" + "value" : "db %d" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已保存连接的 UUID" + "value" : "db %d" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已儲存連線的 UUID" + "value" : "db %d" } } } }, - "v%@" : { + "disabled" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "v%@" + "value" : "비활성화됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "v%@" + "value" : "devre dışı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "v%@" + "value" : "đã tắt" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "v%@" + "value" : "已禁用" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "v%@" + "value" : "已停用" } } } }, - "v%@ · %@" : { + "disconnected" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "v%1$@ · %2$@" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "v%1$@ · %2$@" + "value" : "연결 해제됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "v%@ · %@" + "value" : "bağlantı kesildi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "v%@ · %@" + "value" : "đã ngắt kết nối" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "v%@ · %@" + "value" : "已断开连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "v%1$@ · %2$@" + "value" : "已中斷連線" } } } }, - "v%@ available" : { + "does not equal" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "v%@ 사용 가능" + "value" : "같지 않음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "v%@ mevcut" + "value" : "eşit değil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã có v%@" + "value" : "không bằng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "v%@ 可用" + "value" : "不等于" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "v%@ 可用" + "value" : "不等於" } } } }, - "v%@ ready to activate" : { + "duplicate" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "v%@ 활성화 준비됨" + "value" : "복제" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "v%@ etkinleştirilmeye hazır" + "value" : "kopya" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "v%@ sẵn sàng kích hoạt" + "value" : "bản sao" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "v%@ 准备就绪,可激活" + "value" : "副本" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "v%@ 已就緒,可啟用" + "value" : "副本" } } } }, - "v%@+" : { + "e.g., Claude Code on VPS" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "v%@+" + "value" : "예: VPS의 Claude Code" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "v%@+" + "value" : "örn. VPS üzerinde Claude Code" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "v%@+" + "value" : "ví dụ: Claude Code trên VPS" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "v%@+" + "value" : "例如,VPS 上的 Claude Code" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "v%@+" + "value" : "例如:VPS 上的 Claude Code" } } } }, - "Validation Failed" : { + "encoding: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "유효성 검사 실패" + "value" : "인코딩: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Doğrulama Başarısız" + "value" : "kodlama: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xác thực thất bại" + "value" : "bảng mã: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "验证失败" + "value" : "编码:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "驗證失敗" + "value" : "編碼:%@" } } } }, - "Value" : { + "ends with" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "값" + "value" : "다음으로 끝남" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Değer" + "value" : "bununla biter" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giá trị" + "value" : "kết thúc bằng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "值" + "value" : "以...结尾" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "值" + "value" : "結尾為" } } } }, - "Value as supplied" : { - - }, - "Value escaped for this engine" : { - - }, - "Value excluded from query" : { - "extractionState" : "stale", + "equals" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쿼리에서 제외된 값" + "value" : "같음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sorgudan hariç tutulan değer" + "value" : "eşittir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giá trị bị loại khỏi truy vấn" + "value" : "bằng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "从查询中排除的值" + "value" : "等于" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已從查詢中排除的值" + "value" : "等於" } } } }, - "Value is not in the declared enum." : { + "expand" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "선언된 enum에 포함되지 않은 값입니다." + "value" : "펼치기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Değer, bildirilen enum değerleri arasında değil." + "value" : "genişlet" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giá trị không nằm trong enum đã khai báo." + "value" : "mở rộng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "该值不在声明的枚举中。" + "value" : "展开" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "該值不在宣告的列舉中。" + "value" : "展開" } } } }, - "Value is not in the declared set." : { + "export" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "선언된 집합에 포함되지 않은 값입니다." + "value" : "내보내기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Değer, bildirilen küme içinde değil." + "value" : "dışa aktar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giá trị không nằm trong tập đã khai báo." + "value" : "xuất" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "该值不在声明的集合中。" + "value" : "导出" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "該值不在宣告的集合中。" + "value" : "匯出" } } } }, - "Value is required" : { + "false" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "값이 필요합니다" + "value" : "false" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Değer gereklidir" + "value" : "false" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giá trị là bắt buộc" + "value" : "false" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "值为必填项" + "value" : "false" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "值為必填" + "value" : "false" } } } }, - "Value kind differs" : { - - }, - "Value the operator compares against" : { - - }, - "Value Too Large" : { + "favorite" : { + "comment" : "A label indicating that a table is marked as a favorite.", + "isCommentAutoGenerated" : true, "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "값이 너무 큼" + "value" : "즐겨찾기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Değer Çok Büyük" + "value" : "sık kullanılan" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giá trị quá lớn" + "value" : "yêu thích" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "值太大" + "value" : "收藏" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "值太大" + "value" : "我的最愛" } } } }, - "Value too large to parse" : { + "global" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "구문 분석하기에 값이 너무 큽니다" + "value" : "전역" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Değer ayrıştırılamayacak kadar büyük" + "value" : "genel" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giá trị quá lớn để phân tích" + "value" : "toàn cục" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "值太大,无法解析" + "value" : "全局" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "值太大,無法解析" + "value" : "全域" } } } }, - "Values from %d loaded rows" : { + "greater or equal" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "불러온 행 %d개의 값" + "value" : "크거나 같음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yüklenen %d satırdan gelen değerler" + "value" : "büyük veya eşit" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giá trị từ %d dòng đã tải" + "value" : "lớn hơn hoặc bằng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "来自已加载的 %d 行的值" + "value" : "大于或等于" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "來自已載入的 %d 列的值" + "value" : "大於或等於" } } } }, - "Values the context accepts" : { - - }, - "Variant id" : { - - }, - "VERBOSE (print progress)" : { + "greater than" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "VERBOSE (진행 상황 출력)" + "value" : "보다 큼" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "VERBOSE (ilerlemeyi yazdır)" + "value" : "büyüktür" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "VERBOSE (in tiến trình)" + "value" : "lớn hơn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "VERBOSE(打印进度)" + "value" : "大于" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "VERBOSE(輸出進度)" + "value" : "大於" } } } }, - "Verification Code Rejected" : { - "extractionState" : "stale", + "gzip executable not found" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "인증 코드 거부됨" + "value" : "gzip 실행 파일을 찾을 수 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Doğrulama Kodu Reddedildi" + "value" : "gzip çalıştırılabilir dosyası bulunamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mã xác minh bị từ chối" + "value" : "Không tìm thấy chương trình gzip" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "验证码被拒绝" + "value" : "未找到 gzip 可执行文件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "驗證碼被拒絕" + "value" : "找不到 gzip 執行檔" } } } }, - "Verification code rejected. Get a new code from your authenticator app and try again." : { + "history entries" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "인증 코드가 거부되었습니다. 인증 앱에서 새 코드를 받아 다시 시도하십시오." + "value" : "기록 항목" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Doğrulama kodu reddedildi. Kimlik doğrulayıcı uygulamanızdan yeni bir kod alın ve yeniden deneyin." + "value" : "history entries" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mã xác minh bị từ chối. Lấy mã mới từ ứng dụng xác thực và thử lại." + "value" : "mục lịch sử" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "验证码被拒绝。请从验证器应用获取新验证码后重试。" + "value" : "条历史记录" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "驗證碼被拒絕。請從你的驗證器應用程式取得新的驗證碼後再試一次。" + "value" : "筆歷程記錄" } } } }, - "Verification Code Required" : { + "history entry" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "인증 코드 필요" + "value" : "기록 항목" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Doğrulama Kodu Gerekli" + "value" : "history entry" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cần mã xác minh" + "value" : "mục lịch sử" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "需要验证码" + "value" : "条历史记录" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "需要驗證碼" + "value" : "筆歷程記錄" } } } }, - "Verified" : { + "hostname:%lld" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "확인됨" + "value" : "hostname:%lld" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Verified" + "value" : "hostname:%lld" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã xác minh" + "value" : "hostname:%lld" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已验证" + "value" : "hostname:%lld" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已驗證" + "value" : "hostname:%lld" } } } }, - "Verified by TablePro" : { - "extractionState" : "stale", + "iCloud Connected" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro에서 확인됨" + "value" : "iCloud 연결됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Verified by TablePro" + "value" : "iCloud Bağlı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đã xác minh bởi TablePro" + "value" : "Đã kết nối iCloud" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已通过 TablePro 验证" + "value" : "iCloud 已连接" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "已通過 TablePro 驗證" + "value" : "iCloud 已連線" } } } }, - "Verify CA" : { + "iCloud Sync" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "CA 확인" + "value" : "iCloud 동기화" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "CA Doğrula" + "value" : "iCloud Eşitlemesi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xác minh CA" + "value" : "Đồng bộ iCloud" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "验证 CA" + "value" : "iCloud 同步" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "驗證 CA" + "value" : "iCloud 同步" } } } }, - "Verify certificate and hostname" : { + "iCloud Sync is active" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "인증서 및 호스트 이름 확인" + "value" : "iCloud 동기화가 활성화됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sertifikayı ve sunucu adını doğrula" + "value" : "iCloud Eşitlemesi etkin" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xác minh chứng chỉ và tên máy chủ" + "value" : "Đồng bộ iCloud đang hoạt động" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "验证证书和主机名" + "value" : "iCloud 同步已启用" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "驗證憑證與主機名稱" + "value" : "iCloud 同步已啟用" } } } }, - "Verify Identity" : { + "iCloud Sync:" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "신원 확인" + "value" : "iCloud 동기화:" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kimliği Doğrula" + "value" : "iCloud Eşitlemesi:" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xác minh danh tính" + "value" : "Đồng bộ iCloud:" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "验证身份" + "value" : "iCloud 同步:" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "驗證身分" + "value" : "iCloud 同步:" } } } }, - "Verify server certificate" : { + "iCloud account is not available. Sign in to iCloud in System Settings." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "서버 인증서 확인" + "value" : "iCloud 계정을 사용할 수 없습니다. 시스템 설정에서 iCloud에 로그인하십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sunucu sertifikasını doğrula" + "value" : "iCloud hesabı kullanılamıyor. Sistem Ayarları'ndan iCloud'a giriş yapın." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xác minh chứng chỉ máy chủ" + "value" : "Tài khoản iCloud không khả dụng. Đăng nhập iCloud trong Cài đặt hệ thống." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "验证服务器证书" + "value" : "iCloud 账户不可用。请在系统设置中登录 iCloud。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "驗證伺服器憑證" + "value" : "iCloud 帳號無法使用。請在「系統設定」中登入 iCloud。" } } } }, - "Verify:" : { + "iCloud rejected %d change(s). They stay on this device and will retry: %@" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "iCloud rejected %1$d change(s). They stay on this device and will retry: %2$@" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "확인:" + "value" : "iCloud에서 변경 사항 %d개를 거부했습니다. 변경 사항은 이 기기에 유지되며 다시 시도됩니다: %@" + } + } + } + }, + "iCloud server error: %@" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "iCloud 서버 오류: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Doğrula:" + "value" : "iCloud sunucu hatası: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xác nhận:" + "value" : "Lỗi máy chủ iCloud: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "确认:" + "value" : "iCloud 服务器错误:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "確認:" + "value" : "iCloud 伺服器錯誤:%@" } } } }, - "Version" : { + "iCloud storage is full. Free up space in iCloud and try again." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "버전" + "value" : "iCloud 저장 공간이 가득 찼습니다. iCloud에서 공간을 확보한 후 다시 시도하십시오." + } + } + } + }, + "iCloud storage is full. Free up space or reduce the history sync limit." : { + "extractionState" : "stale", + "localizations" : { + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "iCloud 저장 공간이 가득 찼습니다. 공간을 확보하거나 기록 동기화 제한을 줄이십시오." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sürüm" + "value" : "iCloud storage is full. Free up space or reduce the history sync limit." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phiên bản" + "value" : "Bộ nhớ iCloud đã đầy. Giải phóng dung lượng hoặc giảm giới hạn đồng bộ lịch sử." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "版本" + "value" : "iCloud 储存空间已满。请释放空间或减少历史记录同步上限。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "版本" + "value" : "iCloud 儲存空間已滿。請釋出空間或降低歷程記錄同步上限。" } } } }, - "Version %@" : { + "in list" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "버전 %@" + "value" : "목록에 있음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sürüm %@" + "value" : "listede" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phiên bản %@" + "value" : "trong danh sách" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "版本 %@" + "value" : "在列表中" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "版本 %@" + "value" : "在清單中" } } } }, - "Version %@ (Build %@)" : { - "extractionState" : "stale", + "is NULL" : { "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Version %1$@ (Build %2$@)" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "버전 %1$@ (빌드 %2$@)" + "value" : "NULL임" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Version %@ (Build %@)" + "value" : "is NULL" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phiên bản %1$@ (Bản dựng %2$@)" + "value" : "là NULL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "版本 %@(构建 %@)" + "value" : "为 NULL" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "版本 %1$@(組建 %2$@)" + "value" : "為 NULL" } } } }, - "Version:" : { - "extractionState" : "stale", + "is empty" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "버전:" + "value" : "비어 있음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Version:" + "value" : "boş" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phiên bản:" + "value" : "trống" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "版本:" + "value" : "为空" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "版本:" + "value" : "為空" } } } }, - "via %@" : { + "is not NULL" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "경유: %@" + "value" : "NULL이 아님" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "%@ aracılığıyla" + "value" : "is not NULL" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "qua %@" + "value" : "không phải NULL" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "通过 %@" + "value" : "不为 NULL" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "透過 %@" + "value" : "不為 NULL" } } } }, - "View" : { + "is not empty" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "보기" + "value" : "비어 있지 않음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Görünüm" + "value" : "boş değil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xem" + "value" : "không trống" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "视图" + "value" : "不为空" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "檢視" + "value" : "不為空" } } } }, - "View Account" : { - - }, - "View Activity…" : { + "keyword: %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "활동 보기…" + "value" : "키워드: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Etkinliği Görüntüle…" + "value" : "anahtar sözcük: %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xem hoạt động…" + "value" : "từ khoá: %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "查看活动…" + "value" : "关键字:%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "檢視活動…" + "value" : "關鍵字:%@" } } } }, - "View body" : { - - }, - "View ER Diagram" : { + "less or equal" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "ER 다이어그램 보기" + "value" : "작거나 같음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "ER Diyagramını Görüntüle" + "value" : "küçük veya eşit" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xem sơ đồ ER" + "value" : "nhỏ hơn hoặc bằng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "查看 ER 图" + "value" : "小于或等于" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "檢視 ER 圖" + "value" : "小於或等於" } } } }, - "View Mode" : { + "less than" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "보기 모드" + "value" : "보다 작음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Görünüm Modu" + "value" : "küçüktür" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chế độ xem" + "value" : "nhỏ hơn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "视图模式" + "value" : "小于" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "檢視模式" + "value" : "小於" } } } }, - "View name" : { - - }, - "View on GitHub" : { - "extractionState" : "stale", + "linked file" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "GitHub에서 보기" + "value" : "연결된 파일" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "GitHub'da Görüntüle" + "value" : "bağlı dosya" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Xem trên GitHub" + "value" : "tệp liên kết" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "在 GitHub 上查看" + "value" : "链接的文件" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "在 GitHub 上檢視" + "value" : "已連結的檔案" } } } }, - "View Options" : { + "localhost" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "보기 옵션" + "value" : "localhost" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Görünüm Seçenekleri" + "value" : "localhost" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tuỳ chọn hiển thị" + "value" : "localhost" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "显示选项" + "value" : "localhost" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "顯示選項" + "value" : "localhost" } } } }, - "View that was read" : { - - }, - "View: %@" : { - "extractionState" : "stale", + "macOS will ask for your login password" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "보기: %@" + "value" : "macOS에서 로그인 암호를 요청합니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "View: %@" + "value" : "macOS giriş parolanızı isteyecek" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chế độ xem: %@" + "value" : "macOS sẽ hỏi mật khẩu đăng nhập của bạn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "视图:%@" + "value" : "macOS 将要求输入您的登录密码" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "檢視表:%@" + "value" : "macOS 會要求你輸入登入密碼" } } } }, - "Views" : { + "matches regex" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "뷰" + "value" : "정규식과 일치" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Görünümler" + "value" : "regex ile eşleşir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Views" + "value" : "khớp regex" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "视图" + "value" : "匹配正则" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "檢視表" + "value" : "符合正規表示式" } } } }, - "Vim mode" : { + "max %@" : { + "comment" : "Longest single run, %@ is a duration", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Vim 모드" + "value" : "최댓값 %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Vim modu" + "value" : "maks. %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chế độ Vim" + "value" : "tối đa %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Vim 模式" + "value" : "最长 %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Vim 模式" + "value" : "最長 %@" } } } }, - "Waiting for your password" : { + "name" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "암호 입력 대기 중" + "value" : "이름" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Parolanız bekleniyor" + "value" : "ad" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Đang chờ mật khẩu của bạn" + "value" : "tên" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "正在等待你的密码" + "value" : "名称" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "正在等待你的密碼" + "value" : "名稱" } } } }, - "Warehouse" : { + "not contains" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "웨어하우스" + "value" : "포함하지 않음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Warehouse" + "value" : "içermez" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Warehouse" + "value" : "không chứa" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "仓库" + "value" : "不包含" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "倉儲" + "value" : "不包含" } } } }, - "Warning" : { + "not equals" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "경고" + "value" : "같지 않음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Uyarı" + "value" : "eşit değil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cảnh báo" + "value" : "không bằng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "警告" + "value" : "不等于" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "警告" + "value" : "不等於" } } } }, - "WARNING: Failed to re-enable foreign key checks: %@. Please manually verify FK constraints are enabled." : { - "extractionState" : "stale", + "not in list" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "경고: 외래 키 검사를 다시 활성화하지 못했습니다: %@. FK 제약 조건이 활성화되어 있는지 직접 확인하십시오." + "value" : "목록에 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "WARNING: Failed to re-enable foreign key checks: %@. Please manually verify FK constraints are enabled." + "value" : "listede değil" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "CẢNH BÁO: Bật lại kiểm tra khóa ngoại thất bại: %@. Vui lòng kiểm tra thủ công rằng ràng buộc FK đã được bật." + "value" : "không trong danh sách" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "警告:重新启用外键检查失败:%@。请手动验证外键约束已启用。" + "value" : "不在列表中" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "警告:重新啟用外鍵檢查失敗:%@。請手動確認外鍵約束已啟用。" + "value" : "不在清單中" } } } }, - "WARNING: The host key for '%@' has changed!\n\nThis could mean someone is doing something malicious, or the server was reinstalled.\n\nPrevious fingerprint: %@\nCurrent fingerprint: %@" : { + "on %@" : { + "comment" : "A sentence fragment describing the table on which the operation is performed.", + "isCommentAutoGenerated" : true, "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "WARNING: The host key for '%1$@' has changed!\n\nThis could mean someone is doing something malicious, or the server was reinstalled.\n\nPrevious fingerprint: %2$@\nCurrent fingerprint: %3$@" - } - }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "경고: '%1$@'의 호스트 키가 변경되었습니다!\n\n누군가 악의적인 작업을 시도하고 있거나 서버가 재설치되었을 수 있습니다.\n\n이전 지문: %2$@\n현재 지문: %3$@" + "value" : "%@에서" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "UYARI: '%@' sunucusunun anahtarı değişti!\n\nBu, birinin kötü niyetli bir şey yaptığı anlamına gelebilir veya sunucu yeniden kurulmuş olabilir.\n\nÖnceki parmak izi: %@\nGeçerli parmak izi: %@" + "value" : "%@ üzerinde" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "CẢNH BÁO: Khóa máy chủ của '%@' đã thay đổi!\n\nĐiều này có thể do ai đó đang tấn công, hoặc máy chủ đã được cài đặt lại.\n\nVân tay trước: %@\nVân tay hiện tại: %@" + "value" : "trên %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "警告:主机 '%@' 的密钥已更改!\n\n这可能意味着有人进行恶意操作,或者服务器已被重新安装。\n\n之前的指纹:%@\n当前指纹:%@" + "value" : "在 %@ 上" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "警告:主機 '%1$@' 的主機金鑰已變更!\n\n這可能表示有人正進行惡意操作,或伺服器已重新安裝。\n\n先前的指紋:%2$@\n目前的指紋:%3$@" + "value" : "在 %@ 上" } } } }, - "Warnings" : { - - }, - "Watch shared folders for connection files." : { + "pages" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "공유 폴더에서 연결 파일을 감시합니다." + "value" : "페이지" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Paylaşılan klasörleri bağlantı dosyaları için izleyin." + "value" : "sayfa" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Theo dõi thư mục chia sẻ để tìm tệp kết nối." + "value" : "trang" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "监视共享文件夹中的连接文件。" + "value" : "页" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "監看共用資料夾中的連線檔案。" + "value" : "頁" } } } }, - "Watched folders are scanned for .tablepro files. Connections appear read only in the sidebar." : { + "password" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "감시 중인 폴더에서 .tablepro 파일을 검색합니다. 연결은 사이드바에 읽기 전용으로 표시됩니다." + "value" : "암호" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İzlenen klasörler .tablepro dosyaları için taranır. Bağlantılar Sidebar'da salt okunur olarak görünür." + "value" : "şifre" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Các thư mục theo dõi được quét để tìm file .tablepro. Kết nối hiển thị chỉ đọc trong thanh bên." + "value" : "mật khẩu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "会扫描受监视文件夹中的 .tablepro 文件。这些连接在侧边栏中以只读方式显示。" + "value" : "密码" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "受監視的資料夾會被掃描以尋找 .tablepro 檔案。這些連線會在側邊欄中以唯讀方式顯示。" + "value" : "密碼" } } } }, - "Watched folders are scanned for .tablepro files. Connections appear read-only in the sidebar." : { - "extractionState" : "stale", + "pending delete" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "감시 중인 폴더에서 .tablepro 파일을 검색합니다. 연결은 사이드바에 읽기 전용으로 표시됩니다." + "value" : "삭제 대기 중" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İzlenen klasörler .tablepro dosyaları için taranır. Bağlantılar kenar çubuğunda salt okunur olarak görünür." + "value" : "silinmeyi bekliyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Các thư mục được theo dõi sẽ quét tệp .tablepro. Kết nối hiển thị chỉ đọc trên thanh bên." + "value" : "chờ xóa" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "监视的文件夹会扫描 .tablepro 文件。连接在侧边栏中以只读方式显示。" + "value" : "待删除" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "受監看的資料夾會掃描 .tablepro 檔案。連線會在側邊欄中以唯讀方式顯示。" + "value" : "待刪除" } } } }, - "Website" : { - "extractionState" : "stale", + "pending truncate" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "웹사이트" + "value" : "TRUNCATE 대기 중" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Website" + "value" : "boşaltılmayı bekliyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trang web" + "value" : "chờ truncate" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "网站" + "value" : "待清空" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "網站" + "value" : "待清空" } } } }, - "Welcome to TablePro" : { + "postgresql://user:password@host:5432/database" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro에 오신 것을 환영합니다" + "value" : "postgresql://user:password@host:5432/database" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro'ya Hoş Geldiniz" + "value" : "postgresql://user:password@host:5432/database" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chào mừng đến với TablePro" + "value" : "postgresql://user:password@host:5432/database" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "欢迎使用 TablePro" + "value" : "postgresql://user:password@host:5432/database" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "歡迎使用 TablePro" + "value" : "postgresql://user:password@host:5432/database" } } } }, - "What a function returns, absent for a procedure" : { - - }, - "What is switched on here is ignored when two structures are compared. These drift between environments by design." : { - - }, - "What matched" : { - - }, - "What ran against %@" : { - - }, - "What ran it" : { - - }, - "What to Compare" : { - - }, - "What to compare, and how" : { - - }, - "What to do with the transaction" : { - - }, - "What to drop" : { - - }, - "What will run against %@" : { - - }, - "What you can do" : { + "private (%@)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "사용 가능한 기능" + "value" : "비공개(%@)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Neler yapabilirsiniz" + "value" : "özel (%@)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bạn có thể làm gì" + "value" : "private (%@)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "您可以做什么" + "value" : "私有(%@)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "你可以做什麼" + "value" : "私有(%@)" } } } }, - "When enabled, clicking a new table replaces the current clean table tab instead of opening a new tab" : { - "extractionState" : "stale", + "protected" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "활성화하면 새 테이블을 클릭할 때 새 탭을 여는 대신 현재의 변경 사항 없는 테이블 탭을 대체합니다" + "value" : "보호됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "When enabled, clicking a new table replaces the current clean table tab instead of opening a new tab" + "value" : "korumalı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khi bật, nhấp vào bảng mới sẽ thay thế tab bảng trống hiện tại thay vì mở tab mới" + "value" : "protected" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "启用后,点击新表将替换当前空白表标签页,而不是打开新标签页" + "value" : "受保护" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "啟用後,點按新的資料表會取代目前的乾淨資料表分頁,而不是開啟新分頁" + "value" : "受保護" } } } }, - "When enabled, clicking a table in the sidebar will replace the current tab if it has no unsaved changes and you haven't interacted with it (sorted, filtered, etc.)." : { - "extractionState" : "stale", + "ran %@×" : { + "comment" : "Run count in a detail line, %@ is a count", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "활성화하면 사이드바에서 테이블을 클릭할 때 현재 탭에 저장하지 않은 변경 사항이 없고 정렬이나 필터링 등의 작업을 하지 않은 경우 해당 탭을 대체합니다." + "value" : "실행 %@회" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "When enabled, clicking a table in the sidebar will replace the current tab if it has no unsaved changes and you haven't interacted with it (sorted, filtered, etc.)." + "value" : "%@ kez çalıştı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khi bật, nhấp vào bảng trong thanh bên sẽ thay thế tab hiện tại nếu không có thay đổi chưa lưu và bạn chưa tương tác với nó (sắp xếp, lọc, v.v.)." + "value" : "chạy %@ lần" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "启用后,点击侧边栏中的表将替换当前标签页(如果没有未保存的更改且您未与之交互过,如排序、筛选等)。" + "value" : "运行 %@ 次" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "啟用後,若目前分頁沒有未儲存的變更且你尚未與其互動(排序、篩選等),點按側邊欄中的資料表會取代目前的分頁。" + "value" : "執行 %@ 次" } } } }, - "When enabled, this favorite is visible in all connections" : { - "extractionState" : "stale", + "review" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "활성화하면 이 즐겨찾기가 모든 연결에 표시됩니다" + "value" : "검토" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "When enabled, this favorite is visible in all connections" + "value" : "incele" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khi bật, mục yêu thích này hiển thị trong tất cả kết nối" + "value" : "xem lại" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "启用后,此收藏在所有连接中可见" + "value" : "审查" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "啟用後,此我的最愛會在所有連線中顯示" + "value" : "審查" } } } }, - "When TablePro starts:" : { + "root" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro 시작 시:" + "value" : "root" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro başlarken:" + "value" : "root" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Khi TablePro khởi động:" + "value" : "root" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro 启动时:" + "value" : "root" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro 啟動時:" + "value" : "root" } } } }, - "WHERE clause" : { + "schema %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "WHERE 절" + "value" : "스키마 %@" } }, "tr" : { "stringUnit" : { - "state" : "translated", - "value" : "WHERE ifadesi" + "state" : "needs_review", + "value" : "şema %@" } }, "vi" : { "stringUnit" : { - "state" : "translated", - "value" : "Mệnh đề WHERE" + "state" : "needs_review", + "value" : "schema %@" } }, "zh-Hans" : { "stringUnit" : { - "state" : "translated", - "value" : "WHERE 子句" + "state" : "needs_review", + "value" : "架构 %@" } }, "zh-Hant" : { "stringUnit" : { - "state" : "translated", - "value" : "WHERE 子句" + "state" : "needs_review", + "value" : "綱要 %@" } } } }, - "WHERE clause..." : { - "extractionState" : "stale", + "seconds" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "WHERE 절..." + "value" : "초" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "WHERE clause..." + "value" : "saniye" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Mệnh đề WHERE..." + "value" : "giây" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "WHERE 子句..." + "value" : "秒" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "WHERE 子句..." + "value" : "秒" } } } }, - "Whether a session is open" : { - - }, - "Whether it can be killed" : { - - }, - "Whether it can log in" : { - - }, - "Whether it is set" : { - - }, - "Whether it succeeded" : { - - }, - "Whether its query can be cancelled" : { - - }, - "Whether row counts were fetched" : { - - }, - "Whether the column accepts NULL" : { - - }, - "Whether the column is generated" : { - - }, - "Whether the column is part of the primary key" : { - - }, - "Whether the count is an estimate" : { - - }, - "Whether the engine owns this database" : { - - }, - "Whether the index backs the primary key" : { - - }, - "Whether the index enforces uniqueness" : { - - }, - "Whether the limit clipped the matches" : { - - }, - "Whether the object is a view" : { - - }, - "Whether the row limit clipped any export" : { - - }, - "Whether the row limit clipped the result" : { - - }, - "Whether the session is open" : { - - }, - "Whether the tab is selected in its window" : { - - }, - "Whether the trigger is enabled" : { - - }, - "Whether this engine can create databases" : { - - }, - "Whether this engine has maintenance at all" : { - - }, - "Whether this engine has session contexts" : { - - }, - "Whether this export was clipped" : { - - }, - "Whether this is a role" : { - - }, - "Whitespace in text" : { - - }, - "Who the explanation is for: newcomer, analyst, or engineer" : { - + "source" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "원본", + "state" : "translated" + } + } + } }, - "Wide-Column" : { + "sqlite3 is included with macOS" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "와이드 컬럼" + "value" : "sqlite3는 macOS에 포함되어 있습니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Geniş Sütunlu" + "value" : "sqlite3 macOS ile birlikte gelir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Wide-Column" + "value" : "sqlite3 đã có sẵn trên macOS" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "宽列" + "value" : "sqlite3 已包含在 macOS 中" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "寬欄" + "value" : "sqlite3 已內建於 macOS" } } } }, - "Width" : { - "comment" : "Label for the width of a table.", - "isCommentAutoGenerated" : true, + "ssh.example.com" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "너비" + "value" : "ssh.example.com" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Genişlik" + "value" : "ssh.example.com" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Chiều rộng" + "value" : "ssh.example.com" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "宽度" + "value" : "ssh.example.com" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "寬度" + "value" : "ssh.example.com" } } } }, - "Will be changed" : { - - }, - "Will be created when you apply changes" : { + "starts with" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "변경 사항을 적용하면 생성됩니다" + "value" : "다음으로 시작" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Değişiklikleri uyguladığınızda oluşturulacak" + "value" : "ile başlar" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sẽ được tạo khi bạn áp dụng thay đổi" + "value" : "bắt đầu bằng" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "应用更改时将会创建" + "value" : "以...开头" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "套用變更時將會建立" + "value" : "開頭為" } } } }, - "Will be dropped when you apply changes" : { + "statement" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "변경 사항을 적용하면 삭제됩니다" + "value" : "문" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Değişiklikleri uyguladığınızda silinecek" + "value" : "statement" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Sẽ bị xoá khi bạn áp dụng thay đổi" + "value" : "câu lệnh" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "应用更改时将会删除" + "value" : "条语句" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "套用變更時將會刪除" + "value" : "陳述式" } } } }, - "Will not change" : { - - }, - "Will run" : { - - }, - "Window" : { + "statements" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "윈도우" + "value" : "문" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Pencere" + "value" : "statements" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Cửa sổ" + "value" : "câu lệnh" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "窗口" + "value" : "条语句" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "視窗" + "value" : "陳述式" } } } }, - "Window Background" : { + "switch %@" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "윈도우 배경" + "value" : "%@ 전환" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Pencere Arka Planı" + "value" : "%@ değiştir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nền cửa sổ" + "value" : "chuyển %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "窗口背景" + "value" : "切换 %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "視窗背景" + "value" : "切換 %@" } } } }, - "Window id, as reported by list_recent_tabs" : { - - }, - "Window id, stable across tools" : { - - }, - "Window that came forward" : { - - }, - "Windows Authentication needs the server's hostname, not an IP address. Kerberos service principals aren't registered against IP addresses." : { + "switch database" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Windows 인증에는 IP 주소가 아닌 서버의 호스트 이름이 필요합니다. Kerberos 서비스 주체는 IP 주소에 등록되지 않습니다." + "value" : "데이터베이스 전환" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Windows Authentication, IP adresini değil sunucunun ana bilgisayar adını ister. Kerberos servis principal'ları IP adreslerine kayıtlı değildir." + "value" : "veritabanı değiştir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Windows Authentication cần tên máy chủ, không phải địa chỉ IP. Các service principal của Kerberos không đăng ký theo địa chỉ IP." + "value" : "chuyển cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Windows 身份验证需要服务器的主机名,而不是 IP 地址。Kerberos 服务主体不会针对 IP 地址注册。" + "value" : "切换数据库" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Windows 驗證需要伺服器的主機名稱,而不是 IP 位址。Kerberos 服務主體不會針對 IP 位址註冊。" + "value" : "切換資料庫" } } } }, - "WITH GRANT OPTION" : { - - }, - "With Headers" : { + "switch schema" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "헤더 포함" + "value" : "스키마 전환" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Başlıklarla" + "value" : "şema değiştir" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Kèm tiêu đề" + "value" : "chuyển schema" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "含表头" + "value" : "切换 Schema" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "含標題列" + "value" : "切換綱要" } } } }, - "Word wrap" : { + "table_name" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "자동 줄 바꿈" + "value" : "table_name" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sözcük kaydırma" + "value" : "table_name" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tự động xuống dòng" + "value" : "table_name" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "自动换行" + "value" : "table_name" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "自動換行" + "value" : "table_name" } } } }, - "Wrap in transaction (BEGIN/COMMIT)" : { - "extractionState" : "stale", + "tablepro command" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "트랜잭션으로 감싸기(BEGIN/COMMIT)" + "value" : "tablepro 명령" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İşlem içine al (BEGIN/COMMIT)" + "value" : "tablepro komutu" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bọc trong giao dịch (BEGIN/COMMIT)" + "value" : "lệnh tablepro" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "包裹在事务中 (BEGIN/COMMIT)" + "value" : "tablepro 命令" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "包覆於交易中 (BEGIN/COMMIT)" + "value" : "tablepro 指令" } } } }, - "Write a migration and its rollback" : { - - }, - "Write a query that answers a question, using the real columns of the named tables" : { - + "target" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "대상", + "state" : "translated" + } + } + } }, - "Write Concern" : { - "extractionState" : "stale", + "the SOCKS proxy" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "쓰기 고려" + "value" : "SOCKS 프록시" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yazma Endişesi" + "value" : "SOCKS proxy" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Write Concern" + "value" : "SOCKS proxy" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Write Concern" + "value" : "SOCKS 代理" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Write Concern" + "value" : "SOCKS 代理" } } } }, - "Write operations are not permitted for this client" : { + "the target" : { + "localizations" : { + "ko" : { + "stringUnit" : { + "value" : "대상", + "state" : "translated" + } + } + } + }, + "to view data" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이 클라이언트에는 쓰기 작업이 허용되지 않습니다" + "value" : "데이터 보기" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bu istemci için yazma işlemlerine izin verilmiyor" + "value" : "veriyi görüntülemek için" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thao tác ghi không được phép với client này" + "value" : "để xem dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "此客户端不允许写入操作" + "value" : "以查看数据" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "此用戶端不允許寫入操作" + "value" : "以檢視資料" } } } }, - "Writing to a database needs the tools:write scope." : { - - }, - "X Axis" : { + "total %@" : { + "comment" : "Total duration, %@ is a duration", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "X축" + "value" : "합계 %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "X Ekseni" + "value" : "toplam %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trục X" + "value" : "tổng %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "X 轴" + "value" : "总计 %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "X 軸" + "value" : "總計 %@" } } } }, - "xAI did not return an access token." : { + "true" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "xAI에서 접근 토큰을 반환하지 않았습니다." + "value" : "true" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "xAI bir erişim belirteci döndürmedi." + "value" : "true" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "xAI không trả về access token." + "value" : "true" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "xAI 未返回访问令牌。" + "value" : "true" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "xAI 未回傳存取權杖。" + "value" : "true" } } } }, - "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX" : { + "truncated" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX" + "value" : "잘림" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX" + "value" : "kısaltıldı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX" + "value" : "đã cắt ngắn" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX" + "value" : "已截断" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX" + "value" : "已截斷" } } } }, - "Y Axis" : { + "unknown" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Y축" + "value" : "알 수 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Y Ekseni" + "value" : "bilinmiyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Trục Y" + "value" : "không rõ" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Y 轴" + "value" : "未知" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Y 軸" + "value" : "未知" } } } }, - "Yellow" : { + "username" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "노란색" + "value" : "사용자 이름" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sarı" + "value" : "username" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Vàng" + "value" : "username" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "黄色" + "value" : "username" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "黃色" + "value" : "username" } } } }, - "Yesterday" : { + "using %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "어제" + "value" : "%@ 사용 중" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Dün" + "value" : "%@ kullanılıyor" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Hôm qua" + "value" : "đang dùng %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "昨天" + "value" : "使用 %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "昨天" + "value" : "使用 %@" } } } }, - "You" : { + "v%@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "나" + "value" : "v%@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Siz" + "value" : "v%@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bạn" + "value" : "v%@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "你" + "value" : "v%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "你" + "value" : "v%@" } } } }, - "You can re-enable this in Settings" : { - "extractionState" : "stale", + "v%@ available" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "설정에서 다시 활성화할 수 있습니다" + "value" : "v%@ 사용 가능" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bunu Ayarlar'dan tekrar etkinleştirebilirsiniz" + "value" : "v%@ mevcut" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bạn có thể bật lại trong Cài đặt" + "value" : "Đã có v%@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "您可以在设置中重新启用" + "value" : "v%@ 可用" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "你可以在「設定」中重新啟用" + "value" : "v%@ 可用" } } } }, - "You edit these inline in the grid and filter bar. Reset a table here to return it to defaults." : { - "extractionState" : "stale", + "v%@ ready to activate" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "그리드와 필터 막대에서 인라인으로 편집할 수 있습니다. 테이블을 기본값으로 되돌리려면 여기서 재설정하십시오." + "value" : "v%@ 활성화 준비됨" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bunları doğrudan tabloda ve filtre çubuğunda düzenlersiniz. Bir tabloyu varsayılana döndürmek için buradan sıfırlayın." + "value" : "v%@ etkinleştirilmeye hazır" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bạn chỉnh những mục này ngay trong lưới và thanh bộ lọc. Đặt lại một bảng ở đây để đưa nó về mặc định." + "value" : "v%@ sẵn sàng kích hoạt" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "你可以直接在数据网格和筛选栏中修改这些设置。在这里重置某个表即可恢复默认值。" + "value" : "v%@ 准备就绪,可激活" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "你可以直接在資料格與篩選列中修改這些設定。在這裡重設某個資料表即可回復預設值。" + "value" : "v%@ 已就緒,可啟用" } } } }, - "You have no saved queries to publish." : { + "v%@ · %@" : { "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "v%1$@ · %2$@" + } + }, "ko" : { "stringUnit" : { "state" : "translated", - "value" : "게시할 저장된 쿼리가 없습니다." + "value" : "v%1$@ · %2$@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yayınlanacak kayıtlı sorgunuz yok." + "value" : "v%@ · %@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bạn không có truy vấn đã lưu nào để xuất bản." + "value" : "v%@ · %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "你没有可发布的已保存查询。" + "value" : "v%@ · %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "你沒有可發佈的已儲存查詢。" + "value" : "v%1$@ · %2$@" } } } }, - "You have unsaved changes" : { + "v%@+" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "저장하지 않은 변경 사항이 있습니다" + "value" : "v%@+" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kaydedilmemiş değişiklikleriniz var" + "value" : "v%@+" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bạn có thay đổi chưa lưu" + "value" : "v%@+" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "您有未保存的更改" + "value" : "v%@+" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "你有未儲存的變更" + "value" : "v%@+" } } } }, - "You have unsaved changes to the table structure. Refreshing will discard these changes." : { + "via %@" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "테이블 구조에 저장하지 않은 변경 사항이 있습니다. 새로 고치면 변경 사항이 사라집니다." + "value" : "경유: %@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Tablo yapısında kaydedilmemiş değişiklikleriniz var. Yenileme bu değişiklikleri siler." + "value" : "%@ aracılığıyla" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bạn có thay đổi chưa lưu trong cấu trúc bảng. Làm mới sẽ hủy các thay đổi này." + "value" : "qua %@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "您有未保存的表结构更改。刷新将丢弃这些更改。" + "value" : "通过 %@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "你對資料表結構有未儲存的變更。重新整理會捨棄這些變更。" + "value" : "透過 %@" } } } }, - "You will be prompted for a verification code each time you connect." : { - "extractionState" : "stale", + "xAI did not return an access token." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "연결할 때마다 인증 코드를 입력해야 합니다." + "value" : "xAI에서 접근 토큰을 반환하지 않았습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Her bağlandığınızda doğrulama kodu istenecektir." + "value" : "xAI bir erişim belirteci döndürmedi." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bạn sẽ được yêu cầu nhập mã xác minh mỗi lần kết nối." + "value" : "xAI không trả về access token." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "每次连接时都会要求您输入验证码。" + "value" : "xAI 未返回访问令牌。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "每次連線時都會要求你輸入驗證碼。" + "value" : "xAI 未回傳存取權杖。" } } } }, - "You're all set!" : { + "~/.pgpass found — matching entry exists" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "모든 준비가 완료되었습니다!" + "value" : "~/.pgpass 발견 — 일치하는 항목 있음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Hazırsınız!" + "value" : "~/.pgpass bulundu — eşleşen giriş var" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Bạn đã sẵn sàng!" + "value" : "Tìm thấy ~/.pgpass — có entry khớp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "一切就绪!" + "value" : "~/.pgpass 已找到 - 存在匹配条目" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "一切就緒!" + "value" : "已找到 ~/.pgpass,存在相符的項目" } } } }, - "Your Changes" : { + "~/.pgpass found — no matching entry" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "변경 사항" + "value" : "~/.pgpass 발견 — 일치하는 항목 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Değişiklikleriniz" + "value" : "~/.pgpass bulundu — eşleşen giriş yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thay đổi của bạn" + "value" : "Tìm thấy ~/.pgpass — không có entry khớp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "你的更改" + "value" : "~/.pgpass 已找到 - 无匹配条目" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "你的變更" + "value" : "已找到 ~/.pgpass,但無相符的項目" } } } }, - "Your changes will be lost if you don't save them." : { + "~/.pgpass found, matching entry exists" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "저장하지 않으면 변경 사항이 사라집니다." + "value" : "~/.pgpass 발견, 일치하는 항목 있음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Kaydetmezseniz değişiklikleriniz kaybolacaktır." + "value" : "~/.pgpass bulundu, eşleşen kayıt var" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thay đổi của bạn sẽ bị mất nếu không lưu." + "value" : "Tìm thấy ~/.pgpass, có mục khớp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "如果不保存,您的更改将会丢失。" + "value" : "已找到~/.pgpass,存在匹配条目" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "若不儲存,你的變更將會遺失。" + "value" : "已找到 ~/.pgpass,存在相符的項目" } } } }, - "Your connections file was changed outside TablePro, so this connection's password source was not run. Open the connection and save it again to confirm the change." : { - "comment" : "Error message when the app is not trusted to access the keychain.", - "isCommentAutoGenerated" : true, + "~/.pgpass found, no matching entry" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "TablePro 외부에서 연결 파일이 변경되어 이 연결의 암호 소스를 실행하지 않았습니다. 연결을 열고 다시 저장하여 변경 사항을 확인하십시오." + "value" : "~/.pgpass 발견, 일치하는 항목 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Bağlantı dosyanız TablePro dışında değiştirildi, bu yüzden bu bağlantının parola kaynağı çalıştırılmadı. Değişikliği onaylamak için bağlantıyı açıp yeniden kaydedin." + "value" : "~/.pgpass bulundu, eşleşen kayıt yok" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Tệp kết nối của bạn đã bị thay đổi bên ngoài TablePro, nên nguồn mật khẩu của kết nối này không được chạy. Hãy mở kết nối và lưu lại để xác nhận thay đổi." + "value" : "Tìm thấy ~/.pgpass, không có mục khớp" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "你的连接文件在 TablePro 之外被修改过,因此没有运行此连接的密码来源。请打开该连接并重新保存以确认这次更改。" + "value" : "已找到~/.pgpass,无匹配条目" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "你的連線檔案在 TablePro 之外被修改過,因此沒有執行此連線的密碼來源。請開啟該連線並重新儲存以確認這次變更。" + "value" : "已找到 ~/.pgpass,沒有相符的項目" } } } }, - "Your database schema and query data will be sent to the AI provider for analysis. Allow for this connection?" : { + "~/.pgpass has incorrect permissions (needs chmod 0600)" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "분석을 위해 데이터베이스 스키마와 쿼리 데이터가 AI 제공업체로 전송됩니다. 이 연결에 대해 허용하시겠습니까?" + "value" : "~/.pgpass 권한이 올바르지 않음(chmod 0600 필요)" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Veritabanı şemanız ve sorgu verileriniz analiz için yapay zeka sağlayıcısına gönderilecek. Bu bağlantı için izin verilsin mi?" + "value" : "~/.pgpass yanlış izinlere sahip (chmod 0600 gerekli)" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Lược đồ cơ sở dữ liệu và dữ liệu truy vấn sẽ được gửi đến nhà cung cấp AI để phân tích. Cho phép kết nối này?" + "value" : "~/.pgpass có quyền không đúng (cần chmod 0600)" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "您的数据库结构和查询数据将被发送给 AI 提供商进行分析。是否允许此连接?" + "value" : "~/.pgpass 权限不正确(需要 chmod 0600)" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "你的資料庫綱要與查詢資料將傳送給 AI 供應商進行分析。要允許此連線嗎?" + "value" : "~/.pgpass 權限不正確(需要 chmod 0600)" } } } }, - "Your executed queries will\nappear here for quick access." : { - "extractionState" : "stale", + "~/.pgpass not found" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "실행한 쿼리가 빠른 접근을 위해\n여기에 표시됩니다." + "value" : "~/.pgpass 파일을 찾을 수 없음" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Çalıştırdığınız sorgular\nhızlı erişim için burada görünecektir." + "value" : "~/.pgpass bulunamadı" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Các truy vấn đã thực thi sẽ\nxuất hiện ở đây để truy cập nhanh." + "value" : "Không tìm thấy ~/.pgpass" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "已执行的查询将\n显示在此处以便快速访问。" + "value" : "未找到 ~/.pgpass" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "你執行過的查詢將\n顯示於此處以便快速存取。" + "value" : "找不到 ~/.pgpass" } } } }, - "Your license has expired" : { + "~/.ssh/id_rsa" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "라이선스가 만료되었습니다" + "value" : "~/.ssh/id_rsa" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Lisansınızın süresi doldu" + "value" : "~/.ssh/id_rsa" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Giấy phép của bạn đã hết hạn" + "value" : "~/.ssh/id_rsa" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "您的许可证已过期" + "value" : "~/.ssh/id_rsa" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "你的授權已過期" + "value" : "~/.ssh/id_rsa" } } } }, - "Your prompts, schema, and query text reach Anthropic under your consumer plan and its privacy settings, not the API's commercial terms." : { + "© 2026 Ngo Quoc Dat.\n%@" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "프롬프트, 스키마 및 쿼리 텍스트는 API의 상업용 약관이 아닌 소비자 요금제와 해당 개인정보 보호 설정에 따라 Anthropic으로 전송됩니다." + "value" : "© 2026 Ngo Quoc Dat.\n%@" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "İstemleriniz, şemanız ve sorgu metniniz Anthropic'e API'nin ticari koşullarıyla değil, tüketici planınız ve onun gizlilik ayarları kapsamında ulaşır." + "value" : "© 2026 Ngo Quoc Dat.\n%@" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Câu lệnh, schema và nội dung truy vấn của bạn đến Anthropic theo gói người dùng và các thiết lập riêng tư của gói đó, không phải theo điều khoản thương mại của API." + "value" : "© 2026 Ngo Quoc Dat.\n%@" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "你的提示词、Schema 和查询文本按你的消费者套餐及其隐私设置发送到 Anthropic,而不是按 API 的商业条款。" + "value" : "© 2026 Ngo Quoc Dat.\n%@" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "你的提示詞、綱要和查詢文字會依你的消費者方案及其隱私設定傳送到 Anthropic,而不是依 API 的商業條款。" + "value" : "© 2026 Ngo Quoc Dat.\n%@" } } } }, - "Your subscription is governed by Anthropic's Consumer Terms and Usage Policy. Read them and decide whether this use fits. TablePro cannot grant rights under them." : { + "·" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "구독에는 Anthropic의 소비자 약관 및 사용 정책이 적용됩니다. 해당 내용을 읽고 이 사용 방식이 적합한지 판단하십시오. TablePro는 해당 약관에 따른 권리를 부여할 수 없습니다." + "value" : "·" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Aboneliğiniz Anthropic'in Tüketici Koşulları ve Kullanım Politikası'na tabidir. Bunları okuyun ve bu kullanımın uygun olup olmadığına karar verin. TablePro bu koşullar kapsamında size hak veremez." + "value" : "·" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Gói đăng ký của bạn chịu sự điều chỉnh của Điều khoản Người dùng và Chính sách Sử dụng của Anthropic. Hãy đọc và tự quyết định cách dùng này có phù hợp không. TablePro không thể cấp quyền theo các điều khoản đó." + "value" : "·" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "你的订阅受 Anthropic 的消费者条款和使用政策约束。请阅读这些条款,自行判断这种用法是否合适。TablePro 无法据此授予你任何权利。" + "value" : "·" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "你的訂閱受 Anthropic 的消費者條款與使用政策約束。請閱讀這些條款,自行判斷這種用法是否合適。TablePro 無法據此授予你任何權利。" + "value" : "·" } } } }, - "Your team can now see %d shared connections. Passwords were not included." : { + "—" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "이제 팀에서 공유 연결 %d개를 볼 수 있습니다. 암호는 포함되지 않았습니다." + "value" : "—" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Takımınız artık %d paylaşılan bağlantıyı görebiliyor. Parolalar dahil edilmedi." + "value" : "—" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhóm của bạn giờ có thể thấy %d kết nối được chia sẻ. Mật khẩu không được đưa vào." + "value" : "—" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "你的团队现在可以看到 %d 个共享连接。密码未被包含。" + "value" : "—" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "你的團隊現在可以看到 %d 個共享連線。密碼未包含在內。" + "value" : "—" } } } }, - "Your team will see the names and SQL of %d saved queries. This replaces what you previously published." : { + "“%@” owns database objects" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "팀에서 저장된 쿼리 %d개의 이름과 SQL을 볼 수 있습니다. 이전에 게시한 내용은 이 내용으로 대체됩니다." + "value" : "데이터베이스 객체의 소유자는 “%@”입니다" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Takımınız %d kayıtlı sorgunun adlarını ve SQL'ini görecek. Bu, daha önce yayınladıklarınızın yerini alır." + "value" : "“%@” veritabanı nesnelerinin sahibi" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Nhóm của bạn sẽ thấy tên và SQL của %d truy vấn đã lưu. Nội dung này thay thế những gì bạn đã xuất bản trước đó." + "value" : "“%@” đang sở hữu các đối tượng cơ sở dữ liệu" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "你的团队将看到 %d 条已保存查询的名称和 SQL。这会替换你之前发布的内容。" + "value" : "“%@” 拥有数据库对象" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "你的團隊將看到 %d 條已儲存查詢的名稱和 SQL。這會取代你先前發佈的內容。" + "value" : "「%@」擁有資料庫物件" } } } }, - "Zed" : { + "“%@” will be disconnected and any in-flight requests will be cancelled." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "Zed" + "value" : "“%@”의 연결이 해제되고 진행 중인 모든 요청이 취소됩니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Zed" + "value" : "\"%@\" bağlantısı kesilecek ve devam eden tüm istekler iptal edilecek." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Zed" + "value" : "“%@” sẽ bị ngắt kết nối và mọi yêu cầu đang xử lý sẽ bị hủy." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "Zed" + "value" : "“%@” 将被断开连接,所有进行中的请求将被取消。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "Zed" + "value" : "「%@」將會中斷連線,所有進行中的請求都會被取消。" } } } }, - "Zero Fill" : { - "extractionState" : "stale", + "“%@” will be permanently deleted. External clients using this token will lose access immediately." : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "0 채우기" + "value" : "“%@” 항목이 영구적으로 삭제됩니다. 이 토큰을 사용하는 외부 클라이언트는 즉시 접근 권한을 잃습니다." } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Sıfırla Doldur" + "value" : "\"%@\" kalıcı olarak silinecek. Bu token'ı kullanan harici istemciler erişimi anında kaybedecek." } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Điền số 0" + "value" : "“%@” sẽ bị xóa vĩnh viễn. Các client bên ngoài đang dùng token này sẽ mất quyền truy cập ngay lập tức." } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "零填充" + "value" : "“%@” 将被永久删除。使用此令牌的外部客户端将立即失去访问权限。" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "零填補" + "value" : "「%@」將會永久刪除。使用此權杖的外部用戶端將立即失去存取權限。" } } } }, - "Zoom" : { + "•" : { + "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "확대/축소" + "value" : "•" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yakınlaştır" + "value" : "•" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thu phóng" + "value" : "•" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "缩放" + "value" : "•" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "縮放" + "value" : "•" } } } }, - "Zoom in" : { + "••••••••" : { "extractionState" : "stale", "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "확대" + "value" : "••••••••" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yakınlaştır" + "value" : "••••••••" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phóng to" + "value" : "••••••••" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "放大" + "value" : "••••••••" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "放大" + "value" : "••••••••" } } } }, - "Zoom In" : { + "…and %d more lines" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "확대" + "value" : "…외 %d줄" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Yakınlaştır" + "value" : "…ve %d satır daha" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Phóng to" + "value" : "…và %d dòng nữa" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "放大" + "value" : "…还有 %d 行" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "放大" + "value" : "…還有 %d 列" } } } }, - "Zoom out" : { - "extractionState" : "stale", + "⌘K" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "축소" + "value" : "⌘K" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Uzaklaştır" + "value" : "⌘K" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thu nhỏ" + "value" : "⌘K" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "缩小" + "value" : "⌘K" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "縮小" + "value" : "⌘K" } } } }, - "Zoom Out" : { + "⌘T" : { "localizations" : { "ko" : { "stringUnit" : { "state" : "translated", - "value" : "축소" + "value" : "⌘T" } }, "tr" : { "stringUnit" : { "state" : "translated", - "value" : "Uzaklaştır" + "value" : "⌘T" } }, "vi" : { "stringUnit" : { "state" : "translated", - "value" : "Thu nhỏ" + "value" : "⌘T" } }, "zh-Hans" : { "stringUnit" : { "state" : "translated", - "value" : "缩小" + "value" : "⌘T" } }, "zh-Hant" : { "stringUnit" : { "state" : "translated", - "value" : "縮小" + "value" : "⌘T" } } }