Archived copy of war3source.com, the War3Source forum (2009–2020), rebuilt from the Internet Archive by wc3mods.net. This page was captured on 2012-10-25 (original capture). Forum · All archived topics · Wiki · Bug tracker · Blog

War3:Source

General Discussion => War3: Source - Multilingual => Topic started by: Arturius on November 04, 2011, 09:06:53 AM



Title: [Russian] Как переводить расы!
Post by: Arturius on November 04, 2011, 09:06:53 AM
Прежде всего, надо отредактировать код в файле расы.
Откройте файл <ваша_раса>.sp текстовым редактором.
Добавьте в функцию public OnPluginStart() следующую строку:

Code:
LoadTranslations("w3s.race.<Краткое_название_расы>.phrases");

Где <Краткое_название_расы> - имя вашей расы. Например: paladin => w3s.race.paladin.phrases

После этого, вам необходимо изменить несколько параметров в public OnWar3LoadRaceOrItemOrdered2()

Пример без перевода:

Code:
thisRaceID=War3_CreateNewRace("Полное_название_расы","Краткое_название_расы");
SKILL_DEFENSIVE=War3_AddRaceSkill(thisRaceID,"Название_скила1","Описание_скила1",false,4);
SKILL_OFFENSIVE=War3_AddRaceSkill(thisRaceID,"Название_скила2","Описание_скила2",false,4);
SKILL_HEALING=War3_AddRaceSkill(thisRaceID,"Название_скила3","Описание_скила3",false,4);
ULT_OVERDRIVE=War3_AddRaceSkill(thisRaceID,"Название_скила4","Описание_скила4",true,4);
War3_CreateRaceEnd(thisRaceID);

Должно выглядеть так:

Quote
thisRaceID=War3_CreateNewRaceT("Краткое_название_расы");
SKILL_DEFENSIVE=War3_AddRaceSkillT(thisRaceID,"Название_скила1",false,4);
SKILL_OFFENSIVE=War3_AddRaceSkillT(thisRaceID,"Название_скила2",false,4);
SKILL_HEALING=War3_AddRaceSkillT(thisRaceID,"Название_скила3",false,4);
ULT_OVERDRIVE=War3_AddRaceSkillT(thisRaceID,"Название_скила4",true,4);
War3_CreateRaceEnd(thisRaceID);

Обратите внимание на литеру Т в конце War3_AddRaceSkill. Только с этой литерой перевод будет работать.
Удалите "Полное_название_расы". В нём нет необходимости.
"Краткое_название_расы" и "Название_скила" могут содержать только латинские буквы!
Вы должны удалить "Описание_скила", т.к. оно будет добавлено позже в файле перевода.
"Название_скила" должно быть без пробелов!

Готовый к переводу пример:
Quote
       thisRaceID=War3_CreateNewRaceT("paladin");
        SKILL_DEFENSIVE=War3_AddRaceSkillT(thisRaceID,"DefensiveAura",false,4);
        SKILL_OFFENSIVE=War3_AddRaceSkillT(thisRaceID,"OffensiveAura",false,4);
        SKILL_HEALING=War3_AddRaceSkillT(thisRaceID,"HealingAura",false,4);
        ULT_OVERDRIVE=War3_AddRaceSkillT(thisRaceID,"AuraOverdrive",true,4);
        War3_CreateRaceEnd(thisRaceID);

Сохраните файл...

Теперь создадим текстовой файл и добавим перевод.
Пример перевода:

Code:
"Phrases"
{
//<shortname>_RaceName
"<Краткое_название_расы>_RaceName"
{
"en" "Полное_название_расы"
}

//skills:
//<shortname>_skill_<SkillNameIdentifier> for the skill name
//<shortname>_skill_<SkillNameIdentifier>_desc for the skill description
"<Краткое_название_расы>_skill_<Название_скила1>"
{
"en" "Название скила 1"
}
"<Краткое_название_расы>_skill_<Название_скила1>_desc"
{
"en" "Описание скила 1"
}

"<Краткое_название_расы>_skill_<Название_скила2>"
{
"en" "Название скила 2"
}
"<Краткое_название_расы>_skill_<Название_скила2>_desc"
{
"en" "Описание скила 2"
}

"<Краткое_название_расы>_skill_<Название_скила3>"
{
"en" "Название скила 3"
}
"<Краткое_название_расы>_skill_<Название_скила3>_desc"
{
"en" "Описание скила 3"
}

"<Краткое_название_расы>_skill_<Название_скила4>"
{
"en" "Название скила 4"
}
"<Краткое_название_расы>_skill_<Название_скила4>_desc"
{
"en" "Описание скила 4"
}
}

"<Краткое_название_расы>_RaceName" - для имени расы. Например: "paladin_RaceName"
"<Краткое_название_расы>_skill_<Название_скила1>" - для названия скила. Например: "paladin_skill_DefensiveAura"
"<Краткое_название_расы>_skill_<Название_скила1>_desc" - для описания скила. Например: "paladin_skill_DefensiveAura_desc"

Если вы хотите добавить другой язык, замените "en" на ваш язык (например "ru") и переведите названия с описаниями.

Как это выглядит:
Английский вариант перевода:
Code:
"Phrases"
{
//<shortname>_RaceName
"paladin_RaceName"
{
"en" "Paladin[RoC]"
}

//skills:
//<shortname>_skill_<SkillNameIdentifier> for the skill name
//<shortname>_skill_<SkillNameIdentifier>_desc for the skill description
"paladin_skill_DefensiveAura"
{
"en" "Defensive Aura"
}
"paladin_skill_DefensiveAura_desc"
{
"en" "Give your teammates extra armor."
}

"paladin_skill_OffensiveAura"
{
"en" "Offensive Aura"
}
"paladin_skill_OffensiveAura_desc"
{
"en" "Give your teammates extra damage."
}

"paladin_skill_HealingAura"
{
"en" "Healing Aura"
}
"paladin_skill_HealingAura_desc"
{
"en" "Give your teammates passive regeneration."
}

"paladin_skill_AuraOverdrive"
{
"en" "Aura Overdrive"
}
"paladin_skill_AuraOverdrive_desc"
{
"en" "Activate all auras at once."
}

}

Русский вариант перевода:
Code:
"Phrases"
{
//<shortname>_RaceName
"paladin_RaceName"
{
"ru" "Паладин"
}

//skills:
//<shortname>_skill_<SkillNameIdentifier> for the skill name
//<shortname>_skill_<SkillNameIdentifier>_desc for the skill description
"paladin_skill_DefensiveAura"
{
"ru" "Защитная аура"
}
"paladin_skill_DefensiveAura_desc"
{
"ru" "Уменьшает получаемый союзниками урон. Вы получаете половину эффекта."
}

"paladin_skill_OffensiveAura"
{
"ru" "Атакующая Аура"
}
"paladin_skill_OffensiveAura_desc"
{
"ru" "Увеличивает урон союзников. Вы получаете половину эффекта."
}

"paladin_skill_HealingAura"
{
"ru" "Лечащая Аура"
}
"paladin_skill_HealingAura_desc"
{
"ru" "Лечит союзников. Вы получаете половину эффекта."
}

"paladin_skill_AuraOverdrive"
{
"ru" "Сверх Аура"
}
"paladin_skill_AuraOverdrive_desc"
{
"ru" "Включает одновременно все Ауры. Вы получаете весь эффект."
}

}

Наконец, сохраните свой файл перевода. Если вы переводили на русский, не забудьте, что кодировка должна быть UTF8 - без BOM.
Файл перевода должен иметь имя w3s.race.<Краткое_название_расы>.phrases.txt (например: w3s.race.paladin.phrases.txt)

Думаю, это всё...
Скомпилируйте файл расы, загрузите его на сервер и поместите файл перевода в папку ..translations/ru/


Перевод урока rostex - [How To] Add translation in custom race (http://war3source.com/index.php?topic=672.msg4507#msg4507)


Title: Re: [Russian] Как переводить расы!
Post by: Ownz on November 04, 2011, 09:20:31 AM
please use english characters only for shortname for compatibility reasons. Russian characters sometimes take up more than 1 byte. And sometimes windows fails on special characters.

it would also be great if they could share them after they translated them


Title: Re: [Russian] Как переводить расы!
Post by: Arturius on November 04, 2011, 11:23:06 AM
Thanks! I have corrected the translation of a tutorial and have added your comment.


Title: Re: [Russian] Как переводить расы!
Post by: Divix on November 04, 2011, 01:17:45 PM
Тогда вот еще перевод артефактов:
1) Открываем артефакт.sp
2) Добавляем в public OnPluginStart() строку LoadTranslations("w3s.item.СокращенноеИмяАртефакта.phrases");
3) Ищем War3_CreateShopItem изменяем на War3_CreateShopItemT и удаляем то что в первых кавычках вместе с запятой
4) Сохраняем, компилируем артефакт.sp и заливаем в папку с w3s модом файл compiled->артефакт.smx
5) Создаем текстовой документ w3s.item.СокращенноеИмяАртефакта.phrases.txt и вписываем туда следующие:
Code:
"Phrases"
{
"СокращенноеИмяАртефакта_ItemName"
{
"ru" "Название как оно будет видно в игре"
}
"СокращенноеИмяАртефакта_ItemDesc"
{
"ru" "Описание как оно будет видно в игре"
}
}
6) Сохраняем и заливаем w3s.item.СокращенноеИмяАртефакта.phrases.txt в папку addons->sourcemod->translation->ru

Пример прикреплен

Примечания:
1) Если public OnPluginStart() нету в артефакт.sp добавьте ее сами перед public OnWar3LoadRaceOrItemOrdered2(num):
Code:
public OnPluginStart()
{
LoadTranslations("w3s.item.СокращенноеИмяАртефакта.phrases");
}
2) Сокращенное имя артефакта обязательно должно быть без пробелов и на английском; чтобы узнать/изменить сокращенное имя артефакта найдите фрагмент War3_CreateShopItem, то что в первых кавычках, перед запятой, это полное имя (как видится игрокам в магазине), во вторых, после запятой, это сокращенное имя артефакта


Title: Re: [Russian] Как переводить расы!
Post by: alex0310 on November 08, 2011, 05:18:43 AM
Я думаю, что данная статья, может пригодиться тому, кто будет это делать в первый раз.
 Format Class Functions (SourceMod Scripting) (http://wiki.alliedmods.net/Ru:Format_Class_Functions_%28SourceMod_Scripting%29)
 ???


Title: Re: [Russian] Как переводить расы!
Post by: Divix on December 07, 2011, 12:07:39 PM
Важная вещь, очень важная!

СокращенноеИмяАртефакта, Название_скила, Краткое_название_расы должны быть по английски ! Не каких русских букв, они будут отображаться на сервере по русски, но в .sp и в phrases они должны быть строго английскими.