Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add indefinite pronouns #306

Merged
merged 4 commits into from
May 26, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ Emojis for the following are chosen based on [gitmoji](https://gitmoji.dev/).
### 🗃️ Data Added

- French: 2 nouns
- German: 44 nouns, 1 verb, 20 prepositions
- German: 44 nouns, 1 verb, 20 prepositions, 9 pronouns
- Italian: 2 nouns
- Spanish: 350 nouns, 102 verbs
- Swedish: 635 nouns, 27 verbs
Expand Down
13 changes: 10 additions & 3 deletions Keyboards/KeyboardsBase/KeyboardViewController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -1056,6 +1056,13 @@ class KeyboardViewController: UIInputViewController {

for btn in get2x2FormDisplayButtons() {
activateBtn(btn: btn)
btn.isEnabled = true
}

if controllerLanguage == "German"
&& [.accusativeIndefinite, .dativeIndefinite, .genitiveIndefinite].contains(deCaseDeclensionState) {
deactivateBtn(btn: formKeyBR)
formKeyBR.isEnabled = false
}

if DeviceType.isPad {
Expand Down Expand Up @@ -1190,9 +1197,9 @@ class KeyboardViewController: UIInputViewController {
commandState == .selectCaseDeclension
&& controllerLanguage == "German"
&& [
.accusative, .accusativeDemonstrative,
.dative, .dativeDemonstrative,
.genitive, .genitiveDemonstrative,
.accusativeDefinite, .accusativeIndefinite, .accusativeDemonstrative,
.dativeDefinite, .dativeIndefinite, .dativeDemonstrative,
.genitiveDefinite, .genitiveIndefinite, .genitiveDemonstrative,
].contains(deCaseDeclensionState)
{
formsDisplayDimensions = .view2x2
Expand Down
6 changes: 3 additions & 3 deletions Keyboards/KeyboardsBase/ScribeFunctionality/Conjugate.swift
Original file line number Diff line number Diff line change
Expand Up @@ -285,13 +285,13 @@ func resetCaseDeclensionState() {
if controllerLanguage == "German" {
if prepAnnotationForm.contains("Acc") {
conjViewShiftButtonsState = .leftInactive
deCaseDeclensionState = .accusative
deCaseDeclensionState = .accusativeDefinite
} else if prepAnnotationForm.contains("Dat") {
conjViewShiftButtonsState = .bothActive
deCaseDeclensionState = .dative
deCaseDeclensionState = .dativeDefinite
} else {
conjViewShiftButtonsState = .bothActive
deCaseDeclensionState = .genitive
deCaseDeclensionState = .genitiveDefinite
}
} else if controllerLanguage == "Russian" {
if prepAnnotationForm.contains("Acc") {
Expand Down
98 changes: 70 additions & 28 deletions Keyboards/LanguageKeyboards/German/DECommandVariables.swift
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,9 @@ func deSetCaseDeclensionLabels() {
}
if deCaseVariantDeclensionState == .disabled {
if [
.accusative, .accusativeDemonstrative,
.dative, .dativeDemonstrative,
.genitive, .genitiveDemonstrative,
.accusativeDefinite, .accusativeIndefinite, .accusativeDemonstrative,
.dativeDefinite, .dativeIndefinite, .dativeDemonstrative,
.genitiveDefinite, .genitiveIndefinite, .genitiveDemonstrative,
].contains(deCaseDeclensionState) {
formLabelsDict["TL"] = "M"
formLabelsDict["TR"] = "F"
Expand Down Expand Up @@ -82,15 +82,18 @@ enum DEConjugationState {

/// What the conjugation state is for the case conjugate feature.
enum DECaseDeclensionState {
case accusative
case accusativeDefinite
case accusativeIndefinite
case accusativePersonal
case accusativePossessive
case accusativeDemonstrative
case dative
case dativeDefinite
case dativeIndefinite
case dativePersonal
case dativePossessive
case dativeDemonstrative
case genitive
case genitiveDefinite
case genitiveIndefinite
case genitivePersonal
case genitivePossessive
case genitiveDemonstrative
Expand Down Expand Up @@ -141,7 +144,7 @@ enum DECaseVariantDeclensionState {
}

var deConjugationState: DEConjugationState = .indicativePresent
var deCaseDeclensionState: DECaseDeclensionState = .accusative
var deCaseDeclensionState: DECaseDeclensionState = .accusativeDefinite
var deCaseVariantDeclensionState: DECaseVariantDeclensionState = .disabled

/// Sets the title of the command bar when the keyboard is in conjugate mode.
Expand All @@ -165,24 +168,30 @@ func deGetConjugationTitle() -> String {
func deGetCaseDeclensionTitle() -> String {
if deCaseVariantDeclensionState == .disabled {
switch deCaseDeclensionState {
case .accusative:
return commandPromptSpacing + "Akkusativ Pronomen"
case .accusativeDefinite:
return commandPromptSpacing + "Akkusativ Definitpronomen"
case .accusativeIndefinite:
return commandPromptSpacing + "Akkusativ Indefinitpronomen"
case .accusativePersonal:
return commandPromptSpacing + "Akkusativ Personalpronomen"
case .accusativePossessive:
return commandPromptSpacing + "Akkusativ Possessivpronomen"
case .accusativeDemonstrative:
return commandPromptSpacing + "Akkusativ Demonstrativpronomen"
case .dative:
return commandPromptSpacing + "Dativ Pronomen"
case .dativeDefinite:
return commandPromptSpacing + "Dativ Definitpronomen"
case .dativeIndefinite:
return commandPromptSpacing + "Dativ Indefinitpronomen"
case .dativePersonal:
return commandPromptSpacing + "Dativ Personalpronomen"
case .dativePossessive:
return commandPromptSpacing + "Dativ Possessivpronomen"
case .dativeDemonstrative:
return commandPromptSpacing + "Dativ Demonstrativpronomen"
case .genitive:
return commandPromptSpacing + "Genitiv Pronomen"
case .genitiveDefinite:
return commandPromptSpacing + "Genitiv Definitpronomen"
case .genitiveIndefinite:
return commandPromptSpacing + "Genitiv Indefinitpronomen"
case .genitivePersonal:
return commandPromptSpacing + "Genitiv Personalpronomen"
case .genitivePossessive:
Expand Down Expand Up @@ -231,11 +240,16 @@ func deGetConjugationState() -> String {
/// Returns the appropriate pronoun options given the case.
func deSetCaseDeclensions() {
switch deCaseDeclensionState {
case .accusative:
case .accusativeDefinite:
formTopLeft = "den"
formTopRight = "die"
formBottomLeft = "das"
formBottomRight = "die"
case .accusativeIndefinite:
formTopLeft = "einen"
formTopRight = "eine"
formBottomLeft = "ein"
formBottomRight = ""
case .accusativePersonal:
formFPS = "mich"
formSPS = "dich/Sie"
Expand All @@ -248,11 +262,16 @@ func deSetCaseDeclensions() {
formTopRight = "diese"
formBottomLeft = "dieses"
formBottomRight = "diese"
case .dative:
case .dativeDefinite:
formTopLeft = "dem"
formTopRight = "der"
formBottomLeft = "dem"
formBottomRight = "den"
case .dativeIndefinite:
formTopLeft = "einem"
formTopRight = "einer"
formBottomLeft = "einem"
formBottomRight = ""
case .dativePersonal:
formFPS = "mir"
formSPS = "dir/Ihnen"
Expand All @@ -265,11 +284,16 @@ func deSetCaseDeclensions() {
formTopRight = "dieser"
formBottomLeft = "diesem"
formBottomRight = "diesen"
case .genitive:
case .genitiveDefinite:
formTopLeft = "des"
formTopRight = "der"
formBottomLeft = "des"
formBottomRight = "der"
case .genitiveIndefinite:
formTopLeft = "eines"
formTopRight = "einer"
formBottomLeft = "eines"
formBottomRight = ""
case .genitivePersonal:
formFPS = "meiner"
formSPS = "deiner/Ihrer"
Expand Down Expand Up @@ -467,35 +491,44 @@ func deSetCaseVariantDeclensions() {
func deConjugationStateLeft() {
if commandState == .selectCaseDeclension, deCaseVariantDeclensionState == .disabled {
switch deCaseDeclensionState {
case .accusative:
case .accusativeDefinite:
break
case .accusativePersonal:
case .accusativeIndefinite:
conjViewShiftButtonsState = .leftInactive
deCaseDeclensionState = .accusative
deCaseDeclensionState = .accusativeDefinite
case .accusativePersonal:
conjViewShiftButtonsState = .bothActive
deCaseDeclensionState = .accusativeIndefinite
case .accusativePossessive:
conjViewShiftButtonsState = .bothActive
deCaseDeclensionState = .accusativePersonal
case .accusativeDemonstrative:
conjViewShiftButtonsState = .bothActive
deCaseDeclensionState = .accusativePossessive
case .dative:
case .dativeDefinite:
conjViewShiftButtonsState = .bothActive
deCaseDeclensionState = .accusativeDemonstrative
case .dativeIndefinite:
conjViewShiftButtonsState = .bothActive
deCaseDeclensionState = .dativeDefinite
case .dativePersonal:
conjViewShiftButtonsState = .bothActive
deCaseDeclensionState = .dative
deCaseDeclensionState = .dativeIndefinite
case .dativePossessive:
conjViewShiftButtonsState = .bothActive
deCaseDeclensionState = .dativePersonal
case .dativeDemonstrative:
conjViewShiftButtonsState = .bothActive
deCaseDeclensionState = .dativePossessive
case .genitive:
case .genitiveDefinite:
conjViewShiftButtonsState = .bothActive
deCaseDeclensionState = .dativeDemonstrative
case .genitiveIndefinite:
conjViewShiftButtonsState = .bothActive
deCaseDeclensionState = .genitiveDefinite
case .genitivePersonal:
conjViewShiftButtonsState = .bothActive
deCaseDeclensionState = .genitive
deCaseDeclensionState = .genitiveIndefinite
case .genitivePossessive:
conjViewShiftButtonsState = .bothActive
deCaseDeclensionState = .genitivePersonal
Expand All @@ -521,7 +554,10 @@ func deConjugationStateLeft() {
func deConjugationStateRight() {
if commandState == .selectCaseDeclension, deCaseVariantDeclensionState == .disabled {
switch deCaseDeclensionState {
case .accusative:
case .accusativeDefinite:
conjViewShiftButtonsState = .bothActive
deCaseDeclensionState = .accusativeIndefinite
case .accusativeIndefinite:
conjViewShiftButtonsState = .bothActive
deCaseDeclensionState = .accusativePersonal
case .accusativePersonal:
Expand All @@ -532,8 +568,11 @@ func deConjugationStateRight() {
deCaseDeclensionState = .accusativeDemonstrative
case .accusativeDemonstrative:
conjViewShiftButtonsState = .bothActive
deCaseDeclensionState = .dative
case .dative:
deCaseDeclensionState = .dativeDefinite
case .dativeDefinite:
conjViewShiftButtonsState = .bothActive
deCaseDeclensionState = .dativeIndefinite
case .dativeIndefinite:
conjViewShiftButtonsState = .bothActive
deCaseDeclensionState = .dativePersonal
case .dativePersonal:
Expand All @@ -544,8 +583,11 @@ func deConjugationStateRight() {
deCaseDeclensionState = .dativeDemonstrative
case .dativeDemonstrative:
conjViewShiftButtonsState = .bothActive
deCaseDeclensionState = .genitive
case .genitive:
deCaseDeclensionState = .genitiveDefinite
case .genitiveDefinite:
conjViewShiftButtonsState = .bothActive
deCaseDeclensionState = .genitiveIndefinite
case .genitiveIndefinite:
conjViewShiftButtonsState = .bothActive
deCaseDeclensionState = .genitivePersonal
case .genitivePersonal:
Expand Down