mirror of
https://codeberg.org/comaps/comaps
synced 2025-12-19 13:03:36 +00:00
[ios] Fixed category search for unsupported translations.
Signed-off-by: Kiryl Kaveryn <kirylkaveryn@gmail.com>
This commit is contained in:
committed by
Konstantin Pastbin
parent
d649e46ef2
commit
aa71668eab
@@ -7,6 +7,7 @@ NS_ASSUME_NONNULL_BEGIN
|
||||
+ (NSArray<NSString *> *)searchCategories;
|
||||
|
||||
+ (BOOL)isSearchHistoryEmpty;
|
||||
+ (BOOL)isLanguageSupported:(NSString *)languageCode;
|
||||
+ (NSArray<NSString *> *)lastSearchQueries;
|
||||
+ (void)clearSearchHistory;
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
#import "MWMSearchFrameworkHelper.h"
|
||||
|
||||
#include "platform/preferred_languages.hpp"
|
||||
#include "search/displayed_categories.hpp"
|
||||
|
||||
#include "Framework.h"
|
||||
|
||||
@@ -20,6 +21,11 @@
|
||||
return GetFramework().GetSearchAPI().GetLastSearchQueries().empty();
|
||||
}
|
||||
|
||||
+ (BOOL)isLanguageSupported:(NSString *)languageCode
|
||||
{
|
||||
return search::DisplayedCategories::IsLanguageSupported(languageCode.UTF8String);
|
||||
}
|
||||
|
||||
+ (NSArray<NSString *> *)lastSearchQueries
|
||||
{
|
||||
NSMutableArray * result = [NSMutableArray array];
|
||||
|
||||
@@ -9,6 +9,15 @@ var isiPad: Bool {
|
||||
|
||||
func L(_ key: String) -> String { return NSLocalizedString(key, comment: "") }
|
||||
|
||||
func L(_ key: String, languageCode: String) -> String {
|
||||
guard let path = Bundle.main.path(forResource: languageCode, ofType: "lproj"),
|
||||
let bundle = Bundle(path: path) else {
|
||||
LOG(.warning, "Localization bundle not found for language code: \(languageCode)")
|
||||
return L(key)
|
||||
}
|
||||
return NSLocalizedString(key, bundle: bundle, comment: "")
|
||||
}
|
||||
|
||||
func alternative<T>(iPhone: T, iPad: T) -> T { isiPad ? iPad : iPhone }
|
||||
|
||||
func iPadSpecific(_ f: () -> Void) {
|
||||
|
||||
@@ -70,7 +70,10 @@ extension SearchTabViewController: SearchOnMapScrollViewDelegate {
|
||||
extension SearchTabViewController: SearchCategoriesViewControllerDelegate {
|
||||
func categoriesViewController(_ viewController: SearchCategoriesViewController,
|
||||
didSelect category: String) {
|
||||
let query = SearchQuery(L(category) + " ", source: .category)
|
||||
let preferredLang = AppInfo.shared().languageId
|
||||
let supportedBySearchLang = MWMSearchFrameworkHelper.isLanguageSupported(preferredLang) ? preferredLang : "en"
|
||||
let searchText = L(category, languageCode: supportedBySearchLang) + " "
|
||||
let query = SearchQuery(searchText, locale: supportedBySearchLang, source: .category)
|
||||
delegate?.searchTabController(self, didSearch: query)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user