diff --git a/NEWS b/NEWS
index bd680ce..be36c1f 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,7 @@
+0.6.3 2018-04-16
+- Кодировки в коде переименованы. В версии 0.6.2 был баг, который проявлялся, если вы собирали модуль кодировки на этой версии, а потом пытались использовать скрипт, из-за недопереименованных кодировок в коде.
+- Заменён код разбора YAML-подобной строки файлов перевода EU4.
+
0.6.2 2018-04-11
- Рекурсивный обход каталогов добавлены для всех функций, кроме распаковки локализации из архивов DLC и генератора lite-локализации CKII.
diff --git a/Recodenc.pm b/Recodenc.pm
index e881d61..06e6d97 100644
--- a/Recodenc.pm
+++ b/Recodenc.pm
@@ -24,11 +24,11 @@ package Recodenc;
=head1 НАЗВАНИЕ
-Recodenc — преобразование текстовых файлов и файлов специального формата между UTF8 и кодировками Recodenc (CP1252CYREU4, CP1252CYRCK2, CP1252CP1251)
+Recodenc — преобразование текстовых файлов и файлов специального формата между UTF8 и кодировками Recodenc (CP1252A, CP1252B, CP1252C)
=head1 СИНТАКСИС
- my $flag = l10n_eu4($Recodenc::ENC_CP1252CYREU4, $dir1, $dir2);
+ my $flag = l10n_eu4($Recodenc::ENC_CP1252B, $dir1, $dir2);
if ($flag == $Recodenc::FL_SRC_DIR_NOT_FOUND) {die 'Каталог с исходными данными не найден!'}
elsif ($flag == $Recodenc::FL_DST_DIR_NOT_FOUND) {die 'Каталог для сохранения не найден!'}
elsif ($flag == $Recodenc::FL_SRC_AND_DST_DIR_ARE_THE_SAME) {die 'Каталог с исходными данными и каталог назначения совпадают!'}
@@ -49,13 +49,13 @@ use vars qw(
$FL_DSTRU_DIR_NOT_FOUND
$FL_SRC_AND_DST_DIR_ARE_THE_SAME
$ENC_NULL
- $ENC_CP1251
- $ENC_CP1252CYREU4
- $ENC_CP1252CYRCK2
+ $ENC_CP1252A
+ $ENC_CP1252B
+ $ENC_CP1252C
$ENC_TRANSLIT
- $DEC_CP1251
- $DEC_CP1252CYREU4
- $DEC_CP1252CYRCK2
+ $DEC_CP1252A
+ $DEC_CP1252B
+ $DEC_CP1252C
);
use parent qw(Exporter);
use File::Copy;
@@ -74,24 +74,103 @@ use Encode::Recodenc;
*FL_DSTRU_DIR_NOT_FOUND = \5;
*FL_SRC_AND_DST_DIR_ARE_THE_SAME = \6;
*ENC_NULL = \0;
-*ENC_CP1251 = \1;
-*ENC_CP1252CYREU4 = \2;
-*ENC_CP1252CYRCK2 = \3;
+*ENC_CP1252A = \1;
+*ENC_CP1252B = \2;
+*ENC_CP1252C = \3;
*ENC_TRANSLIT = \4;
-*DEC_CP1251 = \5;
-*DEC_CP1252CYREU4 = \6;
-*DEC_CP1252CYRCK2 = \7;
+*DEC_CP1252A = \5;
+*DEC_CP1252B = \6;
+*DEC_CP1252C = \7;
# Примечания к константам:
# - FL_* — одно пространство имён
# - ENC_* и DEC_* — одно пространтсво имён
-# - ENC_FNT_* — кусок непересекающегося с ENC_* пространства имён
################################################################################
# КОД ДЛЯ ВЫПОЛНЕНИЯ ПЕРЕД ВЫЗОВАМИ ФУНКЦИЙ
################################################################################
# Объявление кодировок для FNT
-my %cp1252cyreu4 = (
+my %cp1252a = (
+ 8218 => '130',
+ 8222 => '132',
+ 8230 => '133',
+ 8249 => '139',
+ 8216 => '145',
+ 8217 => '146',
+ 8220 => '147',
+ 8221 => '148',
+ 8211 => '150',
+ 8212 => '151',
+ 8250 => '155',
+ 1040 => '192',
+ 1041 => '193',
+ 1042 => '194',
+ 1043 => '195',
+ 1044 => '196',
+ 1045 => '197',
+ 1025 => '168',
+ 1046 => '198',
+ 1047 => '199',
+ 1048 => '200',
+ 1049 => '201',
+ 1050 => '202',
+ 1051 => '203',
+ 1052 => '204',
+ 1053 => '205',
+ 1054 => '206',
+ 1055 => '207',
+ 1056 => '208',
+ 1057 => '209',
+ 1058 => '210',
+ 1059 => '211',
+ 1060 => '212',
+ 1061 => '213',
+ 1062 => '214',
+ 1063 => '215',
+ 1064 => '216',
+ 1065 => '217',
+ 1066 => '218',
+ 1067 => '219',
+ 1068 => '220',
+ 1069 => '221',
+ 1070 => '222',
+ 1071 => '223',
+ 1072 => '224',
+ 1073 => '225',
+ 1074 => '226',
+ 1075 => '227',
+ 1076 => '228',
+ 1077 => '229',
+ 1105 => '184',
+ 1078 => '230',
+ 1079 => '231',
+ 1080 => '232',
+ 1081 => '233',
+ 1082 => '234',
+ 1083 => '235',
+ 1084 => '236',
+ 1085 => '237',
+ 1086 => '238',
+ 1087 => '239',
+ 1088 => '240',
+ 1089 => '241',
+ 1090 => '242',
+ 1091 => '243',
+ 1092 => '244',
+ 1093 => '245',
+ 1094 => '246',
+ 1095 => '247',
+ 1096 => '248',
+ 1097 => '249',
+ 1098 => '250',
+ 1099 => '251',
+ 1100 => '252',
+ 1101 => '253',
+ 1102 => '254',
+ 1103 => '255'
+);
+
+my %cp1252b = (
352 => '138',
353 => '154',
338 => '140',
@@ -148,7 +227,7 @@ my %cp1252cyreu4 = (
1103 => '247'
);
-my %cp1252cyrck2 = (
+my %cp1252c = (
352 => '138',
353 => '154',
338 => '140',
@@ -205,86 +284,6 @@ my %cp1252cyrck2 = (
1103 => '247'
);
-my %cp1251 = (
- 8218 => '130',
- 8222 => '132',
- 8230 => '133',
- 8249 => '139',
- 8216 => '145',
- 8217 => '146',
- 8220 => '147',
- 8221 => '148',
- 8211 => '150',
- 8212 => '151',
- 8250 => '155',
- 1040 => '192',
- 1041 => '193',
- 1042 => '194',
- 1043 => '195',
- 1044 => '196',
- 1045 => '197',
- 1025 => '168',
- 1046 => '198',
- 1047 => '199',
- 1048 => '200',
- 1049 => '201',
- 1050 => '202',
- 1051 => '203',
- 1052 => '204',
- 1053 => '205',
- 1054 => '206',
- 1055 => '207',
- 1056 => '208',
- 1057 => '209',
- 1058 => '210',
- 1059 => '211',
- 1060 => '212',
- 1061 => '213',
- 1062 => '214',
- 1063 => '215',
- 1064 => '216',
- 1065 => '217',
- 1066 => '218',
- 1067 => '219',
- 1068 => '220',
- 1069 => '221',
- 1070 => '222',
- 1071 => '223',
- 1072 => '224',
- 1073 => '225',
- 1074 => '226',
- 1075 => '227',
- 1076 => '228',
- 1077 => '229',
- 1105 => '184',
- 1078 => '230',
- 1079 => '231',
- 1080 => '232',
- 1081 => '233',
- 1082 => '234',
- 1083 => '235',
- 1084 => '236',
- 1085 => '237',
- 1086 => '238',
- 1087 => '239',
- 1088 => '240',
- 1089 => '241',
- 1090 => '242',
- 1091 => '243',
- 1092 => '244',
- 1093 => '245',
- 1094 => '246',
- 1095 => '247',
- 1096 => '248',
- 1097 => '249',
- 1098 => '250',
- 1099 => '251',
- 1100 => '252',
- 1101 => '253',
- 1102 => '254',
- 1103 => '255'
-);
-
################################################################################
# ЭКСПОРТИРУЕМЫЕ ФУНКЦИИ
################################################################################
@@ -298,11 +297,11 @@ sub l10n_eu4 { # r
=head4 Параметр №1
- $ENC_CP1251 # кодировать из UTF8 в CP1251
- $ENC_CP1252CYREU4 # кодировать из UTF8 в CP1252CYREU4
+ $ENC_CP1252A # кодировать из UTF8 в CP1252A
+ $ENC_CP1252B # кодировать из UTF8 в CP1252B
$ENC_TRANSLIT # транслитерировать в рамках UTF8
- $DEC_CP1251 # декодировать из CP1251 в UTF8
- $DEC_CP1252CYREU4 # декодировать из CP1252CYREU4 в UTF8
+ $DEC_CP1252A # декодировать из CP1252A в UTF8
+ $DEC_CP1252B # декодировать из CP1252B в UTF8
=head4 Параметр №2
@@ -350,23 +349,23 @@ sub l10n_eu4 { # r
# деление строки
my ($tag, $num, $txt, $cmm) = &yml_string($str);
# обработка строки
- if ($cpfl == $ENC_CP1251) {
- $txt = decode('cp1252', encode('cp1252cp1251', $txt));
+ if ($cpfl == $ENC_CP1252A) {
+ $txt = decode('cp1252', encode('cp1252a', $txt));
}
- elsif ($cpfl == $ENC_CP1252CYREU4) {
- $txt = decode('cp1252', encode('cp1252cyreu4', $txt));
+ elsif ($cpfl == $ENC_CP1252B) {
+ $txt = decode('cp1252', encode('cp1252b', $txt));
}
elsif ($cpfl == $ENC_TRANSLIT) {
&cyr_to_translit(\$txt);
}
- elsif ($cpfl == $DEC_CP1251) {
- $txt = decode('cp1252cp1251', encode('cp1252', $txt));
+ elsif ($cpfl == $DEC_CP1252A) {
+ $txt = decode('cp1252a', encode('cp1252', $txt));
}
- elsif ($cpfl == $DEC_CP1252CYREU4) {
- $txt = decode('cp1252cyreu4', encode('cp1252', $txt));
+ elsif ($cpfl == $DEC_CP1252B) {
+ $txt = decode('cp1252b', encode('cp1252', $txt));
}
# сохранение строки
- if (length($cmm) > 0) {
+ if (defined($cmm)) {
push(@strs, " $tag:$num \"$txt\" #$cmm\n");
}
else {
@@ -411,8 +410,8 @@ sub l10n_eu4_lite { # r
=head4 Параметр №1
- $ENC_CP1251 # кодировать из UTF8 в CP1251
- $ENC_CP1252CYREU4 # кодировать из UTF8 в CP1252CYREU4
+ $ENC_CP1252A # кодировать из UTF8 в CP1252A
+ $ENC_CP1252B # кодировать из UTF8 в CP1252B
$ENC_TRANSLIT # транслитерировать в рамках UTF8
=head4 Параметр №2
@@ -464,17 +463,17 @@ sub l10n_eu4_lite { # r
# деление строки
my ($tag, $num, $txt, $cmm) = &yml_string($str);
# обработка строки
- if ($cpfl == $ENC_CP1251) {
- $txt = decode('cp1252', encode('cp1252cp1251', $txt));
+ if ($cpfl == $ENC_CP1252A) {
+ $txt = decode('cp1252', encode('cp1252a', $txt));
}
- elsif ($cpfl == $ENC_CP1252CYREU4) {
- $txt = decode('cp1252', encode('cp1252cyreu4', $txt));
+ elsif ($cpfl == $ENC_CP1252B) {
+ $txt = decode('cp1252', encode('cp1252b', $txt));
}
elsif ($cpfl == $ENC_TRANSLIT) {
&cyr_to_translit(\$txt);
}
# сохранение строки
- if (length($cmm) > 0) {
+ if (defined($cmm)) {
push(@strs, " $tag:$num \"$txt\" #$cmm\n");
}
else {
@@ -521,14 +520,14 @@ sub l10n_eu4_lite { # r
push(@strs, "$str\n");
next;
}
- if ($cpfl == $ENC_CP1251) {
+ if ($cpfl == $ENC_CP1252A) {
# деление строки
my ($tag, $num, $txt, $cmm) = &yml_string($str);
# обработка строки
$txt =~ y(ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ)
(AAAAAAACEEEEIIIIDNOOOOOOUUUUYTsaaaaaaaceeeeiiiidnoooooouuuuyty);
# сохранение строки
- if (length($cmm) > 0) {
+ if (defined($cmm)) {
push(@strs, " $tag:$num \"$txt\" #$cmm\n");
}
else {
@@ -709,11 +708,11 @@ sub l10n_ck2 { # r
=head4 Параметр №1
- $ENC_CP1251 # кодировать из UTF8 в CP1251
- $ENC_CP1252CYRCK2 # кодировать из UTF8 в CP1252CYRCK2
+ $ENC_CP1252A # кодировать из UTF8 в CP1252A
+ $ENC_CP1252C # кодировать из UTF8 в CP1252C
$ENC_TRANSLIT # транслитерировать в CP1252
- $DEC_CP1251 # декодировать из CP1251 в UTF8
- $DEC_CP1252CYRCK2 # декодировать из CP1252CYRCK2 в UTF8
+ $DEC_CP1252A # декодировать из CP1252A в UTF8
+ $DEC_CP1252C # декодировать из CP1252C в UTF8
=head4 Параметр №2
@@ -738,13 +737,13 @@ sub l10n_ck2 { # r
}
# работа
my ($reg_read, $reg_write);
- if ($cpfl == $ENC_CP1251 or $cpfl == $ENC_CP1252CYRCK2 or $cpfl == $ENC_TRANSLIT) {$reg_read = ':unix:perlio:encoding(utf-8)'; $reg_write = ':crlf:perlio:encoding(cp1252)'}
- elsif ($cpfl == $DEC_CP1251 or $cpfl == $DEC_CP1252CYRCK2) {$reg_read = ':crlf:perlio:encoding(cp1252)'; $reg_write = ':unix:perlio:encoding(utf-8)'}
+ if ($cpfl == $ENC_CP1252A or $cpfl == $ENC_CP1252C or $cpfl == $ENC_TRANSLIT) {$reg_read = ':unix:perlio:encoding(utf-8)'; $reg_write = ':crlf:perlio:encoding(cp1252)'}
+ elsif ($cpfl == $DEC_CP1252A or $cpfl == $DEC_CP1252C) {$reg_read = ':crlf:perlio:encoding(cp1252)'; $reg_write = ':unix:perlio:encoding(utf-8)'}
my @filenames = grep { m/\.(?:csv|txt)$/ } flwc($dir1);
foreach my $filename (@filenames) {
if ($filename =~ m/\.csv$/) {
open(my $filehandle, "<$reg_read", encode('locale_fs', "$dir1/$filename"));
- if ($cpfl == $ENC_CP1251 or $cpfl == $ENC_CP1252CYRCK2 or $cpfl == $ENC_TRANSLIT) {
+ if ($cpfl == $ENC_CP1252A or $cpfl == $ENC_CP1252C or $cpfl == $ENC_TRANSLIT) {
my $sof; # отбрасывание BOM, если он есть
read($filehandle, $sof, 1);
unless ($sof eq "\x{FEFF}") {seek($filehandle, 0, 0)}
@@ -756,20 +755,20 @@ sub l10n_ck2 { # r
# деление строки
my ($tag, $txt) = split(/;/, $str, 3);
# обработка строки
- if ($cpfl == $ENC_CP1251) {
- $txt = decode('cp1252', encode('cp1252cp1251', $txt));
+ if ($cpfl == $ENC_CP1252A) {
+ $txt = decode('cp1252', encode('cp1252a', $txt));
}
- elsif ($cpfl == $ENC_CP1252CYRCK2) {
- $txt = decode('cp1252', encode('cp1252cyrck2', $txt));
+ elsif ($cpfl == $ENC_CP1252C) {
+ $txt = decode('cp1252', encode('cp1252c', $txt));
}
elsif ($cpfl == $ENC_TRANSLIT) {
&cyr_to_translit(\$txt);
}
- elsif ($cpfl == $DEC_CP1251) {
- $txt = decode('cp1252cp1251', encode('cp1252', $txt));
+ elsif ($cpfl == $DEC_CP1252A) {
+ $txt = decode('cp1252a', encode('cp1252', $txt));
}
- elsif ($cpfl == $DEC_CP1252CYRCK2) {
- $txt = decode('cp1252cyrck2', encode('cp1252', $txt));
+ elsif ($cpfl == $DEC_CP1252C) {
+ $txt = decode('cp1252c', encode('cp1252', $txt));
}
# сохранение строки
push(@strs, "$tag;$txt;x\n");
@@ -812,8 +811,8 @@ sub l10n_ck2_lite {
=head4 Параметр №1
- $ENC_CP1251 # кодировать из UTF8 в CP1251
- $ENC_CP1252CYRCK2 # кодировать из UTF8 в CP1252CYRCK2
+ $ENC_CP1252A # кодировать из UTF8 в CP1252A
+ $ENC_CP1252C # кодировать из UTF8 в CP1252C
$ENC_TRANSLIT # транслитерировать в CP1252
=head4 Параметр №2
@@ -896,11 +895,11 @@ sub l10n_ck2_lite {
}
elsif (defined($loc_ru{$tag})) {
my $trru = $loc_ru{$tag};
- if ($cpfl == $ENC_CP1251) {
- $trru = decode('cp1252', encode('cp1252cp1251', $trru));
+ if ($cpfl == $ENC_CP1252A) {
+ $trru = decode('cp1252', encode('cp1252a', $trru));
}
- elsif ($cpfl == $ENC_CP1252CYRCK2) {
- $trru = decode('cp1252', encode('cp1252cyrck2', $trru));
+ elsif ($cpfl == $ENC_CP1252C) {
+ $trru = decode('cp1252', encode('cp1252c', $trru));
}
elsif ($cpfl == $ENC_TRANSLIT) {
&cyr_to_translit(\$trru);
@@ -1036,9 +1035,9 @@ sub font { # r
=head4 Параметр №1
$ENC_NULL # только очистить
- $ENC_CP1251 # обработка CP1251
- $ENC_CP1252CYRCK2 # обработка CP1252CYRCK2
- $ENC_CP1252CYREU4 # обработка CP1252CYREU4
+ $ENC_CP1252A # обработка CP1252A
+ $ENC_CP1252B # обработка CP1252B
+ $ENC_CP1252C # обработка CP1252C
=head4 Параметр №2
@@ -1061,7 +1060,7 @@ sub font { # r
}
}
# работа
- my @filenames = grep { m/(\.fnt|\.tga|\.dds)$/ } flwc($dir1);
+ my @filenames = grep { m/(?:\.fnt|\.tga|\.dds)$/ } flwc($dir1);
foreach my $filename (@filenames) {
if ($filename =~ m/\.fnt$/) {
open(my $filehandle, '<:unix:crlf', encode('locale_fs', "$dir1/$filename"));
@@ -1131,7 +1130,7 @@ sub font { # r
print $filehandle @strs;
close $filehandle;
}
- elsif ($filename =~ m/\.(tga|dds)$/) {
+ elsif ($filename =~ m/\.(?:tga|dds)$/) {
my $new_name = $filename;
$new_name =~ s/_0\.tga$/\.tga/;
$new_name =~ s/_0\.dds$/\.dds/;
@@ -1161,8 +1160,8 @@ sub modexport { # r
=head4 Параметр №1
- $ENC_CP1251 # локализация закодирована в CP1251
- $ENC_CP1252CYREU4 # локализация закодирована в CP1252CYREU4
+ $ENC_CP1252A # локализация закодирована в CP1251
+ $ENC_CP1252B # локализация закодирована в CP1252B
=head4 Параметр №2
@@ -1225,7 +1224,7 @@ sub modexport { # r
# обработка строки
$txt =~ y(‚ѓ„…†‡€‰Љ‹ЊЋ‘’“”•–—™љ›њћџ ЎўҐ¦Ё©Є«¬®Ї°±Ііґµ¶·ё№є»јѕїАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя)
(‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢¥¦¨©ª«¬®¯°±²³´µ¶·¸¹º»¼¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ);
- if ($cpfl == $ENC_CP1251) {
+ if ($cpfl == $ENC_CP1252A) {
if ($filename =~ m/converted_cultures/) {
$txt =~ s/\x7f\x11$/àÿ/;
}
@@ -1233,7 +1232,7 @@ sub modexport { # r
$txt .= 'ñê';
}
}
- elsif ($cpfl == $ENC_CP1252CYREU4) {
+ elsif ($cpfl == $ENC_CP1252B) {
$txt =~ y/^/€/;
if ($filename =~ m/converted_cultures/) {
$txt =~ s/\x7f\x11$/a÷/;
@@ -1263,7 +1262,7 @@ sub modexport { # r
}
return 0;
}
-# Конвертирование файлов простого текста из UTF8 в CP1252CYR
+# Конвертирование файлов простого текста из UTF8 в CP1252A/B/C
sub plaintext { # r
=head2 plaintext
@@ -1273,13 +1272,14 @@ sub plaintext { # r
=head4 Параметр №1
- $ENC_CP1251 # кодировать из UTF8 в CP1251
- $ENC_CP1252CYRCK2 # кодировать из UTF8 в CP1252CYRCK2
- $ENC_CP1252CYREU4 # кодировать из UTF8 в CP1252CYREU4
+ $ENC_CP1252A # кодировать из UTF8 в CP1252A
+ $ENC_CP1252B # кодировать из UTF8 в CP1252B
+ $ENC_CP1252C # кодировать из UTF8 в CP1252C
$ENC_TRANSLIT # транслитерировать в рамках UTF8
- $DEC_CP1251 # декодировать из CP1251 в UTF8
- $DEC_CP1252CYRCK2 # декодировать из CP1252CYRCK2 в UTF8
- $DEC_CP1252CYREU4 # декодировать из CP1252CYREU4 в UTF8
+ $DEC_CP1252A # декодировать из CP1252A в UTF8
+ $DEC_CP1252B # декодировать из CP1252B в UTF8
+ $DEC_CP1252C # декодировать из CP1252C в UTF8
+
=head4 Параметр №2
@@ -1303,13 +1303,13 @@ sub plaintext { # r
};
# работа
my ($reg_read, $reg_write);
- if ($cpfl == $ENC_CP1251) {$reg_read = ':encoding(utf-8)'; $reg_write = ':encoding(cp1252cp1251)'}
- elsif ($cpfl == $ENC_CP1252CYRCK2) {$reg_read = ':encoding(utf-8)'; $reg_write = ':encoding(cp1252cyrck2)'}
- elsif ($cpfl == $ENC_CP1252CYREU4) {$reg_read = ':encoding(utf-8)'; $reg_write = ':encoding(cp1252cyreu4)'}
- elsif ($cpfl == $ENC_TRANSLIT) {$reg_read = ':encoding(utf-8)'; $reg_write = ':encoding(utf-8)'}
- elsif ($cpfl == $DEC_CP1251) {$reg_read = ':encoding(cp1252cp1251)'; $reg_write = ':encoding(utf-8)'}
- elsif ($cpfl == $DEC_CP1252CYRCK2) {$reg_read = ':encoding(cp1252cyrck2)'; $reg_write = ':encoding(utf-8)'}
- elsif ($cpfl == $DEC_CP1252CYREU4) {$reg_read = ':encoding(cp1252cyreu4)'; $reg_write = ':encoding(utf-8)'}
+ if ($cpfl == $ENC_CP1252A) {$reg_read = ':encoding(utf-8)'; $reg_write = ':encoding(cp1252a)'}
+ elsif ($cpfl == $ENC_CP1252C) {$reg_read = ':encoding(utf-8)'; $reg_write = ':encoding(cp1252c)'}
+ elsif ($cpfl == $ENC_CP1252B) {$reg_read = ':encoding(utf-8)'; $reg_write = ':encoding(cp1252b)'}
+ elsif ($cpfl == $ENC_TRANSLIT) {$reg_read = ':encoding(utf-8)'; $reg_write = ':encoding(utf-8)'}
+ elsif ($cpfl == $DEC_CP1252A) {$reg_read = ':encoding(cp1252a)'; $reg_write = ':encoding(utf-8)'}
+ elsif ($cpfl == $DEC_CP1252C) {$reg_read = ':encoding(cp1252c)'; $reg_write = ':encoding(utf-8)'}
+ elsif ($cpfl == $DEC_CP1252B) {$reg_read = ':encoding(cp1252b)'; $reg_write = ':encoding(utf-8)'}
my @filenames = grep { !m/^\.\.?$/ } flwc($dir1);
foreach my $filename (@filenames) {
unless (-f encode('locale_fs', "$dir1/$filename")) {next}
@@ -1348,23 +1348,7 @@ sub plaintext { # r
# функция разбора правильной YAML-подобной строки файла локализации EU4
sub yml_string {
my $str = shift;
- $str =~ s/^\h//; # удаление начального пробела
- $str =~ m/^[^:]+:[0-9]*/p; # нахождение тэга и номера
- $str = ${^POSTMATCH}; # выбрасывание из строки найденной информации
- my ($tag, $num) = split (/:/, ${^MATCH}); # приравнивание тэга и номера соответствующим переменным
- $str =~ s/^\h+//; # удаление пробела между номером и текстом
- $str =~ s/\\\"/\0/g; # замена экранированных кавычек на нулевые символы
- $str =~ m/^"[^"]*"/p; # нахождение текста //в некоторых строках нет локализации
- $str = ${^POSTMATCH}; # выбрасывание из строки найденной информации
- my $txt = ${^MATCH}; # приравнивание текста соответствующей переменной
- $txt =~ s/^"//; # удаление кавычки в начале текста
- $txt =~ s/"$//; # удаление кавычки в конце текста
- $txt =~ s/\0/\\\"/g; # замена нулевых символов на экранированные кавычки в тексте
- $str =~ s/\0/\\\"/g; # замена нулевых символов на экранированные кавычки в исходной строке
- my $cmm = $str; # приравнивание остатков строки комментарию
- $cmm =~ s/ #//; # удаление обозначения комментария в начале комментария
- #//в оригинальной локализации комментарий в строке всегда начинается последовательностью « #»
- return $tag, $num, $txt, $cmm;
+ return $str =~ m/^ ([^:]+):(\d*) *"(.*?[^\\]?)"(?: *#(.*))?$/;
}
# функция помощи сортировки для функции модификации карт шрифтов
@@ -1441,27 +1425,27 @@ sub id_to {
=head4 Параметр №2
- $ENC_CP1252CYREU4 # заменить кодовые позиции Unicode на CP1252CYREU4
- $ENC_CP1252CYRCK2 # заменить кодовые позиции Unicode на CP1252CYRCK2
- $ENC_CP1251 # заменить кодовые позиции Unicode на CP1251
+ $ENC_CP1252A # заменить кодовые позиции Unicode на CP1252A
+ $ENC_CP1252B # заменить кодовые позиции Unicode на CP1252B
+ $ENC_CP1252C # заменить кодовые позиции Unicode на CP1252C
=cut
my $str = shift; # №1
my $reg = shift; # №2
my @str = split(/=/, $$str, 2);
- if ($reg == $ENC_CP1252CYREU4) {
- if (defined($cp1252cyreu4{$str[1]})) {
- $str[1] = $cp1252cyreu4{$str[1]}
+ if ($reg == $ENC_CP1252B) {
+ if (defined($cp1252b{$str[1]})) {
+ $str[1] = $cp1252b{$str[1]}
}
}
- elsif ($reg == $ENC_CP1252CYRCK2) {
- if (defined($cp1252cyrck2{$str[1]})) {
- $str[1] = $cp1252cyrck2{$str[1]}
+ elsif ($reg == $ENC_CP1252C) {
+ if (defined($cp1252c{$str[1]})) {
+ $str[1] = $cp1252c{$str[1]}
}
}
- elsif ($reg == $ENC_CP1251) {
- if (defined($cp1251{$str[1]})) {
- $str[1] = $cp1251{$str[1]}
+ elsif ($reg == $ENC_CP1252A) {
+ if (defined($cp1252a{$str[1]})) {
+ $str[1] = $cp1252a{$str[1]}
}
}
$$str = "$str[0]=$str[1]";
diff --git a/encxs/MANIFEST b/encxs/MANIFEST
index fd3c110..daa1c39 100644
--- a/encxs/MANIFEST
+++ b/encxs/MANIFEST
@@ -6,6 +6,6 @@ NEWS
lib/Encode/Recodenc.pm
t/00_compile.t
t/10_encode_recodenc.t
-ucm/cp1252cp1251.ucm
-ucm/cp1252cyrck2.ucm
-ucm/cp1252cyreu4.ucm
+ucm/cp1252a.ucm
+ucm/cp1252b.ucm
+ucm/cp1252c.ucm
diff --git a/encxs/lib/Encode/Recodenc.pm b/encxs/lib/Encode/Recodenc.pm
index e68d5cc..c6e123f 100644
--- a/encxs/lib/Encode/Recodenc.pm
+++ b/encxs/lib/Encode/Recodenc.pm
@@ -38,9 +38,9 @@ Encode::Recodenc - encodings module for Recodenc
use Encode qw(encode);
use Encode::Recodenc;
- $data = encode('cp1252cp1251', $data);
- $data = encode('cp1252cyrck2', $data);
- $data = encode('cp1252cyreu4', $data);
+ $data = encode('cp1252a', $data);
+ $data = encode('cp1252b', $data);
+ $data = encode('cp1252c', $data);
=head1 SEE ALSO
diff --git a/encxs/t/10_encode_recodenc.t b/encxs/t/10_encode_recodenc.t
index b175b6b..518154e 100644
--- a/encxs/t/10_encode_recodenc.t
+++ b/encxs/t/10_encode_recodenc.t
@@ -4,15 +4,15 @@ use Test::More tests => 3;
use Encode;
use Encode::Recodenc;
-my $se_cp1252cyreu4 = 'АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя';
-my $sd_cp1252cyreu4 = 'A€B‚ƒEË„…†‡KˆMHO‰PCT‹‘X’“”•–—˜™›×a ¢¥¦e먩ª«¬®¯°o±pc²³´xµ¶·¸¹º»¼¾÷';
+my $se_cp1252a = 'АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя';
+my $sd_cp1252a = 'ÀÁÂÃÄŨÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäå¸æçèéêëìíîïðñòóôõö÷øùúûüýþÿ';
-my $se_cp1252cyrck2 = 'АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя';
-my $sd_cp1252cyrck2 = 'A^B‚ƒEË„…†‡KˆMHO‰PCT‹‘X’“”•–—˜™›×a ¢¥¦e먩ª«¬®¯°o±pc²³´xµ¶·¸¹º»¼¾÷';
+my $se_cp1252b = 'АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя';
+my $sd_cp1252b = 'A€B‚ƒEË„…†‡KˆMHO‰PCT‹‘X’“”•–—˜™›×a ¢¥¦e먩ª«¬®¯°o±pc²³´xµ¶·¸¹º»¼¾÷';
-my $se_cp1252cp1251 = 'АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя';
-my $sd_cp1252cp1251 = 'ÀÁÂÃÄŨÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäå¸æçèéêëìíîïðñòóôõö÷øùúûüýþÿ';
+my $se_cp1252c = 'АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя';
+my $sd_cp1252c = 'A^B‚ƒEË„…†‡KˆMHO‰PCT‹‘X’“”•–—˜™›×a ¢¥¦e먩ª«¬®¯°o±pc²³´xµ¶·¸¹º»¼¾÷';
-is (decode('cp1252', encode('cp1252cyreu4', $se_cp1252cyreu4)), $sd_cp1252cyreu4, 'CP1252CYREU4: String encoded correctly');
-is (decode('cp1252', encode('cp1252cyrck2', $se_cp1252cyrck2)), $sd_cp1252cyrck2, 'CP1252CYRCK2: String encoded correctly');
-is (decode('cp1252', encode('cp1252cp1251', $se_cp1252cp1251)), $sd_cp1252cp1251, 'CP1252CP1251: String encoded correctly');
+is (decode('cp1252', encode('cp1252a', $se_cp1252a)), $sd_cp1252a, 'CP1252A: String encoded correctly');
+is (decode('cp1252', encode('cp1252b', $se_cp1252b)), $sd_cp1252b, 'CP1252B: String encoded correctly');
+is (decode('cp1252', encode('cp1252c', $se_cp1252c)), $sd_cp1252c, 'CP1252C: String encoded correctly');
diff --git a/encxs/ucm/cp1252cp1251.ucm b/encxs/ucm/cp1252a.ucm
similarity index 100%
rename from encxs/ucm/cp1252cp1251.ucm
rename to encxs/ucm/cp1252a.ucm
diff --git a/encxs/ucm/cp1252cyreu4.ucm b/encxs/ucm/cp1252b.ucm
similarity index 99%
rename from encxs/ucm/cp1252cyreu4.ucm
rename to encxs/ucm/cp1252b.ucm
index f33f624..2c49a48 100644
--- a/encxs/ucm/cp1252cyreu4.ucm
+++ b/encxs/ucm/cp1252b.ucm
@@ -17,7 +17,7 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see .
################################################################################
- "cp1252cyreu4"
+ "cp1252b"
1
3
\x3F
diff --git a/encxs/ucm/cp1252cyrck2.ucm b/encxs/ucm/cp1252c.ucm
similarity index 99%
rename from encxs/ucm/cp1252cyrck2.ucm
rename to encxs/ucm/cp1252c.ucm
index f24a1ad..6d6844d 100644
--- a/encxs/ucm/cp1252cyrck2.ucm
+++ b/encxs/ucm/cp1252c.ucm
@@ -17,7 +17,7 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see .
################################################################################
- "cp1252cyrck2"
+ "cp1252c"
1
3
\x3F
diff --git a/recodenc-gui.pl b/recodenc-gui.pl
index d0aac26..00f1e7d 100755
--- a/recodenc-gui.pl
+++ b/recodenc-gui.pl
@@ -81,7 +81,7 @@ BEGIN
binmode(STDERR, ":encoding(console_out)");
*PROGNAME = \'Recodenc';
-*VERSION = \'0.6.2';
+*VERSION = \'0.6.3';
*LABEL_PADDING = \'3x3';
# загрузка конфигурации
@@ -206,16 +206,16 @@ BEGIN
IUP::Hbox->new(
HOMOGENEOUS => 'YES',
child => [
- IUP::Button->new(EXPAND => 'HORIZONTAL', TITLE => 'Кодировать (CP1251)', ACTION => sub{&w_recodenc_l10n_eu4($Recodenc::ENC_CP1251); return IUP_DEFAULT}),
- IUP::Button->new(EXPAND => 'HORIZONTAL', TITLE => 'Кодировать (CP1252CYR)', ACTION => sub{&w_recodenc_l10n_eu4($Recodenc::ENC_CP1252CYREU4); return IUP_DEFAULT}),
+ IUP::Button->new(EXPAND => 'HORIZONTAL', TITLE => 'Кодировать (CP1251)', ACTION => sub{&w_recodenc_l10n_eu4($Recodenc::ENC_CP1252A); return IUP_DEFAULT}),
+ IUP::Button->new(EXPAND => 'HORIZONTAL', TITLE => 'Кодировать (CP1252CYR)', ACTION => sub{&w_recodenc_l10n_eu4($Recodenc::ENC_CP1252B); return IUP_DEFAULT}),
IUP::Button->new(EXPAND => 'HORIZONTAL', TITLE => 'Транслитерировать', ACTION => sub{&w_recodenc_l10n_eu4($Recodenc::ENC_TRANSLIT); return IUP_DEFAULT})
]
),
IUP::Hbox->new(
HOMOGENEOUS => 'YES',
child => [
- IUP::Button->new(EXPAND => 'HORIZONTAL', TITLE => 'Декодировать (CP1251)', ACTION => sub{&w_recodenc_l10n_eu4($Recodenc::DEC_CP1251); return IUP_DEFAULT}),
- IUP::Button->new(EXPAND => 'HORIZONTAL', TITLE => 'Декодировать (CP1252CYR)', ACTION => sub{&w_recodenc_l10n_eu4($Recodenc::DEC_CP1252CYREU4); return IUP_DEFAULT}),
+ IUP::Button->new(EXPAND => 'HORIZONTAL', TITLE => 'Декодировать (CP1251)', ACTION => sub{&w_recodenc_l10n_eu4($Recodenc::DEC_CP1252A); return IUP_DEFAULT}),
+ IUP::Button->new(EXPAND => 'HORIZONTAL', TITLE => 'Декодировать (CP1252CYR)', ACTION => sub{&w_recodenc_l10n_eu4($Recodenc::DEC_CP1252B); return IUP_DEFAULT}),
]
)
]
@@ -244,8 +244,8 @@ BEGIN
IUP::Hbox->new(
HOMOGENEOUS => 'YES',
child => [
- IUP::Button->new(EXPAND => 'HORIZONTAL', TITLE => 'CP1251', ACTION => sub{&w_recodenc_l10n_eu4_lite($Recodenc::ENC_CP1251); return IUP_DEFAULT}),
- IUP::Button->new(EXPAND => 'HORIZONTAL', TITLE => 'CP1252CYR', ACTION => sub{&w_recodenc_l10n_eu4_lite($Recodenc::ENC_CP1252CYREU4); return IUP_DEFAULT}),
+ IUP::Button->new(EXPAND => 'HORIZONTAL', TITLE => 'CP1251', ACTION => sub{&w_recodenc_l10n_eu4_lite($Recodenc::ENC_CP1252A); return IUP_DEFAULT}),
+ IUP::Button->new(EXPAND => 'HORIZONTAL', TITLE => 'CP1252CYR', ACTION => sub{&w_recodenc_l10n_eu4_lite($Recodenc::ENC_CP1252B); return IUP_DEFAULT}),
IUP::Button->new(EXPAND => 'HORIZONTAL', TITLE => 'Транслитерировать', ACTION => sub{&w_recodenc_l10n_eu4_lite($Recodenc::ENC_TRANSLIT); return IUP_DEFAULT}),
IUP::Button->new(EXPAND => 'HORIZONTAL', TITLE => 'Только тэгы', ACTION => sub{&w_recodenc_l10n_eu4_tags(); return IUP_DEFAULT})
]
@@ -299,16 +299,16 @@ BEGIN
IUP::Hbox->new(
HOMOGENEOUS => 'YES',
child => [
- IUP::Button->new(EXPAND => 'HORIZONTAL', TITLE => 'Кодировать (CP1251)', ACTION => sub{&w_recodenc_l10n_ck2($Recodenc::ENC_CP1251); return IUP_DEFAULT}),
- IUP::Button->new(EXPAND => 'HORIZONTAL', TITLE => 'Кодировать (CP1252CYR)', ACTION => sub{&w_recodenc_l10n_ck2($Recodenc::ENC_CP1252CYRCK2); return IUP_DEFAULT}),
+ IUP::Button->new(EXPAND => 'HORIZONTAL', TITLE => 'Кодировать (CP1251)', ACTION => sub{&w_recodenc_l10n_ck2($Recodenc::ENC_CP1252A); return IUP_DEFAULT}),
+ IUP::Button->new(EXPAND => 'HORIZONTAL', TITLE => 'Кодировать (CP1252CYR)', ACTION => sub{&w_recodenc_l10n_ck2($Recodenc::ENC_CP1252C); return IUP_DEFAULT}),
IUP::Button->new(EXPAND => 'HORIZONTAL', TITLE => 'Транслитерировать', ACTION => sub{&w_recodenc_l10n_ck2($Recodenc::ENC_TRANSLIT); return IUP_DEFAULT})
]
),
IUP::Hbox->new(
HOMOGENEOUS => 'YES',
child => [
- IUP::Button->new(EXPAND => 'HORIZONTAL', TITLE => 'Декодировать (CP1251)', ACTION => sub{&w_recodenc_l10n_ck2($Recodenc::DEC_CP1251); return IUP_DEFAULT}),
- IUP::Button->new(EXPAND => 'HORIZONTAL', TITLE => 'Декодировать (CP1252CYR)', ACTION => sub{&w_recodenc_l10n_ck2($Recodenc::DEC_CP1252CYRCK2); return IUP_DEFAULT}),
+ IUP::Button->new(EXPAND => 'HORIZONTAL', TITLE => 'Декодировать (CP1251)', ACTION => sub{&w_recodenc_l10n_ck2($Recodenc::DEC_CP1252A); return IUP_DEFAULT}),
+ IUP::Button->new(EXPAND => 'HORIZONTAL', TITLE => 'Декодировать (CP1252CYR)', ACTION => sub{&w_recodenc_l10n_ck2($Recodenc::DEC_CP1252C); return IUP_DEFAULT}),
]
)
]
@@ -337,8 +337,8 @@ BEGIN
IUP::Hbox->new(
HOMOGENEOUS => 'YES',
child => [
- IUP::Button->new(EXPAND => 'HORIZONTAL', TITLE => 'CP1251', ACTION => sub{&w_recodenc_l10n_ck2_lite($Recodenc::ENC_CP1251); return IUP_DEFAULT}),
- IUP::Button->new(EXPAND => 'HORIZONTAL', TITLE => 'CP1252CYR', ACTION => sub{&w_recodenc_l10n_ck2_lite($Recodenc::ENC_CP1252CYRCK2); return IUP_DEFAULT}),
+ IUP::Button->new(EXPAND => 'HORIZONTAL', TITLE => 'CP1251', ACTION => sub{&w_recodenc_l10n_ck2_lite($Recodenc::ENC_CP1252A); return IUP_DEFAULT}),
+ IUP::Button->new(EXPAND => 'HORIZONTAL', TITLE => 'CP1252CYR', ACTION => sub{&w_recodenc_l10n_ck2_lite($Recodenc::ENC_CP1252C); return IUP_DEFAULT}),
IUP::Button->new(EXPAND => 'HORIZONTAL', TITLE => 'Транслитерировать', ACTION => sub{&w_recodenc_l10n_ck2_lite($Recodenc::ENC_TRANSLIT); return IUP_DEFAULT}),
IUP::Button->new(EXPAND => 'HORIZONTAL', TITLE => 'Только тэгы', ACTION => sub{&w_recodenc_l10n_ck2_tags(); return IUP_DEFAULT})
]
@@ -367,9 +367,9 @@ BEGIN
HOMOGENEOUS => 'YES',
child => [
IUP::Button->new(EXPAND => 'HORIZONTAL', TITLE => 'Очистить', ACTION => sub{&w_recodenc_font($Recodenc::ENC_NULL); return IUP_DEFAULT}),
- IUP::Button->new(EXPAND => 'HORIZONTAL', TITLE => 'CP1251', ACTION => sub{&w_recodenc_font($Recodenc::ENC_CP1251); return IUP_DEFAULT}),
- IUP::Button->new(EXPAND => 'HORIZONTAL', TITLE => 'CP1252CYREU4', ACTION => sub{&w_recodenc_font($Recodenc::ENC_CP1252CYREU4); return IUP_DEFAULT}),
- IUP::Button->new(EXPAND => 'HORIZONTAL', TITLE => 'CP1252CYRCK2', ACTION => sub{&w_recodenc_font($Recodenc::ENC_CP1252CYRCK2); return IUP_DEFAULT})
+ IUP::Button->new(EXPAND => 'HORIZONTAL', TITLE => 'CP1251', ACTION => sub{&w_recodenc_font($Recodenc::ENC_CP1252A); return IUP_DEFAULT}),
+ IUP::Button->new(EXPAND => 'HORIZONTAL', TITLE => 'CP1252CYREU4', ACTION => sub{&w_recodenc_font($Recodenc::ENC_CP1252B); return IUP_DEFAULT}),
+ IUP::Button->new(EXPAND => 'HORIZONTAL', TITLE => 'CP1252CYRCK2', ACTION => sub{&w_recodenc_font($Recodenc::ENC_CP1252C); return IUP_DEFAULT})
]
)
]
@@ -395,8 +395,8 @@ BEGIN
IUP::Hbox->new(
HOMOGENEOUS => 'YES',
child => [
- IUP::Button->new(EXPAND => 'HORIZONTAL', TITLE => 'Конвертировать (CP1251)', ACTION => sub{&w_recodenc_modexport($Recodenc::ENC_CP1251); return IUP_DEFAULT}),
- IUP::Button->new(EXPAND => 'HORIZONTAL', TITLE => 'Конвертировать (CP1252CYR)', ACTION => sub{&w_recodenc_modexport($Recodenc::ENC_CP1252CYREU4); return IUP_DEFAULT})
+ IUP::Button->new(EXPAND => 'HORIZONTAL', TITLE => 'Конвертировать (CP1251)', ACTION => sub{&w_recodenc_modexport($Recodenc::ENC_CP1252A); return IUP_DEFAULT}),
+ IUP::Button->new(EXPAND => 'HORIZONTAL', TITLE => 'Конвертировать (CP1252CYR)', ACTION => sub{&w_recodenc_modexport($Recodenc::ENC_CP1252B); return IUP_DEFAULT})
]
)
]
@@ -422,18 +422,18 @@ BEGIN
IUP::Hbox->new(
HOMOGENEOUS => 'YES',
child => [
- IUP::Button->new(EXPAND => 'HORIZONTAL', TITLE => 'Код. (CP1251)', TIP => 'Кодировать (CP1251)', ACTION => sub{&w_recodenc_plaintext($Recodenc::ENC_CP1251); return IUP_DEFAULT}),
- IUP::Button->new(EXPAND => 'HORIZONTAL', TITLE => 'Код. (CP1252CYREU4)', TIP => 'Кодировать (CP1252CYREU4)', ACTION => sub{&w_recodenc_plaintext($Recodenc::ENC_CP1252CYREU4); return IUP_DEFAULT}),
- IUP::Button->new(EXPAND => 'HORIZONTAL', TITLE => 'Код. (CP1252CYRCK2)', TIP => 'Кодировать (CP1252CYRCK2)', ACTION => sub{&w_recodenc_plaintext($Recodenc::ENC_CP1252CYRCK2); return IUP_DEFAULT}),
+ IUP::Button->new(EXPAND => 'HORIZONTAL', TITLE => 'Код. (CP1251)', TIP => 'Кодировать (CP1251)', ACTION => sub{&w_recodenc_plaintext($Recodenc::ENC_CP1252A); return IUP_DEFAULT}),
+ IUP::Button->new(EXPAND => 'HORIZONTAL', TITLE => 'Код. (CP1252CYREU4)', TIP => 'Кодировать (CP1252CYREU4)', ACTION => sub{&w_recodenc_plaintext($Recodenc::ENC_CP1252B); return IUP_DEFAULT}),
+ IUP::Button->new(EXPAND => 'HORIZONTAL', TITLE => 'Код. (CP1252CYRCK2)', TIP => 'Кодировать (CP1252CYRCK2)', ACTION => sub{&w_recodenc_plaintext($Recodenc::ENC_CP1252C); return IUP_DEFAULT}),
IUP::Button->new(EXPAND => 'HORIZONTAL', TITLE => 'Транслитерировать', ACTION => sub{&w_recodenc_plaintext($Recodenc::ENC_TRANSLIT); return IUP_DEFAULT})
]
),
IUP::Hbox->new(
HOMOGENEOUS => 'YES',
child => [
- IUP::Button->new(EXPAND => 'HORIZONTAL', TITLE => 'Дек. (CP1251)', TIP => 'Декодировать (CP1251)', ACTION => sub{&w_recodenc_plaintext($Recodenc::DEC_CP1251); return IUP_DEFAULT}),
- IUP::Button->new(EXPAND => 'HORIZONTAL', TITLE => 'Дек. (CP1252CYREU4)', TIP => 'Декодировать (CP1252CYREU4)', ACTION => sub{&w_recodenc_plaintext($Recodenc::DEC_CP1252CYREU4); return IUP_DEFAULT}),
- IUP::Button->new(EXPAND => 'HORIZONTAL', TITLE => 'Дек. (CP1252CYRCK2)', TIP => 'Декодировать (CP1252CYRCK2)', ACTION => sub{&w_recodenc_plaintext($Recodenc::DEC_CP1252CYRCK2); return IUP_DEFAULT})
+ IUP::Button->new(EXPAND => 'HORIZONTAL', TITLE => 'Дек. (CP1251)', TIP => 'Декодировать (CP1251)', ACTION => sub{&w_recodenc_plaintext($Recodenc::DEC_CP1252A); return IUP_DEFAULT}),
+ IUP::Button->new(EXPAND => 'HORIZONTAL', TITLE => 'Дек. (CP1252CYREU4)', TIP => 'Декодировать (CP1252CYREU4)', ACTION => sub{&w_recodenc_plaintext($Recodenc::DEC_CP1252B); return IUP_DEFAULT}),
+ IUP::Button->new(EXPAND => 'HORIZONTAL', TITLE => 'Дек. (CP1252CYRCK2)', TIP => 'Декодировать (CP1252CYRCK2)', ACTION => sub{&w_recodenc_plaintext($Recodenc::DEC_CP1252C); return IUP_DEFAULT})
]
)
]
diff --git a/recodenc.pl b/recodenc.pl
index 122981f..7d963aa 100755
--- a/recodenc.pl
+++ b/recodenc.pl
@@ -43,7 +43,7 @@
@ARGV = map {decode('locale', $_)} @ARGV;
*PROGNAME = \'Recodenc';
-*VERSION = \'0.6.2';
+*VERSION = \'0.6.3';
*ACTION_ENCODE = \1;
*ACTION_DECODE = \2;
*ACTION_TRANSLIT = \3;
@@ -117,14 +117,14 @@ sub det_enc {
my $gam = shift; # игра: eu4 — EU4, ck2 — CK2
if ($actn == $ACTION_ENCODE) {
if ($encoding eq 'cp1251') {
- return $Recodenc::ENC_CP1251;
+ return $Recodenc::ENC_CP1252A;
}
elsif ($encoding eq 'cp1252cyreu4') {
if ($gam eq 'ck2') {
die "Задана неверная локализация кодировки CP1252CYR.\n";
}
else {
- return $Recodenc::ENC_CP1252CYREU4;
+ return $Recodenc::ENC_CP1252B;
}
}
elsif ($encoding eq 'cp1252cyrck2') {
@@ -132,15 +132,15 @@ sub det_enc {
die "Задана неверная локализация кодировки CP1252CYR.\n";
}
else {
- return $Recodenc::ENC_CP1252CYRCK2;
+ return $Recodenc::ENC_CP1252C;
}
}
elsif ($encoding eq 'cp1252cyr') {
if ($gam eq 'eu4') {
- return $Recodenc::ENC_CP1252CYREU4;
+ return $Recodenc::ENC_CP1252B;
}
elsif ($gam eq 'ck2') {
- return $Recodenc::ENC_CP1252CYRCK2;
+ return $Recodenc::ENC_CP1252C;
}
else {
die "CP1252CYR без указания движка игры в недопустимом месте.\n";
@@ -152,14 +152,14 @@ sub det_enc {
}
elsif ($actn == $ACTION_DECODE) {
if ($encoding eq 'cp1251') {
- return $Recodenc::DEC_CP1251;
+ return $Recodenc::DEC_CP1252A;
}
elsif ($encoding eq 'cp1252cyreu4') {
if ($gam eq 'ck2') {
die "Задана неверная локализация кодировки CP1252CYR.\n";
}
else {
- return $Recodenc::DEC_CP1252CYREU4;
+ return $Recodenc::DEC_CP1252B;
}
}
elsif ($encoding eq 'cp1252cyrck2') {
@@ -167,15 +167,15 @@ sub det_enc {
die "Задана неверная локализация кодировки CP1252CYR.\n";
}
else {
- return $Recodenc::DEC_CP1252CYRCK2;
+ return $Recodenc::DEC_CP1252C;
}
}
elsif ($encoding eq 'cp1252cyr') {
if ($gam eq 'eu4') {
- return $Recodenc::DEC_CP1252CYREU4;
+ return $Recodenc::DEC_CP1252B;
}
elsif ($gam eq 'ck2') {
- return $Recodenc::DEC_CP1252CYRCK2;
+ return $Recodenc::DEC_CP1252C;
}
else {
die "CP1252CYR без указания движка игры в недопустимом месте.\n";