Я создаю веб-сайт с ASP.net MVC 2.0, который использует два различных языка (английский и персидский язык). Я хочу иметь две различных разметки для этих языков, английский язык имеет слева направо, и персидский язык имеет справа налево расположение.
То, что прибыло, по моему мнению был, если у меня могло бы быть два различных файла CSS, как то, когда Вы сделаете это со строкой или отображаете локализацию, сделает работу для сайта, проблема, я должен знать, как сделать это!
Любые другие предложения о том, как выполнить это, были бы полезны.
Вы можете прочитать о:
На ваших страницах:
alt
); каждое изображение с направленностью должно быть перевернуто (например, стрелка) class = "left"
, если вы не хотите головной боли в будущем. Верх, низ, до или после - допустимы, но не слева / справа (редактирование: start
и end
теперь используются в CSS3, чтобы избежать этой точной проблемы ltr и rtl. Может быть лучше чем * - до
и * - после
, уже используемых для псевдонимов с двоеточиями). text-align
, background-position
, float
, clear
и, очевидно, слева
и справа
с положением : абсолютное / относительное;
. Новые инструкции CSS3 также должны быть рассмотрены (анимация и т. Д.). Как указано в ссылках выше, используется атрибут HTML dir = "rtl"
. Вам также понадобится класс (в body
или какой-то, содержащий div
, чтобы действовать как гигантский переключатель для ваших дизайнерских нужд. Например,
.en .yourclass { background: url(images/en/bg.jpg) }
.ar .yourclass { background: url(images/ar/bg.jpg) }
Селектор атрибутов делает то же самое, поскольку IE8 включены.
:lang(ar) .yourclass { background: url(images/ar/bg.jpg) }
or
[lang|="ar"] .yourclass { background: url(images/ar/bg.jpg) }
Вот код, который вы можете использовать для получения локали на стороне клиента. После определения локали вы можете динамически включить таблицу стилей в заголовок.
if ( navigator ) {
if ( navigator.language ) {
return navigator.language;
}
else if ( navigator.browserLanguage ) {
return navigator.browserLanguage;
}
else if ( navigator.systemLanguage ) {
return navigator.systemLanguage;
}
else if ( navigator.userLanguage ) {
return navigator.userLanguage;
}
}
Не уверен, что это то, что вы ищете, но я сделал это несколько лет назад в VBScript. Не идеально, но у меня это работает:
Определить язык:
<%
Dim sLanguage
sLanguage = Request.QueryString("lang")
Dim userLocale
userLocale=Request.ServerVariables("HTTP_ACCEPT_LANGUAGE")
Dim sDomain
sDomain = Request.ServerVariables("HTTP_HOST")
Dim languages
languages = Split(userLocale, ",", -1)
...
Установить таблицу стилей ...
<% select case MasterLanguage
case "PORTUGUESE"%>
<style media="screen" type="text/css">@import "/Includes/css/a_formatting.css";</style>
<style media="screen" type="text/css">@import "/includes/langs/br/languageSpecific.css";</style>
<link type="text/css" media="print" rel="stylesheet" href="/Includes/css/print.css" />
<%
case "SIMPCHINESE"
%>
<style media="screen" type="text/css">@import "/Includes/css/a_formatting_zh-cn.css";</style>
<style media="screen" type="text/css">@import "/includes/langs/zh-cn/languageSpecific.css";</style>
<link type="text/css" media="print" rel="stylesheet" href="/Includes/css/print_zh-cn.css" />
<%
Я могу опубликовать другие фрагменты, если это будет полезно.