Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
48008d5
Start working on replacing languages api.
serhii-londar Jan 14, 2026
fb1f5a3
Merge remote-tracking branch 'origin/master' into languages-api
serhii-londar Jan 29, 2026
f7b769d
refactor: streamline language handling and update supported languages…
serhii-londar Jan 29, 2026
629a305
feat: enhance CrowdinLogCell layout and improve row height handling i…
serhii-londar Jan 30, 2026
e2d69f8
Refactor CrowdinSupportedLanguages: Remove synchronous download metho…
serhii-londar Feb 4, 2026
85b8aca
feat: implement custom language merging in ManifestManager and add un…
serhii-londar Feb 4, 2026
68d6f32
feat: update search bar placement handling in MainVC to avoid toolbar…
serhii-londar Feb 4, 2026
125ea84
refactor: replace hardcoded distribution hash and source language wit…
serhii-londar Feb 4, 2026
7f43511
feat: update search bar placement handling in MainVC and remove legac…
serhii-londar Feb 21, 2026
e830d21
fix: improve error handling for URL and HTTP response in CrowdinSuppo…
serhii-londar Feb 21, 2026
014f6c7
refactor: update manifest handling and improve supported languages sa…
serhii-londar Feb 21, 2026
8b49651
chore: merge main and resolve conflicts
serhii-londar Feb 21, 2026
e60a15c
fix: update localization strings for English, French, and Ukrainian l…
serhii-londar Feb 22, 2026
5d2b2c4
Merge branch 'master' into languages-api
serhii-londar Mar 4, 2026
6b038b1
Update pods.
serhii-londar Mar 4, 2026
dde1e0f
feat: enhance error handling and localization data fetching in RURemo…
serhii-londar Mar 6, 2026
79ade1e
feat: improve language validation in start method for real-time updates
serhii-londar Mar 6, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion CrowdinSDK.podspec
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,6 @@ Pod::Spec.new do |spec|
'Sources/Tests/CrowdinProvider/*.swift',
'Sources/Tests/Core/IntegrationTestGate.swift'
]
test_spec.resources = 'Resources/Tests/SupportedLanguages.json'
end

spec.subspec 'CrowdinAPI' do |subspec|
Expand Down
110 changes: 49 additions & 61 deletions Example/AppleReminders.xcodeproj/project.pbxproj

Large diffs are not rendered by default.

4 changes: 4 additions & 0 deletions Example/AppleReminders/Controllers/MainVC.swift
Original file line number Diff line number Diff line change
Expand Up @@ -188,6 +188,10 @@ final class MainVC: UIViewController {
searchController?.obscuresBackgroundDuringPresentation = false
searchController?.searchBar.placeholder = "Search".localized
navigationItem.searchController = searchController
if #available(iOS 16.0, *) {
// Keep search UI in the navigation bar
navigationItem.preferredSearchBarPlacement = .stacked
}
}
}

Expand Down
200 changes: 100 additions & 100 deletions Example/AppleReminders/en.lproj/Localizable.strings
Original file line number Diff line number Diff line change
@@ -1,100 +1,100 @@
"OK" = "OK[L]";
"Saturday" = "Saturday[L]";
"Repeat Forever" = "Repeat Forever[L]";
"Delete %@?" = "Delete %@?[L]";
"If you delete this shared list, other people will no longer have access to it and it will be deleted from all of their devices." = "If you delete this shared list, other people will no longer have access to it and it will be deleted from all of their devices.[L]";
"Repeat" = "Repeat[L]";
"My Lists" = "My Lists[L]";
"Subtasks" = "Subtasks[L]";
"Add List" = "Add List[L]";
"Location" = "Location[L]";
"not implemented" = "not implemented[L]";
"Cancel" = "Cancel[L]";
"Tuesday" = "Tuesday[L]";
"Selecting this option will show the reminder notification when chatting with a person in Messages." = "Selecting this option will show the reminder notification when chatting with a person in Messages.[L]";
"Main" = "Main[L]";
"Flagged" = "Flagged[L]";
"Untitled" = "Untitled[L]";
"Done" = "Done[L]";
"Edit" = "Edit[L]";
"Navigation Title Text" = "Navigation Title Text[L]";
"Getting in Car" = "Getting in Car[L]";
"Remind me when messaging" = "Remind me when messaging[L]";
"List" = "List[L]";
"Remind me at a location" = "Remind me at a location[L]";
"Type" = "Type[L]";
"New Reminder" = "New Reminder[L]";
"Could not create new todo" = "Could not create new todo[L]";
"Scheduled" = "Scheduled[L]";
"Change List" = "Change List[L]";
"Remind me at a time" = "Remind me at a time[L]";
"Search" = "Search[L]";
"Friday" = "Friday[L]";
"End Repeat" = "End Repeat[L]";
"Priority" = "Priority[L]";
"Weekly" = "Weekly[L]";
"TEMP" = "TEMP[L]";
"Text" = "Text[L]";
"Thursday" = "Thursday[L]";
"Add Group" = "Add Group[L]";
"Monthly" = "Monthly[L]";
"Wednesday" = "Wednesday[L]";
"Monday" = "Monday[L]";
"New Group" = "New Group[L]";
"Group Info" = "Group Info[L]";
"Default Configuration" = "Default Configuration[L]";
"Name & Appearance" = "Name & Appearance[L]";
"Unspecified" = "Unspecified[L]";
"computer desktop pc" = "computer desktop pc[L]";
"Today" = "Today[L]";
"Hide Completed" = "Hide Completed[L]";
"Show Completed" = "Show Completed[L]";
"Add Image" = "Add Image[L]";
"Light" = "Light[L]";
"Choose Person" = "Choose Person[L]";
"Dark mode" = "Dark mode[L]";
"Alarm" = "Alarm[L]";
"Title" = "Title[L]";
"Every 3 Months" = "Every 3 Months[L]";
"None" = "None[L]";
"View Participants" = "View Participants[L]";
"Delete List" = "Delete List[L]";
"Outdent" = "Outdent[L]";
"Indent" = "Indent[L]";
"Choose Account" = "Choose Account[L]";
"Getting in Car" = "Getting in Car[L]";
"Getting out of Car" = "Getting out of Car[L]";
"Daily" = "Daily[L]";
"Enter List Name Here" = "Enter List Name Here[L]";
"All" = "All[L]";
"Never" = "Never[L]";
"Yearly" = "Yearly[L]";
"Create" = "Create[L]";
"Done" = "Done[L]";
"Details" = "Details[L]";
"Biweekly" = "Biweekly[L]";
"Lists" = "Lists[L]";
"Feature not implemented." = "Feature not implemented.[L]";
"Feature Unavailable" = "Feature Unavailable[L]";
"Add Reminder" = "Add Reminder[L]";
"Getting out of Car" = "Getting out of Car[L]";
"Move To..." = "Move To...[L]";
"Select a List" = "Select a List[L]";
"TEMP" = "TEMP[L]";
"MORE LISTS" = "MORE LISTS[L]";
"Move these reminders to a new list" = "Move these reminders to a new list[L]";
"Light mode" = "Light mode[L]";
"Select Reminders" = "Select Reminders[L]";
"MainVC deinit" = "MainVC deinit[L]";
"Every 6 Months" = "Every 6 Months[L]";
"Custom" = "Custom[L]";
"Remind me on a day" = "Remind me on a day[L]";
"Dark" = "Dark[L]";
"Sunday" = "Sunday[L]";
"Flag" = "Flag[L]";
"Delete" = "Delete[L]";
"Include" = "Include[L]";
"INCLUDE" = "INCLUDE[L]";
"End Repeat Date" = "End Repeat Date[L]";
"Settings" = "Settings[L]";
"You do not have any lists. To create a new one, press the \"Add List\" button" = "You do not have any lists. To create a new one, press the \"Add List\" button";
"OK" = "OK[en][L]";
"Saturday" = "Saturday[en][L]";
"Repeat Forever" = "Repeat Forever[en][L]";
"Delete %@?" = "Delete %@?[en][L]";
"If you delete this shared list, other people will no longer have access to it and it will be deleted from all of their devices." = "If you delete this shared list, other people will no longer have access to it and it will be deleted from all of their devices.[en][L]";
"Repeat" = "Repeat[en][L]";
"My Lists" = "My Lists[en][L]";
"Subtasks" = "Subtasks[en][L]";
"Add List" = "Add List[en][L]";
"Location" = "Location[en][L]";
"not implemented" = "not implemented[en][L]";
"Cancel" = "Cancel[en][L]";
"Tuesday" = "Tuesday[en][L]";
"Selecting this option will show the reminder notification when chatting with a person in Messages." = "Selecting this option will show the reminder notification when chatting with a person in Messages.[en][L]";
"Main" = "Main[en][L]";
"Flagged" = "Flagged[en][L]";
"Untitled" = "Untitled[en][L]";
"Done" = "Done[en][L]";
"Edit" = "Edit[en][L]";
"Navigation Title Text" = "Navigation Title Text[en][L]";
"Getting in Car" = "Getting in Car[en][L]";
"Remind me when messaging" = "Remind me when messaging[en][L]";
"List" = "List[en][L]";
"Remind me at a location" = "Remind me at a location[en][L]";
"Type" = "Type[en][L]";
"New Reminder" = "New Reminder[en][L]";
"Could not create new todo" = "Could not create new todo[en][L]";
"Scheduled" = "Scheduled[en][L]";
"Change List" = "Change List[en][L]";
"Remind me at a time" = "Remind me at a time[en][L]";
"Search" = "Search[en][L]";
"Friday" = "Friday[en][L]";
"End Repeat" = "End Repeat[en][L]";
"Priority" = "Priority[en][L]";
"Weekly" = "Weekly[en][L]";
"TEMP" = "TEMP[en][L]";
"Text" = "Text[en][L]";
"Thursday" = "Thursday[en][L]";
"Add Group" = "Add Group[en][L]";
"Monthly" = "Monthly[en][L]";
"Wednesday" = "Wednesday[en][L]";
"Monday" = "Monday[en][L]";
"New Group" = "New Group[en][L]";
"Group Info" = "Group Info[en][L]";
"Default Configuration" = "Default Configuration[en][L]";
"Name & Appearance" = "Name & Appearance[en][L]";
"Unspecified" = "Unspecified[en][L]";
"computer desktop pc" = "computer desktop pc[en][L]";
"Today" = "Today[en][L]";
"Hide Completed" = "Hide Completed[en][L]";
"Show Completed" = "Show Completed[en][L]";
"Add Image" = "Add Image[en][L]";
"Light" = "Light[en][L]";
"Choose Person" = "Choose Person[en][L]";
"Dark mode" = "Dark mode[en][L]";
"Alarm" = "Alarm[en][L]";
"Title" = "Title[en][L]";
"Every 3 Months" = "Every 3 Months[en][L]";
"None" = "None[en][L]";
"View Participants" = "View Participants[en][L]";
"Delete List" = "Delete List[en][L]";
"Outdent" = "Outdent[en][L]";
"Indent" = "Indent[en][L]";
"Choose Account" = "Choose Account[en][L]";
"Getting in Car" = "Getting in Car[en][L]";
"Getting out of Car" = "Getting out of Car[en][L]";
"Daily" = "Daily[en][L]";
"Enter List Name Here" = "Enter List Name Here[en][L]";
"All" = "All[en][L]";
"Never" = "Never[en][L]";
"Yearly" = "Yearly[en][L]";
"Create" = "Create[en][L]";
"Done" = "Done[en][L]";
"Details" = "Details[en][L]";
"Biweekly" = "Biweekly[en][L]";
"Lists" = "Lists[en][L]";
"Feature not implemented." = "Feature not implemented.[en][L]";
"Feature Unavailable" = "Feature Unavailable[en][L]";
"Add Reminder" = "Add Reminder[en][L]";
"Getting out of Car" = "Getting out of Car[en][L]";
"Move To..." = "Move To...[en][L]";
"Select a List" = "Select a List[en][L]";
"TEMP" = "TEMP[en][L]";
"MORE LISTS" = "MORE LISTS[en][L]";
"Move these reminders to a new list" = "Move these reminders to a new list[en][L]";
"Light mode" = "Light mode[en][L]";
"Select Reminders" = "Select Reminders[en][L]";
"MainVC deinit" = "MainVC deinit[en][L]";
"Every 6 Months" = "Every 6 Months[en][L]";
"Custom" = "Custom[en][L]";
"Remind me on a day" = "Remind me on a day[en][L]";
"Dark" = "Dark[en][L]";
"Sunday" = "Sunday[en][L]";
"Flag" = "Flag[en][L]";
"Delete" = "Delete[en][L]";
"Include" = "Include[en][L]";
"INCLUDE" = "INCLUDE[en][L]";
"End Repeat Date" = "End Repeat Date[en][L]";
"Settings" = "Settings[en][L]";
"You do not have any lists. To create a new one, press the \"Add List\" button" = "You do not have any lists. To create a new one, press the \"Add List\" button[en][L]";
Loading
Loading