No meu proxecto actual, algúns dos usuarios vai viaxar ao redor do mundo e cando eles chegan en diferentes destinos, use whatever machine is handy at the time. Those guest machines will be running Windows and installed and configured for the local locale. (Eu só entender que as máquinas hóspedes poden non ter os paquetes de idioma dereito… probablemente non vai, de feito… Estou aparcamento que un por agora).
SharePoint needs to provide a mechanism whereby the user can pick their preferred language and then have MOSS honor that language regardless of how the user accesses MOSS. In other words, disregard whatever the browser tells IIS/MOSS and instead look up that preferred language and use it.
Imos investigar dous enfoques:
- Handler HTTP: Un manipulador HTTP personalizado instalado o IIS buscará Moss perfil do usuario, descubrir o idioma da súa preferencia e, a continuación, cambiar a cabeceira HTTP arredor que corresponda antes de pasar o control para Moss.
- global.asax: Modify global.asax to do the same thing. We may modify something else, but the idea is that we find some place where we can insert our locale-switching logic.
O outro factor complicador é que necesitamos dar soporte a usuarios 60k, sobre 1,000 dos cales poden estar accedendo simultaneamente Moss no cumio de carga.
O manipulador HTTP parece bastante drástico, but possibly the best place to put the code since it’s at the IIS level and all-knowing. It’s a good single point of work.
Estamos inclinando-se cara a un tipo de visión global.asax, sobre todo porque cremos que imos ter máis opcións para a caché de datos nese punto.
Eu vou estar blog máis sobre este asunto, como aprendo máis.
Se sabe algo sobre isto, please post a comment 🙂
</final>
Siga-me no Twitter http://www.twitter.com/pagalvin
Non proba iso, entón eu non estou seguro se funciona.
A clase Page posúe un InitializeCulture() método que pode ser substituído. Se fai iso no código detrás da súa masterpage personalizado, podería facer algo ao longo das liñas de:
protected override void InitializeCulture()
{
// substituír método virtual InitializeCulture() para comprobar que o perfil contén unha configuración de idioma do usuario
corda UserCulture = GetCultureFromUserProfile();
se ( UserCulture != "")
{
// hai unha configuración de idioma do usuario no perfil: ir a el
Thread.CurrentThread.CurrentUICulture = new CultureInfo(UserCulture);
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(UserCulture);
}
}
Obviamente, pode construír unha caché para a implantación deste método.
Orixe: http://quickstarts.asp.net/QuickStartv20/util/srcview.aspx?path = ~ / aspnet / samples / localización / LocalizePers.src&file = LocalizePers_cs\LocalizePers_cs.aspx&lang = C% 23 fonte
Estou pensando manipulador HTTP co seguinte fluxo:
1. Solicitude ven en, comprobe as cookies para unha cookie de sesión para a preferencia de idioma (cookies de sesión caduca cando o navegador é pechado)
2. Asegúrese de que a aplicación é para páxina ASPX, se non, saltar solicitude
3. O cookie existe, axustar a cabeceira de idioma para o valor especificado. Está feito!
4. Ningún cookie, levar a credencial de identificación e ollar o usuario en SPS, atopar preferencia de idioma
5. Establecer cabeceira do cookie e cabeceira HTTP linguaxe. Feito.
Primeira solicitude de páxina APX terá sobrecarga de SPS investigación, pero todas as peticións a partir de entón, con investigacións non teñen así será velocidade nativa. Non hai necesidade de caché de sesión ou de calquera outro enriba usando unha cookie de sesión tamén. Xa que o navegador de ser pechado, a cookie de sesión vai. Se o usuario cambiar o idioma de preferencia en SPS eles só precisan de pechar e reabrir o navegador para que teña efecto.
en realidade, o procesador de HTTP non está ao nivel IIS…é a nivel de aplicación (Filtros ISAPI están no nivel IIS)…Quere ter coidado BC SP ten o seu propio manipulador…que non deixe de probalo…Xa fixen iso antes, pero tiven algúns conflitos co manipulador de SP.
Eu estaría máis inclinado a usar un HTTPHandler, a única razón é que eu non me gusta de tocar os arquivos do SharePoint. Ademais, é fácil crear unha solución do SharePoint para implantar un HttHandler ( e utilizar o SPWebConfig é API para modificar o web.config). Ter a carga do usuario que fai, Cómo imaxinar que ten unha granxa considerable, realmente non quere ir arquivos modifiying en cada servidor.
Implantando o arquivo global.asa través dunha solución é unha mala idea, se recolle-lo, o arquivo orixinal está desaparecido …
Tamén ter a capacidade de retraer a solución rapidamente pode ser unha boa idea, no caso de que as cousas executar mal co perf do manipulador.