diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 6f75e2c1..f370fcf2 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -1,17 +1,17 @@
-# Setting up a Python environment and pre-commit.
+# Setting up a Python environment and prek (pre-commit hooks).
+
+# >>> python3 -m venv .venv
# Unix or MacOS:
-# >>> python3 -m venv venv
-# >>> source venv/bin/activate
+# >>> source .venv/bin/activate
# Windows:
-# >>> python -m venv venv
-# >>> venv\Scripts\activate.bat
+# >>> .venv\Scripts\activate.bat
# >>> pip install --upgrade pip
-# >>> pip install pre-commit
-# >>> pre-commit install
-# >>> pre-commit run --all-files
+# >>> pip install prek
+# >>> prek install
+# >>> prek run --all-files
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
@@ -22,7 +22,7 @@ repos:
- id: check-yaml
- repo: https://github.com/realm/SwiftLint
- rev: 0.63.1
+ rev: 0.63.2
hooks:
- id: swiftlint
name: run swiftlint linting check
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index ec572ee1..5942d454 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -1,3 +1,5 @@
+
+
# Contributing to Scribe-iOS
Thank you for your interest in contributing!
@@ -8,17 +10,16 @@ Following these guidelines helps to communicate that you respect the time of the
If you have questions or would like to communicate with the team, please [join us in our public Matrix chat rooms](https://matrix.to/#/#scribe_community:matrix.org). We'd be happy to hear from you!
-
-
-# **Contents**
+## Contents
-- [First steps as a contributor](#first-steps)
+- [First steps as a contributor](#first-steps-as-a-contributor)
+- [Mentorship and Growth](#mentorship-and-growth)
- [Learning the tech stack](#learning-the-tech)
-- [Development environment](#dev-env)
+- [Development environment](#development-environment)
- [Note on debugging](#note-on-debugging)
-- [Build Schemes Selection](#build-scheme)
+- [Build Schemes Selection](#build-scheme-selection)
- [Testing](#testing)
-- [Issues and projects](#issues-projects)
+- [Issues and projects](#issues-and-projects)
- [Bug reports](#bug-reports)
- [Feature requests](#feature-requests)
- [Pull requests](#pull-requests)
@@ -27,9 +28,7 @@ If you have questions or would like to communicate with the team, please [join u
- [Documentation](#documentation)
- [Design](#design)
-
-
-## First steps as a contributor [`⇧`](#contents)
+## First steps as a contributor
Thank you for your interest in contributing to Scribe-iOS! We look forward to welcoming you to the community and working with you to build an tools for language learners to communicate effectively :) The following are some suggested steps for people interested in joining our community:
@@ -46,9 +45,25 @@ Thank you for your interest in contributing to Scribe-iOS! We look forward to we
> [!NOTE]
> Those new to Swift or wanting to work on their Swift skills are more than welcome to contribute! The team would be happy to help you on your development journey :)
-
+Back to top.
+
+## Mentorship and Growth
+
+Onboarding and mentoring new members is vital to a healthy open-source community.
+
+We need contributors who are onboarded to gain new skills and take on greater roles by triaging issues, reviewing contributions, and maintaining the project. We also need them to help new contributors to grow as well. Please let us know if you have goals to develop as an open-source contributor and we'll work with you to achieve them.
-## Learning the tech stack [`⇧`](#contents)
+We also have expectations about the behavior of those who want to grow with us. Mentorship is earned, not given.
+
+To be blunt, those who are mainly sending AI generated contributions are not demonstrating an interest in growing their skills and are not helping to develop the project. This is not to say that all uses of AI for contributions are bad, but **AI should be a tool, not the contributor itself**.
+
+Continued constructive contributions, new open issues, and clear communication helps the project. We would be happy to help community members who can make these contributions to expand their skills and take on further responsibilities.
+
+If you like the sound of this, then we look forward to working with you!
+
+Back to top.
+
+## Learning the tech stack
Scribe is very open to contributions from people in the early stages of their coding journey! The following is a select list of documentation pages to help you understand the technologies we use.
@@ -74,9 +89,9 @@ Scribe is very open to contributions from people in the early stages of their co
-
+Back to top.
-# Development environment [`⇧`](#contents)
+## Development environment
Scribe-iOS is developed using the [Swift](https://developer.apple.com/swift/) coding language. Those new to Swift or wanting to develop their skills are more than welcome to contribute! The first step on your Swift journey would be to read through the [Swift documentation](https://docs.swift.org/swift-book/index.html). The general steps to setting up a development environment are:
@@ -117,12 +132,13 @@ git remote add upstream https://github.com/scribe-org/Scribe-iOS.git
- `origin` (forked repository)
- `upstream` (Scribe-iOS repository)
-3. (Optional) Install [pre-commit](https://pre-commit.com/) and its hooks to check for and correct common errors in commits:
+3. (Optional) Install [prek](https://prek.j178.dev/) pre-commit hooks to check for and correct common errors in commits:
```bash
-pip install pre-commit
-pre-commit install
-# pre-commit run --all-files
+pip install --upgrade pip # make sure that pip is at the latest version
+pip install prek
+prek install
+# prek --all-files
```
4. Open the Scribe-iOS directory in Xcode
@@ -144,7 +160,7 @@ pre-commit install
> [!NOTE]
> Feel free to contact the team in the [iOS room on Matrix](https://matrix.to/#/#ScribeiOS:matrix.org) if you're having problems getting your environment setup!
-
+Back to top.
### Note on debugging
@@ -156,9 +172,9 @@ The Xcode debugger often doesn't work as expected for Scribe as the keyboards th
- When you get a window telling you to "choose an app to run", don't choose Scribe as you might expect, but instead scroll down and select Xcode Previews
- Occasionally you'll be met with just a black screen on startup, in which case you can press Home (or ⇧-⌘-H) and then go directly to Scribe or an app for keyboard testing
-
+Back to top.
-## Build Schemes Selection [`⇧`](#contents)
+## Build Schemes Selection
The project includes two build schemes, each corresponding to a different application.There are other targets corresponding to the individual keyboards which are shipped within the `Scribe` target.
@@ -167,13 +183,13 @@ Build schemes can be selected from the top bar next to device selection.
1. Scribe → Scribe Language Keyboards app (IME)
2. Conjugate → Scribe Conjugate verb conjugation app
-
+Back to top.
-## Testing [`⇧`](#contents)
+## Testing
Writing unit tests is essential to guarantee the dependability and sustainability of the Scribe-iOS codebase. Unit tests confirm that individual components of the application work as intended by detecting errors at an early stage, thus making the debugging process easier and boosting assurance for upcoming modifications. An unchanging testing method helps new team members grasp project norms and anticipated actions.
-In addition to the [pre-commit](https://pre-commit.com/) hooks that are set up during the [development environment section](#dev-env), Scribe-iOS includes a testing suite that should be ran before all pull requests and subsequent commits.
+In addition to the [prek](https://prek.j178.dev/) pre-commit hooks that are set up during the [development environment section](#development-environment), Scribe-iOS includes a testing suite that should be ran before all pull requests and subsequent commits.
Please run the following in the project root:
@@ -218,9 +234,9 @@ python3 Tests/process_coverage_report.py code_coverage.json
> [!NOTE]
> See [Tests/process_coverage_report.py](./Tests/process_coverage_report.py) for details.
-
+Back to top.
-# Issues and projects [`⇧`](#contents)
+## Issues and projects
The [issue tracker for Scribe-iOS](https://github.com/scribe-org/Scribe-iOS/issues) is the preferred channel for [bug reports](#bug-reports), [features requests](#feature-requests) and [submitting pull requests](#pull-requests). Scribe also organizes related issues into [projects](https://github.com/scribe-org/Scribe-iOS/projects).
@@ -229,9 +245,9 @@ The [issue tracker for Scribe-iOS](https://github.com/scribe-org/Scribe-iOS/issu
Be sure to check the [`-next release-`](https://github.com/scribe-org/Scribe-iOS/labels/-next%20release-) and [`-priority-`](https://github.com/scribe-org/Scribe-iOS/labels/-priority-) labels in the [issues](https://github.com/scribe-org/Scribe-iOS/issues) for those that are most important, as well as those marked [`good first issue`](https://github.com/scribe-org/Scribe-iOS/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) that are tailored for first-time contributors.
-
+Back to top.
-# Bug reports [`⇧`](#contents)
+## Bug reports
A bug is a _demonstrable problem_ that is caused by the code in the repository. Good bug reports are extremely helpful - thank you!
@@ -255,15 +271,15 @@ To make the above steps easier, the Scribe team asks that contributors report bu
Again, thank you for your time in reporting issues!
-
+Back to top.
-# Feature requests [`⇧`](#contents)
+## Feature requests
Feature requests are more than welcome! Please take a moment to find out whether your idea fits with the scope and aims of the project. When making a suggestion, provide as much detail and context as possible, and further make clear the degree to which you would like to contribute in its development. Feature requests are marked with the [`Feature`](https://github.com/scribe-org/Scribe-iOS/issues?q=is%3Aissue%20state%3Aopen%20type%3AFeature) type, and can be made using the [feature request](https://github.com/scribe-org/Scribe-iOS/issues/new?assignees=&labels=feature&template=feature_request.yml) template.
-
+Back to top.
-# Pull requests [`⇧`](#contents)
+## Pull requests
Good pull requests - patches, improvements and new features - are the foundation of our community making Scribe-iOS. They should remain focused in scope and avoid containing unrelated commits. Note that all contributions to this project will be made under [the specified license](https://github.com/scribe-org/Scribe-iOS/blob/main/LICENSE.txt) and should follow the coding indentation and style standards ([contact us](https://matrix.to/#/#scribe_community:matrix.org) if unsure).
@@ -308,18 +324,18 @@ When making a contribution, adhering to the [GitHub flow](https://guides.github.
Thank you in advance for your contributions!
-
+Back to top.
-# Data edits [`⇧`](#contents)
+## Data edits
> [!NOTE]\
> Please see the [Wikidata and Scribe Guide](https://github.com/scribe-org/Organization/blob/main/WIKIDATAGUIDE.md) for an overview of [Wikidata](https://www.wikidata.org/) and how Scribe uses it.
Scribe does not accept direct edits to the grammar files as they are sourced from [Wikidata](https://www.wikidata.org/). Edits can be discussed and the [Scribe-Data](https://github.com/scribe-org/Scribe-Data) queries will be changed. If there is a problem with one of the files, then the fix should be made on [Wikidata](https://www.wikidata.org/) and not on Scribe. Feel free to let us know that edits have been made by [opening a data issue](https://github.com/scribe-org/Conjugate-iOS/issues/new?assignees=&labels=data&template=data_wikidata.yml) or contacting us in the [issues for Scribe-Data](https://github.com/scribe-org/Scribe-Data/issues) and we'll be happy to integrate them!
-
+Back to top.
-# Localization [`⇧`](#contents)
+## Localization
@@ -335,15 +351,15 @@ Please run the [update_i18n_keys.sh](https://github.com/scribe-org/Scribe-iOS/bl
-
+Back to top.
-# Documentation [`⇧`](#contents)
+## Documentation
Documentation is an invaluable way to contribute to coding projects as it allows others to more easily understand the project structure and contribute. Issues related to documentation are marked with the [`documentation`](https://github.com/scribe-org/Scribe-iOS/labels/documentation) label.
-
+Back to top.
-# Design [`⇧`](#contents)
+## Design
@@ -352,3 +368,5 @@ Documentation is an invaluable way to contribute to coding projects as it allows
Designs for Scribe are done in the [public design file in Figma](https://www.figma.com/file/c8945w2iyoPYVhsqW7vRn6/scribe_public_designs?node-id=405%3A464). Those interested in helping with Scribe's design are also welcome to share their ideas using the [design improvement](https://github.com/scribe-org/Scribe-iOS/issues/new?assignees=&labels=design&template=design_improvement.yml) template that makes an issue marked with the [`design`](https://github.com/scribe-org/Scribe-iOS/issues?q=is%3Aopen+is%3Aissue+label%3Adesign) label.
All branding elements such as logos, icons, colors and fonts should follow those that are set out in [scribe-org/Organization](https://github.com/scribe-org/Organization). As the project is fully open source, these elements are also open for discussion. Efforts in making Scribe products professional with a distinct and cohesive identity are much appreciated!
+
+Back to top.
diff --git a/Keyboards/KeyboardsBase/DynamicConjugationViewController.swift b/Keyboards/KeyboardsBase/DynamicConjugationViewController.swift
index d801f9b6..a3f7cf66 100644
--- a/Keyboards/KeyboardsBase/DynamicConjugationViewController.swift
+++ b/Keyboards/KeyboardsBase/DynamicConjugationViewController.swift
@@ -6,12 +6,14 @@
import UIKit
class DynamicConjugationViewController: UIViewController {
+ var isInfoState: Bool = false
// MARK: UI Components
private var leftArrowButton: UIButton!
private var rightArrowButton: UIButton!
private var buttonContainerView: UIView!
+ private var pageControl: UIPageControl?
// MARK: Navigation Data
@@ -55,6 +57,7 @@ class DynamicConjugationViewController: UIViewController {
super.viewDidLoad()
view.backgroundColor = keyboardBgColor
setupUI()
+ setupPageControl()
}
override func viewDidLayoutSubviews() {
@@ -118,6 +121,26 @@ class DynamicConjugationViewController: UIViewController {
])
}
+ /// Builds page control for linear navigation mode.
+ private func setupPageControl() {
+ guard isInfoState, let cases = linearCases else { return }
+
+ let pc = UIPageControl()
+ pc.numberOfPages = cases.count
+ pc.currentPage = currentCaseIndex
+ pc.pageIndicatorTintColor = keyCharColor.withAlphaComponent(0.3)
+ pc.currentPageIndicatorTintColor = keyCharColor
+ pc.translatesAutoresizingMaskIntoConstraints = false
+ view.addSubview(pc)
+
+ NSLayoutConstraint.activate([
+ pc.centerXAnchor.constraint(equalTo: view.centerXAnchor),
+ pc.bottomAnchor.constraint(equalTo: view.bottomAnchor, constant: -12)
+ ])
+
+ self.pageControl = pc
+ }
+
// MARK: Display
/// Displays the current navigation level.
@@ -133,10 +156,7 @@ class DynamicConjugationViewController: UIViewController {
commandBar?.isShowingInfoButton = false
let options = currentLevel.options
- guard !options.isEmpty else {
- commandBar?.text = commandPromptSpacing + "No options available"
- return
- }
+ guard !options.isEmpty else { return }
// Create button grid.
let count = options.count
@@ -182,6 +202,9 @@ class DynamicConjugationViewController: UIViewController {
button.layer.shadowRadius = 0
button.tag = index
button.addTarget(self, action: #selector(optionButtonTapped(_:)), for: .touchUpInside)
+ if isInfoState {
+ button.contentEdgeInsets = UIEdgeInsets(top: 8, left: 12, bottom: 8, right: 12)
+ }
// Determine the display value.
let displayValue: String?
@@ -233,7 +256,7 @@ class DynamicConjugationViewController: UIViewController {
case .finalValue(let value):
// Skip empty values.
- guard !value.isEmpty else { return }
+ guard !value.isEmpty, !isInfoState else { return }
// Insert text and close.
proxy.insertText(value + " ")
@@ -262,6 +285,8 @@ class DynamicConjugationViewController: UIViewController {
displayCurrentLevel()
}
}
+
+ pageControl?.currentPage = currentCaseIndex
}
/// Handles right arrow button tap.
@@ -279,6 +304,8 @@ class DynamicConjugationViewController: UIViewController {
}
}
// Tree mode: right arrow does nothing.
+
+ pageControl?.currentPage = currentCaseIndex
}
/// Updates the enabled state of arrow buttons.
diff --git a/Keyboards/KeyboardsBase/InterfaceVariables.swift b/Keyboards/KeyboardsBase/InterfaceVariables.swift
index a5a509f3..0d68c76a 100644
--- a/Keyboards/KeyboardsBase/InterfaceVariables.swift
+++ b/Keyboards/KeyboardsBase/InterfaceVariables.swift
@@ -114,6 +114,7 @@ enum ConjViewShiftButtonsState {
var keyboardState: KeyboardState = .letters
var shiftButtonState: ShiftButtonState = .normal
var commandState: CommandState = .idle
+var prevToInvalidState: CommandState = .idle
var autoActionState: AutoActionState = .suggest
var conjViewShiftButtonsState: ConjViewShiftButtonsState = .bothInactive
var pluralWords: Set?
diff --git a/Keyboards/KeyboardsBase/Keyboard.xib b/Keyboards/KeyboardsBase/Keyboard.xib
index 29c5703d..05d32246 100644
--- a/Keyboards/KeyboardsBase/Keyboard.xib
+++ b/Keyboards/KeyboardsBase/Keyboard.xib
@@ -1,9 +1,9 @@
-
+
-
+
@@ -15,38 +15,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -60,8 +28,6 @@
-
-
@@ -75,241 +41,37 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
+
-
+
-
+
-
+
diff --git a/Keyboards/KeyboardsBase/KeyboardViewController.swift b/Keyboards/KeyboardsBase/KeyboardViewController.swift
index c8af135c..a1a13c86 100644
--- a/Keyboards/KeyboardsBase/KeyboardViewController.swift
+++ b/Keyboards/KeyboardsBase/KeyboardViewController.swift
@@ -16,8 +16,6 @@ class KeyboardViewController: UIInputViewController {
@IBOutlet var stackView2: UIStackView!
@IBOutlet var stackView3: UIStackView!
- private var tipView: ToolTipView?
-
/// Changes the height of `stackViewNum` depending on device type and size.
func conditionallyShowTopNumbersRow() {
if DeviceType.isPhone {
@@ -94,7 +92,7 @@ class KeyboardViewController: UIInputViewController {
commandBar.infoButtonTapHandler = { [weak self] in
commandState = .displayInformation
conjViewShiftButtonsState = .leftInactive
- self?.loadKeys()
+ self?.setInformationState()
}
}
@@ -283,95 +281,47 @@ class KeyboardViewController: UIInputViewController {
pluralKey.isHidden = state
}
- // Logic to create notification tooltip.
- func createInformationStateDatasource(text: NSMutableAttributedString, backgroundColor: UIColor) -> ToolTipViewDatasource {
- let theme = ToolTipViewTheme(backgroundColor: backgroundColor, textFont: nil, textColor: keyCharColor, textAlignment: .center, cornerRadius: 10, masksToBounds: true)
-
- return ToolTipViewDatasource(content: text, theme: theme)
- }
-
/// Sets the tooltip to display information to the user.
func setInformationState() {
- formKeySingle?.isHidden = false
- formKeySingle?.alpha = 1.0
-
- setFormDisplay1x1View()
- let contentData = InformationToolTipData.getContent()
- let datasources = contentData.compactMap { text in
- createInformationStateDatasource(text: text, backgroundColor: keyColor)
- }
- tipView = ToolTipView(datasources: datasources)
-
- bindTooltipview()
-
- guard let tipView = tipView else { return }
- tipView.translatesAutoresizingMaskIntoConstraints = false
- formKeySingle.addSubview(tipView)
- formKeySingle.isUserInteractionEnabled = false
- tipView.leadingAnchor.constraint(
- equalTo: formKeySingle.leadingAnchor
- ).isActive = true
- tipView.trailingAnchor.constraint(
- equalTo: formKeySingle.trailingAnchor
- ).isActive = true
- tipView.topAnchor.constraint(equalTo: formKeySingle.topAnchor).isActive = true
- tipView.bottomAnchor.constraint(equalTo: formKeySingle.bottomAnchor).isActive = true
- styleBtn(btn: formKeySingle, title: "", radius: keyCornerRadius)
-
- shiftFormsDisplayLeft?.isHidden = false
- shiftFormsDisplayRight?.isHidden = false
-
- setBtn(btn: shiftFormsDisplayLeft, color: keyColor, name: "shiftFormsDisplayLeft", canBeCapitalized: false, isSpecial: false)
- setBtn(btn: shiftFormsDisplayRight, color: keyColor, name: "shiftFormsDisplayRight", canBeCapitalized: false, isSpecial: false)
-
- activateBtn(btn: shiftFormsDisplayLeft)
- activateBtn(btn: shiftFormsDisplayRight)
-
- styleBtn(btn: shiftFormsDisplayLeft, title: "", radius: keyCornerRadius)
- styleBtn(btn: shiftFormsDisplayRight, title: "", radius: keyCornerRadius)
-
- styleIconBtn(btn: shiftFormsDisplayLeft, color: commandBarPlaceholderColor, iconName: "chevron.left")
- styleIconBtn(btn: shiftFormsDisplayRight, color: keyCharColor, iconName: "chevron.right")
- }
+ children.forEach { child in
+ if child is DynamicConjugationViewController {
+ child.removeFromParent()
+ child.view.removeFromSuperview()
+ }
+ }
- // Shifts the view of the information tooltip view.
- private func bindTooltipview() {
- tipView?.didUpdatePage = { [weak self] currentState in
- conjViewShiftButtonsState = currentState
-
- guard let weakSelf = self else { return }
-
- switch currentState {
- case .rightInactive:
- weakSelf.shiftFormsDisplayRight.isUserInteractionEnabled = false
- case .leftInactive:
- weakSelf.shiftFormsDisplayLeft.isUserInteractionEnabled = false
- case .bothActive:
- weakSelf.activateBtn(btn: weakSelf.shiftFormsDisplayLeft)
- weakSelf.activateBtn(btn: weakSelf.shiftFormsDisplayRight)
- default:
- break
- }
+ deactivateBtn(btn: translateKey)
+ deactivateBtn(btn: conjugateKey)
+ deactivateBtn(btn: pluralKey)
+ hideAutoActionPartitions()
- weakSelf.styleShiftButtons()
- }
- }
+ scribeKey.toEscape()
+ scribeKey.setPartialCornerRadius()
+ scribeKey.setPartialShadow()
+
+ commandBar.set()
+ commandBar.setCornerRadiusAndShadow()
+ commandBar.backgroundColor = commandBarColor
- /// Styles the shift buttons for the displayInformation states.
- private func styleShiftButtons() {
- styleBtn(btn: shiftFormsDisplayLeft, title: "", radius: keyCornerRadius)
- styleIconBtn(
- btn: shiftFormsDisplayLeft,
- color: ![.bothInactive, .leftInactive].contains(conjViewShiftButtonsState) ? keyCharColor : commandBarPlaceholderColor,
- iconName: "chevron.left"
+ let cases = NavigationBuilder.buildInformationCases(isTranslate: prevToInvalidState == .translate)
+
+ let infoVC = DynamicConjugationViewController(
+ linearCases: cases,
+ commandBar: commandBar,
+ startingIndex: 0
)
- styleBtn(btn: shiftFormsDisplayRight, title: "", radius: keyCornerRadius)
- styleIconBtn(
- btn: shiftFormsDisplayRight,
- color: ![.bothInactive, .rightInactive].contains(conjViewShiftButtonsState) ? keyCharColor : commandBarPlaceholderColor,
- iconName: "chevron.right"
+
+ infoVC.isInfoState = true
+ addChild(infoVC)
+ infoVC.view.frame = CGRect(
+ x: 0,
+ y: commandBar.frame.maxY,
+ width: view.bounds.width,
+ height: view.bounds.height - commandBar.frame.maxY
)
- }
+ view.addSubview(infoVC.view)
+ infoVC.didMove(toParent: self)
+ }
/// Generate emoji suggestions or completions for a given word.
///
@@ -999,97 +949,6 @@ class KeyboardViewController: UIInputViewController {
}
}
- // MARK: Conjugation Variables and Functions
-
- // Note that we use "form" to describe both conjugations and declensions.
- @IBOutlet var shiftFormsDisplayLeft: UIButton!
- @IBOutlet var shiftFormsDisplayRight: UIButton!
-
- @IBOutlet var formKeyFPS: UIButton!
- @IBOutlet var formKeySPS: UIButton!
- @IBOutlet var formKeyTPS: UIButton!
- @IBOutlet var formKeyFPP: UIButton!
- @IBOutlet var formKeySPP: UIButton!
- @IBOutlet var formKeyTPP: UIButton!
-
- // Labels for the conjugation view buttons.
- // Note that we're using buttons as labels weren't allowing for certain constraints to be set.
- @IBOutlet var formLblFPS: UIButton!
- @IBOutlet var formLblSPS: UIButton!
- @IBOutlet var formLblTPS: UIButton!
- @IBOutlet var formLblFPP: UIButton!
- @IBOutlet var formLblSPP: UIButton!
- @IBOutlet var formLblTPP: UIButton!
-
- @IBOutlet var formKeyTop: UIButton!
- @IBOutlet var formKeyMiddle: UIButton!
- @IBOutlet var formKeyBottom: UIButton!
-
- @IBOutlet var formLblTop: UIButton!
- @IBOutlet var formLblMiddle: UIButton!
- @IBOutlet var formLblBottom: UIButton!
- @IBOutlet var formKeyTL: UIButton!
- @IBOutlet var formKeyTR: UIButton!
- @IBOutlet var formKeyBL: UIButton!
- @IBOutlet var formKeyBR: UIButton!
-
- @IBOutlet var formLblTL: UIButton!
- @IBOutlet var formLblTR: UIButton!
- @IBOutlet var formLblBL: UIButton!
- @IBOutlet var formLblBR: UIButton!
-
- @IBOutlet var formKeyLeft: UIButton!
- @IBOutlet var formKeyRight: UIButton!
-
- @IBOutlet var formLblLeft: UIButton!
- @IBOutlet var formLblRight: UIButton!
-
- @IBOutlet var formKeySingle: UIButton!
-
- /// Returns all buttons for the 1x1 conjugation display
- func get1x1FormDisplayButtons() -> [UIButton] {
- let conjugationButtons: [UIButton] = [
- formKeySingle
- ]
-
- return conjugationButtons
- }
-
- @IBOutlet var formLblSingle: UIButton!
-
- /// Returns all labels for the 1x1 conjugation display.
- func get1x1FormDisplayLabels() -> [UIButton] {
- let conjugationLabels: [UIButton] = [
- formLblSingle
- ]
-
- return conjugationLabels
- }
-
- /// Sets up all buttons and labels that are associated with the 1x1 conjugation display.
- func setFormDisplay1x1View() {
- let conjugationNames: [String] = [
- "formSingle"
- ]
-
- let displayBtns = get1x1FormDisplayButtons()
-
- for (idx, btn) in displayBtns.enumerated() {
- setBtn(btn: btn, color: keyColor, name: conjugationNames[idx], canBeCapitalized: false, isSpecial: false)
- activateBtn(btn: btn)
- }
-
- if DeviceType.isPad {
- var conjugationFontDivisor = 3.5
- if isLandscapeView {
- conjugationFontDivisor = 4
- }
- for btn in get1x1FormDisplayButtons() {
- btn.titleLabel?.font = .systemFont(ofSize: letterKeyWidth / conjugationFontDivisor)
- }
- }
- }
-
/// Displays an annotation instead of the translate auto action button given the word that was just typed or selected.
func conditionallyDisplayAnnotation() {
if [.idle, .alreadyPlural, .invalid].contains(commandState) {
@@ -1097,18 +956,6 @@ class KeyboardViewController: UIInputViewController {
}
}
- @objc func shiftLeft() {
- if commandState == .displayInformation {
- tipView?.updatePrevious()
- }
- }
-
- @objc func shiftRight() {
- if commandState == .displayInformation {
- tipView?.updateNext()
- }
- }
-
// MARK: Key Sizing
func setKeywidth() {
@@ -1420,9 +1267,9 @@ class KeyboardViewController: UIInputViewController {
/// Loads the keys given the current constraints.
func loadKeys() {
// Early returns for dynamic views
- if commandState == .dynamicConjugation || commandState == .selectCaseDeclension {
- return
- }
+ if [.dynamicConjugation, .selectCaseDeclension, .displayInformation].contains(commandState) {
+ return
+}
// The name of the language keyboard that's referencing KeyboardViewController.
controllerLanguage = classForCoder.description().components(separatedBy: ".KeyboardViewController")[0]
if let userDefaults = UserDefaults(suiteName: "group.be.scri.userDefaultsContainer") {
@@ -1533,71 +1380,6 @@ class KeyboardViewController: UIInputViewController {
}
}
- // Always hide old form buttons first.
- formKeyFPS?.isHidden = true
- formKeySPS?.isHidden = true
- formKeyTPS?.isHidden = true
- formKeyFPP?.isHidden = true
- formKeySPP?.isHidden = true
- formKeyTPP?.isHidden = true
- formKeyTop?.isHidden = true
- formKeyMiddle?.isHidden = true
- formKeyBottom?.isHidden = true
- formKeyTL?.isHidden = true
- formKeyTR?.isHidden = true
- formKeyBL?.isHidden = true
- formKeyBR?.isHidden = true
- formKeyLeft?.isHidden = true
- formKeyRight?.isHidden = true
- formKeySingle?.isHidden = true
- formLblFPS?.isHidden = true
- formLblSPS?.isHidden = true
- formLblTPS?.isHidden = true
- formLblFPP?.isHidden = true
- formLblSPP?.isHidden = true
- formLblTPP?.isHidden = true
- formLblTop?.isHidden = true
- formLblMiddle?.isHidden = true
- formLblBottom?.isHidden = true
- formLblTL?.isHidden = true
- formLblTR?.isHidden = true
- formLblBL?.isHidden = true
- formLblBR?.isHidden = true
- formLblLeft?.isHidden = true
- formLblRight?.isHidden = true
- formLblSingle?.isHidden = true
- shiftFormsDisplayLeft?.isHidden = true
- shiftFormsDisplayRight?.isHidden = true
-
- // Handle displayInformation separately.
- if commandState == .displayInformation {
- for view in [stackViewNum, stackView0, stackView1, stackView2, stackView3] {
- view?.isUserInteractionEnabled = false
- }
-
- scribeKey.toEscape()
- scribeKey.setPartialShadow()
- scribeKey.setPartialCornerRadius()
-
- commandBar.backgroundColor = commandBarColor
- commandBar.textColor = keyCharColor
- commandBar.set()
- commandBar.setCornerRadiusAndShadow()
- hideAutoActionPartitions()
-
- deactivateBtn(btn: conjugateKey)
- deactivateBtn(btn: translateKey)
- deactivateBtn(btn: pluralKey)
- deactivateBtn(btn: phoneEmojiKey0)
- deactivateBtn(btn: phoneEmojiKey1)
- deactivateBtn(btn: padEmojiKey0)
- deactivateBtn(btn: padEmojiKey1)
- deactivateBtn(btn: padEmojiKey2)
-
- setInformationState()
- return // return to skip normal keyboard setup
- }
-
// Normal keyboard view.
for view in [stackViewNum, stackView0, stackView1, stackView2, stackView3] {
view?.isUserInteractionEnabled = true
@@ -1789,10 +1571,11 @@ class KeyboardViewController: UIInputViewController {
.conjugate,
.selectCaseDeclension,
.plural,
- .dynamicConjugation].contains(commandState) { // escape
+ .dynamicConjugation,
+ .displayInformation].contains(commandState) { // escape
// If closing dynamic conjugation, remove the view.
- if commandState == .dynamicConjugation || commandState == .selectCaseDeclension {
+ if [.dynamicConjugation, .selectCaseDeclension, .displayInformation].contains(commandState) {
children.forEach { child in
if child is DynamicConjugationViewController {
child.removeFromParent()
@@ -1822,8 +1605,10 @@ class KeyboardViewController: UIInputViewController {
conditionallySetAutoActionBtns()
loadKeys()
} else if commandState == .translate {
+ prevToInvalidState = .translate
queryTranslation(commandBar: commandBar)
} else if commandState == .conjugate {
+ prevToInvalidState = .conjugate
let conjugationTblTriggered = triggerVerbConjugation(commandBar: commandBar)
if conjugationTblTriggered {
commandState = .dynamicConjugation
@@ -1833,6 +1618,7 @@ class KeyboardViewController: UIInputViewController {
commandState = .invalid
}
} else if commandState == .plural {
+ prevToInvalidState = .plural
queryPlural(commandBar: commandBar)
}
@@ -1841,7 +1627,8 @@ class KeyboardViewController: UIInputViewController {
autoCapAtStartOfProxy()
if commandState == .invalid {
- commandBar.text = commandPromptSpacing + invalidCommandMsg
+ let invalidMsg = prevToInvalidState == .translate ? invalidTranslationMsg : invalidCommandMsg
+ commandBar.text = commandPromptSpacing + invalidMsg
commandBar.isShowingInfoButton = true
} else {
commandBar.isShowingInfoButton = false
@@ -1862,13 +1649,14 @@ class KeyboardViewController: UIInputViewController {
case "Translate":
if let selectedText = proxy.selectedText {
commandState = .translate
+ prevToInvalidState = .translate
queryWordToTranslate(queriedWordToTranslate: selectedText)
if commandState == .invalid { // invalid state
loadKeys()
proxy.insertText(selectedText)
autoCapAtStartOfProxy()
- commandBar.text = commandPromptSpacing + invalidCommandMsg
+ commandBar.text = commandPromptSpacing + invalidTranslationMsg
commandBar.isShowingInfoButton = true
commandBar.textColor = keyCharColor
return
@@ -1898,6 +1686,7 @@ class KeyboardViewController: UIInputViewController {
showDynamicConjugationView(verb: verbToConjugate)
return
} else {
+ prevToInvalidState = .conjugate
commandState = .invalid
loadKeys()
proxy.insertText(selectedText)
@@ -1917,6 +1706,7 @@ class KeyboardViewController: UIInputViewController {
case "Plural":
if let selectedText = proxy.selectedText {
+ prevToInvalidState = .plural
queryPluralNoun(queriedNoun: selectedText)
if [.invalid, .alreadyPlural].contains(commandState) {
@@ -1955,12 +1745,6 @@ class KeyboardViewController: UIInputViewController {
commandBar.attributedText = pluralPromptAndColorPlaceholder
}
- case "shiftFormsDisplayLeft":
- shiftLeft()
-
- case "shiftFormsDisplayRight":
- shiftRight()
-
case "AutoAction0":
executeAutoAction(keyPressed: translateKey)
@@ -2262,12 +2046,6 @@ class KeyboardViewController: UIInputViewController {
viewWithTag?.removeFromSuperview()
alternatesShapeLayer.removeFromSuperlayer()
}
-
- // Remove tipview if it's present.
- if commandState != .displayInformation && formsDisplayDimensions != .view1x1, tipView != nil {
- tipView?.removeFromSuperview()
- tipView = nil
- }
}
// MARK: Key Press Functions
diff --git a/Keyboards/KeyboardsBase/NavigationStructure.swift b/Keyboards/KeyboardsBase/NavigationStructure.swift
index 047fea4b..014cf6d3 100644
--- a/Keyboards/KeyboardsBase/NavigationStructure.swift
+++ b/Keyboards/KeyboardsBase/NavigationStructure.swift
@@ -110,4 +110,16 @@ struct NavigationBuilder {
}
return 0
}
+
+ /// Builds information navigation levels for tooltips.
+ static func buildInformationCases(isTranslate: Bool = false) -> [NavigationLevel] {
+ let content = isTranslate ? InformationToolTipData.getWiktionaryContent() : InformationToolTipData.getContent()
+
+ return content.map { attributedText in
+ NavigationLevel(
+ title: isTranslate ? invalidTranslationMsg : invalidCommandMsg,
+ options: [(label: "", node: .finalValue(attributedText.string))]
+ )
+ }
+}
}
diff --git a/Keyboards/KeyboardsBase/ScribeFunctionality/CommandVariables.swift b/Keyboards/KeyboardsBase/ScribeFunctionality/CommandVariables.swift
index 7ae6d22d..64a60313 100644
--- a/Keyboards/KeyboardsBase/ScribeFunctionality/CommandVariables.swift
+++ b/Keyboards/KeyboardsBase/ScribeFunctionality/CommandVariables.swift
@@ -50,6 +50,14 @@ var inputWordIsCapitalized = false
var wordToReturn = ""
var potentialWordsToReturn = [String]()
var invalidCommandMsg = ""
+var invalidWikidataMsg_1 = ""
+var invalidWikidataMsg_2 = ""
+var invalidWikidataMsg_3 = ""
+
+var invalidTranslationMsg = ""
+var invalidWiktionaryMsg_1 = ""
+var invalidWiktionaryMsg_2 = ""
+var invalidWiktionaryMsg_3 = ""
// Annotation variables.
var annotationState = false
diff --git a/Keyboards/KeyboardsBase/ToolTip/Model/InformationToolTipData.swift b/Keyboards/KeyboardsBase/ToolTip/Model/InformationToolTipData.swift
index 13454709..396dda56 100644
--- a/Keyboards/KeyboardsBase/ToolTip/Model/InformationToolTipData.swift
+++ b/Keyboards/KeyboardsBase/ToolTip/Model/InformationToolTipData.swift
@@ -9,9 +9,7 @@ import UIKit
enum InformationToolTipData {
static let wikiDataExplanation = NSMutableAttributedString(
- string: NSLocalizedString("i18n.app.keyboard.not_in_wikidata.explanation_1",
- value: "Wikidata is a collaboratively edited knowledge graph that's maintained by the Wikimedia Foundation. It serves as a source of open data for projects like Wikipedia and countless others.",
- comment: ""),
+ string: invalidWikidataMsg_1,
attributes: [
NSAttributedString.Key.font: UIFont.systemFont(
ofSize: DeviceType.isPhone ? letterKeyWidth / 2 : letterKeyWidth / 2.5
@@ -20,9 +18,7 @@ enum InformationToolTipData {
)
static let wikiDataContationOrigin = NSMutableAttributedString(
- string: NSLocalizedString("i18n.app.keyboard.not_in_wikidata.explanation_2",
- value: "Scribe uses Wikidata's language data for many of its core features. We get information like noun genders, verb conjugations and much more!",
- comment: ""),
+ string: invalidWikidataMsg_2,
attributes: [
NSAttributedString.Key.font: UIFont.systemFont(
ofSize: DeviceType.isPhone ? letterKeyWidth / 2 : letterKeyWidth / 2.5
@@ -31,9 +27,7 @@ enum InformationToolTipData {
)
static let howToContribute = NSMutableAttributedString(
- string: NSLocalizedString("i18n.app.keyboard.not_in_wikidata.explanation_3",
- value: "You can make an account at wikidata.org to join the community that's supporting Scribe and so many other projects. Help us bring free information to the world!",
- comment: ""),
+ string: invalidWikidataMsg_3,
attributes: [
NSAttributedString.Key.font: UIFont.systemFont(
ofSize: DeviceType.isPhone ? letterKeyWidth / 2 : letterKeyWidth / 2.75
@@ -41,11 +35,38 @@ enum InformationToolTipData {
]
)
- static func getContent() -> [NSMutableAttributedString] {
- [
- InformationToolTipData.wikiDataExplanation,
- InformationToolTipData.wikiDataContationOrigin,
- InformationToolTipData.howToContribute
+ static let wiktionaryExplanation = NSMutableAttributedString(
+ string: invalidWiktionaryMsg_1,
+ attributes: [
+ NSAttributedString.Key.font: UIFont.systemFont(
+ ofSize: DeviceType.isPhone ? letterKeyWidth / 2 : letterKeyWidth / 2.5
+ )
]
+ )
+
+ static let wiktionaryTranslationOrigin = NSMutableAttributedString(
+ string: invalidWiktionaryMsg_2,
+ attributes: [
+ NSAttributedString.Key.font: UIFont.systemFont(
+ ofSize: DeviceType.isPhone ? letterKeyWidth / 2 : letterKeyWidth / 2.5
+ )
+ ]
+ )
+
+ static let howToContributeWiktionary = NSMutableAttributedString(
+ string: invalidWiktionaryMsg_3,
+ attributes: [
+ NSAttributedString.Key.font: UIFont.systemFont(
+ ofSize: DeviceType.isPhone ? letterKeyWidth / 2 : letterKeyWidth / 2.75
+ )
+ ]
+ )
+
+ static func getContent() -> [NSMutableAttributedString] {
+ [wikiDataExplanation, wikiDataContationOrigin, howToContribute]
+ }
+
+ static func getWiktionaryContent() -> [NSMutableAttributedString] {
+ [wiktionaryExplanation, wiktionaryTranslationOrigin, howToContributeWiktionary]
}
}
diff --git a/Keyboards/KeyboardsBase/ToolTip/Model/ToolTipViewDatasource.swift b/Keyboards/KeyboardsBase/ToolTip/Model/ToolTipViewDatasource.swift
deleted file mode 100644
index d3ebf0b9..00000000
--- a/Keyboards/KeyboardsBase/ToolTip/Model/ToolTipViewDatasource.swift
+++ /dev/null
@@ -1,23 +0,0 @@
-// SPDX-License-Identifier: GPL-3.0-or-later
-
-/**
- * Creates tooltips to be used in the ToolTipView.
- */
-
-import Foundation
-
-struct ToolTipViewDatasource: ToolTipViewDatasourceable {
- var theme: ViewThemeable
- private var content: NSMutableAttributedString
-
- // MARK: Init
-
- init(content: NSMutableAttributedString, theme: ViewThemeable) {
- self.content = content
- self.theme = theme
- }
-
- func getCurrentText() -> NSMutableAttributedString {
- content
- }
-}
diff --git a/Keyboards/KeyboardsBase/ToolTip/Model/ToolTipViewTheme.swift b/Keyboards/KeyboardsBase/ToolTip/Model/ToolTipViewTheme.swift
deleted file mode 100644
index 2ba220d9..00000000
--- a/Keyboards/KeyboardsBase/ToolTip/Model/ToolTipViewTheme.swift
+++ /dev/null
@@ -1,17 +0,0 @@
-// SPDX-License-Identifier: GPL-3.0-or-later
-
-/**
- * Attributes for tooltips.
- */
-
-import UIKit
-
-struct ToolTipViewTheme: ViewThemeable {
- var backgroundColor: UIColor
- var textFont: UIFont?
- var textColor: UIColor?
- var textAlignment: NSTextAlignment?
- var cornerRadius: CGFloat?
- var masksToBounds: Bool?
- var maskedCorners: CACornerMask?
-}
diff --git a/Keyboards/KeyboardsBase/ToolTip/Protocol/ToolTipViewDatasourceable.swift b/Keyboards/KeyboardsBase/ToolTip/Protocol/ToolTipViewDatasourceable.swift
deleted file mode 100644
index ac2fa2ac..00000000
--- a/Keyboards/KeyboardsBase/ToolTip/Protocol/ToolTipViewDatasourceable.swift
+++ /dev/null
@@ -1,13 +0,0 @@
-// SPDX-License-Identifier: GPL-3.0-or-later
-
-/**
- * Controls the ToolTipViewDatasourceable protocol.
- */
-
-import Foundation
-
-protocol ToolTipViewDatasourceable {
- var theme: ViewThemeable { get set }
-
- func getCurrentText() -> NSMutableAttributedString
-}
diff --git a/Keyboards/KeyboardsBase/ToolTip/Protocol/ToolTipViewUpdatable.swift b/Keyboards/KeyboardsBase/ToolTip/Protocol/ToolTipViewUpdatable.swift
deleted file mode 100644
index 0354386f..00000000
--- a/Keyboards/KeyboardsBase/ToolTip/Protocol/ToolTipViewUpdatable.swift
+++ /dev/null
@@ -1,15 +0,0 @@
-// SPDX-License-Identifier: GPL-3.0-or-later
-
-/**
- * Controls the ToolTipViewUpdatable protocol.
- */
-
-import Foundation
-
-protocol ToolTipViewUpdatable {
- var didUpdatePage: ((ConjViewShiftButtonsState) -> Void)? { get set }
-
- func updateNext()
- func updatePrevious()
- func updateText(index: Int)
-}
diff --git a/Keyboards/KeyboardsBase/ToolTip/Protocol/ViewThemeable.swift b/Keyboards/KeyboardsBase/ToolTip/Protocol/ViewThemeable.swift
deleted file mode 100644
index c7c88cc4..00000000
--- a/Keyboards/KeyboardsBase/ToolTip/Protocol/ViewThemeable.swift
+++ /dev/null
@@ -1,17 +0,0 @@
-// SPDX-License-Identifier: GPL-3.0-or-later
-
-/**
- * Controls the ViewThemeable protocol.
- */
-
-import UIKit
-
-protocol ViewThemeable {
- var backgroundColor: UIColor { get set }
- var textFont: UIFont? { get set }
- var textColor: UIColor? { get set }
- var textAlignment: NSTextAlignment? { get set }
- var cornerRadius: CGFloat? { get set }
- var masksToBounds: Bool? { get set }
- var maskedCorners: CACornerMask? { get set }
-}
diff --git a/Keyboards/KeyboardsBase/ToolTip/ToolTipView.swift b/Keyboards/KeyboardsBase/ToolTip/ToolTipView.swift
deleted file mode 100644
index b85f0d36..00000000
--- a/Keyboards/KeyboardsBase/ToolTip/ToolTipView.swift
+++ /dev/null
@@ -1,157 +0,0 @@
-// SPDX-License-Identifier: GPL-3.0-or-later
-
-/**
- * Shows the user an information view.
- */
-
-import UIKit
-
-final class ToolTipView: UIView, ToolTipViewUpdatable {
- var didUpdatePage: ((ConjViewShiftButtonsState) -> Void)?
-
- // MARK: Private propeties
-
- private var currentIndex: Int = 0 {
- didSet {
- if currentIndex == datasources.count - 1 {
- didUpdatePage?(.rightInactive)
- } else if currentIndex == 0 {
- didUpdatePage?(.leftInactive)
- } else {
- didUpdatePage?(.bothActive)
- }
- }
- }
-
- private var datasources: [ToolTipViewDatasourceable]
-
- // MARK: Private UI
-
- private(set) lazy var contentLabel: UILabel = {
- let tempLabel = UILabel()
- let datasource = getCurrentDatasource()
-
- if let textColor = datasource.theme.textColor {
- tempLabel.textColor = textColor
- }
-
- if let font = datasource.theme.textFont {
- tempLabel.font = font
- }
-
- if let textAlignment = datasource.theme.textAlignment {
- tempLabel.textAlignment = textAlignment
- }
-
- tempLabel.attributedText = datasource.getCurrentText()
- tempLabel.numberOfLines = 0
-
- return tempLabel
- }()
-
- private(set) var pageControl = UIPageControl()
-
- // MARK: Init
-
- init(datasources: [ToolTipViewDatasourceable]) {
- self.datasources = datasources
- pageControl.currentPage = 0
- pageControl.numberOfPages = datasources.count
- super.init(frame: CGRect.zero)
-
- let datasource = getCurrentDatasource()
- pageControl.pageIndicatorTintColor = datasource.theme.textColor?.withAlphaComponent(0.3)
- pageControl.currentPageIndicatorTintColor = datasource.theme.textColor
- buildHierarchy()
- setupConstraints()
- configureViews()
- }
-
- @available(*, unavailable)
- required init?(coder _: NSCoder) {
- fatalError("init(coder:) has not been implemented")
- }
-
- // MARK: Overrides
-
- override func layoutSubviews() {
- let datasource = getCurrentDatasource()
-
- if let cornerRadius = datasource.theme.cornerRadius {
- layer.cornerRadius = cornerRadius
- }
-
- if let maskedCorners = datasource.theme.maskedCorners {
- layer.maskedCorners = maskedCorners
- }
-
- if let masksToBounds = datasource.theme.masksToBounds {
- layer.masksToBounds = masksToBounds
- }
- }
-
- // MARK: Methods
-
- func updateNext() {
- let tempCurrentIndex = currentIndex + 1
- updateText(index: tempCurrentIndex)
- pageControl.currentPage += 1
- }
-
- func updatePrevious() {
- let tempCurrentIndex = max(0, currentIndex - 1)
- updateText(index: tempCurrentIndex)
- pageControl.currentPage -= 1
- }
-
- func updateText(index: Int) {
- if index > datasources.count - 1 {
- return
- }
- currentIndex = index
- let newDatasource = datasources[index]
- animateDatasourceChange(newDatasource: newDatasource)
- }
-
- // MARK: Private methods
-
- private func getCurrentDatasource() -> ToolTipViewDatasourceable {
- datasources[currentIndex]
- }
-
- private func animateDatasourceChange(newDatasource: ToolTipViewDatasourceable) {
- UIView.transition(with: contentLabel,
- duration: 0.25,
- options: .showHideTransitionViews,
- animations: { [weak self] in
- self?.contentLabel.attributedText = newDatasource.getCurrentText()
- self?.backgroundColor = newDatasource.theme.backgroundColor
- }, completion: nil)
- }
-}
-
-extension ToolTipView {
- func buildHierarchy() {
- addSubview(contentLabel)
- addSubview(pageControl)
- }
-
- func setupConstraints() {
- contentLabel.translatesAutoresizingMaskIntoConstraints = false
- contentLabel.leadingAnchor.constraint(equalTo: safeAreaLayoutGuide.leadingAnchor, constant: 5).isActive = true
- contentLabel.trailingAnchor.constraint(equalTo: safeAreaLayoutGuide.trailingAnchor, constant: -5).isActive = true
- contentLabel.topAnchor.constraint(equalTo: safeAreaLayoutGuide.topAnchor, constant: 5).isActive = true
-
- pageControl.translatesAutoresizingMaskIntoConstraints = false
- pageControl.leadingAnchor.constraint(equalTo: safeAreaLayoutGuide.leadingAnchor, constant: 5).isActive = true
- pageControl.trailingAnchor.constraint(equalTo: safeAreaLayoutGuide.trailingAnchor, constant: -5).isActive = true
- pageControl.topAnchor.constraint(equalTo: contentLabel.bottomAnchor, constant: 5).isActive = true
- pageControl.heightAnchor.constraint(equalToConstant: 30).isActive = true
- pageControl.bottomAnchor.constraint(equalTo: safeAreaLayoutGuide.bottomAnchor, constant: -5).isActive = true
- }
-
- func configureViews() {
- let datasource = getCurrentDatasource()
- backgroundColor = datasource.theme.backgroundColor
- }
-}
diff --git a/Keyboards/LanguageKeyboards/Danish/DAInterfaceVariables.swift b/Keyboards/LanguageKeyboards/Danish/DAInterfaceVariables.swift
index 5d05aaad..cd7a5a22 100644
--- a/Keyboards/LanguageKeyboards/Danish/DAInterfaceVariables.swift
+++ b/Keyboards/LanguageKeyboards/Danish/DAInterfaceVariables.swift
@@ -140,4 +140,14 @@ func getDAKeys() {}
// MARK: Provide Layout
-func setDAKeyboardLayout() {}
+func setDAKeyboardLayout() {
+ invalidCommandMsg = "Findes ikke i Wikidata"
+ invalidWikidataMsg_1 = "Wikidata er en videnbase, der redigeres i fællesskab og vedligeholdes af Wikimedia Foundation. Den fungerer som en kilde til åbne data for projekter som Wikipedia og utallige andre."
+ invalidWikidataMsg_2 = "Scribe bruger Wikidatas sprogdata til mange af sine kernefunktioner. Vi får oplysninger som navneords køn, verbkonjugationer og meget mere!"
+ invalidWikidataMsg_3 = "Du kan oprette en konto på wikidata.org for at blive en del af det fællesskab, der støtter Scribe og så mange andre projekter. Hjælp os med at bringe gratis information ud i verden!"
+
+ invalidTranslationMsg = "Ikke i Wiktionary"
+ invalidWiktionaryMsg_1 = "Wiktionary er en fællesredigeret ordbog på hundredvis af forskellige sprog, der vedligeholdes af Wikimedia Foundation."
+ invalidWiktionaryMsg_2 = "Scribe bruger Wiktionarys oversættelser til vores oversættelsesfunktion! Du kan vælge mellem flere oversættelser pr. ord baseret på den specifikke betydning."
+ invalidWiktionaryMsg_3 = "Du kan oprette en konto på wiktionary.org for at blive en del af det fællesskab, der støtter Scribe og så mange andre projekter. Hjælp os med at bringe gratis information ud til verden!"
+}
diff --git a/Keyboards/LanguageKeyboards/English/ENInterfaceVariables.swift b/Keyboards/LanguageKeyboards/English/ENInterfaceVariables.swift
index d83a98c6..cc0c03ef 100644
--- a/Keyboards/LanguageKeyboards/English/ENInterfaceVariables.swift
+++ b/Keyboards/LanguageKeyboards/English/ENInterfaceVariables.swift
@@ -207,7 +207,17 @@ func setENKeyboardLayout() {
currencySymbol = "$"
currencySymbolAlternates = dollarAlternateKeys
spaceBar = "space"
+
invalidCommandMsg = "Not in Wikidata"
+ invalidWikidataMsg_1 = "Wikidata is a collaboratively edited knowledge graph that's maintained by the Wikimedia Foundation. It serves as a source of open data for projects like Wikipedia and countless others."
+ invalidWikidataMsg_2 = "Scribe uses Wikidata's language data for many of its core features. We get information like noun genders, verb conjugations and much more!"
+ invalidWikidataMsg_3 = "You can make an account at wikidata.org to join the community that's supporting Scribe and so many other projects. Help us bring free information to the world!"
+
+ invalidTranslationMsg = "Not in Wiktionary"
+ invalidWiktionaryMsg_1 = "Wiktionary is a collaboratively edited dictionary in hundreds of different languages that's maintained by Wikimedia Foundation."
+ invalidWiktionaryMsg_2 = "Scribe uses Wiktionary's translations for our translation functionality! You can choose from multiple translations per word based on the specific meaning."
+ invalidWiktionaryMsg_3 = "You can make an account at wiktionary.org to join the community that's supporting Scribe and so many other projects. Help us bring free information to the world!"
+
baseAutosuggestions = ["I", "I'm", "we"]
numericAutosuggestions = ["is", "to", "and"]
verbsAfterPronounsArray = ["have", "be", "can"]
diff --git a/Keyboards/LanguageKeyboards/French/FR-AZERTYInterfaceVariables.swift b/Keyboards/LanguageKeyboards/French/FR-AZERTYInterfaceVariables.swift
index c32c6912..21f86934 100644
--- a/Keyboards/LanguageKeyboards/French/FR-AZERTYInterfaceVariables.swift
+++ b/Keyboards/LanguageKeyboards/French/FR-AZERTYInterfaceVariables.swift
@@ -204,7 +204,17 @@ func setFRKeyboardLayout() {
currencySymbolAlternates = euroAlternateKeys
spaceBar = "espace"
language = "Français"
+
invalidCommandMsg = "Pas dans Wikidata"
+ invalidWikidataMsg_1 = "Wikidata est un réseau de connaissances collaboratif géré par la fondation Wikimedia. Il sert de source de données ouvertes pour des projets tels que Wikipédia et bien d'autres."
+ invalidWikidataMsg_2 = "Scribe utilise les données linguistiques de Wikidata pour un grand nombre de ses fonctionnalités de base. Nous obtenons des informations telles que le genre des noms, la conjugaison des verbes et bien plus encore !"
+ invalidWikidataMsg_3 = "Vous pouvez créer un compte sur wikidata.org pour rejoindre la communauté qui soutient Scribe et bien d'autres projets. Contribuez à la diffusion d'informations gratuites dans le monde entier !"
+
+ invalidTranslationMsg = "Pas dans Wiktionary"
+ invalidWiktionaryMsg_1 = "Wiktionnaire est un dictionnaire collaboratif disponible dans des centaines de langues différentes, géré par la Fondation Wikimedia."
+ invalidWiktionaryMsg_2 = "Scribe utilise les traductions de Wiktionnaire pour sa fonctionnalité de traduction ! Vous pouvez choisir parmi plusieurs traductions par mot en fonction de la signification spécifique."
+ invalidWiktionaryMsg_3 = "Vous pouvez créer un compte sur wiktionary.org pour rejoindre la communauté qui soutient Scribe et tant d'autres projets. Aidez-nous à diffuser des informations libres dans le monde entier !"
+
baseAutosuggestions = ["je", "il", "le"]
numericAutosuggestions = ["je", "que", "c’est"]
verbsAfterPronounsArray = ["être", "avoir", "ne"]
diff --git a/Keyboards/LanguageKeyboards/German/DEInterfaceVariables.swift b/Keyboards/LanguageKeyboards/German/DEInterfaceVariables.swift
index 80c8c6c0..acc6691a 100644
--- a/Keyboards/LanguageKeyboards/German/DEInterfaceVariables.swift
+++ b/Keyboards/LanguageKeyboards/German/DEInterfaceVariables.swift
@@ -263,7 +263,17 @@ func setDEKeyboardLayout() {
currencySymbolAlternates = euroAlternateKeys
spaceBar = "Leerzeichen"
language = "Deutsch"
+
invalidCommandMsg = "Nicht in Wikidata"
+ invalidWikidataMsg_1 = "Wikidata ist ein gemeinschaftlich bearbeiteter Wissensgraphen, der von der Wikimedia Foundation gepflegt wird. Er dient als Quelle für offene Daten für Projekte wie Wikipedia und unzählige andere."
+ invalidWikidataMsg_2 = "Scribe nutzt die Sprachdaten von Wikidata für viele seiner Kernfunktionen. Wir erhalten Informationen wie das Geschlecht von Substantiven, Verbkonjugationen und vieles mehr!"
+ invalidWikidataMsg_3 = "Du kannst dir unter wikidata.org ein Konto erstellen, um der Community beizutreten, die Scribe und so viele andere Projekte unterstützt. Hilf uns dabei, der Welt freie Informationen zugänglich zu machen!"
+
+ invalidTranslationMsg = "Nicht in Wiktionary"
+ invalidWiktionaryMsg_1 = "Wiktionary ist ein gemeinschaftlich bearbeitetes Wörterbuch in Hunderten von verschiedenen Sprachen, das von der Wikimedia Foundation gepflegt wird."
+ invalidWiktionaryMsg_2 = "Scribe nutzt die Übersetzungen von Wiktionary für unsere Übersetzungsfunktion! Du kannst je nach spezifischer Bedeutung aus mehreren Übersetzungen pro Wort wählen."
+ invalidWiktionaryMsg_3 = "Du kannst dich auf wiktionary.org registrieren, um Teil der Community zu werden, die Scribe und viele andere Projekte unterstützt. Hilf uns dabei, der Welt freie Informationen zugänglich zu machen!"
+
baseAutosuggestions = ["ich", "die", "das"]
numericAutosuggestions = ["Prozent", "Milionen", "Meter"]
verbsAfterPronounsArray = ["haben", "sein", "können"]
diff --git a/Keyboards/LanguageKeyboards/Hebrew/HEInterfaceVariables.swift b/Keyboards/LanguageKeyboards/Hebrew/HEInterfaceVariables.swift
index 0b1710f9..b018a622 100644
--- a/Keyboards/LanguageKeyboards/Hebrew/HEInterfaceVariables.swift
+++ b/Keyboards/LanguageKeyboards/Hebrew/HEInterfaceVariables.swift
@@ -177,7 +177,17 @@ func setHEKeyboardLayout() {
currencySymbolAlternates = roubleAlternateKeys
spaceBar = "רווח"
language = "עברית"
+
invalidCommandMsg = "אין מידע"
+ invalidWikidataMsg_1 = "ויקינתונים הוא גרף ידע הנערך בשיתוף פעולה ומתוחזק על ידי קרן ויקימדיה. הוא משמש כמקור לנתונים פתוחים עבור פרויקטים כמו ויקיפדיה ועוד רבים אחרים."
+ invalidWikidataMsg_2 = "Scribe משתמש בנתוני השפה של ויקינתונים עבור רבות מתכונות הליבה שלו. אנו מקבלים מידע כמו מין שמות עצם, צורות פועל ועוד הרבה יותר!"
+ invalidWikidataMsg_3 = "אתה יכול ליצור חשבון ב-wikidata.org כדי להצטרף לקהילה התומכת ב-Scribe ובפרויקטים רבים אחרים. עזור לנו להביא מידע חופשי לעולם!"
+
+ invalidTranslationMsg = "לא קיים בוויקימילון"
+ invalidWiktionaryMsg_1 = "ויקימילון הוא מילון בעריכה שיתופית במאות שפות שונות, המנוהל על ידי קרן ויקימדיה."
+ invalidWiktionaryMsg_2 = "Scribe משתמש בתרגומים של Wiktionary עבור פונקציית התרגום שלנו! ניתן לבחור מבין מספר תרגומים לכל מילה בהתאם למשמעות הספציפית."
+ invalidWiktionaryMsg_3 = "ניתן ליצור חשבון ב-wiktionary.org כדי להצטרף לקהילה התומכת ב-Scribe ובפרויקטים רבים אחרים. עזרו לנו להביא מידע חופשי לעולם!"
+
baseAutosuggestions = ["אתמ", "אני", "היי"]
numericAutosuggestions = ["", "", ""]
diff --git a/Keyboards/LanguageKeyboards/Indonesian/IDInterfaceVariables.swift b/Keyboards/LanguageKeyboards/Indonesian/IDInterfaceVariables.swift
index e53c6021..b89ab68a 100644
--- a/Keyboards/LanguageKeyboards/Indonesian/IDInterfaceVariables.swift
+++ b/Keyboards/LanguageKeyboards/Indonesian/IDInterfaceVariables.swift
@@ -191,7 +191,17 @@ func setIDKeyboardLayout() {
currencySymbol = "$"
currencySymbolAlternates = dollarAlternateKeys
spaceBar = "spasi"
+
invalidCommandMsg = "Tidak ada di Wikidata"
+ invalidWikidataMsg_1 = "Wikidata adalah grafik pengetahuan yang diedit secara kolaboratif dan dikelola oleh Wikimedia Foundation. Wikidata berfungsi sebagai sumber data terbuka untuk proyek-proyek seperti Wikipedia dan banyak proyek lainnya."
+ invalidWikidataMsg_2 = "Scribe menggunakan data bahasa dari Wikidata untuk banyak fitur intinya. Kami mendapatkan informasi seperti jenis kelamin kata benda, konjugasi kata kerja, dan banyak lagi!"
+ invalidWikidataMsg_3 = "Anda dapat membuat akun di wikidata.org untuk bergabung dengan komunitas yang mendukung Scribe dan banyak proyek lainnya. Bantu kami menyebarkan informasi gratis ke seluruh dunia!"
+
+ invalidTranslationMsg = "Tidak ada di Wiktionary"
+ invalidWiktionaryMsg_1 = "Wiktionary adalah kamus yang diedit secara kolaboratif dalam ratusan bahasa berbeda yang dikelola oleh Wikimedia Foundation."
+ invalidWiktionaryMsg_2 = "Scribe menggunakan terjemahan Wiktionary untuk fungsi terjemahan kami! Anda dapat memilih dari beberapa terjemahan per kata berdasarkan makna spesifiknya."
+ invalidWiktionaryMsg_3 = "Anda dapat membuat akun di wiktionary.org untuk bergabung dengan komunitas yang mendukung Scribe dan banyak proyek lainnya. Bantu kami menghadirkan informasi gratis ke seluruh dunia!"
+
baseAutosuggestions = ["aku", "saya", "itu"]
numericAutosuggestions = ["adalah", "untuk", "dan"]
verbsAfterPronounsArray = ["sudah", "sedang", "bisa"]
diff --git a/Keyboards/LanguageKeyboards/Italian/ITInterfaceVariables.swift b/Keyboards/LanguageKeyboards/Italian/ITInterfaceVariables.swift
index 85fe2ddc..46c03e0e 100644
--- a/Keyboards/LanguageKeyboards/Italian/ITInterfaceVariables.swift
+++ b/Keyboards/LanguageKeyboards/Italian/ITInterfaceVariables.swift
@@ -205,6 +205,15 @@ func setITKeyboardLayout() {
spaceBar = "spazio"
language = "Italiano"
invalidCommandMsg = "Non in Wikidata"
+ invalidWikidataMsg_1 = "Wikidata è un grafico di conoscenza modificabile in modo collaborativo gestito dalla Wikimedia Foundation. Funge da fonte di dati aperti per progetti come Wikipedia e innumerevoli altri."
+ invalidWikidataMsg_2 = "Scribe utilizza i dati linguistici di Wikidata per molte delle sue funzionalità principali. Otteniamo informazioni come il genere dei nomi, le coniugazioni dei verbi e molto altro ancora!"
+ invalidWikidataMsg_3 = "Puoi creare un account su wikidata.org per unirti alla comunità che sostiene Scribe e tanti altri progetti. Aiutaci a portare informazioni gratuite nel mondo!"
+
+ invalidTranslationMsg = "Non in Wiktionary"
+ invalidWiktionaryMsg_1 = "Wikizionario è un dizionario curato in modo collaborativo in centinaia di lingue diverse e gestito dalla Wikimedia Foundation."
+ invalidWiktionaryMsg_2 = "Scribe utilizza le traduzioni di Wikizionario per la nostra funzionalità di traduzione! Puoi scegliere tra più traduzioni per ogni parola in base al significato specifico."
+ invalidWiktionaryMsg_3 = "Puoi creare un account su wiktionary.org per unirti alla comunità che sostiene Scribe e tanti altri progetti. Aiutaci a portare informazioni gratuite al mondo!"
+
baseAutosuggestions = ["ho", "non", "ma"]
numericAutosuggestions = ["utenti", "anni", "e"]
diff --git a/Keyboards/LanguageKeyboards/Norwegian/NBInterfaceVariables.swift b/Keyboards/LanguageKeyboards/Norwegian/NBInterfaceVariables.swift
index 0e0007fa..680380c9 100644
--- a/Keyboards/LanguageKeyboards/Norwegian/NBInterfaceVariables.swift
+++ b/Keyboards/LanguageKeyboards/Norwegian/NBInterfaceVariables.swift
@@ -208,7 +208,17 @@ func setNBKeyboardLayout() {
currencySymbolAlternates = kronaAlternateKeys
spaceBar = "mellomrom"
language = "Norsk"
+
invalidCommandMsg = "Ikke i Wikidata"
+ invalidWikidataMsg_1 = "Wikidata er en kunnskapsbase som redigeres i fellesskap og vedlikeholdes av Wikimedia Foundation. Den fungerer som en kilde til åpne data for prosjekter som Wikipedia og utallige andre."
+ invalidWikidataMsg_2 = "Scribe bruker Wikidatas språkdata til mange av sine kjernefunksjoner. Vi får informasjon som substantivkjønn, verbkonjugasjoner og mye mer!"
+ invalidWikidataMsg_3 = "Du kan opprette en konto på wikidata.org for å bli med i fellesskapet som støtter Scribe og så mange andre prosjekter. Hjelp oss med å bringe gratis informasjon til verden!"
+
+ invalidTranslationMsg = "Ikke i Wiktionary"
+ invalidWiktionaryMsg_1 = "Wiktionary er en samarbeidsredigert ordbok på hundrevis av forskjellige språk som vedlikeholdes av Wikimedia Foundation."
+ invalidWiktionaryMsg_2 = "Scribe bruker Wiktionarys oversettelser til vår oversettelsesfunksjon! Du kan velge mellom flere oversettelser per ord basert på den spesifikke betydningen."
+ invalidWiktionaryMsg_3 = "Du kan opprette en konto på wiktionary.org for å bli med i fellesskapet som støtter Scribe og så mange andre prosjekter. Hjelp oss med å bringe gratis informasjon til verden!"
+
baseAutosuggestions = ["jeg", "det", "er"]
numericAutosuggestions = ["prosent", "millioner", "meter"]
verbsAfterPronounsArray = ["har", "være", "kan"]
diff --git a/Keyboards/LanguageKeyboards/Portuguese/PTInterfaceVariables.swift b/Keyboards/LanguageKeyboards/Portuguese/PTInterfaceVariables.swift
index cca96701..380a420f 100644
--- a/Keyboards/LanguageKeyboards/Portuguese/PTInterfaceVariables.swift
+++ b/Keyboards/LanguageKeyboards/Portuguese/PTInterfaceVariables.swift
@@ -202,7 +202,17 @@ func setPTKeyboardLayout() {
currencySymbolAlternates = dollarAlternateKeys
spaceBar = "espaço"
language = "Português"
+
invalidCommandMsg = "Não está no Wikidata"
+ invalidWikidataMsg_1 = "A Wikidata é um grafo de conhecimento editado colaborativamente e mantivo pela Fundação Wikimedia. A Wikidata é uma fonte de dados públicos para projetos como a Wikipédia e muitos outros."
+ invalidWikidataMsg_2 = "O Scribe usa dados linguísticos da Wikidata para muitas de suas funcionalidades. Temos informações sobre gêneros de substantivos, conjugações de verbos, e muito mais!"
+ invalidWikidataMsg_3 = "Você pode criar uma conta em wikidata.org e se juntar à comunidade que apoia o Scribe e muitos outros projetos. Ajude-nos a fornecer dados gratuitos para o mundo!"
+
+ invalidTranslationMsg = "Não está no Wiktionary"
+ invalidWiktionaryMsg_1 = "O Wiktionary é um dicionário editado colaborativamente em centenas de línguas diferentes, mantido pela Fundação Wikimedia."
+ invalidWiktionaryMsg_2 = "O Scribe utiliza as traduções do Wiktionary para a nossa funcionalidade de tradução! Pode escolher entre várias traduções por palavra com base no significado específico."
+ invalidWiktionaryMsg_3 = "Pode criar uma conta em wiktionary.org para se juntar à comunidade que apoia o Scribe e tantos outros projetos. Ajude-nos a levar informação gratuita ao mundo!"
+
baseAutosuggestions = ["o", "a", "eu"]
numericAutosuggestions = ["de", "que", "a"]
diff --git a/Keyboards/LanguageKeyboards/Russian/RUInterfaceVariables.swift b/Keyboards/LanguageKeyboards/Russian/RUInterfaceVariables.swift
index 35dbf2dd..8b318c82 100644
--- a/Keyboards/LanguageKeyboards/Russian/RUInterfaceVariables.swift
+++ b/Keyboards/LanguageKeyboards/Russian/RUInterfaceVariables.swift
@@ -192,7 +192,17 @@ func setRUKeyboardLayout() {
currencySymbolAlternates = roubleAlternateKeys
spaceBar = "Пробел"
language = "Pусский"
+
invalidCommandMsg = "Нет в Викиданных"
+ invalidWikidataMsg_1 = "Викиданные — это совместно редактируемый граф знаний, который поддерживается Фондом Викимедиа. Он служит источником открытых данных для таких проектов, как Википедия, и множества других."
+ invalidWikidataMsg_2 = "Scribe использует языковые данные Викиданных для многих своих основных функций. Мы получаем информацию о родах существительных, спряжении глаголов и многом другом!"
+ invalidWikidataMsg_3 = "Вы можете создать аккаунт на wikidata.org, чтобы присоединиться к сообществу, которое поддерживает Scribe и многие другие проекты. Помогите нам принести бесплатную информацию миру!"
+
+ invalidTranslationMsg = "Нет в Викисловаре"
+ invalidWiktionaryMsg_1 = "Викисловарь — это совместно редактируемый словарь на сотнях разных языков, который поддерживается Фондом Викимедиа."
+ invalidWiktionaryMsg_2 = "Scribe использует переводы из Викисловаря для своей функции перевода! Вы можете выбирать из нескольких переводов одного слова в зависимости от конкретного значения."
+ invalidWiktionaryMsg_3 = "Вы можете создать учётную запись на wiktionary.org, чтобы присоединиться к сообществу, поддерживающему Scribe и многие другие проекты. Помогите нам донести свободную информацию до всего мира!"
+
baseAutosuggestions = ["я", "а", "в"]
numericAutosuggestions = ["в", "и", "я"]
diff --git a/Keyboards/LanguageKeyboards/Spanish/ESInterfaceVariables.swift b/Keyboards/LanguageKeyboards/Spanish/ESInterfaceVariables.swift
index f316ca4c..33c7e812 100644
--- a/Keyboards/LanguageKeyboards/Spanish/ESInterfaceVariables.swift
+++ b/Keyboards/LanguageKeyboards/Spanish/ESInterfaceVariables.swift
@@ -258,6 +258,15 @@ func setESKeyboardLayout() {
spaceBar = "espacio"
language = "Español"
invalidCommandMsg = "No en Wikidata"
+ invalidWikidataMsg_1 = "Wikidata es un gráfico de conocimiento editado de forma colaborativa y mantenido por la Fundación Wikimedia. Sirve como fuente de datos abiertos para proyectos como Wikipedia y muchos otros."
+ invalidWikidataMsg_2 = "Scribe utiliza los datos lingüísticos de Wikidata para muchas de sus funciones principales. ¡Obtenemos información como géneros de sustantivos, conjugaciones de verbos y mucho más!"
+ invalidWikidataMsg_3 = "Puedes crear una cuenta en wikidata.org para unirte a la comunidad que apoya a Scribe y a muchos otros proyectos. ¡Ayúdanos a llevar información gratuita al mundo!"
+
+ invalidTranslationMsg = "No en Wiktionary"
+ invalidWiktionaryMsg_1 = "Wiktionary es un diccionario editado de forma colaborativa en cientos de idiomas diferentes y mantenido por la Fundación Wikimedia."
+ invalidWiktionaryMsg_2 = "¡Scribe utiliza las traducciones de Wiktionary para su función de traducción! Puedes elegir entre varias traducciones por palabra en función del significado específico."
+ invalidWiktionaryMsg_3 = "Puedes crear una cuenta en wiktionary.org para unirte a la comunidad que apoya a Scribe y a tantos otros proyectos. ¡Ayúdanos a llevar información gratuita al mundo!"
+
baseAutosuggestions = ["el", "la", "no"]
numericAutosuggestions = ["que", "de", "en"]
verbsAfterPronounsArray = ["ser", "REFLEXIVE_PRONOUN", "no"]
diff --git a/Keyboards/LanguageKeyboards/Swedish/SVInterfaceVariables.swift b/Keyboards/LanguageKeyboards/Swedish/SVInterfaceVariables.swift
index 5391b05d..a3c525a7 100644
--- a/Keyboards/LanguageKeyboards/Swedish/SVInterfaceVariables.swift
+++ b/Keyboards/LanguageKeyboards/Swedish/SVInterfaceVariables.swift
@@ -268,7 +268,17 @@ func setSVKeyboardLayout() {
currencySymbolAlternates = kronaAlternateKeys
spaceBar = "mellanslag"
language = "Svenska"
+
invalidCommandMsg = "Inte i Wikidata"
+ invalidWikidataMsg_1 = "Wikidata är en gemensamt redigerad kunskapsgraf som underhålls av Wikimedia Foundation. Det fungerar som en källa till öppen data för projekt som Wikipedia och flera andra."
+ invalidWikidataMsg_2 = "Scribe använder Wikidatas språkdata för många av sina kärnfunktioner. Vi får information som substantiv, genus, verbböjningar och mycket mer!"
+ invalidWikidataMsg_3 = "Du kan skapa ett konto på wikidata.org för att gå med i communityn som stöder Scribe och så många andra projekt. Hjälp oss att ge gratis information till världen!"
+
+ invalidTranslationMsg = "Inte i Wiktionary"
+ invalidWiktionaryMsg_1 = "Wiktionary är en gemensamt redigerad ordbok på hundratals olika språk som sköts av Wikimedia Foundation."
+ invalidWiktionaryMsg_2 = "Scribe använder översättningar från Wiktionary i sin översättningsfunktion! Du kan välja mellan flera översättningar per ord beroende på den specifika betydelsen."
+ invalidWiktionaryMsg_3 = "Du kan skapa ett konto på wiktionary.org för att bli en del av gemenskapen som stöder Scribe och många andra projekt. Hjälp oss att sprida fri information till hela världen!"
+
baseAutosuggestions = ["jag", "det", "men"]
numericAutosuggestions = ["jag", "det", "och"]
diff --git a/README.md b/README.md
index 19619e2d..7e224f2d 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,5 @@
+
+
@@ -30,9 +32,7 @@ Also available on [Android](https://github.com/scribe-org/Scribe-Android) (WIP),
Check out Scribe's [architecture diagrams](https://github.com/scribe-org/Organization/blob/main/ARCHITECTURE.md) for an overview of the organization including our applications, services and processes. It depicts the projects that [Scribe](https://github.com/scribe-org) is developing as well as the relationships between them and the external systems with which they interact.
-
-
-# **Contents**
+# Contents
- [Preview Videos](#preview-videos)
- [Contributing](#contributing)
@@ -43,9 +43,7 @@ Check out Scribe's [architecture diagrams](https://github.com/scribe-org/Organiz
- [Keyboard Features](#keyboard-features)
- [Featured By](#featured-by)
-
-
-# Preview Videos [`⇧`](#contents)
+# Preview Videos
The following are the preview videos for the [App Store](https://apps.apple.com/app/scribe-language-keyboards/id1596613886):
@@ -63,9 +61,9 @@ https://user-images.githubusercontent.com/24387426/231612346-af8b3f62-adf1-4f24-
-
+Back to top.
-# Contributing [`⇧`](#contents)
+# Contributing
@@ -82,7 +80,7 @@ Those interested can further check the [`-next release-`](https://github.com/scr
After your first few pull requests organization members would be happy to discuss granting you further rights as a contributor, with a maintainer role then being possible after continued interest in the project. Scribe seeks to be an inclusive and supportive organization. We'd love to have you on the team!
-### Ways to Help [`⇧`](#contents)
+### Ways to Help
- [Reporting bugs](https://github.com/scribe-org/Scribe-iOS/issues/new?assignees=&labels=bug&template=bug_report.yml) as they're found 🐞
- Working on [new features](https://github.com/scribe-org/Scribe-iOS/issues?q=is%3Aissue+is%3Aopen+label%3Afeature) ✨
@@ -102,14 +100,14 @@ After your first few pull requests organization members would be happy to discus
-### Road Map [`⇧`](#contents)
+### Road Map
The Scribe road map can be followed in the organization's [project board](https://github.com/orgs/scribe-org/projects/1) where we list the most important issues along with their priority, status and an indication of which sub projects they're included in (if applicable).
> [!NOTE]\
> Consider joining our [bi-weekly developer syncs](https://etherpad.wikimedia.org/p/scribe-dev-sync)!
-### Designs [`⇧`](#contents)
+### Designs
@@ -117,16 +115,16 @@ The Scribe road map can be followed in the organization's [project board](https:
The [designs for Scribe](https://www.figma.com/file/c8945w2iyoPYVhsqW7vRn6/scribe_public_designs?node-id=405%3A464) are made using [Figma](https://www.figma.com). The App Store videos, images and text can be found in the [AppStore](https://github.com/scribe-org/Scribe-iOS/blob/main/AppStore) directory. Those with interest in contributing can [open a design issue](https://github.com/scribe-org/Scribe-iOS/issues/new?assignees=&labels=design&template=design_improvement.yml) to make suggestions! Design related issues are marked with the [`design`](https://github.com/scribe-org/Scribe-iOS/issues?q=is%3Aopen+is%3Aissue+label%3Adesign) label.
-### Data Edits [`⇧`](#contents)
+### Data Edits
> [!NOTE]\
> Please see the [Wikidata and Scribe Guide](https://github.com/scribe-org/Organization/blob/main/WIKIDATAGUIDE.md) for an overview of [Wikidata](https://www.wikidata.org/) and how Scribe uses it.
Scribe does not accept direct edits to the grammar files as they are sourced from [Wikidata](https://www.wikidata.org/). Edits can be discussed and the [Scribe-Data](https://github.com/scribe-org/Scribe-Data) queries will be changed. If there is a problem with one of the files, then the fix should be made on [Wikidata](https://www.wikidata.org/) and not on Scribe. Feel free to let us know that edits have been made by [opening a data issue](https://github.com/scribe-org/Scribe-iOS/issues/new?assignees=&labels=data&template=data_wikidata.yml) or contacting us in the [issues for Scribe-Data](https://github.com/scribe-org/Scribe-Data/issues) and we'll be happy to integrate them!
-
+Back to top.
-# Environment Setup [`⇧`](#contents)
+# Environment Setup
Scribe-iOS is developed using the [Swift](https://developer.apple.com/swift/) coding language. Those new to Swift or wanting to develop their skills are more than welcome to contribute! The first step on your Swift journey would be to read through the [Swift documentation](https://docs.swift.org/swift-book/index.html). The general steps to setting up a development environment are:
@@ -167,12 +165,13 @@ git remote add upstream https://github.com/scribe-org/Scribe-iOS.git
- `origin` (forked repository)
- `upstream` (Scribe-iOS repository)
-3. (Optional) Install [pre-commit](https://pre-commit.com/) and its hooks to check for and correct common errors in commits:
+3. (Suggested) Install [prek](https://prek.j178.dev/) pre-commit hooks to check for and correct common errors in commits:
```bash
-pip install pre-commit
-pre-commit install
-# pre-commit run --all-files
+pip install --upgrade pip # make sure that pip is at the latest version
+pip install prek
+prek install
+# prek --all-files
```
4. Open the Scribe-iOS directory in Xcode
@@ -194,11 +193,9 @@ pre-commit install
> **Note on Debugging:**
> Because Scribe is a keyboard extension, the Xcode debugger doesn't work as expected when debugging a regular app. Please see the [note on debugging](https://github.com/scribe-org/Scribe-iOS/blob/main/CONTRIBUTING.md#note-on-debugging) in [CONTRIBUTING.md](https://github.com/scribe-org/Scribe-iOS/blob/main/CONTRIBUTING.md) to learn how to get it working properly.
-
+Back to top.
-# App Setup [`⇧`](#contents)
-
-
+# App Setup
### Codebase Overview
@@ -223,37 +220,37 @@ Users access Scribe language keyboards through the following:
For more information on features and use cases, see [Keyboard Features](#keyboard-features) below!
-
+Back to top.
-# Supported Languages [`⇧`](#contents)
+# Supported Languages
Scribe's goal is functional, feature-rich keyboards for all languages. You can check the currently available languages and data for Scribe applications on our website at [scri.be/docs/server/available-data](https://scri.be/docs/server/available-data).
See [scribe_data/wikidata/language_data_extraction](https://github.com/scribe-org/Scribe-Data/tree/main/src/scribe_data/wikidata/language_data_extraction) for queries in the [Scribe-Data](https://github.com/scribe-org/Scribe-Data) project for currently supported languages and those that have substantial data on [Wikidata](https://www.wikidata.org/). Also see the [`new keyboard`](https://github.com/scribe-org/Scribe-iOS/issues?q=is%3Aissue+is%3Aopen+label%3A%22new+keyboard%22) label in the [Issues](https://github.com/scribe-org/Scribe-iOS/issues) for keyboards that are currently in progress or being discussed, and [suggest a new keyboard](https://github.com/scribe-org/Scribe-iOS/issues/new?assignees=&labels=new+keyboard&template=new_keyboard.yml&title=Add+%3Clanguage%3E+keyboard) if you don't see it being worked on already!
-
+Back to top.
-# Keyboard Features [`⇧`](#contents)
+# Keyboard Features
Keyboard features are accessed via the `Scribe key` at the top left of any Scribe keyboard. Pressing this key gives the user three new selectable options: `Translate`, `Conjugate` and `Plural` in the keyboard's language. These keys allow for words to be queried and inserted into the text field followed by a space.
**Current features include:**
-### Translation [`⇧`](#contents)
+### Translation
The **`beta`** `Translate` feature can translate single words or phrases from English into the language of the current keyboard when the `return` key is pressed. The goal is that `Translate` will eventually provide options for entered words where a user can use grammatical categories and synonyms to select the best option. Then the feature will expand to allow translations from system and chosen languages. More advanced methods will be planned once this feature is out of **`beta`**.
As of now translations are not widely available on [Wikidata](https://www.wikidata.org/). The current functionality is thus based on [🤗 Transformers](https://github.com/huggingface/transformers) machine translations of words queried from [Wikidata](https://www.wikidata.org/). The ultimate goal is for the translations to be directly queried.
-### Verb Conjugation [`⇧`](#contents)
+### Verb Conjugation
With the `Conjugate` feature, a user is presented with the grammar charts for an entered verb instead of the keyboard. Pressing an example in the charts inserts the chosen conjugation into the text field.
-### Noun Plurals [`⇧`](#contents)
+### Noun Plurals
The `Plural` feature allows a user to enter a noun and then insert its plural into the text field when the `return` key is pressed.
-### Word Annotation [`⇧`](#contents)
+### Word Annotation
Scribe further annotates words in the command bar to help users understand the context of what they're typing. Annotations are displayed once a user has typed a given word and pressed space, after commands, by pressing the `Scribe key` while it is selected as well as under autocompletions and autosuggestions. The hope is that annotation will help a user remember grammar rules even when not using Scribe.
@@ -274,11 +271,11 @@ The above form abbreviations are translated into their equivalents in the keyboa
Scribe also annotates the grammatical cases (accusative, dative, etc) of prepositions in the command bar if there is a relation in the given language.
-### Pronoun Selection [`⇧`](#contents)
+### Pronoun Selection
Annotations for preposition cases can also be pressed to provide a conjugation display where the user can select the proper pronoun for the given case. The conjugation view will also provide appropriate interfaces to subset the available pronouns based on the desired subject and object combinations to help the user make the correct choice.
-### Base Functionality [`⇧`](#contents)
+### Base Functionality
The goal is for Scribe to have all the functionality of system keyboards. See the [issues](https://github.com/scribe-org/Scribe-iOS/issues/) if interested in helping.
@@ -302,9 +299,9 @@ The goal is for Scribe to have all the functionality of system keyboards. See th
-
+Back to top.
-# Featured By [`⇧`](#contents)
+# Featured By
Please see the [blog posts page on our website](https://scri.be/docs/about/blog-posts) for a list of articles on Scribe, and feel free to open a pull request to add one that you've written at [scribe-org/scri.be](https://github.com/scribe-org/scri.be)!
@@ -330,7 +327,9 @@ The following organizations have supported the development of Scribe projects th
-# Powered By [`⇧`](#contents)
+Back to top.
+
+# Powered By
### Contributors
@@ -363,3 +362,5 @@ The Scribe community would like to thank all the great software that made Scribe
+
+Back to top.
diff --git a/Scribe.xcodeproj/project.pbxproj b/Scribe.xcodeproj/project.pbxproj
index 233f3833..10673075 100644
--- a/Scribe.xcodeproj/project.pbxproj
+++ b/Scribe.xcodeproj/project.pbxproj
@@ -60,25 +60,6 @@
3045395F293B911E003AE55B /* AppTextStyling.swift in Sources */ = {isa = PBXBuildFile; fileRef = D17193BF27AEA33A0038660B /* AppTextStyling.swift */; };
30453960293B911F003AE55B /* AppTextStyling.swift in Sources */ = {isa = PBXBuildFile; fileRef = D17193BF27AEA33A0038660B /* AppTextStyling.swift */; };
30453964293B9D18003AE55B /* InformationToolTipData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30453963293B9D18003AE55B /* InformationToolTipData.swift */; };
- 30453967293B9D31003AE55B /* ViewThemeable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30453966293B9D31003AE55B /* ViewThemeable.swift */; };
- 30453969293B9DB4003AE55B /* ToolTipViewUpdatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30453968293B9DB4003AE55B /* ToolTipViewUpdatable.swift */; };
- 3045396B293B9DC9003AE55B /* ToolTipViewDatasourceable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3045396A293B9DC9003AE55B /* ToolTipViewDatasourceable.swift */; };
- 3045396D293B9DDC003AE55B /* ToolTipViewDatasource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3045396C293B9DDC003AE55B /* ToolTipViewDatasource.swift */; };
- 3045396F293B9DF2003AE55B /* ToolTipViewTheme.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3045396E293B9DF2003AE55B /* ToolTipViewTheme.swift */; };
- 30453970293B9DFF003AE55B /* ToolTipViewTheme.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3045396E293B9DF2003AE55B /* ToolTipViewTheme.swift */; };
- 30453972293B9E04003AE55B /* ToolTipViewTheme.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3045396E293B9DF2003AE55B /* ToolTipViewTheme.swift */; };
- 30453973293B9E05003AE55B /* ToolTipViewTheme.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3045396E293B9DF2003AE55B /* ToolTipViewTheme.swift */; };
- 30453974293B9E05003AE55B /* ToolTipViewTheme.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3045396E293B9DF2003AE55B /* ToolTipViewTheme.swift */; };
- 30453975293B9E06003AE55B /* ToolTipViewTheme.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3045396E293B9DF2003AE55B /* ToolTipViewTheme.swift */; };
- 30453976293B9E06003AE55B /* ToolTipViewTheme.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3045396E293B9DF2003AE55B /* ToolTipViewTheme.swift */; };
- 30453977293B9E06003AE55B /* ToolTipViewTheme.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3045396E293B9DF2003AE55B /* ToolTipViewTheme.swift */; };
- 30453978293B9E0A003AE55B /* ToolTipViewDatasource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3045396C293B9DDC003AE55B /* ToolTipViewDatasource.swift */; };
- 3045397A293B9E0B003AE55B /* ToolTipViewDatasource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3045396C293B9DDC003AE55B /* ToolTipViewDatasource.swift */; };
- 3045397B293B9E0C003AE55B /* ToolTipViewDatasource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3045396C293B9DDC003AE55B /* ToolTipViewDatasource.swift */; };
- 3045397C293B9E0C003AE55B /* ToolTipViewDatasource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3045396C293B9DDC003AE55B /* ToolTipViewDatasource.swift */; };
- 3045397D293B9E0D003AE55B /* ToolTipViewDatasource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3045396C293B9DDC003AE55B /* ToolTipViewDatasource.swift */; };
- 3045397E293B9E0D003AE55B /* ToolTipViewDatasource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3045396C293B9DDC003AE55B /* ToolTipViewDatasource.swift */; };
- 3045397F293B9E0E003AE55B /* ToolTipViewDatasource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3045396C293B9DDC003AE55B /* ToolTipViewDatasource.swift */; };
30453980293B9E10003AE55B /* InformationToolTipData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30453963293B9D18003AE55B /* InformationToolTipData.swift */; };
30453981293B9E11003AE55B /* InformationToolTipData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30453963293B9D18003AE55B /* InformationToolTipData.swift */; };
30453982293B9E11003AE55B /* InformationToolTipData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30453963293B9D18003AE55B /* InformationToolTipData.swift */; };
@@ -86,35 +67,6 @@
30453985293B9E12003AE55B /* InformationToolTipData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30453963293B9D18003AE55B /* InformationToolTipData.swift */; };
30453986293B9E13003AE55B /* InformationToolTipData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30453963293B9D18003AE55B /* InformationToolTipData.swift */; };
30453987293B9E13003AE55B /* InformationToolTipData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30453963293B9D18003AE55B /* InformationToolTipData.swift */; };
- 30453988293B9E17003AE55B /* ViewThemeable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30453966293B9D31003AE55B /* ViewThemeable.swift */; };
- 3045398A293B9E18003AE55B /* ViewThemeable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30453966293B9D31003AE55B /* ViewThemeable.swift */; };
- 3045398B293B9E18003AE55B /* ViewThemeable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30453966293B9D31003AE55B /* ViewThemeable.swift */; };
- 3045398C293B9E18003AE55B /* ViewThemeable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30453966293B9D31003AE55B /* ViewThemeable.swift */; };
- 3045398D293B9E19003AE55B /* ViewThemeable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30453966293B9D31003AE55B /* ViewThemeable.swift */; };
- 3045398E293B9E19003AE55B /* ViewThemeable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30453966293B9D31003AE55B /* ViewThemeable.swift */; };
- 3045398F293B9E1A003AE55B /* ViewThemeable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30453966293B9D31003AE55B /* ViewThemeable.swift */; };
- 30453990293B9E1C003AE55B /* ToolTipViewUpdatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30453968293B9DB4003AE55B /* ToolTipViewUpdatable.swift */; };
- 30453992293B9E1C003AE55B /* ToolTipViewUpdatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30453968293B9DB4003AE55B /* ToolTipViewUpdatable.swift */; };
- 30453993293B9E1D003AE55B /* ToolTipViewUpdatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30453968293B9DB4003AE55B /* ToolTipViewUpdatable.swift */; };
- 30453994293B9E1D003AE55B /* ToolTipViewUpdatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30453968293B9DB4003AE55B /* ToolTipViewUpdatable.swift */; };
- 30453995293B9E1D003AE55B /* ToolTipViewUpdatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30453968293B9DB4003AE55B /* ToolTipViewUpdatable.swift */; };
- 30453996293B9E1E003AE55B /* ToolTipViewUpdatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30453968293B9DB4003AE55B /* ToolTipViewUpdatable.swift */; };
- 30453997293B9E1E003AE55B /* ToolTipViewUpdatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30453968293B9DB4003AE55B /* ToolTipViewUpdatable.swift */; };
- 30453998293B9E20003AE55B /* ToolTipViewDatasourceable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3045396A293B9DC9003AE55B /* ToolTipViewDatasourceable.swift */; };
- 3045399A293B9E22003AE55B /* ToolTipViewDatasourceable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3045396A293B9DC9003AE55B /* ToolTipViewDatasourceable.swift */; };
- 3045399B293B9E22003AE55B /* ToolTipViewDatasourceable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3045396A293B9DC9003AE55B /* ToolTipViewDatasourceable.swift */; };
- 3045399C293B9E22003AE55B /* ToolTipViewDatasourceable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3045396A293B9DC9003AE55B /* ToolTipViewDatasourceable.swift */; };
- 3045399D293B9E23003AE55B /* ToolTipViewDatasourceable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3045396A293B9DC9003AE55B /* ToolTipViewDatasourceable.swift */; };
- 3045399E293B9E23003AE55B /* ToolTipViewDatasourceable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3045396A293B9DC9003AE55B /* ToolTipViewDatasourceable.swift */; };
- 3045399F293B9E24003AE55B /* ToolTipViewDatasourceable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3045396A293B9DC9003AE55B /* ToolTipViewDatasourceable.swift */; };
- 30489C1E2936DAB700B59393 /* ToolTipView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30489C1D2936DAB700B59393 /* ToolTipView.swift */; };
- 30489C1F2936DAFE00B59393 /* ToolTipView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30489C1D2936DAB700B59393 /* ToolTipView.swift */; };
- 30489C212936DAFF00B59393 /* ToolTipView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30489C1D2936DAB700B59393 /* ToolTipView.swift */; };
- 30489C222936DB0000B59393 /* ToolTipView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30489C1D2936DAB700B59393 /* ToolTipView.swift */; };
- 30489C232936DB0100B59393 /* ToolTipView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30489C1D2936DAB700B59393 /* ToolTipView.swift */; };
- 30489C242936DB0100B59393 /* ToolTipView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30489C1D2936DAB700B59393 /* ToolTipView.swift */; };
- 30489C252936DB0100B59393 /* ToolTipView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30489C1D2936DAB700B59393 /* ToolTipView.swift */; };
- 30489C262936DB0200B59393 /* ToolTipView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30489C1D2936DAB700B59393 /* ToolTipView.swift */; };
38BD213422D5907F00C6795D /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 38BD213322D5907F00C6795D /* AppDelegate.swift */; };
38BD213622D5907F00C6795D /* InstallationVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 38BD213522D5907F00C6795D /* InstallationVC.swift */; };
38BD213922D5907F00C6795D /* AppScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 38BD213722D5907F00C6795D /* AppScreen.storyboard */; };
@@ -382,15 +334,12 @@
D1AB5B2729C757A100CCB0C1 /* InstallScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1A2DCB027AD37BD0057A10D /* InstallScreen.swift */; };
D1AB5B2929C757A100CCB0C1 /* SVInterfaceVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D17193EF27AECB350038660B /* SVInterfaceVariables.swift */; };
D1AB5B2A29C757A100CCB0C1 /* ScribeColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE1378C228F5D7AC00E1CBC2 /* ScribeColor.swift */; };
- D1AB5B2B29C757A100CCB0C1 /* ToolTipViewTheme.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3045396E293B9DF2003AE55B /* ToolTipViewTheme.swift */; };
D1AB5B2C29C757A100CCB0C1 /* AppTextStyling.swift in Sources */ = {isa = PBXBuildFile; fileRef = D17193BF27AEA33A0038660B /* AppTextStyling.swift */; };
D1AB5B2D29C757A100CCB0C1 /* ITInterfaceVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1B81D5227BBBA360085FE5E /* ITInterfaceVariables.swift */; };
D1AB5B2E29C757A100CCB0C1 /* PTInterfaceVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D17193D727AECA450038660B /* PTInterfaceVariables.swift */; };
- D1AB5B2F29C757A100CCB0C1 /* ToolTipView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30489C1D2936DAB700B59393 /* ToolTipView.swift */; };
D1AB5B3129C757A100CCB0C1 /* KeyAltChars.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1B0719F27C6A1AA00FD7DBD /* KeyAltChars.swift */; };
D1AB5B3329C757A100CCB0C1 /* FR-AZERTYInterfaceVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D180EC0228FDFABF0018E29B /* FR-AZERTYInterfaceVariables.swift */; };
D1AB5B3429C757A100CCB0C1 /* KeyboardStyling.swift in Sources */ = {isa = PBXBuildFile; fileRef = D171943727AEF0560038660B /* KeyboardStyling.swift */; };
- D1AB5B3529C757A100CCB0C1 /* ToolTipViewDatasource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3045396C293B9DDC003AE55B /* ToolTipViewDatasource.swift */; };
D1AB5B3629C757A100CCB0C1 /* CommandBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = D111E9A127AFE4F300746F92 /* CommandBar.swift */; };
D1AB5B3929C757A100CCB0C1 /* KeyboardKeys.swift in Sources */ = {isa = PBXBuildFile; fileRef = D171942E27AEDE110038660B /* KeyboardKeys.swift */; };
D1AB5B3A29C757A100CCB0C1 /* Conjugate.swift in Sources */ = {isa = PBXBuildFile; fileRef = D171946427AF31770038660B /* Conjugate.swift */; };
@@ -402,14 +351,11 @@
D1AB5B4229C757A100CCB0C1 /* ColorVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D190B240274056D400705659 /* ColorVariables.swift */; };
D1AB5B4329C757A100CCB0C1 /* Plural.swift in Sources */ = {isa = PBXBuildFile; fileRef = D111E9A927AFE78600746F92 /* Plural.swift */; };
D1AB5B4429C757A100CCB0C1 /* Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 38DD94F022D6A40000FF8845 /* Extensions.swift */; };
- D1AB5B4529C757A100CCB0C1 /* ToolTipViewDatasourceable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3045396A293B9DC9003AE55B /* ToolTipViewDatasourceable.swift */; };
- D1AB5B4629C757A100CCB0C1 /* ToolTipViewUpdatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30453968293B9DB4003AE55B /* ToolTipViewUpdatable.swift */; };
D1AB5B4829C757A100CCB0C1 /* KeyboardViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D190B2592742565500705659 /* KeyboardViewController.swift */; };
D1AB5B4929C757A100CCB0C1 /* UIColor+ScribeColors.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE1378C328F5D7AC00E1CBC2 /* UIColor+ScribeColors.swift */; };
D1AB5B4B29C757A100CCB0C1 /* InterfaceVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D190B2492741B31F00705659 /* InterfaceVariables.swift */; };
D1AB5B4C29C757A100CCB0C1 /* FR-QWERTYInterfaceVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D17693DC28FC8CC300DF0FBB /* FR-QWERTYInterfaceVariables.swift */; };
D1AB5B4D29C757A100CCB0C1 /* RUInterfaceVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D17193DF27AECAA60038660B /* RUInterfaceVariables.swift */; };
- D1AB5B4E29C757A100CCB0C1 /* ViewThemeable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30453966293B9D31003AE55B /* ViewThemeable.swift */; };
D1AB5B4F29C757A100CCB0C1 /* ScribeKey.swift in Sources */ = {isa = PBXBuildFile; fileRef = D171945727AF237C0038660B /* ScribeKey.swift */; };
D1AB5B5029C757A100CCB0C1 /* KeyAnimation.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1B0719627C63C9100FD7DBD /* KeyAnimation.swift */; };
D1AB5B5629C757A100CCB0C1 /* Keyboard.xib in Resources */ = {isa = PBXBuildFile; fileRef = D1C0ACD92719E0AA001E11C3 /* Keyboard.xib */; };
@@ -417,15 +363,12 @@
D1AFDF0529CA66D00033BF27 /* InstallScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1A2DCB027AD37BD0057A10D /* InstallScreen.swift */; };
D1AFDF0729CA66D00033BF27 /* SVInterfaceVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D17193EF27AECB350038660B /* SVInterfaceVariables.swift */; };
D1AFDF0829CA66D00033BF27 /* ScribeColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE1378C228F5D7AC00E1CBC2 /* ScribeColor.swift */; };
- D1AFDF0929CA66D00033BF27 /* ToolTipViewTheme.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3045396E293B9DF2003AE55B /* ToolTipViewTheme.swift */; };
D1AFDF0A29CA66D00033BF27 /* AppTextStyling.swift in Sources */ = {isa = PBXBuildFile; fileRef = D17193BF27AEA33A0038660B /* AppTextStyling.swift */; };
D1AFDF0B29CA66D00033BF27 /* ITInterfaceVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1B81D5227BBBA360085FE5E /* ITInterfaceVariables.swift */; };
D1AFDF0C29CA66D00033BF27 /* PTInterfaceVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D17193D727AECA450038660B /* PTInterfaceVariables.swift */; };
- D1AFDF0D29CA66D00033BF27 /* ToolTipView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30489C1D2936DAB700B59393 /* ToolTipView.swift */; };
D1AFDF0F29CA66D00033BF27 /* KeyAltChars.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1B0719F27C6A1AA00FD7DBD /* KeyAltChars.swift */; };
D1AFDF1129CA66D00033BF27 /* FR-AZERTYInterfaceVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D180EC0228FDFABF0018E29B /* FR-AZERTYInterfaceVariables.swift */; };
D1AFDF1229CA66D00033BF27 /* KeyboardStyling.swift in Sources */ = {isa = PBXBuildFile; fileRef = D171943727AEF0560038660B /* KeyboardStyling.swift */; };
- D1AFDF1329CA66D00033BF27 /* ToolTipViewDatasource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3045396C293B9DDC003AE55B /* ToolTipViewDatasource.swift */; };
D1AFDF1429CA66D00033BF27 /* CommandBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = D111E9A127AFE4F300746F92 /* CommandBar.swift */; };
D1AFDF1729CA66D00033BF27 /* KeyboardKeys.swift in Sources */ = {isa = PBXBuildFile; fileRef = D171942E27AEDE110038660B /* KeyboardKeys.swift */; };
D1AFDF1829CA66D00033BF27 /* Conjugate.swift in Sources */ = {isa = PBXBuildFile; fileRef = D171946427AF31770038660B /* Conjugate.swift */; };
@@ -437,14 +380,11 @@
D1AFDF2029CA66D00033BF27 /* ColorVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D190B240274056D400705659 /* ColorVariables.swift */; };
D1AFDF2129CA66D00033BF27 /* Plural.swift in Sources */ = {isa = PBXBuildFile; fileRef = D111E9A927AFE78600746F92 /* Plural.swift */; };
D1AFDF2229CA66D00033BF27 /* Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 38DD94F022D6A40000FF8845 /* Extensions.swift */; };
- D1AFDF2329CA66D00033BF27 /* ToolTipViewDatasourceable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3045396A293B9DC9003AE55B /* ToolTipViewDatasourceable.swift */; };
- D1AFDF2429CA66D00033BF27 /* ToolTipViewUpdatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30453968293B9DB4003AE55B /* ToolTipViewUpdatable.swift */; };
D1AFDF2629CA66D00033BF27 /* KeyboardViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D190B2592742565500705659 /* KeyboardViewController.swift */; };
D1AFDF2729CA66D00033BF27 /* UIColor+ScribeColors.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE1378C328F5D7AC00E1CBC2 /* UIColor+ScribeColors.swift */; };
D1AFDF2929CA66D00033BF27 /* InterfaceVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D190B2492741B31F00705659 /* InterfaceVariables.swift */; };
D1AFDF2A29CA66D00033BF27 /* FR-QWERTYInterfaceVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D17693DC28FC8CC300DF0FBB /* FR-QWERTYInterfaceVariables.swift */; };
D1AFDF2B29CA66D00033BF27 /* RUInterfaceVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D17193DF27AECAA60038660B /* RUInterfaceVariables.swift */; };
- D1AFDF2C29CA66D00033BF27 /* ViewThemeable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30453966293B9D31003AE55B /* ViewThemeable.swift */; };
D1AFDF2D29CA66D00033BF27 /* ScribeKey.swift in Sources */ = {isa = PBXBuildFile; fileRef = D171945727AF237C0038660B /* ScribeKey.swift */; };
D1AFDF2E29CA66D00033BF27 /* KeyAnimation.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1B0719627C63C9100FD7DBD /* KeyAnimation.swift */; };
D1AFDF3429CA66D00033BF27 /* Keyboard.xib in Resources */ = {isa = PBXBuildFile; fileRef = D1C0ACD92719E0AA001E11C3 /* Keyboard.xib */; };
@@ -452,15 +392,12 @@
D1AFDF8229CA66F40033BF27 /* InstallScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1A2DCB027AD37BD0057A10D /* InstallScreen.swift */; };
D1AFDF8429CA66F40033BF27 /* SVInterfaceVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D17193EF27AECB350038660B /* SVInterfaceVariables.swift */; };
D1AFDF8529CA66F40033BF27 /* ScribeColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE1378C228F5D7AC00E1CBC2 /* ScribeColor.swift */; };
- D1AFDF8629CA66F40033BF27 /* ToolTipViewTheme.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3045396E293B9DF2003AE55B /* ToolTipViewTheme.swift */; };
D1AFDF8729CA66F40033BF27 /* AppTextStyling.swift in Sources */ = {isa = PBXBuildFile; fileRef = D17193BF27AEA33A0038660B /* AppTextStyling.swift */; };
D1AFDF8829CA66F40033BF27 /* ITInterfaceVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1B81D5227BBBA360085FE5E /* ITInterfaceVariables.swift */; };
D1AFDF8929CA66F40033BF27 /* PTInterfaceVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D17193D727AECA450038660B /* PTInterfaceVariables.swift */; };
- D1AFDF8A29CA66F40033BF27 /* ToolTipView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30489C1D2936DAB700B59393 /* ToolTipView.swift */; };
D1AFDF8C29CA66F40033BF27 /* KeyAltChars.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1B0719F27C6A1AA00FD7DBD /* KeyAltChars.swift */; };
D1AFDF8E29CA66F40033BF27 /* FR-AZERTYInterfaceVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D180EC0228FDFABF0018E29B /* FR-AZERTYInterfaceVariables.swift */; };
D1AFDF8F29CA66F40033BF27 /* KeyboardStyling.swift in Sources */ = {isa = PBXBuildFile; fileRef = D171943727AEF0560038660B /* KeyboardStyling.swift */; };
- D1AFDF9029CA66F40033BF27 /* ToolTipViewDatasource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3045396C293B9DDC003AE55B /* ToolTipViewDatasource.swift */; };
D1AFDF9129CA66F40033BF27 /* CommandBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = D111E9A127AFE4F300746F92 /* CommandBar.swift */; };
D1AFDF9429CA66F40033BF27 /* KeyboardKeys.swift in Sources */ = {isa = PBXBuildFile; fileRef = D171942E27AEDE110038660B /* KeyboardKeys.swift */; };
D1AFDF9529CA66F40033BF27 /* Conjugate.swift in Sources */ = {isa = PBXBuildFile; fileRef = D171946427AF31770038660B /* Conjugate.swift */; };
@@ -472,14 +409,11 @@
D1AFDF9D29CA66F40033BF27 /* ColorVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D190B240274056D400705659 /* ColorVariables.swift */; };
D1AFDF9E29CA66F40033BF27 /* Plural.swift in Sources */ = {isa = PBXBuildFile; fileRef = D111E9A927AFE78600746F92 /* Plural.swift */; };
D1AFDF9F29CA66F40033BF27 /* Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 38DD94F022D6A40000FF8845 /* Extensions.swift */; };
- D1AFDFA029CA66F40033BF27 /* ToolTipViewDatasourceable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3045396A293B9DC9003AE55B /* ToolTipViewDatasourceable.swift */; };
- D1AFDFA129CA66F40033BF27 /* ToolTipViewUpdatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30453968293B9DB4003AE55B /* ToolTipViewUpdatable.swift */; };
D1AFDFA329CA66F40033BF27 /* KeyboardViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D190B2592742565500705659 /* KeyboardViewController.swift */; };
D1AFDFA429CA66F40033BF27 /* UIColor+ScribeColors.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE1378C328F5D7AC00E1CBC2 /* UIColor+ScribeColors.swift */; };
D1AFDFA629CA66F40033BF27 /* InterfaceVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D190B2492741B31F00705659 /* InterfaceVariables.swift */; };
D1AFDFA729CA66F40033BF27 /* FR-QWERTYInterfaceVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D17693DC28FC8CC300DF0FBB /* FR-QWERTYInterfaceVariables.swift */; };
D1AFDFA829CA66F40033BF27 /* RUInterfaceVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D17193DF27AECAA60038660B /* RUInterfaceVariables.swift */; };
- D1AFDFA929CA66F40033BF27 /* ViewThemeable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30453966293B9D31003AE55B /* ViewThemeable.swift */; };
D1AFDFAA29CA66F40033BF27 /* ScribeKey.swift in Sources */ = {isa = PBXBuildFile; fileRef = D171945727AF237C0038660B /* ScribeKey.swift */; };
D1AFDFAB29CA66F40033BF27 /* KeyAnimation.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1B0719627C63C9100FD7DBD /* KeyAnimation.swift */; };
D1AFDFB129CA66F40033BF27 /* Keyboard.xib in Resources */ = {isa = PBXBuildFile; fileRef = D1C0ACD92719E0AA001E11C3 /* Keyboard.xib */; };
@@ -489,15 +423,12 @@
D1AFDFD829CA6E900033BF27 /* InstallScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1A2DCB027AD37BD0057A10D /* InstallScreen.swift */; };
D1AFDFDA29CA6E900033BF27 /* SVInterfaceVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D17193EF27AECB350038660B /* SVInterfaceVariables.swift */; };
D1AFDFDB29CA6E900033BF27 /* ScribeColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE1378C228F5D7AC00E1CBC2 /* ScribeColor.swift */; };
- D1AFDFDC29CA6E900033BF27 /* ToolTipViewTheme.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3045396E293B9DF2003AE55B /* ToolTipViewTheme.swift */; };
D1AFDFDD29CA6E900033BF27 /* AppTextStyling.swift in Sources */ = {isa = PBXBuildFile; fileRef = D17193BF27AEA33A0038660B /* AppTextStyling.swift */; };
D1AFDFDE29CA6E900033BF27 /* ITInterfaceVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1B81D5227BBBA360085FE5E /* ITInterfaceVariables.swift */; };
D1AFDFDF29CA6E900033BF27 /* PTInterfaceVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D17193D727AECA450038660B /* PTInterfaceVariables.swift */; };
- D1AFDFE029CA6E900033BF27 /* ToolTipView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30489C1D2936DAB700B59393 /* ToolTipView.swift */; };
D1AFDFE229CA6E900033BF27 /* KeyAltChars.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1B0719F27C6A1AA00FD7DBD /* KeyAltChars.swift */; };
D1AFDFE429CA6E900033BF27 /* FR-AZERTYInterfaceVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D180EC0228FDFABF0018E29B /* FR-AZERTYInterfaceVariables.swift */; };
D1AFDFE529CA6E900033BF27 /* KeyboardStyling.swift in Sources */ = {isa = PBXBuildFile; fileRef = D171943727AEF0560038660B /* KeyboardStyling.swift */; };
- D1AFDFE629CA6E900033BF27 /* ToolTipViewDatasource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3045396C293B9DDC003AE55B /* ToolTipViewDatasource.swift */; };
D1AFDFE729CA6E900033BF27 /* CommandBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = D111E9A127AFE4F300746F92 /* CommandBar.swift */; };
D1AFDFEA29CA6E900033BF27 /* KeyboardKeys.swift in Sources */ = {isa = PBXBuildFile; fileRef = D171942E27AEDE110038660B /* KeyboardKeys.swift */; };
D1AFDFEB29CA6E900033BF27 /* Conjugate.swift in Sources */ = {isa = PBXBuildFile; fileRef = D171946427AF31770038660B /* Conjugate.swift */; };
@@ -509,14 +440,11 @@
D1AFDFF329CA6E900033BF27 /* ColorVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D190B240274056D400705659 /* ColorVariables.swift */; };
D1AFDFF429CA6E900033BF27 /* Plural.swift in Sources */ = {isa = PBXBuildFile; fileRef = D111E9A927AFE78600746F92 /* Plural.swift */; };
D1AFDFF529CA6E900033BF27 /* Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 38DD94F022D6A40000FF8845 /* Extensions.swift */; };
- D1AFDFF629CA6E900033BF27 /* ToolTipViewDatasourceable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3045396A293B9DC9003AE55B /* ToolTipViewDatasourceable.swift */; };
- D1AFDFF729CA6E900033BF27 /* ToolTipViewUpdatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30453968293B9DB4003AE55B /* ToolTipViewUpdatable.swift */; };
D1AFDFF929CA6E900033BF27 /* KeyboardViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D190B2592742565500705659 /* KeyboardViewController.swift */; };
D1AFDFFA29CA6E900033BF27 /* UIColor+ScribeColors.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE1378C328F5D7AC00E1CBC2 /* UIColor+ScribeColors.swift */; };
D1AFDFFC29CA6E900033BF27 /* InterfaceVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D190B2492741B31F00705659 /* InterfaceVariables.swift */; };
D1AFDFFD29CA6E900033BF27 /* FR-QWERTYInterfaceVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D17693DC28FC8CC300DF0FBB /* FR-QWERTYInterfaceVariables.swift */; };
D1AFDFFE29CA6E900033BF27 /* RUInterfaceVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D17193DF27AECAA60038660B /* RUInterfaceVariables.swift */; };
- D1AFDFFF29CA6E900033BF27 /* ViewThemeable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30453966293B9D31003AE55B /* ViewThemeable.swift */; };
D1AFE00029CA6E900033BF27 /* ScribeKey.swift in Sources */ = {isa = PBXBuildFile; fileRef = D171945727AF237C0038660B /* ScribeKey.swift */; };
D1AFE00129CA6E900033BF27 /* KeyAnimation.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1B0719627C63C9100FD7DBD /* KeyAnimation.swift */; };
D1AFE00729CA6E900033BF27 /* Keyboard.xib in Resources */ = {isa = PBXBuildFile; fileRef = D1C0ACD92719E0AA001E11C3 /* Keyboard.xib */; };
@@ -622,6 +550,18 @@
E9202DF02F0FAA0C001590FC /* DownloadStateManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = E9202DEF2F0FAA0C001590FC /* DownloadStateManager.swift */; };
E93179A42F03AE78002ED334 /* Localizable.xcstrings in Resources */ = {isa = PBXBuildFile; fileRef = E93179A32F03AE77002ED334 /* Localizable.xcstrings */; };
E96111482F04EC6B001E4F95 /* InstallationDownload.swift in Sources */ = {isa = PBXBuildFile; fileRef = E96111472F04EC62001E4F95 /* InstallationDownload.swift */; };
+ E970C3672F59E73600502DA3 /* Localizable.xcstrings in Resources */ = {isa = PBXBuildFile; fileRef = E93179A32F03AE77002ED334 /* Localizable.xcstrings */; };
+ E970C3682F59E73600502DA3 /* Localizable.xcstrings in Resources */ = {isa = PBXBuildFile; fileRef = E93179A32F03AE77002ED334 /* Localizable.xcstrings */; };
+ E970C3692F59E73600502DA3 /* Localizable.xcstrings in Resources */ = {isa = PBXBuildFile; fileRef = E93179A32F03AE77002ED334 /* Localizable.xcstrings */; };
+ E970C36A2F59E73600502DA3 /* Localizable.xcstrings in Resources */ = {isa = PBXBuildFile; fileRef = E93179A32F03AE77002ED334 /* Localizable.xcstrings */; };
+ E970C36B2F59E73600502DA3 /* Localizable.xcstrings in Resources */ = {isa = PBXBuildFile; fileRef = E93179A32F03AE77002ED334 /* Localizable.xcstrings */; };
+ E970C36C2F59E73600502DA3 /* Localizable.xcstrings in Resources */ = {isa = PBXBuildFile; fileRef = E93179A32F03AE77002ED334 /* Localizable.xcstrings */; };
+ E970C36D2F59E73600502DA3 /* Localizable.xcstrings in Resources */ = {isa = PBXBuildFile; fileRef = E93179A32F03AE77002ED334 /* Localizable.xcstrings */; };
+ E970C36E2F59E73600502DA3 /* Localizable.xcstrings in Resources */ = {isa = PBXBuildFile; fileRef = E93179A32F03AE77002ED334 /* Localizable.xcstrings */; };
+ E970C36F2F59E73600502DA3 /* Localizable.xcstrings in Resources */ = {isa = PBXBuildFile; fileRef = E93179A32F03AE77002ED334 /* Localizable.xcstrings */; };
+ E970C3702F59E73600502DA3 /* Localizable.xcstrings in Resources */ = {isa = PBXBuildFile; fileRef = E93179A32F03AE77002ED334 /* Localizable.xcstrings */; };
+ E970C3712F59E73600502DA3 /* Localizable.xcstrings in Resources */ = {isa = PBXBuildFile; fileRef = E93179A32F03AE77002ED334 /* Localizable.xcstrings */; };
+ E970C3722F59E73600502DA3 /* Localizable.xcstrings in Resources */ = {isa = PBXBuildFile; fileRef = E93179A32F03AE77002ED334 /* Localizable.xcstrings */; };
E978B3E42F431BE6006AED44 /* Yams in Frameworks */ = {isa = PBXBuildFile; productRef = E978B3E32F431BE6006AED44 /* Yams */; };
E97D5A4D2F43235D00DE18B7 /* Yams in Frameworks */ = {isa = PBXBuildFile; productRef = E97D5A4C2F43235D00DE18B7 /* Yams */; };
E97D5A4F2F43236600DE18B7 /* Yams in Frameworks */ = {isa = PBXBuildFile; productRef = E97D5A4E2F43236600DE18B7 /* Yams */; };
@@ -666,28 +606,22 @@
E996495A2E98A12100200F53 /* GRDB in Frameworks */ = {isa = PBXBuildFile; productRef = E99649592E98A12100200F53 /* GRDB */; };
E996495B2E98A31B00200F53 /* KeyboardProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 198369CB2C7980BA00C1B583 /* KeyboardProvider.swift */; };
E996495C2E98A32900200F53 /* KeyboardViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D190B2592742565500705659 /* KeyboardViewController.swift */; };
- E996495D2E98A34C00200F53 /* ToolTipView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30489C1D2936DAB700B59393 /* ToolTipView.swift */; };
- E996495E2E98A35700200F53 /* ToolTipViewDatasource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3045396C293B9DDC003AE55B /* ToolTipViewDatasource.swift */; };
E996495F2E98A36700200F53 /* InterfaceVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D190B2492741B31F00705659 /* InterfaceVariables.swift */; };
E99649602E98A37500200F53 /* InterfaceConstants.swift in Sources */ = {isa = PBXBuildFile; fileRef = EDC364682AE408F20001E456 /* InterfaceConstants.swift */; };
E99649612E98A39300200F53 /* ENInterfaceVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1CDED7A2A859FBF00098546 /* ENInterfaceVariables.swift */; };
E99649622E98A39D00200F53 /* FR-AZERTYInterfaceVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D180EC0228FDFABF0018E29B /* FR-AZERTYInterfaceVariables.swift */; };
- E99649632E98A3C500200F53 /* ToolTipViewUpdatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30453968293B9DB4003AE55B /* ToolTipViewUpdatable.swift */; };
- E99649642E98A41A00200F53 /* ViewThemeable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30453966293B9D31003AE55B /* ViewThemeable.swift */; };
E99649652E98A47200200F53 /* KeyAltChars.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1B0719F27C6A1AA00FD7DBD /* KeyAltChars.swift */; };
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 */; };
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 */; };
E996496D2E98A5E400200F53 /* InformationToolTipData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30453963293B9D18003AE55B /* InformationToolTipData.swift */; };
E996496E2E98A5FE00200F53 /* Conjugate.swift in Sources */ = {isa = PBXBuildFile; fileRef = D171946427AF31770038660B /* Conjugate.swift */; };
E99649712E98A62C00200F53 /* Utilities.swift in Sources */ = {isa = PBXBuildFile; fileRef = D16DD3A429E78A1500FB9022 /* Utilities.swift */; };
E99649722E98A64700200F53 /* Annotate.swift in Sources */ = {isa = PBXBuildFile; fileRef = D111E9B927AFE7B200746F92 /* Annotate.swift */; };
E99649792E98A7A600200F53 /* CommandBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = D111E9A127AFE4F300746F92 /* CommandBar.swift */; };
E996497A2E98A7B600200F53 /* ScribeKey.swift in Sources */ = {isa = PBXBuildFile; fileRef = D171945727AF237C0038660B /* ScribeKey.swift */; };
- E996497B2E98A7E600200F53 /* ToolTipViewDatasourceable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3045396A293B9DC9003AE55B /* ToolTipViewDatasourceable.swift */; };
E996497C2E98A7F400200F53 /* DEInterfaceVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D17193CF27AEC9EC0038660B /* DEInterfaceVariables.swift */; };
E996497D2E98A80700200F53 /* KeyboardBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19DC85F92C7772FC006E32FD /* KeyboardBuilder.swift */; };
E996497E2E98A81300200F53 /* ITInterfaceVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1B81D5227BBBA360085FE5E /* ITInterfaceVariables.swift */; };
@@ -759,7 +693,6 @@
F786BADA2F1E8F70003F7505 /* AboutTableData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1406B7862A2DFCDD001DF45B /* AboutTableData.swift */; };
F786BADB2F1E8F70003F7505 /* DownloadStateManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = E9202DEF2F0FAA0C001590FC /* DownloadStateManager.swift */; };
F786BADC2F1E8F70003F7505 /* IDInterfaceVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = E9FAC3892E9894F9008E00AC /* IDInterfaceVariables.swift */; };
- F786BADE2F1E8F70003F7505 /* ToolTipViewDatasource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3045396C293B9DDC003AE55B /* ToolTipViewDatasource.swift */; };
F786BADF2F1E8F70003F7505 /* Translate.swift in Sources */ = {isa = PBXBuildFile; fileRef = D111E9B127AFE79500746F92 /* Translate.swift */; };
F786BAE32F1E8F70003F7505 /* ScribeKey.swift in Sources */ = {isa = PBXBuildFile; fileRef = D171945727AF237C0038660B /* ScribeKey.swift */; };
F786BAE42F1E8F70003F7505 /* AppExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1406B78B2A3209CF001DF45B /* AppExtensions.swift */; };
@@ -783,8 +716,6 @@
F786BAF72F1E8F70003F7505 /* SVInterfaceVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D17193EF27AECB350038660B /* SVInterfaceVariables.swift */; };
F786BAF92F1E8F70003F7505 /* TableViewTemplateViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 140158A12A4EDB2200D14E52 /* TableViewTemplateViewController.swift */; };
F786BAFB2F1E8F70003F7505 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 38BD213322D5907F00C6795D /* AppDelegate.swift */; };
- F786BAFC2F1E8F70003F7505 /* ToolTipView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30489C1D2936DAB700B59393 /* ToolTipView.swift */; };
- F786BAFD2F1E8F70003F7505 /* ToolTipViewTheme.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3045396E293B9DF2003AE55B /* ToolTipViewTheme.swift */; };
F786BAFE2F1E8F70003F7505 /* RadioTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5A68DA3D2CDE7B7900897FAD /* RadioTableViewCell.swift */; };
F786BAFF2F1E8F70003F7505 /* CommandVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D190B2462741B24F00705659 /* CommandVariables.swift */; };
F786BB002F1E8F70003F7505 /* DownloadDataScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = E9CE5EA72F063D870068A930 /* DownloadDataScreen.swift */; };
@@ -794,7 +725,6 @@
F786BB052F1E8F70003F7505 /* UIDeviceExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84AF4D872C3575EA009AE0D2 /* UIDeviceExtensions.swift */; };
F786BB062F1E8F70003F7505 /* TipCardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 69B81EBB2BFB8C77008CAB85 /* TipCardView.swift */; };
F786BB072F1E8F70003F7505 /* InformationToolTipData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30453963293B9D18003AE55B /* InformationToolTipData.swift */; };
- F786BB082F1E8F70003F7505 /* ToolTipViewUpdatable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30453968293B9DB4003AE55B /* ToolTipViewUpdatable.swift */; };
F786BB092F1E8F70003F7505 /* RUInterfaceVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D17193DF27AECAA60038660B /* RUInterfaceVariables.swift */; };
F786BB0A2F1E8F70003F7505 /* ITInterfaceVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1B81D5227BBBA360085FE5E /* ITInterfaceVariables.swift */; };
F786BB0B2F1E8F70003F7505 /* PTInterfaceVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D17193D727AECA450038660B /* PTInterfaceVariables.swift */; };
@@ -803,7 +733,6 @@
F786BB0E2F1E8F70003F7505 /* Plural.swift in Sources */ = {isa = PBXBuildFile; fileRef = D111E9A927AFE78600746F92 /* Plural.swift */; };
F786BB0F2F1E8F70003F7505 /* InterfaceVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D190B2492741B31F00705659 /* InterfaceVariables.swift */; };
F786BB102F1E8F70003F7505 /* CommandBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = D111E9A127AFE4F300746F92 /* CommandBar.swift */; };
- F786BB122F1E8F70003F7505 /* ViewThemeable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30453966293B9D31003AE55B /* ViewThemeable.swift */; };
F786BB132F1E8F70003F7505 /* ColorVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D190B240274056D400705659 /* ColorVariables.swift */; };
F786BB142F1E8F70003F7505 /* SelectionViewTemplateViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5A68DA3F2CDE7B7900897FAD /* SelectionViewTemplateViewController.swift */; };
F786BB152F1E8F70003F7505 /* AboutTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED2486F12B0B4E8C0038AE6A /* AboutTableViewCell.swift */; };
@@ -812,7 +741,6 @@
F786BB192F1E8F70003F7505 /* ParentTableCellModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 147797B22A2CD5AB0044A53E /* ParentTableCellModel.swift */; };
F786BB1A2F1E8F70003F7505 /* WrapperCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = E9FEE6CA2EF1433E003A9266 /* WrapperCell.swift */; };
F786BB1B2F1E8F70003F7505 /* WikimediaAndScribe.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1401589A2A45A07200D14E52 /* WikimediaAndScribe.swift */; };
- F786BB1C2F1E8F70003F7505 /* ToolTipViewDatasourceable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3045396A293B9DC9003AE55B /* ToolTipViewDatasourceable.swift */; };
F786BB1D2F1E8F70003F7505 /* KeyAltChars.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1B0719F27C6A1AA00FD7DBD /* KeyAltChars.swift */; };
F786BB1E2F1E8F70003F7505 /* NBInterfaceVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1CDED802A85A12400098546 /* NBInterfaceVariables.swift */; };
F786BB1F2F1E8F70003F7505 /* FR-QWERTYInterfaceVariables.swift in Sources */ = {isa = PBXBuildFile; fileRef = D17693DC28FC8CC300DF0FBB /* FR-QWERTYInterfaceVariables.swift */; };
@@ -1078,12 +1006,6 @@
198369CB2C7980BA00C1B583 /* KeyboardProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KeyboardProvider.swift; sourceTree = ""; };
19DC85F92C7772FC006E32FD /* KeyboardBuilder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KeyboardBuilder.swift; sourceTree = ""; };
30453963293B9D18003AE55B /* InformationToolTipData.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InformationToolTipData.swift; sourceTree = ""; };
- 30453966293B9D31003AE55B /* ViewThemeable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewThemeable.swift; sourceTree = ""; };
- 30453968293B9DB4003AE55B /* ToolTipViewUpdatable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ToolTipViewUpdatable.swift; sourceTree = ""; };
- 3045396A293B9DC9003AE55B /* ToolTipViewDatasourceable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ToolTipViewDatasourceable.swift; sourceTree = ""; };
- 3045396C293B9DDC003AE55B /* ToolTipViewDatasource.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ToolTipViewDatasource.swift; sourceTree = ""; };
- 3045396E293B9DF2003AE55B /* ToolTipViewTheme.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ToolTipViewTheme.swift; sourceTree = ""; };
- 30489C1D2936DAB700B59393 /* ToolTipView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ToolTipView.swift; sourceTree = ""; };
38BD213022D5907E00C6795D /* Scribe.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Scribe.app; sourceTree = BUILT_PRODUCTS_DIR; };
38BD213322D5907F00C6795D /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; };
38BD213522D5907F00C6795D /* InstallationVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InstallationVC.swift; sourceTree = ""; };
@@ -1762,9 +1684,7 @@
30453961293B9D05003AE55B /* ToolTip */ = {
isa = PBXGroup;
children = (
- 30453965293B9D27003AE55B /* Protocol */,
30453962293B9D11003AE55B /* Model */,
- 30489C1D2936DAB700B59393 /* ToolTipView.swift */,
);
path = ToolTip;
sourceTree = "";
@@ -1773,22 +1693,10 @@
isa = PBXGroup;
children = (
30453963293B9D18003AE55B /* InformationToolTipData.swift */,
- 3045396C293B9DDC003AE55B /* ToolTipViewDatasource.swift */,
- 3045396E293B9DF2003AE55B /* ToolTipViewTheme.swift */,
);
path = Model;
sourceTree = "";
};
- 30453965293B9D27003AE55B /* Protocol */ = {
- isa = PBXGroup;
- children = (
- 30453966293B9D31003AE55B /* ViewThemeable.swift */,
- 30453968293B9DB4003AE55B /* ToolTipViewUpdatable.swift */,
- 3045396A293B9DC9003AE55B /* ToolTipViewDatasourceable.swift */,
- );
- path = Protocol;
- sourceTree = "";
- };
38BD212722D5907E00C6795D = {
isa = PBXGroup;
children = (
@@ -2723,6 +2631,7 @@
D1895BD62C1D816F009FBEB0 /* Settings.bundle in Resources */,
CE2C606928FC4DB1005FDAA1 /* Assets.xcassets in Resources */,
D1C0ACDA2719E0AA001E11C3 /* Keyboard.xib in Resources */,
+ E970C36A2F59E73600502DA3 /* Localizable.xcstrings in Resources */,
D16151012E9DBDED00131732 /* IDLanguageData.sqlite in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
@@ -2734,6 +2643,7 @@
D1895BD52C1D816F009FBEB0 /* Settings.bundle in Resources */,
D109A22B275B6A8B005E2271 /* Keyboard.xib in Resources */,
CE2C606828FC4DB0005FDAA1 /* Assets.xcassets in Resources */,
+ E970C3692F59E73600502DA3 /* Localizable.xcstrings in Resources */,
D16151002E9DBDED00131732 /* IDLanguageData.sqlite in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
@@ -2745,6 +2655,7 @@
D1895BDA2C1D816F009FBEB0 /* Settings.bundle in Resources */,
D109A231275B6A8C005E2271 /* Keyboard.xib in Resources */,
D16151052E9DBDED00131732 /* IDLanguageData.sqlite in Resources */,
+ E970C36F2F59E73600502DA3 /* Localizable.xcstrings in Resources */,
CE2C606B28FC4DB3005FDAA1 /* Assets.xcassets in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
@@ -2763,6 +2674,7 @@
D1895BDC2C1D816F009FBEB0 /* Settings.bundle in Resources */,
CE2C606D28FC4DB4005FDAA1 /* Assets.xcassets in Resources */,
D190B2582742525C00705659 /* Keyboard.xib in Resources */,
+ E970C3712F59E73600502DA3 /* Localizable.xcstrings in Resources */,
D16151072E9DBDED00131732 /* IDLanguageData.sqlite in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
@@ -2774,6 +2686,7 @@
D1895BDB2C1D816F009FBEB0 /* Settings.bundle in Resources */,
D1671A74275A1FC000A7C118 /* Keyboard.xib in Resources */,
D16151062E9DBDED00131732 /* IDLanguageData.sqlite in Resources */,
+ E970C3702F59E73600502DA3 /* Localizable.xcstrings in Resources */,
CE2C606C28FC4DB3005FDAA1 /* Assets.xcassets in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
@@ -2785,6 +2698,7 @@
D1895BDD2C1D816F009FBEB0 /* Settings.bundle in Resources */,
D18EA8A42760D6EE001E1358 /* Keyboard.xib in Resources */,
D16151082E9DBDED00131732 /* IDLanguageData.sqlite in Resources */,
+ E970C3722F59E73600502DA3 /* Localizable.xcstrings in Resources */,
CE2C606E28FC4DB4005FDAA1 /* Assets.xcassets in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
@@ -2796,6 +2710,7 @@
D1AB5B5629C757A100CCB0C1 /* Keyboard.xib in Resources */,
D1895BD92C1D816F009FBEB0 /* Settings.bundle in Resources */,
D1AB5B5929C757A100CCB0C1 /* Assets.xcassets in Resources */,
+ E970C36E2F59E73600502DA3 /* Localizable.xcstrings in Resources */,
D16151042E9DBDED00131732 /* IDLanguageData.sqlite in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
@@ -2807,6 +2722,7 @@
D1AFDF3429CA66D00033BF27 /* Keyboard.xib in Resources */,
D1895BD42C1D816F009FBEB0 /* Settings.bundle in Resources */,
D1AFDF3729CA66D00033BF27 /* Assets.xcassets in Resources */,
+ E970C3682F59E73600502DA3 /* Localizable.xcstrings in Resources */,
D16150FF2E9DBDED00131732 /* IDLanguageData.sqlite in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
@@ -2818,6 +2734,7 @@
D1AFDFB129CA66F40033BF27 /* Keyboard.xib in Resources */,
D1895BD32C1D816F009FBEB0 /* Settings.bundle in Resources */,
D1AFDFB429CA66F40033BF27 /* Assets.xcassets in Resources */,
+ E970C3672F59E73600502DA3 /* Localizable.xcstrings in Resources */,
D16150FE2E9DBDED00131732 /* IDLanguageData.sqlite in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
@@ -2829,6 +2746,7 @@
D1AFE00729CA6E900033BF27 /* Keyboard.xib in Resources */,
D1895BD72C1D816F009FBEB0 /* Settings.bundle in Resources */,
D1AFE00A29CA6E900033BF27 /* Assets.xcassets in Resources */,
+ E970C36B2F59E73600502DA3 /* Localizable.xcstrings in Resources */,
D16151022E9DBDED00131732 /* IDLanguageData.sqlite in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
@@ -2840,6 +2758,7 @@
D1895BD82C1D816F009FBEB0 /* Settings.bundle in Resources */,
D1B81D4127BBB70E0085FE5E /* Keyboard.xib in Resources */,
D16151032E9DBDED00131732 /* IDLanguageData.sqlite in Resources */,
+ E970C36D2F59E73600502DA3 /* Localizable.xcstrings in Resources */,
CE2C606A28FC4DB2005FDAA1 /* Assets.xcassets in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
@@ -2848,6 +2767,7 @@
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
+ E970C36C2F59E73600502DA3 /* Localizable.xcstrings in Resources */,
D16150FC2E9DBDC500131732 /* IDLanguageData.sqlite in Resources */,
E99649962E98B03C00200F53 /* Keyboard.xib in Resources */,
E99649972E98B11100200F53 /* Assets.xcassets in Resources */,
@@ -2928,7 +2848,6 @@
1406B7872A2DFCDD001DF45B /* AboutTableData.swift in Sources */,
E9202DF02F0FAA0C001590FC /* DownloadStateManager.swift in Sources */,
E996498A2E98AC6000200F53 /* IDInterfaceVariables.swift in Sources */,
- 3045396D293B9DDC003AE55B /* ToolTipViewDatasource.swift in Sources */,
D111E9B227AFE79500746F92 /* Translate.swift in Sources */,
D171945827AF237C0038660B /* ScribeKey.swift in Sources */,
1406B78C2A3209CF001DF45B /* AppExtensions.swift in Sources */,
@@ -2951,8 +2870,6 @@
D17193F027AECB350038660B /* SVInterfaceVariables.swift in Sources */,
140158A22A4EDB2200D14E52 /* TableViewTemplateViewController.swift in Sources */,
38BD213422D5907F00C6795D /* AppDelegate.swift in Sources */,
- 30489C1E2936DAB700B59393 /* ToolTipView.swift in Sources */,
- 3045396F293B9DF2003AE55B /* ToolTipViewTheme.swift in Sources */,
5A68DA412CDE7B7A00897FAD /* RadioTableViewCell.swift in Sources */,
D1F0367327AAE1B400CD7921 /* CommandVariables.swift in Sources */,
E9CE5EA82F063E230068A930 /* DownloadDataScreen.swift in Sources */,
@@ -2962,7 +2879,6 @@
84AF4D882C3575EA009AE0D2 /* UIDeviceExtensions.swift in Sources */,
69B81EBC2BFB8C77008CAB85 /* TipCardView.swift in Sources */,
30453964293B9D18003AE55B /* InformationToolTipData.swift in Sources */,
- 30453969293B9DB4003AE55B /* ToolTipViewUpdatable.swift in Sources */,
E91980C42F2F540A00B5852F /* NavigationStructure.swift in Sources */,
D17193E027AECAA60038660B /* RUInterfaceVariables.swift in Sources */,
D1B81D5327BBBA360085FE5E /* ITInterfaceVariables.swift in Sources */,
@@ -2974,7 +2890,6 @@
D1F0367227AAE12200CD7921 /* InterfaceVariables.swift in Sources */,
E9ED937F2F2A3C45008D7451 /* DynamicConjugationViewController.swift in Sources */,
D111E9A227AFE4F300746F92 /* CommandBar.swift in Sources */,
- 30453967293B9D31003AE55B /* ViewThemeable.swift in Sources */,
D1362A39274C106A00C00E48 /* ColorVariables.swift in Sources */,
5A68DA432CDE7B7A00897FAD /* SelectionViewTemplateViewController.swift in Sources */,
ED2486F32B0B4E8C0038AE6A /* AboutTableViewCell.swift in Sources */,
@@ -2983,7 +2898,6 @@
147797B32A2CD5AB0044A53E /* ParentTableCellModel.swift in Sources */,
E9FEE6CB2EF14351003A9266 /* WrapperCell.swift in Sources */,
1401589B2A45A07200D14E52 /* WikimediaAndScribe.swift in Sources */,
- 3045396B293B9DC9003AE55B /* ToolTipViewDatasourceable.swift in Sources */,
D1B071A027C6A1AA00FD7DBD /* KeyAltChars.swift in Sources */,
E97E651C2F2CDEC50070810A /* ESCommandVariables.swift in Sources */,
D1CDED812A85A12400098546 /* NBInterfaceVariables.swift in Sources */,
@@ -3006,17 +2920,14 @@
D171943A27AEF0560038660B /* KeyboardStyling.swift in Sources */,
CE1378C628F5D7AC00E1CBC2 /* ScribeColor.swift in Sources */,
D12EB9BB2C81C10900181765 /* HEInterfaceVariables.swift in Sources */,
- 30453972293B9E04003AE55B /* ToolTipViewTheme.swift in Sources */,
3045395B293B911C003AE55B /* AppTextStyling.swift in Sources */,
D1B81D5527BBBA360085FE5E /* ITInterfaceVariables.swift in Sources */,
D171943127AEDE110038660B /* KeyboardKeys.swift in Sources */,
- 30489C212936DAFF00B59393 /* ToolTipView.swift in Sources */,
D1CDED912A85AE6200098546 /* DAInterfaceVariables.swift in Sources */,
D1B071A227C6A1AA00FD7DBD /* KeyAltChars.swift in Sources */,
D190B26827426ACD00705659 /* KeyboardViewController.swift in Sources */,
D180EC0628FDFABF0018E29B /* FR-AZERTYInterfaceVariables.swift in Sources */,
E97E65212F2CDEC50070810A /* ESCommandVariables.swift in Sources */,
- 3045397A293B9E0B003AE55B /* ToolTipViewDatasource.swift in Sources */,
D171945A27AF237C0038660B /* ScribeKey.swift in Sources */,
D17193F227AECB350038660B /* SVInterfaceVariables.swift in Sources */,
D171946727AF31770038660B /* Conjugate.swift in Sources */,
@@ -3035,15 +2946,12 @@
D111E9BC27AFE7B200746F92 /* Annotate.swift in Sources */,
E97E650C2F2CDD5B0070810A /* ESInterfaceVariables.swift in Sources */,
38DD94F122D6A40000FF8845 /* Extensions.swift in Sources */,
- 3045399A293B9E22003AE55B /* ToolTipViewDatasourceable.swift in Sources */,
- 30453992293B9E1C003AE55B /* ToolTipViewUpdatable.swift in Sources */,
D190B24A2741B31F00705659 /* InterfaceVariables.swift in Sources */,
CE1378CE28F5D7AC00E1CBC2 /* UIColor+ScribeColors.swift in Sources */,
D111E9A427AFE4F300746F92 /* CommandBar.swift in Sources */,
D17693E028FC8D6C00DF0FBB /* FR-QWERTYInterfaceVariables.swift in Sources */,
D17193DA27AECA450038660B /* PTInterfaceVariables.swift in Sources */,
D1CDEDA92A85AE7500098546 /* ENInterfaceVariables.swift in Sources */,
- 3045398A293B9E18003AE55B /* ViewThemeable.swift in Sources */,
D1B0719927C63CE600FD7DBD /* KeyAnimation.swift in Sources */,
EDC364722AE408FF0001E456 /* InterfaceConstants.swift in Sources */,
);
@@ -3059,16 +2967,13 @@
D171943927AEF0560038660B /* KeyboardStyling.swift in Sources */,
CE1378C528F5D7AC00E1CBC2 /* ScribeColor.swift in Sources */,
D12EB9C42C81C10900181765 /* HEInterfaceVariables.swift in Sources */,
- 30453970293B9DFF003AE55B /* ToolTipViewTheme.swift in Sources */,
30453959293B911B003AE55B /* AppTextStyling.swift in Sources */,
D1B81D5427BBBA360085FE5E /* ITInterfaceVariables.swift in Sources */,
D171943027AEDE110038660B /* KeyboardKeys.swift in Sources */,
- 30489C1F2936DAFE00B59393 /* ToolTipView.swift in Sources */,
D1CDED922A85AE6300098546 /* DAInterfaceVariables.swift in Sources */,
D1B071A127C6A1AA00FD7DBD /* KeyAltChars.swift in Sources */,
D180EC0428FDFABF0018E29B /* FR-AZERTYInterfaceVariables.swift in Sources */,
E97E65252F2CDEC50070810A /* ESCommandVariables.swift in Sources */,
- 30453978293B9E0A003AE55B /* ToolTipViewDatasource.swift in Sources */,
D171945927AF237C0038660B /* ScribeKey.swift in Sources */,
D109A20E275B6888005E2271 /* FRKeyboardViewController.swift in Sources */,
D171946627AF31770038660B /* Conjugate.swift in Sources */,
@@ -3085,8 +2990,6 @@
D111E9BB27AFE7B200746F92 /* Annotate.swift in Sources */,
E91980C72F2F540A00B5852F /* NavigationStructure.swift in Sources */,
D109A227275B6A8B005E2271 /* KeyboardViewController.swift in Sources */,
- 30453998293B9E20003AE55B /* ToolTipViewDatasourceable.swift in Sources */,
- 30453990293B9E1C003AE55B /* ToolTipViewUpdatable.swift in Sources */,
E97E650E2F2CDD5B0070810A /* ESInterfaceVariables.swift in Sources */,
D17193E127AECAA60038660B /* RUInterfaceVariables.swift in Sources */,
D17193F127AECB350038660B /* SVInterfaceVariables.swift in Sources */,
@@ -3096,7 +2999,6 @@
D17693DF28FC8D6B00DF0FBB /* FR-QWERTYInterfaceVariables.swift in Sources */,
D109A22A275B6A8B005E2271 /* InterfaceVariables.swift in Sources */,
D1CDEDA72A85AE7400098546 /* ENInterfaceVariables.swift in Sources */,
- 30453988293B9E17003AE55B /* ViewThemeable.swift in Sources */,
D109A229275B6A8B005E2271 /* ColorVariables.swift in Sources */,
D1B0719827C63CE600FD7DBD /* KeyAnimation.swift in Sources */,
EDC364732AE409000001E456 /* InterfaceConstants.swift in Sources */,
@@ -3113,16 +3015,13 @@
D171943B27AEF0560038660B /* KeyboardStyling.swift in Sources */,
CE1378C828F5D7AC00E1CBC2 /* ScribeColor.swift in Sources */,
D12EB9BA2C81C10900181765 /* HEInterfaceVariables.swift in Sources */,
- 30453974293B9E05003AE55B /* ToolTipViewTheme.swift in Sources */,
3045395D293B911D003AE55B /* AppTextStyling.swift in Sources */,
D1B81D5727BBBA360085FE5E /* ITInterfaceVariables.swift in Sources */,
D171943227AEDE110038660B /* KeyboardKeys.swift in Sources */,
- 30489C232936DB0100B59393 /* ToolTipView.swift in Sources */,
D1CDED962A85AE6400098546 /* DAInterfaceVariables.swift in Sources */,
D1B071A427C6A1AA00FD7DBD /* KeyAltChars.swift in Sources */,
D180EC0828FDFABF0018E29B /* FR-AZERTYInterfaceVariables.swift in Sources */,
E97E65232F2CDEC50070810A /* ESCommandVariables.swift in Sources */,
- 3045397C293B9E0C003AE55B /* ToolTipViewDatasource.swift in Sources */,
D171945B27AF237C0038660B /* ScribeKey.swift in Sources */,
D109A21D275B68B3005E2271 /* PTKeyboardViewController.swift in Sources */,
D171946827AF31770038660B /* Conjugate.swift in Sources */,
@@ -3140,9 +3039,7 @@
E91980BD2F2F540A00B5852F /* NavigationStructure.swift in Sources */,
D111E9BD27AFE7B200746F92 /* Annotate.swift in Sources */,
D109A232275B6A8C005E2271 /* CommandVariables.swift in Sources */,
- 3045399C293B9E22003AE55B /* ToolTipViewDatasourceable.swift in Sources */,
E97E650F2F2CDD5B0070810A /* ESInterfaceVariables.swift in Sources */,
- 30453994293B9E1D003AE55B /* ToolTipViewUpdatable.swift in Sources */,
D17193E327AECAA60038660B /* RUInterfaceVariables.swift in Sources */,
D17193F327AECB350038660B /* SVInterfaceVariables.swift in Sources */,
CE1378D028F5D7AC00E1CBC2 /* UIColor+ScribeColors.swift in Sources */,
@@ -3151,7 +3048,6 @@
D17693E228FC8D6D00DF0FBB /* FR-QWERTYInterfaceVariables.swift in Sources */,
D1CDEDAC2A85AE7700098546 /* ENInterfaceVariables.swift in Sources */,
D109A22F275B6A8C005E2271 /* ColorVariables.swift in Sources */,
- 3045398C293B9E18003AE55B /* ViewThemeable.swift in Sources */,
D1B0719C27C63CE800FD7DBD /* KeyAnimation.swift in Sources */,
EDC3646E2AE408FE0001E456 /* InterfaceConstants.swift in Sources */,
);
@@ -3177,16 +3073,13 @@
D171943D27AEF0560038660B /* KeyboardStyling.swift in Sources */,
CE1378CA28F5D7AC00E1CBC2 /* ScribeColor.swift in Sources */,
D12EB9C52C81C10900181765 /* HEInterfaceVariables.swift in Sources */,
- 30453976293B9E06003AE55B /* ToolTipViewTheme.swift in Sources */,
3045395F293B911E003AE55B /* AppTextStyling.swift in Sources */,
D1B81D5927BBBA360085FE5E /* ITInterfaceVariables.swift in Sources */,
D171943427AEDE110038660B /* KeyboardKeys.swift in Sources */,
- 30489C252936DB0100B59393 /* ToolTipView.swift in Sources */,
D1CDED992A85AE6600098546 /* DAInterfaceVariables.swift in Sources */,
D1B071A627C6A1AA00FD7DBD /* KeyAltChars.swift in Sources */,
D180EC0A28FDFABF0018E29B /* FR-AZERTYInterfaceVariables.swift in Sources */,
E97E651D2F2CDEC50070810A /* ESCommandVariables.swift in Sources */,
- 3045397D293B9E0D003AE55B /* ToolTipViewDatasource.swift in Sources */,
D171945D27AF237C0038660B /* ScribeKey.swift in Sources */,
D1608668270B6D3C00134D48 /* ESKeyboardViewController.swift in Sources */,
D190B26927426ACD00705659 /* KeyboardViewController.swift in Sources */,
@@ -3206,8 +3099,6 @@
D111E9BF27AFE7B200746F92 /* Annotate.swift in Sources */,
D190B2442740576600705659 /* Extensions.swift in Sources */,
E97E65112F2CDD5B0070810A /* ESInterfaceVariables.swift in Sources */,
- 3045399E293B9E23003AE55B /* ToolTipViewDatasourceable.swift in Sources */,
- 30453996293B9E1E003AE55B /* ToolTipViewUpdatable.swift in Sources */,
D17193E527AECAA60038660B /* RUInterfaceVariables.swift in Sources */,
D17193F527AECB350038660B /* SVInterfaceVariables.swift in Sources */,
CE1378D228F5D7AC00E1CBC2 /* UIColor+ScribeColors.swift in Sources */,
@@ -3215,7 +3106,6 @@
D111E9A727AFE4F300746F92 /* CommandBar.swift in Sources */,
D17693E428FC8D6E00DF0FBB /* FR-QWERTYInterfaceVariables.swift in Sources */,
D1CDEDAF2A85AE7800098546 /* ENInterfaceVariables.swift in Sources */,
- 3045398E293B9E19003AE55B /* ViewThemeable.swift in Sources */,
D1B0719D27C63CE800FD7DBD /* KeyAnimation.swift in Sources */,
EDC3646B2AE408FC0001E456 /* InterfaceConstants.swift in Sources */,
);
@@ -3231,16 +3121,13 @@
D171943C27AEF0560038660B /* KeyboardStyling.swift in Sources */,
CE1378C928F5D7AC00E1CBC2 /* ScribeColor.swift in Sources */,
D12EB9C02C81C10900181765 /* HEInterfaceVariables.swift in Sources */,
- 30453975293B9E06003AE55B /* ToolTipViewTheme.swift in Sources */,
3045395E293B911E003AE55B /* AppTextStyling.swift in Sources */,
D1B81D5827BBBA360085FE5E /* ITInterfaceVariables.swift in Sources */,
D171943327AEDE110038660B /* KeyboardKeys.swift in Sources */,
- 30489C242936DB0100B59393 /* ToolTipView.swift in Sources */,
D1CDED972A85AE6500098546 /* DAInterfaceVariables.swift in Sources */,
D1B071A527C6A1AA00FD7DBD /* KeyAltChars.swift in Sources */,
D180EC0928FDFABF0018E29B /* FR-AZERTYInterfaceVariables.swift in Sources */,
E97E651E2F2CDEC50070810A /* ESCommandVariables.swift in Sources */,
- 3045397E293B9E0D003AE55B /* ToolTipViewDatasource.swift in Sources */,
D171945C27AF237C0038660B /* ScribeKey.swift in Sources */,
D1671A71275A1FA200A7C118 /* RUKeyboardViewController.swift in Sources */,
D171946927AF31770038660B /* Conjugate.swift in Sources */,
@@ -3258,9 +3145,7 @@
E91980BA2F2F540A00B5852F /* NavigationStructure.swift in Sources */,
D111E9BE27AFE7B200746F92 /* Annotate.swift in Sources */,
D1671A77275A1FC000A7C118 /* CommandVariables.swift in Sources */,
- 3045399D293B9E23003AE55B /* ToolTipViewDatasourceable.swift in Sources */,
E97E65132F2CDD5B0070810A /* ESInterfaceVariables.swift in Sources */,
- 30453995293B9E1D003AE55B /* ToolTipViewUpdatable.swift in Sources */,
D17193E427AECAA60038660B /* RUInterfaceVariables.swift in Sources */,
D17193F427AECB350038660B /* SVInterfaceVariables.swift in Sources */,
CE1378D128F5D7AC00E1CBC2 /* UIColor+ScribeColors.swift in Sources */,
@@ -3269,7 +3154,6 @@
D17693E328FC8D6D00DF0FBB /* FR-QWERTYInterfaceVariables.swift in Sources */,
D1CDEDAE2A85AE7800098546 /* ENInterfaceVariables.swift in Sources */,
D1671A76275A1FC000A7C118 /* ColorVariables.swift in Sources */,
- 3045398D293B9E19003AE55B /* ViewThemeable.swift in Sources */,
D1B0719B27C63CE700FD7DBD /* KeyAnimation.swift in Sources */,
EDC3646D2AE408FD0001E456 /* InterfaceConstants.swift in Sources */,
);
@@ -3285,16 +3169,13 @@
D171943E27AEF0560038660B /* KeyboardStyling.swift in Sources */,
CE1378CB28F5D7AC00E1CBC2 /* ScribeColor.swift in Sources */,
D12EB9C22C81C10900181765 /* HEInterfaceVariables.swift in Sources */,
- 30453977293B9E06003AE55B /* ToolTipViewTheme.swift in Sources */,
30453960293B911F003AE55B /* AppTextStyling.swift in Sources */,
D1B81D5A27BBBA360085FE5E /* ITInterfaceVariables.swift in Sources */,
D171943527AEDE110038660B /* KeyboardKeys.swift in Sources */,
- 30489C262936DB0200B59393 /* ToolTipView.swift in Sources */,
D1CDED982A85AE6500098546 /* DAInterfaceVariables.swift in Sources */,
D1B071A727C6A1AA00FD7DBD /* KeyAltChars.swift in Sources */,
D180EC0B28FDFABF0018E29B /* FR-AZERTYInterfaceVariables.swift in Sources */,
E97E651A2F2CDEC50070810A /* ESCommandVariables.swift in Sources */,
- 3045397F293B9E0E003AE55B /* ToolTipViewDatasource.swift in Sources */,
D171945E27AF237C0038660B /* ScribeKey.swift in Sources */,
D18EA8A62760D6F5001E1358 /* CommandVariables.swift in Sources */,
D171946B27AF31770038660B /* Conjugate.swift in Sources */,
@@ -3312,9 +3193,7 @@
E91980BC2F2F540A00B5852F /* NavigationStructure.swift in Sources */,
D111E9C027AFE7B200746F92 /* Annotate.swift in Sources */,
D18EA8A52760D6F5001E1358 /* ColorVariables.swift in Sources */,
- 3045399F293B9E24003AE55B /* ToolTipViewDatasourceable.swift in Sources */,
E97E650D2F2CDD5B0070810A /* ESInterfaceVariables.swift in Sources */,
- 30453997293B9E1E003AE55B /* ToolTipViewUpdatable.swift in Sources */,
D17193E627AECAA60038660B /* RUInterfaceVariables.swift in Sources */,
D17193F627AECB350038660B /* SVInterfaceVariables.swift in Sources */,
CE1378D328F5D7AC00E1CBC2 /* UIColor+ScribeColors.swift in Sources */,
@@ -3323,7 +3202,6 @@
D17693E528FC8D6E00DF0FBB /* FR-QWERTYInterfaceVariables.swift in Sources */,
D1CDEDB02A85AE7900098546 /* ENInterfaceVariables.swift in Sources */,
D18EA8A72760D6F5001E1358 /* KeyboardViewController.swift in Sources */,
- 3045398F293B9E1A003AE55B /* ViewThemeable.swift in Sources */,
D1B0719E27C63CE900FD7DBD /* KeyAnimation.swift in Sources */,
EDC3646C2AE408FC0001E456 /* InterfaceConstants.swift in Sources */,
);
@@ -3338,17 +3216,14 @@
D1AB5B2929C757A100CCB0C1 /* SVInterfaceVariables.swift in Sources */,
D1AB5B2A29C757A100CCB0C1 /* ScribeColor.swift in Sources */,
D12EB9BC2C81C10900181765 /* HEInterfaceVariables.swift in Sources */,
- D1AB5B2B29C757A100CCB0C1 /* ToolTipViewTheme.swift in Sources */,
D1AB5B2C29C757A100CCB0C1 /* AppTextStyling.swift in Sources */,
D1AB5B2D29C757A100CCB0C1 /* ITInterfaceVariables.swift in Sources */,
D1AB5B2E29C757A100CCB0C1 /* PTInterfaceVariables.swift in Sources */,
- D1AB5B2F29C757A100CCB0C1 /* ToolTipView.swift in Sources */,
D1CDED952A85AE6400098546 /* DAInterfaceVariables.swift in Sources */,
D1AB5B3129C757A100CCB0C1 /* KeyAltChars.swift in Sources */,
D1AB5B3329C757A100CCB0C1 /* FR-AZERTYInterfaceVariables.swift in Sources */,
D1AB5B3429C757A100CCB0C1 /* KeyboardStyling.swift in Sources */,
E97E65262F2CDEC50070810A /* ESCommandVariables.swift in Sources */,
- D1AB5B3529C757A100CCB0C1 /* ToolTipViewDatasource.swift in Sources */,
D1AB5B3629C757A100CCB0C1 /* CommandBar.swift in Sources */,
D1AB5B3929C757A100CCB0C1 /* KeyboardKeys.swift in Sources */,
D1AB5B3A29C757A100CCB0C1 /* Conjugate.swift in Sources */,
@@ -3368,15 +3243,12 @@
D1AB5B4329C757A100CCB0C1 /* Plural.swift in Sources */,
D1AB5B4429C757A100CCB0C1 /* Extensions.swift in Sources */,
E97E65122F2CDD5B0070810A /* ESInterfaceVariables.swift in Sources */,
- D1AB5B4529C757A100CCB0C1 /* ToolTipViewDatasourceable.swift in Sources */,
- D1AB5B4629C757A100CCB0C1 /* ToolTipViewUpdatable.swift in Sources */,
D1AB5B4829C757A100CCB0C1 /* KeyboardViewController.swift in Sources */,
D1AB5B4929C757A100CCB0C1 /* UIColor+ScribeColors.swift in Sources */,
D1AB5B4B29C757A100CCB0C1 /* InterfaceVariables.swift in Sources */,
D1AB5B4C29C757A100CCB0C1 /* FR-QWERTYInterfaceVariables.swift in Sources */,
D1CDEDAD2A85AE7700098546 /* ENInterfaceVariables.swift in Sources */,
D1AB5B4D29C757A100CCB0C1 /* RUInterfaceVariables.swift in Sources */,
- D1AB5B4E29C757A100CCB0C1 /* ViewThemeable.swift in Sources */,
D1AB5B4F29C757A100CCB0C1 /* ScribeKey.swift in Sources */,
D1AB5B5029C757A100CCB0C1 /* KeyAnimation.swift in Sources */,
EDC3646F2AE408FE0001E456 /* InterfaceConstants.swift in Sources */,
@@ -3392,17 +3264,14 @@
D1AFDF0729CA66D00033BF27 /* SVInterfaceVariables.swift in Sources */,
D1AFDF0829CA66D00033BF27 /* ScribeColor.swift in Sources */,
D12EB9BD2C81C10900181765 /* HEInterfaceVariables.swift in Sources */,
- D1AFDF0929CA66D00033BF27 /* ToolTipViewTheme.swift in Sources */,
D1AFDF0A29CA66D00033BF27 /* AppTextStyling.swift in Sources */,
D1AFDF0B29CA66D00033BF27 /* ITInterfaceVariables.swift in Sources */,
D1AFDF0C29CA66D00033BF27 /* PTInterfaceVariables.swift in Sources */,
- D1AFDF0D29CA66D00033BF27 /* ToolTipView.swift in Sources */,
D1CDED902A85AE6100098546 /* DAInterfaceVariables.swift in Sources */,
D1AFDF0F29CA66D00033BF27 /* KeyAltChars.swift in Sources */,
D1AFDF1129CA66D00033BF27 /* FR-AZERTYInterfaceVariables.swift in Sources */,
D1AFDF1229CA66D00033BF27 /* KeyboardStyling.swift in Sources */,
E97E65202F2CDEC50070810A /* ESCommandVariables.swift in Sources */,
- D1AFDF1329CA66D00033BF27 /* ToolTipViewDatasource.swift in Sources */,
D1AFDF1429CA66D00033BF27 /* CommandBar.swift in Sources */,
D1AFDF1729CA66D00033BF27 /* KeyboardKeys.swift in Sources */,
D1AFDF1829CA66D00033BF27 /* Conjugate.swift in Sources */,
@@ -3422,15 +3291,12 @@
D1AFDF2129CA66D00033BF27 /* Plural.swift in Sources */,
D1AFDF2229CA66D00033BF27 /* Extensions.swift in Sources */,
E97E650B2F2CDD5B0070810A /* ESInterfaceVariables.swift in Sources */,
- D1AFDF2329CA66D00033BF27 /* ToolTipViewDatasourceable.swift in Sources */,
- D1AFDF2429CA66D00033BF27 /* ToolTipViewUpdatable.swift in Sources */,
D1AFDF2629CA66D00033BF27 /* KeyboardViewController.swift in Sources */,
D1AFDF2729CA66D00033BF27 /* UIColor+ScribeColors.swift in Sources */,
D1AFDF2929CA66D00033BF27 /* InterfaceVariables.swift in Sources */,
D1AFDF2A29CA66D00033BF27 /* FR-QWERTYInterfaceVariables.swift in Sources */,
D1CDEDA82A85AE7500098546 /* ENInterfaceVariables.swift in Sources */,
D1AFDF2B29CA66D00033BF27 /* RUInterfaceVariables.swift in Sources */,
- D1AFDF2C29CA66D00033BF27 /* ViewThemeable.swift in Sources */,
D1AFDF2D29CA66D00033BF27 /* ScribeKey.swift in Sources */,
D1AFDF2E29CA66D00033BF27 /* KeyAnimation.swift in Sources */,
EDC364742AE409000001E456 /* InterfaceConstants.swift in Sources */,
@@ -3446,17 +3312,14 @@
D1AFDF8429CA66F40033BF27 /* SVInterfaceVariables.swift in Sources */,
D1AFDF8529CA66F40033BF27 /* ScribeColor.swift in Sources */,
D12EB9BF2C81C10900181765 /* HEInterfaceVariables.swift in Sources */,
- D1AFDF8629CA66F40033BF27 /* ToolTipViewTheme.swift in Sources */,
D1AFDF8729CA66F40033BF27 /* AppTextStyling.swift in Sources */,
D1AFDF8829CA66F40033BF27 /* ITInterfaceVariables.swift in Sources */,
D1AFDF8929CA66F40033BF27 /* PTInterfaceVariables.swift in Sources */,
- D1AFDF8A29CA66F40033BF27 /* ToolTipView.swift in Sources */,
D1CDED8F2A85AE6100098546 /* DAInterfaceVariables.swift in Sources */,
D1AFDF8C29CA66F40033BF27 /* KeyAltChars.swift in Sources */,
D1AFDF8E29CA66F40033BF27 /* FR-AZERTYInterfaceVariables.swift in Sources */,
D1AFDF8F29CA66F40033BF27 /* KeyboardStyling.swift in Sources */,
E97E65192F2CDEC50070810A /* ESCommandVariables.swift in Sources */,
- D1AFDF9029CA66F40033BF27 /* ToolTipViewDatasource.swift in Sources */,
D1AFDF9129CA66F40033BF27 /* CommandBar.swift in Sources */,
D1AFDF9429CA66F40033BF27 /* KeyboardKeys.swift in Sources */,
D1AFDF9529CA66F40033BF27 /* Conjugate.swift in Sources */,
@@ -3476,15 +3339,12 @@
D1AFDF9E29CA66F40033BF27 /* Plural.swift in Sources */,
D1AFDF9F29CA66F40033BF27 /* Extensions.swift in Sources */,
E97E650A2F2CDD5B0070810A /* ESInterfaceVariables.swift in Sources */,
- D1AFDFA029CA66F40033BF27 /* ToolTipViewDatasourceable.swift in Sources */,
- D1AFDFA129CA66F40033BF27 /* ToolTipViewUpdatable.swift in Sources */,
D1AFDFA329CA66F40033BF27 /* KeyboardViewController.swift in Sources */,
D1AFDFA429CA66F40033BF27 /* UIColor+ScribeColors.swift in Sources */,
D1AFDFA629CA66F40033BF27 /* InterfaceVariables.swift in Sources */,
D1AFDFA729CA66F40033BF27 /* FR-QWERTYInterfaceVariables.swift in Sources */,
D1CDEDA62A85AE7400098546 /* ENInterfaceVariables.swift in Sources */,
D1AFDFA829CA66F40033BF27 /* RUInterfaceVariables.swift in Sources */,
- D1AFDFA929CA66F40033BF27 /* ViewThemeable.swift in Sources */,
D1AFDFAA29CA66F40033BF27 /* ScribeKey.swift in Sources */,
D1AFDFAB29CA66F40033BF27 /* KeyAnimation.swift in Sources */,
EDC3646A2AE408FA0001E456 /* InterfaceConstants.swift in Sources */,
@@ -3500,17 +3360,14 @@
D1AFDFDA29CA6E900033BF27 /* SVInterfaceVariables.swift in Sources */,
D1AFDFDB29CA6E900033BF27 /* ScribeColor.swift in Sources */,
D12EB9C12C81C10900181765 /* HEInterfaceVariables.swift in Sources */,
- D1AFDFDC29CA6E900033BF27 /* ToolTipViewTheme.swift in Sources */,
D1AFDFDD29CA6E900033BF27 /* AppTextStyling.swift in Sources */,
D1AFDFDE29CA6E900033BF27 /* ITInterfaceVariables.swift in Sources */,
D1AFDFDF29CA6E900033BF27 /* PTInterfaceVariables.swift in Sources */,
- D1AFDFE029CA6E900033BF27 /* ToolTipView.swift in Sources */,
D1CDED932A85AE6300098546 /* DAInterfaceVariables.swift in Sources */,
D1AFDFE229CA6E900033BF27 /* KeyAltChars.swift in Sources */,
D1AFDFE429CA6E900033BF27 /* FR-AZERTYInterfaceVariables.swift in Sources */,
D1AFDFE529CA6E900033BF27 /* KeyboardStyling.swift in Sources */,
E97E651F2F2CDEC50070810A /* ESCommandVariables.swift in Sources */,
- D1AFDFE629CA6E900033BF27 /* ToolTipViewDatasource.swift in Sources */,
D1AFDFE729CA6E900033BF27 /* CommandBar.swift in Sources */,
D1AFDFEA29CA6E900033BF27 /* KeyboardKeys.swift in Sources */,
D1AFDFEB29CA6E900033BF27 /* Conjugate.swift in Sources */,
@@ -3530,15 +3387,12 @@
D1AFDFF429CA6E900033BF27 /* Plural.swift in Sources */,
D1AFDFF529CA6E900033BF27 /* Extensions.swift in Sources */,
E97E65102F2CDD5B0070810A /* ESInterfaceVariables.swift in Sources */,
- D1AFDFF629CA6E900033BF27 /* ToolTipViewDatasourceable.swift in Sources */,
- D1AFDFF729CA6E900033BF27 /* ToolTipViewUpdatable.swift in Sources */,
D1AFDFF929CA6E900033BF27 /* KeyboardViewController.swift in Sources */,
D1AFDFFA29CA6E900033BF27 /* UIColor+ScribeColors.swift in Sources */,
D1AFDFFC29CA6E900033BF27 /* InterfaceVariables.swift in Sources */,
D1AFDFFD29CA6E900033BF27 /* FR-QWERTYInterfaceVariables.swift in Sources */,
D1CDEDAB2A85AE7600098546 /* ENInterfaceVariables.swift in Sources */,
D1AFDFFE29CA6E900033BF27 /* RUInterfaceVariables.swift in Sources */,
- D1AFDFFF29CA6E900033BF27 /* ViewThemeable.swift in Sources */,
D1AFE00029CA6E900033BF27 /* ScribeKey.swift in Sources */,
D1AFE00129CA6E900033BF27 /* KeyAnimation.swift in Sources */,
EDC364712AE408FF0001E456 /* InterfaceConstants.swift in Sources */,
@@ -3554,17 +3408,14 @@
D1B81D3527BBB6B50085FE5E /* SVInterfaceVariables.swift in Sources */,
CE1378C728F5D7AC00E1CBC2 /* ScribeColor.swift in Sources */,
D12EB9BE2C81C10900181765 /* HEInterfaceVariables.swift in Sources */,
- 30453973293B9E05003AE55B /* ToolTipViewTheme.swift in Sources */,
3045395C293B911D003AE55B /* AppTextStyling.swift in Sources */,
D1B81D5627BBBA360085FE5E /* ITInterfaceVariables.swift in Sources */,
D1B81D2F27BBB69E0085FE5E /* PTInterfaceVariables.swift in Sources */,
- 30489C222936DB0000B59393 /* ToolTipView.swift in Sources */,
D1CDED942A85AE6300098546 /* DAInterfaceVariables.swift in Sources */,
D1B071A327C6A1AA00FD7DBD /* KeyAltChars.swift in Sources */,
D180EC0728FDFABF0018E29B /* FR-AZERTYInterfaceVariables.swift in Sources */,
D1B81D3F27BBB7070085FE5E /* KeyboardStyling.swift in Sources */,
E97E65242F2CDEC50070810A /* ESCommandVariables.swift in Sources */,
- 3045397B293B9E0C003AE55B /* ToolTipViewDatasource.swift in Sources */,
D1B81D4427BBB71C0085FE5E /* CommandBar.swift in Sources */,
D1B81D3D27BBB7020085FE5E /* KeyboardKeys.swift in Sources */,
D1B81D4527BBB71C0085FE5E /* Conjugate.swift in Sources */,
@@ -3582,9 +3433,7 @@
E91980C32F2F540A00B5852F /* NavigationStructure.swift in Sources */,
D1B81D4827BBB71C0085FE5E /* Plural.swift in Sources */,
D1B81D3B27BBB6FC0085FE5E /* Extensions.swift in Sources */,
- 3045399B293B9E22003AE55B /* ToolTipViewDatasourceable.swift in Sources */,
E97E65152F2CDD5B0070810A /* ESInterfaceVariables.swift in Sources */,
- 30453993293B9E1D003AE55B /* ToolTipViewUpdatable.swift in Sources */,
D1B81D2227BBB5320085FE5E /* ITKeyboardViewController.swift in Sources */,
D1B81D3E27BBB7040085FE5E /* KeyboardViewController.swift in Sources */,
CE1378CF28F5D7AC00E1CBC2 /* UIColor+ScribeColors.swift in Sources */,
@@ -3592,7 +3441,6 @@
D17693E128FC8D6C00DF0FBB /* FR-QWERTYInterfaceVariables.swift in Sources */,
D1CDEDAA2A85AE7500098546 /* ENInterfaceVariables.swift in Sources */,
D1B81D3127BBB6A60085FE5E /* RUInterfaceVariables.swift in Sources */,
- 3045398B293B9E18003AE55B /* ViewThemeable.swift in Sources */,
D1B81D4627BBB71C0085FE5E /* ScribeKey.swift in Sources */,
D1B0719A27C63CE600FD7DBD /* KeyAnimation.swift in Sources */,
EDC364702AE408FE0001E456 /* InterfaceConstants.swift in Sources */,
@@ -3603,13 +3451,9 @@
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
- E99649642E98A41A00200F53 /* ViewThemeable.swift in Sources */,
- E996495D2E98A34C00200F53 /* ToolTipView.swift in Sources */,
E99649832E98A85D00200F53 /* SVInterfaceVariables.swift in Sources */,
- E996496C2E98A5AF00200F53 /* ToolTipViewTheme.swift in Sources */,
E99649712E98A62C00200F53 /* Utilities.swift in Sources */,
E97E651B2F2CDEC50070810A /* ESCommandVariables.swift in Sources */,
- E99649632E98A3C500200F53 /* ToolTipViewUpdatable.swift in Sources */,
E99649862E98A9E000200F53 /* Translate.swift in Sources */,
E9FAC39F2E98972D008E00AC /* IDInterfaceVariables.swift in Sources */,
E996495C2E98A32900200F53 /* KeyboardViewController.swift in Sources */,
@@ -3622,7 +3466,6 @@
E996496E2E98A5FE00200F53 /* Conjugate.swift in Sources */,
E99649722E98A64700200F53 /* Annotate.swift in Sources */,
E996496D2E98A5E400200F53 /* InformationToolTipData.swift in Sources */,
- E996497B2E98A7E600200F53 /* ToolTipViewDatasourceable.swift in Sources */,
E99649872E98A9FB00200F53 /* KeyAnimation.swift in Sources */,
E99649682E98A4BF00200F53 /* ScribeColor.swift in Sources */,
E996497F2E98A82200200F53 /* PTInterfaceVariables.swift in Sources */,
@@ -3641,7 +3484,6 @@
E996497A2E98A7B600200F53 /* ScribeKey.swift in Sources */,
E99649612E98A39300200F53 /* ENInterfaceVariables.swift in Sources */,
E99649852E98A9D400200F53 /* Plural.swift in Sources */,
- E996495E2E98A35700200F53 /* ToolTipViewDatasource.swift in Sources */,
E9FAC3A12E98972D008E00AC /* IDKeyboardViewController.swift in Sources */,
E99649602E98A37500200F53 /* InterfaceConstants.swift in Sources */,
E996497C2E98A7F400200F53 /* DEInterfaceVariables.swift in Sources */,
@@ -3664,7 +3506,6 @@
F786BADA2F1E8F70003F7505 /* AboutTableData.swift in Sources */,
F786BADB2F1E8F70003F7505 /* DownloadStateManager.swift in Sources */,
F786BADC2F1E8F70003F7505 /* IDInterfaceVariables.swift in Sources */,
- F786BADE2F1E8F70003F7505 /* ToolTipViewDatasource.swift in Sources */,
F786BADF2F1E8F70003F7505 /* Translate.swift in Sources */,
F786BAE32F1E8F70003F7505 /* ScribeKey.swift in Sources */,
F786BAE42F1E8F70003F7505 /* AppExtensions.swift in Sources */,
@@ -3688,8 +3529,6 @@
F786BAF72F1E8F70003F7505 /* SVInterfaceVariables.swift in Sources */,
F786BAF92F1E8F70003F7505 /* TableViewTemplateViewController.swift in Sources */,
F786BAFB2F1E8F70003F7505 /* AppDelegate.swift in Sources */,
- F786BAFC2F1E8F70003F7505 /* ToolTipView.swift in Sources */,
- F786BAFD2F1E8F70003F7505 /* ToolTipViewTheme.swift in Sources */,
F786BAFE2F1E8F70003F7505 /* RadioTableViewCell.swift in Sources */,
F786BAFF2F1E8F70003F7505 /* CommandVariables.swift in Sources */,
F786BB002F1E8F70003F7505 /* DownloadDataScreen.swift in Sources */,
@@ -3700,7 +3539,6 @@
E97E65222F2CDEC50070810A /* ESCommandVariables.swift in Sources */,
F786BB062F1E8F70003F7505 /* TipCardView.swift in Sources */,
F786BB072F1E8F70003F7505 /* InformationToolTipData.swift in Sources */,
- F786BB082F1E8F70003F7505 /* ToolTipViewUpdatable.swift in Sources */,
F786BB092F1E8F70003F7505 /* RUInterfaceVariables.swift in Sources */,
F786BB0A2F1E8F70003F7505 /* ITInterfaceVariables.swift in Sources */,
F786BB0B2F1E8F70003F7505 /* PTInterfaceVariables.swift in Sources */,
@@ -3709,7 +3547,6 @@
F786BB0E2F1E8F70003F7505 /* Plural.swift in Sources */,
F786BB0F2F1E8F70003F7505 /* InterfaceVariables.swift in Sources */,
F786BB102F1E8F70003F7505 /* CommandBar.swift in Sources */,
- F786BB122F1E8F70003F7505 /* ViewThemeable.swift in Sources */,
F786BB132F1E8F70003F7505 /* ColorVariables.swift in Sources */,
F786BB142F1E8F70003F7505 /* SelectionViewTemplateViewController.swift in Sources */,
F786BB152F1E8F70003F7505 /* AboutTableViewCell.swift in Sources */,
@@ -3718,7 +3555,6 @@
F786BB192F1E8F70003F7505 /* ParentTableCellModel.swift in Sources */,
F786BB1A2F1E8F70003F7505 /* WrapperCell.swift in Sources */,
F786BB1B2F1E8F70003F7505 /* WikimediaAndScribe.swift in Sources */,
- F786BB1C2F1E8F70003F7505 /* ToolTipViewDatasourceable.swift in Sources */,
F786BB1D2F1E8F70003F7505 /* KeyAltChars.swift in Sources */,
F786BB1E2F1E8F70003F7505 /* NBInterfaceVariables.swift in Sources */,
F786BB1F2F1E8F70003F7505 /* FR-QWERTYInterfaceVariables.swift in Sources */,
diff --git a/Scribe/i18n b/Scribe/i18n
index 2bea6b09..8c90cfc4 160000
--- a/Scribe/i18n
+++ b/Scribe/i18n
@@ -1 +1 @@
-Subproject commit 2bea6b0918cf549def8629714de35101a062d8d4
+Subproject commit 8c90cfc46eab602c70ec3cd5b5a002fb6ca6ad9a