Используя Файл CSS для локализации сайта

Я создаю веб-сайт с ASP.net MVC 2.0, который использует два различных языка (английский и персидский язык). Я хочу иметь две различных разметки для этих языков, английский язык имеет слева направо, и персидский язык имеет справа налево расположение.

То, что прибыло, по моему мнению был, если у меня могло бы быть два различных файла CSS, как то, когда Вы сделаете это со строкой или отображаете локализацию, сделает работу для сайта, проблема, я должен знать, как сделать это!

Любые другие предложения о том, как выполнить это, были бы полезны.

8
задан A-Sharabiani 20 February 2018 в 16:05
поделиться

3 ответа

Вы можете прочитать о:

На ваших страницах:

  • каждое изображение с текстом должно быть переведено (изображение и alt ); каждое изображение с направленностью должно быть перевернуто (например, стрелка)
  • старайтесь избегать именования классов вроде class = "left" , если вы не хотите головной боли в будущем. Верх, низ, до или после - допустимы, но не слева / справа (редактирование: start и end теперь используются в CSS3, чтобы избежать этой точной проблемы ltr и rtl. Может быть лучше чем * - до и * - после , уже используемых для псевдонимов с двоеточиями).
  • вам нужно будет проверить каждую инструкцию CSS о 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) }
9
ответ дан 5 December 2019 в 18:55
поделиться

Вот код, который вы можете использовать для получения локали на стороне клиента. После определения локали вы можете динамически включить таблицу стилей в заголовок.

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;
    }
}
0
ответ дан 5 December 2019 в 18:55
поделиться

Не уверен, что это то, что вы ищете, но я сделал это несколько лет назад в 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" />
<%

Я могу опубликовать другие фрагменты, если это будет полезно.

0
ответ дан 5 December 2019 в 18:55
поделиться