From 55991808cf5228d053151bdae73a177f39280230 Mon Sep 17 00:00:00 2001 From: Sven Date: Wed, 22 Apr 2026 18:48:01 +0200 Subject: [PATCH] Fix #21: Onboarding-Fragebogen lokalisiert + Skip-Button besser sichtbar MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - PersonalityModels: Alle 30 QuizQuestion-Strings in String(localized:) gewrappt → Quiz nutzt jetzt korrekt die Lokaliserungsstrings (vorher: stale in xcstrings) - PersonalityQuizView: "Überspringen"-Button in allen 3 Screens vereinheitlicht → .subheadline.weight(.medium) + .secondary statt caption/tertiary Co-Authored-By: Claude Sonnet 4.6 --- nahbar/nahbar/Localizable.xcstrings | 32 ++----------- nahbar/nahbar/PersonalityModels.swift | 60 ++++++++++++------------- nahbar/nahbar/PersonalityQuizView.swift | 8 ++-- 3 files changed, 37 insertions(+), 63 deletions(-) diff --git a/nahbar/nahbar/Localizable.xcstrings b/nahbar/nahbar/Localizable.xcstrings index e1d4f8d..473e9c3 100644 --- a/nahbar/nahbar/Localizable.xcstrings +++ b/nahbar/nahbar/Localizable.xcstrings @@ -894,7 +894,6 @@ } }, "Auf einer Nachbarschaftsparty kennst du kaum jemanden." : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -1588,7 +1587,6 @@ } }, "Du bist enttäuscht und brauchst Zeit, um dich neu zu sortieren." : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -1599,7 +1597,6 @@ } }, "Du erklärst ehrlich, dass es dir gerade nicht passt." : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -1610,7 +1607,6 @@ } }, "Du erscheinst wie abgemacht – dein Wort gilt." : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -1621,7 +1617,6 @@ } }, "Du fragst dich, ob du etwas falsch gemacht hast, und das lässt dich nicht los." : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -1632,7 +1627,6 @@ } }, "Du fragst kurz nach, ob es sich verschieben lässt." : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -1643,7 +1637,6 @@ } }, "Du gehst aktiv auf Fremde zu und fängst Gespräche an." : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -1654,7 +1647,6 @@ } }, "Du gehst einfach hin – Neugier auf fremde Menschen treibt dich." : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -1665,7 +1657,6 @@ } }, "Du genießt die Ruhe und tankst alleine auf." : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -1676,7 +1667,6 @@ } }, "Du hast einem Freund versprochen zu helfen. Am Morgen bist du müde." : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -1687,7 +1677,6 @@ } }, "Du hast es dir sofort notiert und planst etwas Besonderes." : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -1698,7 +1687,6 @@ } }, "Du hilfst trotzdem – anderen etwas Gutes tun liegt dir." : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -1719,7 +1707,6 @@ } }, "Du meldest dich locker – er ist wahrscheinlich einfach beschäftigt." : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -1730,7 +1717,6 @@ } }, "Du reagierst spontan, wenn der Tag kommt." : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -1741,7 +1727,6 @@ } }, "Du rufst spontan Freunde an und organisierst ein Treffen." : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -1752,7 +1737,6 @@ } }, "Du sagst sofort zu – neue Erfahrungen reizen dich." : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -1761,6 +1745,9 @@ } } } + }, + "Du schlägst lieber etwas vor, das ihr beide gut kennt." : { + }, "Du schlägt lieber etwas vor, das ihr beide gut kennt." : { "extractionState" : "stale", @@ -1774,7 +1761,6 @@ } }, "Du sprichst deine Sorgen an, auch wenn es Spannung erzeugt." : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -1785,7 +1771,6 @@ } }, "Du unterstützt ihn und behältst deine Bedenken für dich." : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -1796,7 +1781,6 @@ } }, "Du wartest, bis ein Bekannter mitkommt." : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -1807,7 +1791,6 @@ } }, "Du wartest, bis jemand dich anspricht." : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -1818,7 +1801,6 @@ } }, "Du zuckst die Schultern und findest schnell etwas anderes." : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -1920,7 +1902,6 @@ } }, "Ein Freund erzählt von einem Plan, den du für einen Fehler hältst." : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -1931,7 +1912,6 @@ } }, "Ein Freund schlägt spontan eine Aktivität vor, die du noch nie gemacht hast." : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -1942,7 +1922,6 @@ } }, "Ein Nachbar bittet um einen Gefallen, der dir gerade ungelegen kommt." : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -2899,7 +2878,6 @@ } }, "In deinem Viertel gibt es ein neues Treffen – niemand, den du kennst, ist dabei." : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -3677,7 +3655,6 @@ } }, "Nach einer anstrengenden Woche hast du einen freien Samstag." : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -3745,7 +3722,6 @@ } }, "Nächste Woche hat eine Freundin Geburtstag." : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -5253,7 +5229,6 @@ } }, "Verabredungen mit Freunden fallen kurzfristig aus." : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -5397,7 +5372,6 @@ } }, "Von einem guten Freund hast du zwei Wochen nichts gehört." : { - "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { diff --git a/nahbar/nahbar/PersonalityModels.swift b/nahbar/nahbar/PersonalityModels.swift index 31da3ed..80fe44a 100644 --- a/nahbar/nahbar/PersonalityModels.swift +++ b/nahbar/nahbar/PersonalityModels.swift @@ -97,90 +97,90 @@ struct QuizQuestion: Identifiable { QuizQuestion( id: "O1", dimension: .openness, - situation: "Ein Freund schlägt spontan eine Aktivität vor, die du noch nie gemacht hast.", - optionA: "Du sagst sofort zu – neue Erfahrungen reizen dich.", - optionB: "Du schlägst lieber etwas vor, das ihr beide gut kennt.", + situation: String(localized: "Ein Freund schlägt spontan eine Aktivität vor, die du noch nie gemacht hast."), + optionA: String(localized: "Du sagst sofort zu – neue Erfahrungen reizen dich."), + optionB: String(localized: "Du schlägst lieber etwas vor, das ihr beide gut kennt."), optionAScore: 1 ), // Offenheit O2 QuizQuestion( id: "O2", dimension: .openness, - situation: "In deinem Viertel gibt es ein neues Treffen – niemand, den du kennst, ist dabei.", - optionA: "Du gehst einfach hin – Neugier auf fremde Menschen treibt dich.", - optionB: "Du wartest, bis ein Bekannter mitkommt.", + situation: String(localized: "In deinem Viertel gibt es ein neues Treffen – niemand, den du kennst, ist dabei."), + optionA: String(localized: "Du gehst einfach hin – Neugier auf fremde Menschen treibt dich."), + optionB: String(localized: "Du wartest, bis ein Bekannter mitkommt."), optionAScore: 1 ), // Verlässlichkeit C1 QuizQuestion( id: "C1", dimension: .conscientiousness, - situation: "Du hast einem Freund versprochen zu helfen. Am Morgen bist du müde.", - optionA: "Du erscheinst wie abgemacht – dein Wort gilt.", - optionB: "Du fragst kurz nach, ob es sich verschieben lässt.", + situation: String(localized: "Du hast einem Freund versprochen zu helfen. Am Morgen bist du müde."), + optionA: String(localized: "Du erscheinst wie abgemacht – dein Wort gilt."), + optionB: String(localized: "Du fragst kurz nach, ob es sich verschieben lässt."), optionAScore: 1 ), // Verlässlichkeit C2 QuizQuestion( id: "C2", dimension: .conscientiousness, - situation: "Nächste Woche hat eine Freundin Geburtstag.", - optionA: "Du hast es dir sofort notiert und planst etwas Besonderes.", - optionB: "Du reagierst spontan, wenn der Tag kommt.", + situation: String(localized: "Nächste Woche hat eine Freundin Geburtstag."), + optionA: String(localized: "Du hast es dir sofort notiert und planst etwas Besonderes."), + optionB: String(localized: "Du reagierst spontan, wenn der Tag kommt."), optionAScore: 1 ), // Geselligkeit E1 QuizQuestion( id: "E1", dimension: .extraversion, - situation: "Nach einer anstrengenden Woche hast du einen freien Samstag.", - optionA: "Du rufst spontan Freunde an und organisierst ein Treffen.", - optionB: "Du genießt die Ruhe und tankst alleine auf.", + situation: String(localized: "Nach einer anstrengenden Woche hast du einen freien Samstag."), + optionA: String(localized: "Du rufst spontan Freunde an und organisierst ein Treffen."), + optionB: String(localized: "Du genießt die Ruhe und tankst alleine auf."), optionAScore: 1 ), // Geselligkeit E2 QuizQuestion( id: "E2", dimension: .extraversion, - situation: "Auf einer Nachbarschaftsparty kennst du kaum jemanden.", - optionA: "Du gehst aktiv auf Fremde zu und fängst Gespräche an.", - optionB: "Du wartest, bis jemand dich anspricht.", + situation: String(localized: "Auf einer Nachbarschaftsparty kennst du kaum jemanden."), + optionA: String(localized: "Du gehst aktiv auf Fremde zu und fängst Gespräche an."), + optionB: String(localized: "Du wartest, bis jemand dich anspricht."), optionAScore: 1 ), // Verträglichkeit A1 QuizQuestion( id: "A1", dimension: .agreeableness, - situation: "Ein Nachbar bittet um einen Gefallen, der dir gerade ungelegen kommt.", - optionA: "Du hilfst trotzdem – anderen etwas Gutes tun liegt dir.", - optionB: "Du erklärst ehrlich, dass es dir gerade nicht passt.", + situation: String(localized: "Ein Nachbar bittet um einen Gefallen, der dir gerade ungelegen kommt."), + optionA: String(localized: "Du hilfst trotzdem – anderen etwas Gutes tun liegt dir."), + optionB: String(localized: "Du erklärst ehrlich, dass es dir gerade nicht passt."), optionAScore: 1 ), // Verträglichkeit A2 QuizQuestion( id: "A2", dimension: .agreeableness, - situation: "Ein Freund erzählt von einem Plan, den du für einen Fehler hältst.", - optionA: "Du unterstützt ihn und behältst deine Bedenken für dich.", - optionB: "Du sprichst deine Sorgen an, auch wenn es Spannung erzeugt.", + situation: String(localized: "Ein Freund erzählt von einem Plan, den du für einen Fehler hältst."), + optionA: String(localized: "Du unterstützt ihn und behältst deine Bedenken für dich."), + optionB: String(localized: "Du sprichst deine Sorgen an, auch wenn es Spannung erzeugt."), optionAScore: 1 ), // Ausgeglichenheit N1 (invertiert: A = stabil = hohes N-inverted) QuizQuestion( id: "N1", dimension: .neuroticism, - situation: "Von einem guten Freund hast du zwei Wochen nichts gehört.", - optionA: "Du meldest dich locker – er ist wahrscheinlich einfach beschäftigt.", - optionB: "Du fragst dich, ob du etwas falsch gemacht hast, und das lässt dich nicht los.", + situation: String(localized: "Von einem guten Freund hast du zwei Wochen nichts gehört."), + optionA: String(localized: "Du meldest dich locker – er ist wahrscheinlich einfach beschäftigt."), + optionB: String(localized: "Du fragst dich, ob du etwas falsch gemacht hast, und das lässt dich nicht los."), optionAScore: 0 // A = emotional stabil = 0 Neurotizismus-Punkte ), // Ausgeglichenheit N2 (invertiert) QuizQuestion( id: "N2", dimension: .neuroticism, - situation: "Verabredungen mit Freunden fallen kurzfristig aus.", - optionA: "Du zuckst die Schultern und findest schnell etwas anderes.", - optionB: "Du bist enttäuscht und brauchst Zeit, um dich neu zu sortieren.", + situation: String(localized: "Verabredungen mit Freunden fallen kurzfristig aus."), + optionA: String(localized: "Du zuckst die Schultern und findest schnell etwas anderes."), + optionB: String(localized: "Du bist enttäuscht und brauchst Zeit, um dich neu zu sortieren."), optionAScore: 0 // A = emotional stabil = 0 Neurotizismus-Punkte ), ] diff --git a/nahbar/nahbar/PersonalityQuizView.swift b/nahbar/nahbar/PersonalityQuizView.swift index 6932145..d253022 100644 --- a/nahbar/nahbar/PersonalityQuizView.swift +++ b/nahbar/nahbar/PersonalityQuizView.swift @@ -125,7 +125,7 @@ struct QuizIntroScreen: View { Button(action: onSkip) { Text("Überspringen") - .font(.subheadline) + .font(.subheadline.weight(.medium)) .foregroundStyle(.secondary) } .accessibilityLabel("Quiz überspringen") @@ -222,7 +222,7 @@ private struct GenderSelectionScreen: View { Button(action: onSkip) { Text("Überspringen") - .font(.subheadline) + .font(.subheadline.weight(.medium)) .foregroundStyle(.secondary) } .accessibilityLabel("Quiz überspringen") @@ -273,8 +273,8 @@ private struct QuizQuestionsScreen: View { Button(action: skipCurrentQuestion) { Text("Überspringen") - .font(NahbarInsightStyle.captionFont) - .foregroundStyle(.tertiary) + .font(.subheadline.weight(.medium)) + .foregroundStyle(.secondary) } .padding(.bottom, 32) }