; #fAc@sdkZdkZdklZlZdklZdklZl Z dk l Z dk l Z dklZlZlZdklZdklZd klZlZd klZd klZd klZd kl Z dk!l"Z"ydk#l$Z$dZ%Wn e&Z%nXdk'Z'deee fdYZ(dfdYZ)dfdYZ*e%e&j o e$hde*<dd<nee(dS(N(s StringTypes UnicodeType(sClassSecurityInfo(sInitializeClasss package_home(s SimpleItem(s Expression(s ManagePortalsModifyPortalContentsView(sActionInformation(sActionProviderBase(s UniqueObjects getToolByName(sPageTemplateFile(saq_base(sBeforeTraverse(s HTTPRequest(s ITranslatable(sregisterLangPrefsMethodis LanguageToolcBsjtZdZdZdZdZeZdgZhZ hZ dZ dZ dZ dZdZeddd d d ed d ded ddefddddgZhdd<d dd?Z3eie!d@dAZ4eidBdCZ5eidDdEZ6eidFdGZ7eie!dHdIZ8eiedJdKZ9RS(Ls0 Language Administration Tool For Plone sportal_languagessManages available languagessPlone Language Toolseniisids languagesstitlesPortal Languagessactionstexts1string: ${portal_url}/portal_languages/langConfigs conditionsmembers permissionsscategorys portal_tabssvisibleslabelsLanguageConfigsmanage_configForms www/configcCsCd|_d|_d|_d|_d|_d|_d|_dS(Nsportal_languagesii(sselfsidsuse_path_negotiationsuse_cookie_negotiationsuse_request_negotiationsforce_language_urlssallow_content_language_fallbacks display_flags(sself((sT/mnt/gmirror/ports/www/zope-plonelanguagetool/work/PloneLanguageTool/LanguageTool.pys__init__Es      cCsg|itj otSn|dddddfj otSn|iidotSn|idS(s: The __before_publishing_traverse__ hook. sREQUEST_METHODsHEADsGETsPUTsPOSTsWEBDAV_SOURCE_PORTN(sreqs __class__s HTTPRequestsNonesenvironshas_keysselfssetLanguageBindings(sselfs containersreq((sT/mnt/gmirror/ports/www/zope-plonelanguagetool/work/PloneLanguageTool/LanguageTool.pys__call__Ossmanage_setLanguageSettingsc Cs(|i||ot|tgjo ||_n|o d|_n d|_|o d|_ n d|_ |o d|_ n d|_ |o d|_ n d|_ |o d|_n d|_|o d|_n d|_| o d|_n d|_| o| ii| dndS(s* stores the tool settings iis HTTP_REFERERN(sselfssetDefaultLanguagesdefaultLanguagessupportedLanguagesstypessupported_langss setCookieNsuse_cookie_negotiations setRequestNsuse_request_negotiationssetPathNsuse_path_negotiationssetForcelanguageUrlssforce_language_urlsssetAllowContentLanguageFallbacksallow_content_language_fallbackssetUseCombinedLanguageCodessuse_combined_language_codess displayFlagss display_flagssREQUESTsRESPONSEsredirect( sselfsdefaultLanguagessupportedLanguagess setCookieNs setRequestNssetPathNssetForcelanguageUrlsssetAllowContentLanguageFallbackssetUseCombinedLanguageCodess displayFlagssREQUEST((sT/mnt/gmirror/ports/www/zope-plonelanguagetool/work/PloneLanguageTool/LanguageTool.pysmanage_setLanguageSettings^s6                 s showFlagscCs |iSdS(s' show flags in language listings or notN(sselfs display_flags(sself((sT/mnt/gmirror/ports/www/zope-plonelanguagetool/work/PloneLanguageTool/LanguageTool.pys showFlagssslistSupportedLanguagescCs?g}x.|iD]#}|i||i|fqW|SdS(s; return a list of supported language names N(srsselfssupported_langssisappendsgetAvailableLanguages(sselfsisr((sT/mnt/gmirror/ports/www/zope-plonelanguagetool/work/PloneLanguageTool/LanguageTool.pyslistSupportedLanguagess  !sgetSupportedLanguagescCs |iSdS(s; return a list of supported language codes N(sselfssupported_langs(sself((sT/mnt/gmirror/ports/www/zope-plonelanguagetool/work/PloneLanguageTool/LanguageTool.pysgetSupportedLanguagessslistAvailableLanguagescCs0t|ii}|id|SdS(sH return sorted list of available languages (code, name) cCst|d|dS(Ni(scmpsxsy(sxsy((sT/mnt/gmirror/ports/www/zope-plonelanguagetool/work/PloneLanguageTool/LanguageTool.pyssN(slistsselfsgetAvailableLanguagessitemsssort(sselfsitems((sT/mnt/gmirror/ports/www/zope-plonelanguagetool/work/PloneLanguageTool/LanguageTool.pyslistAvailableLanguagesssgetAvailableLanguagescCsYtii}|io|itin|ii o|i|in|SdS(s: return dictionary of available languages N( savailablelanguagess languagesscopyslangssselfsuse_combined_language_codessupdatescombinedslocal_available_langsskeys(sselfslangs((sT/mnt/gmirror/ports/www/zope-plonelanguagetool/work/PloneLanguageTool/LanguageTool.pysgetAvailableLanguagess sgetDefaultLanguagecCst|d}t|di}|iido|iidSn|ido|idSnt|ddSdS(s- return our default language sportal_propertiess portal_urlsdefault_languages default_langsenN( s getToolByNamesselfsportal_propertiessgetPortalObjectsportalssite_propertiess hasPropertys getPropertysgetattr(sselfsportalsportal_properties((sT/mnt/gmirror/ports/www/zope-plonelanguagetool/work/PloneLanguageTool/LanguageTool.pysgetDefaultLanguagesssetDefaultLanguagecCst|d}t|di}|iido|iid|Sn|ido|id|Sn||_ dS(s* set our default language sportal_propertiess portal_urlsdefault_languageN( s getToolByNamesselfsportal_propertiessgetPortalObjectsportalssite_propertiess hasPropertys_updatePropertyslangCodes default_lang(sselfslangCodesportalsportal_properties((sT/mnt/gmirror/ports/www/zope-plonelanguagetool/work/PloneLanguageTool/LanguageTool.pyssetDefaultLanguagess addLanguagecCs||i|osN(shasattrsselfsREQUESTsgetsbrowser_pref_langsssplitslangssislenslengthslangsstripslowersreplaceslsqualitysqs startswithsfloatslanguagesgetSupportedLanguagessappendssortsreversesmap( sselfslangslanguagesisbrowser_pref_langsslsqslengthslangssquality((sT/mnt/gmirror/ports/www/zope-plonelanguagetool/work/PloneLanguageTool/LanguageTool.pysgetRequestLanguages?s@      ssetLanguageBindingscCs|i}|i}|i}d}t|d odSn|i i dt }t |t ot|}n|i||||}||i d<||i d<|SdS(NisREQUESTs LANGUAGE_TOOLsLANGUAGE(sselfsuse_path_negotiationsusePathsuse_cookie_negotiations useCookiesuse_request_negotiations useRequests useDefaultshasattrsREQUESTsgetsNonesbindings isinstancesLanguageBindingssetLanguageBindingsslang(sselfslangs useCookiesbindings useRequests useDefaultsusePath((sT/mnt/gmirror/ports/www/zope-plonelanguagetool/work/PloneLanguageTool/LanguageTool.pyssetLanguageBindingsts     sgetLanguageBindingscCs|t|d ot|igfSn|iidt}t|t o |i |iid}n|i SdS(NsREQUESTs LANGUAGE_TOOL( shasattrsselfsNonesgetDefaultLanguagesREQUESTsgetsbindings isinstancesLanguageBindingssetLanguageBindingssgetLanguageBindings(sselfsbinding((sT/mnt/gmirror/ports/www/zope-plonelanguagetool/work/PloneLanguageTool/LanguageTool.pysgetLanguageBindingss sisTranslatablecCsti|SdS(N(s ITranslatablesisImplementedBysobj(sselfsobj((sT/mnt/gmirror/ports/www/zope-plonelanguagetool/work/PloneLanguageTool/LanguageTool.pysisTranslatablessgetAvailableCountriescCs;tii}|iio|i|in|SdS(s: return dictionary of available countries N(savailablelanguagess countriesscopysselfslocal_available_countriesskeyssupdate(sselfs countries((sT/mnt/gmirror/ports/www/zope-plonelanguagetool/work/PloneLanguageTool/LanguageTool.pysgetAvailableCountriess slistAvailableCountriescCs0t|ii}|id|SdS(sH return sorted list of available countries (code, name) cCst|d|dS(Ni(scmpsxsy(sxsy((sT/mnt/gmirror/ports/www/zope-plonelanguagetool/work/PloneLanguageTool/LanguageTool.pyssN(slistsselfsgetAvailableCountriessitemsssort(sselfsitems((sT/mnt/gmirror/ports/www/zope-plonelanguagetool/work/PloneLanguageTool/LanguageTool.pyslistAvailableCountriesssgetNameForCountryCodecCs|ii||SdS(s. return name for country code N(sselfsgetAvailableCountriessgets countryCode(sselfs countryCode((sT/mnt/gmirror/ports/www/zope-plonelanguagetool/work/PloneLanguageTool/LanguageTool.pysgetNameForCountryCodess addCountrycCs||i|siii(slangssusePathsselfstoolsgetPathLanguages langsPaths useCookiesREQUESTsgetsNones set_languagessetLanguageCookies langsCookiesgetLanguageCookies useRequestsgetRequestLanguagess langsRequests useDefaultsgetDefaultLanguages langsDefaultsfiltersDEFAULT_LANGUAGEsLANGUAGEs LANGUAGE_LIST( sselfsusePaths useCookies useRequests useDefaults langsCookies langsRequests langsPathslangss set_languages langsDefault((sT/mnt/gmirror/ports/www/zope-plonelanguagetool/work/PloneLanguageTool/LanguageTool.pyssetLanguageBindingss,  sgetLanguageBindingscCs|i|i|ifSdS(N(sselfsLANGUAGEsDEFAULT_LANGUAGEs LANGUAGE_LIST(sself((sT/mnt/gmirror/ports/www/zope-plonelanguagetool/work/PloneLanguageTool/LanguageTool.pysgetLanguageBindingss(s__name__s __module__s__doc__sClassSecurityInfossecuritys*__allow_access_to_unprotected_subobjects__sNonesDEFAULT_LANGUAGEsLANGUAGEs LANGUAGE_LISTs__init__sdeclarePrivatessetLanguageBindingss declarePublicsgetLanguageBindings(((sT/mnt/gmirror/ports/www/zope-plonelanguagetool/work/PloneLanguageTool/LanguageTool.pysLanguageBindings    + s PrefsForPTScBs tZdZdZdZRS(s' this one should hook into pts cCs}||_g|_|id}t|t otSn|i |_ |i dg|i d|i dg|_tSdS(Ns LANGUAGE_TOOLiii( scontextsselfs_envs languagessgetsbindings isinstancesLanguageBindingsNonesgetLanguageBindingsspref(sselfscontextsbinding((sT/mnt/gmirror/ports/www/zope-plonelanguagetool/work/PloneLanguageTool/LanguageTool.pys__init__ s  ,cCsy |iSWn gSnXdS(s4 return the list of the bound langs N(sselfs languages(sself((sT/mnt/gmirror/ports/www/zope-plonelanguagetool/work/PloneLanguageTool/LanguageTool.pysgetPreferredLanguagess  (s__name__s __module__s__doc__s__init__sgetPreferredLanguages(((sT/mnt/gmirror/ports/www/zope-plonelanguagetool/work/PloneLanguageTool/LanguageTool.pys PrefsForPTSs  sklassspriorityid(+sossrestypess StringTypes UnicodeTypes AccessControlsClassSecurityInfosGlobalssInitializeClasss package_homesOFS.SimpleItems SimpleItemsProducts.CMFCore.Expressions Expressions#Products.CMFCore.CMFCorePermissionss ManagePortalsModifyPortalContentsViews"Products.CMFCore.ActionInformationsActionInformations#Products.CMFCore.ActionProviderBasesActionProviderBasesProducts.CMFCore.utilss UniqueObjects getToolByNames'Products.PageTemplates.PageTemplateFilesPageTemplateFiles Acquisitionsaq_bases ZPublishersBeforeTraversesZPublisher.HTTPRequests HTTPRequests interfacess ITranslatables/Products.PlacelessTranslationService.NegotiatorsregisterLangPrefsMethods_hasPTSsNonesavailablelanguagess LanguageToolsLanguageBindings PrefsForPTS(s ITranslatables PrefsForPTSsActionProviderBases LanguageTools ManagePortals getToolByNamesBeforeTraversesaq_bases UniqueObjects StringTypesavailablelanguagessresPageTemplateFilesViews HTTPRequests_hasPTSsActionInformationsClassSecurityInfosInitializeClasssModifyPortalContents SimpleItemsLanguageBindings ExpressionsregisterLangPrefsMethods UnicodeTypesoss package_home((sT/mnt/gmirror/ports/www/zope-plonelanguagetool/work/PloneLanguageTool/LanguageTool.pys?s6              B