Author Topic: [Russian] Как переводить расы!  (Read 5062 times)

Arturius

  • Moderator
  • Full Member
  • *****
  • Posts: 155
    • View Profile
    • Email
[Russian] Как переводить расы!
« on: November 04, 2011, 09:06:53 AM »
Прежде всего, надо отредактировать код в файле расы.
Откройте файл <ваша_раса>.sp текстовым редактором.
Добавьте в функцию public OnPluginStart() следующую строку:

Code: [Select]
LoadTranslations("w3s.race.<Краткое_название_расы>.phrases");
Где <Краткое_название_расы> - имя вашей расы. Например: paladin => w3s.race.paladin.phrases

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

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

Code: [Select]
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: [Select]
"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: [Select]
"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: [Select]
"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
« Last Edit: November 04, 2011, 11:51:29 AM by Arturius »

Ownz

  • Developer
  • Administrator
  • Hero Member
  • *****
  • Posts: 2437
  • chmod -R 777 *
    • View Profile
    • OwnageClan
Re: [Russian] Как переводить расы!
« Reply #1 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
« Last Edit: November 04, 2011, 09:22:44 AM by Ownz »

Arturius

  • Moderator
  • Full Member
  • *****
  • Posts: 155
    • View Profile
    • Email
Re: [Russian] Как переводить расы!
« Reply #2 on: November 04, 2011, 11:23:06 AM »
Thanks! I have corrected the translation of a tutorial and have added your comment.

Divix

  • Sr. Member
  • ****
  • Posts: 288
    • ICQ Messenger - 472383642
    • View Profile
Re: [Russian] Как переводить расы!
« Reply #3 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: [Select]
"Phrases"
{
"СокращенноеИмяАртефакта_ItemName"
{
"ru" "Название как оно будет видно в игре"
}
"СокращенноеИмяАртефакта_ItemDesc"
{
"ru" "Описание как оно будет видно в игре"
}
}
6) Сохраняем и заливаем w3s.item.СокращенноеИмяАртефакта.phrases.txt в папку addons->sourcemod->translation->ru

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

Примечания:
1) Если public OnPluginStart() нету в артефакт.sp добавьте ее сами перед public OnWar3LoadRaceOrItemOrdered2(num):
Code: [Select]
public OnPluginStart()
{
LoadTranslations("w3s.item.СокращенноеИмяАртефакта.phrases");
}
2) Сокращенное имя артефакта обязательно должно быть без пробелов и на английском; чтобы узнать/изменить сокращенное имя артефакта найдите фрагмент War3_CreateShopItem, то что в первых кавычках, перед запятой, это полное имя (как видится игрокам в магазине), во вторых, после запятой, это сокращенное имя артефакта
« Last Edit: November 04, 2011, 01:19:18 PM by Divix »
Не пишите ПМ, лучше в асю (даже если я там оффлайн).

alex0310

  • Full Member
  • ***
  • Posts: 185
    • View Profile
    • http://forum.cmepiii.ru/
Re: [Russian] Как переводить расы!
« Reply #4 on: November 08, 2011, 05:18:43 AM »
Я думаю, что данная статья, может пригодиться тому, кто будет это делать в первый раз.
Format Class Functions (SourceMod Scripting)
 ???

Divix

  • Sr. Member
  • ****
  • Posts: 288
    • ICQ Messenger - 472383642
    • View Profile
Re: [Russian] Как переводить расы!
« Reply #5 on: December 07, 2011, 12:07:39 PM »
Важная вещь, очень важная!

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