مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

فراز پیامی

عضویت از 1399/06/26

برای دوزبانه کردن وب سایت چه کار دیگه ای باید انجام بدم؟

  • چهارشنبه 26 شهریور 1399
  • 18:16
تشکر میکنم
لنگوییج کنترلر
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace testMVC.web.Controllers
{
رفرنسبه هومکنترلر
    public class LanguageController : Controller
    {
        protected override IAsyncResult BeginExecuteCore(AsyncCallback callback, object state)
        {
            string lang = null;
           /*HttpCookie langCookie = Request.Cookies["culture"];
            if (langCookie != null)
            {
                lang = langCookie.Value;
            }*/
          if (Session["culture"] != null)
                lang = Session["culture"].ToString();
            else
            {
                var userLanguage = Request.UserLanguages;
                var userLang = userLanguage != null ? userLanguage[0] : "";
                if (userLang != "")
                {
                    lang = userLang;
                }
                else
                {
                    lang = LanguageManager.GetDefaultLanguage();
                }
            }
            new LanguageManager().SetLanguage(lang);
            return base.BeginExecuteCore(callback, state);
        }
    }
}
هومکنترلر

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using testMVC.web.Models;

namespace testMVC.web.Controllers
{

[AllowAnonymous]
    public class HomeController : LanguageController
{

#region action

public ActionResult Index()
{
return View();
}

public ActionResult ChiSiamo()
{
return View();
}

        public ActionResult News()
        {
            return View();
        }

public ActionResult Privacy()
{
return View();
}

public ActionResult Contatti()
{
return View();
}

#endregion

        public ActionResult ChangeLanguage(string lang)
        {
            new LanguageManager().SetLanguage(lang);
            return RedirectToAction("Index", "Home");
        }
       /* public ActionResult NewsPart()
        {
            CampoDeiFioriEntities db = new CampoDeiFioriEntities();
            var dbNews = db.MagNovita.Last<MagNovita>();
            var item = from b in db.MagNovita
                       where b.PrgNovita == 4
                       select b;
            return View(dbNews);
        }*/
        
        
}
}


یک کلاس بسازیم به اسم لنگوییج منیجر 

using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Threading;
using System.Web;

namespace testMVC.web
{
    public class LanguageManager
    {
        public static List<Languages> AvailableLanguages = new List<Languages> {   
            new Languages {  
                LanguageFullName = "Italian", LanguageCultureName = "it-IT"  
            }, 
            new Languages {  
                LanguageFullName = "English", LanguageCultureName = "en-US"  
            },   
        };  
        public static bool IsLanguageAvailable(string lang) {  
            return AvailableLanguages.Where(a => a.LanguageCultureName.Equals(lang)).FirstOrDefault() != null ? true : false;  
        }  
        public static string GetDefaultLanguage() {  
            return AvailableLanguages[0].LanguageCultureName;  
        }  
        public void SetLanguage(string lang) {  
           // try {  
                if (!IsLanguageAvailable(lang)) lang = GetDefaultLanguage();
                var cultureInfo = new CultureInfo(lang);  
                Thread.CurrentThread.CurrentUICulture = cultureInfo;  
                Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(cultureInfo.Name);
                HttpContext.Current.Session["culture"] = lang;
                /*HttpCookie langCookie = new HttpCookie("culture", lang);  
                langCookie.Expires = DateTime.Now.AddYears(1);
                HttpContext.Current.Response.SetCookie(langCookie); 
                HttpContext.Current.Response.Cookies.Add(langCookie);*/
           // } catch (Exception) {}  
        }  
    }  
    public class Languages {  
        public string LanguageFullName {  
            get;  
            set;  
        }  
        public string LanguageCultureName {  
            get;  
            set;  
        }  
    } 
}

توی پوشه لی آوت

<!DOCTYPE html>

<html>
<head>
<title>@ViewBag.Title - Campo dei Fiori</title>
<meta charset="utf-8" />

<meta name="viewport" content="width=device-width,  initial-scale=1.0, minimum-scale=1.0">
<link href="~/Content/css/parametri.css" rel="stylesheet" />
<link href="~/Content/css/style.css" rel="stylesheet" />
<link href="~/Content/css/Fonts.css" rel="stylesheet" />


<link rel="shortcut icon" type="image/png" href="~/Content/img/Favicon.png" />

<script src="https://code.jquery.com/jquery-1.9.1.min.js"></script>
<script src="~/Scripts/js/General.js"></script>
@*<script src="~/Scripts/js/jquery.localisation.js"></script>*@
@RenderSection("Scripts", required: false)
</head>
<body>

@RenderSection("PopupVideo", required: false)
<div class="Container">

<div class="header">
<div class="H_Iocon">

                @{
                    var isSelected_IT = !string.IsNullOrEmpty(Session["culture"].ToString()) && Session["culture"].ToString() == "it-IT" ? "Sel" : "";
                    var isSelected_EN = string.IsNullOrEmpty(Session["culture"].ToString()) || Session["culture"].ToString() == "en-US" ? "Sel" : "";
                }

<div class="Lingua"> <span class="@isSelected_IT"> 
                @Html.ActionLink("ITA", "ChangeLanguage", "Home", new { lang = "it-IT" }, null)</span>  
                | 
                    <span class="@isSelected_EN">@Html.ActionLink("ENG", "ChangeLanguage", "Home", new { lang = "en-US" }, null)</span></div>

<a target="_blank" href="https://www.facebook.com/CampoDeiFioriSrl/"><img class="H_FbIcon" src="~/Content/img/H_FbIcon.png" /></a>
<img class="MenuMobile" src="~/Content/img/MenuMobile.png" /><img style="display:none" class="MenuMobile" src="~/Content/img/CloseMenu.png" />
</div>
<a href="@Url.Action("Index", "Home")"> <img class="Logo_Header" src="~/Content/img/Logo.png" />   </a>

<div class="Menu">
<ul>
<li><a href="@Url.Action("ChiSiamo","Home")">@Resources.Global.Menu_Chisiamo</a></li>
<li><a href="#">@Resources.Global.Menu_Novita</a></li>
<li><a href="@Url.Action("Contatti","Home")">@Resources.Global.Menu_Contatti</a></li>
</ul>
<ul class="Lingua">
<li>ITA</li>
<li>ENG</li>
</ul>
</div>

</div>


@RenderBody()

<div class="Footer">
@Resources.Global.Menu_Company - <a href="@Url.Action("Contatti","Home")">@Resources.Global.Menu_Contattaci</a>   - <a href="@Url.Action("Privacy","Home")"> @Resources.Global.Menu_Privacy </a>

</div>
</div>
<div class="ScrollZone "> <span class="ScorriTxt">@Resources.Global.Menu_Scorri</span>    <span class="SaliTxt">@Resources.Global.Menu_Sali</span></div>

</body>
</html>

صفحه ایندکس
اول صفحه

@{
string lang = System.Threading.Thread.CurrentThread.CurrentCulture.ToString().ToLower().Substring(0,2);
    
}

پاسخ های این پرسش

تعداد پاسخ ها : 1 پاسخ
کاربر سایت

kahka

عضویت از 1399/07/04

  • جمعه 4 مهر 1399
  • 18:17
@{
    Layout = "~/Views/Shared/_Layout.cshtml";
}

@{
    string lang = System.Threading.Thread.CurrentThread.CurrentCulture.ToString().ToLower().Substring(0, 2);

}
<div class="GalleryHome">
    <div class="ContGallery">
        <ul>
            <li>
                <a href="/it/Prodotti/Categoria/1">
                    <img src="~/Content/img/GalleryHome/@lang/1.jpg" />
                </a>
            </li>
            <li>
                <a href="/it/Prodotti/Categoria/3">
                    <img src="~/Content/img/GalleryHome/@lang/2.jpg" />
                </a>
            </li>
            <li>
                <a href="/it/Prodotti/Categoria/4">
                    <img src="~/Content/img/GalleryHome/@lang/3.jpg" />
                </a>
            </li>
            <li>
                <a href="/it/Prodotti/Categoria/5">
                    <img src="~/Content/img/GalleryHome/@lang/4.jpg" />
                </a>
            </li>
        </ul>
    </div>
    <div class="GalleryPointer"><ul></ul></div>
</div>


<div class="Blocks">
    <!--[NEWS]-->
    <div class="Blocco" style="height: 377px;">
        @{
            testMVC.web.Models.CampoDeiFioriEntities db = new testMVC.web.Models.CampoDeiFioriEntities();
            var dbNews = db.MagNovita.OrderByDescending(o => o.PrgNovita).FirstOrDefault();
            String newsTitle = dbNews.DesTitolo;
            String newsText = dbNews.DesSottotitolo;
            int newsId = dbNews.PrgNovita;
            String newsImage = dbNews.DesImmagineList;
        }
        <a class="ListLink" href="/it/Novita/Novita/@newsId" style="max-height: 139.226px;">
            <img src="~/Content/img/News/@newsImage">
        </a>
        <p>
            <a href="/it/Novita/Novita/@newsId">   <span>@newsTitle</span></a>
            @newsText
        </p>
    </div>
    <div class="Blocco" style="height: 377px;">
        @{
            var dbProducts = db.MagProdotti.ToList();
            int rnd1 = (new Random()).Next(0, dbProducts.Count);
            var product = dbProducts[rnd1];
            String prdTitle = product.DesTitolo;
            String prdText = product.DesAbstract;
            int prdId = product.PrgProdotto;
            String prdImage = product.DesImmagineHome;
        }
        <a class="ListLink" href="/it/Prodotti/Prodotto/@prdId" style="max-height: 139.226px;">
            <img src="~/Content/img/@prdImage"> <!-- No image -->
        </a>
        <p>
            <a href="/it/Prodotti/Prodotto/@prdId">   <span>@prdTitle</span></a>
            @prdText
        </p>
    </div>
    <!--[RICETTA]-->

    <div class="Blocco" style="height: 377px;">
        @{
            String ricetteTitle = "", ricetteText = "", ricetteImage = "", ricetteUrl = "";

            if (db.MagRicette.ToList().Count > 0)
            {
                var dbRicetta = db.MagRicette.OrderByDescending(o => o.PrgRicetta).FirstOrDefault();
                ricetteTitle = dbRicetta.DesTitolo;
                ricetteText = dbRicetta.DesAbstract;
                ricetteImage = dbRicetta.DesImmagineHome;
                ricetteUrl = "/it/Ricette/Ricetta/" + dbRicetta.PrgRicetta;
            }
            else
            {
                var lstNews = db.MagNovita.ToList();
                var news = lstNews[lstNews.Count - 2];
                ricetteTitle = news.DesTitolo;
                ricetteText = news.DesSottotitolo;
                ricetteImage = news.DesImmagineHome;
                ricetteUrl = "/it/Novita/Novita/" + news.PrgNovita;
            }
        }
        <a class="ListLink" href="@ricetteUrl" style="max-height: 139.226px;">
            <img src="~/Content/img/@ricetteImage"> <!-- No image -->
        </a>
        <p>
            <a href="@ricetteUrl">   <span>@ricetteTitle</span></a>
            @ricetteText
        </p>
    </div>
</div>




رابخا

@{
    Layout = "~/Views/Shared/_Layout.cshtml";
}

<div class="Double  Big">
    <div class="ImgCont">
        <img src="~/Content/img/News/5022_5537_Campo_dei_Fiori_Mozzarella_a_fettexhome.jpg" />
    </div>
    <div class="Page_Cont Prodotti Nov">
        <div class="Breadcrumb">
            <a href="/it/Home">Home</a> > <a class="This" href="/it/Novita">novit&#224;</a>
        </div>

        <div class="TextBlock">
            <span class="Title"><a href="/it/Novita/Novita/14">Campo dei Fiori lancia la Mozzarella a fette</a></span>
            <br />
            <p style="color:#fff">
                Quattro fette di mozzarella confezionate una a una: così Campo dei Fiori semplifica la vita in cucina per tutti gli amanti del più classico e più venduto formaggio a pasta filata.
            </p>

        </div>

    </div>
    </div>
<div class="Double Novita Light">
    <a class="ListLink" href="/it/Novita/Novita/13">
        <div class="Double ProttiList">

            <div class="ImgCont ">
                <img src="~/Content/img/News/5301_Golfshowsmall.jpg" />
            </div>
            <div class="Page_Cont">
                <div class="TextBlock">
                    <span class="SubTitle">Al Parma Golf Show 2017 la colazione firmata Campo dei Fiori</span>

                </div>

            </div>
        </div>
    </a>


    <a class="ListLink" href="/it/Novita/Novita/10">
        <div class="Double ProttiList">

            <div class="ImgCont ">
                <img src="~/Content/img/News/0853_0504_Food-Truck_Campo-dei-Fiori_Marca2017_b.jpg" />
            </div>
            <div class="Page_Cont">
                <div class="TextBlock">
                    <span class="SubTitle">Parte dal Marca di Bologna lo street food di Campo dei Fiori</span>

                </div>

            </div>
        </div>
    </a>
</div>
<div class="Double Novita">
    <a class="ListLink" href="/it/Novita/Novita/4">

        <div class="Double ProttiList">

            <div class="ImgCont ">
                <img src="~/Content/img/News/1209_2922_burro2.jpg" />
            </div>
            <div class="Page_Cont">
                <div class="TextBlock">
                    <span class="SubTitle">Cresce la linea del burro Campo dei Fiori - FOO’D</span>

                </div>

            </div>
        </div>
    </a>
    <a class="ListLink" href="/it/Novita/Novita/8">

        <div class="Double ProttiList">

            <div class="ImgCont ">
                <img src="~/Content/img/News/1115_2705_burro-food.small.jpg" />
            </div>
            <div class="Page_Cont">
                <div class="TextBlock">
                    <span class="SubTitle">Nasce Burro Campo dei Fiori - FOO’D</span>

                </div>

            </div>
        </div>

    </a>
</div>

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)