Fix #21: Onboarding-Fragebogen lokalisiert + Skip-Button besser sichtbar
- 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 <noreply@anthropic.com>
This commit is contained in:
@@ -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" : {
|
||||
|
||||
@@ -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
|
||||
),
|
||||
]
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user