7
votes

Faites correspondre le code linguistique avec les pays où cette langue est une langue officielle ou couramment utilisée

Y a-t-il une bibliothèque Python pour obtenir une liste de pays pour un code de langue spécifique où il s'agit d'une langue officielle ou couramment utilisée?

Par exemple, le code de langue de "fr" est associé à 29 pays où le français est une langue officielle plus 8 pays où il est couramment utilisé.


0 commentaires

5 Réponses :


-2
votes

pycountry (sérieusement). Vous pouvez l'obtenir à partir du Index de package .


2 commentaires

Je viens de regarder la documentation pour cela et il ne semble pas que vous puissiez fournir un code de langue et obtenir une liste de tous les pays qui utilisent cette langue.


Peut-être la peine d'être vérifiée à nouveau - la raison pour laquelle je dis c'est parce que j'ai utilisé ce paquet pour un but similaire (monnaies) - mais je n'ai pas pu utiliser l'interface. Au lieu de cela, je devais travailler directement avec les cinq bases de données XML fournies dans le paquet.



7
votes

Recherchez le paquet Babel. Il a un fichier de cornichon pour chaque localisation pris en charge. Voir la liste Liste () dans le module localEData pour obtenir une liste de tous les locaux. Ensuite, écrivez un certain code pour scinder les paramètres régionaux en (langue, pays) etc


4 commentaires

C'est vraiment facile en utilisant babel.languages.get_territoire_language_info ()


@RMATT C'est incroyable à quel point un paquet peut devenir plus facile à utiliser dans six ans :-)


Bien sûr, c'est pourquoi j'ai aussi évoqué votre réponse! Vous avez apporté un chemin décent, je viens de le rendre plus précis pour les nouveaux arrivants;)


@RMATT, vous devriez ajouter ceci comme une réponse. C'est de loin la méthode la plus facile!



-1
votes

Consultez ethnologue

Soyez prudent si ...

l'Inde a A lot des langues officielles .


0 commentaires

18
votes

Malgré la réponse acceptée, autant que je ne puisse dire qu'aucun des fichiers XML sous-jacents, le pycountry contient un moyen de cartographier des langues vers des pays. Il contient des listes de langues et de leurs codes ISO, des listes de pays et de leurs codes ISO, ainsi que d'autres éléments utiles, mais pas cela.

De même, le paquet Babel est génial mais après avoir creusé pendant un moment, je n'ai pas pu trouver Toute façon de répertorier toutes les langues em> pour un pays particulier. Le meilleur que vous puissiez faire est la langue «probablement»: https://stackoverflow.com/a/22199367/202168 p>

Donc, je devais le faire moi-même ... p> xxx pré>

Vous voulez probablement stocker le résultat de cela dans un fichier plutôt que d'appeler sur le Web Chaque fois que vous en avez besoin. p>

Ce jeu de données contient également des langues «non officielles», vous ne voudrez peut-être pas inclure ceux-ci, voici un autre code d'exemple: P>

TERRITORY_LANGUAGES = get_territory_languages()

def get_official_locale_ids(country_code):
    country_code = country_code.upper()
    langs = TERRITORY_LANGUAGES[country_code].items()
    # most widely-spoken first:
    langs.sort(key=lambda l: l[1]['percent'], reverse=True)
    return [
        '{lang}_{terr}'.format(lang=lang, terr=country_code)
        for lang, spec in langs if spec['official']
    ]

get_official_locale_ids('es')
>>> ['es_ES', 'ca_ES', 'gl_ES', 'eu_ES', 'ast_ES']


2 commentaires

Je suis incapable d'atteindre le "XML" fourni. Pourriez-vous, s'il vous plaît, donnez-moi des suggestions sur comment puis-je le télécharger?


On dirait que l'URL a changé, j'ai mis à jour la réponse avec la nouvelle URL (et pour Python 3)



1
votes

Comme demandé par @noahsantacruz, j'ajoute cela comme une réponse distincte pour faciliter la prise de vue. Au moins depuis 2017, la méthode la plus simple de loin est la suivante:

babel.languages.get_territoire_language_info ()

Voir les docs http: // Babel. pocoo.org/en/latest/api/languages.html#babel.languages.get_territoire_language_info


0 commentaires