локализация

Файлы глобальных ресурсов имеют файлы с расширением *.resx, хранятся в папке App_GlobalResources, которая расположена в корне сайта, доступны всем страницам сайта.

Файлы локальных ресурсов имеют файлы с расширением *.resx, хранятся в папке App_LocalResources, которая может располагаться в любой папке сайта, доступны только тем страницам, которые расположены в одной директории с папкой App_LocalResources. Название файла локального ресурса должно совпадать с названием файла, к которому он относится.

Свойство Culture="auto" — указывает настройку языка браузера по умолчанию.
Свойство UICulture="ru-RU" — явно задает язык браузера.
 
 

локальные ресурсы/неявная локализация/доступ с помощью атрибута

Название файла локального ресурса должно совпадать с названием файла, к которому он относится. В нашем примере мы создаем файл Default.aspx. Файл ресурса по умолчанию будет иметь название Default.aspx.resx, в нем будут хранится значения на английском языке. Файл ресурса со значениями на русском языке будет иметь название Default.aspx.ru.resx

При неявной локализации в файлах ресурсов ключ должен указывать по схеме IDэлемента.Text
Скрыть

Показать

Копировать
  Default.aspx  
<%@ 
 Page Language="C#" 
 AutoEventWireup="true" 
 CodeFile="Default.aspx.cs" 
 Inherits="_Default" 
 Culture="auto" 
 UICulture="auto" 
 %>
 <%-- Culture="auto" задаем настройку языка браузера по умолчанию --%>
 <%-- UICulture="auto" явно задаем язык браузера --%>
 
<!DOCTYPE html>
 
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
 <meta charset="utf-8" />
 <title></title>
 <link href="css/style.css" rel="stylesheet" />
</head>
<body>
 <form id="form1" runat="server">
  <div class="text">
   <%-- доступ к локальным ресурсам с помощью атрибута --%>
   <asp:Label ID="Label1" runat="server" Text="" meta:resourcekey="Label1"></asp:Label>
  </div>
 </form>
</body>
</html>
Скрыть

Показать

Копировать
  css/style.css  
* {
 margin: 0;
 padding: 0;
}
 
body {
 background-color: #f3f6ff;
}
 
.text {
 height: 400px;
 width: 400px;
 position: absolute;
 top: 50%;
 left: 50%;
 margin-top: -200px;
 margin-left: -200px;
 background-color: #0080ff;
 color: #FFF;
 line-height: 400px;
 text-align: center;
 font-size: 42px;
 border-radius: 15px;
}
Изменим языковые настройки браузера.
 
 

локальные ресурсы/явная локализация/доступ с помощью кода

Название файла локального ресурса должно совпадать с названием файла, к которому он относится. В нашем примере мы создаем файл Default.aspx. Файл ресурса по умолчанию будет иметь название Default.aspx.resx, в нем будут хранится значения на английском языке. Файл ресурса со значениями на русском языке будет иметь название Default.aspx.ru.resx
Скрыть

Показать

Копировать
  Default.aspx  
<%@ 
 Page Language="C#" 
 AutoEventWireup="true" 
 CodeFile="Default.aspx.cs" 
 Inherits="_Default" 
 Culture="auto" 
 UICulture="auto" 
 %>
 <%-- Culture="auto" задаем настройку языка браузера по умолчанию --%>
 <%-- UICulture="auto" явно задаем язык браузера --%>
 
<!DOCTYPE html>
 
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
 <meta charset="utf-8" />
 <title></title>
 <link href="css/style.css" rel="stylesheet" />
</head>
<body>
 <form id="form1" runat="server">
  <div class="text">
   <%-- доступ к локальным ресурсам с помощью кода --%>
   <%-- имя файла не указываем --%>
   <asp:Label ID="Label1" runat="server" Text="<%$ Resources:text1 %> " ></asp:Label>
  </div>
 </form>
</body>
</html>
Скрыть

Показать

Копировать
  css/style.css  
* {
 margin: 0;
 padding: 0;
}
 
body {
 background-color: #f3f6ff;
}
 
.text {
 height: 400px;
 width: 400px;
 position: absolute;
 top: 50%;
 left: 50%;
 margin-top: -200px;
 margin-left: -200px;
 background-color: #0080ff;
 color: #FFF;
 line-height: 400px;
 text-align: center;
 font-size: 42px;
 border-radius: 15px;
}
Изменим языковые настройки браузера.
 
 

глобальные ресурсы/явная локализация/доступ с помощью кода

Скрыть

Показать

Копировать
  Default.aspx  
<%@ 
 Page Language="C#" 
 AutoEventWireup="true" 
 CodeFile="Default.aspx.cs" 
 Inherits="_Default" 
 Culture="auto" 
 UICulture="auto" 
 %>
 <%-- Culture="auto" задаем настройку языка браузера по умолчанию --%>
 <%-- UICulture="auto" явно задаем язык браузера --%>
 
<!DOCTYPE html>
 
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
 <meta charset="utf-8" />
 <title></title>
 <link href="css/style.css" rel="stylesheet" />
</head>
<body>
 <form id="form1" runat="server">
  <div class="text">
   <%-- доступ к глобальным ресурсам с помощью кода --%>
   <%-- указываем имя файла и указываем имя ключа --%>
   <asp:Label ID="Label1" runat="server" Text="<%$ Resources:Resource, text1 %>" ></asp:Label>
  </div>
 </form>
</body>
</html>
Скрыть

Показать

Копировать
  css/style.css  
* {
 margin: 0;
 padding: 0;
}
 
body {
 background-color: #f3f6ff;
}
 
.text {
 height: 400px;
 width: 400px;
 position: absolute;
 top: 50%;
 left: 50%;
 margin-top: -200px;
 margin-left: -200px;
 background-color: #0080ff;
 color: #FFF;
 line-height: 400px;
 text-align: center;
 font-size: 42px;
 border-radius: 15px;
}
Изменим языковые настройки браузера.
 
 

язык выбирает пользователь

Скрыть

Показать

Копировать
  Default.aspx  
<%@ 
 Page Language="C#" 
 AutoEventWireup="true" 
 CodeFile="Default.aspx.cs" 
 Inherits="_Default" 
 Culture="auto" 
 UICulture="auto" 
%>
<%-- Culture="auto" задаем настройку языка браузера по умолчанию --%>
<%-- UICulture="auto" явно задаем язык браузера --%>
 
<!DOCTYPE html>
 
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
 <meta charset="utf-8" />
 <title></title>
 <link href="css/style.css" rel="stylesheet" />
</head>
<body>
 <form id="form1" runat="server">
  <div class="main">
   <div class="buttons">
    <asp:Button ID="Button1" runat="server" Text="<%$ Resources:Resource, text1 %>" />
    <asp:Button ID="Button2" runat="server" Text="<%$ Resources:Resource, text2 %>" />
   </div>
   <div class="text">
    <asp:Label ID="Label1" runat="server" Text="<%$ Resources:Resource, text3 %>" ></asp:Label>
   </div>
  </div>
 </form>
</body>
</html>
Скрыть

Показать

Копировать
  Default.aspx.cs  
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
 
public partial class _Default : System.Web.UI.Page {
 protected void Page_Load(object sender, EventArgs e) {
 
 }
 /*
  вызывается на ранних этапах жизненного цикла страницы до события PreInit,
  когда еще не созданы элементы управления
 */
 protected override void InitializeCulture() {
  //если нажата кнопка English
  if(Request.Form["Button1"] != null) {
   Culture = "en";
   UICulture = "en";
  }
  //если нажата кнопка Russian
  else if(Request.Form["Button2"] != null) {
   Culture = "ru";
   UICulture = "ru";
  }
 }
}
Скрыть

Показать

Копировать
  css/style.css  
* {
 margin: 0;
 padding: 0;
}
 
body {
 background-color: #f3f6ff;
}
 
.main {
 height: 450px;
 width: 400px;
 position: absolute;
 top: 50%;
 left: 50%;
 margin-top: -225px;
 margin-left: -200px;
}
 
.buttons {
 height: 50px;
 width: 400px;
}
 
#Button1, #Button2 {
 height: 50px;
 width : 200px;
 float: left;
 cursor: pointer;
 font-size: 26px;
}
 
.text {
 height: 400px;
 width: 400px;
 background-color: #0080ff;
 color: #FFF;
 line-height: 400px;
 text-align: center;
 font-size: 42px;
}
 
 

доступ к ресурсам из С# кода

Скрыть

Показать

Копировать
  Default.aspx  
<%@ 
 Page Language="C#" 
 AutoEventWireup="true" 
 CodeFile="Default.aspx.cs" 
 Inherits="_Default" 
 Culture="auto" 
 UICulture="auto" 
 %>
 
<!DOCTYPE html>
 
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
 <meta charset="utf-8" />
 <title></title>
 <link href="css/style.css" rel="stylesheet" />
</head>
<body>
 <form id="form1" runat="server">
  <div class="text">
   <%-- атрибут Text не задаем --%>
   <asp:Label ID="Label1" runat="server" ></asp:Label>
  </div>
 </form>
</body>
</html>
Скрыть

Показать

Копировать
  Default.aspx.cs  
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
 
public partial class _Default : System.Web.UI.Page {
 protected void Page_Load(object sender, EventArgs e) {
  /*задаем настройку языка браузера по умолчанию*/
  Culture = "auto";
  /*явно задаем язык браузера*/
  UICulture = "auto";
  /*доступ к ключу в файле ресурса*/
  Label1.Text = Resources.Resource.text1;
  //Label1.Text = GetGlobalResourceObject("Resource", "text1").ToString();
  /*если это локальный ресурс*/
  //Label1.Text = GetLocalResourceObject("имя_ключа").ToString();
 }
}
Скрыть

Показать

Копировать
  css/style.css  
* {
 margin: 0;
 padding: 0;
}
 
body {
 background-color: #f3f6ff;
}
 
.text {
 height: 400px;
 width: 400px;
 position: absolute;
 top: 50%;
 left: 50%;
 margin-top: -200px;
 margin-left: -200px;
 background-color: #0080ff;
 color: #FFF;
 line-height: 400px;
 text-align: center;
 font-size: 42px;
 border-radius: 15px;
}
Изменим языковые настройки браузера.