Maybe you are already using it; but you can use transliterate
package.
Basic install with pip:
pip install transliterate
Then the code
# coding: utf-8
from transliterate import translit
print translit(u"юу со беутифул", 'ru', reversed=True) # juu so beutiful
WITH CUSTOM CLASS
As @Schmuddi propose, you can create your own custom class to handle german special characters, (works only with python 3.X though).
pip3 install transliterate
Then the code:
# coding: utf-8
from transliterate import translit
from transliterate.base import TranslitLanguagePack, registry
class GermanLanguagePack(TranslitLanguagePack):
language_code = "de"
language_name = "Deutsch"
pre_processor_mapping = {
u"ß": u"ss",
}
mapping = (
u"ÄÖÜäöü",
u"AOUaou",
)
registry.register(GermanLanguagePack)
print(translit(u"Die größten Katzenrassen der Welt", "de"))
#Die grossten Katzenrassen der Welt
Bonus, the French one:
class FrenchLanguagePack(TranslitLanguagePack):
language_code = "fr"
language_name = "French"
pre_processor_mapping = {
u"œ": u"oe",
u"Œ": u"oe",
u"æ": u"ae",
u"Æ": "AE"
}
mapping = (
u"àâçéèêëïîôùûüÿÀÂÇÉÈÊËÏÎÔÙÛÜŸ",
u"aaceeeeiiouuuyAACEEEEIIOUUUY"
)
registry.register(FrenchLanguagePack)
print(translit(u"Avec Éloïse, ils président à l'assemblée", 'fr'))
#Avec Eloise, ils president a l'assemblee
OTHER POSSIBLE SOLUTION
Since transliterate doesn't cover the german langage (yet?), you can use another package to directly translate sentences: py-translate
but it uses google translate so you do need an internet connexion.
Basic install with pip:
pip install py-translate
Then your code:
# coding: utf-8
from translate import translator
print translator('ru', 'en', u"юу со беутифул")
print translator('de', 'en', u"Die größten Katzenrassen der Welt")