Hoşgeldin. Soru sormak veya cevaplamak için hemen üye ol.
0 oy
339 kez görüntülendi
ios development kategorisinde tarafından

SearchField içine yazılacak karakterlere göre dil algılamasını Swift ile nasıl yapabilirim?
Örnek:
Apple yazarsa Dil english olduğunu bileceğiz
Elma yazarsa Türkçe
تفاح yazarsa Arapça

2 Cevaplar

+1 oy
tarafından
tarafından seçilmiş
 
En İyi Cevap

UITextField'in Delegate metodlarında olan "shouldChangeCharactersIn Range" metodunu kullanarak , kullanıcının textField'e yaptığı her girişte ilgili kontrol işlemini sağlayacak bir metod çağırabilirsin.

Fakat yapmak istediğin şey özünde biraz zor. Uygulamanda kontrol edeceğin her bir dil için ayrı ayrı, her bir dile ait sözlük bulundurman gerek. Core-data veya Key-value storage'lar bu sözlükler için veritabanı olarak kullanılabilir.

Veya internette, her bir dil için kullanılabilecek sözlük API'ları bulabilirsen, yukarıda değindiğim gibi uygulama içerisinde tutmak yerine, kullanıcı giriş yaptıkça ilgili API'a requested atarak da eşleştirme/kontrol sağlayabilirsin.

tarafından

Teşekkür ederim.

0 oy
tarafından

Şöyle bir şey buldum. Kelime yazıldıktan sonra hangi dil olduğunu buluyor:

func detectLanguage<T: StringProtocol>(for text: T) -> String? {
        let tagger = NSLinguisticTagger.init(tagSchemes: [.language], options: 0)
        tagger.string = String(text)

        guard let languageCode = tagger.tag(at: 0, scheme: .language, tokenRange: nil, sentenceRange: nil) else { return nil }
        return Locale.current.localizedString(forIdentifier: languageCode.rawValue)
    }
...