diff --git a/LeCountdown.xcodeproj/project.pbxproj b/LeCountdown.xcodeproj/project.pbxproj index def3aff..556d8dd 100644 --- a/LeCountdown.xcodeproj/project.pbxproj +++ b/LeCountdown.xcodeproj/project.pbxproj @@ -76,7 +76,6 @@ C473C30829A91BCC0056B38A /* fr.xcloc in Resources */ = {isa = PBXBuildFile; fileRef = C473C30629A91BCB0056B38A /* fr.xcloc */; }; C473C30929A91BCC0056B38A /* fr.xcloc in Resources */ = {isa = PBXBuildFile; fileRef = C473C30629A91BCB0056B38A /* fr.xcloc */; }; C473C31329A925D50056B38A /* SiriIntents.intentdefinition in Sources */ = {isa = PBXBuildFile; fileRef = C473C31629A925D50056B38A /* SiriIntents.intentdefinition */; }; - C473C31429A925D50056B38A /* SiriIntents.intentdefinition in Sources */ = {isa = PBXBuildFile; fileRef = C473C31629A925D50056B38A /* SiriIntents.intentdefinition */; }; C473C31829A926F50056B38A /* LaunchWidget.intentdefinition in Sources */ = {isa = PBXBuildFile; fileRef = C473C31C29A926F50056B38A /* LaunchWidget.intentdefinition */; }; C473C31929A926F50056B38A /* LaunchWidget.intentdefinition in Sources */ = {isa = PBXBuildFile; fileRef = C473C31C29A926F50056B38A /* LaunchWidget.intentdefinition */; }; C473C31A29A926F50056B38A /* LaunchWidget.intentdefinition in Sources */ = {isa = PBXBuildFile; fileRef = C473C31C29A926F50056B38A /* LaunchWidget.intentdefinition */; }; @@ -158,6 +157,7 @@ C4BA2B6A29A4BE1800CB4FBA /* Date+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4BA2B6929A4BE1800CB4FBA /* Date+Extensions.swift */; }; C4BA2B7329A60CF000CB4FBA /* Shortcut.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4BA2B7229A60CF000CB4FBA /* Shortcut.swift */; }; C4BA2B7929A65C1400CB4FBA /* UIDevice+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4BA2B7829A65C1400CB4FBA /* UIDevice+Extensions.swift */; }; + C4E5D66129B64C1B008E7465 /* SiriIntents.intentdefinition in Sources */ = {isa = PBXBuildFile; fileRef = C473C31629A925D50056B38A /* SiriIntents.intentdefinition */; }; C4F8B1532987FE6F005C86A5 /* LaunchWidgetLiveActivity.swift in Sources */ = {isa = PBXBuildFile; fileRef = C438C7D72981216200BF3EF9 /* LaunchWidgetLiveActivity.swift */; }; C4F8B15729891271005C86A5 /* Conductor.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4F8B15629891271005C86A5 /* Conductor.swift */; }; C4F8B15929891528005C86A5 /* forest_stream.mp3 in Resources */ = {isa = PBXBuildFile; fileRef = C4F8B15829891528005C86A5 /* forest_stream.mp3 */; }; @@ -366,6 +366,7 @@ C4BA2B6B29A4C47100CB4FBA /* LeCountdown.0.6.2.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = LeCountdown.0.6.2.xcdatamodel; sourceTree = ""; }; C4BA2B7229A60CF000CB4FBA /* Shortcut.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Shortcut.swift; sourceTree = ""; }; C4BA2B7829A65C1400CB4FBA /* UIDevice+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIDevice+Extensions.swift"; sourceTree = ""; }; + C4E5D66329B64C7F008E7465 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/SiriIntents.strings; sourceTree = ""; }; C4F8B15629891271005C86A5 /* Conductor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Conductor.swift; sourceTree = ""; }; C4F8B15829891528005C86A5 /* forest_stream.mp3 */ = {isa = PBXFileReference; lastKnownFileType = audio.mp3; path = forest_stream.mp3; sourceTree = ""; }; C4F8B15E298961A7005C86A5 /* ReorderableForEach.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReorderableForEach.swift; sourceTree = ""; }; @@ -1145,6 +1146,7 @@ C4BA2AF82996A4F000CB4FBA /* CustomSound+CoreDataProperties.swift in Sources */, C4F8B199298AC288005C86A5 /* Record+CoreDataClass.swift in Sources */, C438C8012981327600BF3EF9 /* Persistence.swift in Sources */, + C4E5D66129B64C1B008E7465 /* SiriIntents.intentdefinition in Sources */, C473C31A29A926F50056B38A /* LaunchWidget.intentdefinition in Sources */, C4BA2B5D299FFAB000CB4FBA /* Logger.swift in Sources */, C473C2FB29A8DC3A0056B38A /* LaunchWidgetAttributes.swift in Sources */, @@ -1154,7 +1156,6 @@ C4BA2B1E299BE6A100CB4FBA /* Interval+CoreDataClass.swift in Sources */, C473C2FC29A8DC4B0056B38A /* Date+Extensions.swift in Sources */, C473C2F429A8DAE70056B38A /* Model+Extensions.swift in Sources */, - C473C31429A925D50056B38A /* SiriIntents.intentdefinition in Sources */, C445FA86298448720054D761 /* CoolPic.swift in Sources */, C4BA2B4E299FCE0C00CB4FBA /* Stopwatch+CoreDataProperties.swift in Sources */, C4BA2B23299BE82E00CB4FBA /* AbstractSoundTimer+CoreDataProperties.swift in Sources */, @@ -1196,6 +1197,7 @@ children = ( C473C32629AA307D0056B38A /* Base */, C473C32829AA30890056B38A /* fr */, + C4E5D66329B64C7F008E7465 /* en */, ); name = SiriIntents.intentdefinition; sourceTree = ""; @@ -1360,8 +1362,8 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = com.staxriver.LeCountdown; + MARKETING_VERSION = 0.1; + PRODUCT_BUNDLE_IDENTIFIER = com.staxriver.LeCountdown2; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_VERSION = 5.0; @@ -1393,8 +1395,8 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = com.staxriver.LeCountdown; + MARKETING_VERSION = 0.1; + PRODUCT_BUNDLE_IDENTIFIER = com.staxriver.LeCountdown2; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_VERSION = 5.0; @@ -1496,8 +1498,8 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = com.staxriver.LeCountdown.LaunchWidget; + MARKETING_VERSION = 0.1; + PRODUCT_BUNDLE_IDENTIFIER = com.staxriver.LeCountdown2.LaunchWidget; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; SWIFT_EMIT_LOC_STRINGS = YES; @@ -1524,8 +1526,8 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = com.staxriver.LeCountdown.LaunchWidget; + MARKETING_VERSION = 0.1; + PRODUCT_BUNDLE_IDENTIFIER = com.staxriver.LeCountdown2.LaunchWidget; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; SWIFT_EMIT_LOC_STRINGS = YES; @@ -1551,8 +1553,8 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = com.staxriver.LeCountdown.LaunchIntents; + MARKETING_VERSION = 0.1; + PRODUCT_BUNDLE_IDENTIFIER = com.staxriver.LeCountdown2.LaunchIntents; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; SWIFT_EMIT_LOC_STRINGS = YES; @@ -1578,8 +1580,8 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 1.0; - PRODUCT_BUNDLE_IDENTIFIER = com.staxriver.LeCountdown.LaunchIntents; + MARKETING_VERSION = 0.1; + PRODUCT_BUNDLE_IDENTIFIER = com.staxriver.LeCountdown2.LaunchIntents; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; SWIFT_EMIT_LOC_STRINGS = YES; diff --git a/LeCountdown/Base.lproj/SiriIntents.intentdefinition b/LeCountdown/Base.lproj/SiriIntents.intentdefinition index f44c4ab..2ca7a64 100644 --- a/LeCountdown/Base.lproj/SiriIntents.intentdefinition +++ b/LeCountdown/Base.lproj/SiriIntents.intentdefinition @@ -110,8 +110,6 @@ INIntentResponseLastParameterTag 2 - INIntentResponseOutput - timer INIntentResponseParameters diff --git a/LeCountdown/Conductor.swift b/LeCountdown/Conductor.swift index 04fde9a..3363bc1 100644 --- a/LeCountdown/Conductor.swift +++ b/LeCountdown/Conductor.swift @@ -236,7 +236,7 @@ class Conductor: ObservableObject { fileprivate func _createTimerIntent(_ timer: AbstractTimer) { let intent = LaunchTimerIntent() - let invocationPhrase = "testooooo \(timer.defaultName)" // String(format: NSLocalizedString("Launch %@", comment: ""), timer.displayName) + let invocationPhrase = String(format: NSLocalizedString("Launch %@", comment: ""), timer.displayName) intent.suggestedInvocationPhrase = String(format: invocationPhrase, timer.displayName) intent.timer = TimerIdentifier(identifier: timer.stringId, display: timer.displayName) diff --git a/LeCountdown/Subscription/AppGuard.swift b/LeCountdown/Subscription/AppGuard.swift index c512451..4e10656 100644 --- a/LeCountdown/Subscription/AppGuard.swift +++ b/LeCountdown/Subscription/AppGuard.swift @@ -126,11 +126,6 @@ extension Notification.Name { if let currentBestPlan = self.currentBestPlan, let plan = StorePlan(rawValue: currentBestPlan.productID) { return plan } - if let vf = Preferences.verifiedTransaction(), - vf.expiryDate > Date(), vf.graceDate > Date(), - let plan = StorePlan(rawValue: vf.productId) { - return plan - } return .none #endif } diff --git a/LeCountdown/Utils/TextToSpeechRecorder.swift b/LeCountdown/Utils/TextToSpeechRecorder.swift index 2a04b5f..e9a0d23 100644 --- a/LeCountdown/Utils/TextToSpeechRecorder.swift +++ b/LeCountdown/Utils/TextToSpeechRecorder.swift @@ -20,8 +20,8 @@ class TextToSpeechRecorder { let utterance = AVSpeechUtterance(string: speech) utterance.voice = AVSpeechSynthesisVoice(language: "fr-FR") - synthesizer.speak(utterance) - return +// synthesizer.speak(utterance) +// return var output: AVAudioFile? diff --git a/LeCountdown/en.lproj/Localizable.strings b/LeCountdown/en.lproj/Localizable.strings new file mode 100644 index 0000000..ae9c0c7 --- /dev/null +++ b/LeCountdown/en.lproj/Localizable.strings @@ -0,0 +1,245 @@ +/* No comment provided by engineer. */ +".create countdown" = ".Créer un minuteur"; + +/* No comment provided by engineer. */ +".create stopwatch" = ".Créer un chrono"; + +/* No comment provided by engineer. */ +"Activities" = "Activités"; + +/* No comment provided by engineer. */ +"alarm" = "Alarme"; + +/* No comment provided by engineer. */ +"All" = "Tout"; + +/* No comment provided by engineer. */ +"Average duration" = "Durée moyenne"; + +/* No comment provided by engineer. */ +"Black tea" = "Thé noir"; + +/* No comment provided by engineer. */ +"Cancel" = "Annuler"; + +/* No comment provided by engineer. */ +"Cancelled" = "Annulé"; + +/* No comment provided by engineer. */ +"Cooking" = "Cuisine"; + +/* No comment provided by engineer. */ +"Coundown" = "Minuteur"; + +/* No comment provided by engineer. */ +"Count" = "Nombre"; + +/* No comment provided by engineer. */ +"countdown" = "compteur"; + +/* No comment provided by engineer. */ +"Create" = "Nouveau"; + +/* No comment provided by engineer. */ +"Create a new countdown" = "Créer un nouveau minuteur"; + +/* No comment provided by engineer. */ +"Create countdown" = "Créer un minuteur"; + +/* No comment provided by engineer. */ +"Custom" = "Personnalisé"; + +/* No comment provided by engineer. */ +"date" = "Date"; + +/* No comment provided by engineer. */ +"Do you really want to delete?" = "Voulez-vous vraiment effacer ?"; + +/* No comment provided by engineer. */ +"Do you wish to rename or create a new activity" = "Souhaitez-vous renommer ou créer une nouvelle activité ?"; + +/* No comment provided by engineer. */ +"Don't show this again" = "Ne plus montrer"; + +/* No comment provided by engineer. */ +"Done" = "Sauver"; + +/* No comment provided by engineer. */ +"Duration" = "Durée"; + +/* No comment provided by engineer. */ +"Edit" = "Editer"; + +/* No comment provided by engineer. */ +"Edit alarm" = "Éditer alarme"; + +/* No comment provided by engineer. */ +"Edit countdown" = "Éditer minuteur"; + +/* No comment provided by engineer. */ +"Edit stopwatch" = "Éditer chrono"; + +/* No comment provided by engineer. */ +"Fun" = "Fun"; + +/* No comment provided by engineer. */ +"Green tea" = "Thé vert"; + +/* No comment provided by engineer. */ +"haha" = ""; + +/* No comment provided by engineer. */ +"Hard boiled eggs" = "Oeufs dur"; + +/* No comment provided by engineer. */ +"Home" = "Kikai"; + +/* No comment provided by engineer. */ +"It's time!" = "C'est l'heure !"; + +/* No comment provided by engineer. */ +"Make sure your device is not on silent mode" = "Vérifiez que votre appareil n'est pas en mode silencieux"; + +/* No comment provided by engineer. */ +"Meditation" = "Méditation"; + +/* No comment provided by engineer. */ +"Medium boiled eggs" = "Oeufs mollets"; + +/* No comment provided by engineer. */ +"Min" = "Min"; + +/* No comment provided by engineer. */ +"Minutes" = "Minutes"; + +/* No comment provided by engineer. */ +"Month" = "Mois"; + +/* No comment provided by engineer. */ +"name" = "nom"; + +/* No comment provided by engineer. */ +"Name (activates tracking)" = "Nom (active le suivi)"; + +/* No comment provided by engineer. */ +"Name for tracking the activity" = "Nom pour suivre l'activité"; + +/* No comment provided by engineer. */ +"Nap" = "Sieste"; + +/* No comment provided by engineer. */ +"Nature" = "Nature"; + +/* No comment provided by engineer. */ +"New activity" = "Nouvelle activité"; + +/* No comment provided by engineer. */ +"New alarm" = "Nouvelle alarme"; + +/* No comment provided by engineer. */ +"New countdown" = "Nouveau minuteur"; + +/* No comment provided by engineer. */ +"New stopwatch" = "Nouveau chrono"; + +/* No comment provided by engineer. */ +"No" = "Non"; + +/* No comment provided by engineer. */ +"OK" = "OK"; + +/* No comment provided by engineer. */ +"Other" = "Autre"; + +/* No comment provided by engineer. */ +"Play sound on end" = "Jouer un son de fin"; + +/* No comment provided by engineer. */ +"Presets" = "Préselection"; + +/* No comment provided by engineer. */ +"Properties" = "Propriétes"; + +/* No comment provided by engineer. */ +"Rename" = "Renommer"; + +/* No comment provided by engineer. */ +"Repeat Count" = "Nombre de répétitions"; + +/* No comment provided by engineer. */ +"Save" = "Sauvegarder"; + +/* No comment provided by engineer. */ +"Seconds" = "Secondes"; + +/* No comment provided by engineer. */ +"Show permissions" = "Voir permissions"; + +/* No comment provided by engineer. */ +"Soft boiled eggs" = "Oeufs coque"; + +/* No comment provided by engineer. */ +"Sound" = "Son"; + +/* sounds */ +"sounds" = "sons"; + +/* No comment provided by engineer. */ +"Sounds" = "Sons"; + +/* No comment provided by engineer. */ +"Stats" = "Statistiques"; + +/* No comment provided by engineer. */ +"Stop" = "Arrêter"; + +/* No comment provided by engineer. */ +"stopwatch" = "chrono"; + +/* No comment provided by engineer. */ +"Stopwatch" = "Chrono"; + +/* No comment provided by engineer. */ +"Tea" = "Thé"; + +/* No comment provided by engineer. */ +"Time" = "Temps"; + +/* No comment provided by engineer. */ +"Time's up for %@!" = "C'est l'heure pour %@ !"; + +/* No comment provided by engineer. */ +"Tooth brushing" = "Brossage de dent"; + +/* No comment provided by engineer. */ +"value" = "valeur"; + +/* No comment provided by engineer. */ +"Workout" = "Exercice"; + +/* No comment provided by engineer. */ +"Year" = "Année"; + +/* No comment provided by engineer. */ +"Yes" = "Oui"; + +"You can add widget for your timers and countdowns by modifying your home or lock screen" = "You pouvez ajouter des widgets pour vos minuteurs et chronomètres en modifiant votre écran verrouillé ou votre page d'accueil"; + +/* No comment provided by engineer. */ +"You can ask Siri to create and launch countdowns and stopwatches" = "Vous pouvez demander à Siri de vous lancer les minuteurs et les chronos"; + +/* No comment provided by engineer. */ +"You can edit the duration, sound and label before adding" = "Vous pouvez changer la durée, le son et le label avant l'ajout"; + +/* No comment provided by engineer. */ +"You don't have any recorded activity yet" = "Vous n'avez pas encore d'activités enregistrées"; + +/* No comment provided by engineer. */ +"You need to accept notifications, please check your settings" = "Vous devez accepter les notifications, veuillez vérifier vos réglages"; + +/* No comment provided by engineer. */ +"Your %@ countdown is over!" = "Votre minuteur de %@ est terminé !"; + +"Launch" = "Démarrer"; + +"Launch %@" = "Lance %@"; diff --git a/LeCountdown/fr.lproj/Localizable.strings b/LeCountdown/fr.lproj/Localizable.strings index 4acbe91..ae9c0c7 100644 --- a/LeCountdown/fr.lproj/Localizable.strings +++ b/LeCountdown/fr.lproj/Localizable.strings @@ -242,11 +242,4 @@ "Launch" = "Démarrer"; -"Launch %@" = "Démarrer %@"; - -//"Launch Timer" = "Démarrer un compteur"; -//"Launch timers and stopwatches" = "Démarre des minuteurs et chronos"; -//"Timer" = "Compteur"; -//"Starts immediately" = "Démarre immédiatement"; -//"Launch ${timer}" = "Test> lance ${timer}"; -//"${timer} has been launched" = "${timer} a démarré lololol"; +"Launch %@" = "Lance %@";