Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как зделать на python чтоб слова переводились с русского в англий язык + раскладка оставалась такой же?

Bogdan Stepanov Ученик (106), закрыт 1 неделю назад
Например у нас есть предложение:
Как у вас дела?
и переводилась в английскую раскладку:
Rfr e dfc ltkf&
Лучший ответ
Лев Михайлов Гуру (3176) 1 неделю назад
 t = { 
'й': 'q', 'ц': 'w', 'у': 'e', 'к': 'r', 'е': 't', 'н': 'y', 'г': 'u',
'ш': 'i', 'щ': 'o', 'з': 'p', 'х': '[', 'ъ': ']', 'ф': 'a', 'ы': 's',
'в': 'd', 'а': 'f', 'п': 'g', 'р': 'h', 'о': 'j', 'л': 'k', 'д': 'l',
'ж': ';', 'э': "'", 'я': 'z', 'ч': 'x', 'с': 'c', 'м': 'v', 'и': 'b',
'т': 'n', 'ь': 'm', 'б': ',', 'ю': '.', 'Й': 'Q', 'Ц': 'W', 'У': 'E',
'К': 'R', 'Е': 'T', 'Н': 'Y', 'Г': 'U', 'Ш': 'I', 'Щ': 'O', 'З': 'P',
'Х': '{', 'Ъ': '}', 'Ф': 'A', 'Ы': 'S', 'В': 'D', 'А': 'F', 'П': 'G',
'Р': 'H', 'О': 'J', 'Л': 'K', 'Д': 'L', 'Ж': ':', 'Э': '"', 'Я': 'Z',
'Ч': 'X', 'С': 'C', 'М': 'V', 'И': 'B', 'Т': 'N', 'Ь': 'M', 'Б': '<',
'Ю': '>', '"': '@', '№': '#', ';': '$', ':': '^', '?': '&', '.': '/',
',': '?'
}

s = 'Как у вас дела?'
print(s.translate(s.maketrans(t)))
Bogdan StepanovУченик (106) 1 неделю назад
Спасибо
Bogdan StepanovУченик (106) 1 неделю назад
Спасибо, что мне не пришлось делать такую мутурную работу (=
Спасибо огромное
Ты сэканомил мне кучу времени
Остальные ответы
Вопросер Безответный Мастер (1295) 1 неделю назад
Сам пишу на Python ещё не нашёл лайфхака для этой проблемы
Bogdan StepanovУченик (106) 1 неделю назад
)=
Bogdan Stepanov Ученик (106) Bogdan Stepanov, Ну должен же быть способ если что мне для pyatogui
Руслан Чернов Знаток (258) 1 неделю назад
Для того чтобы реализовать такой перевод слов с русского на английский язык с сохранением клавиатурной раскладки, вам потребуется создать словарь, сопоставляющий русские буквы английским символам и затем обработать предложение, заменяя каждую русскую букву на соответствующий символ из вашего словаря. Вот пример кода на Python для решения этой задачи:

# Создаем словарь для замены русских букв на английские символы
translit_dict = {
'а': 'f', 'б': ',', 'в': 'd', 'г': 'u', 'д': 'l', 'е': 't', 'ё': '`',
'ж': ';', 'з': 'p', 'и': 'b', 'й': 'q', 'к': 'r', 'л': 'k', 'м': 'v',
'н': 'y', 'о': 'j', 'п': 'g', 'р': 'h', 'с': 'c', 'т': 'n', 'у': 'e',
'ф': 'a', 'х': '[', 'ц': 'w', 'ч': 'x', 'ш': 'i', 'щ': 'o', 'ъ': ']',
'ы': 's', 'ь': 'm', 'э': '\'', 'ю': '.', 'я': 'z',
' ': ' ' # пробелы остаются без изменений
}

def transliterate(text):
result = ''
for char in text.lower(): # приводим все буквы к нижнему регистру для удобства
if char in translit_dict:
result += translit_dict[char]
else:
result += char
return result

# Пример использования
sentence = 'Как у вас дела?'
transliterated_sentence = transliterate(sentence)
print(transliterated_sentence)


Этот код создает словарь `translit_dict`, который соотносит русские буквы соответствующим английским символам. Функция `transliterate(text)` заменяет каждую букву в тексте на соответствующий символ из словаря, сохраняя при этом все прочие символы (типа пробелов, знаков пунктуации и т.д.) без изменений.

Применяется функция `transliterate` к предложению "Как у вас дела?" и выводится результат, который сохраняет раскладку клавиатуры, но переводит слова с русского на английский язык.
Bogdan StepanovУченик (106) 1 неделю назад
Спасибо большое
Chudo_Chudnoe Мастер (1582) 1 неделю назад
Установи библиотеку pip install googletrans==4.0.0-rc1


 from googletrans import Translator, LANGUAGES 

def translate_to_english(text):
translator = Translator()
translation = translator.translate(text, src='ru', dest='en')
return translation.text

def transliterate_to_russian_layout(text):
translit_map = {
'q': 'й', 'w': 'ц', 'e': 'у', 'r': 'к', 't': 'е', 'y': 'н', 'u': 'г',
'i': 'ш', 'o': 'щ', 'p': 'з', '[': 'х', ']': 'ъ', 'a': 'ф', 's': 'ы',
'd': 'в', 'f': 'а', 'g': 'п', 'h': 'р', 'j': 'о', 'k': 'л', 'l': 'д',
';': 'ж', "'": 'э', 'z': 'я', 'x': 'ч', 'c': 'с', 'v': 'м', 'b': 'и',
'n': 'т', 'm': 'ь', ',': 'б', '.': 'ю'
}
return ''.join(translit_map.get(char, char) for char in text.lower())

original_text = "Как у вас дела?"
translated_text = translate_to_english(original_text)
transliterated_text = transliterate_to_russian_layout(translated_text)

print("Переведенный текст:", translated_text)
print("Транслитерация в русскую раскладку:", transliterated_text)
Похожие вопросы