From e5756348c1b23be269ee4033628fdf8d4373b15f Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 18 Oct 2026 22:10:51 +0000 Subject: [PATCH 1/2] CI: also build the app for the iOS Simulator Catches changes that break the Xcode project (missing file references, compile errors in the app target), which swift test on VisuStructCore cannot see. Co-Authored-By: Claude Opus 5.5 (1M context) Claude-Session: https://claude.ai/code/session_01Cp4EQgFQyGbM8MVLiWbJKQ --- .github/workflows/core-tests.yml | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/.github/workflows/core-tests.yml b/.github/workflows/core-tests.yml index b9263bb7..01bc2764 100644 --- a/.github/workflows/core-tests.yml +++ b/.github/workflows/core-tests.yml @@ -1,4 +1,4 @@ -name: VisuStructCore tests +name: CI on: push: @@ -17,3 +17,17 @@ jobs: run: swift --version - name: Build and test run: swift test + + app-build: + runs-on: macos-15 + steps: + - uses: actions/checkout@v4 + - name: Xcode version + run: xcodebuild -version + - name: Build app for iOS Simulator + run: | + xcodebuild build \ + -project VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct.xcodeproj \ + -scheme VisuStruct \ + -destination 'generic/platform=iOS Simulator' \ + CODE_SIGNING_ALLOWED=NO From 13f64f6347a6450905edd0b9aa7cedb4e4957954 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 19 Oct 2026 06:20:05 +0000 Subject: [PATCH 2/2] Localize simulator labels and messages, default to device language - Simulation engine reports notices as codes instead of English text; the app translates them. - Statement/Input/Output and Play/Pause/Step/Stop translated in all language files; missing keys fall back to English. - First launch picks the device language instead of English. Co-Authored-By: Claude Opus 5.5 (1M context) Claude-Session: https://claude.ai/code/session_01Cp4EQgFQyGbM8MVLiWbJKQ --- .../VisuStructSimulationEngine.swift | 114 ++++++++++++------ .../SimulationEngineTests.swift | 13 +- .../VisuStruct/AppLanguage.swift | 27 ++++- .../Simulation/SimulationPanels.swift | 32 ++++- .../VisuStruct/VisuStructApp.swift | 7 +- .../VisuStruct/ar.lproj/Localizable.strings | 28 +++-- .../VisuStruct/da.lproj/Localizable.strings | 18 ++- .../VisuStruct/de.lproj/Localizable.strings | 24 ++-- .../VisuStruct/el.lproj/Localizable.strings | 26 ++-- .../VisuStruct/en.lproj/Localizable.strings | 10 ++ .../VisuStruct/es.lproj/Localizable.strings | 28 +++-- .../VisuStruct/fr.lproj/Localizable.strings | 26 ++-- .../VisuStruct/he.lproj/Localizable.strings | 28 +++-- .../VisuStruct/it.lproj/Localizable.strings | 20 ++- .../VisuStruct/ja.lproj/Localizable.strings | 28 +++-- .../VisuStruct/ko.lproj/Localizable.strings | 28 +++-- .../VisuStruct/nb.lproj/Localizable.strings | 26 ++-- .../VisuStruct/nl.lproj/Localizable.strings | 26 ++-- .../VisuStruct/pl.lproj/Localizable.strings | 26 ++-- .../pt-PT.lproj/Localizable.strings | 28 +++-- .../VisuStruct/ru.lproj/Localizable.strings | 28 +++-- .../VisuStruct/sv.lproj/Localizable.strings | 28 +++-- .../VisuStruct/tr.lproj/Localizable.strings | 28 +++-- .../VisuStruct/uk.lproj/Localizable.strings | 26 ++-- .../zh-Hans.lproj/Localizable.strings | 28 +++-- .../zh-Hant.lproj/Localizable.strings | 28 +++-- 26 files changed, 521 insertions(+), 208 deletions(-) diff --git a/VisuStruct-iOS/VisuStructCore/Sources/VisuStructCore/VisuStructSimulationEngine.swift b/VisuStruct-iOS/VisuStructCore/Sources/VisuStructCore/VisuStructSimulationEngine.swift index 61480211..ed9e6fc9 100644 --- a/VisuStruct-iOS/VisuStructCore/Sources/VisuStructCore/VisuStructSimulationEngine.swift +++ b/VisuStruct-iOS/VisuStructCore/Sources/VisuStructCore/VisuStructSimulationEngine.swift @@ -102,9 +102,11 @@ public struct VisuStructSimulationState: Equatable, Sendable { public var variables: [String: VisuStructSimulationValue] public var outputLines: [String] public var inputRequest: VisuStructSimulationInputRequest? - public var inputError: String? + /// Fehler zur letzten Eingabe (z. B. keine Zahl); Text in der App über `VisuStructSimulationNotice` lokalisieren. + public var inputErrorNotice: VisuStructSimulationNotice? public var lastTrace: String? - public var message: String? + /// Hinweis nach dem letzten Schritt (Ende, Fehler); `nil` während die Simulation normal läuft. + public var notice: VisuStructSimulationNotice? /// Nach einem Fehler bleibt die Simulation auf dem fehlerhaften Schritt stehen, bis sie zurückgesetzt wird. public var isHalted: Bool @@ -113,22 +115,29 @@ public struct VisuStructSimulationState: Equatable, Sendable { variables: [String: VisuStructSimulationValue] = [:], outputLines: [String] = [], inputRequest: VisuStructSimulationInputRequest? = nil, - inputError: String? = nil, + inputErrorNotice: VisuStructSimulationNotice? = nil, lastTrace: String? = nil, - message: String? = nil, + notice: VisuStructSimulationNotice? = nil, isHalted: Bool = false ) { self.stepIndex = stepIndex self.variables = variables self.outputLines = outputLines self.inputRequest = inputRequest - self.inputError = inputError + self.inputErrorNotice = inputErrorNotice self.lastTrace = lastTrace - self.message = message + self.notice = notice self.isHalted = isHalted } } +extension VisuStructSimulationState { + /// Englischer Text von `notice` (Tests, Protokolle). + public var message: String? { notice?.englishText } + /// Englischer Text von `inputErrorNotice`. + public var inputError: String? { inputErrorNotice?.englishText } +} + public struct VisuStructSimulationEngine: Equatable, Sendable { public private(set) var steps: [VisuStructSimulationStep] public private(set) var state: VisuStructSimulationState @@ -157,7 +166,7 @@ public struct VisuStructSimulationEngine: Equatable, Sendable { public mutating func step() { guard canStep else { if state.inputRequest == nil && !state.isHalted { - state.message = "Simulation finished." + state.notice = .finished } return } @@ -196,13 +205,13 @@ public struct VisuStructSimulationEngine: Equatable, Sendable { return } if state.inputRequest != nil { - state.message = nil + state.notice = nil return } state.stepIndex += 1 - state.message = state.stepIndex >= steps.count ? "Simulation finished." : nil + state.notice = state.stepIndex >= steps.count ? .finished : nil } catch { - state.message = error.localizedDescription + state.notice = VisuStructSimulationNotice(error) state.isHalted = true } } @@ -214,13 +223,13 @@ public struct VisuStructSimulationEngine: Equatable, Sendable { try assignValue(value, to: request.variableName) state.lastTrace = "\(request.variableName) = input -> \(value.description)" } catch { - state.inputError = error.localizedDescription + state.inputErrorNotice = VisuStructSimulationNotice(error) return } state.inputRequest = nil - state.inputError = nil + state.inputErrorNotice = nil state.stepIndex += 1 - state.message = state.stepIndex >= steps.count ? "Simulation finished." : nil + state.notice = state.stepIndex >= steps.count ? .finished : nil } private static func parseInputValue(_ rawValue: String, as valueType: VisuStructSimulationValueType) throws -> VisuStructSimulationValue { @@ -230,12 +239,12 @@ public struct VisuStructSimulationEngine: Equatable, Sendable { switch valueType { case .int: guard let value = Int(trimmed) else { - throw SimulationError.invalidInput("Please enter a whole number.") + throw SimulationError.invalidInput(.wholeNumberExpected) } return .int(value) case .double: guard let value = Double(trimmed) else { - throw SimulationError.invalidInput("Please enter a number.") + throw SimulationError.invalidInput(.numberExpected) } return .double(value) case .string: @@ -346,7 +355,7 @@ public struct VisuStructSimulationEngine: Equatable, Sendable { steps.remove(at: state.stepIndex) steps.insert(contentsOf: branchSteps, at: state.stepIndex) state.lastTrace = "\(condition) -> \(result ? "true" : "false")" - state.message = !branchSteps.isEmpty ? nil : (state.stepIndex >= steps.count ? "Simulation finished." : nil) + state.notice = !branchSteps.isEmpty ? nil : (state.stepIndex >= steps.count ? .finished : nil) } private mutating func executeSwitchSelection(_ step: VisuStructSimulationStep) throws { @@ -366,7 +375,7 @@ public struct VisuStructSimulationEngine: Equatable, Sendable { steps.remove(at: state.stepIndex) steps.insert(contentsOf: caseSteps, at: state.stepIndex) state.lastTrace = "\(selector) -> \(selectedCase.name)" - state.message = !caseSteps.isEmpty ? nil : (state.stepIndex >= steps.count ? "Simulation finished." : nil) + state.notice = !caseSteps.isEmpty ? nil : (state.stepIndex >= steps.count ? .finished : nil) } private mutating func executeForLoopStart(_ step: VisuStructSimulationStep) throws { @@ -419,7 +428,7 @@ public struct VisuStructSimulationEngine: Equatable, Sendable { steps.insert(contentsOf: bodySteps + [incrementStep, conditionStep], at: state.stepIndex) } else { steps.remove(at: state.stepIndex) - state.message = state.stepIndex >= steps.count ? "Simulation finished." : nil + state.notice = state.stepIndex >= steps.count ? .finished : nil } } @@ -449,10 +458,10 @@ public struct VisuStructSimulationEngine: Equatable, Sendable { ) steps.remove(at: state.stepIndex) steps.insert(contentsOf: bodySteps + [conditionStep], at: state.stepIndex) - state.message = !bodySteps.isEmpty ? nil : (state.stepIndex >= steps.count ? "Simulation finished." : nil) + state.notice = !bodySteps.isEmpty ? nil : (state.stepIndex >= steps.count ? .finished : nil) } else { steps.remove(at: state.stepIndex) - state.message = state.stepIndex >= steps.count ? "Simulation finished." : nil + state.notice = state.stepIndex >= steps.count ? .finished : nil } } @@ -469,7 +478,7 @@ public struct VisuStructSimulationEngine: Equatable, Sendable { ) steps.remove(at: state.stepIndex) steps.insert(contentsOf: bodySteps + [conditionStep], at: state.stepIndex) - state.message = !bodySteps.isEmpty ? nil : (state.stepIndex >= steps.count ? "Simulation finished." : nil) + state.notice = !bodySteps.isEmpty ? nil : (state.stepIndex >= steps.count ? .finished : nil) } private mutating func executeDoUntilCondition(_ step: VisuStructSimulationStep) throws { @@ -491,7 +500,7 @@ public struct VisuStructSimulationEngine: Equatable, Sendable { steps.insert(contentsOf: bodySteps + [conditionStep], at: state.stepIndex) } else { steps.remove(at: state.stepIndex) - state.message = state.stepIndex >= steps.count ? "Simulation finished." : nil + state.notice = state.stepIndex >= steps.count ? .finished : nil } } @@ -509,14 +518,14 @@ public struct VisuStructSimulationEngine: Equatable, Sendable { steps.remove(at: state.stepIndex) steps.insert(contentsOf: bodySteps + [loopStep], at: state.stepIndex) state.lastTrace = "true -> true" - state.message = !bodySteps.isEmpty ? nil : "Infinite loop has no body." + state.notice = !bodySteps.isEmpty ? nil : .infiniteLoopWithoutBody } private mutating func execute(statement rawText: String) throws { let text = rawText.trimmingCharacters(in: .whitespacesAndNewlines) if text.lowercased().hasPrefix("input:") { state.inputRequest = try parseInputRequest(text) - state.inputError = nil + state.inputErrorNotice = nil return } @@ -1343,20 +1352,53 @@ private enum SimulationError: LocalizedError, Equatable { case invalidExpression(String) case unknownVariable(String) case divisionByZero - case invalidInput(String) + case invalidInput(VisuStructSimulationNotice) + + var notice: VisuStructSimulationNotice { + switch self { + case .unsupportedStatement(let text): return .unsupportedStatement(text) + case .invalidExpression(let text): return .invalidExpression(text) + case .unknownVariable(let name): return .unknownVariable(name) + case .divisionByZero: return .divisionByZero + case .invalidInput(let notice): return notice + } + } + + var errorDescription: String? { notice.englishText } +} + +/// Meldungen der Simulation, unabhängig von der Sprache; die App übersetzt sie. +public enum VisuStructSimulationNotice: Equatable, Sendable { + case finished + case infiniteLoopWithoutBody + case unsupportedStatement(String) + case invalidExpression(String) + case unknownVariable(String) + case divisionByZero + case wholeNumberExpected + case numberExpected + /// Fehler aus einer anderen Quelle, nur als Text bekannt. + case other(String) + + init(_ error: Error) { + if let simulationError = error as? SimulationError { + self = simulationError.notice + } else { + self = .other(error.localizedDescription) + } + } - var errorDescription: String? { + public var englishText: String { switch self { - case .unsupportedStatement(let text): - return "Unsupported statement: \(text)" - case .invalidExpression(let text): - return "Invalid expression: \(text)" - case .unknownVariable(let name): - return "Unknown variable: \(name)" - case .divisionByZero: - return "Division by zero." - case .invalidInput(let message): - return message + case .finished: return "Simulation finished." + case .infiniteLoopWithoutBody: return "Infinite loop has no body." + case .unsupportedStatement(let text): return "Unsupported statement: \(text)" + case .invalidExpression(let text): return "Invalid expression: \(text)" + case .unknownVariable(let name): return "Unknown variable: \(name)" + case .divisionByZero: return "Division by zero." + case .wholeNumberExpected: return "Please enter a whole number." + case .numberExpected: return "Please enter a number." + case .other(let text): return text } } } diff --git a/VisuStruct-iOS/VisuStructCore/Tests/VisuStructCoreTests/SimulationEngineTests.swift b/VisuStruct-iOS/VisuStructCore/Tests/VisuStructCoreTests/SimulationEngineTests.swift index a1b4cd10..9e344b1a 100644 --- a/VisuStruct-iOS/VisuStructCore/Tests/VisuStructCoreTests/SimulationEngineTests.swift +++ b/VisuStruct-iOS/VisuStructCore/Tests/VisuStructCoreTests/SimulationEngineTests.swift @@ -32,7 +32,7 @@ final class SimulationEngineTests: XCTestCase { XCTAssertEqual(engine.state.inputRequest?.variableName, "n") engine.provideInput("abc") - XCTAssertNotNil(engine.state.inputError) + XCTAssertEqual(engine.state.inputErrorNotice, .wholeNumberExpected) XCTAssertNotNil(engine.state.inputRequest) engine.provideInput("21") @@ -107,7 +107,18 @@ final class SimulationEngineTests: XCTestCase { ]) var engine = VisuStructSimulationEngine(document: document) engine.step() + XCTAssertEqual(engine.state.notice, .divisionByZero) XCTAssertEqual(engine.state.message, "Division by zero.") XCTAssertNil(engine.state.variables["x"]) } + + func testFinishedNoticeAfterLastStep() { + let document = VisuStructDocument(elements: [ + VisuStructElement(type: .anweisung, textLines: ["int x = 1"]), + ]) + var engine = VisuStructSimulationEngine(document: document) + engine.step() + XCTAssertEqual(engine.state.notice, .finished) + XCTAssertEqual(engine.state.message, "Simulation finished.") + } } diff --git a/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/AppLanguage.swift b/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/AppLanguage.swift index ab44c90a..a0cafeb7 100644 --- a/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/AppLanguage.swift +++ b/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/AppLanguage.swift @@ -51,16 +51,37 @@ enum AppLanguage: String, CaseIterable, Identifiable { return b } + /// Übersetzung zu `key`; fehlt sie in dieser Sprache, der englische Text (nie der Schlüssel selbst). func tr(_ key: String) -> String { + let text: String if self == .javaLike { - return NSLocalizedString(key, tableName: Self.javaStringsTable, bundle: Bundle.main, value: key, comment: "") + text = NSLocalizedString(key, tableName: Self.javaStringsTable, bundle: Bundle.main, value: key, comment: "") + } else { + text = NSLocalizedString(key, tableName: nil, bundle: bundle, value: key, comment: "") } - return NSLocalizedString(key, tableName: nil, bundle: bundle, value: key, comment: "") + if text == key, self != .english { + return AppLanguage.english.tr(key) + } + return text + } + + /// Sprache des Geräts (bzw. die für VisuStruct in den Systemeinstellungen gewählte), sofern die App sie anbietet; sonst Englisch. + static var deviceDefault: AppLanguage { + for code in Bundle.main.preferredLocalizations { + if let lang = AppLanguage(rawValue: code), lang != .javaLike { return lang } + } + return .english + } + + /// Erster Start ohne gespeicherte Sprache: Gerätesprache übernehmen, damit auch die Systemeinstellungen sie anzeigen. + static func storeDeviceDefaultIfNeeded() { + guard UserDefaults.standard.string(forKey: storageKey) == nil else { return } + UserDefaults.standard.set(deviceDefault.rawValue, forKey: storageKey) } /// Für `ContentView.init`, bevor `Environment` steht. static func currentFromDefaults() -> AppLanguage { - let code = UserDefaults.standard.string(forKey: storageKey) ?? AppLanguage.english.rawValue + let code = UserDefaults.standard.string(forKey: storageKey) ?? AppLanguage.deviceDefault.rawValue return AppLanguage(rawValue: code) ?? .english } } diff --git a/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/Simulation/SimulationPanels.swift b/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/Simulation/SimulationPanels.swift index eab33a66..af85e388 100644 --- a/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/Simulation/SimulationPanels.swift +++ b/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/Simulation/SimulationPanels.swift @@ -77,7 +77,7 @@ struct SimulationStatePanel: View { prompt: engine.state.inputRequest?.prompt, variableName: engine.state.inputRequest?.variableName, valueType: engine.state.inputRequest?.valueType, - inputError: engine.state.inputError, + inputError: engine.state.inputErrorNotice?.localized(in: lang), inputText: $inputText, onSubmit: onSubmitInput ) @@ -160,7 +160,7 @@ struct SimulationStatePanel: View { } .layoutPriority(flexibleCardsFillHeight ? 1 : 0) - if let message = engine.state.message { + if let message = engine.state.notice?.localized(in: lang) { Text(message) .font(.caption) .foregroundStyle(.secondary) @@ -301,3 +301,31 @@ struct SimulationPlaceholderCard: View { } } + +// MARK: - Meldungen der Simulation + +extension VisuStructSimulationNotice { + /// Meldung der Simulation in der App-Sprache. + func localized(in lang: AppLanguage) -> String { + switch self { + case .finished: + return lang.tr("sim_notice_finished") + case .infiniteLoopWithoutBody: + return lang.tr("sim_notice_infinite_loop_empty") + case .unsupportedStatement(let text): + return String(format: lang.tr("sim_notice_unsupported_statement_fmt"), text) + case .invalidExpression(let text): + return String(format: lang.tr("sim_notice_invalid_expression_fmt"), text) + case .unknownVariable(let name): + return String(format: lang.tr("sim_notice_unknown_variable_fmt"), name) + case .divisionByZero: + return lang.tr("sim_notice_division_by_zero") + case .wholeNumberExpected: + return lang.tr("sim_notice_whole_number_expected") + case .numberExpected: + return lang.tr("sim_notice_number_expected") + case .other(let text): + return text + } + } +} diff --git a/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/VisuStructApp.swift b/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/VisuStructApp.swift index 269521f0..0b4d34a2 100644 --- a/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/VisuStructApp.swift +++ b/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/VisuStructApp.swift @@ -269,6 +269,7 @@ struct VisuStructApp: App { "visustruct.codegen.includeEmptyElse": true, "visustruct.codegen.includeDiagramComments": false ]) + AppLanguage.storeDeviceDefaultIfNeeded() } // Hinweis: Kein `UITextField.appearance().smartQuotesType` / `UITextView.appearance()` hier — @@ -289,7 +290,7 @@ struct VisuStructApp: App { /// `.delete` gibt es nur auf macOS, daher Löschen hinter `.pasteboard`. private struct VisuStructCommands: Commands { @ObservedObject private var commandCenter = DiagramCommandCenter.shared - @AppStorage(AppLanguage.storageKey) private var languageCode: String = AppLanguage.english.rawValue + @AppStorage(AppLanguage.storageKey) private var languageCode: String = AppLanguage.deviceDefault.rawValue private var lang: AppLanguage { AppLanguage(rawValue: languageCode) ?? .english @@ -369,7 +370,7 @@ private struct VisuStructCommands: Commands { /// Synchronisiert `UserDefaults` mit den iOS-**Systemeinstellungen** (VisuStruct), sobald die App wieder aktiv wird. private struct AppRootView: View { @StateObject private var incomingDocuments = IncomingDocumentOpener() - @AppStorage(AppLanguage.storageKey) private var languageCode: String = AppLanguage.english.rawValue + @AppStorage(AppLanguage.storageKey) private var languageCode: String = AppLanguage.deviceDefault.rawValue @AppStorage(VisuStructUIScaleStep.appStorageKeyCanvas) private var scaleCanvas: String = VisuStructUIScaleStep.small.rawValue @AppStorage(VisuStructUIScaleStep.appStorageKeyInspector) private var scaleInspector: String = VisuStructUIScaleStep.small.rawValue @AppStorage("visustruct.export.filenameStyle") private var exportFilenameStyle: String = "dateTitle" @@ -384,7 +385,7 @@ private struct AppRootView: View { .onOpenURL { incomingDocuments.queue($0) } .onChange(of: scenePhase) { _, phase in guard phase == .active else { return } - let lang = UserDefaults.standard.string(forKey: AppLanguage.storageKey) ?? AppLanguage.english.rawValue + let lang = UserDefaults.standard.string(forKey: AppLanguage.storageKey) ?? AppLanguage.deviceDefault.rawValue if lang != languageCode { languageCode = lang } let c = UserDefaults.standard.string(forKey: VisuStructUIScaleStep.appStorageKeyCanvas) ?? VisuStructUIScaleStep.small.rawValue if c != scaleCanvas { scaleCanvas = c } diff --git a/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/ar.lproj/Localizable.strings b/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/ar.lproj/Localizable.strings index ba9fecdc..3fd96a74 100644 --- a/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/ar.lproj/Localizable.strings +++ b/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/ar.lproj/Localizable.strings @@ -14,10 +14,10 @@ "simulation_highlight_last" = "آخر خطوة"; "simulation_highlight_next" = "الخطوة التالية"; "simulation_not_available" = "يقوم Play بتشغيل المحاكاة تلقائيًا مع توقف 0.5 ثانية لكل خطوة."; -"simulation_play" = "Play"; -"simulation_pause" = "Pause"; -"simulation_step" = "Step"; -"simulation_stop" = "Stop"; +"simulation_play" = "تشغيل"; +"simulation_pause" = "إيقاف مؤقت"; +"simulation_step" = "خطوة"; +"simulation_stop" = "إيقاف"; "simulation_input" = "إدخال"; "simulation_input_placeholder" = "لا يلزم إدخال."; "simulation_input_submit" = "OK"; @@ -125,11 +125,11 @@ "inspector_for_placeholder_condition" = "i < 5"; "inspector_for_placeholder_step" = "i++"; -"inspector_io_mode_title" = "Kind"; -"inspector_io_mode_statement" = "Statement"; -"inspector_io_mode_input" = "Input"; -"inspector_io_mode_output" = "Output"; -"inspector_io_mode_help_java_like" = "Input: input: … | Output: output: …"; +"inspector_io_mode_title" = "النوع"; +"inspector_io_mode_statement" = "تعليمة"; +"inspector_io_mode_input" = "إدخال"; +"inspector_io_mode_output" = "إخراج"; +"inspector_io_mode_help_java_like" = "إدخال: input: … | إخراج: output: …"; "inspector_add_case" = "إضافة حالة"; "inspector_remove_case" = "إزالة الحالة"; "inspector_group_element" = "نص العنصر"; @@ -218,3 +218,13 @@ "settings_export_filename_footer_with_date" = "مع التاريخ: yyyy-mm-dd-Filename.visustruct"; "settings_export_filename_footer_without_date" = "بدون تاريخ: Filename.visustruct"; + +/* Simulation: Meldungen */ +"sim_notice_finished" = "انتهت المحاكاة."; +"sim_notice_infinite_loop_empty" = "الحلقة اللانهائية ليس لها جسم."; +"sim_notice_unsupported_statement_fmt" = "تعليمة غير مدعومة: %@"; +"sim_notice_invalid_expression_fmt" = "تعبير غير صالح: %@"; +"sim_notice_unknown_variable_fmt" = "متغير غير معروف: %@"; +"sim_notice_division_by_zero" = "القسمة على صفر."; +"sim_notice_whole_number_expected" = "أدخل عددًا صحيحًا."; +"sim_notice_number_expected" = "أدخل رقمًا."; diff --git a/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/da.lproj/Localizable.strings b/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/da.lproj/Localizable.strings index fb19e1c1..624c3c8c 100644 --- a/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/da.lproj/Localizable.strings +++ b/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/da.lproj/Localizable.strings @@ -14,9 +14,9 @@ "simulation_highlight_last" = "Sidste trin"; "simulation_highlight_next" = "Næste trin"; "simulation_not_available" = "Play kører simuleringen automatisk med en pause på 0,5 sekund pr. trin."; -"simulation_play" = "Play"; +"simulation_play" = "Afspil"; "simulation_pause" = "Pause"; -"simulation_step" = "Step"; +"simulation_step" = "Trin"; "simulation_stop" = "Stop"; "simulation_input" = "Input"; "simulation_input_placeholder" = "Ingen input påkrævet."; @@ -64,8 +64,8 @@ "inspector_for_placeholder_condition" = "i < 5"; "inspector_for_placeholder_step" = "i++"; -"inspector_io_mode_title" = "Kind"; -"inspector_io_mode_statement" = "Statement"; +"inspector_io_mode_title" = "Type"; +"inspector_io_mode_statement" = "Sætning"; "inspector_io_mode_input" = "Input"; "inspector_io_mode_output" = "Output"; "inspector_io_mode_help_java_like" = "Input: input: … | Output: output: …"; @@ -130,3 +130,13 @@ /* Accessibility — code generator floating panel */ "a11y_codegen_panel_drag" = "Træk for at flytte kodegeneratorpanelet"; "about_dateiformat_strk" = "Filer med endelsen .strk kan også åbnes."; + +/* Simulation: Meldungen */ +"sim_notice_finished" = "Simuleringen er færdig."; +"sim_notice_infinite_loop_empty" = "Den uendelige løkke har intet indhold."; +"sim_notice_unsupported_statement_fmt" = "Sætning understøttes ikke: %@"; +"sim_notice_invalid_expression_fmt" = "Ugyldigt udtryk: %@"; +"sim_notice_unknown_variable_fmt" = "Ukendt variabel: %@"; +"sim_notice_division_by_zero" = "Division med nul."; +"sim_notice_whole_number_expected" = "Indtast et heltal."; +"sim_notice_number_expected" = "Indtast et tal."; diff --git a/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/de.lproj/Localizable.strings b/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/de.lproj/Localizable.strings index b99dd214..ca485498 100644 --- a/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/de.lproj/Localizable.strings +++ b/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/de.lproj/Localizable.strings @@ -14,10 +14,10 @@ "simulation_highlight_last" = "Letzter Schritt"; "simulation_highlight_next" = "Nächster Schritt"; "simulation_not_available" = "Play führt die Simulation automatisch mit 0,5 Sekunden Pause pro Schritt aus."; -"simulation_play" = "Play"; +"simulation_play" = "Start"; "simulation_pause" = "Pause"; -"simulation_step" = "Step"; -"simulation_stop" = "Stop"; +"simulation_step" = "Schritt"; +"simulation_stop" = "Stopp"; "simulation_input" = "Eingabe"; "simulation_input_placeholder" = "Keine Eingabe erforderlich."; "simulation_input_submit" = "OK"; @@ -143,10 +143,10 @@ "inspector_for_placeholder_condition" = "i < 5"; "inspector_for_placeholder_step" = "i++"; "inspector_io_mode_title" = "Art"; -"inspector_io_mode_statement" = "Statement"; -"inspector_io_mode_input" = "Input"; -"inspector_io_mode_output" = "Output"; -"inspector_io_mode_help_java_like" = "Input: input: … | Output: output: …"; +"inspector_io_mode_statement" = "Anweisung"; +"inspector_io_mode_input" = "Eingabe"; +"inspector_io_mode_output" = "Ausgabe"; +"inspector_io_mode_help_java_like" = "Eingabe: input: … | Ausgabe: output: …"; "inspector_add_case" = "Weiteren Fall hinzufügen"; "inspector_remove_case" = "Fall entfernen"; "inspector_group_element" = "Elementtext"; @@ -219,3 +219,13 @@ "err_image_render_failed" = "Grafik konnte nicht erzeugt werden."; "err_diagram_too_small_print" = "Diagramm ist zu klein — nichts zu drucken."; "err_print_unavailable" = "Drucken ist auf diesem Gerät nicht verfügbar."; + +/* Simulation: Meldungen */ +"sim_notice_finished" = "Simulation beendet."; +"sim_notice_infinite_loop_empty" = "Die Endlosschleife hat keinen Rumpf."; +"sim_notice_unsupported_statement_fmt" = "Nicht unterstützte Anweisung: %@"; +"sim_notice_invalid_expression_fmt" = "Ungültiger Ausdruck: %@"; +"sim_notice_unknown_variable_fmt" = "Unbekannte Variable: %@"; +"sim_notice_division_by_zero" = "Division durch null."; +"sim_notice_whole_number_expected" = "Bitte eine ganze Zahl eingeben."; +"sim_notice_number_expected" = "Bitte eine Zahl eingeben."; diff --git a/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/el.lproj/Localizable.strings b/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/el.lproj/Localizable.strings index fe7c6810..9c3d4e7d 100644 --- a/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/el.lproj/Localizable.strings +++ b/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/el.lproj/Localizable.strings @@ -14,10 +14,10 @@ "simulation_highlight_last" = "Τελευταίο βήμα"; "simulation_highlight_next" = "Επόμενο βήμα"; "simulation_not_available" = "Το Play εκτελεί αυτόματα την προσομοίωση με παύση 0,5 δευτερολέπτων ανά βήμα."; -"simulation_play" = "Play"; -"simulation_pause" = "Pause"; -"simulation_step" = "Step"; -"simulation_stop" = "Stop"; +"simulation_play" = "Αναπαραγωγή"; +"simulation_pause" = "Παύση"; +"simulation_step" = "Βήμα"; +"simulation_stop" = "Διακοπή"; "simulation_input" = "Είσοδος"; "simulation_input_placeholder" = "Δεν απαιτείται είσοδος."; "simulation_input_submit" = "OK"; @@ -122,10 +122,10 @@ "inspector_for_placeholder_condition" = "i < 5"; "inspector_for_placeholder_step" = "i++"; -"inspector_io_mode_title" = "Kind"; -"inspector_io_mode_statement" = "Statement"; -"inspector_io_mode_input" = "Input"; -"inspector_io_mode_output" = "Output"; +"inspector_io_mode_title" = "Είδος"; +"inspector_io_mode_statement" = "Εντολή"; +"inspector_io_mode_input" = "Είσοδος"; +"inspector_io_mode_output" = "Έξοδος"; "inspector_io_mode_help_java_like" = "Java: input: int zahl | output: number"; "inspector_add_case" = "Προσθήκη περίπτωσης"; "inspector_remove_case" = "Αφαίρεση περίπτωσης"; @@ -215,3 +215,13 @@ "settings_export_filename_footer_with_date" = "Με ημερομηνία: yyyy-mm-dd-Filename.visustruct"; "settings_export_filename_footer_without_date" = "Χωρίς ημερομηνία: Filename.visustruct"; + +/* Simulation: Meldungen */ +"sim_notice_finished" = "Η προσομοίωση ολοκληρώθηκε."; +"sim_notice_infinite_loop_empty" = "Ο ατέρμονος βρόχος δεν έχει σώμα."; +"sim_notice_unsupported_statement_fmt" = "Μη υποστηριζόμενη εντολή: %@"; +"sim_notice_invalid_expression_fmt" = "Μη έγκυρη έκφραση: %@"; +"sim_notice_unknown_variable_fmt" = "Άγνωστη μεταβλητή: %@"; +"sim_notice_division_by_zero" = "Διαίρεση με το μηδέν."; +"sim_notice_whole_number_expected" = "Εισαγάγετε έναν ακέραιο αριθμό."; +"sim_notice_number_expected" = "Εισαγάγετε έναν αριθμό."; diff --git a/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/en.lproj/Localizable.strings b/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/en.lproj/Localizable.strings index 62a5fd16..644397cd 100644 --- a/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/en.lproj/Localizable.strings +++ b/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/en.lproj/Localizable.strings @@ -219,3 +219,13 @@ "err_image_render_failed" = "Could not create the image."; "err_diagram_too_small_print" = "The diagram is too small — nothing to print."; "err_print_unavailable" = "Printing is not available on this device."; + +/* Simulation: Meldungen */ +"sim_notice_finished" = "Simulation finished."; +"sim_notice_infinite_loop_empty" = "Infinite loop has no body."; +"sim_notice_unsupported_statement_fmt" = "Unsupported statement: %@"; +"sim_notice_invalid_expression_fmt" = "Invalid expression: %@"; +"sim_notice_unknown_variable_fmt" = "Unknown variable: %@"; +"sim_notice_division_by_zero" = "Division by zero."; +"sim_notice_whole_number_expected" = "Please enter a whole number."; +"sim_notice_number_expected" = "Please enter a number."; diff --git a/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/es.lproj/Localizable.strings b/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/es.lproj/Localizable.strings index 8299f310..aaf7e993 100644 --- a/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/es.lproj/Localizable.strings +++ b/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/es.lproj/Localizable.strings @@ -14,10 +14,10 @@ "simulation_highlight_last" = "Último paso"; "simulation_highlight_next" = "Siguiente paso"; "simulation_not_available" = "Play ejecuta la simulación automáticamente con una pausa de 0,5 segundos por paso."; -"simulation_play" = "Play"; -"simulation_pause" = "Pause"; -"simulation_step" = "Step"; -"simulation_stop" = "Stop"; +"simulation_play" = "Reproducir"; +"simulation_pause" = "Pausa"; +"simulation_step" = "Paso"; +"simulation_stop" = "Detener"; "simulation_input" = "Entrada"; "simulation_input_placeholder" = "No se requiere entrada."; "simulation_input_submit" = "OK"; @@ -125,11 +125,11 @@ "inspector_for_placeholder_condition" = "i < 5"; "inspector_for_placeholder_step" = "i++"; -"inspector_io_mode_title" = "Kind"; -"inspector_io_mode_statement" = "Statement"; -"inspector_io_mode_input" = "Input"; -"inspector_io_mode_output" = "Output"; -"inspector_io_mode_help_java_like" = "Input: input: … | Output: output: …"; +"inspector_io_mode_title" = "Tipo"; +"inspector_io_mode_statement" = "Instrucción"; +"inspector_io_mode_input" = "Entrada"; +"inspector_io_mode_output" = "Salida"; +"inspector_io_mode_help_java_like" = "Entrada: input: … | Salida: output: …"; "inspector_add_case" = "Añadir caso"; "inspector_remove_case" = "Eliminar caso"; "inspector_group_element" = "Texto del elemento"; @@ -218,3 +218,13 @@ "settings_export_filename_footer_with_date" = "Con fecha: yyyy-mm-dd-Filename.visustruct"; "settings_export_filename_footer_without_date" = "Sin fecha: Filename.visustruct"; + +/* Simulation: Meldungen */ +"sim_notice_finished" = "Simulación terminada."; +"sim_notice_infinite_loop_empty" = "El bucle infinito no tiene cuerpo."; +"sim_notice_unsupported_statement_fmt" = "Instrucción no admitida: %@"; +"sim_notice_invalid_expression_fmt" = "Expresión no válida: %@"; +"sim_notice_unknown_variable_fmt" = "Variable desconocida: %@"; +"sim_notice_division_by_zero" = "División por cero."; +"sim_notice_whole_number_expected" = "Introduce un número entero."; +"sim_notice_number_expected" = "Introduce un número."; diff --git a/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/fr.lproj/Localizable.strings b/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/fr.lproj/Localizable.strings index c0adde5e..30185789 100644 --- a/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/fr.lproj/Localizable.strings +++ b/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/fr.lproj/Localizable.strings @@ -14,10 +14,10 @@ "simulation_highlight_last" = "Dernière étape"; "simulation_highlight_next" = "Étape suivante"; "simulation_not_available" = "Play exécute automatiquement la simulation avec une pause de 0,5 seconde par étape."; -"simulation_play" = "Play"; +"simulation_play" = "Lecture"; "simulation_pause" = "Pause"; -"simulation_step" = "Step"; -"simulation_stop" = "Stop"; +"simulation_step" = "Pas"; +"simulation_stop" = "Arrêt"; "simulation_input" = "Entrée"; "simulation_input_placeholder" = "Aucune entrée requise."; "simulation_input_submit" = "OK"; @@ -125,11 +125,11 @@ "inspector_for_placeholder_condition" = "i < 5"; "inspector_for_placeholder_step" = "i++"; -"inspector_io_mode_title" = "Kind"; -"inspector_io_mode_statement" = "Statement"; -"inspector_io_mode_input" = "Input"; -"inspector_io_mode_output" = "Output"; -"inspector_io_mode_help_java_like" = "Input: input: … | Output: output: …"; +"inspector_io_mode_title" = "Type"; +"inspector_io_mode_statement" = "Instruction"; +"inspector_io_mode_input" = "Entrée"; +"inspector_io_mode_output" = "Sortie"; +"inspector_io_mode_help_java_like" = "Entrée: input: … | Sortie: output: …"; "inspector_add_case" = "Ajouter un cas"; "inspector_remove_case" = "Supprimer le cas"; "inspector_group_element" = "Texte de l’élément"; @@ -218,3 +218,13 @@ "settings_export_filename_footer_with_date" = "Avec date: yyyy-mm-dd-Filename.visustruct"; "settings_export_filename_footer_without_date" = "Sans date: Filename.visustruct"; + +/* Simulation: Meldungen */ +"sim_notice_finished" = "Simulation terminée."; +"sim_notice_infinite_loop_empty" = "La boucle infinie n’a pas de corps."; +"sim_notice_unsupported_statement_fmt" = "Instruction non prise en charge : %@"; +"sim_notice_invalid_expression_fmt" = "Expression non valide : %@"; +"sim_notice_unknown_variable_fmt" = "Variable inconnue : %@"; +"sim_notice_division_by_zero" = "Division par zéro."; +"sim_notice_whole_number_expected" = "Saisissez un nombre entier."; +"sim_notice_number_expected" = "Saisissez un nombre."; diff --git a/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/he.lproj/Localizable.strings b/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/he.lproj/Localizable.strings index c52b41db..3173507c 100644 --- a/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/he.lproj/Localizable.strings +++ b/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/he.lproj/Localizable.strings @@ -14,10 +14,10 @@ "simulation_highlight_last" = "הצעד האחרון"; "simulation_highlight_next" = "הצעד הבא"; "simulation_not_available" = "Play מריץ את הסימולציה אוטומטית עם השהיה של 0.5 שניות לכל צעד."; -"simulation_play" = "Play"; -"simulation_pause" = "Pause"; -"simulation_step" = "Step"; -"simulation_stop" = "Stop"; +"simulation_play" = "הפעלה"; +"simulation_pause" = "השהיה"; +"simulation_step" = "צעד"; +"simulation_stop" = "עצירה"; "simulation_input" = "קלט"; "simulation_input_placeholder" = "לא נדרש קלט."; "simulation_input_submit" = "OK"; @@ -125,11 +125,11 @@ "inspector_for_placeholder_condition" = "i < 5"; "inspector_for_placeholder_step" = "i++"; -"inspector_io_mode_title" = "Kind"; -"inspector_io_mode_statement" = "Statement"; -"inspector_io_mode_input" = "Input"; -"inspector_io_mode_output" = "Output"; -"inspector_io_mode_help_java_like" = "Input: input: … | Output: output: …"; +"inspector_io_mode_title" = "סוג"; +"inspector_io_mode_statement" = "הוראה"; +"inspector_io_mode_input" = "קלט"; +"inspector_io_mode_output" = "פלט"; +"inspector_io_mode_help_java_like" = "קלט: input: … | פלט: output: …"; "inspector_add_case" = "הוסף מקרה"; "inspector_remove_case" = "הסר מקרה"; "inspector_group_element" = "טקסט רכיב"; @@ -218,3 +218,13 @@ "settings_export_filename_footer_with_date" = "עם תאריך: yyyy-mm-dd-Filename.visustruct"; "settings_export_filename_footer_without_date" = "בלי תאריך: Filename.visustruct"; + +/* Simulation: Meldungen */ +"sim_notice_finished" = "הסימולציה הסתיימה."; +"sim_notice_infinite_loop_empty" = "ללולאה האינסופית אין גוף."; +"sim_notice_unsupported_statement_fmt" = "הוראה לא נתמכת: %@"; +"sim_notice_invalid_expression_fmt" = "ביטוי לא חוקי: %@"; +"sim_notice_unknown_variable_fmt" = "משתנה לא ידוע: %@"; +"sim_notice_division_by_zero" = "חלוקה באפס."; +"sim_notice_whole_number_expected" = "יש להזין מספר שלם."; +"sim_notice_number_expected" = "יש להזין מספר."; diff --git a/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/it.lproj/Localizable.strings b/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/it.lproj/Localizable.strings index f520c322..4cf33c52 100644 --- a/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/it.lproj/Localizable.strings +++ b/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/it.lproj/Localizable.strings @@ -14,9 +14,9 @@ "simulation_highlight_last" = "Ultimo passo"; "simulation_highlight_next" = "Prossimo passo"; "simulation_not_available" = "Play esegue automaticamente la simulazione con una pausa di 0,5 secondi per passo."; -"simulation_play" = "Play"; -"simulation_pause" = "Pause"; -"simulation_step" = "Step"; +"simulation_play" = "Avvia"; +"simulation_pause" = "Pausa"; +"simulation_step" = "Passo"; "simulation_stop" = "Stop"; "simulation_input" = "Input"; "simulation_input_placeholder" = "Nessun input richiesto."; @@ -125,8 +125,8 @@ "inspector_for_placeholder_condition" = "i < 5"; "inspector_for_placeholder_step" = "i++"; -"inspector_io_mode_title" = "Kind"; -"inspector_io_mode_statement" = "Statement"; +"inspector_io_mode_title" = "Tipo"; +"inspector_io_mode_statement" = "Istruzione"; "inspector_io_mode_input" = "Input"; "inspector_io_mode_output" = "Output"; "inspector_io_mode_help_java_like" = "Input: input: … | Output: output: …"; @@ -218,3 +218,13 @@ "settings_export_filename_footer_with_date" = "Con data: yyyy-mm-dd-Filename.visustruct"; "settings_export_filename_footer_without_date" = "Senza data: Filename.visustruct"; + +/* Simulation: Meldungen */ +"sim_notice_finished" = "Simulazione terminata."; +"sim_notice_infinite_loop_empty" = "Il ciclo infinito non ha corpo."; +"sim_notice_unsupported_statement_fmt" = "Istruzione non supportata: %@"; +"sim_notice_invalid_expression_fmt" = "Espressione non valida: %@"; +"sim_notice_unknown_variable_fmt" = "Variabile sconosciuta: %@"; +"sim_notice_division_by_zero" = "Divisione per zero."; +"sim_notice_whole_number_expected" = "Inserisci un numero intero."; +"sim_notice_number_expected" = "Inserisci un numero."; diff --git a/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/ja.lproj/Localizable.strings b/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/ja.lproj/Localizable.strings index e1399a66..33c070e7 100644 --- a/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/ja.lproj/Localizable.strings +++ b/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/ja.lproj/Localizable.strings @@ -14,10 +14,10 @@ "simulation_highlight_last" = "前のステップ"; "simulation_highlight_next" = "次のステップ"; "simulation_not_available" = "Play は各ステップごとに0.5秒停止しながらシミュレーションを自動実行します。"; -"simulation_play" = "Play"; -"simulation_pause" = "Pause"; -"simulation_step" = "Step"; -"simulation_stop" = "Stop"; +"simulation_play" = "再生"; +"simulation_pause" = "一時停止"; +"simulation_step" = "ステップ"; +"simulation_stop" = "停止"; "simulation_input" = "入力"; "simulation_input_placeholder" = "入力は不要です。"; "simulation_input_submit" = "OK"; @@ -125,11 +125,11 @@ "inspector_for_placeholder_condition" = "i < 5"; "inspector_for_placeholder_step" = "i++"; -"inspector_io_mode_title" = "Kind"; -"inspector_io_mode_statement" = "Statement"; -"inspector_io_mode_input" = "Input"; -"inspector_io_mode_output" = "Output"; -"inspector_io_mode_help_java_like" = "Input: input: … | Output: output: …"; +"inspector_io_mode_title" = "種類"; +"inspector_io_mode_statement" = "文"; +"inspector_io_mode_input" = "入力"; +"inspector_io_mode_output" = "出力"; +"inspector_io_mode_help_java_like" = "入力: input: … | 出力: output: …"; "inspector_add_case" = "ケースを追加"; "inspector_remove_case" = "ケースを削除"; "inspector_group_element" = "要素テキスト"; @@ -218,3 +218,13 @@ "settings_export_filename_footer_with_date" = "日付あり: yyyy-mm-dd-Filename.visustruct"; "settings_export_filename_footer_without_date" = "日付なし: Filename.visustruct"; + +/* Simulation: Meldungen */ +"sim_notice_finished" = "シミュレーションが終了しました。"; +"sim_notice_infinite_loop_empty" = "無限ループに本体がありません。"; +"sim_notice_unsupported_statement_fmt" = "サポートされていない文: %@"; +"sim_notice_invalid_expression_fmt" = "無効な式: %@"; +"sim_notice_unknown_variable_fmt" = "不明な変数: %@"; +"sim_notice_division_by_zero" = "0 で割ることはできません。"; +"sim_notice_whole_number_expected" = "整数を入力してください。"; +"sim_notice_number_expected" = "数値を入力してください。"; diff --git a/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/ko.lproj/Localizable.strings b/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/ko.lproj/Localizable.strings index fbe574d3..0f5f89d5 100644 --- a/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/ko.lproj/Localizable.strings +++ b/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/ko.lproj/Localizable.strings @@ -14,10 +14,10 @@ "simulation_highlight_last" = "마지막 단계"; "simulation_highlight_next" = "다음 단계"; "simulation_not_available" = "Play는 각 단계마다 0.5초씩 쉬면서 시뮬레이션을 자동으로 실행합니다."; -"simulation_play" = "Play"; -"simulation_pause" = "Pause"; -"simulation_step" = "Step"; -"simulation_stop" = "Stop"; +"simulation_play" = "재생"; +"simulation_pause" = "일시정지"; +"simulation_step" = "단계"; +"simulation_stop" = "정지"; "simulation_input" = "입력"; "simulation_input_placeholder" = "입력이 필요하지 않습니다."; "simulation_input_submit" = "OK"; @@ -125,11 +125,11 @@ "inspector_for_placeholder_condition" = "i < 5"; "inspector_for_placeholder_step" = "i++"; -"inspector_io_mode_title" = "Kind"; -"inspector_io_mode_statement" = "Statement"; -"inspector_io_mode_input" = "Input"; -"inspector_io_mode_output" = "Output"; -"inspector_io_mode_help_java_like" = "Input: input: … | Output: output: …"; +"inspector_io_mode_title" = "종류"; +"inspector_io_mode_statement" = "명령문"; +"inspector_io_mode_input" = "입력"; +"inspector_io_mode_output" = "출력"; +"inspector_io_mode_help_java_like" = "입력: input: … | 출력: output: …"; "inspector_add_case" = "케이스 추가"; "inspector_remove_case" = "케이스 제거"; "inspector_group_element" = "요소 텍스트"; @@ -218,3 +218,13 @@ "settings_export_filename_footer_with_date" = "날짜 포함: yyyy-mm-dd-Filename.visustruct"; "settings_export_filename_footer_without_date" = "날짜 없음: Filename.visustruct"; + +/* Simulation: Meldungen */ +"sim_notice_finished" = "시뮬레이션이 끝났습니다."; +"sim_notice_infinite_loop_empty" = "무한 루프에 본문이 없습니다."; +"sim_notice_unsupported_statement_fmt" = "지원되지 않는 명령문: %@"; +"sim_notice_invalid_expression_fmt" = "잘못된 식: %@"; +"sim_notice_unknown_variable_fmt" = "알 수 없는 변수: %@"; +"sim_notice_division_by_zero" = "0으로 나눌 수 없습니다."; +"sim_notice_whole_number_expected" = "정수를 입력하세요."; +"sim_notice_number_expected" = "숫자를 입력하세요."; diff --git a/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/nb.lproj/Localizable.strings b/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/nb.lproj/Localizable.strings index afbf2b53..b3236574 100644 --- a/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/nb.lproj/Localizable.strings +++ b/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/nb.lproj/Localizable.strings @@ -14,10 +14,10 @@ "simulation_highlight_last" = "Siste steg"; "simulation_highlight_next" = "Neste steg"; "simulation_not_available" = "Play kjører simuleringen automatisk med en pause på 0,5 sekund per steg."; -"simulation_play" = "Play"; +"simulation_play" = "Spill av"; "simulation_pause" = "Pause"; -"simulation_step" = "Step"; -"simulation_stop" = "Stop"; +"simulation_step" = "Trinn"; +"simulation_stop" = "Stopp"; "simulation_input" = "Inndata"; "simulation_input_placeholder" = "Ingen inndata kreves."; "simulation_input_submit" = "OK"; @@ -64,11 +64,11 @@ "inspector_for_placeholder_condition" = "i < 5"; "inspector_for_placeholder_step" = "i++"; -"inspector_io_mode_title" = "Kind"; -"inspector_io_mode_statement" = "Statement"; -"inspector_io_mode_input" = "Input"; -"inspector_io_mode_output" = "Output"; -"inspector_io_mode_help_java_like" = "Input: input: … | Output: output: …"; +"inspector_io_mode_title" = "Type"; +"inspector_io_mode_statement" = "Setning"; +"inspector_io_mode_input" = "Inndata"; +"inspector_io_mode_output" = "Utdata"; +"inspector_io_mode_help_java_like" = "Inndata: input: … | Utdata: output: …"; "inspector_add_case" = "Legg til case"; "inspector_remove_case" = "Fjern case"; "inspector_group_element" = "Elementtekst"; @@ -130,3 +130,13 @@ /* Accessibility — code generator floating panel */ "a11y_codegen_panel_drag" = "Dra for å flytte kodegeneratorpanelet"; "about_dateiformat_strk" = "Filer med endelsen .strk kan også åpnes."; + +/* Simulation: Meldungen */ +"sim_notice_finished" = "Simuleringen er ferdig."; +"sim_notice_infinite_loop_empty" = "Den uendelige løkken har ikke noe innhold."; +"sim_notice_unsupported_statement_fmt" = "Setning støttes ikke: %@"; +"sim_notice_invalid_expression_fmt" = "Ugyldig uttrykk: %@"; +"sim_notice_unknown_variable_fmt" = "Ukjent variabel: %@"; +"sim_notice_division_by_zero" = "Divisjon med null."; +"sim_notice_whole_number_expected" = "Skriv inn et heltall."; +"sim_notice_number_expected" = "Skriv inn et tall."; diff --git a/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/nl.lproj/Localizable.strings b/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/nl.lproj/Localizable.strings index 85065903..327027a3 100644 --- a/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/nl.lproj/Localizable.strings +++ b/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/nl.lproj/Localizable.strings @@ -14,9 +14,9 @@ "simulation_highlight_last" = "Last step"; "simulation_highlight_next" = "Next step"; "simulation_not_available" = "Play voert de simulatie automatisch uit met een pauze van 0,5 seconde per stap."; -"simulation_play" = "Play"; -"simulation_pause" = "Pause"; -"simulation_step" = "Step"; +"simulation_play" = "Afspelen"; +"simulation_pause" = "Pauze"; +"simulation_step" = "Stap"; "simulation_stop" = "Stop"; "simulation_input" = "Invoer"; "simulation_input_placeholder" = "Geen invoer vereist."; @@ -64,11 +64,11 @@ "inspector_for_placeholder_condition" = "i < 5"; "inspector_for_placeholder_step" = "i++"; -"inspector_io_mode_title" = "Kind"; -"inspector_io_mode_statement" = "Statement"; -"inspector_io_mode_input" = "Input"; -"inspector_io_mode_output" = "Output"; -"inspector_io_mode_help_java_like" = "Input: input: … | Output: output: …"; +"inspector_io_mode_title" = "Soort"; +"inspector_io_mode_statement" = "Opdracht"; +"inspector_io_mode_input" = "Invoer"; +"inspector_io_mode_output" = "Uitvoer"; +"inspector_io_mode_help_java_like" = "Invoer: input: … | Uitvoer: output: …"; "inspector_add_case" = "Case toevoegen"; "inspector_remove_case" = "Case verwijderen"; "inspector_group_element" = "Elementtekst"; @@ -130,3 +130,13 @@ /* Accessibility — code generator floating panel */ "a11y_codegen_panel_drag" = "Sleep om het codegeneratorpaneel te verplaatsen"; "about_dateiformat_strk" = "Bestanden met de extensie .strk kunnen ook worden geopend."; + +/* Simulation: Meldungen */ +"sim_notice_finished" = "Simulatie voltooid."; +"sim_notice_infinite_loop_empty" = "De oneindige lus heeft geen inhoud."; +"sim_notice_unsupported_statement_fmt" = "Niet-ondersteunde opdracht: %@"; +"sim_notice_invalid_expression_fmt" = "Ongeldige expressie: %@"; +"sim_notice_unknown_variable_fmt" = "Onbekende variabele: %@"; +"sim_notice_division_by_zero" = "Deling door nul."; +"sim_notice_whole_number_expected" = "Voer een geheel getal in."; +"sim_notice_number_expected" = "Voer een getal in."; diff --git a/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/pl.lproj/Localizable.strings b/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/pl.lproj/Localizable.strings index 3c5d85d6..383e3131 100644 --- a/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/pl.lproj/Localizable.strings +++ b/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/pl.lproj/Localizable.strings @@ -14,9 +14,9 @@ "simulation_highlight_last" = "Ostatni krok"; "simulation_highlight_next" = "Następny krok"; "simulation_not_available" = "Play uruchamia symulację automatycznie z pauzą 0,5 sekundy na krok."; -"simulation_play" = "Play"; -"simulation_pause" = "Pause"; -"simulation_step" = "Step"; +"simulation_play" = "Odtwórz"; +"simulation_pause" = "Pauza"; +"simulation_step" = "Krok"; "simulation_stop" = "Stop"; "simulation_input" = "Wejście"; "simulation_input_placeholder" = "Brak wymaganych danych wejściowych."; @@ -125,11 +125,11 @@ "inspector_for_placeholder_condition" = "i < 5"; "inspector_for_placeholder_step" = "i++"; -"inspector_io_mode_title" = "Kind"; -"inspector_io_mode_statement" = "Statement"; -"inspector_io_mode_input" = "Input"; -"inspector_io_mode_output" = "Output"; -"inspector_io_mode_help_java_like" = "Input: input: … | Output: output: …"; +"inspector_io_mode_title" = "Rodzaj"; +"inspector_io_mode_statement" = "Instrukcja"; +"inspector_io_mode_input" = "Wejście"; +"inspector_io_mode_output" = "Wyjście"; +"inspector_io_mode_help_java_like" = "Wejście: input: … | Wyjście: output: …"; "inspector_add_case" = "Dodaj przypadek"; "inspector_remove_case" = "Usuń przypadek"; "inspector_group_element" = "Tekst elementu"; @@ -218,3 +218,13 @@ "settings_export_filename_footer_with_date" = "Z datą: yyyy-mm-dd-Filename.visustruct"; "settings_export_filename_footer_without_date" = "Bez daty: Filename.visustruct"; + +/* Simulation: Meldungen */ +"sim_notice_finished" = "Symulacja zakończona."; +"sim_notice_infinite_loop_empty" = "Pętla nieskończona nie ma treści."; +"sim_notice_unsupported_statement_fmt" = "Nieobsługiwana instrukcja: %@"; +"sim_notice_invalid_expression_fmt" = "Nieprawidłowe wyrażenie: %@"; +"sim_notice_unknown_variable_fmt" = "Nieznana zmienna: %@"; +"sim_notice_division_by_zero" = "Dzielenie przez zero."; +"sim_notice_whole_number_expected" = "Wprowadź liczbę całkowitą."; +"sim_notice_number_expected" = "Wprowadź liczbę."; diff --git a/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/pt-PT.lproj/Localizable.strings b/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/pt-PT.lproj/Localizable.strings index 742d4b67..670a3410 100644 --- a/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/pt-PT.lproj/Localizable.strings +++ b/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/pt-PT.lproj/Localizable.strings @@ -14,10 +14,10 @@ "simulation_highlight_last" = "Último passo"; "simulation_highlight_next" = "Próximo passo"; "simulation_not_available" = "Play executa a simulação automaticamente com uma pausa de 0,5 segundos por passo."; -"simulation_play" = "Play"; -"simulation_pause" = "Pause"; -"simulation_step" = "Step"; -"simulation_stop" = "Stop"; +"simulation_play" = "Reproduzir"; +"simulation_pause" = "Pausa"; +"simulation_step" = "Passo"; +"simulation_stop" = "Parar"; "simulation_input" = "Entrada"; "simulation_input_placeholder" = "Nenhuma entrada necessária."; "simulation_input_submit" = "OK"; @@ -127,11 +127,11 @@ "inspector_for_placeholder_condition" = "i < 5"; "inspector_for_placeholder_step" = "i++"; -"inspector_io_mode_title" = "Kind"; -"inspector_io_mode_statement" = "Statement"; -"inspector_io_mode_input" = "Input"; -"inspector_io_mode_output" = "Output"; -"inspector_io_mode_help_java_like" = "Input: input: … | Output: output: …"; +"inspector_io_mode_title" = "Tipo"; +"inspector_io_mode_statement" = "Instrução"; +"inspector_io_mode_input" = "Entrada"; +"inspector_io_mode_output" = "Saída"; +"inspector_io_mode_help_java_like" = "Entrada: input: … | Saída: output: …"; "inspector_add_case" = "Adicionar caso"; "inspector_remove_case" = "Remover caso"; "inspector_group_element" = "Texto do elemento"; @@ -220,3 +220,13 @@ "settings_export_filename_footer_with_date" = "Com data: yyyy-mm-dd-Filename.visustruct"; "settings_export_filename_footer_without_date" = "Sem data: Filename.visustruct"; + +/* Simulation: Meldungen */ +"sim_notice_finished" = "Simulação terminada."; +"sim_notice_infinite_loop_empty" = "O ciclo infinito não tem corpo."; +"sim_notice_unsupported_statement_fmt" = "Instrução não suportada: %@"; +"sim_notice_invalid_expression_fmt" = "Expressão inválida: %@"; +"sim_notice_unknown_variable_fmt" = "Variável desconhecida: %@"; +"sim_notice_division_by_zero" = "Divisão por zero."; +"sim_notice_whole_number_expected" = "Introduza um número inteiro."; +"sim_notice_number_expected" = "Introduza um número."; diff --git a/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/ru.lproj/Localizable.strings b/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/ru.lproj/Localizable.strings index 58aae1e7..063a0547 100644 --- a/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/ru.lproj/Localizable.strings +++ b/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/ru.lproj/Localizable.strings @@ -14,10 +14,10 @@ "simulation_highlight_last" = "Последний шаг"; "simulation_highlight_next" = "Следующий шаг"; "simulation_not_available" = "Play автоматически выполняет симуляцию с паузой 0,5 секунды на шаг."; -"simulation_play" = "Play"; -"simulation_pause" = "Pause"; -"simulation_step" = "Step"; -"simulation_stop" = "Stop"; +"simulation_play" = "Пуск"; +"simulation_pause" = "Пауза"; +"simulation_step" = "Шаг"; +"simulation_stop" = "Стоп"; "simulation_input" = "Ввод"; "simulation_input_placeholder" = "Ввод не требуется."; "simulation_input_submit" = "OK"; @@ -124,11 +124,11 @@ "inspector_for_placeholder_condition" = "i < 5"; "inspector_for_placeholder_step" = "i++"; -"inspector_io_mode_title" = "Kind"; -"inspector_io_mode_statement" = "Statement"; -"inspector_io_mode_input" = "Input"; -"inspector_io_mode_output" = "Output"; -"inspector_io_mode_help_java_like" = "Input: input: … | Output: output: …"; +"inspector_io_mode_title" = "Вид"; +"inspector_io_mode_statement" = "Инструкция"; +"inspector_io_mode_input" = "Ввод"; +"inspector_io_mode_output" = "Вывод"; +"inspector_io_mode_help_java_like" = "Ввод: input: … | Вывод: output: …"; "inspector_add_case" = "Добавить вариант"; "inspector_remove_case" = "Удалить вариант"; "inspector_group_element" = "Текст элемента"; @@ -217,3 +217,13 @@ "settings_export_filename_footer_with_date" = "С датой: yyyy-mm-dd-Filename.visustruct"; "settings_export_filename_footer_without_date" = "Без даты: Filename.visustruct"; + +/* Simulation: Meldungen */ +"sim_notice_finished" = "Симуляция завершена."; +"sim_notice_infinite_loop_empty" = "У бесконечного цикла нет тела."; +"sim_notice_unsupported_statement_fmt" = "Неподдерживаемая инструкция: %@"; +"sim_notice_invalid_expression_fmt" = "Недопустимое выражение: %@"; +"sim_notice_unknown_variable_fmt" = "Неизвестная переменная: %@"; +"sim_notice_division_by_zero" = "Деление на ноль."; +"sim_notice_whole_number_expected" = "Введите целое число."; +"sim_notice_number_expected" = "Введите число."; diff --git a/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/sv.lproj/Localizable.strings b/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/sv.lproj/Localizable.strings index 54f4708e..efe91c52 100644 --- a/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/sv.lproj/Localizable.strings +++ b/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/sv.lproj/Localizable.strings @@ -14,10 +14,10 @@ "simulation_highlight_last" = "Senaste steg"; "simulation_highlight_next" = "Nästa steg"; "simulation_not_available" = "Play kör simuleringen automatiskt med 0,5 sekunders paus per steg."; -"simulation_play" = "Play"; -"simulation_pause" = "Pause"; -"simulation_step" = "Step"; -"simulation_stop" = "Stop"; +"simulation_play" = "Spela"; +"simulation_pause" = "Paus"; +"simulation_step" = "Steg"; +"simulation_stop" = "Stopp"; "simulation_input" = "Inmatning"; "simulation_input_placeholder" = "Ingen inmatning krävs."; "simulation_input_submit" = "OK"; @@ -64,11 +64,11 @@ "inspector_for_placeholder_condition" = "i < 5"; "inspector_for_placeholder_step" = "i++"; -"inspector_io_mode_title" = "Kind"; -"inspector_io_mode_statement" = "Statement"; -"inspector_io_mode_input" = "Input"; -"inspector_io_mode_output" = "Output"; -"inspector_io_mode_help_java_like" = "Input: input: … | Output: output: …"; +"inspector_io_mode_title" = "Typ"; +"inspector_io_mode_statement" = "Sats"; +"inspector_io_mode_input" = "Inmatning"; +"inspector_io_mode_output" = "Utmatning"; +"inspector_io_mode_help_java_like" = "Inmatning: input: … | Utmatning: output: …"; "inspector_add_case" = "Lägg till case"; "inspector_remove_case" = "Ta bort case"; "inspector_group_element" = "Elementtext"; @@ -130,3 +130,13 @@ /* Accessibility — code generator floating panel */ "a11y_codegen_panel_drag" = "Dra för att flytta kodgeneratorpanelen"; "about_dateiformat_strk" = "Filer med tillägget .strk kan också öppnas."; + +/* Simulation: Meldungen */ +"sim_notice_finished" = "Simuleringen är klar."; +"sim_notice_infinite_loop_empty" = "Den oändliga loopen saknar innehåll."; +"sim_notice_unsupported_statement_fmt" = "Sats som inte stöds: %@"; +"sim_notice_invalid_expression_fmt" = "Ogiltigt uttryck: %@"; +"sim_notice_unknown_variable_fmt" = "Okänd variabel: %@"; +"sim_notice_division_by_zero" = "Division med noll."; +"sim_notice_whole_number_expected" = "Ange ett heltal."; +"sim_notice_number_expected" = "Ange ett tal."; diff --git a/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/tr.lproj/Localizable.strings b/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/tr.lproj/Localizable.strings index 0c68e8f6..b91aab60 100644 --- a/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/tr.lproj/Localizable.strings +++ b/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/tr.lproj/Localizable.strings @@ -14,10 +14,10 @@ "simulation_highlight_last" = "Son adım"; "simulation_highlight_next" = "Sonraki adım"; "simulation_not_available" = "Play simülasyonu adım başına 0,5 saniye duraklamayla otomatik çalıştırır."; -"simulation_play" = "Play"; -"simulation_pause" = "Pause"; -"simulation_step" = "Step"; -"simulation_stop" = "Stop"; +"simulation_play" = "Oynat"; +"simulation_pause" = "Duraklat"; +"simulation_step" = "Adım"; +"simulation_stop" = "Durdur"; "simulation_input" = "Girdi"; "simulation_input_placeholder" = "Girdi gerekli değil."; "simulation_input_submit" = "OK"; @@ -125,11 +125,11 @@ "inspector_for_placeholder_condition" = "i < 5"; "inspector_for_placeholder_step" = "i++"; -"inspector_io_mode_title" = "Kind"; -"inspector_io_mode_statement" = "Statement"; -"inspector_io_mode_input" = "Input"; -"inspector_io_mode_output" = "Output"; -"inspector_io_mode_help_java_like" = "Input: input: … | Output: output: …"; +"inspector_io_mode_title" = "Tür"; +"inspector_io_mode_statement" = "Komut"; +"inspector_io_mode_input" = "Giriş"; +"inspector_io_mode_output" = "Çıkış"; +"inspector_io_mode_help_java_like" = "Giriş: input: … | Çıkış: output: …"; "inspector_add_case" = "Durum ekle"; "inspector_remove_case" = "Durumu kaldır"; "inspector_group_element" = "Öğe metni"; @@ -218,3 +218,13 @@ "settings_export_filename_footer_with_date" = "Tarihli: yyyy-mm-dd-Filename.visustruct"; "settings_export_filename_footer_without_date" = "Tarihsiz: Filename.visustruct"; + +/* Simulation: Meldungen */ +"sim_notice_finished" = "Simülasyon tamamlandı."; +"sim_notice_infinite_loop_empty" = "Sonsuz döngünün gövdesi yok."; +"sim_notice_unsupported_statement_fmt" = "Desteklenmeyen komut: %@"; +"sim_notice_invalid_expression_fmt" = "Geçersiz ifade: %@"; +"sim_notice_unknown_variable_fmt" = "Bilinmeyen değişken: %@"; +"sim_notice_division_by_zero" = "Sıfıra bölme."; +"sim_notice_whole_number_expected" = "Lütfen bir tam sayı girin."; +"sim_notice_number_expected" = "Lütfen bir sayı girin."; diff --git a/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/uk.lproj/Localizable.strings b/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/uk.lproj/Localizable.strings index 7c656f40..f60988e7 100644 --- a/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/uk.lproj/Localizable.strings +++ b/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/uk.lproj/Localizable.strings @@ -14,10 +14,10 @@ "simulation_highlight_last" = "Останній крок"; "simulation_highlight_next" = "Наступний крок"; "simulation_not_available" = "Play автоматично виконує симуляцію з паузою 0,5 секунди на крок."; -"simulation_play" = "Play"; -"simulation_pause" = "Pause"; -"simulation_step" = "Step"; -"simulation_stop" = "Stop"; +"simulation_play" = "Відтворити"; +"simulation_pause" = "Пауза"; +"simulation_step" = "Крок"; +"simulation_stop" = "Стоп"; "simulation_input" = "Ввід"; "simulation_input_placeholder" = "Ввід не потрібен."; "simulation_input_submit" = "OK"; @@ -122,10 +122,10 @@ "inspector_for_placeholder_condition" = "i < 5"; "inspector_for_placeholder_step" = "i++"; -"inspector_io_mode_title" = "Kind"; -"inspector_io_mode_statement" = "Statement"; -"inspector_io_mode_input" = "Input"; -"inspector_io_mode_output" = "Output"; +"inspector_io_mode_title" = "Вид"; +"inspector_io_mode_statement" = "Інструкція"; +"inspector_io_mode_input" = "Введення"; +"inspector_io_mode_output" = "Виведення"; "inspector_io_mode_help_java_like" = "Java: input: int zahl | output: number"; "inspector_add_case" = "Додати випадок"; "inspector_remove_case" = "Видалити випадок"; @@ -215,3 +215,13 @@ "settings_export_filename_footer_with_date" = "З датою: yyyy-mm-dd-Filename.visustruct"; "settings_export_filename_footer_without_date" = "Без дати: Filename.visustruct"; + +/* Simulation: Meldungen */ +"sim_notice_finished" = "Симуляцію завершено."; +"sim_notice_infinite_loop_empty" = "Нескінченний цикл не має тіла."; +"sim_notice_unsupported_statement_fmt" = "Непідтримувана інструкція: %@"; +"sim_notice_invalid_expression_fmt" = "Неприпустимий вираз: %@"; +"sim_notice_unknown_variable_fmt" = "Невідома змінна: %@"; +"sim_notice_division_by_zero" = "Ділення на нуль."; +"sim_notice_whole_number_expected" = "Введіть ціле число."; +"sim_notice_number_expected" = "Введіть число."; diff --git a/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/zh-Hans.lproj/Localizable.strings b/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/zh-Hans.lproj/Localizable.strings index 5a78103b..3499e86f 100644 --- a/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/zh-Hans.lproj/Localizable.strings +++ b/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/zh-Hans.lproj/Localizable.strings @@ -14,10 +14,10 @@ "simulation_highlight_last" = "上一步"; "simulation_highlight_next" = "下一步"; "simulation_not_available" = "Play 会自动运行模拟,每步暂停 0.5 秒。"; -"simulation_play" = "Play"; -"simulation_pause" = "Pause"; -"simulation_step" = "Step"; -"simulation_stop" = "Stop"; +"simulation_play" = "播放"; +"simulation_pause" = "暂停"; +"simulation_step" = "单步"; +"simulation_stop" = "停止"; "simulation_input" = "输入"; "simulation_input_placeholder" = "不需要输入。"; "simulation_input_submit" = "OK"; @@ -125,11 +125,11 @@ "inspector_for_placeholder_condition" = "i < 5"; "inspector_for_placeholder_step" = "i++"; -"inspector_io_mode_title" = "Kind"; -"inspector_io_mode_statement" = "Statement"; -"inspector_io_mode_input" = "Input"; -"inspector_io_mode_output" = "Output"; -"inspector_io_mode_help_java_like" = "Input: input: … | Output: output: …"; +"inspector_io_mode_title" = "类型"; +"inspector_io_mode_statement" = "语句"; +"inspector_io_mode_input" = "输入"; +"inspector_io_mode_output" = "输出"; +"inspector_io_mode_help_java_like" = "输入: input: … | 输出: output: …"; "inspector_add_case" = "添加分支"; "inspector_remove_case" = "移除分支"; "inspector_group_element" = "元素文本"; @@ -218,3 +218,13 @@ "settings_export_filename_footer_with_date" = "含日期: yyyy-mm-dd-Filename.visustruct"; "settings_export_filename_footer_without_date" = "不含日期: Filename.visustruct"; + +/* Simulation: Meldungen */ +"sim_notice_finished" = "模拟已结束。"; +"sim_notice_infinite_loop_empty" = "无限循环没有循环体。"; +"sim_notice_unsupported_statement_fmt" = "不支持的语句:%@"; +"sim_notice_invalid_expression_fmt" = "无效的表达式:%@"; +"sim_notice_unknown_variable_fmt" = "未知变量:%@"; +"sim_notice_division_by_zero" = "除数为零。"; +"sim_notice_whole_number_expected" = "请输入整数。"; +"sim_notice_number_expected" = "请输入数字。"; diff --git a/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/zh-Hant.lproj/Localizable.strings b/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/zh-Hant.lproj/Localizable.strings index 0183e7fc..d634972b 100644 --- a/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/zh-Hant.lproj/Localizable.strings +++ b/VisuStruct-iOS/VisuStructXcodeOpen/VisuStruct/zh-Hant.lproj/Localizable.strings @@ -14,10 +14,10 @@ "simulation_highlight_last" = "上一步"; "simulation_highlight_next" = "下一步"; "simulation_not_available" = "Play 會自動執行模擬,每步暫停 0.5 秒。"; -"simulation_play" = "Play"; -"simulation_pause" = "Pause"; -"simulation_step" = "Step"; -"simulation_stop" = "Stop"; +"simulation_play" = "播放"; +"simulation_pause" = "暫停"; +"simulation_step" = "單步"; +"simulation_stop" = "停止"; "simulation_input" = "輸入"; "simulation_input_placeholder" = "不需要輸入。"; "simulation_input_submit" = "OK"; @@ -125,11 +125,11 @@ "inspector_for_placeholder_condition" = "i < 5"; "inspector_for_placeholder_step" = "i++"; -"inspector_io_mode_title" = "Kind"; -"inspector_io_mode_statement" = "Statement"; -"inspector_io_mode_input" = "Input"; -"inspector_io_mode_output" = "Output"; -"inspector_io_mode_help_java_like" = "Input: input: … | Output: output: …"; +"inspector_io_mode_title" = "類型"; +"inspector_io_mode_statement" = "敘述"; +"inspector_io_mode_input" = "輸入"; +"inspector_io_mode_output" = "輸出"; +"inspector_io_mode_help_java_like" = "輸入: input: … | 輸出: output: …"; "inspector_add_case" = "新增分支"; "inspector_remove_case" = "移除分支"; "inspector_group_element" = "元素文字"; @@ -218,3 +218,13 @@ "settings_export_filename_footer_with_date" = "含日期: yyyy-mm-dd-Filename.visustruct"; "settings_export_filename_footer_without_date" = "不含日期: Filename.visustruct"; + +/* Simulation: Meldungen */ +"sim_notice_finished" = "模擬已結束。"; +"sim_notice_infinite_loop_empty" = "無限迴圈沒有迴圈主體。"; +"sim_notice_unsupported_statement_fmt" = "不支援的敘述:%@"; +"sim_notice_invalid_expression_fmt" = "無效的運算式:%@"; +"sim_notice_unknown_variable_fmt" = "未知變數:%@"; +"sim_notice_division_by_zero" = "除數為零。"; +"sim_notice_whole_number_expected" = "請輸入整數。"; +"sim_notice_number_expected" = "請輸入數字。";