diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 65ce9320..b413fc3c 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -20,7 +20,7 @@ repos: - id: trailing-whitespace - id: end-of-file-fixer - id: check-yaml - - id: check-added-large-files + # - id: check-added-large-files - repo: https://github.com/realm/SwiftLint rev: 0.62.2 diff --git a/Keyboards/Data/DELanguageData.sqlite b/Keyboards/Data/DELanguageData.sqlite new file mode 100644 index 00000000..7934ed73 Binary files /dev/null and b/Keyboards/Data/DELanguageData.sqlite differ diff --git a/Keyboards/Data/ENLanguageData.sqlite b/Keyboards/Data/ENLanguageData.sqlite new file mode 100644 index 00000000..fe268aa8 Binary files /dev/null and b/Keyboards/Data/ENLanguageData.sqlite differ diff --git a/Keyboards/Data/ESLanguageData.sqlite b/Keyboards/Data/ESLanguageData.sqlite new file mode 100644 index 00000000..81612e1e Binary files /dev/null and b/Keyboards/Data/ESLanguageData.sqlite differ diff --git a/Keyboards/Data/FRLanguageData.sqlite b/Keyboards/Data/FRLanguageData.sqlite new file mode 100644 index 00000000..31c11f31 Binary files /dev/null and b/Keyboards/Data/FRLanguageData.sqlite differ diff --git a/Keyboards/Data/ITLanguageData.sqlite b/Keyboards/Data/ITLanguageData.sqlite new file mode 100644 index 00000000..ca3f2832 Binary files /dev/null and b/Keyboards/Data/ITLanguageData.sqlite differ diff --git a/Keyboards/Data/PTLanguageData.sqlite b/Keyboards/Data/PTLanguageData.sqlite new file mode 100644 index 00000000..7e30543e Binary files /dev/null and b/Keyboards/Data/PTLanguageData.sqlite differ diff --git a/Keyboards/LanguageKeyboards/English/ENLanguageData.sqlite b/Keyboards/Data/RULanguageData.sqlite similarity index 50% rename from Keyboards/LanguageKeyboards/English/ENLanguageData.sqlite rename to Keyboards/Data/RULanguageData.sqlite index 769b84a7..6dffd162 100644 Binary files a/Keyboards/LanguageKeyboards/English/ENLanguageData.sqlite and b/Keyboards/Data/RULanguageData.sqlite differ diff --git a/Keyboards/Data/SVLanguageData.sqlite b/Keyboards/Data/SVLanguageData.sqlite new file mode 100644 index 00000000..393cce0b Binary files /dev/null and b/Keyboards/Data/SVLanguageData.sqlite differ diff --git a/Keyboards/LanguageKeyboards/TranslationData.sqlite b/Keyboards/Data/TranslationData.sqlite similarity index 99% rename from Keyboards/LanguageKeyboards/TranslationData.sqlite rename to Keyboards/Data/TranslationData.sqlite index 0f8c27d1..44fa6b7d 100644 Binary files a/Keyboards/LanguageKeyboards/TranslationData.sqlite and b/Keyboards/Data/TranslationData.sqlite differ diff --git a/Keyboards/DataContracts/de.json b/Keyboards/DataContracts/de.json new file mode 100644 index 00000000..05180f58 --- /dev/null +++ b/Keyboards/DataContracts/de.json @@ -0,0 +1,64 @@ +{ + "numbers": { + "nominativeSingular": "nominativePlural" + }, + "genders": { + "canonical": [ + "gender" + ], + "feminines": [], + "masculines": [], + "commons": [], + "neuters": [] + }, + "conjugations": { + "1": { + "title": "Präsens", + "conjugationTypes": { + "1": { + "title": "Präsens", + "conjugationForms": { + "ich": "indicativePresentFirstPersonSingular", + "du": "indicativePresentSecondPersonSingular", + "er/sie/es": "indicativePresentThirdPersonSingular", + "wir": "indicativePresentFirstPersonPlural", + "ihr": "indicativePresentSecondPersonPlural", + "sie/Sie": "indicativePresentThirdPersonPlural" + } + } + } + }, + "2": { + "title": "Preterite", + "conjugationTypes": { + "1": { + "title": "Preterite", + "conjugationForms": { + "ich": "indicativePreteriteFirstPersonSingular", + "du": "indicativePreteriteFirstPersonPlural", + "er/sie/es": "indicativePreteriteSecondPersonSingular", + "wir": "indicativePreteriteSecondPersonPlural", + "ihr": "indicativePreteriteThirdPersonSingular", + "sie/Sie": "indicativePreteriteThirdPersonPlural" + } + } + } + }, + "3": { + "title": "Perfekt", + "conjugationTypes": { + "1": { + "title": "Perfekt", + "conjugationForms": { + "ich": "[indicativePresentFirstPersonSingular auxiliaryVerb] pastParticiple", + "du": "[indicativePresentSecondPersonSingular auxiliaryVerb] pastParticiple", + "er/sie/es": "[indicativePresentThirdPersonSingular auxiliaryVerb] pastParticiple", + "wir": "[indicativePresentFirstPersonPlural auxiliaryVerb] pastParticiple", + "ihr": "[indicativePresentSecondPersonPlural auxiliaryVerb] pastParticiple", + "sie/Sie": "[indicativePresentThirdPersonPlural auxiliaryVerb] pastParticiple" + } + } + } + } + } +} diff --git a/Keyboards/DataContracts/en.json b/Keyboards/DataContracts/en.json new file mode 100644 index 00000000..2bd61564 --- /dev/null +++ b/Keyboards/DataContracts/en.json @@ -0,0 +1,136 @@ +{ + "numbers": { + "singular": "plural" + }, + "genders": { + "canonical": [], + "feminines": [], + "masculines": [], + "commons": [], + "neuters": [] + }, + "conjugations": { + "1": { + "title": "Present", + "conjugationTypes": { + "1": { + "title": "Pr. Simple", + "conjugationForms": { + "I/you/plural": "simplePresent", + "he/she/it": "simplePresentThirdPersonSingular" + } + }, + "2": { + "title": "Pr. Perfect", + "conjugationForms": { + "I/you/plural": "[have] pastParticiple", + "he/she/it": "[has] pastParticiple" + } + }, + "3": { + "title": "Pr. Continuous", + "conjugationForms": { + "I": "[am] presentParticiple", + "you/plural": "[are] presentParticiple", + "he/she/it": "[is] presentParticiple" + } + }, + "4": { + "title": "Pr. Perf. Continuous", + "conjugationForms": { + "I/you/plural": "[have been] presentParticiple", + "he/she/it": "[has been] presentParticiple" + } + } + } + }, + "2": { + "title": "Past", + "conjugationTypes": { + "1": { + "title": "Past Simple", + "conjugationForms": { + "all": "simplePast" + } + }, + "2": { + "title": "Past Perfect", + "conjugationForms": { + "all": "[had] pastParticiple" + } + }, + "3": { + "title": "Past Continuous", + "conjugationForms": { + "I/he/she/it": "[was] presentParticiple", + "you/plural": "[were] presentParticiple" + } + }, + "4": { + "title": "Past Perf. Continuous", + "conjugationForms": { + "all": "[had been] presentParticiple" + } + } + } + }, + "3": { + "title": "Future", + "conjugationTypes": { + "1": { + "title": "Fut. Simple", + "conjugationForms": { + "all": "[will] infinitive" + } + }, + "2": { + "title": "Fut. Perfect", + "conjugationForms": { + "all": "[will have] pastParticiple" + } + }, + "3": { + "title": "Fut. Continuous", + "conjugationForms": { + "all": "[will be] presentParticiple" + } + }, + "4": { + "title": "Fut. Perf. Continuous", + "conjugationForms": { + "all": "[will have been] presentParticiple" + } + } + } + }, + "4": { + "title": "Conditional", + "conjugationTypes": { + "1": { + "title": "Cond. Simple", + "conjugationForms": { + "all": "[would] infinitive" + } + }, + "2": { + "title": "Cond. Perfect", + "conjugationForms": { + "all": "[would have] pastParticiple" + } + }, + "3": { + "title": "Cond. Continuous", + "conjugationForms": { + "all": "[would be] presentParticiple" + } + }, + "4": { + "title": "Cond. Perf. Continuous", + "conjugationForms": { + "all": "[would have been] presentParticiple" + } + } + } + } + } +} diff --git a/Keyboards/DataContracts/es.json b/Keyboards/DataContracts/es.json new file mode 100644 index 00000000..797d1b2c --- /dev/null +++ b/Keyboards/DataContracts/es.json @@ -0,0 +1,65 @@ +{ + "numbers": { + "feminineSingular": "femininePlural", + "masculineSingular": "masculinePlural" + }, + "genders": { + "canonical": [], + "feminines": ["feminineSingular"], + "masculines": ["masculineSingular"], + "commons": [], + "neuters": [] + }, + "conjugations": { + "1": { + "title": "Presente", + "conjugationTypes": { + "1": { + "title": "Presente", + "conjugationForms": { + "yo": "indicativePresentFirstPersonSingular", + "tú": "indicativePresentFirstPersonPlural", + "él/ella/Ud.": "indicativePresentSecondPersonSingular", + "nosotros": "indicativePresentSecondPersonPlural", + "vosotros": "indicativePresentThirdPersonSingular", + "ellos/ellas/Uds.": "indicativePresentThirdPersonPlural" + } + } + } + }, + "2": { + "title": "Pretérito", + "conjugationTypes": { + "1": { + "title": "Pretérito", + "conjugationForms": { + "yo": "preteriteFirstPersonSingular", + "tú": "preteriteFirstPersonPlural", + "él/ella/Ud.": "preteriteSecondPersonSingular", + "nosotros": "preteriteSecondPersonPlural", + "vosotros": "preteriteThirdPersonSingular", + "ellos/ellas/Uds.": "preteriteThirdPersonPlural" + } + } + } + + }, + "3": { + "title": "Imperfecto", + "conjugationTypes" : { + "1": { + "title": "Imperfecto", + "conjugationForms": { + "yo": "pastImperfectFirstPersonSingular", + "tú": "pastImperfectFirstPersonPlural", + "él/ella/Ud.": "pastImperfectSecondPersonSingular", + "nosotros": "pastImperfectSecondPersonPlural", + "vosotros": "pastImperfectThirdPersonSingular", + "ellos/ellas/Uds.": "pastImperfectThirdPersonPlural" + } + } + } + + } + } + } diff --git a/Keyboards/DataContracts/fr.json b/Keyboards/DataContracts/fr.json new file mode 100644 index 00000000..32c9f92c --- /dev/null +++ b/Keyboards/DataContracts/fr.json @@ -0,0 +1,77 @@ +{ + "numbers": { "singular": "plural" }, + "genders": { + "canonical": ["gender"], + "feminines": [], + "masculines": [], + "commons": [], + "neuters": [] + }, + "conjugations": { + "1": { + "title": "Présent", + "conjugationTypes": { + "1": { + "title": "Présent", + "conjugationForms": { + "je": "indicativePresentFirstPersonSingular", + "tu": "indicativePresentFirstPersonPlural", + "il/elle": "indicativePresentSecondPersonSingular", + "nous": "indicativePresentSecondPersonPlural", + "vous": "indicativePresentThirdPersonSingular", + "ils/elles": "indicativePresentThirdPersonPlural" + } + } + } + }, + "2": { + "title": "Passé simple", + "conjugationTypes": { + "1": { + "title": "Passé simple", + "conjugationForms": { + "je": "indicativePreteriteFirstPersonSingular", + "tu": "indicativePreteriteFirstPersonPlural", + "il/elle": "indicativePreteriteSecondPersonSingular", + "nous": "indicativePreteriteSecondPersonPlural", + "vous": "indicativePreteriteThirdPersonSingular", + "ils/elles": "indicativePreteriteThirdPersonPlural" + } + } + } + }, + "3": { + "title": "Imparfait", + "conjugationTypes": { + "1": { + "title": "Imparfait", + "conjugationForms": { + "je": "indicativeImperfectFirstPersonSingular", + "tu": "indicativeImperfectFirstPersonPlural", + "il/elle": "indicativeImperfectSecondPersonSingular", + "nous": "indicativeImperfectSecondPersonPlural", + "vous": "indicativeImperfectThirdPersonSingular", + "ils/elles": "indicativeImperfectThirdPersonPlural" + } + } + } + + }, + "4": { + "title": "Futur", + "conjugationTypes":{ + "1": { + "title": "Futur", + "conjugationForms": { + "je": "indicativeSimpleFutureFirstPersonSingular", + "tu": "indicativeSimpleFutureFirstPersonPlural", + "il/elle": "indicativeSimpleFutureSecondPersonSingular", + "nous": "indicativeSimpleFutureSecondPersonPlural", + "vous": "indicativeSimpleFutureThirdPersonSingular", + "ils/elles": "indicativeSimpleFutureThirdPersonPlural" + } + } + } + } + } + } diff --git a/Keyboards/DataContracts/it.json b/Keyboards/DataContracts/it.json new file mode 100644 index 00000000..cdce757c --- /dev/null +++ b/Keyboards/DataContracts/it.json @@ -0,0 +1,63 @@ +{ + "numbers": { "singular": "plural" }, + "genders": { + "canonical": ["gender"], + "feminines": [], + "masculines": [], + "commons": [], + "neuters": [] + }, + "conjugations": { + "1": { + "title": "Presente", + "conjugationTypes": { + "1": { + "title": "Presente", + "conjugationForms": { + "io": "presentIndicativeFirstPersonSingular", + "tu": "presentIndicativeFirstPersonPlural", + "lei/lui": "presentIndicativeSecondPersonSingular", + "noi": "presentIndicativeSecondPersonPlural", + "voi": "presentIndicativeThirdPersonSingular", + "loro": "presentIndicativeThirdPersonPlural" + } + } + } + + }, + "2": { + "title": "Preterito", + "conjugationTypes": { + "1": { + "title": "Preterito", + "conjugationForms": { + "io": "preteriteFirstPersonSingular", + "tu": "preteriteFirstPersonPlural", + "lei/lui": "preteriteSecondPersonSingular", + "noi": "preteriteSecondPersonPlural", + "voi": "preteriteThirdPersonSingular", + "loro": "preteriteThirdPersonPlural" + } + } + } + + }, + "3": { + "title": "Imperfetto", + "conjugationTypes": { + "1": { + "title": "Imperfetto", + "conjugationForms": { + "io": "pastImperfectFirstPersonSingular", + "tu": "pastImperfectFirstPersonPlural", + "lei/lui": "pastImperfectSecondPersonSingular", + "noi": "pastImperfectSecondPersonPlural", + "voi": "pastImperfectThirdPersonSingular", + "loro": "pastImperfectThirdPersonPlural" + } + } + } + + } + } + } diff --git a/Keyboards/DataContracts/pt.json b/Keyboards/DataContracts/pt.json new file mode 100644 index 00000000..36f07ba9 --- /dev/null +++ b/Keyboards/DataContracts/pt.json @@ -0,0 +1,79 @@ +{ + "numbers": { "singular": "plural" }, + "genders": { + "canonical": ["gender"], + "feminines": [], + "masculines": [], + "commons": [], + "neuters": [] + }, + "conjugations": { + "1": { + "title": "Presente", + "conjugationTypes": { + "1": { + "title": "Presente", + "conjugationForms": { + "eu": "indicativePresentFirstPersonSingular", + "tu": "indicativePresentFirstPersonPlural", + "ele/ela/você": "indicativePresentSecondPersonSingular", + "nós": "indicativePresentSecondPersonPlural", + "vós": "indicativePresentThirdPersonSingular", + "eles/elas/vocês": "indicativePresentThirdPersonPlural" + } + } + } + }, + "2": { + "title": "Pretérito Perfeito", + "conjugationTypes": { +"1": { + "title": "Pretérito Perfeito", + "conjugationForms": { + "eu": "indicativePastPerfectFirstPersonSingular", + "tu": "indicativePastPerfectFirstPersonPlural", + "ele/ela/você": "indicativePastPerfectSecondPersonSingular", + "nós": "indicativePastPerfectSecondPersonPlural", + "vós": "indicativePastPerfectThirdPersonSingular", + "eles/elas/vocês": "indicativePastPerfectThirdPersonPlural" + } + } + } + + }, + "3": { + "title": "Pretérito Imperfeito", + "conjugationTypes": { +"1": { + "title": "Pretérito Imperfeito", + "conjugationForms": { + "eu": "indicativePastImperfectFirstPersonSingular", + "tu": "indicativePastImperfectFirstPersonPlural", + "ele/ela/você": "indicativePastImperfectSecondPersonSingular", + "nós": "indicativePastImperfectSecondPersonPlural", + "vós": "indicativePastImperfectThirdPersonSingular", + "eles/elas/vocês": "indicativePastImperfectThirdPersonPlural" + } + } + } + + }, + "4": { + "title": "Futuro Simples", + "conjugationTypes": { +"1": { + "title": "Futuro Simples", + "conjugationForms": { + "eu": "indicativePluperfectFirstPersonSingular", + "tu": "indicativePluperfectFirstPersonPlural", + "ele/ela/você": "indicativePluperfectSecondPersonSingular", + "nós": "indicativePluperfectSecondPersonPlural", + "vós": "indicativePluperfectThirdPersonSingular", + "eles/elas/vocês": "indicativePluperfectThirdPersonPlural" + } + } + } + + } + } + } diff --git a/Keyboards/DataContracts/ru.json b/Keyboards/DataContracts/ru.json new file mode 100644 index 00000000..1742fb91 --- /dev/null +++ b/Keyboards/DataContracts/ru.json @@ -0,0 +1,44 @@ +{ + "numbers": { + "nominativeSingular": "nominativePlural" + }, + "genders": { + "canonical": ["gender"], + "feminines": [], + "masculines": [], + "commons": [], + "neuters": [] + }, + "conjugations": { + "1": { + "title": "Настоящее (Present)", + "conjugationTypes": { + "1": { + "title": "Indicative Present", + "conjugationForms": { + "я (I)": "indicativePresentFirstPersonSingular", + "ты (you, sing.)": "indicativePresentSecondPersonSingular", + "он/она/оно (he/she/it)": "indicativePresentThirdPersonSingular", + "мы (we)": "indicativePresentFirstPersonPlural", + "вы (you, pl.)": "indicativePresentSecondPersonPlural", + "они (they)": "indicativePresentThirdPersonPlural" + } + } + } + }, + "2": { + "title": "Прошедшее (Past)", + "conjugationTypes": { + "1": { + "title": "Indicative Past", + "conjugationForms": { + "я/ты/она (I/you/she, fem.)": "feminineIndicativePast", + "я/ты/он (I/you/he, masc.)": "masculineIndicativePast", + "оно (it, neut.)": "neuterIndicativePast", + "мы/вы/они (we/you/they)": "indicativePastPlural" + } + } + } + } + } +} diff --git a/Keyboards/DataContracts/sv.json b/Keyboards/DataContracts/sv.json new file mode 100644 index 00000000..6bdb2e62 --- /dev/null +++ b/Keyboards/DataContracts/sv.json @@ -0,0 +1,43 @@ +{ + "numbers": { + "nominativeIndefiniteSingular": "nominativeIndefinitePlural", + "nominativeDefiniteSingular": "nominativeDefinitePlural" + }, + "genders": { + "canonical": ["gender"], + "feminines": [], + "masculines": [], + "commons": [], + "neuters": [] + }, + "conjugations": { + "1": { + "title": "Aktiv", + "conjugationTypes": { + "1": { + "title": "Aktiv", + "conjugationForms": { + "infinitiv": "activeInfinitive", + "presens": "activePresent", + "preteritum": "activePreterite", + "supinum": "activeSupine" + } + } + } + }, + "2": { + "title": "Passiv", + "conjugationTypes": { + "1": { + "title": "Passiv", + "conjugationForms": { + "infinitiv": "passiveInfinitive", + "presens": "passivePresent", + "preteritum": "passivePreterite", + "supinum": "passiveSupine" + } + } + } + } + } +} diff --git a/Keyboards/DataManager/ContractManager.swift b/Keyboards/DataManager/ContractManager.swift new file mode 100644 index 00000000..b61dce77 --- /dev/null +++ b/Keyboards/DataManager/ContractManager.swift @@ -0,0 +1,48 @@ +// SPDX-License-Identifier: GPL-3.0-or-later +import Foundation + +/** ContractManager is responsible for loading and caching DataContract instances + based on language codes. +*/ +class ContractManager { + static let shared = ContractManager() + private var contractCache: [String: DataContract] = [:] + + private init() {} + + func loadContract(language: String) -> DataContract { + let languageCode = language.lowercased() + + // Check cache + if let cached = contractCache[languageCode] { + return cached + } + + // Load JSON file (e.g., "de.json", "en.json", "es.json") + guard let jsonResourcePath = Bundle.main.path( + forResource: languageCode, + ofType: "json" + ) else { + NSLog("Contract not found: \(languageCode).json") + return createDefaultContract() + } + do { + let data = try Data(contentsOf: URL(fileURLWithPath: jsonResourcePath)) + let contract = try JSONDecoder().decode(DataContract.self, from: data) + contractCache[languageCode] = contract + print("Loaded contract: \(languageCode).json") + return contract + } catch { + NSLog("Error loading contract \(languageCode).json: \(error)") + return createDefaultContract() + } + } + + private func createDefaultContract() -> DataContract { + return DataContract( + numbers: nil, + genders: nil, + conjugations: nil + ) + } +} diff --git a/Keyboards/DataManager/DataContract.swift b/Keyboards/DataManager/DataContract.swift new file mode 100644 index 00000000..e3ef59ec --- /dev/null +++ b/Keyboards/DataManager/DataContract.swift @@ -0,0 +1,28 @@ +// SPDX-License-Identifier: GPL-3.0-or-later +import Foundation + +/** DataContract represents the structure of the data used in the application. +*/ +struct DataContract: Codable { + let numbers: [String: String]? + let genders: GenderContract? + let conjugations: [String: ConjugationTense]? +} + +struct GenderContract: Codable { + let canonical: [String]? + let feminines: [String]? + let masculines: [String]? + let commons: [String]? + let neuters: [String]? +} + +struct ConjugationTense: Codable { + let title: String + let conjugationTypes: [String: ConjugationType] +} + +struct ConjugationType: Codable { + let title: String + let conjugationForms: [String: String] +} diff --git a/Keyboards/DataManager/GenderManager.swift b/Keyboards/DataManager/GenderManager.swift new file mode 100644 index 00000000..ad29bb08 --- /dev/null +++ b/Keyboards/DataManager/GenderManager.swift @@ -0,0 +1,107 @@ +// SPDX-License-Identifier: GPL-3.0-or-later +import Foundation + +/// Manages gender query logic based on data contracts +class GenderManager { + static let shared = GenderManager() + + private init() {} + + struct GenderQueryInfo { + let query: String + let outputCols: [String] + let args: [String] + let fallbackGender: String? + } + + /**Builds the appropriate gender queries based on the contract structure + - Parameters: + - word: The word to query + - contract: The data contract defining gender structure + - Returns: Array of query info objects to execute + */ + func buildGenderQueries(word: String, contract: DataContract) -> [GenderQueryInfo] { + + if hasCanonicalGender(contract) { + if let queryInfo = buildCanonicalQuery(word: word, contract: contract) { + return [queryInfo] + } + } else if hasMasculineFeminine(contract) { + return buildMasculineFeminineQueries(word: word, contract: contract) + } else { + NSLog("GenderManager: No valid gender structure found in contract") + } + + return [] + } + + // MARK: - Private Helper Methods + + /// Checks if the data contract defines a single, canonical gender column + private func hasCanonicalGender(_ contract: DataContract) -> Bool { + return contract.genders?.canonical?.first?.isEmpty == false + } + + /// Checks if the data contract defines separate columns for masculine and feminine genders + private func hasMasculineFeminine(_ contract: DataContract) -> Bool { + let hasMasculine = !(contract.genders?.masculines?.isEmpty ?? true) + let hasFeminine = !(contract.genders?.feminines?.isEmpty ?? true) + return hasMasculine && hasFeminine + } + + /// Builds query for canonical gender structure + private func buildCanonicalQuery(word: String, contract: DataContract) -> GenderQueryInfo? { + guard let nounCol = contract.numbers?.keys.first, + let genderCol = contract.genders?.canonical?.first else { + NSLog("GenderManager: Missing columns for canonical gender query") + return nil + } + + let query = """ + SELECT `\(genderCol)` FROM nouns + WHERE `\(nounCol)` = ? OR `\(nounCol)` = ? + """ + + return GenderQueryInfo( + query: query, + outputCols: [genderCol], + args: [word, word.lowercased()], + fallbackGender: nil + ) + } + + /// Builds queries for masculine/feminine gender structure + private func buildMasculineFeminineQueries(word: String, contract: DataContract) -> [GenderQueryInfo] { + var queries: [GenderQueryInfo] = [] + + // Masculine column query + if let masculineCol = contract.genders?.masculines?.first { + let query = """ + SELECT `\(masculineCol)` FROM nouns + WHERE `\(masculineCol)` = ? OR `\(masculineCol)` = ? + """ + queries.append(GenderQueryInfo( + query: query, + outputCols: [masculineCol], + args: [word, word.lowercased()], + fallbackGender: "masculine" + )) + } + + // Feminine column query + if let feminineCol = contract.genders?.feminines?.first { + let query = """ + SELECT `\(feminineCol)` FROM nouns + WHERE `\(feminineCol)` = ? OR `\(feminineCol)` = ? + """ + queries.append(GenderQueryInfo( + query: query, + outputCols: [feminineCol], + args: [word, word.lowercased()], + fallbackGender: "feminine" + )) + } + + return queries + } +} diff --git a/Keyboards/KeyboardsBase/LanguageDBManager.swift b/Keyboards/DataManager/LanguageDBManager.swift similarity index 92% rename from Keyboards/KeyboardsBase/LanguageDBManager.swift rename to Keyboards/DataManager/LanguageDBManager.swift index ac49e68f..a613c0ac 100644 --- a/Keyboards/KeyboardsBase/LanguageDBManager.swift +++ b/Keyboards/DataManager/LanguageDBManager.swift @@ -270,21 +270,33 @@ extension LanguageDBManager { /// Query the noun form of word in `nonuns`. func queryNounForm(of word: String) -> [String] { - let query = """ - SELECT - * + let language = getControllerLanguageAbbr() + let contract = ContractManager.shared.loadContract(language: language) - FROM - nouns + let queries = GenderManager.shared.buildGenderQueries(word: word, contract: contract) - WHERE - noun = ? - OR noun = ? - """ - let outputCols = ["form"] - let args = [word, word.lowercased()] + for queryInfo in queries { + let result = queryDBRow( + query: queryInfo.query, + outputCols: queryInfo.outputCols, + args: StatementArguments(queryInfo.args) + ) - return queryDBRow(query: query, outputCols: outputCols, args: StatementArguments(args)) + // For canonical gender: return the actual gender value from DB + if queryInfo.fallbackGender == nil { + if !result.isEmpty && !result[0].isEmpty { + return result + } + } + // For masculine/feminine: if word found, return the fallback gender + else { + if !result.isEmpty && !result[0].isEmpty { + return [queryInfo.fallbackGender!] + } + } + } + + return [""] } /// Query the plural form of word in `nouns`. diff --git a/Keyboards/KeyboardsBase/ScribeFunctionality/Annotate.swift b/Keyboards/KeyboardsBase/ScribeFunctionality/Annotate.swift index f6eaa869..138a4012 100644 --- a/Keyboards/KeyboardsBase/ScribeFunctionality/Annotate.swift +++ b/Keyboards/KeyboardsBase/ScribeFunctionality/Annotate.swift @@ -32,6 +32,20 @@ let prepAnnotationConversionDict = [ "Russian": ["Acc": "Вин", "Dat": "Дат", "Gen": "Род", "Loc": "Мес", "Pre": "Пре", "Ins": "Инс"] ] +// Converts full gender names to abbreviations (e.g., "feminine" → "F") +func convertFullGenderToAbbr(_ genderFull: String) -> String { + let genderMap: [String: String] = [ + "feminine": "F", + "masculine": "M", + "neuter": "N", + "common": "C", + "common of two genders": "C", + "PL": "PL" + ] + + return genderMap[genderFull.lowercased()] ?? genderFull +} + /// The base function for annotation that's accessed by `typedWordAnnotation`. /// /// - Parameters @@ -115,6 +129,11 @@ func wordAnnotation(wordToAnnotate: String, KVC: KeyboardViewController) { var annotationSep = UIView() var annotationToDisplay: String = annotationsToAssign[i] + if ["feminine", "masculine", "neuter", "common"].contains(annotationToDisplay.lowercased()) { + annotationToDisplay = convertFullGenderToAbbr(annotationToDisplay) + annotationsToAssign[i] = annotationToDisplay // Update the array too + } + if nounFormToColorDict.keys.contains(annotationToDisplay) { if numAnnotations > 3 { annotationBtn.setAnnotationSize(width: annotationWidth, height: annotationHeight, fontSize: annotationHeight * 0.4) @@ -264,6 +283,12 @@ func autoActionAnnotation(autoActionWord: String, index: Int, KVC: KeyboardViewC for i in 0 ..< numAnnotations { let annotationBtn = Annotation() var annotationSep = UIView() + var annotationToDisplay = newAutoActionAnnotationsToAssign[i] + + if ["feminine", "masculine", "neuter", "common"].contains(annotationToDisplay.lowercased()) { + annotationToDisplay = convertFullGenderToAbbr(annotationToDisplay) + newAutoActionAnnotationsToAssign[i] = annotationToDisplay + } if numAnnotations > 3 { annotationBtn.setAnnotationSize( diff --git a/Keyboards/LanguageKeyboards/French/FRLanguageData.sqlite b/Keyboards/LanguageKeyboards/French/FRLanguageData.sqlite deleted file mode 100644 index f9fc0056..00000000 Binary files a/Keyboards/LanguageKeyboards/French/FRLanguageData.sqlite and /dev/null differ diff --git a/Keyboards/LanguageKeyboards/German/DELanguageData.sqlite b/Keyboards/LanguageKeyboards/German/DELanguageData.sqlite deleted file mode 100644 index ddd63dfa..00000000 Binary files a/Keyboards/LanguageKeyboards/German/DELanguageData.sqlite and /dev/null differ diff --git a/Keyboards/LanguageKeyboards/Italian/ITLanguageData.sqlite b/Keyboards/LanguageKeyboards/Italian/ITLanguageData.sqlite deleted file mode 100644 index 0557d092..00000000 Binary files a/Keyboards/LanguageKeyboards/Italian/ITLanguageData.sqlite and /dev/null differ diff --git a/Keyboards/LanguageKeyboards/Portuguese/PTLanguageData.sqlite b/Keyboards/LanguageKeyboards/Portuguese/PTLanguageData.sqlite deleted file mode 100644 index f801e5c5..00000000 Binary files a/Keyboards/LanguageKeyboards/Portuguese/PTLanguageData.sqlite and /dev/null differ diff --git a/Keyboards/LanguageKeyboards/Russian/RULanguageData.sqlite b/Keyboards/LanguageKeyboards/Russian/RULanguageData.sqlite deleted file mode 100644 index 822d0bf2..00000000 Binary files a/Keyboards/LanguageKeyboards/Russian/RULanguageData.sqlite and /dev/null differ diff --git a/Keyboards/LanguageKeyboards/Spanish/ESLanguageData.sqlite b/Keyboards/LanguageKeyboards/Spanish/ESLanguageData.sqlite deleted file mode 100644 index cdc04f39..00000000 Binary files a/Keyboards/LanguageKeyboards/Spanish/ESLanguageData.sqlite and /dev/null differ diff --git a/Keyboards/LanguageKeyboards/Swedish/SVLanguageData.sqlite b/Keyboards/LanguageKeyboards/Swedish/SVLanguageData.sqlite deleted file mode 100644 index 92b7d698..00000000 Binary files a/Keyboards/LanguageKeyboards/Swedish/SVLanguageData.sqlite and /dev/null differ diff --git a/Scribe.xcodeproj/project.pbxproj b/Scribe.xcodeproj/project.pbxproj index e63f54f0..4a11aa11 100644 --- a/Scribe.xcodeproj/project.pbxproj +++ b/Scribe.xcodeproj/project.pbxproj @@ -123,91 +123,10 @@ 38BD214F22D592CA00C6795D /* DEKeyboardViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 38BD214E22D592CA00C6795D /* DEKeyboardViewController.swift */; }; 38BD215322D592CA00C6795D /* German.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = 38BD214C22D592CA00C6795D /* German.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; 38DD94F122D6A40000FF8845 /* Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 38DD94F022D6A40000FF8845 /* Extensions.swift */; }; - 5A037FDA2C74D6C800D4AADD /* DELanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E298129E41B56006B2C81 /* DELanguageData.sqlite */; }; - 5A037FDB2C74D6C900D4AADD /* DELanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E298129E41B56006B2C81 /* DELanguageData.sqlite */; }; - 5A037FDC2C74D6CA00D4AADD /* DELanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E298129E41B56006B2C81 /* DELanguageData.sqlite */; }; - 5A037FDD2C74D6CA00D4AADD /* DELanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E298129E41B56006B2C81 /* DELanguageData.sqlite */; }; - 5A037FDE2C74D6CB00D4AADD /* DELanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E298129E41B56006B2C81 /* DELanguageData.sqlite */; }; - 5A037FDF2C74D6CC00D4AADD /* DELanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E298129E41B56006B2C81 /* DELanguageData.sqlite */; }; - 5A037FE02C74D6CD00D4AADD /* DELanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E298129E41B56006B2C81 /* DELanguageData.sqlite */; }; - 5A037FE12C74D6CD00D4AADD /* DELanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E298129E41B56006B2C81 /* DELanguageData.sqlite */; }; - 5A037FE22C74D6CE00D4AADD /* DELanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E298129E41B56006B2C81 /* DELanguageData.sqlite */; }; - 5A037FE32C74D6CE00D4AADD /* DELanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E298129E41B56006B2C81 /* DELanguageData.sqlite */; }; - 5A037FE42C74D6D400D4AADD /* ENLanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = 5A8FFB6E2C5E575B00F4B571 /* ENLanguageData.sqlite */; }; - 5A037FE52C74D6D500D4AADD /* ENLanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = 5A8FFB6E2C5E575B00F4B571 /* ENLanguageData.sqlite */; }; - 5A037FE62C74D6D500D4AADD /* ENLanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = 5A8FFB6E2C5E575B00F4B571 /* ENLanguageData.sqlite */; }; - 5A037FE72C74D6D600D4AADD /* ENLanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = 5A8FFB6E2C5E575B00F4B571 /* ENLanguageData.sqlite */; }; - 5A037FE82C74D6D800D4AADD /* ENLanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = 5A8FFB6E2C5E575B00F4B571 /* ENLanguageData.sqlite */; }; - 5A037FE92C74D6D800D4AADD /* ENLanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = 5A8FFB6E2C5E575B00F4B571 /* ENLanguageData.sqlite */; }; - 5A037FEA2C74D6D900D4AADD /* ENLanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = 5A8FFB6E2C5E575B00F4B571 /* ENLanguageData.sqlite */; }; - 5A037FEB2C74D6DA00D4AADD /* ENLanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = 5A8FFB6E2C5E575B00F4B571 /* ENLanguageData.sqlite */; }; - 5A037FEC2C74D6DA00D4AADD /* ENLanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = 5A8FFB6E2C5E575B00F4B571 /* ENLanguageData.sqlite */; }; - 5A037FED2C74D6DB00D4AADD /* ENLanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = 5A8FFB6E2C5E575B00F4B571 /* ENLanguageData.sqlite */; }; - 5A037FEE2C74D6E200D4AADD /* FRLanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E297E29E41B3B006B2C81 /* FRLanguageData.sqlite */; }; - 5A037FEF2C74D6E300D4AADD /* FRLanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E297E29E41B3B006B2C81 /* FRLanguageData.sqlite */; }; - 5A037FF02C74D6E500D4AADD /* FRLanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E297E29E41B3B006B2C81 /* FRLanguageData.sqlite */; }; - 5A037FF12C74D6E500D4AADD /* FRLanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E297E29E41B3B006B2C81 /* FRLanguageData.sqlite */; }; - 5A037FF22C74D6E600D4AADD /* FRLanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E297E29E41B3B006B2C81 /* FRLanguageData.sqlite */; }; - 5A037FF32C74D6E800D4AADD /* FRLanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E297E29E41B3B006B2C81 /* FRLanguageData.sqlite */; }; - 5A037FF42C74D6E800D4AADD /* FRLanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E297E29E41B3B006B2C81 /* FRLanguageData.sqlite */; }; - 5A037FF52C74D6E900D4AADD /* FRLanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E297E29E41B3B006B2C81 /* FRLanguageData.sqlite */; }; - 5A037FF62C74D6EA00D4AADD /* FRLanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E297E29E41B3B006B2C81 /* FRLanguageData.sqlite */; }; - 5A037FF72C74D6EA00D4AADD /* FRLanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E297E29E41B3B006B2C81 /* FRLanguageData.sqlite */; }; - 5A037FF82C74D6FF00D4AADD /* ITLanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E298329E41B74006B2C81 /* ITLanguageData.sqlite */; }; - 5A037FF92C74D70000D4AADD /* ITLanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E298329E41B74006B2C81 /* ITLanguageData.sqlite */; }; - 5A037FFA2C74D70100D4AADD /* ITLanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E298329E41B74006B2C81 /* ITLanguageData.sqlite */; }; - 5A037FFB2C74D70200D4AADD /* ITLanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E298329E41B74006B2C81 /* ITLanguageData.sqlite */; }; - 5A037FFC2C74D70300D4AADD /* ITLanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E298329E41B74006B2C81 /* ITLanguageData.sqlite */; }; - 5A037FFD2C74D70400D4AADD /* ITLanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E298329E41B74006B2C81 /* ITLanguageData.sqlite */; }; - 5A037FFE2C74D70400D4AADD /* ITLanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E298329E41B74006B2C81 /* ITLanguageData.sqlite */; }; - 5A037FFF2C74D70500D4AADD /* ITLanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E298329E41B74006B2C81 /* ITLanguageData.sqlite */; }; - 5A0380002C74D70600D4AADD /* ITLanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E298329E41B74006B2C81 /* ITLanguageData.sqlite */; }; - 5A0380012C74D70700D4AADD /* ITLanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E298329E41B74006B2C81 /* ITLanguageData.sqlite */; }; - 5A0380022C74D70B00D4AADD /* PTLanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E298529E41B8F006B2C81 /* PTLanguageData.sqlite */; }; - 5A0380032C74D70C00D4AADD /* PTLanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E298529E41B8F006B2C81 /* PTLanguageData.sqlite */; }; - 5A0380042C74D70D00D4AADD /* PTLanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E298529E41B8F006B2C81 /* PTLanguageData.sqlite */; }; - 5A0380052C74D70D00D4AADD /* PTLanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E298529E41B8F006B2C81 /* PTLanguageData.sqlite */; }; - 5A0380062C74D70E00D4AADD /* PTLanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E298529E41B8F006B2C81 /* PTLanguageData.sqlite */; }; - 5A0380072C74D70F00D4AADD /* PTLanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E298529E41B8F006B2C81 /* PTLanguageData.sqlite */; }; - 5A0380082C74D70F00D4AADD /* PTLanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E298529E41B8F006B2C81 /* PTLanguageData.sqlite */; }; - 5A0380092C74D71100D4AADD /* PTLanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E298529E41B8F006B2C81 /* PTLanguageData.sqlite */; }; - 5A03800A2C74D71300D4AADD /* PTLanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E298529E41B8F006B2C81 /* PTLanguageData.sqlite */; }; - 5A03800B2C74D71400D4AADD /* PTLanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E298529E41B8F006B2C81 /* PTLanguageData.sqlite */; }; - 5A03800C2C74D71900D4AADD /* RULanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E298729E41BA1006B2C81 /* RULanguageData.sqlite */; }; - 5A03800D2C74D71A00D4AADD /* RULanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E298729E41BA1006B2C81 /* RULanguageData.sqlite */; }; - 5A03800E2C74D71B00D4AADD /* RULanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E298729E41BA1006B2C81 /* RULanguageData.sqlite */; }; - 5A03800F2C74D71C00D4AADD /* RULanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E298729E41BA1006B2C81 /* RULanguageData.sqlite */; }; - 5A0380102C74D71D00D4AADD /* RULanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E298729E41BA1006B2C81 /* RULanguageData.sqlite */; }; - 5A0380112C74D71F00D4AADD /* RULanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E298729E41BA1006B2C81 /* RULanguageData.sqlite */; }; - 5A0380122C74D71F00D4AADD /* RULanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E298729E41BA1006B2C81 /* RULanguageData.sqlite */; }; - 5A0380132C74D72000D4AADD /* RULanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E298729E41BA1006B2C81 /* RULanguageData.sqlite */; }; - 5A0380142C74D72100D4AADD /* RULanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E298729E41BA1006B2C81 /* RULanguageData.sqlite */; }; - 5A0380152C74D72200D4AADD /* RULanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E298729E41BA1006B2C81 /* RULanguageData.sqlite */; }; - 5A0380162C74D72600D4AADD /* ESLanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E298929E41BAD006B2C81 /* ESLanguageData.sqlite */; }; - 5A0380172C74D72700D4AADD /* ESLanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E298929E41BAD006B2C81 /* ESLanguageData.sqlite */; }; - 5A0380182C74D72700D4AADD /* ESLanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E298929E41BAD006B2C81 /* ESLanguageData.sqlite */; }; - 5A0380192C74D72800D4AADD /* ESLanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E298929E41BAD006B2C81 /* ESLanguageData.sqlite */; }; - 5A03801A2C74D72900D4AADD /* ESLanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E298929E41BAD006B2C81 /* ESLanguageData.sqlite */; }; - 5A03801B2C74D72B00D4AADD /* ESLanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E298929E41BAD006B2C81 /* ESLanguageData.sqlite */; }; - 5A03801C2C74D72B00D4AADD /* ESLanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E298929E41BAD006B2C81 /* ESLanguageData.sqlite */; }; - 5A03801D2C74D72C00D4AADD /* ESLanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E298929E41BAD006B2C81 /* ESLanguageData.sqlite */; }; - 5A03801E2C74D72D00D4AADD /* ESLanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E298929E41BAD006B2C81 /* ESLanguageData.sqlite */; }; - 5A03801F2C74D72E00D4AADD /* ESLanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E298929E41BAD006B2C81 /* ESLanguageData.sqlite */; }; - 5A0380202C74D73100D4AADD /* SVLanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E298B29E41BBE006B2C81 /* SVLanguageData.sqlite */; }; - 5A0380212C74D73100D4AADD /* SVLanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E298B29E41BBE006B2C81 /* SVLanguageData.sqlite */; }; - 5A0380222C74D73200D4AADD /* SVLanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E298B29E41BBE006B2C81 /* SVLanguageData.sqlite */; }; - 5A0380232C74D73300D4AADD /* SVLanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E298B29E41BBE006B2C81 /* SVLanguageData.sqlite */; }; - 5A0380242C74D73400D4AADD /* SVLanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E298B29E41BBE006B2C81 /* SVLanguageData.sqlite */; }; - 5A0380252C74D73400D4AADD /* SVLanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E298B29E41BBE006B2C81 /* SVLanguageData.sqlite */; }; - 5A0380262C74D73500D4AADD /* SVLanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E298B29E41BBE006B2C81 /* SVLanguageData.sqlite */; }; - 5A0380272C74D73600D4AADD /* SVLanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E298B29E41BBE006B2C81 /* SVLanguageData.sqlite */; }; - 5A0380282C74D73600D4AADD /* SVLanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E298B29E41BBE006B2C81 /* SVLanguageData.sqlite */; }; - 5A0380292C74D73700D4AADD /* SVLanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E298B29E41BBE006B2C81 /* SVLanguageData.sqlite */; }; 5A68DA412CDE7B7A00897FAD /* RadioTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5A68DA3D2CDE7B7900897FAD /* RadioTableViewCell.swift */; }; 5A68DA422CDE7B7A00897FAD /* RadioTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5A68DA3E2CDE7B7900897FAD /* RadioTableViewCell.xib */; }; 5A68DA432CDE7B7A00897FAD /* SelectionViewTemplateViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5A68DA3F2CDE7B7900897FAD /* SelectionViewTemplateViewController.swift */; }; 5A8FFB6B2C5A9D9C00F4B571 /* English.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = D1AFDF3D29CA66D00033BF27 /* English.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; - 5A8FFB702C5E5A6F00F4B571 /* ENLanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = 5A8FFB6E2C5E575B00F4B571 /* ENLanguageData.sqlite */; }; 693150472C881DCE005F99E8 /* BaseTableViewControllerTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 693150462C881DCE005F99E8 /* BaseTableViewControllerTest.swift */; }; 69B81EBC2BFB8C77008CAB85 /* TipCardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 69B81EBB2BFB8C77008CAB85 /* TipCardView.swift */; }; 84AF4D882C3575EA009AE0D2 /* UIDeviceExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84AF4D872C3575EA009AE0D2 /* UIDeviceExtensions.swift */; }; @@ -250,8 +169,6 @@ D109A230275B6A8C005E2271 /* InterfaceVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D190B2492741B31F00705659 /* InterfaceVariables.swift */; }; D109A231275B6A8C005E2271 /* Keyboard.xib in Resources */ = {isa = PBXBuildFile; fileRef = D1C0ACD92719E0AA001E11C3 /* Keyboard.xib */; }; D109A232275B6A8C005E2271 /* CommandVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D190B2462741B24F00705659 /* CommandVariables.swift */; }; - D109A237275B6A99005E2271 /* LanguageDBManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D190B24D2741B61000705659 /* LanguageDBManager.swift */; }; - D109A238275B6A9A005E2271 /* LanguageDBManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D190B24D2741B61000705659 /* LanguageDBManager.swift */; }; D111E9A227AFE4F300746F92 /* CommandBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = D111E9A127AFE4F300746F92 /* CommandBar.swift */; }; D111E9A327AFE4F300746F92 /* CommandBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = D111E9A127AFE4F300746F92 /* CommandBar.swift */; }; D111E9A427AFE4F300746F92 /* CommandBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = D111E9A127AFE4F300746F92 /* CommandBar.swift */; }; @@ -294,13 +211,6 @@ D12EB9C52C81C10900181765 /* HEInterfaceVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D12EB9B92C81C0E700181765 /* HEInterfaceVariables.swift */; }; D1362A39274C106A00C00E48 /* ColorVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D190B240274056D400705659 /* ColorVariables.swift */; }; D13E0DC92C86530E007F00AF /* TestExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = D13E0DC82C86530E007F00AF /* TestExtensions.swift */; }; - D15E297F29E41B3B006B2C81 /* FRLanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E297E29E41B3B006B2C81 /* FRLanguageData.sqlite */; }; - D15E298229E41B56006B2C81 /* DELanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E298129E41B56006B2C81 /* DELanguageData.sqlite */; }; - D15E298429E41B74006B2C81 /* ITLanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E298329E41B74006B2C81 /* ITLanguageData.sqlite */; }; - D15E298629E41B8F006B2C81 /* PTLanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E298529E41B8F006B2C81 /* PTLanguageData.sqlite */; }; - D15E298829E41BA1006B2C81 /* RULanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E298729E41BA1006B2C81 /* RULanguageData.sqlite */; }; - D15E298A29E41BAD006B2C81 /* ESLanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E298929E41BAD006B2C81 /* ESLanguageData.sqlite */; }; - D15E298C29E41BBE006B2C81 /* SVLanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E298B29E41BBE006B2C81 /* SVLanguageData.sqlite */; }; D1608668270B6D3C00134D48 /* ESKeyboardViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1608667270B6D3C00134D48 /* ESKeyboardViewController.swift */; }; D160866C270B6D3C00134D48 /* Spanish.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = D1608665270B6D3C00134D48 /* Spanish.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; D16150FC2E9DBDC500131732 /* IDLanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D16150FB2E9DBDC500131732 /* IDLanguageData.sqlite */; }; @@ -316,14 +226,6 @@ D16151062E9DBDED00131732 /* IDLanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D16150FB2E9DBDC500131732 /* IDLanguageData.sqlite */; }; D16151072E9DBDED00131732 /* IDLanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D16150FB2E9DBDC500131732 /* IDLanguageData.sqlite */; }; D16151082E9DBDED00131732 /* IDLanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D16150FB2E9DBDC500131732 /* IDLanguageData.sqlite */; }; - D16151092E9DBE0400131732 /* DELanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E298129E41B56006B2C81 /* DELanguageData.sqlite */; }; - D161510A2E9DBE1400131732 /* FRLanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E297E29E41B3B006B2C81 /* FRLanguageData.sqlite */; }; - D161510B2E9DBE1D00131732 /* ENLanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = 5A8FFB6E2C5E575B00F4B571 /* ENLanguageData.sqlite */; }; - D161510C2E9DBE2B00131732 /* ITLanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E298329E41B74006B2C81 /* ITLanguageData.sqlite */; }; - D161510D2E9DBE3600131732 /* PTLanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E298529E41B8F006B2C81 /* PTLanguageData.sqlite */; }; - D161510E2E9DBE3D00131732 /* RULanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E298729E41BA1006B2C81 /* RULanguageData.sqlite */; }; - D161510F2E9DBE4500131732 /* ESLanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E298929E41BAD006B2C81 /* ESLanguageData.sqlite */; }; - D16151102E9DBE4C00131732 /* SVLanguageData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D15E298B29E41BBE006B2C81 /* SVLanguageData.sqlite */; }; D1671A67275A1E8700A7C118 /* Russian.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = D1671A60275A1E8700A7C118 /* Russian.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; D1671A71275A1FA200A7C118 /* RUKeyboardViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1671A70275A1FA200A7C118 /* RUKeyboardViewController.swift */; }; D1671A72275A1FC000A7C118 /* Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 38DD94F022D6A40000FF8845 /* Extensions.swift */; }; @@ -332,7 +234,6 @@ D1671A75275A1FC000A7C118 /* KeyboardViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D190B2592742565500705659 /* KeyboardViewController.swift */; }; D1671A76275A1FC000A7C118 /* ColorVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D190B240274056D400705659 /* ColorVariables.swift */; }; D1671A77275A1FC000A7C118 /* CommandVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D190B2462741B24F00705659 /* CommandVariables.swift */; }; - D1671A7A275A1FC900A7C118 /* LanguageDBManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D190B24D2741B61000705659 /* LanguageDBManager.swift */; }; D16D975429C75A4900E33F86 /* NBKeyboardViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1AB5B1729C7554A00CCB0C1 /* NBKeyboardViewController.swift */; }; D16DD37029E7850600FB9022 /* SwiftyJSON in Frameworks */ = {isa = PBXBuildFile; productRef = D16DD36F29E7850600FB9022 /* SwiftyJSON */; }; D16DD37329E7853800FB9022 /* GRDB in Frameworks */ = {isa = PBXBuildFile; productRef = D16DD37229E7853800FB9022 /* GRDB */; }; @@ -463,7 +364,6 @@ D171943D27AEF0560038660B /* KeyboardStyling.swift in Sources */ = {isa = PBXBuildFile; fileRef = D171943727AEF0560038660B /* KeyboardStyling.swift */; }; D171943E27AEF0560038660B /* KeyboardStyling.swift in Sources */ = {isa = PBXBuildFile; fileRef = D171943727AEF0560038660B /* KeyboardStyling.swift */; }; D171944927AEF7290038660B /* KeyboardKeys.swift in Sources */ = {isa = PBXBuildFile; fileRef = D171942E27AEDE110038660B /* KeyboardKeys.swift */; }; - D171944A27AEFC620038660B /* LanguageDBManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D190B24D2741B61000705659 /* LanguageDBManager.swift */; }; D171945427AF04E50038660B /* KeyboardViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D190B2592742565500705659 /* KeyboardViewController.swift */; }; D171945527AF05D40038660B /* Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 38DD94F022D6A40000FF8845 /* Extensions.swift */; }; D171945827AF237C0038660B /* ScribeKey.swift in Sources */ = {isa = PBXBuildFile; fileRef = D171945727AF237C0038660B /* ScribeKey.swift */; }; @@ -516,7 +416,6 @@ D18EA8A72760D6F5001E1358 /* KeyboardViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D190B2592742565500705659 /* KeyboardViewController.swift */; }; D18EA8A82760D6F5001E1358 /* InterfaceVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D190B2492741B31F00705659 /* InterfaceVariables.swift */; }; D18EA8A92760D6F5001E1358 /* Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 38DD94F022D6A40000FF8845 /* Extensions.swift */; }; - D18EA8AC2760D701001E1358 /* LanguageDBManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D190B24D2741B61000705659 /* LanguageDBManager.swift */; }; D190B242274056D400705659 /* ColorVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D190B240274056D400705659 /* ColorVariables.swift */; }; D190B243274056D400705659 /* ColorVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D190B240274056D400705659 /* ColorVariables.swift */; }; D190B2442740576600705659 /* Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 38DD94F022D6A40000FF8845 /* Extensions.swift */; }; @@ -524,8 +423,6 @@ D190B2482741B24F00705659 /* CommandVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D190B2462741B24F00705659 /* CommandVariables.swift */; }; D190B24A2741B31F00705659 /* InterfaceVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D190B2492741B31F00705659 /* InterfaceVariables.swift */; }; D190B24B2741B31F00705659 /* InterfaceVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D190B2492741B31F00705659 /* InterfaceVariables.swift */; }; - D190B24E2741B61000705659 /* LanguageDBManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D190B24D2741B61000705659 /* LanguageDBManager.swift */; }; - D190B24F2741B61000705659 /* LanguageDBManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D190B24D2741B61000705659 /* LanguageDBManager.swift */; }; D190B2582742525C00705659 /* Keyboard.xib in Resources */ = {isa = PBXBuildFile; fileRef = D1C0ACD92719E0AA001E11C3 /* Keyboard.xib */; }; D190B26827426ACD00705659 /* KeyboardViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D190B2592742565500705659 /* KeyboardViewController.swift */; }; D190B26927426ACD00705659 /* KeyboardViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D190B2592742565500705659 /* KeyboardViewController.swift */; }; @@ -556,7 +453,6 @@ D1AB5B3C29C757A100CCB0C1 /* DEInterfaceVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D17193CF27AEC9EC0038660B /* DEInterfaceVariables.swift */; }; D1AB5B3D29C757A100CCB0C1 /* Annotate.swift in Sources */ = {isa = PBXBuildFile; fileRef = D111E9B927AFE7B200746F92 /* Annotate.swift */; }; D1AB5B3E29C757A100CCB0C1 /* InformationToolTipData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30453963293B9D18003AE55B /* InformationToolTipData.swift */; }; - D1AB5B3F29C757A100CCB0C1 /* LanguageDBManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D190B24D2741B61000705659 /* LanguageDBManager.swift */; }; D1AB5B4029C757A100CCB0C1 /* CommandVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D190B2462741B24F00705659 /* CommandVariables.swift */; }; D1AB5B4129C757A100CCB0C1 /* Translate.swift in Sources */ = {isa = PBXBuildFile; fileRef = D111E9B127AFE79500746F92 /* Translate.swift */; }; D1AB5B4229C757A100CCB0C1 /* ColorVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D190B240274056D400705659 /* ColorVariables.swift */; }; @@ -600,7 +496,6 @@ D1AFDF1A29CA66D00033BF27 /* DEInterfaceVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D17193CF27AEC9EC0038660B /* DEInterfaceVariables.swift */; }; D1AFDF1B29CA66D00033BF27 /* Annotate.swift in Sources */ = {isa = PBXBuildFile; fileRef = D111E9B927AFE7B200746F92 /* Annotate.swift */; }; D1AFDF1C29CA66D00033BF27 /* InformationToolTipData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30453963293B9D18003AE55B /* InformationToolTipData.swift */; }; - D1AFDF1D29CA66D00033BF27 /* LanguageDBManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D190B24D2741B61000705659 /* LanguageDBManager.swift */; }; D1AFDF1E29CA66D00033BF27 /* CommandVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D190B2462741B24F00705659 /* CommandVariables.swift */; }; D1AFDF1F29CA66D00033BF27 /* Translate.swift in Sources */ = {isa = PBXBuildFile; fileRef = D111E9B127AFE79500746F92 /* Translate.swift */; }; D1AFDF2029CA66D00033BF27 /* ColorVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D190B240274056D400705659 /* ColorVariables.swift */; }; @@ -644,7 +539,6 @@ D1AFDF9729CA66F40033BF27 /* DEInterfaceVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D17193CF27AEC9EC0038660B /* DEInterfaceVariables.swift */; }; D1AFDF9829CA66F40033BF27 /* Annotate.swift in Sources */ = {isa = PBXBuildFile; fileRef = D111E9B927AFE7B200746F92 /* Annotate.swift */; }; D1AFDF9929CA66F40033BF27 /* InformationToolTipData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30453963293B9D18003AE55B /* InformationToolTipData.swift */; }; - D1AFDF9A29CA66F40033BF27 /* LanguageDBManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D190B24D2741B61000705659 /* LanguageDBManager.swift */; }; D1AFDF9B29CA66F40033BF27 /* CommandVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D190B2462741B24F00705659 /* CommandVariables.swift */; }; D1AFDF9C29CA66F40033BF27 /* Translate.swift in Sources */ = {isa = PBXBuildFile; fileRef = D111E9B127AFE79500746F92 /* Translate.swift */; }; D1AFDF9D29CA66F40033BF27 /* ColorVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D190B240274056D400705659 /* ColorVariables.swift */; }; @@ -690,7 +584,6 @@ D1AFDFED29CA6E900033BF27 /* DEInterfaceVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D17193CF27AEC9EC0038660B /* DEInterfaceVariables.swift */; }; D1AFDFEE29CA6E900033BF27 /* Annotate.swift in Sources */ = {isa = PBXBuildFile; fileRef = D111E9B927AFE7B200746F92 /* Annotate.swift */; }; D1AFDFEF29CA6E900033BF27 /* InformationToolTipData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30453963293B9D18003AE55B /* InformationToolTipData.swift */; }; - D1AFDFF029CA6E900033BF27 /* LanguageDBManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D190B24D2741B61000705659 /* LanguageDBManager.swift */; }; D1AFDFF129CA6E900033BF27 /* CommandVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D190B2462741B24F00705659 /* CommandVariables.swift */; }; D1AFDFF229CA6E900033BF27 /* Translate.swift in Sources */ = {isa = PBXBuildFile; fileRef = D111E9B127AFE79500746F92 /* Translate.swift */; }; D1AFDFF329CA6E900033BF27 /* ColorVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D190B240274056D400705659 /* ColorVariables.swift */; }; @@ -745,7 +638,6 @@ D1B81D3D27BBB7020085FE5E /* KeyboardKeys.swift in Sources */ = {isa = PBXBuildFile; fileRef = D171942E27AEDE110038660B /* KeyboardKeys.swift */; }; D1B81D3E27BBB7040085FE5E /* KeyboardViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D190B2592742565500705659 /* KeyboardViewController.swift */; }; D1B81D3F27BBB7070085FE5E /* KeyboardStyling.swift in Sources */ = {isa = PBXBuildFile; fileRef = D171943727AEF0560038660B /* KeyboardStyling.swift */; }; - D1B81D4027BBB70C0085FE5E /* LanguageDBManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D190B24D2741B61000705659 /* LanguageDBManager.swift */; }; D1B81D4127BBB70E0085FE5E /* Keyboard.xib in Resources */ = {isa = PBXBuildFile; fileRef = D1C0ACD92719E0AA001E11C3 /* Keyboard.xib */; }; D1B81D4227BBB71C0085FE5E /* CommandVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D190B2462741B24F00705659 /* CommandVariables.swift */; }; D1B81D4327BBB71C0085FE5E /* Annotate.swift in Sources */ = {isa = PBXBuildFile; fileRef = D111E9B927AFE7B200746F92 /* Annotate.swift */; }; @@ -772,23 +664,11 @@ D1B81D5A27BBBA360085FE5E /* ITInterfaceVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1B81D5227BBBA360085FE5E /* ITInterfaceVariables.swift */; }; D1C0ACDA2719E0AA001E11C3 /* Keyboard.xib in Resources */ = {isa = PBXBuildFile; fileRef = D1C0ACD92719E0AA001E11C3 /* Keyboard.xib */; }; D1CDED752A859DDD00098546 /* DAInterfaceVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1CDED742A859DDD00098546 /* DAInterfaceVariables.swift */; }; - D1CDED772A859E4800098546 /* DACommandVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1CDED762A859E4800098546 /* DACommandVariables.swift */; }; D1CDED792A859FB600098546 /* ENCommandVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1CDED782A859FB600098546 /* ENCommandVariables.swift */; }; D1CDED7B2A859FBF00098546 /* ENInterfaceVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1CDED7A2A859FBF00098546 /* ENInterfaceVariables.swift */; }; D1CDED7F2A85A05C00098546 /* HECommandVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1CDED7E2A85A05C00098546 /* HECommandVariables.swift */; }; D1CDED812A85A12400098546 /* NBInterfaceVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1CDED802A85A12400098546 /* NBInterfaceVariables.swift */; }; D1CDED832A85A12C00098546 /* NBCommandVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1CDED822A85A12C00098546 /* NBCommandVariables.swift */; }; - D1CDED842A85AE5800098546 /* DACommandVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1CDED762A859E4800098546 /* DACommandVariables.swift */; }; - D1CDED852A85AE5900098546 /* DACommandVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1CDED762A859E4800098546 /* DACommandVariables.swift */; }; - D1CDED862A85AE5A00098546 /* DACommandVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1CDED762A859E4800098546 /* DACommandVariables.swift */; }; - D1CDED872A85AE5A00098546 /* DACommandVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1CDED762A859E4800098546 /* DACommandVariables.swift */; }; - D1CDED882A85AE5B00098546 /* DACommandVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1CDED762A859E4800098546 /* DACommandVariables.swift */; }; - D1CDED892A85AE5B00098546 /* DACommandVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1CDED762A859E4800098546 /* DACommandVariables.swift */; }; - D1CDED8A2A85AE5C00098546 /* DACommandVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1CDED762A859E4800098546 /* DACommandVariables.swift */; }; - D1CDED8B2A85AE5C00098546 /* DACommandVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1CDED762A859E4800098546 /* DACommandVariables.swift */; }; - D1CDED8C2A85AE5D00098546 /* DACommandVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1CDED762A859E4800098546 /* DACommandVariables.swift */; }; - D1CDED8D2A85AE5E00098546 /* DACommandVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1CDED762A859E4800098546 /* DACommandVariables.swift */; }; - D1CDED8E2A85AE5E00098546 /* DACommandVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1CDED762A859E4800098546 /* DACommandVariables.swift */; }; D1CDED8F2A85AE6100098546 /* DAInterfaceVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1CDED742A859DDD00098546 /* DAInterfaceVariables.swift */; }; D1CDED902A85AE6100098546 /* DAInterfaceVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1CDED742A859DDD00098546 /* DAInterfaceVariables.swift */; }; D1CDED912A85AE6200098546 /* DAInterfaceVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1CDED742A859DDD00098546 /* DAInterfaceVariables.swift */; }; @@ -855,23 +735,10 @@ D1CDEDDA2A85AE9C00098546 /* NBInterfaceVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1CDED802A85A12400098546 /* NBInterfaceVariables.swift */; }; D1CDEDDB2A85AE9D00098546 /* NBInterfaceVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1CDED802A85A12400098546 /* NBInterfaceVariables.swift */; }; D1CDEDDC2A85AE9D00098546 /* NBInterfaceVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1CDED802A85A12400098546 /* NBInterfaceVariables.swift */; }; - D1E385102C977FD200DCE538 /* TranslationData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D1E3850F2C977FD100DCE538 /* TranslationData.sqlite */; }; - D1E385112C977FD200DCE538 /* TranslationData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D1E3850F2C977FD100DCE538 /* TranslationData.sqlite */; }; - D1E385122C977FD200DCE538 /* TranslationData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D1E3850F2C977FD100DCE538 /* TranslationData.sqlite */; }; - D1E385132C977FD200DCE538 /* TranslationData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D1E3850F2C977FD100DCE538 /* TranslationData.sqlite */; }; - D1E385142C977FD200DCE538 /* TranslationData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D1E3850F2C977FD100DCE538 /* TranslationData.sqlite */; }; - D1E385152C977FD200DCE538 /* TranslationData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D1E3850F2C977FD100DCE538 /* TranslationData.sqlite */; }; - D1E385162C977FD200DCE538 /* TranslationData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D1E3850F2C977FD100DCE538 /* TranslationData.sqlite */; }; - D1E385172C977FD200DCE538 /* TranslationData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D1E3850F2C977FD100DCE538 /* TranslationData.sqlite */; }; - D1E385182C977FD200DCE538 /* TranslationData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D1E3850F2C977FD100DCE538 /* TranslationData.sqlite */; }; - D1E385192C977FD200DCE538 /* TranslationData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D1E3850F2C977FD100DCE538 /* TranslationData.sqlite */; }; - D1E3851A2C977FD200DCE538 /* TranslationData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D1E3850F2C977FD100DCE538 /* TranslationData.sqlite */; }; - D1E3851B2C977FD200DCE538 /* TranslationData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D1E3850F2C977FD100DCE538 /* TranslationData.sqlite */; }; D1F0367227AAE12200CD7921 /* InterfaceVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D190B2492741B31F00705659 /* InterfaceVariables.swift */; }; D1F0367327AAE1B400CD7921 /* CommandVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D190B2462741B24F00705659 /* CommandVariables.swift */; }; E9202DF02F0FAA0C001590FC /* DownloadStateManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = E9202DEF2F0FAA0C001590FC /* DownloadStateManager.swift */; }; E93179A42F03AE78002ED334 /* Localizable.xcstrings in Resources */ = {isa = PBXBuildFile; fileRef = E93179A32F03AE77002ED334 /* Localizable.xcstrings */; }; - E937C5CF2E9FF94E00F94F99 /* TranslationData.sqlite in Resources */ = {isa = PBXBuildFile; fileRef = D1E3850F2C977FD100DCE538 /* TranslationData.sqlite */; }; E96111482F04EC6B001E4F95 /* InstallationDownload.swift in Sources */ = {isa = PBXBuildFile; fileRef = E96111472F04EC62001E4F95 /* InstallationDownload.swift */; }; E996495A2E98A12100200F53 /* GRDB in Frameworks */ = {isa = PBXBuildFile; productRef = E99649592E98A12100200F53 /* GRDB */; }; E996495B2E98A31B00200F53 /* KeyboardProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 198369CB2C7980BA00C1B583 /* KeyboardProvider.swift */; }; @@ -888,7 +755,6 @@ E99649662E98A48200200F53 /* CommandVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D190B2462741B24F00705659 /* CommandVariables.swift */; }; E99649672E98A4A900200F53 /* ColorVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D190B240274056D400705659 /* ColorVariables.swift */; }; E99649682E98A4BF00200F53 /* ScribeColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE1378C228F5D7AC00E1CBC2 /* ScribeColor.swift */; }; - E99649692E98A51000200F53 /* LanguageDBManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D190B24D2741B61000705659 /* LanguageDBManager.swift */; }; E996496A2E98A52A00200F53 /* KeyboardStyling.swift in Sources */ = {isa = PBXBuildFile; fileRef = D171943727AEF0560038660B /* KeyboardStyling.swift */; }; E996496B2E98A56500200F53 /* KeyboardKeys.swift in Sources */ = {isa = PBXBuildFile; fileRef = D171942E27AEDE110038660B /* KeyboardKeys.swift */; }; E996496C2E98A5AF00200F53 /* ToolTipViewTheme.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3045396E293B9DF2003AE55B /* ToolTipViewTheme.swift */; }; @@ -1317,7 +1183,6 @@ 5A68DA3D2CDE7B7900897FAD /* RadioTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RadioTableViewCell.swift; sourceTree = ""; }; 5A68DA3E2CDE7B7900897FAD /* RadioTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = RadioTableViewCell.xib; sourceTree = ""; }; 5A68DA3F2CDE7B7900897FAD /* SelectionViewTemplateViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SelectionViewTemplateViewController.swift; sourceTree = ""; }; - 5A8FFB6E2C5E575B00F4B571 /* ENLanguageData.sqlite */ = {isa = PBXFileReference; lastKnownFileType = file; path = ENLanguageData.sqlite; sourceTree = ""; }; 693150462C881DCE005F99E8 /* BaseTableViewControllerTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BaseTableViewControllerTest.swift; sourceTree = ""; }; 69B81EBB2BFB8C77008CAB85 /* TipCardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TipCardView.swift; sourceTree = ""; }; 84AF4D872C3575EA009AE0D2 /* UIDeviceExtensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIDeviceExtensions.swift; sourceTree = ""; }; @@ -1338,13 +1203,6 @@ D13E0DC62C86530E007F00AF /* Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Tests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; D13E0DC82C86530E007F00AF /* TestExtensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TestExtensions.swift; sourceTree = ""; }; D155AD282BDC6CC20075B18C /* .swiftlint.yml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = .swiftlint.yml; sourceTree = ""; }; - D15E297E29E41B3B006B2C81 /* FRLanguageData.sqlite */ = {isa = PBXFileReference; lastKnownFileType = file; path = FRLanguageData.sqlite; sourceTree = ""; }; - D15E298129E41B56006B2C81 /* DELanguageData.sqlite */ = {isa = PBXFileReference; lastKnownFileType = file; path = DELanguageData.sqlite; sourceTree = ""; }; - D15E298329E41B74006B2C81 /* ITLanguageData.sqlite */ = {isa = PBXFileReference; lastKnownFileType = file; path = ITLanguageData.sqlite; sourceTree = ""; }; - D15E298529E41B8F006B2C81 /* PTLanguageData.sqlite */ = {isa = PBXFileReference; lastKnownFileType = file; path = PTLanguageData.sqlite; sourceTree = ""; }; - D15E298729E41BA1006B2C81 /* RULanguageData.sqlite */ = {isa = PBXFileReference; lastKnownFileType = file; path = RULanguageData.sqlite; sourceTree = ""; }; - D15E298929E41BAD006B2C81 /* ESLanguageData.sqlite */ = {isa = PBXFileReference; lastKnownFileType = file; path = ESLanguageData.sqlite; sourceTree = ""; }; - D15E298B29E41BBE006B2C81 /* SVLanguageData.sqlite */ = {isa = PBXFileReference; lastKnownFileType = file; path = SVLanguageData.sqlite; sourceTree = ""; }; D1608665270B6D3C00134D48 /* Spanish.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = Spanish.appex; sourceTree = BUILT_PRODUCTS_DIR; }; D1608667270B6D3C00134D48 /* ESKeyboardViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ESKeyboardViewController.swift; sourceTree = ""; }; D1608669270B6D3C00134D48 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; @@ -1380,7 +1238,6 @@ D190B240274056D400705659 /* ColorVariables.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ColorVariables.swift; sourceTree = ""; }; D190B2462741B24F00705659 /* CommandVariables.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CommandVariables.swift; sourceTree = ""; }; D190B2492741B31F00705659 /* InterfaceVariables.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InterfaceVariables.swift; sourceTree = ""; }; - D190B24D2741B61000705659 /* LanguageDBManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LanguageDBManager.swift; sourceTree = ""; }; D190B2592742565500705659 /* KeyboardViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KeyboardViewController.swift; sourceTree = ""; }; D190B28F27426F4900705659 /* LICENSE.txt */ = {isa = PBXFileReference; lastKnownFileType = text; path = LICENSE.txt; sourceTree = SOURCE_ROOT; }; D190B29027426F4900705659 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = SOURCE_ROOT; }; @@ -1407,7 +1264,6 @@ D1B81D5227BBBA360085FE5E /* ITInterfaceVariables.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ITInterfaceVariables.swift; sourceTree = ""; }; D1C0ACD92719E0AA001E11C3 /* Keyboard.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = Keyboard.xib; sourceTree = ""; }; D1CDED742A859DDD00098546 /* DAInterfaceVariables.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DAInterfaceVariables.swift; sourceTree = ""; }; - D1CDED762A859E4800098546 /* DACommandVariables.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DACommandVariables.swift; sourceTree = ""; }; D1CDED782A859FB600098546 /* ENCommandVariables.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ENCommandVariables.swift; sourceTree = ""; }; D1CDED7A2A859FBF00098546 /* ENInterfaceVariables.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ENInterfaceVariables.swift; sourceTree = ""; }; D1CDED7E2A85A05C00098546 /* HECommandVariables.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HECommandVariables.swift; sourceTree = ""; }; @@ -1420,7 +1276,6 @@ D1D8B23B2AE4089C0070B817 /* Italian.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Italian.entitlements; sourceTree = ""; }; D1D8B23C2AE408AC0070B817 /* German.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = German.entitlements; sourceTree = ""; }; D1D8B23D2AE408C50070B817 /* French.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = French.entitlements; sourceTree = ""; }; - D1E3850F2C977FD100DCE538 /* TranslationData.sqlite */ = {isa = PBXFileReference; lastKnownFileType = file; path = TranslationData.sqlite; sourceTree = ""; }; D1FF8ED12C6C282500EF50AC /* English.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = English.entitlements; sourceTree = ""; }; E9202DEF2F0FAA0C001590FC /* DownloadStateManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DownloadStateManager.swift; sourceTree = ""; }; E93179A32F03AE77002ED334 /* Localizable.xcstrings */ = {isa = PBXFileReference; lastKnownFileType = text.json.xcstrings; name = Localizable.xcstrings; path = i18n/i18n/Localizable.xcstrings; sourceTree = ""; }; @@ -1445,8 +1300,324 @@ F786BB422F1E8F70003F7505 /* ConjugateApp-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "ConjugateApp-Info.plist"; path = "/Users/gauthammohanraj/Developer/Scribe-iOS/ConjugateApp-Info.plist"; sourceTree = ""; }; /* End PBXFileReference section */ +/* Begin PBXFileSystemSynchronizedBuildFileExceptionSet section */ + E98E74352F20EA5E005EEDA3 /* PBXFileSystemSynchronizedBuildFileExceptionSet */ = { + isa = PBXFileSystemSynchronizedBuildFileExceptionSet; + membershipExceptions = ( + DELanguageData.sqlite, + ENLanguageData.sqlite, + ESLanguageData.sqlite, + FRLanguageData.sqlite, + ITLanguageData.sqlite, + PTLanguageData.sqlite, + RULanguageData.sqlite, + SVLanguageData.sqlite, + TranslationData.sqlite, + ); + target = D1AFDF7D29CA66F40033BF27 /* Danish */; + }; + E98E74362F20EA5E005EEDA3 /* PBXFileSystemSynchronizedBuildFileExceptionSet */ = { + isa = PBXFileSystemSynchronizedBuildFileExceptionSet; + membershipExceptions = ( + DELanguageData.sqlite, + ENLanguageData.sqlite, + ESLanguageData.sqlite, + FRLanguageData.sqlite, + ITLanguageData.sqlite, + PTLanguageData.sqlite, + RULanguageData.sqlite, + SVLanguageData.sqlite, + TranslationData.sqlite, + ); + target = D1AFDF0029CA66D00033BF27 /* English */; + }; + E98E74372F20EA5E005EEDA3 /* PBXFileSystemSynchronizedBuildFileExceptionSet */ = { + isa = PBXFileSystemSynchronizedBuildFileExceptionSet; + membershipExceptions = ( + DELanguageData.sqlite, + ENLanguageData.sqlite, + ESLanguageData.sqlite, + FRLanguageData.sqlite, + ITLanguageData.sqlite, + PTLanguageData.sqlite, + RULanguageData.sqlite, + SVLanguageData.sqlite, + TranslationData.sqlite, + ); + target = D109A20A275B6888005E2271 /* French */; + }; + E98E74382F20EA5E005EEDA3 /* PBXFileSystemSynchronizedBuildFileExceptionSet */ = { + isa = PBXFileSystemSynchronizedBuildFileExceptionSet; + membershipExceptions = ( + DELanguageData.sqlite, + ENLanguageData.sqlite, + ESLanguageData.sqlite, + FRLanguageData.sqlite, + ITLanguageData.sqlite, + PTLanguageData.sqlite, + RULanguageData.sqlite, + SVLanguageData.sqlite, + TranslationData.sqlite, + ); + target = 38BD214B22D592CA00C6795D /* German */; + }; + E98E74392F20EA5E005EEDA3 /* PBXFileSystemSynchronizedBuildFileExceptionSet */ = { + isa = PBXFileSystemSynchronizedBuildFileExceptionSet; + membershipExceptions = ( + DELanguageData.sqlite, + ENLanguageData.sqlite, + ESLanguageData.sqlite, + FRLanguageData.sqlite, + ITLanguageData.sqlite, + PTLanguageData.sqlite, + RULanguageData.sqlite, + SVLanguageData.sqlite, + TranslationData.sqlite, + ); + target = D1AFDFD329CA6E900033BF27 /* Hebrew */; + }; + E98E743A2F20EA5E005EEDA3 /* PBXFileSystemSynchronizedBuildFileExceptionSet */ = { + isa = PBXFileSystemSynchronizedBuildFileExceptionSet; + membershipExceptions = ( + DELanguageData.sqlite, + ENLanguageData.sqlite, + ESLanguageData.sqlite, + FRLanguageData.sqlite, + ITLanguageData.sqlite, + PTLanguageData.sqlite, + RULanguageData.sqlite, + SVLanguageData.sqlite, + TranslationData.sqlite, + ); + target = E9FAC3922E989712008E00AC /* Indonesian */; + }; + E98E743B2F20EA5E005EEDA3 /* PBXFileSystemSynchronizedBuildFileExceptionSet */ = { + isa = PBXFileSystemSynchronizedBuildFileExceptionSet; + membershipExceptions = ( + DELanguageData.sqlite, + ENLanguageData.sqlite, + ESLanguageData.sqlite, + FRLanguageData.sqlite, + ITLanguageData.sqlite, + PTLanguageData.sqlite, + RULanguageData.sqlite, + SVLanguageData.sqlite, + TranslationData.sqlite, + ); + target = D1B81D1E27BBB5320085FE5E /* Italian */; + }; + E98E743C2F20EA5E005EEDA3 /* PBXFileSystemSynchronizedBuildFileExceptionSet */ = { + isa = PBXFileSystemSynchronizedBuildFileExceptionSet; + membershipExceptions = ( + DELanguageData.sqlite, + ENLanguageData.sqlite, + ESLanguageData.sqlite, + FRLanguageData.sqlite, + ITLanguageData.sqlite, + PTLanguageData.sqlite, + RULanguageData.sqlite, + SVLanguageData.sqlite, + TranslationData.sqlite, + ); + target = D1AB5B2229C757A100CCB0C1 /* Norwegian */; + }; + E98E743D2F20EA5E005EEDA3 /* PBXFileSystemSynchronizedBuildFileExceptionSet */ = { + isa = PBXFileSystemSynchronizedBuildFileExceptionSet; + membershipExceptions = ( + DELanguageData.sqlite, + ENLanguageData.sqlite, + ESLanguageData.sqlite, + FRLanguageData.sqlite, + ITLanguageData.sqlite, + PTLanguageData.sqlite, + RULanguageData.sqlite, + SVLanguageData.sqlite, + TranslationData.sqlite, + ); + target = D109A219275B68B3005E2271 /* Portuguese */; + }; + E98E743E2F20EA5E005EEDA3 /* PBXFileSystemSynchronizedBuildFileExceptionSet */ = { + isa = PBXFileSystemSynchronizedBuildFileExceptionSet; + membershipExceptions = ( + DELanguageData.sqlite, + ENLanguageData.sqlite, + ESLanguageData.sqlite, + FRLanguageData.sqlite, + ITLanguageData.sqlite, + PTLanguageData.sqlite, + RULanguageData.sqlite, + SVLanguageData.sqlite, + TranslationData.sqlite, + ); + target = D1671A5F275A1E8700A7C118 /* Russian */; + }; + E98E743F2F20EA5E005EEDA3 /* PBXFileSystemSynchronizedBuildFileExceptionSet */ = { + isa = PBXFileSystemSynchronizedBuildFileExceptionSet; + membershipExceptions = ( + DELanguageData.sqlite, + ENLanguageData.sqlite, + ESLanguageData.sqlite, + FRLanguageData.sqlite, + ITLanguageData.sqlite, + PTLanguageData.sqlite, + RULanguageData.sqlite, + SVLanguageData.sqlite, + TranslationData.sqlite, + ); + target = D1608664270B6D3C00134D48 /* Spanish */; + }; + E98E74402F20EA5E005EEDA3 /* PBXFileSystemSynchronizedBuildFileExceptionSet */ = { + isa = PBXFileSystemSynchronizedBuildFileExceptionSet; + membershipExceptions = ( + DELanguageData.sqlite, + ENLanguageData.sqlite, + ESLanguageData.sqlite, + FRLanguageData.sqlite, + ITLanguageData.sqlite, + PTLanguageData.sqlite, + RULanguageData.sqlite, + SVLanguageData.sqlite, + TranslationData.sqlite, + ); + target = D18EA8982760D4A6001E1358 /* Swedish */; + }; + E9B89DCE2F22676B003E396F /* PBXFileSystemSynchronizedBuildFileExceptionSet */ = { + isa = PBXFileSystemSynchronizedBuildFileExceptionSet; + membershipExceptions = ( + ContractManager.swift, + DataContract.swift, + GenderManager.swift, + LanguageDBManager.swift, + ); + target = 38BD212F22D5907E00C6795D /* Scribe */; + }; + E9B89DCF2F22676B003E396F /* PBXFileSystemSynchronizedBuildFileExceptionSet */ = { + isa = PBXFileSystemSynchronizedBuildFileExceptionSet; + membershipExceptions = ( + ContractManager.swift, + DataContract.swift, + GenderManager.swift, + LanguageDBManager.swift, + ); + target = D1AFDF7D29CA66F40033BF27 /* Danish */; + }; + E9B89DD02F22676B003E396F /* PBXFileSystemSynchronizedBuildFileExceptionSet */ = { + isa = PBXFileSystemSynchronizedBuildFileExceptionSet; + membershipExceptions = ( + ContractManager.swift, + DataContract.swift, + GenderManager.swift, + LanguageDBManager.swift, + ); + target = D1AFDF0029CA66D00033BF27 /* English */; + }; + E9B89DD12F22676B003E396F /* PBXFileSystemSynchronizedBuildFileExceptionSet */ = { + isa = PBXFileSystemSynchronizedBuildFileExceptionSet; + membershipExceptions = ( + ContractManager.swift, + DataContract.swift, + GenderManager.swift, + LanguageDBManager.swift, + ); + target = D109A20A275B6888005E2271 /* French */; + }; + E9B89DD22F22676B003E396F /* PBXFileSystemSynchronizedBuildFileExceptionSet */ = { + isa = PBXFileSystemSynchronizedBuildFileExceptionSet; + membershipExceptions = ( + ContractManager.swift, + DataContract.swift, + GenderManager.swift, + LanguageDBManager.swift, + ); + target = 38BD214B22D592CA00C6795D /* German */; + }; + E9B89DD32F22676B003E396F /* PBXFileSystemSynchronizedBuildFileExceptionSet */ = { + isa = PBXFileSystemSynchronizedBuildFileExceptionSet; + membershipExceptions = ( + ContractManager.swift, + DataContract.swift, + GenderManager.swift, + LanguageDBManager.swift, + ); + target = D1AFDFD329CA6E900033BF27 /* Hebrew */; + }; + E9B89DD42F22676B003E396F /* PBXFileSystemSynchronizedBuildFileExceptionSet */ = { + isa = PBXFileSystemSynchronizedBuildFileExceptionSet; + membershipExceptions = ( + ContractManager.swift, + DataContract.swift, + GenderManager.swift, + LanguageDBManager.swift, + ); + target = E9FAC3922E989712008E00AC /* Indonesian */; + }; + E9B89DD52F22676B003E396F /* PBXFileSystemSynchronizedBuildFileExceptionSet */ = { + isa = PBXFileSystemSynchronizedBuildFileExceptionSet; + membershipExceptions = ( + ContractManager.swift, + DataContract.swift, + GenderManager.swift, + LanguageDBManager.swift, + ); + target = D1B81D1E27BBB5320085FE5E /* Italian */; + }; + E9B89DD62F22676B003E396F /* PBXFileSystemSynchronizedBuildFileExceptionSet */ = { + isa = PBXFileSystemSynchronizedBuildFileExceptionSet; + membershipExceptions = ( + ContractManager.swift, + DataContract.swift, + GenderManager.swift, + LanguageDBManager.swift, + ); + target = D1AB5B2229C757A100CCB0C1 /* Norwegian */; + }; + E9B89DD72F22676B003E396F /* PBXFileSystemSynchronizedBuildFileExceptionSet */ = { + isa = PBXFileSystemSynchronizedBuildFileExceptionSet; + membershipExceptions = ( + ContractManager.swift, + DataContract.swift, + GenderManager.swift, + LanguageDBManager.swift, + ); + target = D109A219275B68B3005E2271 /* Portuguese */; + }; + E9B89DD82F22676B003E396F /* PBXFileSystemSynchronizedBuildFileExceptionSet */ = { + isa = PBXFileSystemSynchronizedBuildFileExceptionSet; + membershipExceptions = ( + ContractManager.swift, + DataContract.swift, + GenderManager.swift, + LanguageDBManager.swift, + ); + target = D1671A5F275A1E8700A7C118 /* Russian */; + }; + E9B89DD92F22676B003E396F /* PBXFileSystemSynchronizedBuildFileExceptionSet */ = { + isa = PBXFileSystemSynchronizedBuildFileExceptionSet; + membershipExceptions = ( + ContractManager.swift, + DataContract.swift, + GenderManager.swift, + LanguageDBManager.swift, + ); + target = D1608664270B6D3C00134D48 /* Spanish */; + }; + E9B89DDA2F22676B003E396F /* PBXFileSystemSynchronizedBuildFileExceptionSet */ = { + isa = PBXFileSystemSynchronizedBuildFileExceptionSet; + membershipExceptions = ( + ContractManager.swift, + DataContract.swift, + GenderManager.swift, + LanguageDBManager.swift, + ); + target = D18EA8982760D4A6001E1358 /* Swedish */; + }; +/* End PBXFileSystemSynchronizedBuildFileExceptionSet section */ + /* Begin PBXFileSystemSynchronizedRootGroup section */ E943457E2F05638700DFDB20 /* Button */ = {isa = PBXFileSystemSynchronizedRootGroup; explicitFileTypes = {}; explicitFolders = (); path = Button; sourceTree = ""; }; + E98E73BE2F20D8AA005EEDA3 /* Data */ = {isa = PBXFileSystemSynchronizedRootGroup; exceptions = (E98E74352F20EA5E005EEDA3 /* PBXFileSystemSynchronizedBuildFileExceptionSet */, E98E74362F20EA5E005EEDA3 /* PBXFileSystemSynchronizedBuildFileExceptionSet */, E98E74372F20EA5E005EEDA3 /* PBXFileSystemSynchronizedBuildFileExceptionSet */, E98E74382F20EA5E005EEDA3 /* PBXFileSystemSynchronizedBuildFileExceptionSet */, E98E74392F20EA5E005EEDA3 /* PBXFileSystemSynchronizedBuildFileExceptionSet */, E98E743A2F20EA5E005EEDA3 /* PBXFileSystemSynchronizedBuildFileExceptionSet */, E98E743B2F20EA5E005EEDA3 /* PBXFileSystemSynchronizedBuildFileExceptionSet */, E98E743C2F20EA5E005EEDA3 /* PBXFileSystemSynchronizedBuildFileExceptionSet */, E98E743D2F20EA5E005EEDA3 /* PBXFileSystemSynchronizedBuildFileExceptionSet */, E98E743E2F20EA5E005EEDA3 /* PBXFileSystemSynchronizedBuildFileExceptionSet */, E98E743F2F20EA5E005EEDA3 /* PBXFileSystemSynchronizedBuildFileExceptionSet */, E98E74402F20EA5E005EEDA3 /* PBXFileSystemSynchronizedBuildFileExceptionSet */, ); explicitFileTypes = {}; explicitFolders = (); path = Data; sourceTree = ""; }; + E98E73BF2F20D8C3005EEDA3 /* DataContracts */ = {isa = PBXFileSystemSynchronizedRootGroup; explicitFileTypes = {}; explicitFolders = (); path = DataContracts; sourceTree = ""; }; + E9B89DCD2F226757003E396F /* DataManager */ = {isa = PBXFileSystemSynchronizedRootGroup; exceptions = (E9B89DCE2F22676B003E396F /* PBXFileSystemSynchronizedBuildFileExceptionSet */, E9B89DCF2F22676B003E396F /* PBXFileSystemSynchronizedBuildFileExceptionSet */, E9B89DD02F22676B003E396F /* PBXFileSystemSynchronizedBuildFileExceptionSet */, E9B89DD12F22676B003E396F /* PBXFileSystemSynchronizedBuildFileExceptionSet */, E9B89DD22F22676B003E396F /* PBXFileSystemSynchronizedBuildFileExceptionSet */, E9B89DD32F22676B003E396F /* PBXFileSystemSynchronizedBuildFileExceptionSet */, E9B89DD42F22676B003E396F /* PBXFileSystemSynchronizedBuildFileExceptionSet */, E9B89DD52F22676B003E396F /* PBXFileSystemSynchronizedBuildFileExceptionSet */, E9B89DD62F22676B003E396F /* PBXFileSystemSynchronizedBuildFileExceptionSet */, E9B89DD72F22676B003E396F /* PBXFileSystemSynchronizedBuildFileExceptionSet */, E9B89DD82F22676B003E396F /* PBXFileSystemSynchronizedBuildFileExceptionSet */, E9B89DD92F22676B003E396F /* PBXFileSystemSynchronizedBuildFileExceptionSet */, E9B89DDA2F22676B003E396F /* PBXFileSystemSynchronizedBuildFileExceptionSet */, ); explicitFileTypes = {}; explicitFolders = (); path = DataManager; sourceTree = ""; }; E9DADB332EF3CF9B00702783 /* ConfirmDialog */ = {isa = PBXFileSystemSynchronizedRootGroup; explicitFileTypes = {}; explicitFolders = (); path = ConfirmDialog; sourceTree = ""; }; /* End PBXFileSystemSynchronizedRootGroup section */ @@ -1734,7 +1905,6 @@ 38BD214D22D592CA00C6795D /* German */ = { isa = PBXGroup; children = ( - D15E298129E41B56006B2C81 /* DELanguageData.sqlite */, D1D8B23C2AE408AC0070B817 /* German.entitlements */, D17193FF27AECCD10038660B /* DECommandVariables.swift */, D17193CF27AEC9EC0038660B /* DEInterfaceVariables.swift */, @@ -1800,7 +1970,6 @@ D109A20C275B6888005E2271 /* French */ = { isa = PBXGroup; children = ( - D15E297E29E41B3B006B2C81 /* FRLanguageData.sqlite */, D1D8B23D2AE408C50070B817 /* French.entitlements */, D17193F727AECC930038660B /* FRCommandVariables.swift */, D17693DC28FC8CC300DF0FBB /* FR-QWERTYInterfaceVariables.swift */, @@ -1814,7 +1983,6 @@ D109A21B275B68B3005E2271 /* Portuguese */ = { isa = PBXGroup; children = ( - D15E298529E41B8F006B2C81 /* PTLanguageData.sqlite */, D1D8B23A2AE408850070B817 /* Portuguese.entitlements */, D171940727AECCE50038660B /* PTCommandVariables.swift */, D17193D727AECA450038660B /* PTInterfaceVariables.swift */, @@ -1853,7 +2021,6 @@ D1608666270B6D3C00134D48 /* Spanish */ = { isa = PBXGroup; children = ( - D15E298929E41BAD006B2C81 /* ESLanguageData.sqlite */, D1D8B2382AE408620070B817 /* Spanish.entitlements */, D171941727AECD070038660B /* ESCommandVariables.swift */, D17193E727AECAE60038660B /* ESInterfaceVariables.swift */, @@ -1866,7 +2033,6 @@ D1671A61275A1E8700A7C118 /* Russian */ = { isa = PBXGroup; children = ( - D15E298729E41BA1006B2C81 /* RULanguageData.sqlite */, D1D8B2392AE408720070B817 /* Russian.entitlements */, D171940F27AECCF50038660B /* RUCommandVariables.swift */, D17193DF27AECAA60038660B /* RUInterfaceVariables.swift */, @@ -1893,7 +2059,6 @@ D18EA89A2760D4A6001E1358 /* Swedish */ = { isa = PBXGroup; children = ( - D15E298B29E41BBE006B2C81 /* SVLanguageData.sqlite */, D1D8B2372AE4084D0070B817 /* Swedish.entitlements */, D171941F27AECD170038660B /* SVCommandVariables.swift */, D17193EF27AECB350038660B /* SVInterfaceVariables.swift */, @@ -1915,7 +2080,6 @@ D1B0719627C63C9100FD7DBD /* KeyAnimation.swift */, D171942E27AEDE110038660B /* KeyboardKeys.swift */, D190B2592742565500705659 /* KeyboardViewController.swift */, - D190B24D2741B61000705659 /* LanguageDBManager.swift */, D16DD3A429E78A1500FB9022 /* Utilities.swift */, D1C0ACD92719E0AA001E11C3 /* Keyboard.xib */, ); @@ -1963,7 +2127,6 @@ D1AFDE6929CA65740033BF27 /* English */ = { isa = PBXGroup; children = ( - 5A8FFB6E2C5E575B00F4B571 /* ENLanguageData.sqlite */, D1FF8ED12C6C282500EF50AC /* English.entitlements */, D1CDED782A859FB600098546 /* ENCommandVariables.swift */, D1CDED7A2A859FBF00098546 /* ENInterfaceVariables.swift */, @@ -1976,7 +2139,6 @@ D1AFDE7829CA658B0033BF27 /* Danish */ = { isa = PBXGroup; children = ( - D1CDED762A859E4800098546 /* DACommandVariables.swift */, D1CDED742A859DDD00098546 /* DAInterfaceVariables.swift */, D1AFDE7929CA658B0033BF27 /* DAKeyboardViewController.swift */, D1AFDE7B29CA658B0033BF27 /* Info.plist */, @@ -1998,7 +2160,6 @@ D1B81D2027BBB5320085FE5E /* Italian */ = { isa = PBXGroup; children = ( - D15E298329E41B74006B2C81 /* ITLanguageData.sqlite */, D1D8B23B2AE4089C0070B817 /* Italian.entitlements */, D1B81D4927BBBA200085FE5E /* ITCommandVariables.swift */, D1B81D5227BBBA360085FE5E /* ITInterfaceVariables.swift */, @@ -2023,7 +2184,6 @@ D1671A61275A1E8700A7C118 /* Russian */, D1608666270B6D3C00134D48 /* Spanish */, D18EA89A2760D4A6001E1358 /* Swedish */, - D1E3850F2C977FD100DCE538 /* TranslationData.sqlite */, ); path = LanguageKeyboards; sourceTree = ""; @@ -2036,6 +2196,9 @@ EDC364682AE408F20001E456 /* InterfaceConstants.swift */, 19DC85F92C7772FC006E32FD /* KeyboardBuilder.swift */, 198369CB2C7980BA00C1B583 /* KeyboardProvider.swift */, + E9B89DCD2F226757003E396F /* DataManager */, + E98E73BF2F20D8C3005EEDA3 /* DataContracts */, + E98E73BE2F20D8AA005EEDA3 /* Data */, ); path = Keyboards; sourceTree = ""; @@ -2153,6 +2316,9 @@ ); dependencies = ( ); + fileSystemSynchronizedGroups = ( + E98E73BF2F20D8C3005EEDA3 /* DataContracts */, + ); name = German; packageProductDependencies = ( D16DD37C29E785B100FB9022 /* SwiftyJSON */, @@ -2174,6 +2340,9 @@ ); dependencies = ( ); + fileSystemSynchronizedGroups = ( + E98E73BF2F20D8C3005EEDA3 /* DataContracts */, + ); name = French; packageProductDependencies = ( D16DD37829E785A600FB9022 /* SwiftyJSON */, @@ -2195,6 +2364,9 @@ ); dependencies = ( ); + fileSystemSynchronizedGroups = ( + E98E73BF2F20D8C3005EEDA3 /* DataContracts */, + ); name = Portuguese; packageProductDependencies = ( D16DD38429E785C300FB9022 /* SwiftyJSON */, @@ -2234,6 +2406,9 @@ ); dependencies = ( ); + fileSystemSynchronizedGroups = ( + E98E73BF2F20D8C3005EEDA3 /* DataContracts */, + ); name = Spanish; packageProductDependencies = ( D16DD38829E785CE00FB9022 /* SwiftyJSON */, @@ -2255,6 +2430,9 @@ ); dependencies = ( ); + fileSystemSynchronizedGroups = ( + E98E73BF2F20D8C3005EEDA3 /* DataContracts */, + ); name = Russian; packageProductDependencies = ( D16DD38629E785C900FB9022 /* SwiftyJSON */, @@ -2276,6 +2454,9 @@ ); dependencies = ( ); + fileSystemSynchronizedGroups = ( + E98E73BF2F20D8C3005EEDA3 /* DataContracts */, + ); name = Swedish; packageProductDependencies = ( D16DD38A29E785D200FB9022 /* SwiftyJSON */, @@ -2297,6 +2478,9 @@ ); dependencies = ( ); + fileSystemSynchronizedGroups = ( + E98E73BF2F20D8C3005EEDA3 /* DataContracts */, + ); name = Norwegian; packageProductDependencies = ( D16DD38229E785BE00FB9022 /* SwiftyJSON */, @@ -2318,6 +2502,9 @@ ); dependencies = ( ); + fileSystemSynchronizedGroups = ( + E98E73BF2F20D8C3005EEDA3 /* DataContracts */, + ); name = English; packageProductDependencies = ( D16DD37629E785A100FB9022 /* SwiftyJSON */, @@ -2339,6 +2526,9 @@ ); dependencies = ( ); + fileSystemSynchronizedGroups = ( + E98E73BF2F20D8C3005EEDA3 /* DataContracts */, + ); name = Danish; packageProductDependencies = ( D16DD37429E7859C00FB9022 /* SwiftyJSON */, @@ -2360,6 +2550,9 @@ ); dependencies = ( ); + fileSystemSynchronizedGroups = ( + E98E73BF2F20D8C3005EEDA3 /* DataContracts */, + ); name = Hebrew; packageProductDependencies = ( D16DD37E29E785B500FB9022 /* SwiftyJSON */, @@ -2381,6 +2574,9 @@ ); dependencies = ( ); + fileSystemSynchronizedGroups = ( + E98E73BF2F20D8C3005EEDA3 /* DataContracts */, + ); name = Italian; packageProductDependencies = ( D16DD38029E785BA00FB9022 /* SwiftyJSON */, @@ -2402,6 +2598,9 @@ ); dependencies = ( ); + fileSystemSynchronizedGroups = ( + E98E73BF2F20D8C3005EEDA3 /* DataContracts */, + ); name = Indonesian; packageProductDependencies = ( E9FAC3A62E989A84008E00AC /* SwiftyJSON */, @@ -2547,7 +2746,6 @@ 147797B12A2CD3370044A53E /* InfoChildTableViewCell.xib in Resources */, ED2486F42B0B4E8C0038AE6A /* AboutTableViewCell.xib in Resources */, E93179A42F03AE78002ED334 /* Localizable.xcstrings in Resources */, - D1E385102C977FD200DCE538 /* TranslationData.sqlite in Resources */, 38BD213922D5907F00C6795D /* AppScreen.storyboard in Resources */, 38BD213E22D5908100C6795D /* Assets.xcassets in Resources */, ); @@ -2559,17 +2757,8 @@ files = ( D1895BD62C1D816F009FBEB0 /* Settings.bundle in Resources */, CE2C606928FC4DB1005FDAA1 /* Assets.xcassets in Resources */, - 5A03800F2C74D71C00D4AADD /* RULanguageData.sqlite in Resources */, - D1E385142C977FD200DCE538 /* TranslationData.sqlite in Resources */, - D15E298229E41B56006B2C81 /* DELanguageData.sqlite in Resources */, D1C0ACDA2719E0AA001E11C3 /* Keyboard.xib in Resources */, - 5A037FE62C74D6D500D4AADD /* ENLanguageData.sqlite in Resources */, - 5A037FFB2C74D70200D4AADD /* ITLanguageData.sqlite in Resources */, - 5A0380232C74D73300D4AADD /* SVLanguageData.sqlite in Resources */, D16151012E9DBDED00131732 /* IDLanguageData.sqlite in Resources */, - 5A037FF02C74D6E500D4AADD /* FRLanguageData.sqlite in Resources */, - 5A0380052C74D70D00D4AADD /* PTLanguageData.sqlite in Resources */, - 5A0380192C74D72800D4AADD /* ESLanguageData.sqlite in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2579,17 +2768,8 @@ files = ( D1895BD52C1D816F009FBEB0 /* Settings.bundle in Resources */, D109A22B275B6A8B005E2271 /* Keyboard.xib in Resources */, - 5A03800E2C74D71B00D4AADD /* RULanguageData.sqlite in Resources */, - D1E385132C977FD200DCE538 /* TranslationData.sqlite in Resources */, - 5A037FDC2C74D6CA00D4AADD /* DELanguageData.sqlite in Resources */, CE2C606828FC4DB0005FDAA1 /* Assets.xcassets in Resources */, - 5A037FE52C74D6D500D4AADD /* ENLanguageData.sqlite in Resources */, - 5A037FFA2C74D70100D4AADD /* ITLanguageData.sqlite in Resources */, - 5A0380222C74D73200D4AADD /* SVLanguageData.sqlite in Resources */, D16151002E9DBDED00131732 /* IDLanguageData.sqlite in Resources */, - D15E297F29E41B3B006B2C81 /* FRLanguageData.sqlite in Resources */, - 5A0380042C74D70D00D4AADD /* PTLanguageData.sqlite in Resources */, - 5A0380182C74D72700D4AADD /* ESLanguageData.sqlite in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2597,19 +2777,10 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 5A037FFE2C74D70400D4AADD /* ITLanguageData.sqlite in Resources */, D1895BDA2C1D816F009FBEB0 /* Settings.bundle in Resources */, - 5A0380132C74D72000D4AADD /* RULanguageData.sqlite in Resources */, - D1E385182C977FD200DCE538 /* TranslationData.sqlite in Resources */, D109A231275B6A8C005E2271 /* Keyboard.xib in Resources */, - 5A037FE02C74D6CD00D4AADD /* DELanguageData.sqlite in Resources */, - D15E298629E41B8F006B2C81 /* PTLanguageData.sqlite in Resources */, - 5A037FF42C74D6E800D4AADD /* FRLanguageData.sqlite in Resources */, - 5A0380272C74D73600D4AADD /* SVLanguageData.sqlite in Resources */, D16151052E9DBDED00131732 /* IDLanguageData.sqlite in Resources */, - 5A037FEA2C74D6D900D4AADD /* ENLanguageData.sqlite in Resources */, CE2C606B28FC4DB3005FDAA1 /* Assets.xcassets in Resources */, - 5A03801D2C74D72C00D4AADD /* ESLanguageData.sqlite in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2624,19 +2795,10 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 5A0380142C74D72100D4AADD /* RULanguageData.sqlite in Resources */, - 5A0380002C74D70600D4AADD /* ITLanguageData.sqlite in Resources */, D1895BDC2C1D816F009FBEB0 /* Settings.bundle in Resources */, - D1E3851A2C977FD200DCE538 /* TranslationData.sqlite in Resources */, CE2C606D28FC4DB4005FDAA1 /* Assets.xcassets in Resources */, - 5A037FE22C74D6CE00D4AADD /* DELanguageData.sqlite in Resources */, - 5A03800A2C74D71300D4AADD /* PTLanguageData.sqlite in Resources */, D190B2582742525C00705659 /* Keyboard.xib in Resources */, - 5A0380292C74D73700D4AADD /* SVLanguageData.sqlite in Resources */, D16151072E9DBDED00131732 /* IDLanguageData.sqlite in Resources */, - 5A037FF62C74D6EA00D4AADD /* FRLanguageData.sqlite in Resources */, - 5A037FEC2C74D6DA00D4AADD /* ENLanguageData.sqlite in Resources */, - D15E298A29E41BAD006B2C81 /* ESLanguageData.sqlite in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2644,19 +2806,10 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 5A037FFF2C74D70500D4AADD /* ITLanguageData.sqlite in Resources */, D1895BDB2C1D816F009FBEB0 /* Settings.bundle in Resources */, - D15E298829E41BA1006B2C81 /* RULanguageData.sqlite in Resources */, - D1E385192C977FD200DCE538 /* TranslationData.sqlite in Resources */, - 5A037FE12C74D6CD00D4AADD /* DELanguageData.sqlite in Resources */, - 5A0380092C74D71100D4AADD /* PTLanguageData.sqlite in Resources */, D1671A74275A1FC000A7C118 /* Keyboard.xib in Resources */, - 5A037FF52C74D6E900D4AADD /* FRLanguageData.sqlite in Resources */, - 5A0380282C74D73600D4AADD /* SVLanguageData.sqlite in Resources */, D16151062E9DBDED00131732 /* IDLanguageData.sqlite in Resources */, - 5A037FEB2C74D6DA00D4AADD /* ENLanguageData.sqlite in Resources */, CE2C606C28FC4DB3005FDAA1 /* Assets.xcassets in Resources */, - 5A03801E2C74D72D00D4AADD /* ESLanguageData.sqlite in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2664,18 +2817,9 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 5A0380152C74D72200D4AADD /* RULanguageData.sqlite in Resources */, - 5A0380012C74D70700D4AADD /* ITLanguageData.sqlite in Resources */, - 5A03801F2C74D72E00D4AADD /* ESLanguageData.sqlite in Resources */, - D1E3851B2C977FD200DCE538 /* TranslationData.sqlite in Resources */, D1895BDD2C1D816F009FBEB0 /* Settings.bundle in Resources */, - D15E298C29E41BBE006B2C81 /* SVLanguageData.sqlite in Resources */, - 5A037FE32C74D6CE00D4AADD /* DELanguageData.sqlite in Resources */, - 5A03800B2C74D71400D4AADD /* PTLanguageData.sqlite in Resources */, D18EA8A42760D6EE001E1358 /* Keyboard.xib in Resources */, D16151082E9DBDED00131732 /* IDLanguageData.sqlite in Resources */, - 5A037FF72C74D6EA00D4AADD /* FRLanguageData.sqlite in Resources */, - 5A037FED2C74D6DB00D4AADD /* ENLanguageData.sqlite in Resources */, CE2C606E28FC4DB4005FDAA1 /* Assets.xcassets in Resources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -2684,19 +2828,10 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 5A037FDF2C74D6CC00D4AADD /* DELanguageData.sqlite in Resources */, D1AB5B5629C757A100CCB0C1 /* Keyboard.xib in Resources */, - 5A0380122C74D71F00D4AADD /* RULanguageData.sqlite in Resources */, - D1E385172C977FD200DCE538 /* TranslationData.sqlite in Resources */, D1895BD92C1D816F009FBEB0 /* Settings.bundle in Resources */, D1AB5B5929C757A100CCB0C1 /* Assets.xcassets in Resources */, - 5A037FE92C74D6D800D4AADD /* ENLanguageData.sqlite in Resources */, - 5A037FFD2C74D70400D4AADD /* ITLanguageData.sqlite in Resources */, - 5A0380262C74D73500D4AADD /* SVLanguageData.sqlite in Resources */, D16151042E9DBDED00131732 /* IDLanguageData.sqlite in Resources */, - 5A037FF32C74D6E800D4AADD /* FRLanguageData.sqlite in Resources */, - 5A0380082C74D70F00D4AADD /* PTLanguageData.sqlite in Resources */, - 5A03801C2C74D72B00D4AADD /* ESLanguageData.sqlite in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2706,17 +2841,8 @@ files = ( D1AFDF3429CA66D00033BF27 /* Keyboard.xib in Resources */, D1895BD42C1D816F009FBEB0 /* Settings.bundle in Resources */, - 5A03800D2C74D71A00D4AADD /* RULanguageData.sqlite in Resources */, - D1E385122C977FD200DCE538 /* TranslationData.sqlite in Resources */, - 5A037FDB2C74D6C900D4AADD /* DELanguageData.sqlite in Resources */, D1AFDF3729CA66D00033BF27 /* Assets.xcassets in Resources */, - 5A8FFB702C5E5A6F00F4B571 /* ENLanguageData.sqlite in Resources */, - 5A037FF92C74D70000D4AADD /* ITLanguageData.sqlite in Resources */, - 5A0380212C74D73100D4AADD /* SVLanguageData.sqlite in Resources */, D16150FF2E9DBDED00131732 /* IDLanguageData.sqlite in Resources */, - 5A037FEF2C74D6E300D4AADD /* FRLanguageData.sqlite in Resources */, - 5A0380032C74D70C00D4AADD /* PTLanguageData.sqlite in Resources */, - 5A0380172C74D72700D4AADD /* ESLanguageData.sqlite in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2724,19 +2850,10 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 5A037FDA2C74D6C800D4AADD /* DELanguageData.sqlite in Resources */, D1AFDFB129CA66F40033BF27 /* Keyboard.xib in Resources */, - 5A03800C2C74D71900D4AADD /* RULanguageData.sqlite in Resources */, - D1E385112C977FD200DCE538 /* TranslationData.sqlite in Resources */, D1895BD32C1D816F009FBEB0 /* Settings.bundle in Resources */, D1AFDFB429CA66F40033BF27 /* Assets.xcassets in Resources */, - 5A037FE42C74D6D400D4AADD /* ENLanguageData.sqlite in Resources */, - 5A037FF82C74D6FF00D4AADD /* ITLanguageData.sqlite in Resources */, - 5A0380202C74D73100D4AADD /* SVLanguageData.sqlite in Resources */, D16150FE2E9DBDED00131732 /* IDLanguageData.sqlite in Resources */, - 5A037FEE2C74D6E200D4AADD /* FRLanguageData.sqlite in Resources */, - 5A0380022C74D70B00D4AADD /* PTLanguageData.sqlite in Resources */, - 5A0380162C74D72600D4AADD /* ESLanguageData.sqlite in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2744,19 +2861,10 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 5A037FDD2C74D6CA00D4AADD /* DELanguageData.sqlite in Resources */, D1AFE00729CA6E900033BF27 /* Keyboard.xib in Resources */, - 5A0380102C74D71D00D4AADD /* RULanguageData.sqlite in Resources */, - D1E385152C977FD200DCE538 /* TranslationData.sqlite in Resources */, D1895BD72C1D816F009FBEB0 /* Settings.bundle in Resources */, D1AFE00A29CA6E900033BF27 /* Assets.xcassets in Resources */, - 5A037FE72C74D6D600D4AADD /* ENLanguageData.sqlite in Resources */, - 5A037FFC2C74D70300D4AADD /* ITLanguageData.sqlite in Resources */, - 5A0380242C74D73400D4AADD /* SVLanguageData.sqlite in Resources */, D16151022E9DBDED00131732 /* IDLanguageData.sqlite in Resources */, - 5A037FF12C74D6E500D4AADD /* FRLanguageData.sqlite in Resources */, - 5A0380062C74D70E00D4AADD /* PTLanguageData.sqlite in Resources */, - 5A03801A2C74D72900D4AADD /* ESLanguageData.sqlite in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2766,17 +2874,8 @@ files = ( D1895BD82C1D816F009FBEB0 /* Settings.bundle in Resources */, D1B81D4127BBB70E0085FE5E /* Keyboard.xib in Resources */, - 5A0380112C74D71F00D4AADD /* RULanguageData.sqlite in Resources */, - D1E385162C977FD200DCE538 /* TranslationData.sqlite in Resources */, - 5A037FDE2C74D6CB00D4AADD /* DELanguageData.sqlite in Resources */, - D15E298429E41B74006B2C81 /* ITLanguageData.sqlite in Resources */, - 5A037FF22C74D6E600D4AADD /* FRLanguageData.sqlite in Resources */, - 5A037FE82C74D6D800D4AADD /* ENLanguageData.sqlite in Resources */, - 5A0380252C74D73400D4AADD /* SVLanguageData.sqlite in Resources */, D16151032E9DBDED00131732 /* IDLanguageData.sqlite in Resources */, CE2C606A28FC4DB2005FDAA1 /* Assets.xcassets in Resources */, - 5A0380072C74D70F00D4AADD /* PTLanguageData.sqlite in Resources */, - 5A03801B2C74D72B00D4AADD /* ESLanguageData.sqlite in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2784,18 +2883,9 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - D16151092E9DBE0400131732 /* DELanguageData.sqlite in Resources */, - D161510A2E9DBE1400131732 /* FRLanguageData.sqlite in Resources */, - D161510E2E9DBE3D00131732 /* RULanguageData.sqlite in Resources */, D16150FC2E9DBDC500131732 /* IDLanguageData.sqlite in Resources */, E99649962E98B03C00200F53 /* Keyboard.xib in Resources */, - D161510B2E9DBE1D00131732 /* ENLanguageData.sqlite in Resources */, - D161510C2E9DBE2B00131732 /* ITLanguageData.sqlite in Resources */, - D16151102E9DBE4C00131732 /* SVLanguageData.sqlite in Resources */, E99649972E98B11100200F53 /* Assets.xcassets in Resources */, - D161510D2E9DBE3600131732 /* PTLanguageData.sqlite in Resources */, - D161510F2E9DBE4500131732 /* ESLanguageData.sqlite in Resources */, - E937C5CF2E9FF94E00F94F99 /* TranslationData.sqlite in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2867,7 +2957,6 @@ files = ( D171941027AECCF50038660B /* RUCommandVariables.swift in Sources */, 140158992A430DD000D14E52 /* ThirdPartyLicense.swift in Sources */, - D171944A27AEFC620038660B /* LanguageDBManager.swift in Sources */, D17193C027AEA33A0038660B /* AppTextStyling.swift in Sources */, CE1378C428F5D7AC00E1CBC2 /* ScribeColor.swift in Sources */, D171946527AF31770038660B /* Conjugate.swift in Sources */, @@ -2895,7 +2984,6 @@ D171945427AF04E50038660B /* KeyboardViewController.swift in Sources */, E96111482F04EC6B001E4F95 /* InstallationDownload.swift in Sources */, EDEE62252B2DE65A00A0B9C1 /* UIEdgeInsetsExtensions.swift in Sources */, - D1CDED772A859E4800098546 /* DACommandVariables.swift in Sources */, D171943827AEF0560038660B /* KeyboardStyling.swift in Sources */, D111E9BA27AFE7B200746F92 /* Annotate.swift in Sources */, 19DC85FA2C7772FC006E32FD /* KeyboardBuilder.swift in Sources */, @@ -2965,7 +3053,6 @@ D1B81D5527BBBA360085FE5E /* ITInterfaceVariables.swift in Sources */, D171943127AEDE110038660B /* KeyboardKeys.swift in Sources */, 30489C212936DAFF00B59393 /* ToolTipView.swift in Sources */, - D1CDED872A85AE5A00098546 /* DACommandVariables.swift in Sources */, D1CDED912A85AE6200098546 /* DAInterfaceVariables.swift in Sources */, D171941A27AECD070038660B /* ESCommandVariables.swift in Sources */, D1B071A227C6A1AA00FD7DBD /* KeyAltChars.swift in Sources */, @@ -2996,7 +3083,6 @@ 3045399A293B9E22003AE55B /* ToolTipViewDatasourceable.swift in Sources */, 30453992293B9E1C003AE55B /* ToolTipViewUpdatable.swift in Sources */, D190B24A2741B31F00705659 /* InterfaceVariables.swift in Sources */, - D190B24E2741B61000705659 /* LanguageDBManager.swift in Sources */, CE1378CE28F5D7AC00E1CBC2 /* UIColor+ScribeColors.swift in Sources */, D111E9A427AFE4F300746F92 /* CommandBar.swift in Sources */, D17693E028FC8D6C00DF0FBB /* FR-QWERTYInterfaceVariables.swift in Sources */, @@ -3028,7 +3114,6 @@ D1B81D5427BBBA360085FE5E /* ITInterfaceVariables.swift in Sources */, D171943027AEDE110038660B /* KeyboardKeys.swift in Sources */, 30489C1F2936DAFE00B59393 /* ToolTipView.swift in Sources */, - D1CDED862A85AE5A00098546 /* DACommandVariables.swift in Sources */, D1CDED922A85AE6300098546 /* DAInterfaceVariables.swift in Sources */, D17193F927AECC930038660B /* FRCommandVariables.swift in Sources */, D1B071A127C6A1AA00FD7DBD /* KeyAltChars.swift in Sources */, @@ -3042,7 +3127,6 @@ D1B81D4B27BBBA200085FE5E /* ITCommandVariables.swift in Sources */, D171946627AF31770038660B /* Conjugate.swift in Sources */, D111E9AB27AFE78600746F92 /* Plural.swift in Sources */, - D109A237275B6A99005E2271 /* LanguageDBManager.swift in Sources */, D109A228275B6A8B005E2271 /* Extensions.swift in Sources */, 198369CF2C7980BA00C1B583 /* KeyboardProvider.swift in Sources */, 30453982293B9E11003AE55B /* InformationToolTipData.swift in Sources */, @@ -3091,7 +3175,6 @@ D1B81D5727BBBA360085FE5E /* ITInterfaceVariables.swift in Sources */, D171943227AEDE110038660B /* KeyboardKeys.swift in Sources */, 30489C232936DB0100B59393 /* ToolTipView.swift in Sources */, - D1CDED8B2A85AE5C00098546 /* DACommandVariables.swift in Sources */, D1CDED962A85AE6400098546 /* DAInterfaceVariables.swift in Sources */, D17193FB27AECC930038660B /* FRCommandVariables.swift in Sources */, D1B071A427C6A1AA00FD7DBD /* KeyAltChars.swift in Sources */, @@ -3103,7 +3186,6 @@ D171945B27AF237C0038660B /* ScribeKey.swift in Sources */, D109A21D275B68B3005E2271 /* PTKeyboardViewController.swift in Sources */, D1B81D4E27BBBA200085FE5E /* ITCommandVariables.swift in Sources */, - D109A238275B6A9A005E2271 /* LanguageDBManager.swift in Sources */, D171946827AF31770038660B /* Conjugate.swift in Sources */, D111E9AD27AFE78600746F92 /* Plural.swift in Sources */, D109A22E275B6A8C005E2271 /* Extensions.swift in Sources */, @@ -3164,7 +3246,6 @@ D1B81D5927BBBA360085FE5E /* ITInterfaceVariables.swift in Sources */, D171943427AEDE110038660B /* KeyboardKeys.swift in Sources */, 30489C252936DB0100B59393 /* ToolTipView.swift in Sources */, - D1CDED8D2A85AE5E00098546 /* DACommandVariables.swift in Sources */, D1CDED992A85AE6600098546 /* DAInterfaceVariables.swift in Sources */, D17193FD27AECC930038660B /* FRCommandVariables.swift in Sources */, D1B071A627C6A1AA00FD7DBD /* KeyAltChars.swift in Sources */, @@ -3201,7 +3282,6 @@ D111E9A727AFE4F300746F92 /* CommandBar.swift in Sources */, D17693E428FC8D6E00DF0FBB /* FR-QWERTYInterfaceVariables.swift in Sources */, D1CDEDAF2A85AE7800098546 /* ENInterfaceVariables.swift in Sources */, - D190B24F2741B61000705659 /* LanguageDBManager.swift in Sources */, D1CDEDD02A85AE9400098546 /* NBCommandVariables.swift in Sources */, 3045398E293B9E19003AE55B /* ViewThemeable.swift in Sources */, D1B0719D27C63CE800FD7DBD /* KeyAnimation.swift in Sources */, @@ -3227,7 +3307,6 @@ D1B81D5827BBBA360085FE5E /* ITInterfaceVariables.swift in Sources */, D171943327AEDE110038660B /* KeyboardKeys.swift in Sources */, 30489C242936DB0100B59393 /* ToolTipView.swift in Sources */, - D1CDED8C2A85AE5D00098546 /* DACommandVariables.swift in Sources */, D1CDED972A85AE6500098546 /* DAInterfaceVariables.swift in Sources */, D17193FC27AECC930038660B /* FRCommandVariables.swift in Sources */, D1B071A527C6A1AA00FD7DBD /* KeyAltChars.swift in Sources */, @@ -3239,7 +3318,6 @@ D171945C27AF237C0038660B /* ScribeKey.swift in Sources */, D1671A71275A1FA200A7C118 /* RUKeyboardViewController.swift in Sources */, D1B81D4F27BBBA200085FE5E /* ITCommandVariables.swift in Sources */, - D1671A7A275A1FC900A7C118 /* LanguageDBManager.swift in Sources */, D171946927AF31770038660B /* Conjugate.swift in Sources */, D111E9AE27AFE78600746F92 /* Plural.swift in Sources */, D1671A72275A1FC000A7C118 /* Extensions.swift in Sources */, @@ -3290,7 +3368,6 @@ D1B81D5A27BBBA360085FE5E /* ITInterfaceVariables.swift in Sources */, D171943527AEDE110038660B /* KeyboardKeys.swift in Sources */, 30489C262936DB0200B59393 /* ToolTipView.swift in Sources */, - D1CDED8E2A85AE5E00098546 /* DACommandVariables.swift in Sources */, D1CDED982A85AE6500098546 /* DAInterfaceVariables.swift in Sources */, D17193FE27AECC930038660B /* FRCommandVariables.swift in Sources */, D1B071A727C6A1AA00FD7DBD /* KeyAltChars.swift in Sources */, @@ -3302,7 +3379,6 @@ D171945E27AF237C0038660B /* ScribeKey.swift in Sources */, D18EA8A62760D6F5001E1358 /* CommandVariables.swift in Sources */, D1B81D5127BBBA200085FE5E /* ITCommandVariables.swift in Sources */, - D18EA8AC2760D701001E1358 /* LanguageDBManager.swift in Sources */, D171946B27AF31770038660B /* Conjugate.swift in Sources */, D111E9B027AFE78600746F92 /* Plural.swift in Sources */, D18EA8A92760D6F5001E1358 /* Extensions.swift in Sources */, @@ -3353,7 +3429,6 @@ D1AB5B2D29C757A100CCB0C1 /* ITInterfaceVariables.swift in Sources */, D1AB5B2E29C757A100CCB0C1 /* PTInterfaceVariables.swift in Sources */, D1AB5B2F29C757A100CCB0C1 /* ToolTipView.swift in Sources */, - D1CDED8A2A85AE5C00098546 /* DACommandVariables.swift in Sources */, D1CDED952A85AE6400098546 /* DAInterfaceVariables.swift in Sources */, D1AB5B3029C757A100CCB0C1 /* DECommandVariables.swift in Sources */, D1AB5B3129C757A100CCB0C1 /* KeyAltChars.swift in Sources */, @@ -3373,7 +3448,6 @@ D1AB5B3D29C757A100CCB0C1 /* Annotate.swift in Sources */, D1AB5B3E29C757A100CCB0C1 /* InformationToolTipData.swift in Sources */, D16D975429C75A4900E33F86 /* NBKeyboardViewController.swift in Sources */, - D1AB5B3F29C757A100CCB0C1 /* LanguageDBManager.swift in Sources */, 19DC86012C7772FC006E32FD /* KeyboardBuilder.swift in Sources */, D1AB5B4029C757A100CCB0C1 /* CommandVariables.swift in Sources */, D16DD3AD29E78A1500FB9022 /* Utilities.swift in Sources */, @@ -3416,7 +3490,6 @@ D1AFDF0B29CA66D00033BF27 /* ITInterfaceVariables.swift in Sources */, D1AFDF0C29CA66D00033BF27 /* PTInterfaceVariables.swift in Sources */, D1AFDF0D29CA66D00033BF27 /* ToolTipView.swift in Sources */, - D1CDED852A85AE5900098546 /* DACommandVariables.swift in Sources */, D1CDED902A85AE6100098546 /* DAInterfaceVariables.swift in Sources */, D1AFDF0E29CA66D00033BF27 /* DECommandVariables.swift in Sources */, D1AFDF0F29CA66D00033BF27 /* KeyAltChars.swift in Sources */, @@ -3436,7 +3509,6 @@ D1AFDFBD29CA67F10033BF27 /* ENKeyboardViewController.swift in Sources */, D1AFDF1B29CA66D00033BF27 /* Annotate.swift in Sources */, D1AFDF1C29CA66D00033BF27 /* InformationToolTipData.swift in Sources */, - D1AFDF1D29CA66D00033BF27 /* LanguageDBManager.swift in Sources */, 19DC85FC2C7772FC006E32FD /* KeyboardBuilder.swift in Sources */, D1AFDF1E29CA66D00033BF27 /* CommandVariables.swift in Sources */, D16DD3A729E78A1500FB9022 /* Utilities.swift in Sources */, @@ -3479,7 +3551,6 @@ D1AFDF8829CA66F40033BF27 /* ITInterfaceVariables.swift in Sources */, D1AFDF8929CA66F40033BF27 /* PTInterfaceVariables.swift in Sources */, D1AFDF8A29CA66F40033BF27 /* ToolTipView.swift in Sources */, - D1CDED842A85AE5800098546 /* DACommandVariables.swift in Sources */, D1CDED8F2A85AE6100098546 /* DAInterfaceVariables.swift in Sources */, D1AFDF8B29CA66F40033BF27 /* DECommandVariables.swift in Sources */, D1AFDF8C29CA66F40033BF27 /* KeyAltChars.swift in Sources */, @@ -3499,7 +3570,6 @@ D1AFDF9829CA66F40033BF27 /* Annotate.swift in Sources */, D1AFDF9929CA66F40033BF27 /* InformationToolTipData.swift in Sources */, D1AFDFBC29CA67EE0033BF27 /* DAKeyboardViewController.swift in Sources */, - D1AFDF9A29CA66F40033BF27 /* LanguageDBManager.swift in Sources */, 19DC85FB2C7772FC006E32FD /* KeyboardBuilder.swift in Sources */, D1AFDF9B29CA66F40033BF27 /* CommandVariables.swift in Sources */, D16DD3A629E78A1500FB9022 /* Utilities.swift in Sources */, @@ -3542,7 +3612,6 @@ D1AFDFDE29CA6E900033BF27 /* ITInterfaceVariables.swift in Sources */, D1AFDFDF29CA6E900033BF27 /* PTInterfaceVariables.swift in Sources */, D1AFDFE029CA6E900033BF27 /* ToolTipView.swift in Sources */, - D1CDED892A85AE5B00098546 /* DACommandVariables.swift in Sources */, D1CDED932A85AE6300098546 /* DAInterfaceVariables.swift in Sources */, D1AFDFE129CA6E900033BF27 /* DECommandVariables.swift in Sources */, D1AFDFE229CA6E900033BF27 /* KeyAltChars.swift in Sources */, @@ -3561,7 +3630,6 @@ 198369D12C7980BA00C1B583 /* KeyboardProvider.swift in Sources */, D1AFDFEE29CA6E900033BF27 /* Annotate.swift in Sources */, D1AFDFEF29CA6E900033BF27 /* InformationToolTipData.swift in Sources */, - D1AFDFF029CA6E900033BF27 /* LanguageDBManager.swift in Sources */, D1AFDFF129CA6E900033BF27 /* CommandVariables.swift in Sources */, 19DC85FF2C7772FC006E32FD /* KeyboardBuilder.swift in Sources */, D1AFE01229CA6F360033BF27 /* HEKeyboardViewController.swift in Sources */, @@ -3605,7 +3673,6 @@ D1B81D5627BBBA360085FE5E /* ITInterfaceVariables.swift in Sources */, D1B81D2F27BBB69E0085FE5E /* PTInterfaceVariables.swift in Sources */, 30489C222936DB0000B59393 /* ToolTipView.swift in Sources */, - D1CDED882A85AE5B00098546 /* DACommandVariables.swift in Sources */, D1CDED942A85AE6300098546 /* DAInterfaceVariables.swift in Sources */, D1B81D2A27BBB6780085FE5E /* DECommandVariables.swift in Sources */, D1B071A327C6A1AA00FD7DBD /* KeyAltChars.swift in Sources */, @@ -3624,7 +3691,6 @@ 198369D22C7980BA00C1B583 /* KeyboardProvider.swift in Sources */, D1B81D4327BBB71C0085FE5E /* Annotate.swift in Sources */, 30453985293B9E12003AE55B /* InformationToolTipData.swift in Sources */, - D1B81D4027BBB70C0085FE5E /* LanguageDBManager.swift in Sources */, D1B81D4227BBB71C0085FE5E /* CommandVariables.swift in Sources */, 19DC86002C7772FC006E32FD /* KeyboardBuilder.swift in Sources */, D1B81D4727BBB71C0085FE5E /* Translate.swift in Sources */, @@ -3685,7 +3751,6 @@ E996497F2E98A82200200F53 /* PTInterfaceVariables.swift in Sources */, E996497E2E98A81300200F53 /* ITInterfaceVariables.swift in Sources */, E99649742E98A6CF00200F53 /* ITCommandVariables.swift in Sources */, - E99649692E98A51000200F53 /* LanguageDBManager.swift in Sources */, E9FAC3A02E98972D008E00AC /* IDCommandVariables.swift in Sources */, E99649802E98A83C00200F53 /* Extensions.swift in Sources */, E99649672E98A4A900200F53 /* ColorVariables.swift in Sources */,