diff --git a/Keyboards/KeyboardsBase/InterfaceVariables.swift b/Keyboards/KeyboardsBase/InterfaceVariables.swift index a971264a..967bacee 100644 --- a/Keyboards/KeyboardsBase/InterfaceVariables.swift +++ b/Keyboards/KeyboardsBase/InterfaceVariables.swift @@ -160,6 +160,7 @@ let languagesStringDict = [ "German": NSLocalizedString("app._global.german", value: "German", comment: ""), "Indonesian": NSLocalizedString("app._global.indonesian", value: "Indonesian", comment: ""), "Italian": NSLocalizedString("app._global.italian", value: "Italian", comment: ""), + "Norwegian": NSLocalizedString("app._global.norwegian", value: "Norwegian", comment: ""), "Portuguese": NSLocalizedString("app._global.portuguese", value: "Portuguese", comment: ""), "Russian": NSLocalizedString("app._global.russian", value: "Russian", comment: ""), "Spanish": NSLocalizedString("app._global.spanish", value: "Spanish", comment: ""), @@ -200,6 +201,7 @@ let keyboardLayoutDict: [String: () -> Void] = [ "German": setDEKeyboardLayout, "Indonesian": setIDKeyboardLayout, "Italian": setITKeyboardLayout, + "Norwegian": setNBKeyboardLayout, "Portuguese": setPTKeyboardLayout, "Russian": setRUKeyboardLayout, "Spanish": setESKeyboardLayout, diff --git a/Keyboards/KeyboardsBase/KeyAltChars.swift b/Keyboards/KeyboardsBase/KeyAltChars.swift index 4606b8c6..0eea0500 100644 --- a/Keyboards/KeyboardsBase/KeyAltChars.swift +++ b/Keyboards/KeyboardsBase/KeyAltChars.swift @@ -26,6 +26,9 @@ func setKeyboardAlternateKeys() { "u": uAlternateKeys, "ä": äAlternateKeys, "ö": öAlternateKeys, + "å": åAlternateKeys, + "æ": æAlternateKeys, + "ø": øAlternateKeys, "y": yAlternateKeys, "s": sAlternateKeys, "l": lAlternateKeys, @@ -98,6 +101,9 @@ var dAlternateKeys = [String]() var cAlternateKeys = [String]() var nAlternateKeys = [String]() var ьAlternateKeys = [String]() +var åAlternateKeys = [String]() +var æAlternateKeys = [String]() +var øAlternateKeys = [String]() /// Creates the shape that allows left most buttons to pop up after being pressed. /// diff --git a/Keyboards/KeyboardsBase/KeyboardViewController.swift b/Keyboards/KeyboardsBase/KeyboardViewController.swift index 56e4cf58..2d3f9689 100644 --- a/Keyboards/KeyboardsBase/KeyboardViewController.swift +++ b/Keyboards/KeyboardsBase/KeyboardViewController.swift @@ -1737,7 +1737,7 @@ class KeyboardViewController: UIInputViewController { ) ) || ( commandState == .translate - && ["en", "in", "it", "pt"].contains(getControllerTranslateLangCode()) + && ["en", "id", "it", "pt"].contains(getControllerTranslateLangCode()) )) { leftPadding = keyWidth / 4 addPadding(to: stackView1, width: leftPadding, key: "a") @@ -1751,7 +1751,7 @@ class KeyboardViewController: UIInputViewController { && ["English", "Indonesian", "Italian", "Portuguese"].contains(controllerLanguage) ) || ( commandState == .translate - && ["en", "in", "it", "pt"].contains(getControllerTranslateLangCode()) + && ["en", "id", "it", "pt"].contains(getControllerTranslateLangCode()) )) { leftPadding = keyWidth / 3 addPadding(to: stackView1, width: leftPadding, key: "a") @@ -1894,7 +1894,7 @@ class KeyboardViewController: UIInputViewController { ) ) || ( commandState == .translate - && ["en", "in", "it", "pt"].contains(getControllerTranslateLangCode()) + && ["en", "id", "it", "pt"].contains(getControllerTranslateLangCode()) )) { rightPadding = keyWidth / 4 addPadding(to: stackView1, width: rightPadding, key: "l") diff --git a/Keyboards/LanguageKeyboards/Danish/DAInterfaceVariables.swift b/Keyboards/LanguageKeyboards/Danish/DAInterfaceVariables.swift index 5542753a..5d05aaad 100644 --- a/Keyboards/LanguageKeyboards/Danish/DAInterfaceVariables.swift +++ b/Keyboards/LanguageKeyboards/Danish/DAInterfaceVariables.swift @@ -39,7 +39,7 @@ struct DAKeyboardProvider: KeyboardProviderProtocol { .addRow(["q", "w", "e", "r", "t", "y", "u", "i", "o", "p", "å"]) .addRow(["a", "s", "d", "f", "g", "h", "j", "k", "l", "æ", "ø"]) .addRow(["shift", "z", "x", "c", "v", "b", "n", "m", "delete"]) - .addRow(["123", "selectKeyboard", "space", "return"]) // "undo" + .addRow(["123", "selectKeyboard", "space", "return"]) .build() } @@ -48,7 +48,7 @@ struct DAKeyboardProvider: KeyboardProviderProtocol { .addRow(["1", "2", "3", "4", "5", "6", "7", "8", "9", "0"]) .addRow(["-", "/", ":", ";", "(", ")", "kr", "&", "@", "\""]) .addRow( ["#+=", ".", ",", "?", "!", "'", "delete"]) - .addRow(["ABC", "selectKeyboard", "space", "return"]) // "undo" + .addRow(["ABC", "selectKeyboard", "space", "return"]) .replaceKey(row: 1, column: 6, to: currencyKey) .build() } @@ -58,7 +58,7 @@ struct DAKeyboardProvider: KeyboardProviderProtocol { .addRow(["[", "]", "{", "}", "#", "%", "^", "*", "+", "="]) .addRow(["_", "\\", "|", "~", "<", ">", "€", "£", "¥", "·"]) .addRow(["123", ".", ",", "?", "!", "'", "delete"]) - .addRow(["ABC", "selectKeyboard", "space", "return"]) // "undo" + .addRow(["ABC", "selectKeyboard", "space", "return"]) if currencyKeys.count < 3 { return keyboardBuilder.build() @@ -79,7 +79,7 @@ struct DAKeyboardProvider: KeyboardProviderProtocol { .addRow(["q", "w", "e", "r", "t", "y", "u", "i", "o", "æ", "ø", "delete"]) .addRow(["a", "s", "d", "f", "g", "h", "j", "k", "l", "ö", "ä", "return"]) .addRow(["shift", "z", "x", "c", "v", "b", "n", "m", ",", ".", "-", "shift"]) - .addRow(["selectKeyboard", ".?123", "space", ".?123", "hideKeyboard"]) // "undo" + .addRow(["selectKeyboard", ".?123", "space", ".?123", "hideKeyboard"]) .build() } @@ -88,7 +88,7 @@ struct DAKeyboardProvider: KeyboardProviderProtocol { .addRow(["1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "`", "delete"]) .addRow(["@", "#", "kr", "&", "*", "(", ")", "'", "\"", "+", "·", "return"]) .addRow(["#+=", "%", "_", "-", "=", "/", ";", ":", ",", ".", "?", "#+="]) - .addRow(["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"]) // "undo" + .addRow(["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"]) .replaceKey(row: 1, column: 2, to: currencyKey) .build() } @@ -98,7 +98,7 @@ struct DAKeyboardProvider: KeyboardProviderProtocol { .addRow(["1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "'", "delete"]) .addRow(["€", "$", "£", "^", "[", "]", "{", "}", "―", "ᵒ", "...", "return"]) .addRow(["123", "§", "|", "~", "≠", "≈", "\\", "<", ">", "!", "?", "123"]) - .addRow(["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"]) // "undo" + .addRow(["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"]) if currencyKeys.count < 3 { return keyboardBuilder.build() @@ -119,7 +119,7 @@ struct DAKeyboardProvider: KeyboardProviderProtocol { .addRow([SpecialKeys.indent, "q", "w", "e", "r", "t", "y", "u", "i", "o", "p", "å", "@", "¨"]) .addRow([SpecialKeys.capsLock, "a", "s", "d", "f", "g", "h", "j", "k", "l", "æ", "ø", "'", "return"]) .addRow(["shift", "*", "z", "x", "c", "v", "b", "n", "m", ",", ".", "-", "shift"]) - .addRow(["selectKeyboard", ".?123", "space", ".?123", "hideKeyboard"]) // "microphone", "scribble" + .addRow(["selectKeyboard", ".?123", "space", ".?123", "hideKeyboard"]) .build() } @@ -127,9 +127,9 @@ struct DAKeyboardProvider: KeyboardProviderProtocol { return KeyboardBuilder() .addRow(["`", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "<", ">", "delete"]) .addRow([SpecialKeys.indent, "[", "]", "{", "}", "#", "%", "^", "*", "+", "=", "\"", "|", "—"]) - .addRow([SpecialKeys.capsLock, "°", "/", ":", ";", "(", ")", "$", "&", "@", "£", "¥", "~", "return"]) // "undo" - .addRow(["shift", "…", "?", "!", "≠", "'", "\"", "_", "€", ",", ".", "-", "shift"]) // "redo" - .addRow(["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"]) // "microphone", "scribble" + .addRow([SpecialKeys.capsLock, "°", "/", ":", ";", "(", ")", "$", "&", "@", "£", "¥", "~", "return"]) + .addRow(["shift", "…", "?", "!", "≠", "'", "\"", "_", "€", ",", ".", "-", "shift"]) + .addRow(["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"]) .build() } } diff --git a/Keyboards/LanguageKeyboards/English/ENInterfaceVariables.swift b/Keyboards/LanguageKeyboards/English/ENInterfaceVariables.swift index bb3a35d6..d83a98c6 100644 --- a/Keyboards/LanguageKeyboards/English/ENInterfaceVariables.swift +++ b/Keyboards/LanguageKeyboards/English/ENInterfaceVariables.swift @@ -37,7 +37,7 @@ struct ENKeyboardProvider: KeyboardProviderProtocol { .addRow(["q", "w", "e", "r", "t", "y", "u", "i", "o", "p"]) .addRow(["a", "s", "d", "f", "g", "h", "j", "k", "l"]) .addRow(["shift", "z", "x", "c", "v", "b", "n", "m", "delete"]) - .addRow(["123", "selectKeyboard", "space", "return"]) // "undo" + .addRow(["123", "selectKeyboard", "space", "return"]) .build() } @@ -46,7 +46,7 @@ struct ENKeyboardProvider: KeyboardProviderProtocol { .addRow(["1", "2", "3", "4", "5", "6", "7", "8", "9", "0"]) .addRow(["-", "/", ":", ";", "(", ")", "$", "&", "@", "\""]) .addRow(["#+=", ".", ",", "?", "!", "'", "delete"]) - .addRow(["ABC", "selectKeyboard", "space", "return"]) // "undo" + .addRow(["ABC", "selectKeyboard", "space", "return"]) .replaceKey(row: 1, column: 6, to: currencyKey) .build() } @@ -56,7 +56,7 @@ struct ENKeyboardProvider: KeyboardProviderProtocol { .addRow(["[", "]", "{", "}", "#", "%", "^", "*", "+", "="]) .addRow(["_", "\\", "|", "~", "<", ">", "€", "£", "¥", "·"]) .addRow(["123", ".", ",", "?", "!", "'", "delete"]) - .addRow(["ABC", "selectKeyboard", "space", "return"]) // "undo" + .addRow(["ABC", "selectKeyboard", "space", "return"]) if currencyKeys.count < 3 { return keyboardBuilder.build() @@ -77,7 +77,7 @@ struct ENKeyboardProvider: KeyboardProviderProtocol { .addRow(["q", "w", "e", "r", "t", "y", "u", "i", "o", "p", "delete"]) .addRow(["a", "s", "d", "f", "g", "h", "j", "k", "l", "return"]) .addRow(["shift", "w", "x", "c", "v", "b", "n", "m", ",", ".", "shift"]) - .addRow(["selectKeyboard", ".?123", "space", ".?123", "hideKeyboard"]) // "undo" + .addRow(["selectKeyboard", ".?123", "space", ".?123", "hideKeyboard"]) .build() } @@ -86,7 +86,7 @@ struct ENKeyboardProvider: KeyboardProviderProtocol { .addRow(["1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "delete"]) .addRow(["@", "#", "$", "&", "*", "(", ")", "'", "\"", "return"]) .addRow(["#+=", "%", "_", "+", "=", "/", ";", ":", ",", ".", "#+="]) - .addRow(["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"]) // "undo" + .addRow(["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"]) .replaceKey(row: 1, column: 2, to: currencyKey) .build() } @@ -96,7 +96,7 @@ struct ENKeyboardProvider: KeyboardProviderProtocol { .addRow(["1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "delete"]) .addRow(["€", "£", "¥", "_", "^", "[", "]", "{", "}", "return"]) .addRow(["123", "§", "|", "~", "...", "\\", "<", ">", "!", "?", "123"]) - .addRow(["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"]) // "undo" + .addRow(["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"]) if currencyKeys.count < 3 { return keyboardBuilder.build() @@ -115,7 +115,7 @@ struct ENKeyboardProvider: KeyboardProviderProtocol { .addRow([SpecialKeys.indent, "q", "w", "e", "r", "t", "y", "u", "i", "o", "p", "[", "]", "\\"]) .addRow([SpecialKeys.capsLock, "a", "s", "d", "f", "g", "h", "j", "k", "l", ":", ";", "'", "return"]) .addRow(["shift", "-", "z", "x", "c", "v", "b", "n", "m", ",", ".", "/", "shift"]) - .addRow(["selectKeyboard", ".?123", "space", ".?123", "hideKeyboard"]) // "microphone", "scribble" + .addRow(["selectKeyboard", ".?123", "space", ".?123", "hideKeyboard"]) .build() } @@ -123,9 +123,9 @@ struct ENKeyboardProvider: KeyboardProviderProtocol { return KeyboardBuilder() .addRow(["`", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "<", ">", "delete"]) .addRow([SpecialKeys.indent, "[", "]", "{", "}", "#", "%", "^", "*", "+", "=", "—", "~", "°"]) - .addRow([SpecialKeys.capsLock, "-", "\\", ":", ";", "(", ")", "&", "@", "$", "£", "¥", "€", "return"]) // "undo" - .addRow(["shift", "…", "?", "!", "≠", "'", "\"", "|", "_", ".", ",", "/", "shift"]) // "redo" - .addRow(["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"]) // "microphone", "scribble" + .addRow([SpecialKeys.capsLock, "-", "\\", ":", ";", "(", ")", "&", "@", "$", "£", "¥", "€", "return"]) + .addRow(["shift", "…", "?", "!", "≠", "'", "\"", "|", "_", ".", ",", "/", "shift"]) + .addRow(["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"]) .build() } } diff --git a/Keyboards/LanguageKeyboards/French/FR-AZERTYInterfaceVariables.swift b/Keyboards/LanguageKeyboards/French/FR-AZERTYInterfaceVariables.swift index 02573965..c32c6912 100644 --- a/Keyboards/LanguageKeyboards/French/FR-AZERTYInterfaceVariables.swift +++ b/Keyboards/LanguageKeyboards/French/FR-AZERTYInterfaceVariables.swift @@ -35,7 +35,7 @@ struct FRKeyboardProvider: KeyboardProviderProtocol { .addRow(["a", "z", "e", "r", "t", "y", "u", "i", "o", "p"]) .addRow(["q", "s", "d", "f", "g", "h", "j", "k", "l", "m"]) .addRow(["shift", "w", "x", "c", "v", "b", "n", "´", "delete"]) - .addRow(["123", "selectKeyboard", "space", "return"]) // "undo" + .addRow(["123", "selectKeyboard", "space", "return"]) .build() } @@ -44,7 +44,7 @@ struct FRKeyboardProvider: KeyboardProviderProtocol { .addRow(["1", "2", "3", "4", "5", "6", "7", "8", "9", "0"]) .addRow(["-", "/", ":", ";", "(", ")", "€", "&", "@", "\""]) .addRow(["#+=", ".", ",", "?", "!", "'", "delete"]) - .addRow(["ABC", "selectKeyboard", "space", "return"]) // "undo" + .addRow(["ABC", "selectKeyboard", "space", "return"]) .replaceKey(row: 1, column: 6, to: currencyKey) .build() } @@ -54,7 +54,7 @@ struct FRKeyboardProvider: KeyboardProviderProtocol { .addRow(["[", "]", "{", "}", "#", "%", "^", "*", "+", "="]) .addRow(["_", "\\", "|", "~", "<", ">", "$", "£", "¥", "·"]) .addRow(["123", ".", ",", "?", "!", "'", "delete"]) - .addRow(["ABC", "selectKeyboard", "space", "return"]) // "undo" + .addRow(["ABC", "selectKeyboard", "space", "return"]) if currencyKeys.count < 3 { return keyboardBuilder.build() @@ -75,7 +75,7 @@ struct FRKeyboardProvider: KeyboardProviderProtocol { .addRow(["a", "z", "e", "r", "t", "y", "u", "i", "o", "p", "delete"]) .addRow(["q", "s", "d", "f", "g", "h", "j", "k", "l", "m", "return"]) .addRow(["shift", "w", "x", "c", "v", "b", "n", "´", ",", ".", "shift"]) - .addRow(["selectKeyboard", ".?123", "space", ".?123", "hideKeyboard"]) // "undo" + .addRow(["selectKeyboard", ".?123", "space", ".?123", "hideKeyboard"]) .build() } @@ -84,7 +84,7 @@ struct FRKeyboardProvider: KeyboardProviderProtocol { .addRow(["1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "delete"]) .addRow(["@", "#", "&", "\"", "€", "(", "!", ")", "-", "*", "return"]) .addRow(["#+=", "%", "_", "+", "=", "/", ";", ":", ",", ".", "#+="]) - .addRow(["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"]) // "undo" + .addRow(["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"]) .replaceKey(row: 1, column: 4, to: currencyKey) .build() } @@ -94,7 +94,7 @@ struct FRKeyboardProvider: KeyboardProviderProtocol { .addRow(["1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "delete"]) .addRow(["~", "ᵒ", "[", "]", "{", "}", "^", "$", "£", "¥", "return"]) .addRow(["123", "§", "<", ">", "|", "\\", "...", "·", "?", "'", "123"]) - .addRow(["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"]) // "undo" + .addRow(["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"]) if currencyKeys.count < 3 { return keyboardBuilder.build() @@ -115,7 +115,7 @@ struct FRKeyboardProvider: KeyboardProviderProtocol { .addRow([SpecialKeys.indent, "a", "z", "e", "r", "t", "y", "u", "i", "o", "p", "^", "+", "*"]) .addRow([SpecialKeys.capsLock, "q", "s", "d", "f", "g", "h", "j", "k", "l", "m", "ù", "#", "return"]) .addRow(["shift", "/", "w", "x", "c", "v", "b", "n", ":", "-", ",", ".", "shift"]) - .addRow(["selectKeyboard", ".?123", "space", ".?123", "hideKeyboard"]) // "microphone", "scribble" + .addRow(["selectKeyboard", ".?123", "space", ".?123", "hideKeyboard"]) .build() } @@ -123,9 +123,9 @@ struct FRKeyboardProvider: KeyboardProviderProtocol { return KeyboardBuilder() .addRow(["`", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "<", ">", "delete"]) .addRow([SpecialKeys.indent, "\"", "|", "§", "[", "]", "{", "}", "-", "%", "=", "^", "+", "*"]) - .addRow([SpecialKeys.capsLock, "/", "…", "_", "(", ")", "&", "$", "£", "¥", "€", "@", "#", "return"]) // "undo" - .addRow(["shift", "'", "?", "!", "~", "≠", "°", ";", ":", "-", ",", ".", "shift"]) // "redo" - .addRow(["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"]) // "microphone", "scribble" + .addRow([SpecialKeys.capsLock, "/", "…", "_", "(", ")", "&", "$", "£", "¥", "€", "@", "#", "return"]) + .addRow(["shift", "'", "?", "!", "~", "≠", "°", ";", ":", "-", ",", ".", "shift"]) + .addRow(["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"]) .build() } } diff --git a/Keyboards/LanguageKeyboards/French/FR-QWERTYInterfaceVariables.swift b/Keyboards/LanguageKeyboards/French/FR-QWERTYInterfaceVariables.swift index 60d0f15f..604f6b4e 100644 --- a/Keyboards/LanguageKeyboards/French/FR-QWERTYInterfaceVariables.swift +++ b/Keyboards/LanguageKeyboards/French/FR-QWERTYInterfaceVariables.swift @@ -10,21 +10,21 @@ public enum FRQWERTYKeyboardConstants { ["q", "w", "e", "r", "t", "y", "u", "i", "o", "p"], ["a", "s", "d", "f", "g", "h", "j", "k", "l", "´"], ["shift", "z", "x", "c", "v", "b", "n", "m", "delete"], - ["123", "selectKeyboard", "space", "return"] // "undo" + ["123", "selectKeyboard", "space", "return"] ] static let numberKeysPhone = [ ["1", "2", "3", "4", "5", "6", "7", "8", "9", "0"], ["-", "/", ":", ";", "(", ")", "$", "&", "@", "\""], ["#+=", ".", ",", "?", "!", "'", "delete"], - ["ABC", "selectKeyboard", "space", "return"] // "undo" + ["ABC", "selectKeyboard", "space", "return"] ] static let symbolKeysPhone = [ ["[", "]", "{", "}", "#", "%", "^", "*", "+", "="], ["_", "\\", "|", "~", "<", ">", "€", "£", "¥", "·"], ["123", ".", ",", "?", "!", "'", "delete"], - ["ABC", "selectKeyboard", "space", "return"] // "undo" + ["ABC", "selectKeyboard", "space", "return"] ] // MARK: iPad Layouts @@ -34,21 +34,21 @@ public enum FRQWERTYKeyboardConstants { ["a", "z", "e", "r", "t", "y", "u", "i", "o", "p", "delete"], ["q", "s", "d", "f", "g", "h", "j", "k", "l", "m", "return"], ["shift", "w", "x", "c", "v", "b", "n", "´", ",", ".", "shift"], - ["selectKeyboard", ".?123", "space", ".?123", "hideKeyboard"] // "undo" + ["selectKeyboard", ".?123", "space", ".?123", "hideKeyboard"] ] static let numberKeysPad = [ ["1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "delete"], ["@", "#", "&", "\"", "€", "(", "!", ")", "-", "*", "return"], ["#+=", "%", "_", "+", "=", "/", ";", ":", ",", ".", "#+="], - ["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"] // "undo" + ["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"] ] static let symbolKeysPad = [ ["1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "delete"], ["~", "ᵒ", "[", "]", "{", "}", "^", "$", "£", "¥", "return"], ["123", "§", "<", ">", "|", "\\", "...", "·", "?", "'", "123"], - ["ABC", "selectKeyboard", "space", "ABC", "hideKeyboard"] // "undo" + ["ABC", "selectKeyboard", "space", "ABC", "hideKeyboard"] ] // MARK: Expanded iPad Layouts @@ -58,15 +58,15 @@ public enum FRQWERTYKeyboardConstants { [SpecialKeys.indent, "q", "w", "e", "r", "t", "y", "u", "i", "o", "p", "^", "ç", ":"], [SpecialKeys.capsLock, "a", "s", "d", "f", "g", "h", "j", "k", "l", ";", "è", "à", "return"], ["shift", "ù", "z", "x", "c", "v", "b", "n", "m", ",", ".", "é", "shift"], - ["selectKeyboard", ".?123", "space", ".?123", "hideKeyboard"] // "microphone", "scribble" + ["selectKeyboard", ".?123", "space", ".?123", "hideKeyboard"] ] static let symbolKeysPadExpanded = [ ["`", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "<", ">", "delete"], [SpecialKeys.indent, "[", "]", "{", "}", "#", "%", "^", "*", "+", "=", "\"", "|", "~"], - [SpecialKeys.capsLock, "-", "/", ":", ";", "(", ")", "$", "&", "@", "£", "¥", "~", "return"], // "undo" - ["shift", "…", "?", "!", "≠", "°", "'", "\"", "_", ",", ".", "€", "shift"], // "redo" - ["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"] // "microphone", "scribble" + [SpecialKeys.capsLock, "-", "/", ":", ";", "(", ")", "$", "&", "@", "£", "¥", "~", "return"], + ["shift", "…", "?", "!", "≠", "°", "'", "\"", "_", ",", ".", "€", "shift"], + ["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"] ] // Alternate key vars. diff --git a/Keyboards/LanguageKeyboards/German/DEInterfaceVariables.swift b/Keyboards/LanguageKeyboards/German/DEInterfaceVariables.swift index 39c9b546..80c8c6c0 100644 --- a/Keyboards/LanguageKeyboards/German/DEInterfaceVariables.swift +++ b/Keyboards/LanguageKeyboards/German/DEInterfaceVariables.swift @@ -41,7 +41,7 @@ struct DEKeyboardProvider: KeyboardProviderProtocol, KeyboardProviderDisableAcce .addRow(["q", "w", "e", "r", "t", "z", "u", "i", "o", "p", "ü"]) .addRow(["a", "s", "d", "f", "g", "h", "j", "k", "l", "ö", "ä"]) .addRow(["shift", "y", "x", "c", "v", "b", "n", "m", "delete"]) - .addRow(["123", "selectKeyboard", "space", "return"]) // "undo" + .addRow(["123", "selectKeyboard", "space", "return"]) .build() } @@ -50,7 +50,7 @@ struct DEKeyboardProvider: KeyboardProviderProtocol, KeyboardProviderDisableAcce .addRow(["q", "w", "e", "r", "t", "z", "u", "i", "o", "p"]) .addRow(["a", "s", "d", "f", "g", "h", "j", "k", "l"]) .addRow(["shift", "y", "x", "c", "v", "b", "n", "m", "delete"]) - .addRow(["123", "selectKeyboard", "space", "return"]) // "undo" + .addRow(["123", "selectKeyboard", "space", "return"]) .build() } @@ -59,7 +59,7 @@ struct DEKeyboardProvider: KeyboardProviderProtocol, KeyboardProviderDisableAcce .addRow(["1", "2", "3", "4", "5", "6", "7", "8", "9", "0"]) .addRow(["-", "/", ":", ";", "(", ")", "€", "&", "@", "\""]) .addRow(["#+=", ".", ",", "?", "!", "'", "delete"]) - .addRow(["ABC", "selectKeyboard", "space", "return"]) // "undo" + .addRow(["ABC", "selectKeyboard", "space", "return"]) .replaceKey(row: 1, column: 6, to: currencyKey) .build() } @@ -69,7 +69,7 @@ struct DEKeyboardProvider: KeyboardProviderProtocol, KeyboardProviderDisableAcce .addRow(["[", "]", "{", "}", "#", "%", "^", "*", "+", "="]) .addRow(["_", "\\", "|", "~", "<", ">", "$", "£", "¥", "·"]) .addRow(["123", ".", ",", "?", "!", "'", "delete"]) - .addRow(["ABC", "selectKeyboard", "space", "return"]) // "undo" + .addRow(["ABC", "selectKeyboard", "space", "return"]) if currencyKeys.count < 3 { return keyboardBuilder.build() @@ -90,7 +90,7 @@ struct DEKeyboardProvider: KeyboardProviderProtocol, KeyboardProviderDisableAcce .addRow(["q", "w", "e", "r", "t", "z", "u", "i", "o", "p", "ü", "delete"]) .addRow(["a", "s", "d", "f", "g", "h", "j", "k", "l", "ö", "ä", "return"]) .addRow(["shift", "y", "x", "c", "v", "b", "n", "m", ",", ".", "ß", "shift"]) - .addRow(["selectKeyboard", ".?123", "space", ".?123", "hideKeyboard"]) // "undo" + .addRow(["selectKeyboard", ".?123", "space", ".?123", "hideKeyboard"]) .build() } @@ -100,7 +100,7 @@ struct DEKeyboardProvider: KeyboardProviderProtocol, KeyboardProviderDisableAcce .addRow(["q", "w", "e", "r", "t", "z", "u", "i", "o", "p", "delete"]) .addRow(["a", "s", "d", "f", "g", "h", "j", "k", "l", "return"]) .addRow(["shift", "y", "x", "c", "v", "b", "n", "m", ",", ".", "ß", "shift"]) - .addRow(["selectKeyboard", ".?123", "space", ".?123", "hideKeyboard"]) // "undo" + .addRow(["selectKeyboard", ".?123", "space", ".?123", "hideKeyboard"]) .build() } @@ -109,7 +109,7 @@ struct DEKeyboardProvider: KeyboardProviderProtocol, KeyboardProviderDisableAcce .addRow(["1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "+", "delete"]) .addRow(["\"", "§", "€", "%", "&", "/", "(", ")", "=", "'", "#", "return"]) .addRow(["#+=", "—", "`", "'", "...", "@", ";", ":", ",", ".", "-", "#+="]) - .addRow(["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"]) // "undo" + .addRow(["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"]) .replaceKey(row: 1, column: 2, to: currencyKey) .build() } @@ -119,7 +119,7 @@ struct DEKeyboardProvider: KeyboardProviderProtocol, KeyboardProviderDisableAcce .addRow(["1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "*", "delete"]) .addRow(["$", "£", "¥", "¿", "―", "\\", "[", "]", "{", "}", "|", "return"]) .addRow(["123", "¡", "<", ">", "≠", "·", "^", "~", "!", "?", "_", "123"]) - .addRow(["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"]) // "undo" + .addRow(["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"]) if currencyKeys.count < 3 { return keyboardBuilder.build() @@ -140,7 +140,7 @@ struct DEKeyboardProvider: KeyboardProviderProtocol, KeyboardProviderDisableAcce .addRow([SpecialKeys.indent, "q", "w", "e", "r", "t", "z", "u", "i", "o", "p", "ü", "+", "*"]) .addRow([SpecialKeys.capsLock, "a", "s", "d", "f", "g", "h", "j", "k", "l", "ö", "ä", "#", "return"]) .addRow(["shift", "'", "y", "x", "c", "v", "b", "n", "m", "-", ",", ".", "shift"]) - .addRow(["selectKeyboard", ".?123", "space", ".?123", "hideKeyboard"]) // "microphone", "scribble" + .addRow(["selectKeyboard", ".?123", "space", ".?123", "hideKeyboard"]) .build() } @@ -150,7 +150,7 @@ struct DEKeyboardProvider: KeyboardProviderProtocol, KeyboardProviderDisableAcce .addRow([SpecialKeys.indent, "q", "w", "e", "r", "t", "z", "u", "i", "o", "p", "=", "+", "*"]) .addRow([SpecialKeys.capsLock, "a", "s", "d", "f", "g", "h", "j", "k", "l", "/", "@", "#", "return"]) .addRow(["shift", "'", "y", "x", "c", "v", "b", "n", "m", "-", ",", ".", "shift"]) - .addRow(["selectKeyboard", ".?123", "space", ".?123", "hideKeyboard"]) // "microphone", "scribble" + .addRow(["selectKeyboard", ".?123", "space", ".?123", "hideKeyboard"]) .build() } @@ -158,9 +158,9 @@ struct DEKeyboardProvider: KeyboardProviderProtocol, KeyboardProviderDisableAcce return KeyboardBuilder() .addRow(["`", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "<", ">", "delete"]) .addRow([SpecialKeys.indent, "\"", "|", "§", "[", "]", "{", "}", "—", "%", "^", "=", "+", "*"]) - .addRow([SpecialKeys.capsLock, ":", ";", "(", ")", "&", "$", "£", "¥", "€", "/", "@", "#", "return"]) // "undo" - .addRow(["shift", "'", "?", "!", "~", "≠", "°", "…", "_", "-", ",", ".", "shift"]) // "redo" - .addRow(["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"]) // "microphone", "scribble" + .addRow([SpecialKeys.capsLock, ":", ";", "(", ")", "&", "$", "£", "¥", "€", "/", "@", "#", "return"]) + .addRow(["shift", "'", "?", "!", "~", "≠", "°", "…", "_", "-", ",", ".", "shift"]) + .addRow(["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"]) .build() } } diff --git a/Keyboards/LanguageKeyboards/Indonesian/IDInterfaceVariables.swift b/Keyboards/LanguageKeyboards/Indonesian/IDInterfaceVariables.swift index 26dbf9ec..e53c6021 100644 --- a/Keyboards/LanguageKeyboards/Indonesian/IDInterfaceVariables.swift +++ b/Keyboards/LanguageKeyboards/Indonesian/IDInterfaceVariables.swift @@ -21,7 +21,7 @@ struct IDKeyboardProvider: KeyboardProviderProtocol { .addRow(["q", "w", "e", "r", "t", "y", "u", "i", "o", "p"]) .addRow(["a", "s", "d", "f", "g", "h", "j", "k", "l"]) .addRow(["shift", "z", "x", "c", "v", "b", "n", "m", "delete"]) - .addRow(["123", "selectKeyboard", "space", "return"]) // "undo" + .addRow(["123", "selectKeyboard", "space", "return"]) .build() } @@ -30,7 +30,7 @@ struct IDKeyboardProvider: KeyboardProviderProtocol { .addRow(["1", "2", "3", "4", "5", "6", "7", "8", "9", "0"]) .addRow(["-", "/", ":", ";", "(", ")", "$", "&", "@", "\""]) .addRow(["#+=", ".", ",", "?", "!", "'", "delete"]) - .addRow(["ABC", "selectKeyboard", "space", "return"]) // "undo" + .addRow(["ABC", "selectKeyboard", "space", "return"]) .replaceKey(row: 1, column: 6, to: currencyKey) .build() } @@ -40,7 +40,7 @@ struct IDKeyboardProvider: KeyboardProviderProtocol { .addRow(["[", "]", "{", "}", "#", "%", "^", "*", "+", "="]) .addRow(["_", "\\", "|", "~", "<", ">", "€", "£", "¥", "·"]) .addRow(["123", ".", ",", "?", "!", "'", "delete"]) - .addRow(["ABC", "selectKeyboard", "space", "return"]) // "undo" + .addRow(["ABC", "selectKeyboard", "space", "return"]) if currencyKeys.count < 3 { return keyboardBuilder.build() @@ -61,7 +61,7 @@ struct IDKeyboardProvider: KeyboardProviderProtocol { .addRow(["q", "w", "e", "r", "t", "y", "u", "i", "o", "p", "delete"]) .addRow(["a", "s", "d", "f", "g", "h", "j", "k", "l", "return"]) .addRow(["shift", "w", "x", "c", "v", "b", "n", "m", ",", ".", "shift"]) - .addRow(["selectKeyboard", ".?123", "space", ".?123", "hideKeyboard"]) // "undo" + .addRow(["selectKeyboard", ".?123", "space", ".?123", "hideKeyboard"]) .build() } @@ -70,7 +70,7 @@ struct IDKeyboardProvider: KeyboardProviderProtocol { .addRow(["1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "delete"]) .addRow(["@", "#", "$", "&", "*", "(", ")", "'", "\"", "return"]) .addRow(["#+=", "%", "_", "+", "=", "/", ";", ":", ",", ".", "#+="]) - .addRow(["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"]) // "undo" + .addRow(["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"]) .replaceKey(row: 1, column: 2, to: currencyKey) .build() } @@ -80,7 +80,7 @@ struct IDKeyboardProvider: KeyboardProviderProtocol { .addRow(["1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "delete"]) .addRow(["€", "£", "¥", "_", "^", "[", "]", "{", "}", "return"]) .addRow(["123", "§", "|", "~", "...", "\\", "<", ">", "!", "?", "123"]) - .addRow(["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"]) // "undo" + .addRow(["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"]) if currencyKeys.count < 3 { return keyboardBuilder.build() @@ -99,7 +99,7 @@ struct IDKeyboardProvider: KeyboardProviderProtocol { .addRow([SpecialKeys.indent, "q", "w", "e", "r", "t", "y", "u", "i", "o", "p", "[", "]", "\\"]) .addRow([SpecialKeys.capsLock, "a", "s", "d", "f", "g", "h", "j", "k", "l", ":", ";", "'", "return"]) .addRow(["shift", "-", "z", "x", "c", "v", "b", "n", "m", ",", ".", "/", "shift"]) - .addRow(["selectKeyboard", ".?123", "space", ".?123", "hideKeyboard"]) // "microphone", "scribble" + .addRow(["selectKeyboard", ".?123", "space", ".?123", "hideKeyboard"]) .build() } @@ -107,9 +107,9 @@ struct IDKeyboardProvider: KeyboardProviderProtocol { return KeyboardBuilder() .addRow(["`", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "<", ">", "delete"]) .addRow([SpecialKeys.indent, "[", "]", "{", "}", "#", "%", "^", "*", "+", "=", "—", "~", "°"]) - .addRow([SpecialKeys.capsLock, "-", "\\", ":", ";", "(", ")", "&", "@", "$", "£", "¥", "€", "return"]) // "undo" - .addRow(["shift", "…", "?", "!", "≠", "'", "\"", "|", "_", ".", ",", "/", "shift"]) // "redo" - .addRow(["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"]) // "microphone", "scribble" + .addRow([SpecialKeys.capsLock, "-", "\\", ":", ";", "(", ")", "&", "@", "$", "£", "¥", "€", "return"]) + .addRow(["shift", "…", "?", "!", "≠", "'", "\"", "|", "_", ".", ",", "/", "shift"]) + .addRow(["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"]) .build() } } diff --git a/Keyboards/LanguageKeyboards/Italian/ITInterfaceVariables.swift b/Keyboards/LanguageKeyboards/Italian/ITInterfaceVariables.swift index 1405d036..85fe2ddc 100644 --- a/Keyboards/LanguageKeyboards/Italian/ITInterfaceVariables.swift +++ b/Keyboards/LanguageKeyboards/Italian/ITInterfaceVariables.swift @@ -35,7 +35,7 @@ struct ITKeyboardProvider: KeyboardProviderProtocol { .addRow(["q", "w", "e", "r", "t", "y", "u", "i", "o", "p"]) .addRow(["a", "s", "d", "f", "g", "h", "j", "k", "l"]) .addRow(["shift", "z", "x", "c", "v", "b", "n", "m", "delete"]) - .addRow(["123", "selectKeyboard", "space", "return"]) // "undo" + .addRow(["123", "selectKeyboard", "space", "return"]) .build() } @@ -44,7 +44,7 @@ struct ITKeyboardProvider: KeyboardProviderProtocol { .addRow(["1", "2", "3", "4", "5", "6", "7", "8", "9", "0"]) .addRow(["-", "/", ":", ";", "(", ")", "€", "&", "@", "\""]) .addRow(["#+=", ".", ",", "?", "!", "'", "delete"]) - .addRow(["ABC", "selectKeyboard", "space", "return"]) // "undo" + .addRow(["ABC", "selectKeyboard", "space", "return"]) .replaceKey(row: 1, column: 6, to: currencyKey) .build() } @@ -54,7 +54,7 @@ struct ITKeyboardProvider: KeyboardProviderProtocol { .addRow(["[", "]", "{", "}", "#", "%", "^", "*", "+", "="]) .addRow(["_", "\\", "|", "~", "<", ">", "$", "£", "¥", "·"]) .addRow(["123", ".", ",", "?", "!", "'", "delete"]) - .addRow(["ABC", "selectKeyboard", "space", "return"]) // "undo" + .addRow(["ABC", "selectKeyboard", "space", "return"]) if currencyKeys.count < 3 { return keyboardBuilder.build() @@ -75,7 +75,7 @@ struct ITKeyboardProvider: KeyboardProviderProtocol { .addRow(["q", "w", "e", "r", "t", "y", "u", "i", "o", "p", "delete"]) .addRow(["a", "s", "d", "f", "g", "h", "j", "k", "l", "return"]) .addRow(["shift", "z", "x", "c", "v", "b", "n", "m", ",", ".", "shift"]) - .addRow(["selectKeyboard", ".?123", "space", ".?123", "hideKeyboard"]) // "undo" + .addRow(["selectKeyboard", ".?123", "space", ".?123", "hideKeyboard"]) .build() } @@ -84,7 +84,7 @@ struct ITKeyboardProvider: KeyboardProviderProtocol { .addRow(["1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "delete"]) .addRow(["@", "#", "€", "&", "*", "(", ")", "'", "\"", "return"]) .addRow(["#+=", "%", "-", "+", "=", "/", ";", ":", ",", ".", "#+="]) - .addRow(["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"]) // "undo" + .addRow(["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"]) .replaceKey(row: 1, column: 2, to: currencyKey) .build() } @@ -94,7 +94,7 @@ struct ITKeyboardProvider: KeyboardProviderProtocol { .addRow(["1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "delete"]) .addRow(["$", "£", "¥", "_", "^", "[", "]", "{", "}", "return"]) .addRow(["123", "§", "|", "~", "...", "\\", "<", ">", "!", "?", "123"]) - .addRow(["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"]) // "undo" + .addRow(["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"]) if currencyKeys.count < 3 { return keyboardBuilder.build() @@ -115,7 +115,7 @@ struct ITKeyboardProvider: KeyboardProviderProtocol { .addRow([SpecialKeys.indent, "q", "w", "e", "r", "t", "y", "u", "i", "o", "p", "è", "+", "*"]) .addRow([SpecialKeys.capsLock, "a", "s", "d", "f", "g", "h", "j", "k", "l", "ò", "à", "ù", "return"]) .addRow(["shift", "'", "z", "x", "c", "v", "b", "n", "m", "-", ",", ".", "shift"]) - .addRow(["selectKeyboard", ".?123", "space", ".?123", "hideKeyboard"]) // "microphone", "scribble" + .addRow(["selectKeyboard", ".?123", "space", ".?123", "hideKeyboard"]) .build() } @@ -123,9 +123,9 @@ struct ITKeyboardProvider: KeyboardProviderProtocol { return KeyboardBuilder() .addRow(["`", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "<", ">", "delete"]) .addRow([SpecialKeys.indent, "[", "]", "{", "}", "#", "%", "^", "*", "+", "=", "\"", "|", "§"]) - .addRow([SpecialKeys.capsLock, "°", "/", ":", ";", "(", ")", "&", "@", "$", "£", "¥", "~", "return"]) // "undo" + .addRow([SpecialKeys.capsLock, "°", "/", ":", ";", "(", ")", "&", "@", "$", "£", "¥", "~", "return"]) .addRow(["shift", "…", "?", "!", "≠", "'", "\"", "_", "€", "-", ",", ".", "shift"]) // "shift" - .addRow(["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"]) // "microphone", "scribble" + .addRow(["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"]) .build() } } diff --git a/Keyboards/LanguageKeyboards/Norwegian/NBCommandVariables.swift b/Keyboards/LanguageKeyboards/Norwegian/NBCommandVariables.swift index 00492a85..fee79c8b 100644 --- a/Keyboards/LanguageKeyboards/Norwegian/NBCommandVariables.swift +++ b/Keyboards/LanguageKeyboards/Norwegian/NBCommandVariables.swift @@ -9,6 +9,13 @@ func nbSetConjugationLabels() { for k in formLabelsDict.keys { formLabelsDict[k] = "" } + + formLabelsDict["FPS"] = "jeg" // I + formLabelsDict["SPS"] = "du" // you (informal) + formLabelsDict["TPS"] = "han/henne/det" // he/she/it + formLabelsDict["FPP"] = "vi" // we + formLabelsDict["SPP"] = "dere" // you (plural) + formLabelsDict["TPP"] = "de" // they } /// What the conjugation state is for the conjugate feature. @@ -19,13 +26,36 @@ enum NBConjugationState { var nbConjugationState: NBConjugationState = .present /// Sets the title of the command bar when the keyboard is in conjugate mode. -func nbGetConjugationTitle() {} +func nbGetConjugationTitle() -> String { + let verbToDisplay = verbToConjugate + switch nbConjugationState { + case .present: + return commandPromptSpacing + "Presens: " + verbToDisplay + } +} /// Returns the appropriate key in the verbs dictionary to access conjugations. -func nbGetConjugationState() {} +func nbGetConjugationState() -> String { + switch nbConjugationState { + case .present: + return "pres" + } +} /// Action associated with the left view switch button of the conjugation state. -func nbConjugationStateLeft() {} +func nbConjugationStateLeft() { + switch nbConjugationState { + case .present: + // Note: Transition to other states once verb data is added. + break + } +} /// Action associated with the right view switch button of the conjugation state. -func nbConjugationStateRight() {} +func nbConjugationStateRight() { + switch nbConjugationState { + case .present: + // Note: Transition to other states once verb data is added. + break + } +} diff --git a/Keyboards/LanguageKeyboards/Norwegian/NBInterfaceVariables.swift b/Keyboards/LanguageKeyboards/Norwegian/NBInterfaceVariables.swift index 477f4f77..0e0007fa 100644 --- a/Keyboards/LanguageKeyboards/Norwegian/NBInterfaceVariables.swift +++ b/Keyboards/LanguageKeyboards/Norwegian/NBInterfaceVariables.swift @@ -8,24 +8,31 @@ import UIKit // MARK: Constants -public enum NBlKeyboardConstants { +public enum NBKeyboardConstants { static let defaultCurrencyKey = "kr" static let currencyKeys = ["kr", "€", "$", "£", "¥"] // Alternate key vars. - static let keysWithAlternates = ["a", "e", "o", "u", "ä", "ö"] - static let keysWithAlternatesLeft = ["a", "e"] - static let keysWithAlternatesRight = ["o", "u", "æ", "ø"] - - static let aAlternateKeys = ["à", "ä", "á", "â", "ã", "ā"] - static let eAlternateKeys = ["ë", "è", "é", "ê", "ę", "ė", "ē"] - static let oAlternateKeys = ["ō", "œ", "õ", "ó", "ò", "ô"] - static let uAlternateKeys = ["ū", "ú", "ù", "û", "ü"] + static let keysWithAlternates = ["a", "e", "i", "o", "u", "y", "å", "æ", "ø", "d", "l", "n", "s"] + static let keysWithAlternatesLeft = ["a", "e", "y", "å", "d", "s"] + static let keysWithAlternatesRight = ["i", "o", "u", "æ", "ø", "l", "n"] + + static let aAlternateKeys = ["á", "ä", "à", "â", "ã", "ā"] + static let eAlternateKeys = ["é", "ë", "è", "ê", "ę", "ė", "ē"] + static let iAlternateKeys = ["ï", "í", "ì", "î", "į", "ī"] + static let oAlternateKeys = ["ö", "ō", "œ", "õ", "ò", "ô", "ó"] + static let uAlternateKeys = ["ū", "ù", "û", "ü", "ú"] + static let yAlternateKeys = ["ÿ"] + static let åAlternateKeys = ["ä", "ā"] static let æAlternateKeys = ["ä"] - static let øAlternateKeys = ["ö"] + static let øAlternateKeys = ["ö", "ô"] + static let dAlternateKeys = ["ð"] + static let lAlternateKeys = ["ł"] + static let nAlternateKeys = ["ń", "ñ"] + static let sAlternateKeys = ["ß", "ś", "š"] } -struct NBlKeyboardProvider: KeyboardProviderProtocol { +struct NBKeyboardProvider: KeyboardProviderProtocol { // MARK: iPhone Layouts static func genPhoneLetterKeys() -> [[String]] { @@ -33,7 +40,7 @@ struct NBlKeyboardProvider: KeyboardProviderProtocol { .addRow(["q", "w", "e", "r", "t", "y", "u", "i", "o", "p", "å"]) .addRow(["a", "s", "d", "f", "g", "h", "j", "k", "l", "ø", "æ"]) .addRow(["shift", "z", "x", "c", "v", "b", "n", "m", "delete"]) - .addRow(["123", "selectKeyboard", "space", "return"]) // "undo" + .addRow(["123", "selectKeyboard", "space", "return"]) .build() } @@ -42,7 +49,7 @@ struct NBlKeyboardProvider: KeyboardProviderProtocol { .addRow(["1", "2", "3", "4", "5", "6", "7", "8", "9", "0"]) .addRow(["-", "/", ":", ";", "(", ")", "kr", "&", "@", "\""]) .addRow(["#+=", ".", ",", "?", "!", "'", "delete"]) - .addRow(["ABC", "selectKeyboard", "space", "return"]) // "undo" + .addRow(["ABC", "selectKeyboard", "space", "return"]) .replaceKey(row: 1, column: 6, to: currencyKey) .build() } @@ -50,9 +57,9 @@ struct NBlKeyboardProvider: KeyboardProviderProtocol { static func genPhoneSymbolKeys(currencyKeys: [String]) -> [[String]] { let keyboardBuilder = KeyboardBuilder() .addRow(["[", "]", "{", "}", "#", "%", "^", "*", "+", "="]) - .addRow(["_", "\\", "|", "~", "<", ">", "€", "$", "£", "·"]) + .addRow(["_", "\\", "|", "~", "<", ">", "€", "£", "¥", "·"]) .addRow(["123", ".", ",", "?", "!", "'", "delete"]) - .addRow(["ABC", "selectKeyboard", "space", "return"]) // "undo" + .addRow(["ABC", "selectKeyboard", "space", "return"]) if currencyKeys.count < 3 { return keyboardBuilder.build() @@ -72,8 +79,8 @@ struct NBlKeyboardProvider: KeyboardProviderProtocol { .addRow(["1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "-", "=", "+"]) .addRow(["q", "w", "e", "r", "t", "y", "u", "i", "o", "p", "å", "delete"]) .addRow(["a", "s", "d", "f", "g", "h", "j", "k", "l", "ø", "æ", "return"]) - .addRow(["shift", "z", "x", "c", "v", "b", "n", "m", ",", ".", "?", "shift"]) - .addRow(["selectKeyboard", ".?123", "space", ".?123", "hideKeyboard"]) // "undo" + .addRow(["shift", "z", "x", "c", "v", "b", "n", "m", ",", ".", "-", "shift"]) + .addRow(["selectKeyboard", ".?123", "space", ".?123", "hideKeyboard"]) .build() } @@ -81,18 +88,18 @@ struct NBlKeyboardProvider: KeyboardProviderProtocol { return KeyboardBuilder() .addRow(["1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "`", "delete"]) .addRow(["@", "#", "kr", "&", "*", "(", ")", "'", "\"", "+", "·", "return"]) - .addRow(["#+=", "%", "_", "-", "=", "/", ";", ":", ",", ".", "≈", "#+="]) - .addRow(["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"]) // "undo" + .addRow(["#+=", "%", "_", "-", "=", "/", ";", ":", ",", ".", "?", "#+="]) + .addRow(["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"]) .replaceKey(row: 1, column: 2, to: currencyKey) .build() } static func genPadSymbolKeys(currencyKeys: [String]) -> [[String]] { let keyboardBuilder = KeyboardBuilder() - .addRow(["1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "*", "delete"]) + .addRow(["1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "'", "delete"]) .addRow(["€", "$", "£", "^", "[", "]", "{", "}", "―", "ᵒ", "...", "return"]) - .addRow(["123", "§", "±", "|", "~", "≠", "\\", "<", ">", "!", "?", "123"]) - .addRow(["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"]) // "undo" + .addRow(["123", "§", "|", "~", "≠", "≈", "\\", "<", ">", "!", "?", "123"]) + .addRow(["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"]) if currencyKeys.count < 3 { return keyboardBuilder.build() @@ -109,29 +116,136 @@ struct NBlKeyboardProvider: KeyboardProviderProtocol { static func genPadExpandedLetterKeys() -> [[String]] { return KeyboardBuilder() - .addRow(["§", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "+", "´", "delete"]) - .addRow([SpecialKeys.indent, "q", "w", "e", "r", "t", "y", "u", "i", "o", "p", "å", "^", "*"]) - .addRow([SpecialKeys.capsLock, "a", "s", "d", "f", "g", "h", "j", "k", "l", "ø", "æ", "@", "return"]) - .addRow(["shift", "'", "z", "x", "c", "v", "b", "n", "m", ",", ".", "-", "shift"]) - .addRow(["selectKeyboard", ".?123", "space", ".?123", "hideKeyboard"]) // "microphone", "scribble" + .addRow(["kr", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "+", "´", "delete"]) + .addRow([SpecialKeys.indent, "q", "w", "e", "r", "t", "y", "u", "i", "o", "p", "å", "@", "¨"]) + .addRow([SpecialKeys.capsLock, "a", "s", "d", "f", "g", "h", "j", "k", "l", "ø", "æ", "'", "return"]) + .addRow(["shift", "*", "z", "x", "c", "v", "b", "n", "m", ",", ".", "-", "shift"]) + .addRow(["selectKeyboard", ".?123", "space", ".?123", "hideKeyboard"]) .build() } static func genPadExpandedSymbolKeys() -> [[String]] { return KeyboardBuilder() .addRow(["`", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "<", ">", "delete"]) - .addRow([SpecialKeys.indent, "[", "]", "{", "}", "#", "%", "^", "*", "+", "=", "\"", "|", "°"]) - .addRow([SpecialKeys.capsLock, "—", "/", ":", ";", "(", ")", "&", "@", "$", "£", "¥", "~", "return"]) // "undo" - .addRow(["shift", "…", "?", "!", "≠", "'", "\"", "_", "€", ",", ".", "-", "shift"]) // "redo" - .addRow(["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"]) // "microphone", "scribble" + .addRow([SpecialKeys.indent, "[", "]", "{", "}", "#", "%", "^", "*", "+", "=", "\"", "|", "—"]) + .addRow([SpecialKeys.capsLock, "°", "/", ":", ";", "(", ")", "$", "&", "@", "£", "¥", "~", "return"]) + .addRow(["shift", "…", "?", "!", "≠", "'", "\"", "_", "€", ",", ".", "-", "shift"]) + .addRow(["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"]) .build() } } // MARK: Get Keys -func getNBKeys() {} +func getNBKeys() { + guard let userDefaults = UserDefaults(suiteName: "group.be.scri.userDefaultsContainer") else { + fatalError("Unable to access shared user defaults") + } + + var currencyKey = NBKeyboardConstants.defaultCurrencyKey + var currencyKeys = NBKeyboardConstants.currencyKeys + let dictionaryKey = controllerLanguage + "defaultCurrencySymbol" + if let currencyValue = userDefaults.string(forKey: dictionaryKey) { + currencyKey = currencyValue + } else { + userDefaults.setValue(currencyKey, forKey: dictionaryKey) + } + if let index = currencyKeys.firstIndex(of: currencyKey) { + currencyKeys.remove(at: index) + } + if DeviceType.isPhone { + letterKeys = NBKeyboardProvider.genPhoneLetterKeys() + numberKeys = NBKeyboardProvider.genPhoneNumberKeys(currencyKey: currencyKey) + symbolKeys = NBKeyboardProvider.genPhoneSymbolKeys(currencyKeys: currencyKeys) + allKeys = Array(letterKeys.joined()) + Array(numberKeys.joined()) + Array(symbolKeys.joined()) + + leftKeyChars = ["q", "a", "1", "-", "[", "_"] + rightKeyChars = ["å", "æ", "0", "\"", "=", "·"] + centralKeyChars = allKeys.filter { !leftKeyChars.contains($0) && !rightKeyChars.contains($0) } + } else { + // Use the expanded keys layout if the iPad is wide enough and has no home button. + if usingExpandedKeyboard { + letterKeys = NBKeyboardProvider.genPadExpandedLetterKeys() + symbolKeys = NBKeyboardProvider.genPadExpandedSymbolKeys() + leftKeyChars = ["kr", "`"] + rightKeyChars = ["¨", "—"] + allKeys = Array(letterKeys.joined()) + Array(symbolKeys.joined()) + } else { + letterKeys = NBKeyboardProvider.genPadLetterKeys() + numberKeys = NBKeyboardProvider.genPadNumberKeys(currencyKey: currencyKey) + symbolKeys = NBKeyboardProvider.genPadSymbolKeys(currencyKeys: currencyKeys) + + letterKeys.removeFirst(1) + leftKeyChars = ["q", "a", "1", "@", "€"] + rightKeyChars = ["delete", "return"] + allKeys = Array(letterKeys.joined()) + Array(numberKeys.joined()) + Array(symbolKeys.joined()) + } + + centralKeyChars = allKeys.filter { !leftKeyChars.contains($0) && !rightKeyChars.contains($0) } + } + + keysWithAlternates = NBKeyboardConstants.keysWithAlternates + keysWithAlternatesLeft = NBKeyboardConstants.keysWithAlternatesLeft + keysWithAlternatesRight = NBKeyboardConstants.keysWithAlternatesRight + aAlternateKeys = NBKeyboardConstants.aAlternateKeys + eAlternateKeys = NBKeyboardConstants.eAlternateKeys + iAlternateKeys = NBKeyboardConstants.iAlternateKeys + oAlternateKeys = NBKeyboardConstants.oAlternateKeys + uAlternateKeys = NBKeyboardConstants.uAlternateKeys + yAlternateKeys = NBKeyboardConstants.yAlternateKeys + dAlternateKeys = NBKeyboardConstants.dAlternateKeys + lAlternateKeys = NBKeyboardConstants.lAlternateKeys + nAlternateKeys = NBKeyboardConstants.nAlternateKeys + sAlternateKeys = NBKeyboardConstants.sAlternateKeys +} // MARK: Provide Layout -func setNBKeyboardLayout() {} +func setNBKeyboardLayout() { + getNBKeys() + + currencySymbol = "kr" + currencySymbolAlternates = kronaAlternateKeys + spaceBar = "mellomrom" + language = "Norsk" + invalidCommandMsg = "Ikke i Wikidata" + baseAutosuggestions = ["jeg", "det", "er"] + numericAutosuggestions = ["prosent", "millioner", "meter"] + verbsAfterPronounsArray = ["har", "være", "kan"] + pronounAutosuggestionTenses = [ + "jeg": "presFPS", + "du": "presSPS", + "han": "presTPS", + "hun": "presTPS", + "den": "presTPS", + "det": "presTPS", + "vi": "presFPP", + "dere": "presSPP", + "de": "presTPP" + ] + + translateKeyLbl = "Oversett" + translatePlaceholder = "Skriv inn et ord" + translatePrompt = commandPromptSpacing + "nb → \(getControllerLanguageAbbr()): " + translatePromptAndCursor = translatePrompt + commandCursor + translatePromptAndPlaceholder = translatePromptAndCursor + " " + translatePlaceholder + translatePromptAndColorPlaceholder = NSMutableAttributedString(string: translatePromptAndPlaceholder) + translatePromptAndColorPlaceholder.setColorForText(textForAttribute: translatePlaceholder, withColor: UIColor(cgColor: commandBarPlaceholderColorCG)) + + conjugateKeyLbl = "Bøy" + conjugatePlaceholder = "Skriv inn et verb" + conjugatePrompt = commandPromptSpacing + "Bøy: " + conjugatePromptAndCursor = conjugatePrompt + commandCursor + conjugatePromptAndPlaceholder = conjugatePromptAndCursor + " " + conjugatePlaceholder + conjugatePromptAndColorPlaceholder = NSMutableAttributedString(string: conjugatePromptAndPlaceholder) + conjugatePromptAndColorPlaceholder.setColorForText(textForAttribute: conjugatePlaceholder, withColor: UIColor(cgColor: commandBarPlaceholderColorCG)) + + pluralKeyLbl = "Flertall" + pluralPlaceholder = "Skriv inn et substantiv" + pluralPrompt = commandPromptSpacing + "Flertall: " + pluralPromptAndCursor = pluralPrompt + commandCursor + pluralPromptAndPlaceholder = pluralPromptAndCursor + " " + pluralPlaceholder + pluralPromptAndColorPlaceholder = NSMutableAttributedString(string: pluralPromptAndPlaceholder) + pluralPromptAndColorPlaceholder.setColorForText(textForAttribute: pluralPlaceholder, withColor: UIColor(cgColor: commandBarPlaceholderColorCG)) + alreadyPluralMsg = "Allerede flertall" +} diff --git a/Keyboards/LanguageKeyboards/Portuguese/PTInterfaceVariables.swift b/Keyboards/LanguageKeyboards/Portuguese/PTInterfaceVariables.swift index 16f7a9bb..cca96701 100644 --- a/Keyboards/LanguageKeyboards/Portuguese/PTInterfaceVariables.swift +++ b/Keyboards/LanguageKeyboards/Portuguese/PTInterfaceVariables.swift @@ -34,7 +34,7 @@ struct PTKeyboardProvider: KeyboardProviderProtocol { .addRow(["q", "w", "e", "r", "t", "y", "u", "i", "o", "p"]) .addRow(["a", "s", "d", "f", "g", "h", "j", "k", "l"]) .addRow(["shift", "z", "x", "c", "v", "b", "n", "m", "delete"]) - .addRow(["123", "selectKeyboard", "space", "return"]) // "undo" + .addRow(["123", "selectKeyboard", "space", "return"]) .build() } @@ -43,7 +43,7 @@ struct PTKeyboardProvider: KeyboardProviderProtocol { .addRow(["1", "2", "3", "4", "5", "6", "7", "8", "9", "0"]) .addRow(["-", "/", ":", ";", "(", ")", "€", "&", "@", "\""]) .addRow(["#+=", ".", ",", "?", "!", "'", "delete"]) - .addRow(["ABC", "selectKeyboard", "space", "return"]) // "undo" + .addRow(["ABC", "selectKeyboard", "space", "return"]) .replaceKey(row: 1, column: 6, to: currencyKey) .build() } @@ -53,7 +53,7 @@ struct PTKeyboardProvider: KeyboardProviderProtocol { .addRow(["[", "]", "{", "}", "#", "%", "^", "*", "+", "="]) .addRow(["_", "\\", "|", "~", "<", ">", "$", "£", "¥", "·"]) .addRow(["123", ".", ",", "?", "!", "'", "delete"]) - .addRow(["ABC", "selectKeyboard", "space", "return"]) // "undo" + .addRow(["ABC", "selectKeyboard", "space", "return"]) if currencyKeys.count < 3 { return keyboardBuilder.build() @@ -74,7 +74,7 @@ struct PTKeyboardProvider: KeyboardProviderProtocol { .addRow(["q", "w", "e", "r", "t", "y", "u", "i", "o", "p", "delete"]) .addRow(["a", "s", "d", "f", "g", "h", "j", "k", "l", "return"]) .addRow(["shift", "z", "x", "c", "v", "b", "n", "m", "!", "?", "shift"]) - .addRow(["selectKeyboard", ".?123", "space", ".?123", "hideKeyboard"]) // "undo" + .addRow(["selectKeyboard", ".?123", "space", ".?123", "hideKeyboard"]) .build() } @@ -83,7 +83,7 @@ struct PTKeyboardProvider: KeyboardProviderProtocol { .addRow(["1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "delete"]) .addRow(["@", "#", "$", "&", "*", "(", ")", "'", "\"", "return"]) .addRow(["#+=", "%", "-", "+", "=", "/", ";", ":", ",", ".", "#+="]) - .addRow(["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"]) // "undo" + .addRow(["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"]) .replaceKey(row: 1, column: 2, to: currencyKey) .build() } @@ -93,7 +93,7 @@ struct PTKeyboardProvider: KeyboardProviderProtocol { .addRow(["1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "delete"]) .addRow(["€", "£", "¥", "_", "^", "[", "]", "{", "}", "return"]) .addRow(["123", "§", "|", "~", "...", "\\", "<", ">", "!", "?", "123"]) - .addRow(["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"]) // "undo" + .addRow(["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"]) if currencyKeys.count < 3 { return keyboardBuilder.build() @@ -114,7 +114,7 @@ struct PTKeyboardProvider: KeyboardProviderProtocol { .addRow([SpecialKeys.indent, "q", "w", "e", "r", "t", "y", "u", "i", "o", "p", "[", "]", "\\"]) .addRow([SpecialKeys.capsLock, "a", "s", "d", "f", "g", "h", "j", "k", "l", ":", ";", "ç", "return"]) .addRow(["shift", "'", "z", "x", "c", "v", "b", "n", "m", ",", ".", "/", "shift"]) - .addRow(["selectKeyboard", ".?123", "space", ".?123", "hideKeyboard"]) // "microphone", "scribble" + .addRow(["selectKeyboard", ".?123", "space", ".?123", "hideKeyboard"]) .build() } @@ -122,9 +122,9 @@ struct PTKeyboardProvider: KeyboardProviderProtocol { return KeyboardBuilder() .addRow(["`", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "<", ">", "delete"]) .addRow([SpecialKeys.indent, "[", "]", "{", "}", "#", "%", "^", "*", "+", "=", "—", "|", "~"]) - .addRow([SpecialKeys.capsLock, "°", "\\", ":", ";", "(", ")", "&", "@", "$", "£", "¥", "€", "return"]) // "undo" - .addRow(["shift", "…", "?", "!", "≠", "'", "\"", "_", "-", ",", ".", "/", "shift"]) // "redo" - .addRow(["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"]) // "microphone", "scribble" + .addRow([SpecialKeys.capsLock, "°", "\\", ":", ";", "(", ")", "&", "@", "$", "£", "¥", "€", "return"]) + .addRow(["shift", "…", "?", "!", "≠", "'", "\"", "_", "-", ",", ".", "/", "shift"]) + .addRow(["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"]) .build() } } diff --git a/Keyboards/LanguageKeyboards/Russian/RUInterfaceVariables.swift b/Keyboards/LanguageKeyboards/Russian/RUInterfaceVariables.swift index 9a32cc78..35dbf2dd 100644 --- a/Keyboards/LanguageKeyboards/Russian/RUInterfaceVariables.swift +++ b/Keyboards/LanguageKeyboards/Russian/RUInterfaceVariables.swift @@ -29,7 +29,7 @@ struct RUKeyboardProvider: KeyboardProviderProtocol { .addRow(["й", "ц", "у", "к", "е", "н", "г", "ш", "щ", "з", "х"]) .addRow(["ф", "ы", "в", "а", "п", "р", "о", "л", "д", "ж", "э"]) .addRow(["shift", "я", "ч", "с", "м", "и", "т", "ь", "б", "ю", "delete"]) - .addRow(["123", "selectKeyboard", "space", "return"]) // "undo" + .addRow(["123", "selectKeyboard", "space", "return"]) .build() } @@ -38,7 +38,7 @@ struct RUKeyboardProvider: KeyboardProviderProtocol { .addRow(["1", "2", "3", "4", "5", "6", "7", "8", "9", "0"]) .addRow(["-", "/", ":", ";", "(", ")", "₽", "&", "@", "\""]) .addRow(["#+=", ".", ",", "?", "!", "'", "delete"]) - .addRow(["АБВ", "selectKeyboard", "space", "return"]) // "undo" + .addRow(["АБВ", "selectKeyboard", "space", "return"]) .replaceKey(row: 1, column: 6, to: currencyKey) .build() } @@ -48,7 +48,7 @@ struct RUKeyboardProvider: KeyboardProviderProtocol { .addRow(["[", "]", "{", "}", "#", "%", "^", "*", "+", "="]) .addRow(["_", "\\", "|", "~", "<", ">", "$", "€", "£", "·"]) .addRow(["123", ".", ",", "?", "!", "'", "delete"]) - .addRow(["АБВ", "selectKeyboard", "space", "return"]) // "undo" + .addRow(["АБВ", "selectKeyboard", "space", "return"]) if currencyKeys.count < 3 { return keyboardBuilder.build() @@ -69,7 +69,7 @@ struct RUKeyboardProvider: KeyboardProviderProtocol { .addRow(["й", "ц", "у", "к", "е", "н", "г", "ш", "щ", "з", "х", "delete"]) .addRow(["ф", "ы", "в", "а", "п", "р", "о", "л", "д", "ж", "э", "return"]) .addRow(["shift", "я", "ч", "с", "м", "и", "т", "ь", "б", "ю", ".", "shift"]) - .addRow(["selectKeyboard", ".?123", "space", ".?123", "hideKeyboard"]) // "undo" + .addRow(["selectKeyboard", ".?123", "space", ".?123", "hideKeyboard"]) .build() } @@ -78,7 +78,7 @@ struct RUKeyboardProvider: KeyboardProviderProtocol { .addRow(["1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "—", "delete"]) .addRow(["@", "#", "№", "₽", "ʼ", "&", "*", "(", ")", "'", "\"", "return"]) .addRow(["#+=", "%", "_", "-", "+", "=", "≠", ";", ":", ",", ".", "#+="]) - .addRow(["selectKeyboard", "АБВ", "space", "АБВ", "hideKeyboard"]) // "undo" + .addRow(["selectKeyboard", "АБВ", "space", "АБВ", "hideKeyboard"]) .replaceKey(row: 1, column: 3, to: currencyKey) .build() } @@ -88,7 +88,7 @@ struct RUKeyboardProvider: KeyboardProviderProtocol { .addRow(["1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "—", "delete"]) .addRow(["$", "€", "£", "¥", "±", "·", "`", "[", "]", "{", "}", "return"]) .addRow(["123", "§", "|", "~", "...", "^", "\\", "<", ">", "!", "?", "123"]) - .addRow(["selectKeyboard", "АБВ", "space", "АБВ", "hideKeyboard"]) // "undo" + .addRow(["selectKeyboard", "АБВ", "space", "АБВ", "hideKeyboard"]) if currencyKeys.count < 3 { return keyboardBuilder.build() @@ -109,7 +109,7 @@ struct RUKeyboardProvider: KeyboardProviderProtocol { .addRow([SpecialKeys.indent, "й", "ц", "у", "к", "е", "н", "г", "ш", "щ", "з", "х", "ъ", "+"]) .addRow([SpecialKeys.capsLock, "ф", "ы", "в", "а", "п", "р", "о", "л", "д", "ж", "э", "ё", "return"]) .addRow(["shift", "'", "я", "ч", "с", "м", "и", "т", "ь", "б", "ю", "/", "shift"]) - .addRow(["selectKeyboard", ".?123", "space", ".?123", "hideKeyboard"]) // "microphone", "scribble" + .addRow(["selectKeyboard", ".?123", "space", ".?123", "hideKeyboard"]) .build() } @@ -117,9 +117,9 @@ struct RUKeyboardProvider: KeyboardProviderProtocol { return KeyboardBuilder() .addRow(["`", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "<", ">", "delete"]) .addRow([SpecialKeys.indent, "[", "]", "{", "}", "#", "%", "^", "*", "+", "=", "\\", "|", "₽"]) - .addRow([SpecialKeys.capsLock, "—", "/", ":", ";", "(", ")", "&", "@", "$", "£", "¥", "~", "return"]) // "undo" - .addRow(["shift", "…", "?", "!", "≠", "'", "\"", "_", "€", "-", ",", ".", "shift"]) // "redo" - .addRow(["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"]) // "microphone", "scribble" + .addRow([SpecialKeys.capsLock, "—", "/", ":", ";", "(", ")", "&", "@", "$", "£", "¥", "~", "return"]) + .addRow(["shift", "…", "?", "!", "≠", "'", "\"", "_", "€", "-", ",", ".", "shift"]) + .addRow(["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"]) .build() } } diff --git a/Keyboards/LanguageKeyboards/Spanish/ESInterfaceVariables.swift b/Keyboards/LanguageKeyboards/Spanish/ESInterfaceVariables.swift index 95060819..f316ca4c 100644 --- a/Keyboards/LanguageKeyboards/Spanish/ESInterfaceVariables.swift +++ b/Keyboards/LanguageKeyboards/Spanish/ESInterfaceVariables.swift @@ -37,7 +37,7 @@ struct ESKeyboardProvider: KeyboardProviderProtocol, KeyboardProviderDisableAcce .addRow(["q", "w", "e", "r", "t", "y", "u", "i", "o", "p"]) .addRow(["a", "s", "d", "f", "g", "h", "j", "k", "l", "ñ"]) .addRow(["shift", "z", "x", "c", "v", "b", "n", "m", "delete"]) - .addRow(["123", "selectKeyboard", "space", "return"]) // "undo" + .addRow(["123", "selectKeyboard", "space", "return"]) .build() } @@ -46,7 +46,7 @@ struct ESKeyboardProvider: KeyboardProviderProtocol, KeyboardProviderDisableAcce .addRow(["q", "w", "e", "r", "t", "y", "u", "i", "o", "p"]) .addRow(["a", "s", "d", "f", "g", "h", "j", "k", "l"]) .addRow(["shift", "z", "x", "c", "v", "b", "n", "m", "delete"]) - .addRow(["123", "selectKeyboard", "space", "return"]) // "undo" + .addRow(["123", "selectKeyboard", "space", "return"]) .build() } @@ -55,7 +55,7 @@ struct ESKeyboardProvider: KeyboardProviderProtocol, KeyboardProviderDisableAcce .addRow(["1", "2", "3", "4", "5", "6", "7", "8", "9", "0"]) .addRow(["-", "/", ":", ";", "(", ")", "$", "&", "@", "\""]) .addRow(["#+=", ".", ",", "?", "!", "'", "delete"]) - .addRow(["ABC", "selectKeyboard", "space", "return"]) // "undo" + .addRow(["ABC", "selectKeyboard", "space", "return"]) .replaceKey(row: 1, column: 6, to: currencyKey) .build() } @@ -65,7 +65,7 @@ struct ESKeyboardProvider: KeyboardProviderProtocol, KeyboardProviderDisableAcce .addRow(["[", "]", "{", "}", "#", "%", "^", "*", "+", "="]) .addRow(["_", "\\", "|", "~", "<", ">", "€", "£", "¥", "·"]) .addRow(["123", ".", ",", "?", "!", "'", "delete"]) - .addRow(["ABC", "selectKeyboard", "space", "return"]) // "undo" + .addRow(["ABC", "selectKeyboard", "space", "return"]) if currencyKeys.count < 3 { return keyboardBuilder.build() @@ -86,7 +86,7 @@ struct ESKeyboardProvider: KeyboardProviderProtocol, KeyboardProviderDisableAcce .addRow(["q", "w", "e", "r", "t", "y", "u", "i", "o", "p", "delete"]) .addRow(["a", "s", "d", "f", "g", "h", "j", "k", "l", "ñ", "return"]) .addRow(["shift", "z", "x", "c", "v", "b", "n", "m", ",", ".", "shift"]) - .addRow(["selectKeyboard", ".?123", "space", ".?123", "hideKeyboard"]) // "undo" + .addRow(["selectKeyboard", ".?123", "space", ".?123", "hideKeyboard"]) .build() } @@ -96,7 +96,7 @@ struct ESKeyboardProvider: KeyboardProviderProtocol, KeyboardProviderDisableAcce .addRow(["q", "w", "e", "r", "t", "y", "u", "i", "o", "p", "delete"]) .addRow(["a", "s", "d", "f", "g", "h", "j", "k", "l", "return"]) .addRow(["shift", "z", "x", "c", "v", "b", "n", "m", ",", ".", "shift"]) - .addRow(["selectKeyboard", ".?123", "space", ".?123", "hideKeyboard"]) // "undo" + .addRow(["selectKeyboard", ".?123", "space", ".?123", "hideKeyboard"]) .build() } @@ -105,7 +105,7 @@ struct ESKeyboardProvider: KeyboardProviderProtocol, KeyboardProviderDisableAcce .addRow(["1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "delete"]) .addRow(["@", "#", "$", "&", "*", "(", ")", "'", "\"", "+", "return"]) .addRow(["#+=", "%", "_", "-", "=", "/", ";", ":", ",", ".", "#+="]) - .addRow(["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"]) // "undo" + .addRow(["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"]) .replaceKey(row: 1, column: 2, to: currencyKey) .build() } @@ -115,7 +115,7 @@ struct ESKeyboardProvider: KeyboardProviderProtocol, KeyboardProviderDisableAcce .addRow(["1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "delete"]) .addRow(["€", "£", "¥", "^", "[", "]", "{", "}", "ᵒ", "ᵃ", "return"]) .addRow(["123", "§", "|", "~", "¶", "\\", "<", ">", "¡", "¿", "123"]) - .addRow(["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"]) // "undo" + .addRow(["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"]) if currencyKeys.count < 3 { return keyboardBuilder.build() @@ -136,7 +136,7 @@ struct ESKeyboardProvider: KeyboardProviderProtocol, KeyboardProviderDisableAcce .addRow([SpecialKeys.indent, "q", "w", "e", "r", "t", "y", "u", "i", "o", "p", "´", "+", "*"]) .addRow([SpecialKeys.capsLock, "a", "s", "d", "f", "g", "h", "j", "k", "l", "ñ", "{", "}", "return"]) .addRow(["shift", "'", "z", "x", "c", "v", "b", "n", "m", ",", ".", "-", "shift"]) - .addRow(["selectKeyboard", ".?123", "space", ".?123", "hideKeyboard"]) // "microphone", "scribble" + .addRow(["selectKeyboard", ".?123", "space", ".?123", "hideKeyboard"]) .build() } @@ -146,7 +146,7 @@ struct ESKeyboardProvider: KeyboardProviderProtocol, KeyboardProviderDisableAcce .addRow([SpecialKeys.indent, "q", "w", "e", "r", "t", "y", "u", "i", "o", "p", "´", "+", "*"]) .addRow([SpecialKeys.capsLock, "a", "s", "d", "f", "g", "h", "j", "k", "l", "~", "{", "}", "return"]) .addRow(["shift", "'", "z", "x", "c", "v", "b", "n", "m", ",", ".", "-", "shift"]) - .addRow(["selectKeyboard", ".?123", "space", ".?123", "hideKeyboard"]) // "microphone", "scribble" + .addRow(["selectKeyboard", ".?123", "space", ".?123", "hideKeyboard"]) .build() } @@ -154,9 +154,9 @@ static func genPadExpandedSymbolKeys() -> [[String]] { return KeyboardBuilder() .addRow(["`", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "<", ">", "delete"]) .addRow([SpecialKeys.indent, "(", ")", "{", "}", "#", "%", "^", "*", "+", "=", "\\", "|", "§"]) - .addRow([SpecialKeys.capsLock, "—", "/", ":", ";", "&", "@", "$", "£", "¥", "~", "[", "]", "return"]) // "undo" - .addRow(["shift", "…", "?", "!", "≠", "'", "\"", "_", "€", ",", ".", "-", "shift"]) // "redo" - .addRow(["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"]) // "microphone", "scribble" + .addRow([SpecialKeys.capsLock, "—", "/", ":", ";", "&", "@", "$", "£", "¥", "~", "[", "]", "return"]) + .addRow(["shift", "…", "?", "!", "≠", "'", "\"", "_", "€", ",", ".", "-", "shift"]) + .addRow(["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"]) .build() } } diff --git a/Keyboards/LanguageKeyboards/Swedish/SVInterfaceVariables.swift b/Keyboards/LanguageKeyboards/Swedish/SVInterfaceVariables.swift index ec26dc0c..5391b05d 100644 --- a/Keyboards/LanguageKeyboards/Swedish/SVInterfaceVariables.swift +++ b/Keyboards/LanguageKeyboards/Swedish/SVInterfaceVariables.swift @@ -41,7 +41,7 @@ struct SVKeyboardProvider: KeyboardProviderProtocol, KeyboardProviderDisableAcce .addRow(["q", "w", "e", "r", "t", "z", "u", "i", "o", "p", "å"]) .addRow(["a", "s", "d", "f", "g", "h", "j", "k", "l", "ö", "ä"]) .addRow(["shift", "y", "x", "c", "v", "b", "n", "m", "delete"]) - .addRow(["123", "selectKeyboard", "space", "return"]) // "undo" + .addRow(["123", "selectKeyboard", "space", "return"]) .build() } @@ -50,7 +50,7 @@ struct SVKeyboardProvider: KeyboardProviderProtocol, KeyboardProviderDisableAcce .addRow(["q", "w", "e", "r", "t", "z", "u", "i", "o", "p"]) .addRow(["a", "s", "d", "f", "g", "h", "j", "k", "l"]) .addRow(["shift", "y", "x", "c", "v", "b", "n", "m", "delete"]) - .addRow(["123", "selectKeyboard", "space", "return"]) // "undo" + .addRow(["123", "selectKeyboard", "space", "return"]) .build() } @@ -59,7 +59,7 @@ struct SVKeyboardProvider: KeyboardProviderProtocol, KeyboardProviderDisableAcce .addRow(["1", "2", "3", "4", "5", "6", "7", "8", "9", "0"]) .addRow(["-", "/", ":", ";", "(", ")", "kr", "&", "@", "\""]) .addRow(["#+=", ".", ",", "?", "!", "'", "delete"]) - .addRow(["ABC", "selectKeyboard", "space", "return"]) // "undo" + .addRow(["ABC", "selectKeyboard", "space", "return"]) .replaceKey(row: 1, column: 6, to: currencyKey) .build() } @@ -69,7 +69,7 @@ struct SVKeyboardProvider: KeyboardProviderProtocol, KeyboardProviderDisableAcce .addRow(["[", "]", "{", "}", "#", "%", "^", "*", "+", "="]) .addRow(["_", "\\", "|", "~", "<", ">", "€", "$", "£", "·"]) .addRow(["123", ".", ",", "?", "!", "'", "delete"]) - .addRow(["ABC", "selectKeyboard", "space", "return"]) // "undo" + .addRow(["ABC", "selectKeyboard", "space", "return"]) if currencyKeys.count < 3 { return keyboardBuilder.build() @@ -90,7 +90,7 @@ struct SVKeyboardProvider: KeyboardProviderProtocol, KeyboardProviderDisableAcce .addRow(["q", "w", "e", "r", "t", "z", "u", "i", "o", "p", "å", "delete"]) .addRow(["a", "s", "d", "f", "g", "h", "j", "k", "l", "ö", "ä", "return"]) .addRow(["shift", "y", "x", "c", "v", "b", "n", "m", ",", ".", "?", "shift"]) - .addRow(["selectKeyboard", ".?123", "space", ".?123", "hideKeyboard"]) // "undo" + .addRow(["selectKeyboard", ".?123", "space", ".?123", "hideKeyboard"]) .build() } @@ -100,7 +100,7 @@ struct SVKeyboardProvider: KeyboardProviderProtocol, KeyboardProviderDisableAcce .addRow(["q", "w", "e", "r", "t", "z", "u", "i", "o", "p", "delete"]) .addRow(["a", "s", "d", "f", "g", "h", "j", "k", "l", "return"]) .addRow(["shift", "y", "x", "c", "v", "b", "n", "m", ",", ".", "?", "shift"]) - .addRow(["selectKeyboard", ".?123", "space", ".?123", "hideKeyboard"]) // "undo" + .addRow(["selectKeyboard", ".?123", "space", ".?123", "hideKeyboard"]) .build() } @@ -109,7 +109,7 @@ struct SVKeyboardProvider: KeyboardProviderProtocol, KeyboardProviderDisableAcce .addRow(["1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "`", "delete"]) .addRow(["@", "#", "kr", "&", "*", "(", ")", "'", "\"", "+", "·", "return"]) .addRow(["#+=", "%", "≈", "±", "=", "/", ";", ":", ",", ".", "-", "#+="]) - .addRow(["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"]) // "undo" + .addRow(["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"]) .replaceKey(row: 1, column: 2, to: currencyKey) .build() } @@ -119,7 +119,7 @@ struct SVKeyboardProvider: KeyboardProviderProtocol, KeyboardProviderDisableAcce .addRow(["1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "*", "delete"]) .addRow(["€", "$", "£", "^", "[", "]", "{", "}", "―", "ᵒ", "...", "return"]) .addRow(["123", "§", "|", "~", "≠", "\\", "<", ">", "!", "?", "_", "123"]) - .addRow(["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"]) // "undo" + .addRow(["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"]) if currencyKeys.count < 3 { return keyboardBuilder.build() @@ -140,7 +140,7 @@ struct SVKeyboardProvider: KeyboardProviderProtocol, KeyboardProviderDisableAcce .addRow([SpecialKeys.indent, "q", "w", "e", "r", "t", "y", "u", "i", "o", "p", "å", "^", "*"]) .addRow([SpecialKeys.capsLock, "a", "s", "d", "f", "g", "h", "j", "k", "l", "ö", "ä", "'", "return"]) .addRow(["shift", "'", "z", "x", "c", "v", "b", "n", "m", ",", ".", "-", "shift"]) - .addRow(["selectKeyboard", ".?123", "space", ".?123", "hideKeyboard"]) // "microphone", "scribble" + .addRow(["selectKeyboard", ".?123", "space", ".?123", "hideKeyboard"]) .build() } @@ -150,7 +150,7 @@ struct SVKeyboardProvider: KeyboardProviderProtocol, KeyboardProviderDisableAcce .addRow([SpecialKeys.indent, "q", "w", "e", "r", "t", "y", "u", "i", "o", "p", "\"", "^", "*"]) .addRow([SpecialKeys.capsLock, "a", "s", "d", "f", "g", "h", "j", "k", "l", "(", ")", "'", "return"]) .addRow(["shift", "'", "z", "x", "c", "v", "b", "n", "m", ",", ".", "-", "shift"]) - .addRow(["selectKeyboard", ".?123", "space", ".?123", "hideKeyboard"]) // "microphone", "scribble" + .addRow(["selectKeyboard", ".?123", "space", ".?123", "hideKeyboard"]) .build() } @@ -158,9 +158,9 @@ struct SVKeyboardProvider: KeyboardProviderProtocol, KeyboardProviderDisableAcce return KeyboardBuilder() .addRow(["`", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "<", ">", "delete"]) .addRow([SpecialKeys.indent, "[", "]", "{", "}", "#", "%", "^", "*", "+", "=", "°", "|", "§"]) - .addRow([SpecialKeys.capsLock, "—", "/", ":", ";", "(", ")", "&", "@", "$", "£", "¥", "~", "return"]) // "undo" - .addRow(["shift", "…", "?", "!", "≠", "'", "\"", "_", "€", ",", ".", "-", "shift"]) // "redo" - .addRow(["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"]) // "microphone", "scribble" + .addRow([SpecialKeys.capsLock, "—", "/", ":", ";", "(", ")", "&", "@", "$", "£", "¥", "~", "return"]) + .addRow(["shift", "…", "?", "!", "≠", "'", "\"", "_", "€", ",", ".", "-", "shift"]) + .addRow(["selectKeyboard", "ABC", "space", "ABC", "hideKeyboard"]) .build() }