2009-12-26 11 views
1

J'ai besoin de détecter la langue à partir d'un Widetring Unicode. J'ai essayé d'utiliser l'interface iMultiLang2 et cela fonctionne correctement si les paramètres régionaux ont une page de codes. Certains paramètres régionaux/langues n'ont pas de pages de codes et ne sont mappés qu'à Unicode. Comment puis-je obtenir le lcid pour ceux? Le géorgien, l'hindi et beaucoup d'autres langues n'ont pas de pages de codes et ne sont que des classements UnicodeComment détecter les paramètres régionaux/langue si les paramètres régionaux n'ont pas de page de code?

J'utilise Delphi7 Enterprise.

apprécierions vraiment une aide

Cordialement

Répondre

9

La question est basée sur une mauvaise compréhension de l'Unicode. Unicode est un moyen de représenter systèmes d'écriture, pas les langues. Imaginez une chaîne unicode composée des trois points de code U + 0073, U + 0069 et U + 006e, c'est-à-dire "sin". Est-ce l'anglais? Est-ce le mot espagnol pour "sans"? Est-ce "ça" dans n'importe laquelle de plusieurs langues scandinaves? Qui sait.

Vous mentionnez le géorgien et l'hindi. L'écriture géorgienne (ქართული დამწერლობა) peut être utilisée pour représenter le géorgien, bien sûr, mais aussi le mingrélien, le svan et d'autres langues encore plus rares. Il n'y a pas de script "hindi", pas plus qu'il n'y a de lettres "anglaises". Comme l'anglais est écrit en lettres latines que nous avons héritées de nos ancêtres latins, l'hindi est écrit en Devanāgarī (देवनागरी), un beau script qui est aussi utilisé pour le sanskrit ancien et le marathi moderne et le népali et des dizaines d'autres langues. Et ne me lancez pas sur le chinois. Si vous êtes pressé et devez accepter une quasi-solution hackish, vous pouvez faire des approximations: "puisque ce personnage est de la gamme Devanāgarī (U + 0900-U + 097F) ou des gammes géorgiennes (U + 10A0- U + 10FC et U + 2D00-U + 2D25), je suppose que c'est probablement hindi ou probablement géorgien. " Une telle méthode serait sujette aux erreurs et vague, mais vous pouvez commencer avec la table de plage here.

+0

Merci beaucoup. C'était aussi ce que j'avais en tête. Se demandait s'il y avait une alternative puisque cette méthode est très sujette aux erreurs. – Mode

3

Je ne donne généralement pas ce genre de réponses, mais de toute façon Vous ne faites pas!. C'est une sorte de tâche que vous ne pouvez pas vraiment résoudre. Il y a trop de cas où vous ne pouvez pas déterminer la langue.

BTW, Le seul endroit où j'ai observé une fonctionnalité comme celle-ci était sur Google Translator et je travaille seulement si la longueur du texte est assez grande et même si il n'y a aucune garantie.

+0

Merci et en regardant la réponse ci-dessous, vous avez raison. Btw, je pense que Bing fait aussi ça. – Mode

Questions connexes