Skip to content

Commit 2f2f8d1

Browse files
committed
Возвращена проверка на наличие Unicode BOM. Исправлены ошибки в текстах справки и инструкций.
1 parent e1ffdde commit 2f2f8d1

File tree

6 files changed

+68
-17
lines changed

6 files changed

+68
-17
lines changed

NEWS

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
0.6.1 2017-11-05
2+
- Возвращено либеральное правило проверки на BOM (но только в начале файла; кроме мода-сохранения) — теперь BOM не обязательно проставлять в исходных файлах. Более того — теперь я этого не рекомендую.
3+
14
0.6.0 2017-05-13
25
- Прекращена поставка устаревшего `font.txt`.
36
- Графический интерфейс переведён на IUP.

README.md

Lines changed: 32 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,8 @@ CP1252CYR:
8484

8585
Интерфейс выбора каталогов для EU4Lite и CK2Lite отличается, т. к. соответствующая функция производит сборку локализации для Lite-перевода, поэтому требуются два исходных каталога с разными локализациями и обязательный каталог сохранения.
8686

87+
Начаная с версии 0.6.1 BOM в начале исходного файла в кодировке UTF-8 не обязателен и не рекомендуется к установке.
88+
8789
<!--
8890
СТАНДАРТНЫЕ ДЕЙСТВИЯ
8991
СООБЩЕНИЯ ОБ ОШИБКАХ
@@ -101,7 +103,7 @@ CP1252CYR:
101103

102104
* Кодировать (CP1251) — произвести промежуточное преобразование кодовых позиций символов кириллицы в кодировке UTF-8 из их расположения в этой кодировке к позициям символов, которые после прочтения движком соответственно станут на позиции символов кириллицы в кодировке CP1251.
103105

104-
* Кодировать (CP1252CYR) — произвести промежуточное преобразование кодовых позиций символов кириллицы в кодировке UTF-8 из их расположения в этой кодировке к позициям символов, которые после прочтения движком соответственно станут на позиции символов кириллицы в кодировке CP1252CYR.
106+
* Кодировать (CP1252CYR) — произвести промежуточное преобразование кодовых позиций символов кириллицы в кодировке UTF-8 из их расположения в этой кодировке к позициям символов, которые после прочтения движком соответственно станут на позиции символов кириллицы в кодировке CP1252CYREU4.
105107

106108
* Транслитерировать — транслитерировать кириллицу и произвести промежуточное преобразование кодовых позиций символов кириллицы в кодировке UTF-8 из их расположения в этой кодировке к позициям символов, которые после прочтения движком соответственно станут на позиции транслитерированных символов кириллицы в кодировке CP1252.
107109

@@ -117,9 +119,9 @@ CP1252CYR:
117119

118120
Формат входных файлов: кодировка UTF-8 с BOM, обрыв строки LF (в стиле \*nix). Формат выходных файлов такой же. Выбор файлов производится по расширению `*.yml`.
119121

120-
* CP1252CYR — получить Lite-перевод в кодировке CP1252CYRCK2.
122+
* CP1252CYR — получить Lite-перевод в кодировке CP1252CYREU4.
121123

122-
* CP1251 — получить Lite-перевод в кодировке CP1251
124+
* CP1251 — получить Lite-перевод в кодировке CP1251.
123125

124126
* Транслитерировать — получить транслитерированную версию локализации.
125127

@@ -163,7 +165,7 @@ CP1252CYR:
163165

164166
* CP1252CYR — получить Lite-перевод в кодировке CP1252CYRCK2.
165167

166-
* CP1251 — получить Lite-перевод в кодировке CP1251
168+
* CP1251 — получить Lite-перевод в кодировке CP1251.
167169

168170
* Транслитерировать — получить транслитерированную версию локализации.
169171

@@ -254,6 +256,32 @@ CP1252CYR:
254256

255257
<!-- в разделе №8 был несвободный текст -->
256258

259+
## Примеры текста
260+
261+
Текст примера:
262+
263+
```
264+
Съешь же ещё этих мягких французских булок да выпей чаю.
265+
```
266+
267+
CP1251 в промежуточном представлении в UTF8:
268+
269+
```
270+
Ñúåøü æå åù¸ ýòèõ ìÿãêèõ ôðàíöóçñêèõ áóëîê äà âûïåé ÷àþ.
271+
```
272+
273+
CP1252CYR в промежуточном представлении в UTF8:
274+
275+
```
276+
C¹e·» ¨e e¸ë ¼²ªx ¯÷¥¬ªx ´pa°µ³©c¬ªx  ³®o¬ ¦a ¢º±e« ¶a¾.
277+
```
278+
279+
Транслит:
280+
281+
```
282+
S’exy je eçë êtih mägkih franquzskih bulok da vîpey caü.
283+
```
284+
257285
<!-- 9. -->
258286

259287
## Связь с автором

Recodenc.pm

Lines changed: 30 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -330,7 +330,9 @@ sub l10n_eu4 {
330330
closedir($ch);
331331
foreach my $filename (@filenames) {
332332
open(my $filehandle, '<:unix:perlio:encoding(utf-8)', encode('locale_fs', "$dir1/$filename"));
333-
seek($filehandle, 3, 0); # отбрасывание трёх байт с начала файла (BOM)
333+
my $sof; # отбрасывание BOM, если он есть
334+
read($filehandle, $sof, 1);
335+
unless ($sof eq "\x{FEFF}") {seek($filehandle, 0, 0)}
334336
my $fl = 0; # флаг нужности/ненужности обработки строк
335337
my @strs; # объявление хранилища строк
336338
push(@strs, "\x{FEFF}"); # добавление BOM в начало файла
@@ -375,7 +377,7 @@ sub l10n_eu4 {
375377
undef $filehandle;
376378
# запись результатов обработки
377379
unless (defined($dir2)) {$dir2 = $dir1}
378-
open($filehandle, '>:unix:perlio:encoding(utf-8)', encode('locale_fs', "$dir2/$filename"));
380+
open($filehandle, '>:unix:perlio:encoding(utf-8)', encode('locale_fs', "$dir2/$filename")) or die "Невозможно открыть файл: $!";
379381
print $filehandle @strs;
380382
close $filehandle;
381383
}
@@ -425,7 +427,9 @@ sub l10n_eu4_lite {
425427
closedir($ch);
426428
foreach my $filename (@filenames) {
427429
open(my $filehandle, '<:unix:perlio:encoding(utf-8)', encode('locale_fs', "$dir_orig_ru/$filename"));
428-
seek($filehandle, 3, 0);
430+
my $sof; # отбрасывание BOM, если он есть
431+
read($filehandle, $sof, 1);
432+
unless ($sof eq "\x{FEFF}") {seek($filehandle, 0, 0)}
429433
my $fl = 0; # флаг нужности/ненужности обработки строк
430434
my @strs;
431435
push(@strs, "\x{FEFF}");
@@ -471,7 +475,9 @@ sub l10n_eu4_lite {
471475
@filenames = ('prov_names_l_english.yml', 'prov_names_adj_l_english.yml');
472476
foreach my $filename (@filenames) {
473477
open(my $filehandle, '<:unix:perlio:encoding(utf-8)', "$dir_orig_en/$filename");
474-
seek($filehandle, 3, 0);
478+
my $sof; # отбрасывание BOM, если он есть
479+
read($filehandle, $sof, 1);
480+
unless ($sof eq "\x{FEFF}") {seek($filehandle, 0, 0)}
475481
my @strs;
476482
push(@strs, "\x{FEFF}");
477483
while (my $str = <$filehandle>) {
@@ -552,7 +558,9 @@ sub l10n_eu4_tags {
552558
mkdir(encode('locale_fs', "$dir_save_ru/ru"));
553559
foreach my $filename (@filenames) {
554560
open(my $filehandle, '<:unix:perlio:encoding(utf-8)', encode('locale_fs', "$dir_orig_ru/$filename"));
555-
seek($filehandle, 3, 0);
561+
my $sof; # отбрасывание BOM, если он есть
562+
read($filehandle, $sof, 1);
563+
unless ($sof eq "\x{FEFF}") {seek($filehandle, 0, 0)}
556564
my @strs;
557565
push(@strs, "\x{FEFF}");
558566
while (my $str = <$filehandle>) {
@@ -581,7 +589,9 @@ sub l10n_eu4_tags {
581589
mkdir(encode('locale_fs', "$dir_save_ru/en"));
582590
foreach my $filename (@filenames) {
583591
open(my $filehandle, '<:crlf:perlio:encoding(utf-8)', encode('locale_fs', "$dir_orig_en/$filename"));
584-
seek($filehandle, 3, 0);
592+
my $sof; # отбрасывание BOM, если он есть
593+
read($filehandle, $sof, 1);
594+
unless ($sof eq "\x{FEFF}") {seek($filehandle, 0, 0)}
585595
my @strs;
586596
push(@strs, "\x{FEFF}");
587597
while (my $str = <$filehandle>) {
@@ -695,7 +705,9 @@ sub l10n_ck2 {
695705
foreach my $filename (@filenames) {
696706
open(my $filehandle, "<$reg_read", encode('locale_fs', "$dir1/$filename"));
697707
if ($cpfl == $ENC_CP1251 or $cpfl == $ENC_CP1252CYRCK2 or $cpfl == $ENC_TRANSLIT) {
698-
seek($filehandle, 3, 0);
708+
my $sof; # отбрасывание BOM, если он есть
709+
read($filehandle, $sof, 1);
710+
unless ($sof eq "\x{FEFF}") {seek($filehandle, 0, 0)}
699711
}
700712
my @strs;
701713
while (my $str = <$filehandle>) {
@@ -777,7 +789,9 @@ sub l10n_ck2_lite {
777789
closedir($corh);
778790
foreach my $filename (@filenames_or) {
779791
open(my $filehandle, '<:unix:perlio:encoding(utf-8)', encode('locale_fs', "$dir_orig_ru/$filename"));
780-
seek($filehandle, 3, 0);
792+
my $sof; # отбрасывание BOM, если он есть
793+
read($filehandle, $sof, 1);
794+
unless ($sof eq "\x{FEFF}") {seek($filehandle, 0, 0)}
781795
while (my $str = <$filehandle>) {
782796
chomp $str;
783797
if ($str =~ m/^$/ or $str =~ m/^\#/ or $str =~ m/^;/) {next} # пропуск пустых строк, строк с комментариями и строк без тегов
@@ -891,7 +905,9 @@ sub l10n_ck2_tags {
891905
mkdir(encode('locale_fs', "$dir_save_ru/ru"));
892906
foreach my $filename (@filenames_or) {
893907
open(my $filehandle, '<:unix:perlio:encoding(utf-8)', encode('locale_fs', "$dir_orig_ru/$filename"));
894-
seek($filehandle, 3, 0);
908+
my $sof; # отбрасывание BOM, если он есть
909+
read($filehandle, $sof, 1);
910+
unless ($sof eq "\x{FEFF}") {seek($filehandle, 0, 0)}
895911
my $ff;
896912
my @strs;
897913
push(@strs, "\x{FEFF}#CODE\n");
@@ -1217,7 +1233,11 @@ sub plaintext {
12171233
foreach my $filename (@filenames) {
12181234
unless (-f encode('locale_fs', "$dir1/$filename")) {next}
12191235
open(my $filehandle, "<$reg_read", encode('locale_fs', "$dir1/$filename"));
1220-
if ($reg_read eq ':encoding(utf-8)') {seek($filehandle, 3, 0)}
1236+
if ($reg_read eq ':encoding(utf-8)') {
1237+
my $sof; # отбрасывание BOM, если он есть
1238+
read($filehandle, $sof, 1);
1239+
unless ($sof eq "\x{FEFF}") {seek($filehandle, 0, 0)}
1240+
}
12211241
my @strs;
12221242
if ($reg_write eq ':encoding(utf-8)') {push(@strs, "\x{FEFF}")}
12231243
while (my $str = <$filehandle>) {

encxs/INSTALL

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
* Windows
22
1. Установите Strawberry Perl <http://strawberryperl.com/>.
3-
2. Откройте отно командной строки.
3+
2. Откройте окно командной строки.
44
3. В окне командной строки перейдите в каталог с модулем.
55
4. В окне командной строки выполните следующие команды:
66
1. perl Build.PL

recodenc-gui.pl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ BEGIN
8181
binmode(STDERR, ":encoding(console_out)");
8282

8383
*PROGNAME = \'Recodenc';
84-
*VERSION = \'0.6.0';
84+
*VERSION = \'0.6.1';
8585

8686
# загрузка конфигурации
8787
my $conf_path_dir; # имя каталога файла конфигурации

recodenc.pl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
@ARGV = map {decode('locale', $_)} @ARGV;
4444

4545
*PROGNAME = \'Recodenc';
46-
*VERSION = \'0.6.0';
46+
*VERSION = \'0.6.1';
4747
*ACTION_ENCODE = \1;
4848
*ACTION_DECODE = \2;
4949
*ACTION_TRANSLIT = \3;

0 commit comments

Comments
 (0)