private void ReferencingLanguageSelector_SelectedIndexChanged(object sender, EventArgs e) { if (!(ReferencingLanguageSelector.SelectedItem is Forms.LanguageComboBoxItem languageSelected)) { return; } ReferencingLanguageTextBox.Text = Tools.NormalizeLineEndings(STBLEntry.GetText((STBL.Languages)languageSelected.Language)); DefaultReferenceLanguage = (STBL.Languages)languageSelected.Language; }
public void SetText(string languageIdentifier, string languageText) { STBL.Languages language = STBL.Languages.English; if (!Enum.TryParse(languageIdentifier, true, out language)) { throw new ArgumentException("'" + languageIdentifier + "' is not a valid language."); } SetText(language, languageText); }
public string GetText(string languageIdentifier) { STBL.Languages language = STBL.Languages.English; if (!Enum.TryParse(languageIdentifier, true, out language)) { throw new ArgumentException("'" + languageIdentifier + "' is not a valid language."); } return(GetText(language)); }
public void SetText(int languageNumber, string languageText) { STBL.Languages language = STBL.Languages.English; if (!Enum.TryParse(languageNumber.ToString(), out language)) { throw new ArgumentException("'" + languageNumber.ToString() + "' is not a valid language number."); } SetText(language, languageText); }
public string GetText(int languageNumber) { STBL.Languages language = STBL.Languages.English; if (!Enum.TryParse(languageNumber.ToString(), out language)) { throw new ArgumentException("'" + languageNumber.ToString() + "' is not a valid language number."); } return(GetText(language)); }
private void EditingLanguageSelector_SelectedIndexChanged(object sender, EventArgs e) { if (!(EditingLanguageSelector.SelectedItem is Forms.LanguageComboBoxItem languageSelected)) { return; } if (CurrentLanguageStates[(STBL.Languages)languageSelected.Language]) { EditingLanguageTextBox.Text = CurrentLanguageStrings[(STBL.Languages)languageSelected.Language]; ChangeEditingLanguageTextBoxState(true); } else { EditingLanguageTextBox.Text = ""; ChangeEditingLanguageTextBoxState(false); } DefaultEditingLanguage = (STBL.Languages)languageSelected.Language; }
public void SetText(STBL.Languages language, string languageText) { switch (language) { case STBL.Languages.English: English = languageText; return; case STBL.Languages.ChineseSimplified: ChineseSimplified = languageText; return; case STBL.Languages.ChineseTraditional: ChineseTraditional = languageText; return; case STBL.Languages.Czech: Czech = languageText; return; case STBL.Languages.Danish: Danish = languageText; return; case STBL.Languages.Dutch: Dutch = languageText; return; case STBL.Languages.Finnish: Finnish = languageText; return; case STBL.Languages.French: French = languageText; return; case STBL.Languages.German: German = languageText; return; case STBL.Languages.Greek: Greek = languageText; return; case STBL.Languages.Hungarian: Hungarian = languageText; return; case STBL.Languages.Italian: Italian = languageText; return; case STBL.Languages.Japanese: Japanese = languageText; return; case STBL.Languages.Korean: Korean = languageText; return; case STBL.Languages.Norwegian: Norwegian = languageText; return; case STBL.Languages.Polish: Polish = languageText; return; case STBL.Languages.PortuguesePortugal: PortuguesePortugal = languageText; return; case STBL.Languages.PortugueseBrazil: PortugueseBrazil = languageText; return; case STBL.Languages.Russian: Russian = languageText; return; case STBL.Languages.SpanishSpain: SpanishSpain = languageText; return; case STBL.Languages.SpanishMexico: SpanishMexico = languageText; return; case STBL.Languages.Swedish: Swedish = languageText; return; case STBL.Languages.Thai: Thai = languageText; return; default: throw new ArgumentException("'" + language.ToString() + "' is not a valid language."); } }
public bool HasText(STBL.Languages language) { return(GetText(language) != null); }
public string GetText(STBL.Languages language) { switch (language) { case STBL.Languages.English: return(English); case STBL.Languages.ChineseSimplified: return(ChineseSimplified); case STBL.Languages.ChineseTraditional: return(ChineseTraditional); case STBL.Languages.Czech: return(Czech); case STBL.Languages.Danish: return(Danish); case STBL.Languages.Dutch: return(Dutch); case STBL.Languages.Finnish: return(Finnish); case STBL.Languages.French: return(French); case STBL.Languages.German: return(German); case STBL.Languages.Greek: return(Greek); case STBL.Languages.Hungarian: return(Hungarian); case STBL.Languages.Italian: return(Italian); case STBL.Languages.Japanese: return(Japanese); case STBL.Languages.Korean: return(Korean); case STBL.Languages.Norwegian: return(Norwegian); case STBL.Languages.Polish: return(Polish); case STBL.Languages.PortuguesePortugal: return(PortuguesePortugal); case STBL.Languages.PortugueseBrazil: return(PortugueseBrazil); case STBL.Languages.Russian: return(Russian); case STBL.Languages.SpanishSpain: return(SpanishSpain); case STBL.Languages.SpanishMexico: return(SpanishMexico); case STBL.Languages.Swedish: return(Swedish); case STBL.Languages.Thai: return(Thai); default: throw new ArgumentException("'" + language.ToString() + "' is not a valid language"); } }
public static void ExportToPackageFiles(STBLXMLFile exportingFile, string exportDirectoryPath, bool buildSourceInfoFiles) { Directory.CreateDirectory(exportDirectoryPath); STBL.Languages fallbackLanguage = STBL.GetLanguage(exportingFile.FallbackLanguage); foreach (STBL.Languages language in STBL.GetAllLanguages()) { string languageFileName = string.Format(exportingFile.STBLName, new STBL.LanguageFileName(language)); string stblFileName = languageFileName + "." + STBLFileExtension; string stblFilePath = Path.Combine(exportDirectoryPath, stblFileName); using (BinaryWriter exportFileWriter = new BinaryWriter(new FileStream(stblFilePath, FileMode.Create))) { string[] texts = new string[exportingFile.Entries.Count]; ushort[] textsByteCounts = new ushort[exportingFile.Entries.Count]; uint entryByteCount = 0; for (int entryIndex = 0; entryIndex < exportingFile.Entries.Count; entryIndex++) { string entryLanguageText = exportingFile.Entries[entryIndex].GetText(language); if (entryLanguageText == null) { entryLanguageText = exportingFile.Entries[entryIndex].GetText(fallbackLanguage); } if (entryLanguageText == null) { entryLanguageText = exportingFile.Entries[entryIndex].Identifier; } texts[entryIndex] = entryLanguageText; textsByteCounts[entryIndex] = (ushort)Encoding.UTF8.GetByteCount(texts[entryIndex]); entryByteCount += textsByteCounts[entryIndex] + 1u; } exportFileWriter.Write(Encoding.UTF8.GetBytes("STBL")); exportFileWriter.Write((byte)5); exportFileWriter.Write((ushort)0); exportFileWriter.Write((uint)exportingFile.Entries.Count); exportFileWriter.Write(0u); exportFileWriter.Write((ushort)0); exportFileWriter.Write(entryByteCount); for (int textsIndex = 0; textsIndex < exportingFile.Entries.Count; textsIndex++) { exportFileWriter.Write(exportingFile.Entries[textsIndex].Key); exportFileWriter.Write((byte)0); exportFileWriter.Write(textsByteCounts[textsIndex]); exportFileWriter.Write(texts[textsIndex].ToCharArray()); } } if (buildSourceInfoFiles) { string sourceInfoFilePath = stblFilePath + "." + SourceInfoFileExtension; string languageInstanceHexadecimal = ((int)language).ToString("x2") + exportingFile.STBLInstance.ToString("x").Substring(2); ulong languageInstance = ulong.Parse(languageInstanceHexadecimal, NumberStyles.HexNumber); Tools.WriteXML(sourceInfoFilePath, new SourceInfo() { Name = languageFileName, TypeID = 570775514, GroupID = exportingFile.STBLGroup, InstanceID = languageInstance }); } } }
public Predicate <STBLXMLEntry> GetFilterPredicate() { string keyFilterLower = KeyFilter?.ToLower(); Regex identifierFilterRegex = null; if (IdentifierFilterUseRegex) { identifierFilterRegex = new Regex(IdentifierFilter, RegexOptions.Multiline | (IdentifierFilterMatchCase ? RegexOptions.None : RegexOptions.IgnoreCase)); } Regex textFilterRegex = null; if (TextFilterUseRegex) { textFilterRegex = new Regex(TextFilter, RegexOptions.Multiline | (TextFilterMatchCase ? RegexOptions.None : RegexOptions.IgnoreCase)); } return(delegate(STBLXMLEntry entry) { if (KeyFilter != null) { string itemKeyDecimal = entry.Key.ToString(); string itemKeyHexadecimal = "0x" + entry.Key.ToString("x"); if (!itemKeyDecimal.Contains(keyFilterLower) && !itemKeyHexadecimal.Contains(keyFilterLower)) { return true; } } if (IdentifierFilter != null) { if (!IdentifierFilterUseRegex || identifierFilterRegex == null) { if (entry.Identifier.IndexOf(IdentifierFilter, IdentifierFilterMatchCase ? StringComparison.Ordinal : StringComparison.OrdinalIgnoreCase) < 0) { return true; } } else { if (!identifierFilterRegex.IsMatch(entry.Identifier)) { return true; } } } if (TextFilter != null) { foreach (STBL.Languages languague in STBL.GetAllLanguages()) { string languageText = entry.GetText(languague); if (languageText == null) { continue; } if (!TextFilterUseRegex || textFilterRegex == null) { if (languageText.IndexOf(TextFilter, TextFilterMatchCase ? StringComparison.Ordinal : StringComparison.OrdinalIgnoreCase) < 0) { return true; } } else { if (!textFilterRegex.IsMatch(languageText)) { return true; } } } } if (UntranslatedFilter != null) { try { STBL.Languages untranslatedFilterLanguague = STBL.GetLanguage((int)UntranslatedFilter); if (entry.GetText(untranslatedFilterLanguague) != null) { return true; } } catch { } } return false; }); }