Как я могу использовать текущий язык как переменную на моей главной странице?
-
10-12-2019 - |
Вопрос
Я веб-дизайнер, работающий с SharePoint 2013. Я создал пользовательский шаблон для компании, и теперь я хочу пойти дальше с вариационными возможностями.Сайт должен быть доступен на немецком и на английском языке.
На нижнем колонтитуле главной страницы я поместил несколько жестких ссылок:
<a href="/Authenticate.aspx">Login</a>
<a href="/imprint">Imprint</a>
<a href="/disclaimer">Disclaimer</a>
.
И я хочу, чтобы они динамически перестраиваются на мои вариации сайта, подобные этому для немецкого языка:
<a href="/de/...">Login</a>
<a href="/de/...">Imprint</a>
<a href="/de/...">Disclaimer</a>
.
Или это для английского:
<a href="/en/...">Login</a>
<a href="/en/...">Imprint</a>
<a href="/en/...">Disclaimer</a>
.
Есть ли переменная, которую я мог бы разместить перед ссылками на моей главной странице?Или способ получить текущий язык?
Я думал о чем-то вроде этого:
<a href="{Locale}/login">...</a>
<a href="$language/imprint...">...</a>
<a href="getLanguage()/disclaimer">...</a>
.
Я не код ASP.Net, поэтому я не знаю, как узнать язык.Я был бы признателен, если кто-то может помочь мне.
Решение 2
I solved the problem with another method: I used SharePoints own Javascript variable - _spPageContextInfo - see: _spPageContextInfo is your new best friend !
With "currentCultureName" I could use the language name as a variable to compare to the target language and to expand my PageLayout with custom links, compliant to my variations settings.
The Code could look like this:
$(document).ready(function() {
$language = _spPageContextInfo.currentCultureName;
// If it's german, I'll get german links
if ($language == "de-DE") {
$('.footer').html('<a href="/de/kontakt/">Kontakt</a>');
} else {
// And if not, it will target to the english page
$('.footer').html('<a href="/en/contact">Contact</a>');
}
});
Другие советы
You could use the SPWeb.Locale property of the current context (as in SPContext.Current.Web.Locale
) to glean this information.
If you look at the Remarks section of the CultureInfo Class description on MSDN it will explain this.
A simple example would be:
<a href="/<%= SPContext.Current.Web.Locale.TwoLetterISOLanguageName %>/Login.aspx">...</a>