Hoşgeldin. Soru sormak veya cevaplamak için hemen üye ol.

SearchField Dil Algılama

0 oy
67 kez görüntülendi
31, Mart, 31 ios development kategorisinde burhanaksendir tarafından soruldu

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
1, Nisan, 1 yasin tarafından cevaplandı
1, Nisan, 1 burhanaksendir 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.

1, Nisan, 1 burhanaksendir tarafından yorumlandı

Teşekkür ederim.

0 oy
3, Nisan, 3 burhanaksendir tarafından cevaplandı

Şö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)
    }
...