Détecter la langue de saisie / entrée de l'utilisateur

Je voulais savoir s'il existe un moyen de détecter si l'entrée de l'utilisateur est en charset grec.

Modifier:
Juste pour être plus clair, je dois reconnaître la langue que l'utilisateur tape et non les paramètres régionaux du téléphone.

  • Android - Nouveau calendrier DatePicker et TimePicker
  • L'activité a tué / onCreate a appelé après avoir pris la photo par intention
  • Comment fonctionnent les paiements NFC?
  • Impossible de télécharger un nouveau fichier APK sur Android Play Store
  • Android SQLite - Cursor & ContentValues
  • L'affichage de l'aperçu de la caméra en verre est brisé
  • Par exemple, mon téléphone est en anglais et disons que mon clavier est en russe, le getDefault () renvoie "en", mais je dois avoir "ru" à ce moment-là.

    Je ne sais pas si cela est disponible hors de la boîte à partir d'Android, peut-être une approche pour détecter les codes de caractères de la chaîne et voir s'il se trouve dans l'alphabet anglais ou dans un autre. Quelques points à ce sujet?

    J'imagine quelque chose comme
    if character belongs to K then is English
    (where K is the essemble of english characters)

    Solution:

    Enfin, j'ai utilisé une expression régulière pour déterminer si la chaîne est en anglais.

     String pattern = "^[A-Za-z0-9. ]+$"; if (string.matches(pattern) // is English else // is not English 

    Si quelqu'un doit proposer une meilleure solution, je le marquerai comme réponse.

    3 Solutions collect form web for “Détecter la langue de saisie / entrée de l'utilisateur”

    Vous pouvez utiliser la méthode suivante au lieu de la correspondance de motif:

     boolean isEnglish = true; for ( char c : s.toCharArray() ) { if ( Character.UnicodeBlock.of(c) != Character.UnicodeBlock.BASIC_LATIN ) { isEnglish = false; break; } } 
     Locale.getDefault().getLanguage().equals("gr") 

    En d'autres termes:

      contains(Charset) 

    MODIFIER:

    Après plus de temps de navigation, j'ai rencontré CharsetDetector et Character Set Detection .

    Ici vous avez la méthode de detect() mais je ne sais pas à quel point cela peut être utilisé.

    Comme le suggère Siva, vous pouvez vérifier les paramètres régionaux de l'utilisateur.

    Dans Android, cela peut se faire en utilisant Locale.getDefault () . Bien que je ne le compare pas strictement à un code à 2 lettres, l'implémentation actuelle d'Android est un code de langue à 2 lettres, un trait de soulignement et un code de pays à deux lettres. C'est-à-dire. de_US serait German as spoken in the United States .

    Ce n'est pas la façon dont l'industrie se déplace, mais c'est le modèle le mieux pris en charge à partir de Java 6. Java 7, une fois pris en charge par Android devrait prendre en charge les codes alpha-3 ISO 639 qui sont plus à jour.

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.