Exemple #1
0
        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;
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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));
        }
Exemple #4
0
        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);
        }
Exemple #5
0
        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));
        }
Exemple #6
0
        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;
        }
Exemple #7
0
        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.");
            }
        }
Exemple #8
0
 public bool HasText(STBL.Languages language)
 {
     return(GetText(language) != null);
 }
Exemple #9
0
        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
                    });
                }
            }
        }
Exemple #11
0
        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;
            });
        }