Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Vytáhnutí z resources podle jazyka

Aktivity
Avatar
Adam Gajdečka:11.3.2018 10:15

Ahoj, prosím o radu. Mám aplikaci ve více jazycích, každý uživatel si nastaví svůj jazyk.Takže po nastavení, aplikace používá všude vybraný jazyk.

Problémem je, když uživatel provede nějakou akci (třeba pozvat kamaráda emailem), tak potřebuji tento email poslat v jiném jazyce.

Používám resources pro jazyky.

Klasicky pro uživatele měním jazyk takto:

public ActionResult Change(String LanguageAbbrevation)
        {
            if (LanguageAbbrevation!=null)
            {
                Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(LanguageAbbrevation);
                Thread.CurrentThread.CurrentUICulture = new CultureInfo(LanguageAbbrevation);
            }

            HttpCookie cookie = new HttpCookie("Language");
            cookie.Value = LanguageAbbrevation;
            Response.Cookies.Add(cookie);
            return Redirect(Request.UrlReferrer.ToString());
        }

Mám nějakou metodu, kde odesílám email. Mohu tedy před ní napsat

Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("en");
           Thread.CurrentThread.CurrentUICulture = new CultureInfo("en");

a nakonec metody opět to samé, jen změním jazyk. Ovšem toto mi připadá dost škaredé řešení. Jde to nějak pěkněji udělat? Díky

 
Odpovědět
11.3.2018 10:15
Avatar
vajkuba1234
Člen
Avatar
Odpovídá na Adam Gajdečka
vajkuba1234:12.3.2018 2:13

Muzes to udelat treba GetGlobalResou­rce(string, string) a nebo Resources.Glo­balniResource­.Nazev. Hlavne musis mit resource v asp slozce (right click: Add App_GlobalResou­rces).

Nahoru Odpovědět
12.3.2018 2:13
No hope, no future, JUST WAR!
Avatar
vajkuba1234
Člen
Avatar
Nahoru Odpovědět
4.4.2018 3:34
No hope, no future, JUST WAR!
Avatar
Odpovídá na vajkuba1234
Adam Gajdečka:4.4.2018 7:08

Zatím se mi to nepodařilo dořešit. Já mám ty resources mimo můj projekt v knihovně, protože to potřebuji používat pro více aplikaci

 
Nahoru Odpovědět
4.4.2018 7:08
Avatar
Adam Gajdečka:19.5.2018 0:33
public static string GetTranslationByLanguage(string name, int languageId)
       {
           return MyLibrary.Resources.Lang.Basic.ResourceManager.GetString(name,
          GetCultureInfo(languageId));
       }

       public static CultureInfo GetCultureInfo(int languageId)
       {
           try
           {
               string abb = GetLanguageList().Where(s => s.Id == languageId).Single().Abbreviation;
               return System.Globalization.CultureInfo.GetCultureInfo(abb);
           }
           catch (Exception)
           {

               return null;
           }

       }
Editováno 19.5.2018 0:34
Akceptované řešení
+5 Zkušeností
Řešení problému
 
Nahoru Odpovědět
19.5.2018 0:33
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 5 zpráv z 5.