//@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); } }
//@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); }