public override void OnInspectorGUI()
    {
        serializedObject.Update();

        EditorGUILayout.PropertyField(targetComponent);

        Localize.TargetComponent target = (Localize.TargetComponent)targetComponent.enumValueIndex;

        switch (target)
        {
        case Localize.TargetComponent.AudioSource:
            EditorGUILayout.PropertyField(audioClips, new GUIContent("AudioClips:"), true);
            ShowArrayProperty(audioClips);
            break;

        case Localize.TargetComponent.Image:
            EditorGUILayout.PropertyField(sprites, new GUIContent("Sprites:"), true);
            ShowArrayProperty(sprites);
            break;

        case Localize.TargetComponent.RTLText:
            EditorGUILayout.PropertyField(localizedString, new GUIContent("Key"), true);
            EditorGUILayout.PropertyField(outline, new GUIContent("Outline"), true);
            EditorGUILayout.PropertyField(fixedFontAsset, new GUIContent("FixedFontAsset?"), true);
            break;

        case Localize.TargetComponent.Font:
            EditorGUILayout.PropertyField(fonts, new GUIContent("Fonts:"), true);
            ShowArrayProperty(fonts);
            break;

        case Localize.TargetComponent.FontAsset:
            EditorGUILayout.PropertyField(fontAssets, new GUIContent("FontAssets:"), true);
            ShowArrayProperty(fontAssets);
            break;

        case Localize.TargetComponent.GridLayoutGroup:
            EditorGUILayout.PropertyField(startCorner, new GUIContent("StartCorner:"), true);
            break;

        case Localize.TargetComponent.Position2D:
            EditorGUILayout.PropertyField(positions, new GUIContent("2D Positions:"), true);
            ShowArrayProperty(positions);
            break;
        }

        foreach (LocalizationManager.LocalizedLanguage language in System.Enum.GetValues(typeof(LocalizationManager.LocalizedLanguage)))
        {
            if (GUILayout.Button(language.ToString()))
            {
                TargetLocalize.ApplyLocalization((int)language, true);
            }
        }

        serializedObject.ApplyModifiedProperties();
    }