Wednesday, February 09, 2011

Zimbra 6.x and Japanese Themes

As we know that Japanese is unsupported by aspell.

see the reference below
http://aspell.net/man-html/Unsupported.html#Unsupported

contra with new zimbra , ZCS 6.0 comes with dictionaries reinstalled for many languages. ZCS versions 5.0 and earlier only have English installed

If you set your Locale in Japanese or Korea (other unsupported by aspell) you will found error like below


Error like

ネットワークサービスエラーが発生しました。
method: CheckSpellingRequest
msg:system failure: Spell check failed: pspell_new() [function.pspell-new]: PSPELL couldn't open the dictionary. reason: No word lists can be found for the language "ja".
code:service.FAILURE
detail:soap:Receiver
trace:com.zimbra.common.service.ServiceException: system failure: Spell check failed: pspell_new() [function.pspell-new]: PSPELL couldn't open the dictionary. reason: No word lists can be found for the language "ja". ExceptionId:btpool0-0://192.168.3.249/service/soap/CheckSpellingRequest:1297230974991:1a48f00f1bf8513d Code:service.FAILURE at com.zimbra.common.service.ServiceException.FAILURE(ServiceException.java:248) at com.zimbra.cs.service.mail.CheckSpelling.handle(CheckSpelling.java:120) at com.zimbra.soap.SoapEngine.dispatchRequest(SoapEngine.java:420) at com.zimbra.soap.SoapEngine.dispatch(SoapEngine.java:274) at com.zimbra.soap.SoapEngine.dispatch(SoapEngine.java:158) at com.zimbra.soap.SoapServlet.doWork(SoapServlet.java:291) at com.zimbra.soap.SoapServlet.doPost(SoapServlet.java:212) at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) at com.zimbra.cs.servlet.ZimbraServlet.service(ZimbraServlet.java:181) at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166) at com.zimbra.cs.servlet.SetHeaderFilter.doFilter(SetHeaderFilter.java:79) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at org.mortbay.servlet.UserAgentFilter.doFilter(UserAgentFilter.java:81) at org.mortbay.servlet.GzipFilter.doFilter(GzipFilter.java:132) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388) at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418) at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230) at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) at org.mortbay.jetty.handler.rewrite.RewriteHandler.handle(RewriteHandler.java:230) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) at org.mortbay.jetty.handler.DebugHandler.handle(DebugHandler.java:77) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) at org.mortbay.jetty.Server.handle(Server.java:326) at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:543) at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:939) at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:755) at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:405) at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:413) at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:451)



The Solution is (temporary solution)

$sudo chmod u-w /opt/zimbra/httpd/htdocs/aspell.php

modify the file, in about line 31 - 34

if (isset($_REQUEST["dictionary"])) {
    $dictionary = $_REQUEST["dictionary"];
}

modify to

if (isset($_REQUEST["dictionary"])) {
    if ($_REQUEST["dictionary"] != "ja" ){
    $dictionary = $_REQUEST["dictionary"];
    }
}


in my case we only use "ja" locale-id, but "ko" also not supported if you, you should modify the script or define a variable list of unsupported language into


hope this help
--
Dikirim dari suwidi.or.id dengan dukungan dev-NET(system)