Rus Fritz - консольная программа для помощи перевода на русский язык замечательной шахматной программы Deep Fritz 14.
Впрочем может быть использован и для других аналогичных программ, которые хранят файлы переводов аналогично Fritz. Собственно сподвигло меня написание её что файлы перевода довольно большие, некоторые больше 4-х тысяч строк, какие-то данные удаляются, что-то переименовывается или убирается совсем. В нашем случае, был уже перевод под оригинальную версию Fritz 14, но при обновлении оболочки вся русификация слетела, и все пункты стали выглядеть как NOTEXT.
#Add Info Собственно что делает программа:
Загружает в память новый английский файл, и старый русифицированный. Его структура (показана часть английского файла!), такова:
...
M_HELP, "&Help";
M_CANCEL, "&Cancel";
M_CLOSE, "&Close";
M_OK, "&OK";
M_DONE, "Done";
...
- Каждому первому (левому), полю, например ищется, на основе его, второе поле (правое) из старого русифицированного файла.
- Если найдено - сохраняем как есть перевод.
- Если не найдено:
- Если флаг --ask не задан то оставлем английское значение из второго поля.
- Если флаг --ask задан то выводим на экран второе поле и ожидаем когда пользователь введет его перевод и нажмет Enter.
- Если флаг --ask задан но пользователь просто нажал Enter, - оставляем английское значение перевода, как есть.
- Результат выводим или на stdout или записываем в файл.
Сама программа написана на языке Rust и собственно это моя первая программа на этом языке, не судите строго ;-)
Важные замечание по сборке и использованию:
- Необходимо использовать Nightly (1.6) сборку (Дистрибутивы есть для Mac, Linux, Windows).
- Файлы должны быть в UTF-8 (Без BOM). Оригинальные файлы Fritz идут в ANSI. Для перекодирования удобнее всего использовать программу Notepad++, которая правда только для Windows: Открываем файл, - Кодировки - Преобразовать в UTF-8 (Без BOM).
- После получения файла опять используем "Notepad++" для преобразования обратно в ANSI, по аналогии со вторым пунктом.
$ 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://...)
$
$ 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
$
C:\master>rus_fritz.exe -e EngFrame.strings -r RusFrame.strings -o NewFrame.strings --askme -q
Total
Всего
No annotators found
Не найден комментатор
- see LICENSE file
- Version 0.0.8
- see INSTRUCTIONS file
- Homepage: http://ales999.livejournal.com
- e-mail: ales999@gmail.com
- Twitter: @AMekhanoshin
- other communication/social media