public override bool Invoke(ChatData chatData)
        {
            StringBuilder msg = new StringBuilder();

            msg.AppendLine($"Client Culture {MyAPIGateway.Session.Config.Language}");

            MyTexts.LanguageDescription clientLanguage = MyTexts.Languages[MyAPIGateway.Session.Config.Language];

            msg.AppendLine($"Client Culture {clientLanguage.CultureName}-{clientLanguage.SubcultureName}");
            msg.AppendLine($@"Client Localized string: ""{Localize.GetResource(Localize.WorldSaved, MyAPIGateway.Session.Name)}""");
            msg.AppendLine($@"Client Localized string: ""{Localize.GetResource("DisplayName_Item_GoldIngot")}""");
            msg.AppendLine($@"Client Substitute string: ""{MyTexts.SubstituteTexts("{LOC:DisplayName_Item_GoldIngot}")}""");
            msg.AppendLine($@"Client Substitute strings: ""{Localize.SubstituteTexts("{LOC:DisplayName_Item_GoldIngot}{LOC:DisplayName_Item_SilverIngot}")}""");
            msg.AppendLine($@"Client Substitute strings: ""{Localize.SubstituteTexts("Some {LOC:DisplayName_Item_GoldIngot} and {LOC:DisplayName_Item_SilverIngot}.")}""");
            int count1 = 10;
            int count2 = 20;
            int count3 = 30;
            int count4 = 40;

            msg.AppendResourceLine(@"Client Substitute strings: ""{0}x {LOC:DisplayName_Item_PlatinumIngot}. {1}x {LOC:DisplayName_Item_GoldIngot}. {2}x {LOC:DisplayName_Item_SilverIngot}. {3}x {LOC:DisplayName_Item_IronIngot}.""", count1, count2, count3, count4);
            msg.AppendResourceLine(@"Client Substitute strings: ""{LOC:NotificationHintTurnPowerOff}""", "XXX");

            MyAPIGateway.Utilities.SendMissionScreen(chatData.SenderSteamId, "/Test01", null, " ", msg.ToString(), null, "OK");

            return(true);
        }
Пример #2
0
        public override bool Invoke(ChatData chatData)
        {
            StringBuilder msg = new StringBuilder();

            MyTexts.LanguageDescription languageRu = MyTexts.Languages[MyLanguagesEnum.Russian];
            MyTexts.Clear();
            MyTexts.LoadTexts(Path.Combine(MyAPIGateway.Utilities.GamePaths.ContentPath, "Data", "Localization"), languageRu.CultureName, languageRu.SubcultureName);
            msg.AppendLine($"Server Culture: {languageRu.Name}: {languageRu.CultureName}-{languageRu.SubcultureName}");
            msg.AppendLine($@"Server Localized string: ""{Localize.GetResource(Localize.WorldSaved, MyAPIGateway.Session.Name)}""");
            msg.AppendLine($@"Server Localized string: ""{Localize.GetResource("DisplayName_Item_GoldIngot")}""");
            msg.AppendLine();

            MyTexts.LanguageDescription languageEn = MyTexts.Languages[MyLanguagesEnum.German];
            MyTexts.Clear();
            MyTexts.LoadTexts(Path.Combine(MyAPIGateway.Utilities.GamePaths.ContentPath, "Data", "Localization"), languageEn.CultureName, languageRu.SubcultureName);
            msg.AppendLine($"Server Culture: {languageEn.Name}: {languageEn.CultureName}-{languageEn.SubcultureName}");
            msg.AppendLine($@"Server Localized string: ""{Localize.GetResource(Localize.WorldSaved, MyAPIGateway.Session.Name)}""");
            msg.AppendLine($@"Server Localized string: ""{Localize.GetResource("DisplayName_Item_GoldIngot")}""");
            msg.AppendLine();

            MyTexts.LanguageDescription languageOriginal = MyTexts.Languages[MyAPIGateway.Session.Config.Language];
            MyTexts.Clear();
            MyTexts.LoadTexts(Path.Combine(MyAPIGateway.Utilities.GamePaths.ContentPath, "Data", "Localization"), languageOriginal.CultureName, languageOriginal.SubcultureName);
            msg.AppendLine($"Server Culture: {languageOriginal.Name}: {languageOriginal.CultureName}-{languageOriginal.SubcultureName}");
            msg.AppendLine($@"Server Localized string: ""{Localize.GetResource(Localize.WorldSaved, MyAPIGateway.Session.Name)}""");
            msg.AppendLine($@"Server Localized string: ""{Localize.GetResource("DisplayName_Item_GoldIngot")}""");
            msg.AppendLine();

            MyAPIGateway.Utilities.SendMissionScreen(chatData.SenderSteamId, "/Test03", null, " ", msg.ToString(), null, "OK");

            return(true);
        }
Пример #3
0
        // Reflection copy of MyTexts.AddLanguage
        private static void AddLanguage(MyLanguagesEnum id, string cultureName, string subcultureName = null, string displayName = null, float guiTextScale = 1f, bool isCommunityLocalized = true)
        {
            // Create an empty instance of LanguageDescription.
            MyTexts.LanguageDescription languageDescription = ReflectionUtil.ConstructPrivateClass <MyTexts.LanguageDescription>(
                new Type[] { typeof(MyLanguagesEnum), typeof(string), typeof(string), typeof(string), typeof(float), typeof(bool) },
                new object[] { id, displayName, cultureName, subcultureName, guiTextScale, isCommunityLocalized });

            Dictionary <MyLanguagesEnum, MyTexts.LanguageDescription> m_languageIdToLanguage = typeof(MyTexts).GetStaticField <Dictionary <MyLanguagesEnum, MyTexts.LanguageDescription> >("m_languageIdToLanguage");
            Dictionary <string, MyLanguagesEnum> m_cultureToLanguageId = typeof(MyTexts).GetStaticField <Dictionary <string, MyLanguagesEnum> >("m_cultureToLanguageId");

            if (!m_languageIdToLanguage.ContainsKey(id))
            {
                m_languageIdToLanguage.Add(id, languageDescription);
                m_cultureToLanguageId.Add(languageDescription.FullCultureName, id);
            }
        }
Пример #4
0
        // Reflection copy of MyTexts.AddLanguage
        private static void AddLanguage(MyLanguagesEnum id, string cultureName, string subcultureName = null, string displayName = null, float guiTextScale = 1f, bool isCommunityLocalized = true)
        {
            // Create an empty instance of LanguageDescription.
            ConstructorInfo constructorInfo = typeof(MyTexts.LanguageDescription).GetConstructor(BindingFlags.Instance | BindingFlags.NonPublic, null,
                                                                                                 new Type[] { typeof(MyLanguagesEnum), typeof(string), typeof(string), typeof(string), typeof(float), typeof(bool) }, null);

            MyTexts.LanguageDescription languageDescription = (MyTexts.LanguageDescription)constructorInfo.Invoke(new object[] { id, displayName, cultureName, subcultureName, guiTextScale, isCommunityLocalized });

            Dictionary <MyLanguagesEnum, MyTexts.LanguageDescription> m_languageIdToLanguage = typeof(MyTexts).GetStaticField <Dictionary <MyLanguagesEnum, MyTexts.LanguageDescription> >("m_languageIdToLanguage");
            Dictionary <string, MyLanguagesEnum> m_cultureToLanguageId = typeof(MyTexts).GetStaticField <Dictionary <string, MyLanguagesEnum> >("m_cultureToLanguageId");

            if (!m_languageIdToLanguage.ContainsKey(id))
            {
                m_languageIdToLanguage.Add(id, languageDescription);
                m_cultureToLanguageId.Add(languageDescription.FullCultureName, id);
            }
        }
        public override bool Invoke(ChatData chatData)
        {
            StringBuilder msg = new StringBuilder();

            msg.AppendLine($"Server Culture {MyAPIGateway.Session.Config.Language}");

            MyTexts.LanguageDescription serverLanguage = MyTexts.Languages[MyAPIGateway.Session.Config.Language];
            msg.AppendLine($"Server Culture {serverLanguage.CultureName}-{serverLanguage.SubcultureName}");
            msg.AppendLine($@"Server Localized string: ""{Localize.GetResource(Localize.WorldSaved, MyAPIGateway.Session.Name)}""");
            msg.AppendLine($@"Server Localized string: ""{Localize.GetResource("DisplayName_Item_GoldIngot")}""");

            MyTexts.LanguageDescription clientLanguage = MyTexts.Languages[chatData.Language];
            msg.AppendLine();
            msg.AppendLine($"Client Culture {chatData.Language}");
            msg.AppendLine($"Client Culture {clientLanguage.CultureName}-{clientLanguage.SubcultureName}");
            msg.AppendLine();
            msg.AppendLine($@"Client Localized string cannot be done, as the other resources cannot loaded without switching the entire server/client.");

            MyAPIGateway.Utilities.SendMissionScreen(chatData.SenderSteamId, " /Test02", null, " ", msg.ToString(), null, "OK");

            return(true);
        }