很容易爲Alfresco Exlplorer找到解決方案,但哪種方式適合Alfresco Share只使用一種特定語言,獨立於Web瀏覽器的語言環境設置?如何強制Alfresco共享只使用一種語言,獨立於瀏覽器語言環境?
回答
一個腳本這取決於你如何部署露天的,但假設你是在生產環境中,它是標準的做法,將您的客戶端之間的HTTP代理/負載均衡器工作Alfresco服務器,你有一些潛在的選擇。
響應由Web瀏覽器發送的Accept-Language
標題,因此爲了防止它根據此切換語言,可以配置代理以從傳入的客戶端請求中刪除Accept-Language
標題。
例如,使用Apache你可以用mod_headers
在配置一起使用mody_proxy
如
ProxyPass/http://localhost:8080/
ProxyPassReverse/http://localhost:8080/
RequestHeader unset Accept-Language
前兩行將從Apache代理請求到Tomcat實例(最有可能運行在80端口)託管端口8080上的Alfresco,而第三行將刪除Accept-Language
標題。
然後,共享將默認爲Alfresco正在運行的Java進程的語言環境,因此您應確保將其設置爲美國英語(en-US
)。
最簡單的方法是刪除所有其他* .properties文件。
對於web-client-config.xml文件,共享不像Explorer。
所以像find . -name *_<language>.properties -exec rm -rf {} \;
您可以檢查MTAuthenticationFilter.java
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain)
throws IOException, ServletException
{
if (req instanceof HttpServletRequest)
{
requestHolder.set((HttpServletRequest)req);
/*if (((HttpServletRequest) req).getHeader(ACCEPT_LANGUAGE_HEADER) == null)
{
req = new SlingshotServletRequestWrapper((HttpServletRequest) req);
((SlingshotServletRequestWrapper) req).addHeader(ACCEPT_LANGUAGE_HEADER, "en_US");
}*/
//locale will be always 'french' (fr)
req = new SlingshotServletRequestWrapper((HttpServletRequest) req);
((SlingshotServletRequestWrapper) req).addHeader(ACCEPT_LANGUAGE_HEADER, "fr");
}
try
{
chain.doFilter(req, res);
}
finally
{
requestHolder.remove();
}
}
該過濾器檢查Accept-language
頭,否則英語將被設置。 但爲什麼不重寫它,那麼我們可以把我們想要的語言環境放到整個共享應用程序中。
這個解決方案對我來說就像一個魅力。對不起我的英語不好。
分享基於Spring Surf
它是Spring MVC
的書架頂端。默認情況下,使用內置的AcceptHeaderLocaleResolver
。要覆蓋它只是定義如上延伸org.springframework.extensions.surf.mvc.LocaleResolver
一個bean:
添加Bean聲明由slingshot-application-context.xml
<!-- Override Locale Resolver -->
<bean id="localeResolver" class="mypackage.CustomLocaleResolver" />
進口任何配置文件添加新的LocaleResolver實現類
package mypackage;
import java.util.Locale;
import javax.servlet.http.HttpServletRequest;
import org.springframework.extensions.surf.mvc.LocaleResolver;
import org.springframework.extensions.surf.util.I18NUtil;
public class CustomLocaleResolver extends LocaleResolver {
public Locale resolveLocale(HttpServletRequest request) {
Locale locale = Locale.FRENCH;
I18NUtil.setLocale(locale);
return locale;
}
}
- 1. 春:檢測瀏覽器語言環境
- 2. 檢測瀏覽器語言環境/語言並生成輸出
- 3. 如何使grep [A-Z]獨立於語言環境?
- 4. 如何強制Grails只使用一種語言?
- 5. Alfresco的多語言文檔共享?
- 6. 強制語言環境和新的語言
- 7. 語言環境語言縮減器
- 8. 如何基於瀏覽器的語言
- 9. 如何通過語言環境獲取各種語言的語言名稱?
- 10. 如何在Java中的所有類中共享使用哪種語言環境?
- 11. XPages:使用瀏覽器語言環境顯示DateTime值
- 12. 使用硒webdriver測試瀏覽器語言環境
- 13. 使用Java的struts2中的瀏覽器語言環境
- 14. Laravel使用語言環境的語言環境代碼
- 15. 如何在Chrome瀏覽器中更改語言環境
- 16. 如何強制一個語言環境部件
- 17. 使XSLT語言獨立
- 18. 強制URL中的語言。如果URL沒有語言,根據瀏覽器語言重定向
- 19. 語言環境切換器
- 20. Facebook Javascript SDK語言環境語言
- 21. Android - 更改語言環境(語言)
- 22. 系統語言環境語言設置
- 23. Android:默認語言環境語言「hd」
- 24. Android語言環境語言支持
- 25. 如何用同一種語言實現一種語言比語言更快?
- 26. Alfresco用戶語言
- 27. NSDateFormatter語言環境
- 28. Symfony2語言環境
- 29. swprintf語言環境
- 30. 如何建立一個基於瀏覽器語言的多語言網站和重定向用戶?