Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 12, 2017 23:19:04

lubocka
Зарегистрирован: 2017-06-11
Сообщения: 40
Репутация: +  0  -
Профиль   Отправить e-mail  

Как изменить язык из нужной мне библиотеки?

Как изменить язык из нужной мне библиотеки

например:

 from tkinter import messagebox
messagebox.askyesno("Заголовок","Бажаєте зберегти?")

в всплывающем окне отображаются кнопки с надписями “да” , “нет”
а мне нужно “так” , “нi”

Офлайн

#2 Авг. 13, 2017 10:04:34

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Как изменить язык из нужной мне библиотеки?

Судя по всему это стандартный системный вызов окна посему ответ - делать свое собственное окошко с нужными кнопками и надписями.



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#3 Авг. 13, 2017 12:35:08

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Как изменить язык из нужной мне библиотеки?

Офлайн

#4 Авг. 13, 2017 22:50:33

lubocka
Зарегистрирован: 2017-06-11
Сообщения: 40
Репутация: +  0  -
Профиль   Отправить e-mail  

Как изменить язык из нужной мне библиотеки?

с gettext не разобралась, все время ошибки пишит, да и откуда там украинскому взяться

свое окно модальное впоследствии все равно пригодится, начала создавать и столкнулась с проблемой , как убрать верхние кнопки в модальном окне “свернуть”, “развернуть”

Офлайн

#5 Авг. 14, 2017 05:52:08

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Как изменить язык из нужной мне библиотеки?

lubocka
да и откуда там украинскому взяться
То есть? Вы сами создаете словарь переводов, если хотите там и суахили будет. Не понял ваших претензий к украинчкому



Офлайн

#6 Окт. 15, 2017 21:17:36

lubocka
Зарегистрирован: 2017-06-11
Сообщения: 40
Репутация: +  0  -
Профиль   Отправить e-mail  

Как изменить язык из нужной мне библиотеки?

Никак не получается самой разобраться с переводом на нужный мне язык стандартных библиотек.

Даю пример. Натыкайте носиком, что надо сделать. плиззззз!

 from PyQt5.Qt import *
class UkrColorDialog(QColorDialog):
    def __init__(self, parent=None):
        super().__init__()
class MyWindow(QWidget):
    def __init__(self):
        super().__init__()
        self.initWindow()
    def initWindow(self):
        self.fontcolor = UkrColorDialog()
        layout = QHBoxLayout()
        layout.addWidget(self.fontcolor)
        self.setLayout(layout)
if __name__ == '__main__':
    import sys
    app = QApplication(sys.argv)
    window = MyWindow()
    window.show()
    sys.exit(app.exec_())

Хочу все слова на английском, чтоб чудесным образом стали на украинском

Офлайн

#7 Окт. 16, 2017 05:34:55

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10003
Репутация: +  857  -
Профиль   Отправить e-mail  

Как изменить язык из нужной мне библиотеки?

lubocka
очу все слова на английском, чтоб чудесным образом стали на украинском :)
Для этого используют gettext. Тогда во всей программе пишут всё английскими фразами, но в обёртке, которая при выполнении мапится через файл перевода.

Например
  
print(_('hello'))
Вот она (функция с именем _ ) увидит hello, возьмёт локальный файл перевода, который у тебя выставлен, и в нём будет искать hello. А когда найдёт, выведет из этого файла украинское слово (или словосочетание), соответствующее слову hello. Так можно сделать много файлов перевода для разных языков и программа будет правильно говорить на любом компьютере в любой стране.

lubocka
в всплывающем окне отображаются кнопки с надписями “да” , “нет”
Это можно и без gettext заменить. Надо для кнопок свои названия подать, обычно это предусмотрено.



Офлайн

#8 Окт. 16, 2017 12:10:43

lubocka
Зарегистрирован: 2017-06-11
Сообщения: 40
Репутация: +  0  -
Профиль   Отправить e-mail  

Как изменить язык из нужной мне библиотеки?

py.user.next
обычно это предусмотрено.
если возможно пример

почитала я статью https://habrahabr.ru/post/73554/
и до последнего шага все получилось. Но то ли не могу разобраться с каталогами, то ли моя версия не подходит


в итоге не переводит.

——————————————————————-

Но впрочем мне и не нужен перевод того что сама пишу, мне нужен перевод стандартных библиотек, таких как MessageBox, QColorDialog, QFontDialog, QFileDialog и т.д.
Уверена, что есть простые способы перевода и думаю без танцев с компиляциями и т.д.

Отредактировано lubocka (Окт. 16, 2017 12:12:06)

Офлайн

#9 Окт. 16, 2017 12:42:08

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2832
Репутация: +  186  -
Профиль   Отправить e-mail  

Как изменить язык из нужной мне библиотеки?

Как-то так:

 app = QtGui.QApplication(sys.argv)
translator = QtCore.QTranslator()
translator.load("перевод.qm")
app.installTranslator(translator)
Файлы переводов для стандартных диалогов поставляются вместе с Qt.



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#10 Окт. 16, 2017 14:15:27

lubocka
Зарегистрирован: 2017-06-11
Сообщения: 40
Репутация: +  0  -
Профиль   Отправить e-mail  

Как изменить язык из нужной мне библиотеки?

спасибо, но почему-то не срабатывает. Надписи остались английскими.

 from PyQt5.Qt import *
class MyWindow(QWidget):
    def __init__(self):
        super().__init__()
        self.initWindow()
    def initWindow(self):
        self.fontcolor = QColorDialog()
        layout = QHBoxLayout()
        layout.addWidget(self.fontcolor)
        self.setLayout(layout)
if __name__ == '__main__':
    import sys
    app = QApplication(sys.argv)
    translator = QTranslator()
    locale = QLocale.system().name()
    translator.load( locale,
                    QLibraryInfo.location(QLibraryInfo.TranslationsPath))
    app.installTranslator(translator)
    print(locale)
    # выводит 
    # ru_RU
    print(QLibraryInfo.location(QLibraryInfo.TranslationsPath))
    # выводит
    # C:/Users/WIN7/AppData/Local/Programs/Python/Python36-32/lib/site-packages/PyQt5/Qt/translations
    window = MyWindow()
    window.show()
    sys.exit(app.exec_())

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version