/rus-fritz

Help translate Fritz Chess with new version GUI

Primary LanguageRustMIT LicenseMIT

Rus Fritz

Rus Fritz - консольная программа для помощи перевода на русский язык замечательной шахматной программы Deep Fritz 14.

Motivation

Впрочем может быть использован и для других аналогичных программ, которые хранят файлы переводов аналогично Fritz. Собственно сподвигло меня написание её что файлы перевода довольно большие, некоторые больше 4-х тысяч строк, какие-то данные удаляются, что-то переименовывается или убирается совсем. В нашем случае, был уже перевод под оригинальную версию Fritz 14, но при обновлении оболочки вся русификация слетела, и все пункты стали выглядеть как NOTEXT.

#Add Info Собственно что делает программа:

Загружает в память новый английский файл, и старый русифицированный. Его структура (показана часть английского файла!), такова:

...
M_HELP,                                           "&Help";
M_CANCEL,                                         "&Cancel";
M_CLOSE,                                          "&Close";
M_OK,                                             "&OK";
M_DONE,                                           "Done";
...
  1. Каждому первому (левому), полю, например ищется, на основе его, второе поле (правое) из старого русифицированного файла.
  2. Если найдено - сохраняем как есть перевод.
  3. Если не найдено:
  • Если флаг --ask не задан то оставлем английское значение из второго поля.
  • Если флаг --ask задан то выводим на экран второе поле и ожидаем когда пользователь введет его перевод и нажмет Enter.
  • Если флаг --ask задан но пользователь просто нажал Enter, - оставляем английское значение перевода, как есть.
  1. Результат выводим или на stdout или записываем в файл.

Сама программа написана на языке Rust и собственно это моя первая программа на этом языке, не судите строго ;-)

Waring

Важные замечание по сборке и использованию:

  • Необходимо использовать Nightly (1.6) сборку (Дистрибутивы есть для Mac, Linux, Windows).
  • Файлы должны быть в UTF-8 (Без BOM). Оригинальные файлы Fritz идут в ANSI. Для перекодирования удобнее всего использовать программу Notepad++, которая правда только для Windows: Открываем файл, - Кодировки - Преобразовать в UTF-8 (Без BOM).
  • После получения файла опять используем "Notepad++" для преобразования обратно в ANSI, по аналогии со вторым пунктом.

Download

Get and Compile

$ git clone https://github.com/Ales999/rus-fritz.git
Cloning into 'rus-fritz'...
remote: Counting objects: 104, done.
remote: Compressing objects: 100% (44/44), done.
remote: Total 104 (delta 42), reused 103 (delta 41), pack-reused 0
Receiving objects: 100% (104/104), 168.00 KiB | 0 bytes/s, done.
Resolving deltas: 100% (42/42), done.
Checking connectivity... done.

$ cd rus-fritz/
$ cargo build --release
    Updating registry `https://github.com/rust-lang/crates.io-index`
   Compiling rustc-serialize v0.3.16
   Compiling libc v0.1.10
   Compiling regex-syntax v0.2.2
   Compiling strsim v0.3.0
   Compiling memchr v0.1.6
   Compiling aho-corasick v0.3.4
   Compiling regex v0.1.41
   Compiling regex_macros v0.1.21
   Compiling docopt v0.6.74
   Compiling docopt_macros v0.6.74
   Compiling Rusic Fritz v0.0.6 (file://...)
$   

Usage

$ cd target/release/
$ ./rus_fritz --help
Rus Fritz.

Usage:
    rus_fritz -e <engfile>  -r <rusfile> ( -o <outfile> | --stdout ) [ -q ] [ --askme ]
    rus_fritz --help
    rus_fritz --version
Options:
  -q        Quet mode
  --askme   Ask Me for translate
  --help    Display this help and exit
  --version Output version information and exit
$

Example with Windows

C:\master>rus_fritz.exe -e EngFrame.strings -r RusFrame.strings -o NewFrame.strings --askme -q
Total
Всего
No annotators found
Не найден комментатор

Contributors

Contributors on GitHub

License

Version

  • Version 0.0.8

How-to use this code

Contact

Developer/Company