Beispiel #1
0
        //@since 3.9.2
        private void AddLocalization(string folderPath, PBXGroup parent)
        {
            PBXFileReference fileReference;
            PBXVariantGroup  newGroup = GetVariantGroup("Localizable.strings", null, parent);

            foreach (string directory in Directory.GetDirectories(folderPath))
            {
                if (directory.EndsWith(".lproj"))
                {
                    DirectoryInfo sourceDirectoryInfo = new DirectoryInfo(directory);
                    string        language            = sourceDirectoryInfo.Name.Split('.') [0];

                    fileReference = GetFile(language);
                    if (fileReference != null)
                    {
                        if (newGroup.HasChild(fileReference.guid))
                        {
                            newGroup.RemoveChild(fileReference.guid);
                        }
                        fileReferences.Remove(fileReference);
                    }
                    fileReference = new PBXFileReference(sourceDirectoryInfo.Name + "/Localizable.strings", language, (TreeEnum)System.Enum.Parse(typeof(TreeEnum), "GROUP"));
                    newGroup.AddChild(fileReference);
                    fileReferences.Add(fileReference);
                }
            }

            foreach (KeyValuePair <string, PBXResourcesBuildPhase> currentObject in resourcesBuildPhases)
            {
                PBXBuildFile buildFile = new PBXBuildFile(newGroup.guid);
                buildFiles.Add(buildFile);
                currentObject.Value.AddBuildFile(buildFile);
            }
        }
Beispiel #2
0
        //@since 3.9.2 localization
        public PBXVariantGroup GetVariantGroup(string name, string path = null, PBXGroup parent = null)
        {
            if (string.IsNullOrEmpty(name))
            {
                return(null);
            }

            if (parent == null)
            {
                parent = rootGroup;
            }

            foreach (KeyValuePair <string, PBXGroup> current in groups)
            {
                //              Debug.Log( "current: " + current.Value.guid + ", " + current.Value.name + ", " + current.Value.path + " - " + parent.HasChild( current.Key ) );
                if (string.IsNullOrEmpty(current.Value.name))
                {
                    if (current.Value.path.CompareTo(name) == 0 && parent.HasChild(current.Key))
                    {
                        return((PBXVariantGroup)current.Value);
                    }
                }
                else if (current.Value.name.CompareTo(name) == 0 && parent.HasChild(current.Key))
                {
                    return((PBXVariantGroup)current.Value);
                }
            }

            PBXVariantGroup result = new PBXVariantGroup(name, path);

            groups.Add(result);
            parent.AddChild(result);

            modified = true;
            return(result);
        }