Skip to content

Commit e03606a

Browse files
committed
feat: added filtred
1 parent 3f7089b commit e03606a

1 file changed

Lines changed: 23 additions & 7 deletions

File tree

Assets/Code/Localization/Editor/LocalizationEditorWindow.cs

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -52,14 +52,20 @@ private void Save()
5252

5353
[FoldoutGroup("Add New Language", expanded: true)]
5454
[ShowInInspector, PropertyOrder(0)]
55-
private SystemLanguage newLanguage = SystemLanguage.Afrikaans;
55+
[ValueDropdown("GetNewLanguages")]
56+
private SystemLanguage _newLanguage = SystemLanguage.Afrikaans;
5657

5758
[FoldoutGroup("Add New Language")]
5859
[ShowInInspector, PropertyOrder(1)]
59-
[Button("🆕 Create New Language From Base (English)", ButtonSizes.Large), GUIColor(0.1f, 0.8f, 1f)]
60-
private void CreateNewLanguageFromEnglish()
60+
[ValueDropdown("GetAvailableLanguages")]
61+
private string _baseLanguage = "English";
62+
63+
[FoldoutGroup("Add New Language")]
64+
[ShowInInspector, PropertyOrder(2)]
65+
[Button("🆕 Create New Language From Base", ButtonSizes.Large), GUIColor(0.1f, 0.8f, 1f)]
66+
private void CreateNewLanguageFromBase()
6167
{
62-
string newLang = newLanguage.ToString();
68+
string newLang = _newLanguage.ToString();
6369
string targetPath = Path.Combine(LocalizationFolder, newLang + ".txt");
6470

6571
if (File.Exists(targetPath))
@@ -68,17 +74,17 @@ private void CreateNewLanguageFromEnglish()
6874
return;
6975
}
7076

71-
string basePath = Path.Combine(LocalizationFolder, "English.txt");
77+
string basePath = Path.Combine(LocalizationFolder, _baseLanguage + ".txt");
7278
if (!File.Exists(basePath))
7379
{
74-
Debug.LogError("Base English.txt not found!");
80+
Debug.LogError($"Base language file '{_baseLanguage}.txt' not found!");
7581
return;
7682
}
7783

7884
File.Copy(basePath, targetPath);
7985
AssetDatabase.Refresh();
8086

81-
Debug.Log($"✅ Created '{newLang}' from English.");
87+
Debug.Log($"✅ Created '{newLang}' from '{_baseLanguage}'.");
8288
}
8389

8490
private void LoadLocalizationFile()
@@ -114,6 +120,16 @@ private IEnumerable<string> GetAvailableLanguages()
114120
yield return Path.GetFileNameWithoutExtension(file);
115121
}
116122

123+
private IEnumerable<SystemLanguage> GetNewLanguages()
124+
{
125+
var existing = new HashSet<string>(GetAvailableLanguages(), StringComparer.OrdinalIgnoreCase);
126+
foreach (SystemLanguage lang in Enum.GetValues(typeof(SystemLanguage)))
127+
{
128+
if (!existing.Contains(lang.ToString()))
129+
yield return lang;
130+
}
131+
}
132+
117133
[Serializable]
118134
public class LocalizationEntry
119135
{

0 commit comments

Comments
 (0)