Skip to content

Commit 20f38cc

Browse files
author
Leszek
committed
🚧 The first major refactoring
1 parent 0f4bd1e commit 20f38cc

21 files changed

+300
-254
lines changed
Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,16 @@
1-
using System;
2-
using System.Collections;
3-
using System.Collections.Generic;
4-
using UnityEditor;
1+
using UnityEditor;
52
using UnityEngine;
63

74
[CustomEditor(typeof(LocalizationManager))]
85
public class LocalizationManagerEditor : Editor {
9-
private int selectedIndex = 0;
6+
private int _selectedIndex = 0;
107

118
public override void OnInspectorGUI() {
129
LocalizationManager localizationManager = (LocalizationManager)target;
13-
localizationManager.testMode = EditorGUILayout.Toggle("TEST MODE:", localizationManager.testMode);
1410
localizationManager.fileURL = EditorGUILayout.TextField("File URL: ", localizationManager.fileURL);
1511
if (GUILayout.Button("Load from web"))
1612
{
17-
localizationManager.LoadFromWeb();
13+
localizationManager.LoadFromWeb(localizationManager.fileURL);
1814
}
1915

2016
GUILayout.Space(20);
@@ -26,7 +22,7 @@ public override void OnInspectorGUI() {
2622

2723
if (GUILayout.Button("Load local file"))
2824
{
29-
localizationManager.InitLocalizationData();
25+
localizationManager.LoadFromFile(localizationManager.fileName, localizationManager.extension);
3026
}
3127

3228
GUILayout.Space(20);
@@ -35,9 +31,9 @@ public override void OnInspectorGUI() {
3531
if (languagesToShow != null)
3632
{
3733
GUILayout.Label("Select language");
38-
selectedIndex = EditorGUILayout.Popup(selectedIndex, languagesToShow);
34+
_selectedIndex = EditorGUILayout.Popup(_selectedIndex, languagesToShow);
3935
if (GUILayout.Button("Load language"))
40-
localizationManager.LoadLanguage(languagesToShow[selectedIndex]);
36+
localizationManager.LoadLanguage(languagesToShow[_selectedIndex]);
4137
}
4238
}
4339
}

Assets/LocalizationToolkit/Editor/LocalizationWindowEditor.cs

Lines changed: 21 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
using UnityEditor;
99
using UnityEngine;
1010
using Newtonsoft.Json;
11+
using Formatting = Newtonsoft.Json.Formatting;
1112

1213
public class LocalizationWindowEditor : EditorWindow {
1314
public LocalizationData localizationData;
@@ -53,19 +54,19 @@ private void OnGUI() {
5354
}
5455
GUILayout.EndHorizontal();
5556
GUILayout.Space(10);
56-
EditorGUILayout.LabelField("Load from local: ");
57+
EditorGUILayout.LabelField("Local file: ");
5758
extension = (AvailableExtensions)EditorGUILayout.EnumPopup("File extension", extension);
58-
if (GUILayout.Button("Load data"))
59+
if (GUILayout.Button("Load File:"))
5960
{
60-
LoadGameData();
61+
LoadFromFile();
6162
}
6263

6364
if (GUILayout.Button("Create new data"))
6465
{
6566
CreateNewData();
6667
}
6768

68-
if (localizationData != null)
69+
if (localizationData != null && localizationData.languages != null)
6970
{
7071
if (GUILayout.Button("Save data"))
7172
{
@@ -361,30 +362,29 @@ private void CheckIfNeedRefocus(List<string> localizationKeys) {
361362
}
362363
}
363364

364-
private void LoadGameData() {
365+
private void LoadFromFile() {
365366
string filePath = EditorUtility.OpenFilePanel("Select localization data file", Application.streamingAssetsPath, extension.ToString().ToLower());
366-
367-
if (!string.IsNullOrEmpty(filePath))
368-
{
367+
if (!string.IsNullOrEmpty(filePath)) {
369368
ResetIndexes();
370369
string data = File.ReadAllText(filePath);
371-
if (extension == AvailableExtensions.json)
370+
switch (extension)
372371
{
373-
LoadJSONFile(data);
374-
}
375-
else if (extension == AvailableExtensions.xml)
376-
{
377-
LoadXMLFile(data);
372+
case AvailableExtensions.json:
373+
LoadJSONFile(data);
374+
break;
375+
case AvailableExtensions.xml:
376+
LoadXMLFile(data);
377+
break;
378378
}
379379
}
380380
}
381381

382382
private void LoadJSONFile(string data)
383383
{
384-
Dictionary<string, Dictionary<string, string>> jsonData = JsonConvert.DeserializeObject<Dictionary<string, Dictionary<string, string>>>(data);
385-
localizationData = new LocalizationData(jsonData);
384+
Dictionary<string, Dictionary<string, string>> objData = JsonConvert.DeserializeObject<Dictionary<string, Dictionary<string, string>>>(data);
385+
localizationData = new LocalizationData(objData);
386386
}
387-
387+
388388
private void LoadXMLFile(string data) {
389389
XDocument xmlDocument = XDocument.Parse(data);
390390
localizationData = new LocalizationData(xmlDocument);
@@ -405,9 +405,10 @@ private void SaveGameData() {
405405
}
406406
}
407407

408-
private void SaveJSONFile(string filePath) {
409-
string data = localizationData.SaveLocalizationDataToJSON().ToString();
410-
File.WriteAllText(filePath, data);
408+
private void SaveJSONFile(string filePath)
409+
{
410+
var json = JsonConvert.SerializeObject(localizationData.languages, Formatting.Indented);
411+
File.WriteAllText(filePath, json);
411412
}
412413

413414
private void SaveXMLFile(string filePath) {

Assets/LocalizationToolkit/Editor/LocalizedTextEditor.cs

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -5,24 +5,23 @@
55

66
[CustomEditor(typeof(LocalizedText))]
77
public class LocalizedTextEditor : Editor {
8-
private LocalizationManager localizationManager;
9-
private int selectedIndex;
8+
private LocalizationManager _localizationManager;
9+
private int _selectedIndex;
1010

1111
public override void OnInspectorGUI() {
12-
if (localizationManager == null)
13-
localizationManager = FindObjectOfType<LocalizationManager>();
12+
if (_localizationManager == null)
13+
_localizationManager = FindObjectOfType<LocalizationManager>();
14+
1415
LocalizedText myTarget = (LocalizedText)target;
1516
myTarget.key = EditorGUILayout.TextField("Translation ID", myTarget.key);
16-
if (localizationManager != null)
17+
18+
string[] keysToShow = _localizationManager.GetKeys();
19+
if (keysToShow != null)
1720
{
18-
string[] keysToShow = localizationManager.GetKeys();
19-
if (keysToShow != null)
20-
{
21-
GUILayout.Label("Select key ID");
22-
selectedIndex = EditorGUILayout.Popup(selectedIndex, keysToShow);
23-
if (GUILayout.Button("Set selected key"))
24-
myTarget.key = keysToShow[selectedIndex];
25-
}
21+
GUILayout.Label("Select key ID");
22+
_selectedIndex = EditorGUILayout.Popup(_selectedIndex, keysToShow);
23+
if (GUILayout.Button("Set selected key"))
24+
myTarget.key = keysToShow[_selectedIndex];
2625
}
2726
}
2827
}

Assets/LocalizationToolkit/LocalizationManager.cs

Lines changed: 0 additions & 166 deletions
This file was deleted.
528 Bytes
Binary file not shown.

Assets/LocalizationToolkit/Scripts.meta

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
using System.Collections.Generic;
2+
using UnityEngine;
3+
using UnityEngine.UI;
4+
5+
public class DropdownChange : MonoBehaviour {
6+
private Dropdown _dropdown;
7+
8+
private void Start() {
9+
_dropdown = GetComponent<Dropdown>();
10+
InitLanguageSelection();
11+
}
12+
13+
/// <summary>Fetch available languages</summary>
14+
private void InitLanguageSelection() {
15+
if (_dropdown) {
16+
_dropdown.options.Clear();
17+
18+
List<Dropdown.OptionData> options = new List<Dropdown.OptionData>();
19+
string[] languages = LocalizationManager.instance.GetAvailableLanguages();
20+
if (languages != null)
21+
{
22+
for (int i = 0; i < languages.Length; i++)
23+
{
24+
options.Add(new Dropdown.OptionData(languages[i]));
25+
}
26+
_dropdown.AddOptions(options);
27+
_dropdown.onValueChanged.AddListener(ChangeLanguage);
28+
}
29+
}
30+
}
31+
32+
/// <summary>Change language by index</summary>
33+
/// <param name="langIndex">Language Index</param>
34+
private void ChangeLanguage(int langIndex) {
35+
string lang = _dropdown.options[langIndex].text;
36+
LocalizationManager.instance.LoadLanguage(lang);
37+
}
38+
}

0 commit comments

Comments
 (0)