;ò ·’Ù@c@sƒdZdkZyeWnej odZdZnXhZdd„Zdd„Zdd„Zd„Z d „Z d „Z d „Z d „Z d „Zdfd„ƒYZdfd„ƒYZed„Zdfd„ƒYZehde<dd0s( stypesprefss_langPrefsRegistryshas_keyskindshasattrsgetAcceptedHelpers getAcceptedsappendssort(sprefsskind((sf/mnt/gmirror/ports/www/zope-placelesstranslationservice/work/PlacelessTranslationService/Negotiator.pysregisterLangPrefsMethod&scCsNxCt|D]7}|d|ƒ}|i||ƒ}|o|Sq q WfSdS(sget higest prio method for kindsklassN(s_langPrefsRegistryskindsprefsenvshandlers getAcceptedsaccepted(senvskindsprefshandlersaccepted((sf/mnt/gmirror/ports/www/zope-placelesstranslationservice/work/PlacelessTranslationService/Negotiator.pys getLangPrefs2s  cCs|iddƒSdS(sfilters_s-N(slangsreplace(slang((sf/mnt/gmirror/ports/www/zope-placelesstranslationservice/work/PlacelessTranslationService/Negotiator.pyslang_normalize;scCs|iƒSdS(sfilterN(saStringslower(saString((sf/mnt/gmirror/ports/www/zope-placelesstranslationservice/work/PlacelessTranslationService/Negotiator.pys str_lower?scCs|iƒSdS(sfilterN(saStringsstrip(saString((sf/mnt/gmirror/ports/www/zope-placelesstranslationservice/work/PlacelessTranslationService/Negotiator.pys str_stripCscCss|idƒ}|idƒ}t|ƒdjpt|ƒdjotSn|ddjo|d|djSdS(Ns/iis*i(s availablessplitsavs preferredsprslensFalse(s availables preferredsprsav((sf/mnt/gmirror/ports/www/zope-placelesstranslationservice/work/PlacelessTranslationService/Negotiator.pys type_acceptedGs &cCs|i|ƒSdS(N(s availables startswiths preferred(s availables preferred((sf/mnt/gmirror/ports/www/zope-placelesstranslationservice/work/PlacelessTranslationService/Negotiator.pys lang_acceptedOscOsdS(N((saskw((sf/mnt/gmirror/ports/www/zope-placelesstranslationservice/work/PlacelessTranslationService/Negotiator.pys_falseSss BrowserAcceptcBsAtZhdef<deeef}|| jo|| } Pq$|iidd d ƒ| } q$Wn|d| idƒ} g}d }t| ƒ}|ii|fƒ}xõ| D]í}x|D]} | |ƒ}qÂW|oÃ|id d ƒ}g}t|ƒd joRyD|d}|idƒo&|idd ƒd}t |ƒ}nWq\q\Xn|gjot ||ƒ}n|i ||d fƒ|d7}qµqµW|i!ƒ|i"ƒgi }|D]}||dƒqÈ~SdS(Nsuser_%ss content-types HTTP_ACCEPTsHTTP_ACCEPT_%ss(s print_excs custom_names,spaths/is;iisq=s=(#srequestsgetskindslowers custom_namesuppers header_names user_acceptss http_acceptss tracebacks print_excscookiessappends_[1]ssplitsasstripsls req_acceptssRESPONSEs expireCookiesacceptssislenslengthsselfsfilterssaccepts normalizersqualitysqs startswithsfloatssortsreverse(sselfsrequestskinds user_acceptssacceptsfilterssqualitysqs header_names http_acceptss normalizersgetsas req_acceptss custom_names print_excsisacceptssls_[1]slength((sf/mnt/gmirror/ports/www/zope-placelesstranslationservice/work/PlacelessTranslationService/Negotiator.pys getAcceptedasd   '66       (s__name__s __module__s str_lowerslang_normalizes str_stripsfilterss__init__s getAccepted(((sf/mnt/gmirror/ports/www/zope-placelesstranslationservice/work/PlacelessTranslationService/Negotiator.pys BrowserAcceptWs$ s CookieAcceptcBs,tZeeefZd„Zdd„ZRS(NcCsdS(N((sselfsrequest((sf/mnt/gmirror/ports/www/zope-placelesstranslationservice/work/PlacelessTranslationService/Negotiator.pys__init__¨sslanguagecCs†t|dƒ ofSn|iidtƒ}|oIt|ƒtijo|Sq‚x|i D]}||ƒ}q]W|fSnfSdS(Nscookiess pts_language( shasattrsrequestscookiessgetsNoneslanguagestypestypess TupleTypesselfsfilterssfilter(sselfsrequestskindslanguagesfilter((sf/mnt/gmirror/ports/www/zope-placelesstranslationservice/work/PlacelessTranslationService/Negotiator.pys getAccepted«s  (s__name__s __module__s str_lowerslang_normalizes str_stripsfilterss__init__s getAccepted(((sf/mnt/gmirror/ports/www/zope-placelesstranslationservice/work/PlacelessTranslationService/Negotiator.pys CookieAccept¥s cCsot|ƒtijo|d}ntt|ƒƒ}|iid|ƒ|o|ii |i ƒn|SdS(s„sets the language to a cookie request - the request object lang - language as string like de or pt_BR (it's normalizd) is pts_languageN( stypeslangstypess TupleTypes str_lowerslang_normalizesrequestsRESPONSEs setCookiesREQUESTsredirectsURL0(srequestslangsREQUEST((sf/mnt/gmirror/ports/www/zope-placelesstranslationservice/work/PlacelessTranslationService/Negotiator.pyssetCookieLanguageºssRequestGetAcceptcBs,tZeeefZd„Zdd„ZRS(NcCsdS(N((sselfsrequest((sf/mnt/gmirror/ports/www/zope-placelesstranslationservice/work/PlacelessTranslationService/Negotiator.pys__init__ÍsslanguagecCsà|i}|idtƒ}|idtƒ}|o¤x|iD]}||ƒ}q>Wy=|djp|i ƒdddfjo t }nt }Wn!t t fj o}t }nX|ot||ƒn|fSnfSdS(Nslanguages setlanguageis1struesyes(srequestsformsgetsNoneslanguages setLanguagesselfsfilterssfilterslowersTruesFalses ValueErrorsAttributeErrorsmsgssetCookieLanguage(sselfsrequestskindsformslanguagesfiltersmsgs setLanguage((sf/mnt/gmirror/ports/www/zope-placelesstranslationservice/work/PlacelessTranslationService/Negotiator.pys getAcceptedÐs"  )    (s__name__s __module__s str_lowerslang_normalizes str_stripsfilterss__init__s getAccepted(((sf/mnt/gmirror/ports/www/zope-placelesstranslationservice/work/PlacelessTranslationService/Negotiator.pysRequestGetAcceptÊs sklassspriorityi i(i2s content-types NegotiatorcBsGtZhde<de