From 1d7c441b4c20c81f606c593c07ea073b6e7600e1 Mon Sep 17 00:00:00 2001 From: GenZmeY Date: Mon, 18 Jan 2021 00:55:45 +0300 Subject: [PATCH] update localization - more text supports localization; - move hardcode to english localization file; - update the Russian localization file. --- Localization/INT/ServerExt.int | Bin 50372 -> 56220 bytes Localization/RUS/ServerExt.rus | Bin 50930 -> 56994 bytes .../Classes/ExtPerksContainer_Selection.uc | 4 +- ServerExt/Classes/ExtPlayerController.uc | 39 ++++++++++----- ServerExt/Classes/Ext_PerkBase.uc | 1 - ServerExt/Classes/Ext_TGroupBase.uc | 13 ++--- ServerExt/Classes/Ext_TGroupRegen.uc | 10 ++-- ServerExt/Classes/Ext_TraitAirborneAgent.uc | 6 ++- ServerExt/Classes/Ext_TraitBase.uc | 10 ++-- ServerExt/Classes/Ext_TraitBoomWeld.uc | 3 +- ServerExt/Classes/Ext_TraitDemoNuke.uc | 6 ++- .../Classes/Ext_TraitDemoProfessional.uc | 6 ++- ServerExt/Classes/Ext_TraitMachineGunner.uc | 6 ++- ServerExt/Classes/Ext_TraitPenetrator.uc | 6 ++- ServerExt/Classes/Ext_TraitTactician.uc | 6 ++- ServerExt/Classes/Ext_TraitWeapons.uc | 9 ++-- ServerExt/Classes/Ext_TraitZEDBase.uc | 3 +- ServerExt/Classes/Ext_TraitZED_Damage.uc | 3 +- ServerExt/Classes/Ext_TraitZED_Health.uc | 3 +- ServerExt/Classes/Ext_TraitZED_Summon.uc | 9 ++-- ServerExt/Classes/Ext_TraitZED_SummonExt.uc | 3 +- ServerExt/Classes/Ext_TraitZedative.uc | 6 ++- ServerExt/Classes/KFExtendedHUD.uc | 45 ++++++++++++------ ServerExt/Classes/MS_HUD.uc | 7 ++- ServerExt/Classes/MS_PC.uc | 12 +++-- ServerExt/Classes/MX_PongGame.uc | 12 +++-- ServerExt/Classes/UIP_PerkSelection.uc | 12 +++-- ServerExt/Classes/UIP_PerkSelectionLobby.uc | 10 ++-- ServerExt/Classes/UIR_TraitInfoPopup.uc | 19 ++++---- 29 files changed, 170 insertions(+), 99 deletions(-) diff --git a/Localization/INT/ServerExt.int b/Localization/INT/ServerExt.int index eeabb4eb2e78f3c20476d6649b3b075b7b574b68..671ab293a9c5c19d39c607d6291e6700a5a9d121 100644 GIT binary patch delta 4164 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 delta 9 QcmZ3qm-$mK^M+5y02u29O#lD@ diff --git a/ServerExt/Classes/ExtPerksContainer_Selection.uc b/ServerExt/Classes/ExtPerksContainer_Selection.uc index 1d9e337..ffbc651 100644 --- a/ServerExt/Classes/ExtPerksContainer_Selection.uc +++ b/ServerExt/Classes/ExtPerksContainer_Selection.uc @@ -1,5 +1,7 @@ class ExtPerksContainer_Selection extends KFGFxPerksContainer_Selection; +var localized string PerkChangeWarning; + function UpdatePerkSelection(byte SelectedPerkIndex) { local int i; @@ -41,7 +43,7 @@ function UpdatePendingPerkInfo(byte SelectedPerkIndex) if (KFPC != none) { PerkClass = KFPC.ActivePerkManager.UserPerks[SelectedPerkIndex]; - SetPendingPerkChanges(PerkClass.PerkName, PerkClass.GetPerkIconPath(PerkClass.CurrentLevel), "Perk changes will be applied when you die."); // TODO: Localization + SetPendingPerkChanges(PerkClass.PerkName, PerkClass.GetPerkIconPath(PerkClass.CurrentLevel), PerkChangeWarning); } } diff --git a/ServerExt/Classes/ExtPlayerController.uc b/ServerExt/Classes/ExtPlayerController.uc index 0505146..7367e81 100644 --- a/ServerExt/Classes/ExtPlayerController.uc +++ b/ServerExt/Classes/ExtPlayerController.uc @@ -1,5 +1,18 @@ Class ExtPlayerController extends KFPlayerController; +var localized string GotItemText; +var localized string KilledHimselfWith; +var localized string WasBurnedToDeath; +var localized string WasBlownIntoPeaces; +var localized string HadSuddenHeartAttack; +var localized string WasKilledBy; +var localized string WasIncineratedBy; +var localized string WasBlownUpBy; +var localized string ConnectionError; +var localized string Disconnecting; +var localized string NowViewingFrom; +var localized string ViewingFromOwnCamera; + struct FAdminCmdType { var string Cmd,Info; @@ -280,7 +293,7 @@ reliable server function ServerItemDropGet(string Item) if (DropCount>5 || Len(Item)>100) return; ++DropCount; - WorldInfo.Game.Broadcast(Self,PlayerReplicationInfo.GetHumanReadableName()$" got item: "$Item); // TODO: Localization + WorldInfo.Game.Broadcast(Self,PlayerReplicationInfo.GetHumanReadableName()@GotItemText@Item); } reliable client function ReceiveLevelUp(Ext_PerkBase Perk, int NewLevel) @@ -497,13 +510,13 @@ simulated final function string ParseSuicideMsg(string Victim, class if (Left(S,15)~="KFDT_Ballistic_") { S = Mid(S,15); // Weapon name. - return Victim$Chr(6)$"M killed himself with "$S; // TODO: Localization + return Victim$Chr(6)$"M"@KilledHimselfWith@S; } else if (class(DamType)!=None) - return Victim$Chr(6)$"M was burned to death"; + return Victim$Chr(6)$"M"@WasBurnedToDeath; else if (class(DamType)!=None) - return Victim$Chr(6)$"M was blown into pieces"; - return Victim$Chr(6)$"M had a sudden heart attack"; + return Victim$Chr(6)$"M"@WasBlownIntoPeaces; + return Victim$Chr(6)$"M"@HadSuddenHeartAttack; } simulated final function string ParseKillMsg(string Victim, string Killer, bool bFF, class DamType) @@ -515,13 +528,13 @@ simulated final function string ParseKillMsg(string Victim, string Killer, bool if (Left(S,15)~="KFDT_Ballistic_") { S = Mid(S,15); // Weapon name. - return Chr(6)$"O"$Victim$Chr(6)$"M was killed by "$Chr(6)$T$Killer$Chr(6)$"M's "$S; // TODO: Localization + return Chr(6)$"O"$Victim$Chr(6)$"M"@WasKilledBy@Chr(6)$T$Killer$Chr(6)$"M's "$S; } else if (class(DamType)!=None) - return Chr(6)$"O"$Victim$Chr(6)$"M was incinerated by "$Chr(6)$T$Killer; + return Chr(6)$"O"$Victim$Chr(6)$"M"@WasIncineratedBy@Chr(6)$T$Killer; else if (class(DamType)!=None) - return Chr(6)$"O"$Victim$Chr(6)$"M was blown up by "$Chr(6)$T$Killer; - return Chr(6)$"O"$Victim$Chr(6)$"M was killed by "$Chr(6)$T$Killer; + return Chr(6)$"O"$Victim$Chr(6)$"M"@WasBlownUpBy@Chr(6)$T$Killer; + return Chr(6)$"O"$Victim$Chr(6)$"M"@WasKilledBy@Chr(6)$T$Killer; } reliable server function ServerCamera(name NewMode) @@ -607,7 +620,7 @@ simulated reliable client event bool ShowConnectionProgressPopup(EProgressMessag case PMT_ConnectionFailure : case PMT_PeerConnectionFailure : KFExtendedHUD(myHUD).NotifyLevelChange(); - KFExtendedHUD(myHUD).ShowProgressMsg("Connection Error: "$ProgressTitle$"|"$ProgressDescription$"|Disconnecting...",true); // TODO: Localization + KFExtendedHUD(myHUD).ShowProgressMsg(ConnectionError@ProgressTitle$"|"$ProgressDescription$"|"$Disconnecting,true); return true; case PMT_DownloadProgress : KFExtendedHUD(myHUD).NotifyLevelChange(); @@ -719,7 +732,7 @@ function ViewAPlayer(int dir) if (PRI!=None) { SetViewTarget(PRI); - ClientMessage("Now viewing from "$PRI.GetHumanReadableName()); // TODO: Localization + ClientMessage(NowViewingFrom@PRI.GetHumanReadableName()); } } @@ -745,7 +758,7 @@ reliable server function ServerViewPlayerID(int ID) return; SetViewTarget(PRI); - ClientMessage("Now viewing from "$PRI.GetHumanReadableName()); // TODO: Localization + ClientMessage(NowViewingFrom@PRI.GetHumanReadableName()); if (CurrentSpectateMode==SMODE_Roaming) SpectatePlayer(SMODE_PawnFreeCam); } @@ -755,7 +768,7 @@ reliable server function SpectateRoaming() local Pawn P; P = Pawn(ViewTarget); - ClientMessage("Viewing from own camera."); // TODO: Localization + ClientMessage(ViewingFromOwnCamera); Super.SpectateRoaming(); if (P!=None) { diff --git a/ServerExt/Classes/Ext_PerkBase.uc b/ServerExt/Classes/Ext_PerkBase.uc index 6d57cfa..ac1807d 100644 --- a/ServerExt/Classes/Ext_PerkBase.uc +++ b/ServerExt/Classes/Ext_PerkBase.uc @@ -1527,7 +1527,6 @@ defaultproperties WebConfigs.Add((PropType=0,PropName="PrestigeXPReduce",UIName="Prestige XP Reduce",UIDesc="Percent amount of XP cost is reduced for each prestige (1.0 = 1/2, or 50 % of XP)")) // WebConfigs.Add((PropType=0,PropName="MinimalDataLevel",UIName="Minimal Real Level",UIDesc="Minimal level for new players or who loads from saves")) - // TODO: localize DefPerkStats(0)=(MaxValue=50,CostPerValue=1,StatType="Speed",Progress=0.4) DefPerkStats(1)=(MaxValue=1000,CostPerValue=1,StatType="Damage",Progress=0.5) DefPerkStats(2)=(MaxValue=90,CostPerValue=1,StatType="Recoil",Progress=1) diff --git a/ServerExt/Classes/Ext_TGroupBase.uc b/ServerExt/Classes/Ext_TGroupBase.uc index 8e43488..400b60d 100644 --- a/ServerExt/Classes/Ext_TGroupBase.uc +++ b/ServerExt/Classes/Ext_TGroupBase.uc @@ -1,18 +1,19 @@ // Trait group info. -Class Ext_TGroupBase extends Object - abstract; +Class Ext_TGroupBase extends Object; var() localized string GroupInfo; var() bool bLimitToOne; // Limit to only one trait for this group. +var localized string TraitGroupText; +var localized string MaxText; -static function string GetUIInfo(Ext_PerkBase Perk) +function string GetUIInfo(Ext_PerkBase Perk) { - return (Default.bLimitToOne ? Default.GroupInfo$" (MAX 1)" : Default.GroupInfo); + return (Default.bLimitToOne ? Default.GroupInfo$" ("$MaxText$" 1)" : Default.GroupInfo); } -static function string GetUIDesc() +function string GetUIDesc() { - return Default.GroupInfo$" trait group"; // TODO: Localization + return Default.GroupInfo@TraitGroupText; } // See if group is already using up limitation. diff --git a/ServerExt/Classes/Ext_TGroupRegen.uc b/ServerExt/Classes/Ext_TGroupRegen.uc index a3a6a51..1f20ba4 100644 --- a/ServerExt/Classes/Ext_TGroupRegen.uc +++ b/ServerExt/Classes/Ext_TGroupRegen.uc @@ -1,13 +1,15 @@ class Ext_TGroupRegen extends Ext_TGroupBase; -static function string GetUIInfo(Ext_PerkBase Perk) +var localized string GroupDescription; + +function string GetUIInfo(Ext_PerkBase Perk) { - return Default.GroupInfo$" (MAX "$GetMaxLimit(Perk)$")"; + return Default.GroupInfo@"("$MaxText@GetMaxLimit(Perk)$")"; } -static function string GetUIDesc() +function string GetUIDesc() { - return Super.GetUIDesc()$"|To buy additional regen abilities:|-Prestige level 1 + Perk level 100 = MAX 2 traits|-Prestige level 5 + Perk level 150 = MAX 3 traits"; // TODO: Localization + return Super.GetUIDesc()$"|"$GroupDescription; } static function bool GroupLimited(Ext_PerkBase Perk, class Trait) diff --git a/ServerExt/Classes/Ext_TraitAirborneAgent.uc b/ServerExt/Classes/Ext_TraitAirborneAgent.uc index e59cd11..01b0a2e 100644 --- a/ServerExt/Classes/Ext_TraitAirborneAgent.uc +++ b/ServerExt/Classes/Ext_TraitAirborneAgent.uc @@ -1,11 +1,13 @@ Class Ext_TraitAirborneAgent extends Ext_TraitBase; -static function string GetPerkDescription() +var localized string GroupDescription; + +function string GetPerkDescription() { local string S; S = Super.GetPerkDescription(); - S $= "|Trait requires prestige level: #{FF4000}1"; // TODO: Localization + S $= "|"$GroupDescription; return S; } diff --git a/ServerExt/Classes/Ext_TraitBase.uc b/ServerExt/Classes/Ext_TraitBase.uc index 6ad2d5a..e6558f4 100644 --- a/ServerExt/Classes/Ext_TraitBase.uc +++ b/ServerExt/Classes/Ext_TraitBase.uc @@ -3,6 +3,10 @@ Class Ext_TraitBase extends Object config(ServerExt) DependsOn(ExtWebAdmin_UI); +var localized string MaxLevelText; +var localized string LevelCostText; +var localized string MinPerkLevelText; + var array WebConfigs; var() class TraitGroup; // With groups you can prevent player from buying multiple traits of same group. @@ -46,7 +50,7 @@ static function bool MeetsRequirements(byte Lvl, Ext_PerkBase Perk) } // Return UI description player will see before bying this trait. -static function string GetPerkDescription() +function string GetPerkDescription() { local string S; local byte i; @@ -57,9 +61,9 @@ static function string GetPerkDescription() S = string(GetTraitCost(i)); else S $= ", "$GetTraitCost(i); } - S = "Max level: #{9FF781}"$Default.NumLevels$"#{DEF}|Level costs: #{F3F781}"$S$"#{DEF}"; // TODO: Localization + S = MaxLevelText@"#{9FF781}"$Default.NumLevels$"#{DEF}|"$LevelCostText@"#{F3F781}"$S$"#{DEF}"; if (Default.MinLevel>0) - S = "Min perk level: #{FF4000}"$Default.MinLevel$"#{DEF}|"$S; // TODO: Localization + S = MinPerkLevelText@"#{FF4000}"$Default.MinLevel$"#{DEF}|"$S; return Default.Description$"||"$S; } diff --git a/ServerExt/Classes/Ext_TraitBoomWeld.uc b/ServerExt/Classes/Ext_TraitBoomWeld.uc index 0fc285e..c9a1b7b 100644 --- a/ServerExt/Classes/Ext_TraitBoomWeld.uc +++ b/ServerExt/Classes/Ext_TraitBoomWeld.uc @@ -1,5 +1,4 @@ -Class Ext_TraitBoomWeld extends Ext_TraitBase - abstract; +Class Ext_TraitBoomWeld extends Ext_TraitBase; static function TraitActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data) { diff --git a/ServerExt/Classes/Ext_TraitDemoNuke.uc b/ServerExt/Classes/Ext_TraitDemoNuke.uc index 6864e4c..305b808 100644 --- a/ServerExt/Classes/Ext_TraitDemoNuke.uc +++ b/ServerExt/Classes/Ext_TraitDemoNuke.uc @@ -1,11 +1,13 @@ Class Ext_TraitDemoNuke extends Ext_TraitBase; -static function string GetPerkDescription() +var localized string GroupDescription; + +function string GetPerkDescription() { local string S; S = Super.GetPerkDescription(); - S $= "|Trait requires prestige level: #{FF4000}3"; // TODO: Localization + S $= "|"$GroupDescription; return S; } diff --git a/ServerExt/Classes/Ext_TraitDemoProfessional.uc b/ServerExt/Classes/Ext_TraitDemoProfessional.uc index 993d480..07b5e56 100644 --- a/ServerExt/Classes/Ext_TraitDemoProfessional.uc +++ b/ServerExt/Classes/Ext_TraitDemoProfessional.uc @@ -1,11 +1,13 @@ Class Ext_TraitDemoProfessional extends Ext_TraitBase; -static function string GetPerkDescription() +var localized string GroupDescription; + +function string GetPerkDescription() { local string S; S = Super.GetPerkDescription(); - S $= "|Trait requires prestige level: #{FF4000}1"; // TODO: Localization + S $= "|"$GroupDescription; return S; } diff --git a/ServerExt/Classes/Ext_TraitMachineGunner.uc b/ServerExt/Classes/Ext_TraitMachineGunner.uc index 789b26b..0177a73 100644 --- a/ServerExt/Classes/Ext_TraitMachineGunner.uc +++ b/ServerExt/Classes/Ext_TraitMachineGunner.uc @@ -1,11 +1,13 @@ Class Ext_TraitMachineGunner extends Ext_TraitBase; -static function string GetPerkDescription() +var localized string GroupDescription; + +function string GetPerkDescription() { local string S; S = Super.GetPerkDescription(); - S $= "|Trait requires prestige level: #{FF4000}2"; // TODO: Localization + S $= "|"$GroupDescription; return S; } diff --git a/ServerExt/Classes/Ext_TraitPenetrator.uc b/ServerExt/Classes/Ext_TraitPenetrator.uc index adf0baf..fe4b39b 100644 --- a/ServerExt/Classes/Ext_TraitPenetrator.uc +++ b/ServerExt/Classes/Ext_TraitPenetrator.uc @@ -1,11 +1,13 @@ Class Ext_TraitPenetrator extends Ext_TraitBase; -static function string GetPerkDescription() +var localized string GroupDescription; + +function string GetPerkDescription() { local string S; S = Super.GetPerkDescription(); - S $= "|Trait requires prestige level: #{FF4000}2"; // TODO: Localization + S $= "|"$GroupDescription; return S; } diff --git a/ServerExt/Classes/Ext_TraitTactician.uc b/ServerExt/Classes/Ext_TraitTactician.uc index c7383e2..c8dc143 100644 --- a/ServerExt/Classes/Ext_TraitTactician.uc +++ b/ServerExt/Classes/Ext_TraitTactician.uc @@ -1,11 +1,13 @@ Class Ext_TraitTactician extends Ext_TraitBase; -static function string GetPerkDescription() +var localized string GroupDescription; + +function string GetPerkDescription() { local string S; S = Super.GetPerkDescription(); - S $= "|Trait requires prestige level: #{FF4000}1"; // TODO: Localization + S $= "|"$GroupDescription; return S; } diff --git a/ServerExt/Classes/Ext_TraitWeapons.uc b/ServerExt/Classes/Ext_TraitWeapons.uc index faad85f..ddf0b4e 100644 --- a/ServerExt/Classes/Ext_TraitWeapons.uc +++ b/ServerExt/Classes/Ext_TraitWeapons.uc @@ -1,5 +1,6 @@ -Class Ext_TraitWeapons extends Ext_TraitBase - abstract; +Class Ext_TraitWeapons extends Ext_TraitBase; + +var localized string GroupDescription; struct FLevelFX { @@ -22,9 +23,9 @@ static final function bool HasMaxCarry(Ext_PerkBase Perk) return (i==-1 || Perk.PerkTraits[i].CurrentLevel>=3); } -static function string GetPerkDescription() +function string GetPerkDescription() { - return Super.GetPerkDescription()$"|- Level 4 requires perk level 50 and level 3 carry capacity trait!"; // TODO: Localization + return Super.GetPerkDescription()$"|"$GroupDescription; } static function TraitActivate(Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data) diff --git a/ServerExt/Classes/Ext_TraitZEDBase.uc b/ServerExt/Classes/Ext_TraitZEDBase.uc index ba51df8..bdaee5b 100644 --- a/ServerExt/Classes/Ext_TraitZEDBase.uc +++ b/ServerExt/Classes/Ext_TraitZEDBase.uc @@ -1,5 +1,4 @@ -Class Ext_TraitZEDBase extends Ext_TraitBase - abstract; +Class Ext_TraitZEDBase extends Ext_TraitBase; var class BaseTrait; var bool bIsSummoner; diff --git a/ServerExt/Classes/Ext_TraitZED_Damage.uc b/ServerExt/Classes/Ext_TraitZED_Damage.uc index 7b6bd91..31725be 100644 --- a/ServerExt/Classes/Ext_TraitZED_Damage.uc +++ b/ServerExt/Classes/Ext_TraitZED_Damage.uc @@ -1,5 +1,4 @@ -Class Ext_TraitZED_Damage extends Ext_TraitZEDBase - abstract; +Class Ext_TraitZED_Damage extends Ext_TraitZEDBase; var array DamList; diff --git a/ServerExt/Classes/Ext_TraitZED_Health.uc b/ServerExt/Classes/Ext_TraitZED_Health.uc index af9dccf..280625f 100644 --- a/ServerExt/Classes/Ext_TraitZED_Health.uc +++ b/ServerExt/Classes/Ext_TraitZED_Health.uc @@ -1,5 +1,4 @@ -Class Ext_TraitZED_Health extends Ext_TraitZEDBase - abstract; +Class Ext_TraitZED_Health extends Ext_TraitZEDBase; var array HPList; diff --git a/ServerExt/Classes/Ext_TraitZED_Summon.uc b/ServerExt/Classes/Ext_TraitZED_Summon.uc index 25d8dfe..4b8982a 100644 --- a/ServerExt/Classes/Ext_TraitZED_Summon.uc +++ b/ServerExt/Classes/Ext_TraitZED_Summon.uc @@ -1,5 +1,6 @@ -Class Ext_TraitZED_Summon extends Ext_TraitZEDBase - abstract; +Class Ext_TraitZED_Summon extends Ext_TraitZEDBase; + +var localized string GroupDescription; struct FZEDTypes { @@ -10,13 +11,13 @@ var config array ZedTypes; var config float ZedRespawnTime; var config int FinalLevelPrestige; -static function string GetPerkDescription() +function string GetPerkDescription() { local string S; S = Super.GetPerkDescription(); if (Default.FinalLevelPrestige>0) - S $= "|Level 6 requires prestige level: #{FF4000}"$Default.FinalLevelPrestige; // TODO: Localization + S $= "|"$GroupDescription@"#{FF4000}"$Default.FinalLevelPrestige; return S; } diff --git a/ServerExt/Classes/Ext_TraitZED_SummonExt.uc b/ServerExt/Classes/Ext_TraitZED_SummonExt.uc index e75fa23..dd695f0 100644 --- a/ServerExt/Classes/Ext_TraitZED_SummonExt.uc +++ b/ServerExt/Classes/Ext_TraitZED_SummonExt.uc @@ -1,5 +1,4 @@ -Class Ext_TraitZED_SummonExt extends Ext_TraitZEDBase - abstract; +Class Ext_TraitZED_SummonExt extends Ext_TraitZEDBase; static function ApplyEffectOn(KFPawn_Human Player, Ext_PerkBase Perk, byte Level, optional Ext_TraitDataStore Data) { diff --git a/ServerExt/Classes/Ext_TraitZedative.uc b/ServerExt/Classes/Ext_TraitZedative.uc index e59e01b..85486a5 100644 --- a/ServerExt/Classes/Ext_TraitZedative.uc +++ b/ServerExt/Classes/Ext_TraitZedative.uc @@ -1,11 +1,13 @@ Class Ext_TraitZedative extends Ext_TraitBase; -static function string GetPerkDescription() +var localized string GroupDescription; + +function string GetPerkDescription() { local string S; S = Super.GetPerkDescription(); - S $= "|Trait requires prestige level: #{FF4000}2"; // TODO: Localization + S $= "|"$GroupDescription; return S; } diff --git a/ServerExt/Classes/KFExtendedHUD.uc b/ServerExt/Classes/KFExtendedHUD.uc index 21e43c2..b07c394 100644 --- a/ServerExt/Classes/KFExtendedHUD.uc +++ b/ServerExt/Classes/KFExtendedHUD.uc @@ -2,6 +2,23 @@ //class KFExtendedHUD extends KFHUDBase; class KFExtendedHUD extends KFGFxHudWrapper; +var localized string PleaseWaitForDownload; +var localized string PressEscToCancel; +var localized string AreYouSureToCancel; +var localized string PressEscToConfirm; +var localized string YouRespawnIn; +var localized string ITR_CommonText; +var localized string ITR_UncommonText; +var localized string ITR_RareText; +var localized string ITR_LegendaryText; +var localized string ITR_ExceedinglyRareText; +var localized string ITR_MythicalText; +var localized string ITR_DefaultText; +var localized string NewItemText; +var localized string SomeoneText; +var localized string KillText; +var localized string KillsText; + var array MyCurrentPet; struct FDeathMessageType @@ -296,7 +313,7 @@ event PostRender() bShowProgress = false; if (PlayerOwner.Player==None) { - ShowProgressMsg("Downloading contents for next map, please wait...|Press [Escape] key to cancel connection!"); // TODO: Localization + ShowProgressMsg(PleaseWaitForDownload$"|"$PressEscToCancel); RenderProgress(); } else if (bProgressDC) @@ -312,7 +329,7 @@ simulated function CancelConnection() { if (!bConfirmDisconnect) { - ShowProgressMsg("Are you sure you want to cancel connection?|Press [Escape] again to confirm..."); // TODO: Localization + ShowProgressMsg(AreYouSureToCancel$"|"$PressEscToConfirm); bConfirmDisconnect = true; } else class'Engine'.Static.GetEngine().GameViewport.ConsoleCommand("Disconnect"); @@ -324,7 +341,7 @@ final function DrawRespawnCounter() local string S; Canvas.Font = GUIStyle.PickFont(GUIStyle.DefaultFontSize+1,Sc); - S = "You are about to respawn in "$class'UI_Scoreboard'.Static.FormatTimeSM(EPRI.RespawnCounter); + S = YouRespawnIn@class'UI_Scoreboard'.Static.FormatTimeSM(EPRI.RespawnCounter); Canvas.SetDrawColor(250,150,150,255); Canvas.TextSize(S,XL,YL,Sc,Sc); Canvas.SetPos((Canvas.ClipX-XL)*0.5,Canvas.ClipY*0.075); @@ -366,8 +383,8 @@ final function RenderKillMsg() if (KillMessages[i].bDamage) S = "-"$KillMessages[i].Counter$" HP "$KillMessages[i].Name; else if (KillMessages[i].bLocal) - S = "+"$KillMessages[i].Counter@KillMessages[i].Name$(KillMessages[i].Counter>1 ? " kills" : " kill"); - else S = (KillMessages[i].OwnerPRI!=None ? KillMessages[i].OwnerPRI.GetHumanReadableName() : "Someone")$" +"$KillMessages[i].Counter@KillMessages[i].Name$(KillMessages[i].Counter>1 ? " kills" : " kill"); + S = "+"$KillMessages[i].Counter@KillMessages[i].Name@(KillMessages[i].Counter>1 ? KillsText : KillText); + else S = (KillMessages[i].OwnerPRI!=None ? KillMessages[i].OwnerPRI.GetHumanReadableName() : SomeoneText)@"+"$KillMessages[i].Counter@KillMessages[i].Name@(KillMessages[i].Counter>1 ? KillsText : KillText); Canvas.SetPos(X,Y); Canvas.DrawColor = KillMessages[i].MsgColor; T = (1.f - (T/6.f)) * 255.f; @@ -1123,7 +1140,7 @@ simulated function SearchInventoryForNewItem() { NewItems.Insert(0,1); NewItems[0].Icon = Texture2D(DynamicLoadObject(OnlineSub.ItemPropertiesList[j].IconURL,Class'Texture2D')); - NewItems[0].Item = OnlineSub.ItemPropertiesList[j].Name$" ["$RarityStr(OnlineSub.ItemPropertiesList[j].Rarity)$"]"; + NewItems[0].Item = OnlineSub.ItemPropertiesList[j].Name@"["$RarityStr(OnlineSub.ItemPropertiesList[j].Rarity)$"]"; NewItems[0].MsgTime = WorldInfo.TimeSeconds; ExtPlayerController(Owner).ServerItemDropGet(NewItems[0].Item); } @@ -1136,13 +1153,13 @@ simulated final function string RarityStr(byte R) { switch (R) { - case ITR_Common: return "Common"; - case ITR_Uncommon: return "Uncommon +"; - case ITR_Rare: return "Rare ++"; - case ITR_Legendary: return "Legendary +++"; - case ITR_ExceedinglyRare: return "Exceedingly Rare ++++"; - case ITR_Mythical: return "Mythical !!!!"; - default: return "Unknown -"; + case ITR_Common: return ITR_CommonText; + case ITR_Uncommon: return ITR_UncommonText; + case ITR_Rare: return ITR_RareText; + case ITR_Legendary: return ITR_LegendaryText; + case ITR_ExceedinglyRare: return ITR_ExceedinglyRareText; + case ITR_Mythical: return ITR_MythicalText; + default: return ITR_DefaultText; } } @@ -1184,7 +1201,7 @@ simulated final function DrawItemsList() else */XS = XPos-XS; Canvas.SetPos(XS,YPos); - Canvas.DrawText("New Item:",,FontScale,FontScale); + Canvas.DrawText(NewItemText,,FontScale,FontScale); Canvas.SetPos(XS,YPos+(YSize*0.5)); Canvas.DrawText(NewItems[i].Item,,FontScale,FontScale); diff --git a/ServerExt/Classes/MS_HUD.uc b/ServerExt/Classes/MS_HUD.uc index 03921a6..fdbe788 100644 --- a/ServerExt/Classes/MS_HUD.uc +++ b/ServerExt/Classes/MS_HUD.uc @@ -1,5 +1,8 @@ Class MS_HUD extends HUD; +var localized string PressEscToCancel; +var localized string AdjustSensetive; + var bool bShowProgress,bProgressDC; var array ProgressLines; var MX_MiniGameBase ActiveGame; @@ -37,7 +40,7 @@ final function ShowProgressMsg(string S, optional bool bDis) ParseStringIntoArray(S,ProgressLines,"|",false); bProgressDC = bDis; if (!bDis) - ProgressLines.AddItem("Press [Esc] to cancel connection"); // TODO: Localization + ProgressLines.AddItem(PressEscToCancel); } final function RenderProgress() @@ -60,7 +63,7 @@ final function RenderProgress() Y+=YL; } Canvas.SetPos(Canvas.ClipX*0.2,Canvas.ClipY*0.91); - Canvas.DrawText("Use Mouse scroll to adjust sensitivity: "$(ActiveGame.Sensitivity*100.f)$"%",,Sc,Sc); // TODO: Localization + Canvas.DrawText(AdjustSensetive@(ActiveGame.Sensitivity*100.f)$"%",,Sc,Sc); } defaultproperties diff --git a/ServerExt/Classes/MS_PC.uc b/ServerExt/Classes/MS_PC.uc index 3f9ef4d..8eb49ca 100644 --- a/ServerExt/Classes/MS_PC.uc +++ b/ServerExt/Classes/MS_PC.uc @@ -1,5 +1,11 @@ Class MS_PC extends KFPlayerController; +var localized string ConnectingTo; +var localized string ConnectionAborted; +var localized string UserAbortedConnection; +var localized string ConnectionError; +var localized string Disconnecting; + var MS_PendingData TravelData; var byte ConnectionCounter; var bool bConnectionFailed; @@ -18,7 +24,7 @@ event PlayerTick(float DeltaTime) { if (TravelData.PendingURL!="") { - MS_HUD(myHUD).ShowProgressMsg("Connecting to "$TravelData.PendingURL); // TODO: Localization + MS_HUD(myHUD).ShowProgressMsg(ConnectingTo@TravelData.PendingURL); ConsoleCommand("Open "$TravelData.PendingURL); } if (TravelData.PendingSong!=None) @@ -64,7 +70,7 @@ final function AbortConnection() HandleNetworkError(false); else { - ShowConnectionProgressPopup(PMT_ConnectionFailure,"Connection aborted","User aborted connection...",true); // TODO: Localization + ShowConnectionProgressPopup(PMT_ConnectionFailure,ConnectionAborted,UserAbortedConnection,true); ConsoleCommand("Cancel"); } } @@ -80,7 +86,7 @@ reliable client event bool ShowConnectionProgressPopup(EProgressMessageType Prog case PMT_ConnectionFailure: case PMT_PeerConnectionFailure: bConnectionFailed = true; - MS_HUD(myHUD).ShowProgressMsg("Connection Error: "$ProgressTitle$"|"$ProgressDescription$"|Disconnecting...",true); // TODO: Localization + MS_HUD(myHUD).ShowProgressMsg(ConnectionError@ProgressTitle$"|"$ProgressDescription$"|"$Disconnecting,true); SetTimer(4,false,'HandleNetworkError'); return true; case PMT_DownloadProgress: diff --git a/ServerExt/Classes/MX_PongGame.uc b/ServerExt/Classes/MX_PongGame.uc index a7220a0..4f83ed8 100644 --- a/ServerExt/Classes/MX_PongGame.uc +++ b/ServerExt/Classes/MX_PongGame.uc @@ -1,5 +1,9 @@ Class MX_PongGame extends MX_MiniGameBase; +var localized string PressToStartText; +var localized string ScoreText; +var localized string PlaysText; + var int Score,NumPlays; var vector PlayerPad,EnemyPad,BallPos,BallVel,BallTrajectory; @@ -84,21 +88,21 @@ function Render(float XPos, float YPos, float XSize, float YSize) // Score H = WorldInfo.RealTimeSeconds * 0.6; - Canvas.Font = Canvas.GetDefaultCanvasFont(); + Canvas.Font = Font(DynamicLoadObject("UI_Canvas_Fonts.Font_Main",class'Font')); W = FMin(YSize/200.f,3.f); if (!bGameStarted) { Canvas.SetDrawColor(128,64,64,Abs(Sin(H))*96.f+128); Canvas.SetPos(XPos+XSize*0.4,YPos+YSize*0.2); - Canvas.DrawText("Press Fire to start pong",,W,W); // TODO: Localization + Canvas.DrawText(PressToStartText,,W,W); } else { Canvas.SetDrawColor(255,255,128,Abs(Sin(H))*96.f); Canvas.SetPos(XPos+XSize*0.2,YPos+YSize*0.22); - Canvas.DrawText("Score: "$string(Score),,W,W); // TODO: Localization + Canvas.DrawText(ScoreText@string(Score),,W,W); Canvas.SetPos(XPos+XSize*0.2,YPos+YSize*0.68); - Canvas.DrawText("Plays: "$string(NumPlays),,W,W); // TODO: Localization + Canvas.DrawText(PlaysText@string(NumPlays),,W,W); } // Borders diff --git a/ServerExt/Classes/UIP_PerkSelection.uc b/ServerExt/Classes/UIP_PerkSelection.uc index fa22e99..45f7060 100644 --- a/ServerExt/Classes/UIP_PerkSelection.uc +++ b/ServerExt/Classes/UIP_PerkSelection.uc @@ -114,7 +114,7 @@ function Timer() } } OldPerkPoints = PendingPerk.CurrentSP; - PerkLabel.SetText(Level$PendingPerk.GetLevelString()@PendingPerk.PerkName$" ("$Points$" "$PendingPerk.CurrentSP$")"); + PerkLabel.SetText(Level$PendingPerk.GetLevelString()@PendingPerk.PerkName@"("$Points@PendingPerk.CurrentSP$")"); for (i=0; i > CatList; local class N; + local Ext_TGroupBase N_obj; local int i,j; local class TC; local string S; @@ -176,8 +177,9 @@ final function UpdateTraits() N = CatList[j]; if (j>0) { - TraitsList.AddLine("--"$N.Static.GetUIInfo(PendingPerk),-1); - TraitsList.ToolTip.AddItem(N.Static.GetUIDesc()); + N_obj = new N; + TraitsList.AddLine("--"$N_obj.GetUIInfo(PendingPerk),-1); + TraitsList.ToolTip.AddItem(N_obj.GetUIDesc()); } for (i=0; i"); // TODO: Localization + PerkLabel.SetText(NoPerkSelectedText); } } else if (PendingPerk!=None && OldPerkPoints!=PendingPerk.CurrentSP) { OldPerkPoints = PendingPerk.CurrentSP; - PerkLabel.SetText("Lv"$PendingPerk.GetLevelString()@PendingPerk.PerkName$" (Points: "$PendingPerk.CurrentSP$")"); + PerkLabel.SetText(LevelText$PendingPerk.GetLevelString()@PendingPerk.PerkName@"("$PointsText@PendingPerk.CurrentSP$")"); for (i=0; i MyTrait; +var class MyTraitClass; +var Ext_TraitBase MyTrait; var int TraitIndex; var Ext_PerkBase MyPerk; var int OldPoints,OldLevel; @@ -33,14 +34,16 @@ function CloseMenu() Super.CloseMenu(); MyPerk = None; MyTrait = None; + MyTraitClass = None; SetTimer(0,false); } function ShowTraitInfo(int Index, Ext_PerkBase Perk) { - MyTrait = Perk.PerkTraits[Index].TraitType; - WindowTitle = MyTrait.Default.TraitName; - TraitInfo.SetText(MyTrait.Static.GetPerkDescription()); + MyTraitClass = Perk.PerkTraits[Index].TraitType; + MyTrait = new MyTraitClass; + WindowTitle = MyTraitClass.Default.TraitName; + TraitInfo.SetText(MyTrait.GetPerkDescription()); OldPoints = -1; OldLevel = -1; @@ -58,15 +61,15 @@ function Timer() { OldPoints = MyPerk.CurrentSP; OldLevel = MyPerk.PerkTraits[TraitIndex].CurrentLevel; - if (OldLevel>=MyTrait.Default.NumLevels) + if (OldLevel>=MyTraitClass.Default.NumLevels) { YesButton.ButtonText = ButtonBuyDisabledText; YesButton.SetDisabled(true); return; } - Cost = MyTrait.Static.GetTraitCost(OldLevel); + Cost = MyTraitClass.Static.GetTraitCost(OldLevel); YesButton.ButtonText = ButtonBuyText$" ("$Cost$")"; - if (Cost>OldPoints || !MyTrait.Static.MeetsRequirements(OldLevel,MyPerk)) + if (Cost>OldPoints || !MyTraitClass.Static.MeetsRequirements(OldLevel,MyPerk)) YesButton.SetDisabled(true); else YesButton.SetDisabled(false); } @@ -77,7 +80,7 @@ function ButtonClicked(KFGUI_Button Sender) switch (Sender.ID) { case 'Yes': - ExtPlayerController(GetPlayer()).BoughtTrait(MyPerk.Class,MyTrait); + ExtPlayerController(GetPlayer()).BoughtTrait(MyPerk.Class,MyTraitClass); break; case 'No': DoClose();