Добавить как исполняемый файл перевод на английский

Обновлено: 03.07.2024

Имею некоторый опыт в переводе (локализации) интерфейсов программ на русский язык.
Хочу им поделиться, может кто захочет самостоятельно перевести нужные им программы.
Переведенные мною программы можно найти

Well-Known Member

Занятие 1. С чего начать.
Для начала, определитесь, в каком файле могут находиться языковые данные. Для этого, откройте папку с установленной программой и посмотрите ее содержимое. Там могут оказаться папки с названиями Lang, Language, Languages, Langs, ln, EN, en-US, Resources, res, locales и тому подобное. Именно в них и могут находиться нужные вам файлы.
Если таких папок нет, поищите файлы с расширениями *.lng, *.xml, *.mo, *.ini, *.EN, *.qm, *.ui, *.txt, иногда *.dat, и тому подобные.
Если таких папок и файлов нет, или в самих файлах - не то, что вы ищете, воспользуйтесь программой Restorator.

.
Эта программа позволит быстро найти языковые ресурсы в файлах с расширениями *.exe и *.dll
Для этого, запустите программу, выберите в меню пункт "Сервис" -> "Поиск ресурсов", в открывшемся диалоге нажмите "Обзор", выберите нужную вам папку и нажмите "Начать поиск". Поиск проходит довольно быстро, после чего нажмите "Закрыть".
В основном окне программы вы увидите список найденных файлов. Просмотрите их содержимое.


Конечно, можно на этом и остановиться, и редактировать файл прямо в этой программе, для этого достаточно нажать кнопку, показанную стрелкой (Режим редактирования), но это будет очень утомительно, поскольку эта программа не поддерживает автоматический перевод и придется каждое слово впечатывать вручную.

ЦЕЛЕШУ

New Member

Спасибо за проявленную Вами инициативу - давно собирался попробовать себя на этом поприще Но. первый блин, как говорится. Что не так с <RestoratorPortable>?

Well-Known Member

Спасибо за проявленную Вами инициативу - давно собирался попробовать себя на этом поприще Но. первый блин, как говорится. Что не так с <RestoratorPortable>?

Дико извиняюсь, то другая портативка. Ссылку изменил, теперь там рабочая версия одним файлом. На слова "Пробная версия" внимания не обращать, она полностью функциональна и работает уже несколько лет.
А чтобы активировать ту версию, что вы скачали ранее, нужно ввести данные:

Name= Green - Hacker
Ключ: SJmZNyyMm-DrQ2JsvnO1nCmlx6vo8RB7HDj6BSF5rkX1I8h8dd0L+CAJIknSP-WRh2Hrl39qHEkABXbNC-YKytamLslZvFIWnXC1gWQXgC9e0MF8IfVdxo0fAkai9LA3q0TZhPpiYQBLsIbrJP6qJ8LCd7Aeefjuhb8GRrkJ2pQ

Well-Known Member

Занятие 2. Авто-переводчики
Чтобы переводить интерфейс программ, не обязательно быть полиглотом, нужно прежде всего хорошо знать родной язык и, конечно, немного опыта.
Наверное, многие пытались работать с программами для автоматического перевода и всегда были недовольны их качеством. Да, качество желает лучшего, но общий-то смысл понять можно.
По собственному опыту не советую ставить программы-монстры типа PROMT, ABBYY Lingvo. Толку от них мало, а места занимают очень много. Они больше подходят для перевода многостраничных документов, нам же нужно переводить отдельные строки, иногда отдельные слова.
Нам больше подходят небольшие программки типа Magic Gooddy, Pragma.
Для себя я выбрал бесплатный он-лайн переводчик QTranslate. Он удобен, настраиваемые "горячие клавиши", легкий и быстрый.


Почему нужно подключать несколько служб перевода? Да потому, что перевод автоматический и каждая служба переводит его по-своему, нужно просто выбрать подходящий вариант. Вот почему 2хCtrl я использую чаще, чем 2хShift (его только тогда, когда уверен, что перевод будет правильным).

Well-Known Member

Занятие 3. Перевод простых языковых файлов.
Теперь, когда вы определились, какой файл вы будете переводить и с помощью какого помощника - авто-переводчика, можно приступить к переводу.
Файлы *.txt, *.xml, *.ini, иногда *.dat и *.lng, можно переводить в обычном текстовом редакторе. Но, здесь ВАЖНО: не забудьте перед редактированием сохранить копию исходного файла, чтобы можно было вернуться к нему, если что-то пойдет не так.
Рекомендуемый текстовый редактор - Notepad++ или ему подобный, но, ни в коем случае не обычный блокнот Windows. Дело в том, что блокнот Windows в русскоязычных системах открывает и сохраняет текстовые файлы по умолчанию в кодировке Windows-1251, что для некоторых программ фатально - потом переведенный интерфейс будет отображаться "кракозябрами" или символами, наподобие арабских.


После установки, зайдите в настройки и снимите галочку "Применять при открытии ANSI файла" - это чтобы он не менял кодировки текста по умолчанию.
Остальные настройки - на ваше усмотрение. Например, можно заставить его делать резервные копии документов:
Теперь, когда все готово, попробуем открыть какой-нибудь языковой файл, для примера, я возьму языковый файл архиватора 7-Zip (к сожалению, я не нашел такой программы, которая бы стояла у каждого и имела языковой файл в текстовом формате). Итак, заходим в папку C:\Program Files\7-Zip\Lang. Там, конечно есть файл русского языка, но, мы попробуем создать свой. Для этого, открываем с помощью Notepad++ файл первоисточника en.ttt (кстати, странное расширение файла).
Сразу обращаем внимание на кодировку файла, которая указана в правом нижнем углу окна программы:


Т.е. UTF-8 c BOM. Эта кодировка должна остаться той же, когда мы закончим редактирование и сохраним файл. Теперь попробуем внести коррективы, например, заменим язык - строка 15 - English заменим на Russian2, строка 16 - English на Русский2, в главном меню - вместо надписи Edit (строка 41) напишем Правка, сохраним файл "Файл"="Сохранить как.."= ru2.txt и попробуем запустить приложение - файл 7zFM.exe. Находим пункт Сервис = Настройки:


В открывшемся окне выбираем вкладку "Язык":
Выбираем Русский2 (который уже появился в меню):
Нажимаем "Применить" и "ОК". Видим такую картину:


Т.е. все, что мы сделали, получилось.
Теперь небольшое примечание о редактировании файлов *.xml - в этих файлах можно редактировать только текст, который Notepad++ показывает черным цветом:

Включите этот параметр, чтобы пометить файл как исполняемый. Имеет смысл только для программ и скриптов.

Enable this option to mark the file as executable. This only makes sense for programs and scripts. It is required when you want to execute them.

Другие результаты

Специальные системные файлы, такие как исполняемые файлы программ и сама ОС, хранились в каталоге, зарезервированном для системной учётной записи.

Special system files, such as program executables and the OS itself, were stored in the directory of a reserved system account.

Scriptol программа может быть построена как исполняемый файл.

Программное обеспечение создано как исполняемые бинарные файлы, использующие клиент-серверную модель взаимодействия между библиотеками и сервисными инструментами.

The software is composed of an executive binary which uses a client-server communication model between libraries and service engines.

Также возможно цепочечное выполнение автоматизации из initrd или файла, а затем автоматизацию по сети, если задать preseed/url в файлах исполняемых первыми.

It is also possible to chainload from the initrd or file preseeding phase, into network preseeding by setting preseed/url in the earlier files.

Чтобы использовать этот макё-файл для удаления исполняемого файла и всех объектных файлов из каталога, необходимо набрать команду макё clean.

To use this makefile to delete the executable file and all the object files from the directory, type make clean.

Данный файл запускает исполняемый файл червя каждый раз, когда пользователь открывает зараженный раздел при помощи программы "Проводник".

This file will launch the worm's executable file each time Explorer is used to open the infected disk.

Программа PhoA не требует для своего запуска никаких дополнительных файлов, кроме собственно исполняемого файла phoa.exe.

PhoA doesn't require any additional files to run besides the main executable phoa.exe.

Выберите каталог, который будет рабочим для исполняемого файла.

Select the folder that will be the working directory for the executable file.

Невозможно найти исполняемый файл этой необходимой программы.

Если этот файл является исполняемым и флаг установлен, файл всегда будет выполняться с правами его владельца.

If this file is an executable and the flag is set, it will be executed with the permissions of the owner.

Исполняемый ЕХЕ файл является только загрузчиком, который расшифровывает и загружает защищённый исполняемый файл игры из файла ICD.

The EXE executable is only a loader which decrypts and loads the protected game executable in the encrypted ICD file.

Поддержка всех форматов файлов - VMProtect позволяет защищать исполняемые файлы (EXE, SCR), динамические библиотеки (DLL, OCX, BPL) и драйвера (SYS).

Support for Nearly All File Formats - VMProtect allows the protection of executable files (EXE, SCR), dynamic-link libraries (DLL, OCX, BPL) and drivers (SYS).

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

The PHP executable can be used to run PHP scripts absolutely independent from the web server.

Чтобы использовать gdb для просмотра core файла необходимо в качестве аргументов указать и core файл и исполняемый.

To invoke gdb for use with a core file, you must specify not only the core filename but also the name of the executable that goes along with that core file.

В этом случае требуется скачать исполняемый файл со всеми файлами, необходимыми для полной установки.

This process requires you to download an executable file that includes all the files needed for the complete installation.

Чтобы начать установку, дважды щелкните исполняемый файл либо извлеките файлы исправлений с помощью командной строки.

You can double-click the executable package to begin installation, or extract the patch files by using a command line.

Каждый пакет содержит исполняемые файлы, сценарии, документацию и информацию о конфигурации.

Each package consists of executables, scripts, documentation, and configuration information.

После установки им пакета gnome-games исполняемый файл aislerot отсутствовал.

Зарегистрируйтесь, чтобы увидеть больше примеров. Это просто и бесплатно

Результатов: 194 . Точных совпадений: 1 . Затраченное время: 116 мс

Перевод голосом, функции оффлайн, синонимы, спряжение, обучающие игры

Используйте DeepL Переводчик для мгновенного перевода текстов и документов

  • Перевод в процессе набора текста
  • Высочайшее в мире качество
  • Перемещение документов

Русско-английский cловарь На данный момент в разработке

исполняемый прилагательное —

executable прил.

Примеры:

исполняемый файл муж. —

исполняемый код муж. —

Он проинформирует Windows, какой исполняемый файл открыть или [. ]

[. ] the Windows, which executable to start or which icon to use.

[. ] эти объектные файлы в исполняемый файл на этапе компоновки.

[. ] then combine those object files into an executable in [. ]

Искоренение детского труда в Центральной Азии – реальные действия" (PROACT-CAR, этап II) – это текущий проект МОТ, исполняемый ее международной Программой по искоренению детского труда (МОТ-ИПЕК), который нацелен на борьбу [. ] [. ]

с наихудшими формами детского труда (НФДТ) в четырех странах Центральной Азии.

Eradicating child labour in Central Asia – real actions” (PROACT-CAR, phase II) is an ILO project currently being implemented by IPEC to combat the worst forms of child labour in four Central Asian countries.

[. ] программы, описывающий исполняемый код, не имеющий материального [. ]

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

[. ] listing that describes an executable code that is not tangibly [. ]

carrier would be excluded subject matter and thereby not subject of international search and examination.

ThinApp обеспечивает быструю инкапсуляцию всего приложения и его параметров в один исполняемый файл.

Use ThinApp to quickly package an entire application and its settings into a single executable file.

[. ] покажем как с помощью ресурсов создать исполняемый файл EX5 с дружественным пользовательским [. ]

файл не потребует от пользователя программы рутинных операций по установке и запуску .

[. ] creating an executable EX5 file with a user friendly interface, and this file will not require [. ]

[. ] может выступать любой исполняемый файл, указанный в полученной [. ]

Flashback.39 verifies its RSA signature and then, if successful,

[. ] downloads and runs payload on the infected machine.

Исполняемый файл был упакован утилитой [. ]

UPX, однако заголовки были повреждены, чтобы помешать анализу файла.

The binary itself was packed with the [. ]

UPX packer, although the headers had been corrupted in order to impede analysis.

[. ] программа, содержащая исполняемый код, материально воплощенный [. ]

имеет практическое применение, не будет исключена, и по ней будут проведены поиск и экспертиза.

[. ] program containing executable code tangibly embodied [. ]

on a computer-readable carrier which when executed has a

practical application would not be excluded and should be searched and examined.

Только программное обеспечение, которое Даже если Вы знаете о

[. ] [. ] конкретной части программного обеспечения и его разработчика, Вы не можете быть полностью уверены, что Вы не скачали исполняемый файл, который был заменен на вредоносный третьей стороны для некоторых типов вредоносных программ.

Even if you know about a specific piece of software and its developer, you cannot be entirely sure that you are not downloading an executable that has been swapped out by a malicious third party for some type of malware.

В случае, если графический пользовательский интерфейс системы невозможно запустить по каким-то причинам, можно воспользоваться

консольными командами, которыми обладают специальный

[. ] инструмент "updater.exe" и сам исполняемый файл системы "teamwox.exe".

In case the graphic user interface of the system cannot be launched due to some

conditions, one can use the console commands of the special tool "updater.exe"

[. ] and the executive file of the system "teamwox.exe".

Если несовместимые с GPL библиотеки, которыми вы хотите пользоваться, удовлетворяют критериям системной библиотеки, то для пользования ими вам не нужно делать ничего особенного; требование распространять полный исходный текст программы не

[. ] распространяете скомпонованный исполняемый файл, в котором они [. ]

code for the whole program does not include those libraries, even if

[. ] you distribute a linked executable containing them.

[. ] что мы не поместили в исполняемый файл отладочную информацию, [. ]

[. ] загружается, запустите исполняемый файл и ответить на [. ]

несколько простых вопросов о параметрах установки и

[. ] is downloaded, start the exe file and answer a few simple [. ]

questions about installation options and components

[. ] возможна в случаях, когда исполняемый файл препроцессора повреждён [. ]

В общем случае, при использовании статического анализатора PVS-Studio совместно с антивирусным ПО, мы рекомендуем всегда добавлять как сам модуль анализа

[. ] программы и пути до них (например, devenv.exe — основной исполняемый модуль среды Visual Studio) в исключения антивирусов.

In the general case, we recommend that you always should add both the analyzer unit itself (PVS-Studio.exe) and all the software utilizing it, as well as their corresponding paths (for example, devenv.exe -

Рано или поздно разработчик приложений на Qt встречается с необходимостью поддержки мультиязычности в своём приложении. Вот тогда на помощь и приходит класс QTranslator и специализированное приложение для создания переводов Qt Linguist .

Объект класса QTranslator используется для загрузки переводов из специального файла с расширением .qm, который является шестнадцатеричным файлом переводов. Данный файл компилируется из файла переводов в XML формате, который имеет расширение ts и прописывается в pro файле проекта. Данный файл содержит все строки приложения, которые были заключены в функцию tr(). Рекомендую задавать весь интерфейс приложения на английском языке, который будет языком по умолчанию, а переводы уже с нужным языком подгружать из файлов переводов. Если нужный файл перевода не будет найден, то автоматически будет загружен перевод на английском языке. Хотя Вы, конечно, можете применить и другой язык в качестве языка по умолчанию.

Пример загрузки перевода

Структура имени файла перевода играет важную роль в работе с QTranslator. Разберём минимальный пример.

В данном примере создаётся объект класса QTranslator, в который загружается интересующий нас файл с указанием языка. В данном случае полное название файла переводов следующее QtLanguage_ru.qm. То есть дано общее для файла переводов название QtLanguage, а также префикс языка перевода _ru . Но вы уже заметили, что в качестве аргумента для метода load формируется строка QtLanguage_ru_RU. Это делается для того, чтобы определить нужный диалект языка, например американский (en_US) или британский (en_GB) английский. Но если в названии файла перевода нет указания диалекта, то будет выбран файл без уточнения диалекта, то есть QtLanguage_ru.qm.

После того, как файл перевода загружен, его необходимо установить в приложение. В данном случае использован глобальный указатель на приложение qApp->installTranslator(&qtLanguageTranslator).

Создание файла перевода

После того, как в приложении помечены все необходимые для перевода строки, необходимо будет создать файл переводов, сделать непосредственно сам перевод и скомпилировать итоговый файл. Для этого используется следующие программы:

  1. lupdate - программа для формирования файла перевода из поля TRANSLATIONS в pro файле, а также обновления информации о всех новых строках в приложении, требующих перевода.
  2. lrelease - программа для сборки итогового файла переводов, который будет использоваться в приложении.
  3. Qt Linguist - непосредственно сам пакет для создания переводов.

Первым шагом, который необходимо будет сделать, после того, как в приложении уже прописаны строки, требующие перевода, это добавить файл для перевода в pro файл проекта. Возможно, Вы также захотите указать информацию о кодировке, которая применяется для перевода.

Далее необходимо воспользоваться утилитой lupdate для создания файла QtLanguage_ru.ts. В Qt Creator ищите здесь: Инструменты -> Внешние -> Linguist -> lupdate .

lupdate сообщит о результате поиска строк для перевода.

Далее открываем Qt Linguist производим перевод всех строк, помечая, какие из них переведены (Это чисто служебная информация для самого переводчика, чтобы не вспоминать, что было переведено, а что нет.)

После создания перевода сохраните файл и скомпилируйте шестнадцатеричный файл перевода, воспользовавшись утилитой lrelease. Её можно найти в Qt Creator там же, где и lupdate, либо запустить из Qt Linguist: File -> Release.

Для применения файла необходимо будет поместить его в каталог с исполняемым файлом приложения, а в коде прописать путь к этому файлу.

Динамический перевод приложения

Загрузка перевода приложения - это хорошо, но что если необходимо менять перевод динамически? Давайте рассмотрим небольшой пример, в котором имеется QComboBox с указанием двух языков: английского и русского, по изменению которого будет происходить смена перевода в приложении.

Структура проекта

  • QtLanguage.pro - профайл проекта;
  • main.cpp - файл проекта с функцией main
  • mainwindow.h - заголовочный файл главного окна приложения;
  • mainwindow.cpp - файл исходных кодов главного окна приложения;
  • mainwindow.ui - файл формы главного окна приложения.

mainwindow.ui

Я предпочитаю использовать графический дизайнер для создания графического интерфейса приложения, поскольку это ускоряет разработку, если не требуется чего-то сложного во внешнем виде приложения, поэтому создадим окно со следующим внешним видом.

В данном окне имеется:

С переводом которых мы и будем работать. Удобство графического дизайнера заключается также и в том, что он автоматически формирует метод retranslateUi(), который используется для изменения перевода всех подписей, которые используются в приложении, хотя можно и самим прописать вручную подобный метод, но лично я не хочу терять время на то, что отлично может быть создано автоматически. Например в данном уроке он выглядит следующим образом:

QtLanguage.pro

Как говорилось выше, указываем имя файла перевода в профайле проекта.

main.cpp

А вот в этом файле ничего не будем менять.

mainwindow.h

В заголовочном файле главного окна приложения необходимо объявить объекта класса QTranslator и переопределить метод changeEvent(QEvent *event) , в котором будет определяться событие смены языка приложения.

mainwindow.cpp

Логика работы приложения будет следующей: при смене пункта в комбобоксе будет меняться перевод приложения.

Примечание. Не забудьте положить файл перевода с расширением qm рядом с исполняемым файлом приложения и собрать необходимые dll , иначе не заработает.

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


Когда я только начинал переводить приложения, информации по переводам, в принципе, было немного, и касалась она в больше технической стороны вопроса — как декомпилировать приложение, какие инструменты использовать и общие рекомендации, да и по большей части она была везде одинаковой. И, честно говоря, было тяжеловато разбираться в тонне информации без какого-либо относительно хорошего руководства. В данной статье я попробую собрать всю информацию, касаемую переводов и инструментов, облегчающих такой труд. Надеюсь, что желающим стать переводчиками приложений это послужит по меньшей мере хорошим руководством.

Заинтересовавшихся прошу под кат.

Вступление


Безусловно, самым главным является знание языка, с которого Вы собираетесь переводить. От знаний языка зависит будете ли Вы переводить «быстро» или «хорошо», или же сразу два в одном. Зачастую бывает так, что знаний в какой-то нужной сфере у Вас нет, тогда тут определённо нужно читать литературу по этой области. Например, если Вы хотите перевести приложение, которое занимается модифицированием системы, то следует изучать литературу именно об этом, т.к. технический английский бывает не таким уж и однозначным и зачастую отличается по значению от терминов в нетехнической сфере, а некоторые конструкции можно переводить по-разному, и корректный перевод Вы сможете сделать только, если Вы понимаете о чём идёт речь. Из этого вытекает уже второй критерий: понять, что на это реально требуется время и упорство, если Вы хотите делать всё качественно, а не через Google Translate.
Я не буду вдаваться в технические подробности операций непосредственно с самим .apk-файлом по вытаскиванию из него локализации, а так же внедрения в него Вашего перевода — Вы сами без труда сможете это найти на просторах, т.к. мануалов огромное количество, я же просто собрал информацию о возможных инструментах. Например, статья из песочницы Хабра, где примерно написан процесс декомпиляции приложения; статья на Хакере о том же самом + модификации; ещё статья, первая в гугле. Более подробно можно посмотреть, конечно же, мануалы самого гугла.

Первым делом


Я зачастую сталкивался с тем, что, когда пишешь разработчику с пожеланием перевода на русский язык, предлагая свою кандидатуру, появляется несколько вариантов:

  • разработчик даёт ссылку на ресурс, где перевод осуществляется всем миром;
  • разработчик отвечает, что не планирует добавлять другой язык;
  • разработчик присылает Вам файлы локализации;
  • разработчик говорит, что локализация уже есть и она качественная;
  • разработчик не отвечает вовсе.

Ресурс для перевода всем миром по нитке хорош скоростью перевода, однако, опасен тем, что зачастую не всегда его переводят те, кто может перевести корректно. Обзор таких ресурсов на Хабре. Например, Вы знаете, что такой-то пункт в меню приложения отвечает за определённую функцию, и пишете перевод в соответствующую ячейку на этом ресурсе. А потом какой-то умелец берёт и исправляет на неправильный, на, скажем, дословный перевод, который не является корректным. Вы снова исправляете на нужный, но кто-то упорный снова переименовывает. Есть ресурсы, где за каждый предлагаемый перевод можно голосовать, например, если кто-то предложил вариант «А», а Вы — «Б», то другие пользователи могут голосовать либо за «А», либо за «Б», и чей перевод наберёт больше голосов, тот и будет правильным. Хотя я не раз видел, что голосуют за откровенно некорректный вариант. Ну и, безусловно, надо понимать, что считать перевод только своим Вы не сможете, если Вам важно авторство перевода.
Если разработчик прислал Вам файлы локализации, то тут всё гораздо проще — берём свой инструмент для перевода и вперёд, а с разработчиком можно даже договориться о том, чтобы указал Вас в качестве переводчика — Вам приятно, а разработчик получает ещё одну локализацию.
Если же разработчик говорит, что локализация есть и качественная, а Вы явно видите там ошибку, да и не одну, и на ресурсе для перевода всем миром перевода нет, то остаётся только делать свои моды, если же, конечно, разработчик отказывается брать Вашу локализацию. Такая же ситуация, если разработчик Вам не ответил.
Лично я советую всегда попробовать сначала связаться с разработчиком, т.к. это может Вам упростить жизнь, а дальше уже выбирайте — будете ли Вы переводить на сайте, или будете делать свой перевод.

Инструменты для работы с .apk


По сути, инструмента-то два, один основан на декомпиляции самого пакета, а другой — на работе непосредственно с самой ресурсной таблицей пакета.

Apktool и его модификации:
Что такое apktool, можно узнать на просторах, это прекрасно гуглится и объясняется везде, где только можно. Собственно, все инструменты ниже основаны на нём, все я не перечислю, но постараюсь добавить самые основные.

    — «оригинальный» вариант, консольный; — мощный инструмент для работы с пакетом, мало подходит начинающим; — очень удобный инструмент с оконным GUI, но, к сожалению, больше не поддерживается автором, код лежит на GitHub (на него и ведёт ссылка); — по-моему, самый удобный и исправно функционирующий инструмент, который обладает каким-никаким GUI, имеет поддержку плагинов, активно развивается и это самый настоящий комбайн для модификации что прошивок, что отдельных приложений; — зарекомендовавший себя отличный инструмент для перевода прошивок, но умеет работать и с одиночными пакетами, по сути, это надстройка над apktool, позволяющая пакетно переводить .apk-файлы и патчить код; — неплохой комбайн, похожий на BatchApkTool;
  • множество других.

B.A.R.S.:
B.A.R.S. — принципиально другой инструмент перевода, он не перекомпилирует пакеты, а патчит ресурсную таблицу с заменой или добавлением строк, что позволяет снизить вероятность ошибок рекомпиляции практически на 99%.

Итог:
Если Вы хотите производить модификацию .apk-пакета в более полном понимании процесса (например, элементарное вырезание лишних языков, замена иконок и прочее) + перевод, то Вам нужны инструменты, основанные на apktool — все инструкции по использованию и прочим хитростям можно найти на просторах, у меня не стоит цели описывать всё тут. Вся беда apktool в том, что он перепаковывает приложение, что может создать дополнительные трудности.
Если Вы хотите только локализовывать, тогда можно обойтись B.A.R.S., однако, требуется настроить репозиторий с переводом. Впрочем, возня на час-другой сможет Вас избавить от головняка по сборке, которая может случиться с apktool.

Внимание! Настоятельно рекомендую связываться с разработчиком при создании модов — они нередко идут на встречу, разрешая делать с приложением что угодно, только без выкладки в общий доступ. По сути, никакого технического значения обращение к разработчику не имеет, но это этическая сторона вопроса, которая действительно важна. Например, я связывался с разработчиком одной программы-таскера и отправил ему перевод, однако, много перевода было в коде и без рекомпиляции приложения собрать локализованный пакет было невозможно. Разработчик ответил, что «разрешить выкладывать в общий доступ он не может, но использовать для себя — сколько угодно», и даже сам указал в каких именно строках кода лежит перевод.

Инструменты для работы с файлами локализации


Допустим, Вы получили файлы локализации так или иначе (или Вам прислал их разработчик, или Вы разобрали приложение), следующий шаг — перевод этих файлов. Для автоматизации перевода существует огромное количество инструментов, где используется «translation memory» («память переводов») — база, которая будет сопоставлять строки и выводить наиболее подходящий вариант перевода. Подробнее об этом можно почитать, опять же, на просторах.

  • Вручную — самый дедовский способ: открываем в текстовом редакторе (Notepad++ или любом другом, кроме нативного «Блокнота» в Windows!) и переводим. Медленно и архаично. В общем — хватит только на первые сотни три строк, далее лень и жалость к потерянному времени возьмёт своё. — отличная легковесная программа, которая умеет работать со множеством форматов, поддерживает базу данных и активно поддерживается. Отличный выбор как для начинающих, так и для более прошаренных. Работает как на Windows, так и прекрасно запускается из-под Linux (Wine). — комбайн, который умеет и декомпилировать приложения, и относительно удобно работать с текстом. Вариант для тех, кто хочет иметь всё в одном. , OmegaT, Trados, SDL Passolo и пр. инструменты.

Наиболее подходящие для перевода файлов локализации (.xml) — именно первые две программы, лично я сам пользуюсь TM-database. Например, у меня OmegaT начисто отказывался работать с .xml, приходилось копипастить в документ другого формата, удалять лишнее… В общем, напряжно. При использовании «памяти переводов» можно пользоваться что своей базой, что стандартной. Своя база хороша тем, что Вы добавляете в базу исключительно свой перевод, и при автоматическом переводе многое может перевестись корректно. При использовании «стандартной» базы или «общей», в которую все кладут по копеечке, вероятнее всего будет куда больше перевода, но опять же — он может быть неправильным или может отличаться от Вашего мышления. Тут уже Ваш выбор. Так же есть функции онлайн-перевода — можно прогнать через онлайн-переводчик и затем редактировать, но об этом ниже.

Словари и онлайн-сервисы


Безусловно, чтобы что-то вбивать в базу данных, надо знать как это переводится. Зачастую многие специальные термины переводятся совершенно различно от дословного перевода, а все их запомнить нереально. И вот тут приходится обращаться к словарям и переводчикам.

    — потрясающая платформа, где можно реально найти огромное количество терминов, причём, добавить туда можно тоже. Можно переводить что через сайт, что скачать себе базу и переводить через клиент. — клиент на ПК умеет даже разговаривать, огромная база переводов. Да и вообще компания известная, одна из лучших. Специальных терминов меньше, чем в Мультитране, но определённо может помочь, или уж, по меньшей мере, подкинуть вариант перевода. — известный переводчик, конкурент Google Translate, иногда выдаёт варианты, которых в Google Translate нет; приходится додумывать, но если есть подсказка — уже хорошо. — отличный ресурс, аналог Мультитрана, есть множество терминов и различных вариантов перевода. — отличный клиент для сервисов перевода, в котором можно сразу пробивать по каждому сервису, в т.ч. и по китайским. — в комментариях не нуждается. Может подсказать или даже перевести нормально. Довольно неплохо переводить с китайского. — тут можно найти «память перевода» для продукции Microsoft (спасибо за подсказку virtualtomato). — потрясающий сервис для нахождения обидных ошибок в переводе (двойные пробелы, целостность переменных, тегов и пр.). Невероятно полезный сервис, который плагин в Notepad++ не заменит (спасибо за подсказку virtualtomato).

Использование сервисов типа Мультитрана так же значительно может облегчить Вам жизнь. Но если нет какого-то специального термина, то следует пробивать по трём ресурсам нужные слова и пытаться уловить смысл словосочетания — да такое тоже случается. Очень хорошую подсказку зачастую даёт строка с переводом, сам ключ, из него можно вытащить 95% информации за что отвечает эта строка. Ни в коем случае не увлекайтесь голым онлайн-переводом, практической пользы от такого перевода нет вообще, проще уже оставить на нативном языке, если это хотя бы английский. Но если уж такое произошло, что очень хочется перевести, а навыков и знаний особых нет — то следует прогнать через онлайн переводчик, смотреть на ключ строки и облагораживать. В процессе такого обучения с каждым разом Ваши знания будут увеличиваться, а перевод — шлифоваться. Самое главное — никогда не оставлять голый машинный перевод, если Вы прогоняете онлайн.

Заключение


Ну вот вроде бы и всё. Как видно — это не так уж и сложно, более того, заставляет мозги работать, да и знания никогда не бывают лишними. Общие рекомендации, если подводить итог, не отличаются от тех, что в статье — делать самостоятельно, небездумно копировать и переводить через переводчики без последующей обработки. Например, если переводить через переводчик с китайского на английский, а потом на русский — получится такой ужас, что лучше бы остался китайский. Самое главное тут — уважение к чужому труду (разработчику), к пользователям, которые будут смотреть на Ваш перевод (а стыдобище-то будет, если переводить абы как), и к себе лично. К счастью, с каждым годом инструменты и сервисы пилятся всё активнее, становится куда более удобно заниматься переводами. К слову, если разработчик адекватный, то за свою работу Вы сможете получить или какой-нибудь VIP-аккаунт, или маленький подарочек (мне как-то выслали футболку прикольную с прикольным монстриком — логотипом программы) — мелочь, а всё равно приятно. Уважайте друг друга и делайте работу качественно, если уж взялись.

Читайте также: