Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Localization support & Chinese Translation #47

Open
wants to merge 5 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 48 additions & 0 deletions GameData/SolverEngines/Localization/en-us.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
Localization
{
en-us
{
#SolverEngines_EnginesGUI = Engines GUI
#SolverEngines_AmbientTemperature = Ambient Temperature
#SolverEngines_AmbientPressure = Ambient Pressure
#SolverEngines_RecoveryTemperature = Recovery Temperature
#SolverEngines_RecoveryPressure = Recovery Pressure
#SolverEngines_Inlet = Inlet
#SolverEngines_TPR = TPR
#SolverEngines_InletPressureRatio = Inlet Pressure Ratio
#SolverEngines_Thrust = Thrust
#SolverEngines_TWR = TWR
#SolverEngines_ThrustDrag = Thrust / Drag
#SolverEngines_SpecificImpulse = Specific Impulse
#SolverEngines_TSFC = TSFC
#SolverEngines_Settings = Settings

#SolverEngines_EnginesFlightGUISettings = Engines Flight GUI Settings
#SolverEngines_ShowAmbientTemperature = Show Ambient Temperature
#SolverEngines_ShowAmbientPressure = Show Ambient Pressure
#SolverEngines_ShowInletPercentage = Show Inlet Percentage
#SolverEngines_ShowRecoveryTemperature = Show Recovery Temperature
#SolverEngines_ShowRecoveryPressure = Show Recovery Pressure
#SolverEngines_ShowTotalPressureRecovery = Show Total Pressure Recovery
#SolverEngines_ShowThrust = Show Thrust
#SolverEngines_ShowThrusttoWeightRatio = Show Thrust to Weight Ratio
#SolverEngines_ShowThrustDrag = Show Thrust / Drag
#SolverEngines_ShowIsp = Show Isp
#SolverEngines_ShowTSFC = Show TSFC

#SolverEngines_EnginesGUIUnitsSettings = Engines GUI Units Settings

#SolverEngines_Units = Units

#SolverEngines_OverallTPR = Overall TPR
#SolverEngines_AJEInlet = AJE Inlet
#SolverEngines_IntakeArea = Intake Area
#SolverEngines_IntakeResource = Intake Resource

#SolverEngines_CurrentThrottle = Current Throttle
#SolverEngines_MassFlow = Mass Flow
#SolverEngines_EngineInternalTemp = Eng. Internal Temp
#SolverEngines_PartMelted = <<1>> melted its internals from heat.
#SolverEngines_EIT = Eng. Int.
}
}
48 changes: 48 additions & 0 deletions GameData/SolverEngines/Localization/zh-cn.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
Localization
{
zh-cn
{
#SolverEngines_EnginesGUI = 引擎界面
#SolverEngines_AmbientTemperature = 环境温度
#SolverEngines_AmbientPressure = 环境压力
#SolverEngines_RecoveryTemperature = 恢复温度
#SolverEngines_RecoveryPressure = 压力恢复
#SolverEngines_Inlet = 进气道
#SolverEngines_TPR = 总压恢复
#SolverEngines_InletPressureRatio = 进气道压力比
#SolverEngines_Thrust = 推力
#SolverEngines_TWR = 推重比
#SolverEngines_ThrustDrag = 推力/阻力
#SolverEngines_SpecificImpulse = 比冲
#SolverEngines_TSFC = 推力燃耗率
#SolverEngines_Settings = 设置

#SolverEngines_EnginesFlightGUISettings = 引擎飞行界面设置
#SolverEngines_ShowAmbientTemperature = 显示环境温度
#SolverEngines_ShowAmbientPressure = 显示环境压力
#SolverEngines_ShowInletPercentage = 显示进气百分比
#SolverEngines_ShowRecoveryTemperature = 显示恢复温度
#SolverEngines_ShowRecoveryPressure = 显示压力恢复
#SolverEngines_ShowTotalPressureRecovery = 显示总压恢复
#SolverEngines_ShowThrust = 显示推力
#SolverEngines_ShowThrusttoWeightRatio = 显示推重比
#SolverEngines_ShowThrustDrag = 显示推力/阻力
#SolverEngines_ShowIsp = 显示比冲
#SolverEngines_ShowTSFC = 显示推力燃料消耗率

#SolverEngines_EnginesGUIUnitsSettings = 引擎界面单位设置

#SolverEngines_Units = 单位

#SolverEngines_OverallTPR = 整体推力燃耗率
#SolverEngines_AJEInlet = AJE进气
#SolverEngines_IntakeArea = 进气面积
#SolverEngines_IntakeResource = 进气资源

#SolverEngines_CurrentThrottle = 当前阀门
#SolverEngines_MassFlow = 质量流
#SolverEngines_EngineInternalTemp = 引擎内部温度
#SolverEngines_PartMelted = <<1>> 因内部温度过高已熔毁.
#SolverEngines_EIT = 引擎内温
}
}
10 changes: 5 additions & 5 deletions SolverEngines/AJEInlet.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ public class AJEInlet : ModuleResourceIntake, IModuleInfo

[KSPField(isPersistant = false, guiActive = true, guiFormat = "F3")]
public float cosine = 1f;
[KSPField(isPersistant = false, guiActive = true, guiName = "Overall TPR", guiFormat = "P2")]
[KSPField(isPersistant = false, guiActive = true, guiName = "#SolverEngines_OverallTPR", guiFormat = "P2")] // "Overall TPR"
public float overallTPR = 1f;

// replace some original things
Expand Down Expand Up @@ -121,12 +121,12 @@ public Callback<Rect> GetDrawModulePanelCallback()

public string GetModuleTitle()
{
return "AJE Inlet";
return LocalizationStrings.str_AJEInlet; // "AJE Inlet"
}

public string GetPrimaryField()
{
return "<b>Intake Area: </b>" + (Area).ToString("N4") + " m^2";
return $"<b>{LocalizationStrings.str_IntakeArea}: </b>" + (Area).ToString("N4") + " m^2"; // Intake Area
}

public override string GetInfo()
Expand All @@ -150,8 +150,8 @@ public override string GetInfo()
Debug.LogWarning("AJEInlet on part " + part.name + " has inletDescription but no inletTitle. inletDescription will not be displayed.");
}

output += "<b>Intake Resource: </b>" + resourceName + "\n";
output += "<b>Intake Area: </b>" + (Area).ToString("N4") + " m^2";
output += $"<b>{LocalizationStrings.str_IntakeResource}: </b>" + resourceName + "\n"; // Intake Resource
output += $"<b>{LocalizationStrings.str_IntakeArea}: </b>" + (Area).ToString("N4") + " m^2"; // Intake Area

return output;
}
Expand Down
11 changes: 6 additions & 5 deletions SolverEngines/EngineModule.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
using KSP.UI.Screens;
using SolverEngines.EngineFitting;
using UnityEngine.Profiling;
using KSP.Localization;

namespace SolverEngines
{
Expand All @@ -18,10 +19,10 @@ public abstract class ModuleEnginesSolver : ModuleEnginesFX, IModuleInfo, IEngin
[KSPField(guiActiveEditor = true, guiFormat = "F3")]
public float Need_Area;

[KSPField(guiActive = true, guiName = "Current Throttle", guiFormat = "N2", guiUnits = "%")]
[KSPField(guiActive = true, guiName = "#SolverEngines_CurrentThrottle", guiFormat = "N2", guiUnits = "%")] // "Current Throttle"
public float actualThrottle;

[KSPField(guiActive = true, guiName = "Mass Flow", guiUnits = " kg/s", guiFormat = "F5")]
[KSPField(guiActive = true, guiName = "#SolverEngines_MassFlow", guiUnits = " kg/s", guiFormat = "F5")] // "Mass Flow"
public float massFlowGui;

[KSPField]
Expand All @@ -47,7 +48,7 @@ public abstract class ModuleEnginesSolver : ModuleEnginesFX, IModuleInfo, IEngin
// fields
[KSPField]
public double maxEngineTemp;
[KSPField(guiActive = true, guiName = "Eng. Internal Temp", guiFormat = "N0")]
[KSPField(guiActive = true, guiName = "#SolverEngines_EngineInternalTemp", guiFormat = "N0")] // "Eng. Internal Temp"
public double engineTemp = 288.15d;
[KSPField]
public double tempGaugeMin = 0.8d;
Expand Down Expand Up @@ -330,7 +331,7 @@ virtual protected void UpdateTemp()
{
if (tempRatio > 1d && !CheatOptions.IgnoreMaxTemperature)
{
FlightLogger.eventLog.Add($"[{FormatTime(vessel.missionTime)}] {part.partInfo.title} melted its internals from heat.");
FlightLogger.eventLog.Add($"[{FormatTime(vessel.missionTime)}] {Localizer.Format("#SolverEngines_PartMelted", part.partInfo.title)}"); // {part.partInfo.title} melted its internals from heat.
part.explode();
}
else
Expand Down Expand Up @@ -606,7 +607,7 @@ protected void UpdateOverheatBox(double val, double minVal)
overheatBox = part.stackIcon.DisplayInfo();
overheatBox.SetMsgBgColor(XKCDColors.DarkRed.A(0.6f));
overheatBox.SetMsgTextColor(XKCDColors.OrangeYellow.A(0.6f));
overheatBox.SetMessage("Eng. Int.");
overheatBox.SetMessage(LocalizationStrings.str_EIT); // "Eng. Int."
overheatBox.SetProgressBarBgColor(XKCDColors.DarkRed.A(0.6f));
overheatBox.SetProgressBarColor(XKCDColors.OrangeYellow.A(0.6f));
}
Expand Down
30 changes: 15 additions & 15 deletions SolverEngines/EnginesGUI/FlightGUI.cs
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ public void OnGUI()
if (!GUIUtil.StylesInitialized)
GUIUtil.SetupStyles();

FlightWindowPos = GUILayout.Window(GUIUtil.FlightWindowID, FlightWindowPos, FlightWindowGUI, "Engines GUI", GUILayout.MinWidth(150));
FlightWindowPos = GUILayout.Window(GUIUtil.FlightWindowID, FlightWindowPos, FlightWindowGUI, LocalizationStrings.str_EnginesGUI, GUILayout.MinWidth(150)); // "Engines GUI"

FlightGUISettings.OnSettingsWindowGUI();
GUIUnitsSettings.OnUnitsSettingsWindowGUI();
Expand All @@ -108,25 +108,25 @@ public void FlightWindowGUI(int windowID)

if (FlightGUISettings.ShowAmbientTemp)
{
GUIUtil.FlightWindowField("Ambient Temperature", GUIUnitsSettings.TemperatureUnits.Format(vessel.atmosphericTemperature, GUIUnits.Temperature.kelvin));
GUIUtil.FlightWindowField(LocalizationStrings.str_AmbientTemperature, GUIUnitsSettings.TemperatureUnits.Format(vessel.atmosphericTemperature, GUIUnits.Temperature.kelvin)); // "Ambient Temperature"
windowDisplayField += counter;
}
counter *= 2;
if (FlightGUISettings.ShowAmbientPressure)
{
GUIUtil.FlightWindowField("Ambient Pressure", GUIUnitsSettings.PressureUnits.Format(vessel.staticPressurekPa, GUIUnits.Pressure.kPa));
GUIUtil.FlightWindowField(LocalizationStrings.str_AmbientPressure, GUIUnitsSettings.PressureUnits.Format(vessel.staticPressurekPa, GUIUnits.Pressure.kPa)); // "Ambient Pressure"
windowDisplayField += counter;
}
counter *= 2;
if (FlightGUISettings.ShowRecoveryTemp && inAtmosphere && flightSys.InletArea > 0f && flightSys.EngineArea > 0f)
{
GUIUtil.FlightWindowField("Recovery Temperature", GUIUnitsSettings.TemperatureUnits.Format(flightSys.InletTherm.T, GUIUnits.Temperature.kelvin));
GUIUtil.FlightWindowField(LocalizationStrings.str_RecoveryTemperature, GUIUnitsSettings.TemperatureUnits.Format(flightSys.InletTherm.T, GUIUnits.Temperature.kelvin)); // "Recovery Temperature"
windowDisplayField += counter;
}
counter *= 2;
if (FlightGUISettings.ShowRecoveryPressure && inAtmosphere && flightSys.InletArea > 0f && flightSys.EngineArea > 0f)
{
GUIUtil.FlightWindowField("Recovery Pressure", GUIUnitsSettings.PressureUnits.Format(flightSys.InletTherm.P, GUIUnits.Pressure.Pa));
GUIUtil.FlightWindowField(LocalizationStrings.str_RecoveryPressure, GUIUnitsSettings.PressureUnits.Format(flightSys.InletTherm.P, GUIUnits.Pressure.Pa)); // "Recovery Pressure"
windowDisplayField += counter;
}
counter *= 2;
Expand All @@ -149,21 +149,21 @@ public void FlightWindowGUI(int windowID)
inletPercentStyle.normal.textColor = inletPercentStyle.focused.textColor = inletPercentStyle.hover.textColor = inletPercentStyle.onNormal.textColor = inletPercentStyle.onFocused.textColor = inletPercentStyle.onHover.textColor = inletPercentStyle.onActive.textColor = inletPercentColor;
}

GUIUtil.FlightWindowField("Inlet", areaPercentString);
GUIUtil.FlightWindowField(LocalizationStrings.str_Inlet, areaPercentString); // "Inlet"
windowDisplayField += counter;
}
counter *= 2;

if (FlightGUISettings.ShowTPR && inAtmosphere && flightSys.InletArea > 0f && flightSys.EngineArea > 0f)
{
GUIUtil.FlightWindowField("TPR", flightSys.OverallTPR.ToString("P2"));
GUIUtil.FlightWindowField(LocalizationStrings.str_TPR, flightSys.OverallTPR.ToString("P2")); // "TPR"
windowDisplayField += counter;
}
counter *= 2;

if (FlightGUISettings.ShowInletPressureRatio && inAtmosphere && flightSys.InletArea > 0f && flightSys.EngineArea > 0f)
{
GUIUtil.FlightWindowField("Inlet Pressure Ratio", (flightSys.InletTherm.P / flightSys.AmbientTherm.P).ToString("F2"));
GUIUtil.FlightWindowField(LocalizationStrings.str_InletPressureRatio, (flightSys.InletTherm.P / flightSys.AmbientTherm.P).ToString("F2")); //"Inlet Pressure Ratio"
windowDisplayField += counter;
}
counter *= 2;
Expand All @@ -188,7 +188,7 @@ public void FlightWindowGUI(int windowID)

if (FlightGUISettings.ShowThrust)
{
GUIUtil.FlightWindowField("Thrust", GUIUnitsSettings.ForceUnits.Format(totalThrust, GUIUnits.Force.kN));
GUIUtil.FlightWindowField(LocalizationStrings.str_Thrust, GUIUnitsSettings.ForceUnits.Format(totalThrust, GUIUnits.Force.kN)); // "Thrust"
windowDisplayField += counter;
}
counter *= 2;
Expand All @@ -199,7 +199,7 @@ public void FlightWindowGUI(int windowID)
if (totalThrust > 0d && weight > 0d)
TWR = totalThrust / (FlightGlobals.getGeeForceAtPosition(vessel.CoM).magnitude * vessel.GetTotalMass());

GUIUtil.FlightWindowField("TWR", TWR.ToString("F2"));
GUIUtil.FlightWindowField(LocalizationStrings.str_TWR, TWR.ToString("F2")); // "TWR"
windowDisplayField += counter;
}
counter *= 2;
Expand All @@ -211,7 +211,7 @@ public void FlightWindowGUI(int windowID)
if (FlightDataWrapper.VesselDynPreskPa(vessel) > 0.01d)
tdr = totalThrust / totalDrag;

GUIUtil.FlightWindowField("Thrust / Drag", tdr.ToString("G3"));
GUIUtil.FlightWindowField(LocalizationStrings.str_ThrustDrag, tdr.ToString("G3")); // "Thrust / Drag"
windowDisplayField += counter;
}
counter *= 2;
Expand All @@ -222,7 +222,7 @@ public void FlightWindowGUI(int windowID)
if (totalThrust > 0d && totalMDot > 0d)
Isp = totalThrust / totalMDot; // kN/(kg/s) = km/s

GUIUtil.FlightWindowField("Specific Impulse", GUIUnitsSettings.IspUnits.Format(Isp, GUIUnits.Isp.km__s));
GUIUtil.FlightWindowField(LocalizationStrings.str_SpecificImpulse, GUIUnitsSettings.IspUnits.Format(Isp, GUIUnits.Isp.km__s)); // "Specific Impulse"
windowDisplayField += counter;
}
counter *= 2;
Expand All @@ -232,16 +232,16 @@ public void FlightWindowGUI(int windowID)
if (totalThrust > 0d && totalMDot > 0d)
SFC = totalMDot / totalThrust; // (kg/s)/kN

GUIUtil.FlightWindowField("TSFC", GUIUnitsSettings.TSFCUnits.Format(SFC, GUIUnits.TSFC.kg__kN_s));
GUIUtil.FlightWindowField(LocalizationStrings.str_TSFC, GUIUnitsSettings.TSFCUnits.Format(SFC, GUIUnits.TSFC.kg__kN_s)); // "TSFC"
windowDisplayField += counter;
}

if (windowDisplayField != tmpDisplayField)
FlightWindowPos.height = 0;

GUILayout.BeginHorizontal();
FlightGUISettings.ShowSettingsWindow = GUILayout.Toggle(FlightGUISettings.ShowSettingsWindow, "Settings", GUIUtil.ButtonToggle, GUIUtil.normalWidth);
GUIUnitsSettings.ShowUnitsSettingsWindow = GUILayout.Toggle(GUIUnitsSettings.ShowUnitsSettingsWindow, "Units", GUIUtil.ButtonToggle, GUIUtil.smallWidth);
FlightGUISettings.ShowSettingsWindow = GUILayout.Toggle(FlightGUISettings.ShowSettingsWindow, LocalizationStrings.str_Settings, GUIUtil.ButtonToggle, GUIUtil.normalWidth); // "Settings"
GUIUnitsSettings.ShowUnitsSettingsWindow = GUILayout.Toggle(GUIUnitsSettings.ShowUnitsSettingsWindow, LocalizationStrings.str_Units, GUIUtil.ButtonToggle, GUIUtil.smallWidth); // "Units"
GUILayout.EndHorizontal();

GUILayout.EndVertical();
Expand Down
24 changes: 12 additions & 12 deletions SolverEngines/EnginesGUI/FlightGUISettings.cs
Original file line number Diff line number Diff line change
Expand Up @@ -32,25 +32,25 @@ public static void OnSettingsWindowGUI()
{
if (ShowSettingsWindow)
{
SettingsWindowPos = GUILayout.Window(GUIUtil.SettingsWindowID, SettingsWindowPos, SettingsWindowGUI, "Engines Flight GUI Settings", GUILayout.MinWidth(150));
SettingsWindowPos = GUILayout.Window(GUIUtil.SettingsWindowID, SettingsWindowPos, SettingsWindowGUI, LocalizationStrings.str_EnginesFlightGUISettings, GUILayout.MinWidth(150)); // "Engines Flight GUI Settings"
}
}

public static void SettingsWindowGUI(int windowID)
{
GUILayout.BeginVertical();

GUIUtil.SettingsWindowToggle("Show Ambient Temperature", ref ShowAmbientTemp);
GUIUtil.SettingsWindowToggle("Show Ambient Pressure", ref ShowAmbientPressure);
GUIUtil.SettingsWindowToggle("Show Recovery Temperature", ref ShowRecoveryTemp);
GUIUtil.SettingsWindowToggle("Show Recovery Pressure", ref ShowRecoveryPressure);
GUIUtil.SettingsWindowToggle("Show Inlet Percentage", ref ShowInletPercent);
GUIUtil.SettingsWindowToggle("Show Total Pressure Recovery", ref ShowTPR);
GUIUtil.SettingsWindowToggle("Show Thrust", ref ShowThrust);
GUIUtil.SettingsWindowToggle("Show Thrust to Weight Ratio", ref ShowTWR);
GUIUtil.SettingsWindowToggle("Show Thrust / Drag", ref ShowTDR);
GUIUtil.SettingsWindowToggle("Show Isp", ref ShowIsp);
GUIUtil.SettingsWindowToggle("Show TSFC", ref ShowTSFC);
GUIUtil.SettingsWindowToggle(LocalizationStrings.str_ShowAmbientTemperature, ref ShowAmbientTemp); // "Show Ambient Temperature"
GUIUtil.SettingsWindowToggle(LocalizationStrings.str_ShowAmbientPressure, ref ShowAmbientPressure); // "Show Ambient Pressure"
GUIUtil.SettingsWindowToggle(LocalizationStrings.str_ShowRecoveryTemperature, ref ShowRecoveryTemp); // "Show Recovery Temperature"
GUIUtil.SettingsWindowToggle(LocalizationStrings.str_ShowRecoveryPressure, ref ShowRecoveryPressure); // "Show Recovery Pressure"
GUIUtil.SettingsWindowToggle(LocalizationStrings.str_ShowInletPercentage, ref ShowInletPercent); // "Show Inlet Percentage"
GUIUtil.SettingsWindowToggle(LocalizationStrings.str_ShowTotalPressureRecovery, ref ShowTPR); // "Show Total Pressure Recovery"
GUIUtil.SettingsWindowToggle(LocalizationStrings.str_ShowThrust, ref ShowThrust); // "Show Thrust"
GUIUtil.SettingsWindowToggle(LocalizationStrings.str_ShowThrusttoWeightRatio, ref ShowTWR); // "Show Thrust to Weight Ratio"
GUIUtil.SettingsWindowToggle(LocalizationStrings.str_ShowThrustDrag, ref ShowTDR); // "Show Thrust / Drag"
GUIUtil.SettingsWindowToggle(LocalizationStrings.str_ShowIsp, ref ShowIsp); // "Show Isp"
GUIUtil.SettingsWindowToggle(LocalizationStrings.str_ShowTSFC, ref ShowTSFC); // "Show TSFC"

GUILayout.EndVertical();

Expand Down
2 changes: 1 addition & 1 deletion SolverEngines/EnginesGUI/GUIUnitsSettings.cs
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ public static void OnUnitsSettingsWindowGUI()
{
if (ShowUnitsSettingsWindow)
{
UnitsSettingsWindowPos = GUILayout.Window(GUIUtil.UnitsSettingsWindowID, UnitsSettingsWindowPos, UnitsSettingsWindowGUI, "Engines GUI Units Settings", GUILayout.MinWidth(150));
UnitsSettingsWindowPos = GUILayout.Window(GUIUtil.UnitsSettingsWindowID, UnitsSettingsWindowPos, UnitsSettingsWindowGUI, LocalizationStrings.str_EnginesGUIUnitsSettings, GUILayout.MinWidth(150)); // "Engines GUI Units Settings"
}
}

Expand Down
Loading