Skip to content

Commit

Permalink
Merge pull request #306 from lucastronova/main
Browse files Browse the repository at this point in the history
Add indefinite pronouns
  • Loading branch information
andrewtavis authored May 26, 2023
2 parents 143ad27 + cc86ab0 commit 82b556e
Show file tree
Hide file tree
Showing 4 changed files with 84 additions and 35 deletions.
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

0 comments on commit 82b556e

Please sign in to comment.