diff --git a/QuranMajeed.xcodeproj/project.pbxproj b/Al-Tanzeel.xcodeproj/project.pbxproj similarity index 94% rename from QuranMajeed.xcodeproj/project.pbxproj rename to Al-Tanzeel.xcodeproj/project.pbxproj index dc58b83..270fdbf 100644 --- a/QuranMajeed.xcodeproj/project.pbxproj +++ b/Al-Tanzeel.xcodeproj/project.pbxproj @@ -66,8 +66,8 @@ F9D60D332A77E01300701635 /* PDFGenerator.swift in Sources */ = {isa = PBXBuildFile; fileRef = F9D60D322A77E01300701635 /* PDFGenerator.swift */; }; F9D60D362A7852F400701635 /* PDFDocument+Transferable.swift in Sources */ = {isa = PBXBuildFile; fileRef = F9D60D352A7852F400701635 /* PDFDocument+Transferable.swift */; }; F9D60D392A78534B00701635 /* PDFKitView+UIViewRepresentable.swift in Sources */ = {isa = PBXBuildFile; fileRef = F9D60D382A78534B00701635 /* PDFKitView+UIViewRepresentable.swift */; }; + F9D90A4F2ACD850000CD8FD4 /* Localizable.xcstrings in Resources */ = {isa = PBXBuildFile; fileRef = F9D90A4E2ACD850000CD8FD4 /* Localizable.xcstrings */; }; F9F11E0C2AC4D66800100507 /* FlexibleViewContainerViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = F9F11E0B2AC4D66800100507 /* FlexibleViewContainerViewModel.swift */; }; - F9F11E0E2AC4D6A200100507 /* FlexibleViewContainerSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = F9F11E0D2AC4D6A200100507 /* FlexibleViewContainerSettings.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -95,7 +95,7 @@ F91839612AB7D0BA00E4D45B /* LoggingAnalyticsLibrary.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoggingAnalyticsLibrary.swift; sourceTree = ""; }; F91839652AB7D98D00E4D45B /* VerseListView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VerseListView.swift; sourceTree = ""; }; F94C11C32AB2F962004BAD10 /* AppDependencyContainer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDependencyContainer.swift; sourceTree = ""; }; - F950FAD82AB4BA0000CB45B5 /* QuranMajeedTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = QuranMajeedTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + F950FAD82AB4BA0000CB45B5 /* Al-TanzeelTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Al-TanzeelTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; F950FAE12AB4BA6400CB45B5 /* QuranMajeedTests-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "QuranMajeedTests-Bridging-Header.h"; sourceTree = ""; }; F950FAE22AB4BA6400CB45B5 /* SurasTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SurasTests.swift; sourceTree = ""; }; F952CFC82A90273C0039478F /* Quran_ur.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = Quran_ur.json; sourceTree = ""; }; @@ -103,8 +103,6 @@ F952CFCB2A90425D0039478F /* Jameel Noori Nastaleeq Regular.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "Jameel Noori Nastaleeq Regular.ttf"; sourceTree = ""; }; F952CFD12A96D6BA0039478F /* String+size.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "String+size.swift"; sourceTree = ""; }; F952CFD32A96D6E50039478F /* NSAttributedString+size.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NSAttributedString+size.swift"; sourceTree = ""; }; - F96002A82ABA48C7008C16D5 /* GenericDataSource */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = GenericDataSource; path = ../../../../Documents/GitHub/GenericDataSource; sourceTree = ""; }; - F96002A92ABA4FD0008C16D5 /* quran-ios */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = "quran-ios"; path = "../../../../Documents/GitHub/quran-ios"; sourceTree = ""; }; F96447792AB454F200DB5412 /* QuranRepository.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QuranRepository.swift; sourceTree = ""; }; F964477B2AB4561900DB5412 /* MainQuranRepository.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainQuranRepository.swift; sourceTree = ""; }; F964477E2AB457AE00DB5412 /* QuranService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QuranService.swift; sourceTree = ""; }; @@ -119,7 +117,7 @@ F992EBA62AB3CC1A00649632 /* ScheherazadeNew-SemiBold.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "ScheherazadeNew-SemiBold.ttf"; sourceTree = ""; }; F992EBA72AB3CC1A00649632 /* ScheherazadeNew-Bold.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "ScheherazadeNew-Bold.ttf"; sourceTree = ""; }; F992EBA82AB3CC1A00649632 /* ScheherazadeNew-Medium.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "ScheherazadeNew-Medium.ttf"; sourceTree = ""; }; - F9D60CFD2A76C69D00701635 /* QuranMajeed.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = QuranMajeed.app; sourceTree = BUILT_PRODUCTS_DIR; }; + F9D60CFD2A76C69D00701635 /* Al-Tanzeel.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Al-Tanzeel.app"; sourceTree = BUILT_PRODUCTS_DIR; }; F9D60D002A76C69D00701635 /* QuranQuizApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QuranQuizApp.swift; sourceTree = ""; }; F9D60D042A76C69E00701635 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; F9D60D072A76C69E00701635 /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; }; @@ -135,8 +133,9 @@ F9D60D322A77E01300701635 /* PDFGenerator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PDFGenerator.swift; sourceTree = ""; }; F9D60D352A7852F400701635 /* PDFDocument+Transferable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFDocument+Transferable.swift"; sourceTree = ""; }; F9D60D382A78534B00701635 /* PDFKitView+UIViewRepresentable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PDFKitView+UIViewRepresentable.swift"; sourceTree = ""; }; + F9D90A4E2ACD850000CD8FD4 /* Localizable.xcstrings */ = {isa = PBXFileReference; lastKnownFileType = text.json.xcstrings; path = Localizable.xcstrings; sourceTree = ""; }; F9F11E0B2AC4D66800100507 /* FlexibleViewContainerViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FlexibleViewContainerViewModel.swift; sourceTree = ""; }; - F9F11E0D2AC4D6A200100507 /* FlexibleViewContainerSettings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FlexibleViewContainerSettings.swift; sourceTree = ""; }; + F9F250162AE200BA00D2CCD4 /* GenericDataSource */ = {isa = PBXFileReference; lastKnownFileType = text; name = GenericDataSource; path = Packges/GenericDataSource; sourceTree = SOURCE_ROOT; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -313,8 +312,8 @@ F9D60CFE2A76C69D00701635 /* Products */ = { isa = PBXGroup; children = ( - F9D60CFD2A76C69D00701635 /* QuranMajeed.app */, - F950FAD82AB4BA0000CB45B5 /* QuranMajeedTests.xctest */, + F9D60CFD2A76C69D00701635 /* Al-Tanzeel.app */, + F950FAD82AB4BA0000CB45B5 /* Al-TanzeelTests.xctest */, ); name = Products; sourceTree = ""; @@ -322,8 +321,7 @@ F9D60CFF2A76C69D00701635 /* QuranMajeed */ = { isa = PBXGroup; children = ( - F96002A92ABA4FD0008C16D5 /* quran-ios */, - F96002A82ABA48C7008C16D5 /* GenericDataSource */, + F9F250162AE200BA00D2CCD4 /* GenericDataSource */, F9A105312AB31BD2008FA0DE /* QuranMajeed */, F9D60D0E2A76C6AC00701635 /* Quiz */, F9D60D372A78531600701635 /* UIViewRepresentable */, @@ -335,6 +333,7 @@ F9D60D242A76C6EF00701635 /* fonts */, F9D60D042A76C69E00701635 /* Assets.xcassets */, F9D60D062A76C69E00701635 /* Preview Content */, + F9D90A4E2ACD850000CD8FD4 /* Localizable.xcstrings */, ); path = QuranMajeed; sourceTree = ""; @@ -471,7 +470,6 @@ children = ( F91766492AC3A3DC00792D2F /* _FlexibleView.swift */, F91766482AC3A3DC00792D2F /* FlexibleViewContainer.swift */, - F9F11E0D2AC4D6A200100507 /* FlexibleViewContainerSettings.swift */, F91766472AC3A3DC00792D2F /* FlexibleView.swift */, F917664A2AC3A3DC00792D2F /* SizeReader.swift */, ); @@ -489,9 +487,9 @@ /* End PBXGroup section */ /* Begin PBXNativeTarget section */ - F950FAD72AB4BA0000CB45B5 /* QuranMajeedTests */ = { + F950FAD72AB4BA0000CB45B5 /* Al-TanzeelTests */ = { isa = PBXNativeTarget; - buildConfigurationList = F950FADE2AB4BA0000CB45B5 /* Build configuration list for PBXNativeTarget "QuranMajeedTests" */; + buildConfigurationList = F950FADE2AB4BA0000CB45B5 /* Build configuration list for PBXNativeTarget "Al-TanzeelTests" */; buildPhases = ( F950FAD42AB4BA0000CB45B5 /* Sources */, F950FAD52AB4BA0000CB45B5 /* Frameworks */, @@ -502,14 +500,14 @@ dependencies = ( F950FADD2AB4BA0000CB45B5 /* PBXTargetDependency */, ); - name = QuranMajeedTests; + name = "Al-TanzeelTests"; productName = QuranMajeedTests; - productReference = F950FAD82AB4BA0000CB45B5 /* QuranMajeedTests.xctest */; + productReference = F950FAD82AB4BA0000CB45B5 /* Al-TanzeelTests.xctest */; productType = "com.apple.product-type.bundle.unit-test"; }; - F9D60CFC2A76C69D00701635 /* QuranMajeed */ = { + F9D60CFC2A76C69D00701635 /* Al-Tanzeel */ = { isa = PBXNativeTarget; - buildConfigurationList = F9D60D0B2A76C69E00701635 /* Build configuration list for PBXNativeTarget "QuranMajeed" */; + buildConfigurationList = F9D60D0B2A76C69E00701635 /* Build configuration list for PBXNativeTarget "Al-Tanzeel" */; buildPhases = ( F9D60CF92A76C69D00701635 /* Sources */, F9D60CFA2A76C69D00701635 /* Frameworks */, @@ -519,7 +517,7 @@ ); dependencies = ( ); - name = QuranMajeed; + name = "Al-Tanzeel"; packageProductDependencies = ( 763539CF2AB7943600CC27FD /* QuranKit */, 763539D42AB7975500CC27FD /* ReadingService */, @@ -534,7 +532,7 @@ F918395E2AB7CDA700E4D45B /* AppStructureFeature */, ); productName = QuranQuiz; - productReference = F9D60CFD2A76C69D00701635 /* QuranMajeed.app */; + productReference = F9D60CFD2A76C69D00701635 /* Al-Tanzeel.app */; productType = "com.apple.product-type.application"; }; /* End PBXNativeTarget section */ @@ -546,6 +544,7 @@ BuildIndependentTargetsInParallel = 1; LastSwiftUpdateCheck = 1500; LastUpgradeCheck = 1500; + ORGANIZATIONNAME = Islam; TargetAttributes = { F950FAD72AB4BA0000CB45B5 = { CreatedOnToolsVersion = 15.0; @@ -557,13 +556,16 @@ }; }; }; - buildConfigurationList = F9D60CF82A76C69D00701635 /* Build configuration list for PBXProject "QuranMajeed" */; + buildConfigurationList = F9D60CF82A76C69D00701635 /* Build configuration list for PBXProject "Al-Tanzeel" */; compatibilityVersion = "Xcode 14.0"; developmentRegion = en; hasScannedForEncodings = 0; knownRegions = ( en, Base, + ar, + ur, + "ur-Arab-PK", ); mainGroup = F9D60CF42A76C69D00701635; packageReferences = ( @@ -573,8 +575,8 @@ projectDirPath = ""; projectRoot = ""; targets = ( - F9D60CFC2A76C69D00701635 /* QuranMajeed */, - F950FAD72AB4BA0000CB45B5 /* QuranMajeedTests */, + F9D60CFC2A76C69D00701635 /* Al-Tanzeel */, + F950FAD72AB4BA0000CB45B5 /* Al-TanzeelTests */, ); }; /* End PBXProject section */ @@ -603,6 +605,7 @@ F94C11C12AB2986D004BAD10 /* Jameel Noori Nastaleeq Regular.ttf in Resources */, F992EBA92AB3CC1A00649632 /* ScheherazadeNew-Regular.ttf in Resources */, F952CFC92A90273C0039478F /* Quran_ur.json in Resources */, + F9D90A4F2ACD850000CD8FD4 /* Localizable.xcstrings in Resources */, F9D60D052A76C69E00701635 /* Assets.xcassets in Resources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -637,7 +640,6 @@ F952CFD42A96D6E50039478F /* NSAttributedString+size.swift in Sources */, F96447852AB466CC00DB5412 /* QuranProvider.swift in Sources */, F9D60D152A76C6AC00701635 /* QuizViewModel.swift in Sources */, - F9F11E0E2AC4D6A200100507 /* FlexibleViewContainerSettings.swift in Sources */, F9D60D332A77E01300701635 /* PDFGenerator.swift in Sources */, F9D60D172A76C6AC00701635 /* QuizView.swift in Sources */, F91839622AB7D0BA00E4D45B /* LoggingAnalyticsLibrary.swift in Sources */, @@ -666,7 +668,7 @@ /* Begin PBXTargetDependency section */ F950FADD2AB4BA0000CB45B5 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = F9D60CFC2A76C69D00701635 /* QuranMajeed */; + target = F9D60CFC2A76C69D00701635 /* Al-Tanzeel */; targetProxy = F950FADC2AB4BA0000CB45B5 /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ @@ -692,7 +694,7 @@ SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/QuranMajeed.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/QuranMajeed"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Al-Tanzeel.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Al-Tanzeel"; }; name = Debug; }; @@ -714,7 +716,7 @@ SWIFT_OBJC_BRIDGING_HEADER = "QuranMajeedTests/QuranMajeedTests-Bridging-Header.h"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/QuranMajeed.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/QuranMajeed"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Al-Tanzeel.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Al-Tanzeel"; }; name = Release; }; @@ -723,6 +725,7 @@ buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; @@ -770,7 +773,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 16.4; + IPHONEOS_DEPLOYMENT_TARGET = 16.0; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; ONLY_ACTIVE_ARCH = YES; @@ -785,6 +788,7 @@ buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; @@ -826,7 +830,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 16.4; + IPHONEOS_DEPLOYMENT_TARGET = 16.0; MTL_ENABLE_DEBUG_INFO = NO; MTL_FAST_MATH = YES; SDKROOT = iphoneos; @@ -844,7 +848,7 @@ CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; DEVELOPMENT_ASSET_PATHS = "\"QuranMajeed/Preview Content\""; - DEVELOPMENT_TEAM = E2D87XL9X7; + DEVELOPMENT_TEAM = 95B9YTC3G2; ENABLE_PREVIEWS = YES; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_FILE = QuranMajeed/Info.plist; @@ -874,7 +878,7 @@ CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 1; DEVELOPMENT_ASSET_PATHS = "\"QuranMajeed/Preview Content\""; - DEVELOPMENT_TEAM = E2D87XL9X7; + DEVELOPMENT_TEAM = 95B9YTC3G2; ENABLE_PREVIEWS = YES; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_FILE = QuranMajeed/Info.plist; @@ -899,7 +903,7 @@ /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - F950FADE2AB4BA0000CB45B5 /* Build configuration list for PBXNativeTarget "QuranMajeedTests" */ = { + F950FADE2AB4BA0000CB45B5 /* Build configuration list for PBXNativeTarget "Al-TanzeelTests" */ = { isa = XCConfigurationList; buildConfigurations = ( F950FADF2AB4BA0000CB45B5 /* Debug */, @@ -908,7 +912,7 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - F9D60CF82A76C69D00701635 /* Build configuration list for PBXProject "QuranMajeed" */ = { + F9D60CF82A76C69D00701635 /* Build configuration list for PBXProject "Al-Tanzeel" */ = { isa = XCConfigurationList; buildConfigurations = ( F9D60D092A76C69E00701635 /* Debug */, @@ -917,7 +921,7 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - F9D60D0B2A76C69E00701635 /* Build configuration list for PBXNativeTarget "QuranMajeed" */ = { + F9D60D0B2A76C69E00701635 /* Build configuration list for PBXNativeTarget "Al-Tanzeel" */ = { isa = XCConfigurationList; buildConfigurations = ( F9D60D0C2A76C69E00701635 /* Debug */, diff --git a/QuranMajeed.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Al-Tanzeel.xcodeproj/project.xcworkspace/contents.xcworkspacedata similarity index 100% rename from QuranMajeed.xcodeproj/project.xcworkspace/contents.xcworkspacedata rename to Al-Tanzeel.xcodeproj/project.xcworkspace/contents.xcworkspacedata diff --git a/QuranMajeed.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/Al-Tanzeel.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist similarity index 100% rename from QuranMajeed.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist rename to Al-Tanzeel.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist diff --git a/QuranMajeed.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/Al-Tanzeel.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings similarity index 100% rename from QuranMajeed.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings rename to Al-Tanzeel.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings diff --git a/QuranMajeed.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/Al-Tanzeel.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved similarity index 74% rename from QuranMajeed.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved rename to Al-Tanzeel.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved index 9983125..81184fd 100644 --- a/QuranMajeed.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/Al-Tanzeel.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -6,8 +6,8 @@ "repositoryURL": "https://github.com/groue/GRDB.swift", "state": { "branch": null, - "revision": "ce63f697ed381383041d245b185af3c501de8bef", - "version": "6.18.0" + "revision": "458b7211df26cc39b0283aa6dceeebbfe2181aa6", + "version": "6.19.0" } }, { @@ -28,6 +28,15 @@ "version": null } }, + { + "package": "QuranEngine", + "repositoryURL": "https://github.com/quran/quran-ios", + "state": { + "branch": "main", + "revision": "af9cbdc7278cc3247e7ca417239556db0132285e", + "version": null + } + }, { "package": "AsyncAlgorithms", "repositoryURL": "https://github.com/apple/swift-async-algorithms", @@ -42,8 +51,8 @@ "repositoryURL": "https://github.com/apple/swift-collections", "state": { "branch": null, - "revision": "937e904258d22af6e447a0b72c0bc67583ef64a2", - "version": "1.0.4" + "revision": "a902f1823a7ff3c9ab2fba0f992396b948eda307", + "version": "1.0.5" } }, { @@ -55,24 +64,6 @@ "version": "1.5.3" } }, - { - "package": "swift-snapshot-testing", - "repositoryURL": "https://github.com/pointfreeco/swift-snapshot-testing.git", - "state": { - "branch": null, - "revision": "696b86a6d151578bca7c1a2a3ed419a5f834d40f", - "version": "1.13.0" - } - }, - { - "package": "swift-syntax", - "repositoryURL": "https://github.com/apple/swift-syntax.git", - "state": { - "branch": null, - "revision": "74203046135342e4a4a627476dd6caf8b28fe11b", - "version": "509.0.0" - } - }, { "package": "WhatsNewKit", "repositoryURL": "https://github.com/SvenTiigi/WhatsNewKit.git", diff --git a/Al-Tanzeel.xcodeproj/xcshareddata/xcschemes/QuranMajeed.xcscheme b/Al-Tanzeel.xcodeproj/xcshareddata/xcschemes/QuranMajeed.xcscheme new file mode 100644 index 0000000..ed18acb --- /dev/null +++ b/Al-Tanzeel.xcodeproj/xcshareddata/xcschemes/QuranMajeed.xcscheme @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Packges/GenericDataSource b/Packges/GenericDataSource new file mode 160000 index 0000000..8b06dfd --- /dev/null +++ b/Packges/GenericDataSource @@ -0,0 +1 @@ +Subproject commit 8b06dfd564afc80155ab0a30a2613dc8e04be1e9 diff --git a/QuranMajeed/Localizable.xcstrings b/QuranMajeed/Localizable.xcstrings new file mode 100644 index 0000000..58d65ff --- /dev/null +++ b/QuranMajeed/Localizable.xcstrings @@ -0,0 +1,257 @@ +{ + "sourceLanguage" : "en", + "strings" : { + "%lld" : { + "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld" + } + }, + "ur" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld" + } + }, + "ur-Arab-PK" : { + "stringUnit" : { + "state" : "translated", + "value" : "%lld" + } + } + } + }, + "Ayah Selection" : { + "comment" : "Ayah is a noun, but can be translated in Urdu and Arabic and in some other languages as well.", + "localizations" : { + "ur" : { + "stringUnit" : { + "state" : "translated", + "value" : "آیت کا انتخاب" + } + }, + "ur-Arab-PK" : { + "stringUnit" : { + "state" : "translated", + "value" : "منتخب سورة" + } + } + } + }, + "Date:" : { + "comment" : "The date text, not the today's date.", + "localizations" : { + "ur" : { + "stringUnit" : { + "state" : "translated", + "value" : "بتاریخ:" + } + }, + "ur-Arab-PK" : { + "stringUnit" : { + "state" : "translated", + "value" : "بتاریخ:" + } + } + } + }, + "Name: ____________________" : { + "comment" : "Name of the student", + "localizations" : { + "ur" : { + "stringUnit" : { + "state" : "translated", + "value" : "نام طالب علم: ____________________" + } + }, + "ur-Arab-PK" : { + "stringUnit" : { + "state" : "translated", + "value" : "نام طالب علم: ____________________" + } + } + } + }, + "PDF" : { + "localizations" : { + "ur" : { + "stringUnit" : { + "state" : "translated", + "value" : "ڈاکیومنٹ" + } + }, + "ur-Arab-PK" : { + "stringUnit" : { + "state" : "translated", + "value" : "ڈاکیومنٹ" + } + } + } + }, + "PDF Preview" : { + "localizations" : { + "ur" : { + "stringUnit" : { + "state" : "translated", + "value" : "ڈاکیومنٹ" + } + }, + "ur-Arab-PK" : { + "stringUnit" : { + "state" : "translated", + "value" : "ڈاکیومنٹ" + } + } + } + }, + "Prepare Quiz" : { + "localizations" : { + "ur" : { + "stringUnit" : { + "state" : "translated", + "value" : "کوئز تیار کریں۔" + } + }, + "ur-Arab-PK" : { + "stringUnit" : { + "state" : "translated", + "value" : "کوئز تیار کریں۔" + } + } + } + }, + "Select Surah" : { + "comment" : "Sura is a noun, but can be translated in Urdu and Arabic and in some other languages as well.", + "localizations" : { + "ur" : { + "stringUnit" : { + "state" : "translated", + "value" : "سورہ منتخب کریں۔" + } + }, + "ur-Arab-PK" : { + "stringUnit" : { + "state" : "translated", + "value" : "سورہ منتخب کریں۔" + } + } + } + }, + "Select verses for translation" : { + "localizations" : { + "ur" : { + "stringUnit" : { + "state" : "translated", + "value" : "ترجمہ کے لیے آیات کا انتخاب کریں۔" + } + }, + "ur-Arab-PK" : { + "stringUnit" : { + "state" : "translated", + "value" : "ترجمہ کے لیے آیات کا انتخاب کریں۔" + } + } + } + }, + "Select verses for words meaning" : { + "localizations" : { + "ur" : { + "stringUnit" : { + "state" : "translated", + "value" : "الفاظ کے معنی کے لیے آیات کا انتخاب کریں۔" + } + }, + "ur-Arab-PK" : { + "stringUnit" : { + "state" : "translated", + "value" : "الفاظ کے معنی کے لیے آیات کا انتخاب کریں۔" + } + } + } + }, + "Selected Surah" : { + "localizations" : { + "ur" : { + "stringUnit" : { + "state" : "translated", + "value" : "منتخب سورة" + } + }, + "ur-Arab-PK" : { + "stringUnit" : { + "state" : "translated", + "value" : "منتخب سورة" + } + } + } + }, + "Selected verses for translation" : { + "localizations" : { + "ur" : { + "stringUnit" : { + "state" : "translated", + "value" : "ترجمہ کے لیے منتخب آیات۔" + } + }, + "ur-Arab-PK" : { + "stringUnit" : { + "state" : "translated", + "value" : "ترجمہ کے لیے منتخب آیات۔" + } + } + } + }, + "Selected verses for words meaning" : { + "localizations" : { + "ur" : { + "stringUnit" : { + "state" : "translated", + "value" : "الفاظ کے معنی کے لیے منتخب آیات۔" + } + }, + "ur-Arab-PK" : { + "stringUnit" : { + "state" : "translated", + "value" : "الفاظ کے معنی کے لیے منتخب آیات۔" + } + } + } + }, + "Translate the following verses" : { + "localizations" : { + "ur" : { + "stringUnit" : { + "state" : "translated", + "value" : "درج زیل آیات ترجمہ لکھیں:" + } + }, + "ur-Arab-PK" : { + "stringUnit" : { + "state" : "translated", + "value" : "درج زیل آیات ترجمہ لکھیں:" + } + } + } + }, + "Weekly Test" : { + "comment" : "Middle heading", + "localizations" : { + "ur" : { + "stringUnit" : { + "state" : "translated", + "value" : "سلسلہ وار ٹیسٹ" + } + }, + "ur-Arab-PK" : { + "stringUnit" : { + "state" : "translated", + "value" : "سلسلہ وار ٹیسٹ" + } + } + } + } + }, + "version" : "1.0" +} \ No newline at end of file diff --git a/QuranMajeed/Quiz/CustomComponents/FlexibleLayout/View/FlexibleViewContainerSettings.swift b/QuranMajeed/Quiz/CustomComponents/FlexibleLayout/View/FlexibleViewContainerSettings.swift index 3dd4c1b..3167bb3 100644 --- a/QuranMajeed/Quiz/CustomComponents/FlexibleLayout/View/FlexibleViewContainerSettings.swift +++ b/QuranMajeed/Quiz/CustomComponents/FlexibleLayout/View/FlexibleViewContainerSettings.swift @@ -7,6 +7,7 @@ import SwiftUI +/* THE FILE REFERENCE IS REMOVED TO KEEP DIRECTORY CLEAN */ struct FlexibleViewContainerSettings: View { @ObservedObject var viewModel: FlexibleViewContainer.ViewModel let alignmentName: [String] = ["leading", "center", "trailing"] @@ -53,3 +54,4 @@ struct FlexibleViewContainerSettings: View { .padding() } } + diff --git a/QuranMajeed/Quiz/Main/Model/WordForWordsMeaning.swift b/QuranMajeed/Quiz/Main/Model/WordForWordsMeaning.swift index 7df9bfd..d5b63e3 100644 --- a/QuranMajeed/Quiz/Main/Model/WordForWordsMeaning.swift +++ b/QuranMajeed/Quiz/Main/Model/WordForWordsMeaning.swift @@ -19,7 +19,7 @@ struct WordForWordsMeaning: Identifiable, Hashable, Comparable, Equatable { var id: Double let word: String - var isSelected = true + var isSelected = false func hash(into hasher: inout Hasher) { hasher.combine(word) diff --git a/QuranMajeed/Quiz/Main/View/SelectedSurahView.swift b/QuranMajeed/Quiz/Main/View/SelectedSurahView.swift index 70131dc..7d62dcd 100644 --- a/QuranMajeed/Quiz/Main/View/SelectedSurahView.swift +++ b/QuranMajeed/Quiz/Main/View/SelectedSurahView.swift @@ -12,7 +12,7 @@ import QuranKit struct SelectedSurahView: View { @ObservedObject var viewModel: QuizView.ViewModel var body: some View { - Section("Selected Surah") { + Section(header: Text("Selected Surah")) { NavigationLink(value: viewModel.suras) { VStack { SuraNameView(for: viewModel.selectedSurah) diff --git a/QuranMajeed/Quiz/Main/View/SuraListView.swift b/QuranMajeed/Quiz/Main/View/SuraListView.swift index c22fb68..7291e4b 100644 --- a/QuranMajeed/Quiz/Main/View/SuraListView.swift +++ b/QuranMajeed/Quiz/Main/View/SuraListView.swift @@ -31,7 +31,7 @@ struct SuraListView: View { presentationMode.wrappedValue.dismiss() } } - .navigationTitle("Select Sura") + .navigationTitle(Text("Select Surah", comment: "Sura is a noun, but can be translated in Urdu and Arabic and in some other languages as well.")) .searchable(text: $searchText) } } diff --git a/QuranMajeed/Quiz/Main/View/VerseListView.swift b/QuranMajeed/Quiz/Main/View/VerseListView.swift index 3fe8b5a..7210278 100644 --- a/QuranMajeed/Quiz/Main/View/VerseListView.swift +++ b/QuranMajeed/Quiz/Main/View/VerseListView.swift @@ -36,7 +36,7 @@ struct VerseListView: View { .multilineTextAlignment(.trailing) } } - .navigationTitle("Ayah Selection") + .navigationTitle(Text("Ayah Selection", comment: "Ayah is a noun, but can be translated in Urdu and Arabic and in some other languages as well.")) .environment(\.editMode, .constant(.active)) .onAppear { selection = Set(selectedVerses) @@ -53,6 +53,7 @@ struct VerseListView: View { struct VerseListView_Previews: PreviewProvider { static var previews: some View { ContentPreview() + .environment(\.locale, .init(identifier: "ur")) } } diff --git a/QuranMajeed/Quiz/PDFPreview/Utility/PDFGenerator.swift b/QuranMajeed/Quiz/PDFPreview/Utility/PDFGenerator.swift index 8520cbf..82213c6 100644 --- a/QuranMajeed/Quiz/PDFPreview/Utility/PDFGenerator.swift +++ b/QuranMajeed/Quiz/PDFPreview/Utility/PDFGenerator.swift @@ -6,6 +6,8 @@ // import PDFKit +import Foundation +import SwiftUI class PDFGenerator { init( @@ -237,11 +239,11 @@ class PDFGenerator { let theOpeningText = "بِسۡمِ ٱللَّهِ ٱلرَّحۡمَٰنِ ٱلرَّحِيمِ" let rightHeadingText = "امن ترجمةالقرآن کلاس" let leftHeadingText = "جامع مسجد امن واپڈا ٹاؤن گوجراںوالہ" - let belowOpeningText = "سلسلہ وار ٹیسٹ" - let studentNameText = "نام طالب علم:" + let belowOpeningText = NSLocalizedString("Weekly Test", comment: "Middle heading") + let studentNameText = NSLocalizedString("Name: ____________________", comment: "") // "نام طالب علم:" let nameUnderScores = Array(repeating: "_", count: 20).reduce("", +) - let dateText = "بتاریخ:" - let translateFollowingAyahsText = "درج زیل آیات ترجمہ لکھیں:" + let dateText = NSLocalizedString("Date:", comment: "") + let translateFollowingAyahsText = NSLocalizedString("Translate the following verses", comment: "") // MARK: - MetaData let pdfMetaData: [CFString: String] @@ -350,33 +352,28 @@ extension PDFGenerator { ), withAttributes: nameFieldAttributes ) - nameUnderScores.draw( - at: CGPoint( - x: pageWidth - studentNameTextWidth - (nameUnderScores.width(usingFont: .boldSystemFont(ofSize: 14)) * 1.10), - y: studentNameRowYPos - ), - withAttributes: nameFieldAttributes - ) - dateText.draw( - at: CGPoint( - x: dateTextXPos, - y: studentNameRowYPos - ), - withAttributes: nameFieldAttributes - ) } - + /* + "\(dateText) \(date)".draw( + at: CGPoint( + x: dateTextXPos, + y: studentNameRowYPos + ), + withAttributes: nameFieldAttributes + ) + */ private func drawDateField() { - let dateFieldAttributes = [ - NSAttributedString.Key.font: nameAndDateTextFont, - NSAttributedString.Key.underlineStyle: NSUnderlineStyle.single.rawValue - ] as [NSAttributedString.Key : Any] - date.draw( + let fullText = "\(dateText) \(date)" + let dateRange = (fullText as NSString).range(of: date) + let attributedString = NSMutableAttributedString(string: fullText) + attributedString.addAttribute(.font, value: nameAndDateTextFont, range: NSMakeRange(0, attributedString.length)) + attributedString.addAttribute(NSAttributedString.Key.underlineStyle, value: NSUnderlineStyle.single.rawValue, range: dateRange) + + attributedString.draw( at: CGPoint( x: 15, y: studentNameRowYPos - ), - withAttributes: dateFieldAttributes + ) ) } diff --git a/QuranMajeed/QuranMajeed/Quran/DependencyContainer/QuranDataDependencyContainer.swift b/QuranMajeed/QuranMajeed/Quran/DependencyContainer/QuranDataDependencyContainer.swift index fe45796..de64cd9 100644 --- a/QuranMajeed/QuranMajeed/Quran/DependencyContainer/QuranDataDependencyContainer.swift +++ b/QuranMajeed/QuranMajeed/Quran/DependencyContainer/QuranDataDependencyContainer.swift @@ -17,7 +17,7 @@ struct QuranDataDependencyContainer { } private func makeQuranService() throws -> QuranService { - try MainQuranService(providerForQuran: providerForQuran) + MainQuranService(providerForQuran: providerForQuran) } private let providerForQuran: QuranProvider