Upper/Lower extensions for translations

This commit is contained in:
Noah Pilarski 2024-04-27 20:42:27 -04:00
parent a188d5380a
commit 6674a4c6e6
6 changed files with 68 additions and 6 deletions

View File

@ -282,7 +282,7 @@ namespace NewHorizons.Components.ShipLog
var name = UniqueIDToName(shipLogEntryCard.name); var name = UniqueIDToName(shipLogEntryCard.name);
var warpNotificationDataText = TranslationHandler.GetTranslation("WARP_LOCKED", TranslationHandler.TextType.UI).Replace("{0}", name.ToUpper()); var warpNotificationDataText = TranslationHandler.GetTranslation("WARP_LOCKED", TranslationHandler.TextType.UI).Replace("{0}", name.ToUpperFixed());
_warpNotificationData = new NotificationData(warpNotificationDataText); _warpNotificationData = new NotificationData(warpNotificationDataText);
NotificationManager.SharedInstance.PostNotification(_warpNotificationData, true); NotificationManager.SharedInstance.PostNotification(_warpNotificationData, true);

View File

@ -189,7 +189,7 @@ namespace NewHorizons.Handlers
{ {
var uiTable = TextTranslation.Get().m_table.theUITable; var uiTable = TextTranslation.Get().m_table.theUITable;
var text = GetTranslation(rawText, TextType.UI).ToUpper(); var text = GetTranslation(rawText, TextType.UI).ToUpperFixed();
var key = uiTable.Keys.Max() + 1; var key = uiTable.Keys.Max() + 1;
try try

View File

@ -2,6 +2,7 @@ using HarmonyLib;
using NewHorizons.Builder.Props.Audio; using NewHorizons.Builder.Props.Audio;
using NewHorizons.External; using NewHorizons.External;
using NewHorizons.Handlers; using NewHorizons.Handlers;
using NewHorizons.Utility;
using System; using System;
using UnityEngine; using UnityEngine;
@ -17,7 +18,7 @@ namespace NewHorizons.Patches.SignalPatches
var customSignalName = SignalBuilder.GetCustomSignalName(name); var customSignalName = SignalBuilder.GetCustomSignalName(name);
if (!string.IsNullOrEmpty(customSignalName)) if (!string.IsNullOrEmpty(customSignalName))
{ {
__result = TranslationHandler.GetTranslation(customSignalName, TranslationHandler.TextType.UI, false).ToUpper(); __result = TranslationHandler.GetTranslation(customSignalName, TranslationHandler.TextType.UI, false).ToUpperFixed();
return false; return false;
} }
return true; return true;
@ -68,7 +69,7 @@ namespace NewHorizons.Patches.SignalPatches
var customName = SignalBuilder.GetCustomFrequencyName(frequency); var customName = SignalBuilder.GetCustomFrequencyName(frequency);
if (!string.IsNullOrEmpty(customName)) if (!string.IsNullOrEmpty(customName))
{ {
if (NewHorizonsData.KnowsFrequency(customName)) __result = TranslationHandler.GetTranslation(customName, TranslationHandler.TextType.UI, false).ToUpper(); if (NewHorizonsData.KnowsFrequency(customName)) __result = TranslationHandler.GetTranslation(customName, TranslationHandler.TextType.UI, false).ToUpperFixed();
else __result = UITextLibrary.GetString(UITextType.SignalFreqUnidentified); else __result = UITextLibrary.GetString(UITextType.SignalFreqUnidentified);
return false; return false;
} }

View File

@ -15,7 +15,7 @@ namespace NewHorizons.Utility.DebugTools
public static void InitializePauseMenu(IPauseMenuManager pauseMenu) public static void InitializePauseMenu(IPauseMenuManager pauseMenu)
{ {
_reloadButton = pauseMenu.MakeSimpleButton(TranslationHandler.GetTranslation("Reload Configs", TranslationHandler.TextType.UI).ToUpper(), 3, true); _reloadButton = pauseMenu.MakeSimpleButton(TranslationHandler.GetTranslation("Reload Configs", TranslationHandler.TextType.UI).ToUpperFixed(), 3, true);
_reloadButton.OnSubmitAction += ReloadConfigs; _reloadButton.OnSubmitAction += ReloadConfigs;
UpdateReloadButton(); UpdateReloadButton();
} }

View File

@ -89,7 +89,7 @@ namespace NewHorizons.Utility.DebugTools.Menu
public static void InitializePauseMenu(IPauseMenuManager pauseMenu) public static void InitializePauseMenu(IPauseMenuManager pauseMenu)
{ {
pauseMenuButton = pauseMenu.MakeSimpleButton(TranslationHandler.GetTranslation("Toggle Dev Tools Menu", TranslationHandler.TextType.UI).ToUpper(), 3, true); pauseMenuButton = pauseMenu.MakeSimpleButton(TranslationHandler.GetTranslation("Toggle Dev Tools Menu", TranslationHandler.TextType.UI).ToUpperFixed(), 3, true);
_instance?.InitMenu(); _instance?.InitMenu();
} }

View File

@ -7,6 +7,7 @@ using Newtonsoft.Json;
using OWML.Utils; using OWML.Utils;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Globalization;
using System.IO; using System.IO;
using System.Linq; using System.Linq;
using System.Reflection; using System.Reflection;
@ -69,6 +70,66 @@ namespace NewHorizons.Utility
return 0; return 0;
} }
public static string ToLanguageName(this TextTranslation.Language language)
{
switch (language)
{
case TextTranslation.Language.UNKNOWN:
case TextTranslation.Language.TOTAL:
case TextTranslation.Language.ENGLISH:
return "English";
case TextTranslation.Language.SPANISH_LA:
return "Spanish";
case TextTranslation.Language.GERMAN:
return "German";
case TextTranslation.Language.FRENCH:
return "French";
case TextTranslation.Language.ITALIAN:
return "Italian";
case TextTranslation.Language.POLISH:
return "Polish";
case TextTranslation.Language.PORTUGUESE_BR:
return "Portuguese (Brazil)";
case TextTranslation.Language.JAPANESE:
return "Japanese";
case TextTranslation.Language.RUSSIAN:
return "Russian";
case TextTranslation.Language.CHINESE_SIMPLE:
return "Chinese (Simplified)";
case TextTranslation.Language.KOREAN:
return "Korean";
case TextTranslation.Language.TURKISH:
return "Turkish";
default:
return language.ToString().Replace("_", " ").ToLowerInvariant().ToTitleCase();
}
}
public static CultureInfo ToCultureInfo(this TextTranslation.Language language)
{
return CultureInfo.GetCultures(CultureTypes.AllCultures).FirstOrDefault(culture => culture.DisplayName == language.ToLanguageName()) ?? CultureInfo.CurrentCulture;
}
public static string ToUpperFixed(this string str)
{
return str.ToUpper(TextTranslation.Get().m_language);
}
public static string ToLowerFixed(this string str)
{
return str.ToLower(TextTranslation.Get().m_language);
}
public static string ToUpper(this string str, TextTranslation.Language language)
{
return str.ToUpper(language.ToCultureInfo());
}
public static string ToLower(this string str, TextTranslation.Language language)
{
return str.ToLower(language.ToCultureInfo());
}
public static string ToCamelCase(this string str) public static string ToCamelCase(this string str)
{ {
StringBuilder strBuilder = new StringBuilder(str); StringBuilder strBuilder = new StringBuilder(str);