Этот сайт создан как клуб русификаторщиков. Для нас существуют три основных правила.
1. Мы никому и ничего не должны!
2.Один пришедший на сайт толковый русификаторщик дороже всех пользователей.
3. Мы делаем русификаторы для своего сайта, но в оригинале ими могут пользоваться все в интернете.
Подобное затрудняет при локализации KeepNote 0.7.9, скачанного с сайта http://keepnote.org/index.shtml. В имеющемся переводе есть файл МО для старой версии программы (Program Files\KeepNote\rc\locale\ru_RU.UTF8\LC_MESSAGES\keepnote.mo), и очень многое не переведено, а когда я письмом спросил, будет ли обновление перевода, автор просто ничего не ответил. В качестве пробы взял не переведенное New _File в меню File.
Цитата: Смотрящий
Открой прогу - найди непереведенный термин - запусти TC - забей в поиск непереведенный термин - открой найденный файл с непереведенным термином - переведи его - сохрани изменения - запусти прогу и т.д. с остальными терминами...
Поиском в ТС нашел, что New _File есть в Program Files\KeepNote\extensions\new_file\__init__.py (похоже, аналог РО?) и Program Files\KeepNote\extensions\new_file\__init__.pyc (аналог МО?). Если добавить в РУ могу, то не понятно, как сконвертировать в РУС.
Тогда сконвертировал МО в формат РО. Поскольку там такой команды нет, добавил по таким же правилам
Цитата: 78Sergey
msgid "_Original text" msgstr "_Ваш текст"
в Notepad++: msgid "New _File" msgstr "Новый _файл" Обратно сконвертировал в МО (пробовал делать и с помощью сайта, и с помощью Poedit), но перевод не появился в обоих случаях.
В том же меню есть подкоманды, и одну из них New Text File я не нашел ни в одном файле. Add New File Type нашлась в РУ и РУС.
Итак, разбросы и непонятности. Есть ли идеи, как решать такие проблемы?
Сообщение отредактировал greg 25 февраля 2025 - 22:08
В данном случае разработчик это указал на главной странице.
Если этой информации нигде нет, то можно узнать при помощи программ по анализу PE-файлов.
Далее самостоятельно погружаетесь в изучение этого языка, узнаёте какие форматы файлов для него используются, какой синтаксис и прочие особенности. Наконец, изучаете как организуется мультиязычная поддержка для приложений на этом языке, например, здесь и/или здесь.
После этого ищете в исходном коде или файлах расширений строки без перевода. На основании полученных знаний добавляете для этих строк функцию трансляции. Потом дополняете языковой файл новыми строками и компилируете его. В итоге получаете желаемый результат.
Например, вы нашли, что строка "New _File" есть в __init__.py
Дополняете эту строку функцией трансляции (какую функцию трансляции использовал разработчик, смотрите в исходном коде программы):
Делаете по аналогии для остальных строк. Потом дополняете языковой файл новыми строками.
При помощи программ по работе с файлами PO создаёте файл MO. В итоге в приложении увидите эти строки на родном языке.
Цитата: greg
а когда я письмом спросил, будет ли обновление перевода, автор просто ничего не ответил
Ну, если автор не отвечает, а программа вам нужна, да ещё и на родном языке, то делаете эту работу за автора, благо исходный код программы открыт.
Спасибо Вам, Leserg, за отличные профессиональные подсказки. К сожалению, в процессе разбирательства остались непонятности в других обстоятельствах, поэтому возникли еще вопросы. 1. Если в файле __init__.py self.add_action(window, "New File", "New _File") добавляем так: self.add_action(window, "New File", _("New _File")) то как добавлять в том же файле - в не похожих на образец случаях item = gtk.MenuItem(u"New %s" % file_type.name) item = gtk.MenuItem(u"Add New File Type") ? И в диалогах имеется подобное. Например, в "Настройках" надпись "Editor Insert Date" находится в label=u"Editor Insert Date" На что влияет приставка "u" и как действовать с ее участием?
2. Есть две папки с одним названием, но с разным содержимым: Program Files\KeepNote\rc\locale\ (в ней есть русскоязычная папка ru_RU.UTF8) и Program Files\KeepNote\share\locale\ (в ней есть четыре англоязычные папки типа "en_GB" с файлами МО). Не переведенная команда "_Undo" находится ТОЛЬКО там. Поможет ли, если только в них, англоязычных, делать перевод, и будет ли этого достаточно, в отличие от русскоязычного файла, требующего добавления и в файле РУ?
3. Поиск команды "_Paste" привел к находках в файлах: Program Files\KeepNote\libatk-1.0-0.dll и Program Files\KeepNote\libgtk-win32-2.0-0.dll Делать в DLL локализацию таких с помощью Radialix?
4. Команды из меню Навигация, например, _Previous Tab, или из Сервис - _Compact Notebook Index, находятся почему-то в архиве Program Files\KeepNote\library.zip, но внутри него вообще нет файлов MO, PY, DLL. Что делать в этом случае?
5. Leserg, пожалуйста, порекомендуйте еще непрофессионалу сайт/страницу, на которой можно было бы разобраться, как выделять открытый или закрытый исходные коды, в которых Вы рекомендовали искать, о трансляции и как ее запускать.
Сообщение отредактировал 78Sergey 28 февраля 2025 - 12:24
находится в label=u"Editor Insert Date" На что влияет приставка "u" и как действовать с ее участием?
Префикс «u» перед кавычками используется для обозначения юникод-строки. В Python 2.x это было важно, поскольку стандартные строки были в кодировке ASCII, а не в Unicode. В Python 3.x все строки по умолчанию являются юникод-строками, поэтому использование префикса «u» больше не обязательно. Однако его все еще можно использовать для обратной совместимости.
Думаю так label=_(u"Editor Insert Date"),
Цитата: greg
2. Следует ли понимать, что "New Text File", не имеющаяся целиком в файлах РУ, невозможно преобразить в "Новый текстовой файл"?
Это в файле __init__.py FileType("Text File (txt)", "untitled.txt", "plain_text.txt"), FileType("Spreadsheet (xls)", "untitled.xls", "spreadsheet.xls"), FileType("Word Document (doc)", "untitled.doc", "document.doc") После добавления строк в файл keepnote.mo удалите файл config.xml по пути
для их отображения в интерфейсе программы. Либо переведите прямо в окне программы
Цитата: greg
3. Есть две папки с одним названием, но с разным содержимым: Program Files\KeepNote\rc\locale\ (в ней есть русскоязычная папка ru_RU.UTF8) и Program Files\KeepNote\share\locale\ (в ней есть четыре англоязычные папки типа "en_GB" с файлами МО). Не переведенная команда "_Undo" находится ТОЛЬКО там. Поможет ли, если только в них, англоязычных, делать перевод, и будет ли этого достаточно, в отличие от русскоязычного файла, требующего добавления и в файле РУ?
Скопируйте папку en_GB или en_CA переименуйте её в ru_RU, сделайте перевод строки _Undo в файле gtk20.mo
Цитата: greg
4. Поиск команды "_Paste" привел к находках в файлах: Program Files\KeepNote\libatk-1.0-0.dll и Program Files\KeepNote\libgtk-win32-2.0-0.dll Делать в DLL локализацию таких с помощью Radialix?
Переводите строку _Paste в файле gtk20.mo
Цитата: greg
5. Команды из меню Навигация, например, _Previous Tab, или из Сервис - _Compact Notebook Index, находятся почему-то в архиве Program Files\KeepNote\library.zip, но внутри него вообще нет файлов MO, PY, DLL. Что делать в этом случае?