Skip to content

Commit 4f692ee

Browse files
author
Jannify
authored
Added support for translations (with English and German) (SubnauticaNitrox#1362)
1 parent 46ea2f0 commit 4f692ee

14 files changed

Lines changed: 172 additions & 48 deletions

File tree

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
{
2+
// Main menu
3+
"Nitrox_Multiplayer": "Multiplayer",
4+
"Nitrox_AddServer": "Add Server",
5+
"Nitrox_ConnectTo": "Connect to",
6+
"Nitrox_AddServerName": "Name:",
7+
"Nitrox_AddServerHost": "Host:",
8+
"Nitrox_AddServerPort": "Port:",
9+
"Nitrox_AddServerAdd": "Add",
10+
"Nitrox_JoinServerIpAddress": "Server IP Address",
11+
"Nitrox_JoinServerPassword": "Password:",
12+
"Nitrox_JoinServerFailed": "Unable to join sever",
13+
"Nitrox_Cancel": "Cancel",
14+
"Nitrox_Join": "Join",
15+
"Nitrox_PlayerColor": "Player Color",
16+
"Nitrox_EnterName": "Enter Player Name",
17+
"Nitrox_SubmitPassword": "Submit Password",
18+
"Nitrox_MultiplayerLoaded": "Multiplayer Client Loaded...",
19+
20+
// In game menu
21+
"Nitrox_LoadingScreenWarn": "Expect game breaking bugs",
22+
"Nitrox_WorldSettling": "Awaiting World Settling",
23+
"Nitrox_JoiningSession": "Joining Multiplayer Session",
24+
"Nitrox_SyncingWorld": "Syncing Multiplayer World",
25+
"Nitrox_LostConnection": "Lost Connection to Game Server",
26+
"Nitrox_PlayerKicked": "You've been kicked from the server",
27+
28+
// In game logging
29+
"Nitrox_UnableToConnect": "Unable to contact the remote server at:",
30+
"Nitrox_StartServer": "Start your server first to join your self-hosted world",
31+
"Nitrox_InvalidUserName": "Please enter a valid player name !\n\n It must not contain any space or doubtful characters\n Allowed characters : A-Z a-z 0-9 _ . -\nLength : [3, 25]",
32+
"Nitrox_RequestingSessionPolicy": "Requesting session policy informa,tion...",
33+
"Nitrox_RejectedSessionPolicy": "Reservation rejected...",
34+
"Nitrox_WaitingPassword": "Waiting for Server Password Input...",
35+
"Nitrox_WaitingUserInput": "Waiting for user input...",
36+
"Nitrox_LaunchGame": "Launching game..."
37+
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
{
2+
// Main menu
3+
"Nitrox_Multiplayer": "Mehrspieler",
4+
"Nitrox_AddServer": "Server hinzufügen",
5+
"Nitrox_ConnectTo": "Verbinde zu",
6+
"Nitrox_AddServerName": "Name:",
7+
"Nitrox_AddServerHost": "Host:",
8+
"Nitrox_AddServerPort": "Port:",
9+
"Nitrox_AddServerAdd": "Hinzufügen",
10+
"Nitrox_JoinServerIpAddress": "Server IP Adresse",
11+
"Nitrox_JoinServerPassword": "Passwort:",
12+
"Nitrox_JoinServerFailed": "Die Verbindung zum Server ist gescheitert.",
13+
"Nitrox_Cancel": "Abbrechen",
14+
"Nitrox_Join": "Beitreten",
15+
"Nitrox_PlayerColor": "Spieler Farbe",
16+
"Nitrox_EnterName": "Gibt den Spielername ein",
17+
"Nitrox_SubmitPassword": "Bestätige Passwort",
18+
"Nitrox_MultiplayerLoaded": "Mehrspieler Client wurde gestartet...",
19+
20+
// In game menu
21+
"Nitrox_LoadingScreenWarn": "Erwarte spielbrechende Fehler",
22+
"Nitrox_WorldSettling": "Erwarte Fertigstellung der Welt",
23+
"Nitrox_JoiningSession": "Betrete Mehrspieler Welt",
24+
"Nitrox_SyncingWorld": "Syncronisiere Mehrspieler Welt",
25+
"Nitrox_LostConnection": "Die Verbindung zum Server wurde unterbrochen",
26+
"Nitrox_PlayerKicked": "Du bist vom Server geflogen",
27+
28+
// In game logging
29+
"Nitrox_UnableToConnect": "Es ist unmöglich folgenen Server zu erreichen:",
30+
"Nitrox_StartServer": "Bitte starte zuerst den Server um deine selbst-gehostete Welt zu betreten.",
31+
"Nitrox_InvalidUserName": "Bitte gebe einen validen Spielernamen ein!\n\n Er darf kein Leerzeichen oder andere invalide Zeichen beinhalten\n Erlaubte Zeichen : A-Z a-z 0-9 _ . -\nLänge : [3, 25]",
32+
"Nitrox_RequestingSessionPolicy": "Frage nach Inforamtionen zu Sitzungrichtlinien...",
33+
"Nitrox_RejectedSessionPolicy": "Anfrage wurde abgelehnt...",
34+
"Nitrox_WaitingPassword": "Warte auf Eingabe des Server Passworts...",
35+
"Nitrox_WaitingUserInput": "Warte auf Nutzereingaben...",
36+
"Nitrox_LaunchGame": "Starte das Spiel..."
37+
}

NitroxClient/Communication/Packets/Processors/InitialPlayerSyncProcessor.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ public InitialPlayerSyncProcessor(IPacketSender packetSender, IEnumerable<Initia
3232
public override void Process(InitialPlayerSync packet)
3333
{
3434
this.packet = packet;
35-
loadingMultiplayerWaitItem = WaitScreen.Add("Syncing Multiplayer World");
35+
loadingMultiplayerWaitItem = WaitScreen.Add(Language.main.Get("Nitrox_SyncingWorld"));
3636
cumulativeProcessorsRan = 0;
3737
Multiplayer.Main.StartCoroutine(ProcessInitialSyncPacket(this, null));
3838
}

NitroxClient/MonoBehaviours/Gui/InGame/LostConnectionModal.cs

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
using System;
1+
using System;
22
using System.Collections;
33
using UnityEngine;
44
using UnityEngine.UI;
@@ -44,17 +44,15 @@ private static void InitSubWindow()
4444

4545
GameObject header = lostConnectionSubWindow.FindChild("Header"); //Message Object
4646

47-
Text messageText = header.GetComponent<Text>();
48-
messageText.text = "Lost Connection to Game Server";
47+
header.GetComponent<Text>().text = Language.main.Get("Nitrox_LostConnection");
4948

5049
RectTransform messageTransform = header.GetComponent<RectTransform>();
5150
messageTransform.sizeDelta = new Vector2(700, 195);
5251

5352
GameObject buttonYes = lostConnectionSubWindow.FindChild("ButtonYes"); //Button Yes Object
5453
buttonYes.transform.position = new Vector3(lostConnectionSubWindow.transform.position.x / 2, buttonYes.transform.position.y, buttonYes.transform.position.z); // Center Button
5554

56-
Text messageTextbutton = buttonYes.GetComponentInChildren<Text>(); //Get Button Text Component
57-
messageTextbutton.text = "OK";
55+
buttonYes.GetComponentInChildren<Text>().text = "OK"; //Set Button Text Component
5856
}
5957
}
6058

NitroxClient/MonoBehaviours/Gui/InGame/PlayerKickedModal.cs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
using System;
1+
using System;
22
using System.Collections;
33
using UnityEngine;
44
using UnityEngine.UI;
@@ -45,16 +45,15 @@ private static void InitSubWindow(string reason)
4545
GameObject header = playerKickedSubWindow.FindChild("Header"); //Message Object
4646

4747
Text messageText = header.GetComponent<Text>();
48-
messageText.text = string.IsNullOrWhiteSpace(reason) ? "You've been kicked from the server" : reason;
48+
messageText.text = string.IsNullOrWhiteSpace(reason) ? Language.main.Get("Nitrox_PlayerKicked") : reason;
4949

5050
RectTransform messageTransform = header.GetComponent<RectTransform>();
5151
messageTransform.sizeDelta = new Vector2(700, 195);
5252

5353
GameObject buttonYes = playerKickedSubWindow.FindChild("ButtonYes"); //Button Yes Object
5454
buttonYes.transform.position = new Vector3(playerKickedSubWindow.transform.position.x / 2, buttonYes.transform.position.y, buttonYes.transform.position.z); // Center Button
5555

56-
Text messageTextbutton = buttonYes.GetComponentInChildren<Text>(); //Get Button Text Component
57-
messageTextbutton.text = "OK";
56+
buttonYes.GetComponentInChildren<Text>().text = "OK"; //Set Button Text Component
5857
}
5958
}
6059

NitroxClient/MonoBehaviours/Gui/MainMenu/JoinServer.cs

Lines changed: 18 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
using System;
1+
using System;
22
using System.Collections;
33
using System.Diagnostics;
44
using System.Text.RegularExpressions;
@@ -68,7 +68,7 @@ public void Show(string ip, int port)
6868
serverPort = port;
6969

7070
//Set Server IP in info label
71-
lowerDetailTextGameObject.GetComponent<Text>().text = $"Server IP Address\n{serverIp}";
71+
lowerDetailTextGameObject.GetComponent<Text>().text = $"{Language.main.Get("Nitrox_JoinServerIpAddress")}\n{serverIp}";
7272

7373
//Initialize elements from preferences
7474
activePlayerPreference = preferencesManager.GetPreference(serverIp);
@@ -173,17 +173,17 @@ private void StartMultiplayerClient()
173173
}
174174
catch (ClientConnectionFailedException)
175175
{
176-
Log.InGameSensitive("Unable to contact the remote server at: {ip}:{port}", serverIp, serverPort);
176+
Log.InGameSensitive(Language.main.Get("Nitrox_UnableToConnect") + " {ip}:{port}", serverIp, serverPort);
177177

178178
if (serverIp.Equals("127.0.0.1"))
179179
{
180180
if (Process.GetProcessesByName("NitroxServer-Subnautica").Length == 0)
181181
{
182-
Log.InGame("Start your server first to join your self-hosted world");
182+
Log.InGame(Language.main.Get("Nitrox_StartServer"));
183183
}
184184
else
185185
{
186-
Log.InGame("Seems like your firewall settings are interfering");
186+
Log.InGame(Language.main.Get("Nitrox_FirewallInterfering"));
187187
}
188188
}
189189
OnCancelClick();
@@ -204,7 +204,7 @@ private void OnJoinClick()
204204
//https://regex101.com/r/eTWiEs/2/
205205
if (!Regex.IsMatch(playerName, @"^[a-zA-Z0-9._-]{3,25}$"))
206206
{
207-
NotifyUser("Please enter a valid player name !\n\n It must not contain any space or doubtful characters\n Allowed characters : A-Z a-z 0-9 _ . -\nLength : [3, 25]");
207+
NotifyUser(Language.main.Get("Nitrox_InvalidUserName"));
208208
return;
209209
}
210210
preferencesManager.SetPreference(serverIp, new PlayerPreference(playerName, colorPicker.currentColor));
@@ -219,23 +219,23 @@ private void SessionConnectionStateChangedHandler(IMultiplayerSessionConnectionS
219219
switch (state.CurrentStage)
220220
{
221221
case MultiplayerSessionConnectionStage.ESTABLISHING_SERVER_POLICY:
222-
Log.InGame("Requesting session policy information...");
222+
Log.InGame(Language.main.Get("Nitrox_RequestingSessionPolicy"));
223223
break;
224224

225225
case MultiplayerSessionConnectionStage.AWAITING_RESERVATION_CREDENTIALS:
226226
if (multiplayerSession.SessionPolicy.RequiresServerPassword)
227227
{
228-
Log.InGame("Waiting for Server Password Input...");
228+
Log.InGame(Language.main.Get("Nitrox_WaitingPassword"));
229229
showingPasswordWindow = true;
230230
shouldFocus = true;
231231
}
232-
Log.InGame("Waiting for user input...");
232+
Log.InGame(Language.main.Get("Nitrox_WaitingUserInput"));
233233
rightSideMainMenu.OpenGroup("Join Server");
234234
FocusPlayerNameTextbox();
235235
break;
236236

237237
case MultiplayerSessionConnectionStage.SESSION_RESERVED:
238-
Log.InGame("Launching game...");
238+
Log.InGame(Language.main.Get("Nitrox_LaunchGame"));
239239
multiplayerSession.ConnectionStateChanged -= SessionConnectionStateChangedHandler;
240240
preferencesManager.Save();
241241

@@ -248,7 +248,7 @@ private void SessionConnectionStateChangedHandler(IMultiplayerSessionConnectionS
248248
break;
249249

250250
case MultiplayerSessionConnectionStage.SESSION_RESERVATION_REJECTED:
251-
Log.InGame("Reservation rejected...");
251+
Log.InGame(Language.main.Get("Nitrox_RejectedSessionPolicy"));
252252

253253
MultiplayerSessionReservationState reservationState = multiplayerSession.Reservation.ReservationState;
254254

@@ -350,8 +350,7 @@ private void InitializeButtonElements()
350350

351351
RectTransform cancelButtonTransform = (RectTransform)cancelButtonGameObject.transform;
352352
GameObject cancelButtonTextGameObject = cancelButtonTransform.RequireGameObject("Text");
353-
Text cancelButtonText = cancelButtonTextGameObject.GetComponent<Text>();
354-
cancelButtonText.text = "Cancel";
353+
cancelButtonTextGameObject.GetComponent<Text>().text = Language.main.Get("Nitrox_Cancel");
355354

356355
cancelButtonTransform.sizeDelta = new Vector2(cancelButtonTransform.rect.width * 0.85f, cancelButtonTransform.rect.height);
357356
cancelButtonTransform.anchoredPosition = new Vector2(
@@ -368,8 +367,7 @@ private void InitializeButtonElements()
368367
joinButtonTransform.Rotate(Vector3.forward * -180);
369368

370369
GameObject joinButtonTextGameObject = joinButtonTransform.RequireGameObject("Text");
371-
Text joinButtonText = joinButtonTextGameObject.GetComponent<Text>();
372-
joinButtonText.text = "Join";
370+
joinButtonTextGameObject.GetComponent<Text>().text = Language.main.Get("Nitrox_Join");
373371

374372
//Flip the text so it is no longer upside down after flipping the button.
375373
RectTransform joinButtonTextRectTransform = (RectTransform)joinButtonTextGameObject.transform;
@@ -475,8 +473,7 @@ private void InitializeBaseTabElement()
475473
baseTabSelectedColorImage.rectTransform.anchoredPosition.x + baseTabTextTransform.rect.width / 2f + 22f,
476474
baseTabSelectedColorImage.rectTransform.anchoredPosition.y);
477475

478-
Text baseTabText = baseTabTextGameObject.GetComponent<Text>();
479-
baseTabText.text = "Player Color";
476+
baseTabTextGameObject.GetComponent<Text>().text = Language.main.Get("Nitrox_PlayerColor");
480477

481478
//This resizes the actual Image that outlines all of the UI elements.
482479
GameObject baseTabBackgroundGameObject = baseTabTransform.RequireGameObject("Background");
@@ -535,8 +532,7 @@ private void InitializePlayerNameInputElement()
535532
playerNameInputField.selectionColor = Color.white;
536533

537534
GameObject inputFieldPlaceholder = inputFieldRectTransform.RequireGameObject("Placeholder");
538-
Text inputFieldPlaceholderText = inputFieldPlaceholder.GetComponent<Text>();
539-
inputFieldPlaceholderText.text = "Enter Player Name";
535+
inputFieldPlaceholder.GetComponent<Text>().text = Language.main.Get("Nitrox_EnterName");
540536
}
541537

542538
//This is the "service" that manages the click and drag events on the color picture RectTransform.
@@ -606,18 +602,18 @@ private void DoServerPasswordWindow(int windowId)
606602
{
607603
using (new GUILayout.HorizontalScope())
608604
{
609-
GUILayout.Label("Password:");
605+
GUILayout.Label(Language.main.Get("Nitrox_JoinServerPassword"));
610606
GUI.SetNextControlName("serverPasswordField");
611607
serverPassword = GUILayout.TextField(serverPassword);
612608
}
613609

614-
if (GUILayout.Button("Submit Password"))
610+
if (GUILayout.Button(Language.main.Get("Nitrox_SubmitPassword")))
615611
{
616612
HidePasswordWindow();
617613
OnSubmitPasswordButtonClicked();
618614
}
619615

620-
if (GUILayout.Button("Cancel"))
616+
if (GUILayout.Button(Language.main.Get("Nitrox_Cancel")))
621617
{
622618
HidePasswordWindow();
623619
OnCancelClick();

NitroxClient/MonoBehaviours/Gui/MainMenu/LoadingScreenVersionText.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ public class LoadingScreenVersionText
1313
public static void Initialize()
1414
{
1515
AddTextToLoadingScreen("\nNitrox Alpha V" + assemblyVersion);
16-
loadingScreenWarning = AddTextToLoadingScreen("\n\nExpect game breaking bugs");
16+
loadingScreenWarning = AddTextToLoadingScreen("\n\n" + Language.main.Get("Nitrox_LoadingScreenWarn"));
1717
}
1818

1919
private static uGUI_TextFade AddTextToLoadingScreen(string text)

NitroxClient/MonoBehaviours/Gui/MainMenu/MainMenuMods.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ private void MultiplayerMenuMods()
3939
showLoadedMultiplayer.transform.SetSiblingIndex(3);
4040

4141
Text buttonText = showLoadedMultiplayer.RequireGameObject("Circle/Bar/Text").GetComponent<Text>();
42-
buttonText.text = "Multiplayer";
42+
buttonText.text = Language.main.Get("Nitrox_Multiplayer");
4343
buttonText.GetComponent<TranslationLiveUpdate>().translationKey = "Nitrox_Multiplayer";
4444

4545

@@ -51,7 +51,7 @@ private void MultiplayerMenuMods()
5151
GameObject loadedMultiplayer = Instantiate(savedGamesRef, rightSide.transform);
5252
loadedMultiplayer.name = "Multiplayer";
5353
Transform header = loadedMultiplayer.RequireTransform("Header");
54-
header.GetComponent<Text>().text = "Multiplayer";
54+
header.GetComponent<Text>().text = Language.main.Get("Nitrox_Multiplayer");
5555
header.GetComponent<TranslationLiveUpdate>().translationKey = "Nitrox_Multiplayer";
5656
Destroy(loadedMultiplayer.RequireGameObject("Scroll View/Viewport/SavedGameAreaContent/NewGame"));
5757
Destroy(loadedMultiplayer.GetComponent<MainMenuLoadPanel>());

0 commit comments

Comments
 (0)