예제 #1
0
        protected TextLocal GenerateTextLocal(TextCode textCode, TextLocalModel textLocalModel, List <string> listParams)
        {
            TextLocal textLocal = new TextLocal();

            textLocal.TextLocalModelId = textLocalModel.Id;

            // insert params
            if (listParams != null)
            {
                // check the params count
                // todo:
                try
                {
                    textLocal.Text = string.Format(textLocalModel.Text, listParams.ToArray());
                }
                catch
                {
                    // error!
                    textLocal.Text = textLocalModel.Text;
                }
            }
            else
            {
                textLocal.Text = textLocalModel.Text;
            }

            return(textLocal);
        }
예제 #2
0
        public void ChangeCurrentLang_GetTextLocal_ok()
        {
            EtagairCore core = Common.CreateCore(RepositConfig);

            //----Define languages in the current catalog
            core.Editor.DefineLanguage(LanguageCode.en);    // ->becomes the default language
            core.Editor.DefineLanguage(LanguageCode.fr);

            // create textCode and translation
            TextCode       tcName     = core.Editor.CreateTextCode("Name");
            TextLocalModel tl_en_Name = core.Editor.CreateTextLocalModel(LanguageCode.en, tcName, "Name");
            TextLocalModel tl_fr_Name = core.Editor.CreateTextLocalModel(LanguageCode.fr, tcName, "Nom");

            // create textCode and translation
            TextCode tcNameToshiba = core.Editor.CreateTextCode("NameToshiba");

            core.Editor.CreateTextLocalModel(LanguageCode.en, tcNameToshiba, "Laptop Toshiba Core i7 RAM 8Go HD 1To Win10");
            core.Editor.CreateTextLocalModel(LanguageCode.fr, tcNameToshiba, "Ordinateur portable Toshiba Core i7 RAM 8Go DD 1To Win10");

            // change the current language from en to fr
            core.Searcher.SetCurrentLanguage(LanguageCode.fr);

            // get localized text
            TextLocal tlNameFound = core.Editor.GenerateTextLocal(tcName);

            // should be in french
            Assert.AreEqual(tl_fr_Name.Id, tlNameFound.TextLocalModelId, "the TextLocal Language should be 'en'");
        }
예제 #3
0
        /// <summary>
        /// Dev the language and text data model.
        /// E:
        ///   P: key=TC:tcName= Value=TC:tcNameToshiba
        /// </summary>
        public void ManageLanguagesAndLocalizedText()
        {
            EtagairEngine engine = CreateEngine();

            Console.WriteLine("Create TextCode, TextLocalModel, and then TextLocal.");

            //----set defined (activate) language codes in the application
            engine.Editor.DefineLanguage(LanguageCode.en);
            engine.Editor.DefineLanguage(LanguageCode.fr);

            // create localized text for main languages managed in the application
            TextCode tcName = engine.Editor.CreateTextCode("Name");

            engine.Editor.CreateTextLocalModel(LanguageCode.en, tcName, "Name");
            engine.Editor.CreateTextLocalModel(LanguageCode.fr, tcName, "Nom");

            TextCode tcValueToshiba = engine.Editor.CreateTextCode("ValueToshiba");

            engine.Editor.CreateTextLocalModel(LanguageCode.en, tcValueToshiba, "Laptop Toshiba Core i7 RAM 8Go HD 1To Win10");
            engine.Editor.CreateTextLocalModel(LanguageCode.fr, tcValueToshiba, "Ordinateur portable Toshiba Core i7 RAM 8Go DD 1To Win10");

            // create an entity with one property: key and value are TextCode
            Entity toshibaCoreI7 = engine.Editor.CreateEntity();

            // Add a property to an object: key - value, both are textCode (will be displayed translated depending on the language)
            engine.Editor.CreateProperty(toshibaCoreI7, tcName, tcValueToshiba);

            // set the current language, get the localized/translated text
            engine.Searcher.SetCurrentLanguage(LanguageCode.en);

            // create/generate the localized/translated text of a textCode in the current language
            TextLocal tlName = engine.Editor.GenerateTextLocal(tcName);

            // Output: Name in current language (en): Name
            Console.WriteLine("Name in current language (en): " + tlName.Text);

            // create/generate the localized/translated text of a textCode in the specified language
            TextLocal tlNameFr = engine.Editor.GenerateTextLocal(tcName, LanguageCode.fr);

            // Output: Name in fr language: Nom
            Console.WriteLine("Name in fr language: " + tlNameFr.Text);
        }
        public void CreateTextWithOneParam_ParamNotProvided()
        {
            EtagairCore core = Common.CreateCore(RepositConfig);

            //----Define languages in the current catalog
            core.Editor.DefineLanguage(LanguageCode.en);    // ->becomes the default language
            core.Editor.DefineLanguage(LanguageCode.fr);

            // create textCode and translation
            TextCode tcName = core.Editor.CreateTextCode("NameIs", 1);

            TextLocalModel tl_en_Name = core.Editor.CreateTextLocalModel(LanguageCode.en, tcName, "My name is {0}: ");
            TextLocalModel tl_fr_Name = core.Editor.CreateTextLocalModel(LanguageCode.fr, tcName, "Mon nom est {0}: ");

            // get localized text
            List <string> listParams = new List <string>();
            //listParams.Add("Yvan");
            TextLocal tlNameFound = core.Editor.GenerateTextLocal(tcName, listParams);

            // should be in english
            Assert.AreEqual("My name is {0}: ", tlNameFound.Text, "the TextLocal should include the parameter");
        }
예제 #5
0
        public void GetTextLocal_enGB_Get_en()
        {
            EtagairCore core = Common.CreateCore(RepositConfig);

            //----Define languages in the current catalog
            core.Editor.DefineLanguage(LanguageCode.en);    // ->becomes the default language
            core.Editor.DefineLanguage(LanguageCode.en_GB);

            // create textCode and translation, only for the en lang
            TextCode       tcName     = core.Editor.CreateTextCode("Name");
            TextLocalModel tl_en_Name = core.Editor.CreateTextLocalModel(LanguageCode.en, tcName, "Name");

            // change the current language from en to en_GB (exp: because the users are in UK)
            core.Searcher.SetCurrentLanguage(LanguageCode.en_GB);


            // get localized text
            TextLocal tlNameFound = core.Editor.GenerateTextLocal(tcName);

            // en textLocal doesn't exists, so return the en main languageCode textLocal
            Assert.AreEqual(tl_en_Name.Id, tlNameFound.TextLocalModelId, "the TextLocal Language should be 'en'");
        }
예제 #6
0
        /// <summary>
        /// Dev the language and text data model.
        /// Ent:
        ///     tc:Name= tc:NameToshiba
        /// </summary>
        /// <param name="core"></param>
        static void CreateLangAndTexts(EtagairCore core)
        {
            //----set defined (activate) language codes in the current catalog
            core.Editor.DefineLanguage(LanguageCode.en);
            core.Editor.DefineLanguage(LanguageCode.en_GB);
            core.Editor.DefineLanguage(LanguageCode.en_US);
            core.Editor.DefineLanguage(LanguageCode.fr);
            core.Editor.DefineLanguage(LanguageCode.fr_FR);


            // create localized text for main languages managed in the application
            TextCode tcName = core.Editor.CreateTextCode("Name");

            core.Editor.CreateTextLocalModel(LanguageCode.en, tcName, "Name");
            core.Editor.CreateTextLocalModel(LanguageCode.fr, tcName, "Nom");

            TextCode tcNameToshiba = core.Editor.CreateTextCode("NameToshiba");

            core.Editor.CreateTextLocalModel(LanguageCode.en, tcNameToshiba, "Laptop Toshiba Core i7 RAM 8Go HD 1To Win10");
            core.Editor.CreateTextLocalModel(LanguageCode.fr, tcNameToshiba, "Ordinateur portable Toshiba Core i7 RAM 8Go DD 1To Win10");

            // set the current language, get the localized/translated text
            core.Searcher.SetCurrentLanguage(LanguageCode.en_GB);

            // define a second current language
            //core.Editor.SetCurrentLang2(LanguageCode.en_GB);

            // create/generate the localized/translated text of a textCode
            // the en_GB language doesn't exists so return the main lang (en for en_GB) textLocal: 'Name'
            TextLocal tlName = core.Editor.GenerateTextLocal(tcName);

            TextLocal tlNameAgain = core.Editor.GenerateTextLocal(tcName, LanguageCode.en);


            // todo: gestion des entités avec textes (sur les textCode) dans la langue courante
            // EntityLoc    pour entity Localized? EntityLzd
        }