4epT писал(а):Нету перевода фраз:
Player Димулька (5) uses Blessing по Player Unknown #2000765 (17) (лвл: 10)
видимо не вставлены T
Вот такое чудовище предлагается локализовать, куча хитросплетённых мелких фразок, которые, ко всему прочему, встречаются и в других контекстах тоже:
Код: Выделить всё
sub skillUse_string {
my ($source, $target, $skillName, $damage, $level, $delay) = @_;
assert(UNIVERSAL::isa($source, 'Actor')) if DEBUG;
assert(UNIVERSAL::isa($target, 'Actor')) if DEBUG;
return sprintf("%s %s %s%s %s %s%s%sn",
$source->nameString(),
$source->verb(T('use'), T('uses')),
$skillName,
($level != 65535) ? ' ' . TF("(Lv: %s)", $level) : '',
T('on'),
$target->nameString($source),
($damage != -30000) ? ' ' . TF("(Dmg: %s)", $damage || T('Miss')) : '',
($delay) ? ' ' . TF("(delay: %s)", $delay) : '');
}
T('...') проставлены, только от этого мало толку. А на данный момент локализация выглядит так:
Player Mokona (0) использует Increase Agility на вас (лвл: 10)
Player Mokona (0) кастует умение Increase Agility на Player manti (1) (задержка: 586мс)
За безобразие вида "
Player Mokona (0)" отвечает вот этот кусок кода из файла
Actor.pm:
Код: Выделить всё
sub nameString {
my ($self, $otherActor) = @_;
return $self->selfString if $self->{ID} eq $otherActor->{ID};
my $nameString = "$self->{actorType} " . $self->name;
$nameString .= " ($self->{binID})" if defined $self->{binID};
return $nameString;
}
точнее говоря - "
$self->{actorType}", который пока фиг локализуешь.
----
Подскажите, пожалуйста, перевод для двух строк:
"A manner point has been successfully aligned.n"
"You got a good point.n"
Они взяты из кода:
Код: Выделить всё
sub manner_message {
my ($self, $args) = @_;
if ($args->{flag} == 0) {
message T("A manner point has been successfully aligned.n"), "info";
#
} elsif ($args->{flag} == 3) {
message T("Chat Block has been applied by GM due to your ill-mannerous action.n"), "info";
#Ваш чат был заблокирован игровым мастером.n - это ру-оф перевод из msgstringtable.txt
} elsif ($args->{flag} == 4) {
message T("Automated Chat Block has been applied due to Anti-Spam System.n"), "info";
#Ваш чат был автоматически заблокирован системой анти-спама.n - это ру-оф перевод из msgstringtable.txt
} elsif ($args->{flag} == 5) {
message T("You got a good point.n"), "info";
#
} else {
warning TF("flag: %s gave unknown results in: %sn", $args->{flag}, $self->{packet_list}{$args->{switch}}->[0]);
}
}
Добавлено спустя 4 минуты 18 секунд:
AndreyLun писал(а):manticora писал(а):Пусть это будет так:
The instance windows has been removed, possibly due to party/guild leave.
Окно Усыпальницы было закрыто, возможно из-за выхода из пати или гильдии.
А где это сообщение вообще всплывает?
Почитать про усыпальницу можно на
http://irowiki.org/wiki/Instance. Оно всплывает в коде serverType0.pm:
Код: Выделить всё
# 02CE
#1 = The Memorial Dungeon expired; it has been destroyed
#2 = The Memorial Dungeon's entry time limit expired; it has been destroyed
#3 = The Memorial Dungeon has been removed.
#4 = Just remove the window, maybe party/guild leave
# TODO: test if correct message displays, no type == 0 ?
sub instance_window_leave {
my ($self, $args) = @_;
if($args->{type} == 1) {
message T("The Memorial Dungeon expired it has been destroyed.n"), "info";
} elsif($args->{type} == 2) {
message T("The Memorial Dungeon's entry time limit expired it has been destroyed.n"), "info";
} elsif($args->{type} == 3) {
message T("The Memorial Dungeon has been removed.n"), "info";
} elsif ($args->{type} == 4) {
message T("The instance windows has been removed, possibly due to party/guild leave.n"), "info";
} else {
warning TF("flag: %s gave unknown results in: %sn", $args->{flag}, $self->{packet_list}{$args->{switch}}->[0]);
}
}
Добавлено спустя 8 минут 55 секунд:
Расправился с фразами типа:
%s %s in %s state.n
%s %s out of %s state.n
%s %s ailment: %s.n
%s %s out of ailment: %s.n
%s %s look: %s.n
%s %s out of look: %s.n
проблема заключалась в том, что под второй %s подразумевалось "are" или "is", которое подставлялось в зависимости от действующего лица. И вот эти два слова по отдельности фиг переведешь. Пришлось разбить все эти сообщения на пары вида:
%s are in %s state.n
%s is in %s state.n
и уже только тогда можно их было перевести.
Добавлено спустя 12 минут 40 секунд:
В локализации изменился перевод некоторых фраз, используются оригинальные фразы из ру-оф клиента.
Подправлены заголовки всяких списков типа "------ Варианты ответа -------", между минусами и словами расставлены пробелы, общая длина заголовка совпадает теперь с "ногами". Иногда это было не так, ибо из-за перевода заголовки поплыли.
Добавлено спустя 11 минут 7 секунд:
Новая локализация опубликована в ревизии
7247.