public static void InitWindow()
    {
        Localization_SOURCE_Window win = new Localization_SOURCE_Window();

        win.minSize = new Vector2(250, 200);
        win.maxSize = new Vector2(601, 601);
        win.name    = "Localization Manager";
        win.Show();

        PUBLIC_LocalizationArray.Clear();

        INTERNAL_FUNCT_GetManagerPath();
    }
    public static void Init()
    {
        if (initialized)
        {
            return;
        }

        Localization_SOURCE_Window win = new Localization_SOURCE_Window();

        initialized = true;

        PUBLIC_LocalizationArray.Clear();
        INTERNAL_FUNCT_GetManagerPath();
    }
    public override void OnInspectorGUI()
    {
        if (target == null)
        {
            return;
        }
        serializedObject.Update();

        pDrawSpace();

        GUILayout.BeginVertical("Box");
        pDrawProperty(LanguageFiles, "Language Files", "", true);
        pDrawProperty(SelectedLanguage, "Selected Language", "Currently selected language for the localization");
        pDrawSpace(5);
        pDrawProperty(LoadLanguageOnStart, "Load Language On Start", "Load localization after the game startup");
        GUILayout.EndVertical();

        pDrawSpace();

        GUILayout.BeginVertical("Box");
        pDrawLabel("Localization Settings");
        if (GUILayout.Button("Add Key"))
        {
            Localization_SOURCE_Window.Init();
            addKey = true;
            l.Internal_RefreshInternalLocalization();
        }

        if (addKey)
        {
            GUILayout.BeginVertical("Box");
            if (GUILayout.Button("X", GUILayout.Width(40)))
            {
                addKey           = false;
                categorySelected = false;
                category         = 0;
                return;
            }
            pDrawLabel("From Category:");
            GUILayout.BeginHorizontal("Box");
            for (int i = 0; i < l.Categories.Count; i++)
            {
                if (GUILayout.Button(l.Categories[i]))
                {
                    categorySelected = true;
                    category         = i;
                    return;
                }
            }
            GUILayout.EndHorizontal();
            if (categorySelected)
            {
                pDrawLabel("Key:");
                if (GUILayout.Button("Add All", GUILayout.Width(120)))
                {
                    for (int i = 0; i < Localization_SOURCE_Window.PUBLIC_LocalizationArray.Count; i++)
                    {
                        if (Localization_SOURCE_Window.PUBLIC_LocalizationArray[i].Category != category)
                        {
                            continue;
                        }
                        l.Internal_AddKey(Localization_SOURCE_Window.PUBLIC_LocalizationArray[i].Key);
                    }
                    addKey           = false;
                    categorySelected = false;
                    category         = 0;
                    return;
                }
                EditorGUILayout.BeginVertical("Box");
                for (int i = 0; i < Localization_SOURCE_Window.PUBLIC_LocalizationArray.Count; i++)
                {
                    if (Localization_SOURCE_Window.PUBLIC_LocalizationArray[i].Category != category)
                    {
                        continue;
                    }
                    bool passed = true;
                    foreach (Localization_SOURCE._LocalizationSelector sel in l.LocalizationSelector)
                    {
                        if (sel.Key == Localization_SOURCE_Window.PUBLIC_LocalizationArray[i].Key)
                        {
                            passed = false;
                            break;
                        }
                    }
                    if (!passed)
                    {
                        continue;
                    }
                    if (GUILayout.Button(Localization_SOURCE_Window.PUBLIC_LocalizationArray[i].Key))
                    {
                        l.Internal_AddKey(Localization_SOURCE_Window.PUBLIC_LocalizationArray[i].Key);
                        addKey           = false;
                        categorySelected = false;
                        category         = 0;
                        return;
                    }
                }
                EditorGUILayout.EndVertical();
            }
            GUILayout.EndVertical();
        }
        GUILayout.EndVertical();

        pDrawSpace();

        GUILayout.BeginVertical("Box");
        pDrawLabel("Selected Keys Settings");
        pDrawProperty(AT_GameObjectChildsRoot, "GameObject Childs Root", "Starting root for keys containing 'GameObjectChild' assignation type");
        if (l.LocalizationSelector.Count > 0)
        {
            pDrawList(LocalizationSelector);
        }
        GUILayout.EndVertical();
    }